<?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>73440</bug_id>
          
          <creation_ts>2011-11-30 06:14:52 -0800</creation_ts>
          <short_desc>[GTK] Add TextureMapperCairo boilerplate implementation</short_desc>
          <delta_ts>2011-11-30 13:39:18 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73458</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alejandro G. Castro">alex</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>joone.hur</cc>
    
    <cc>mrobinson</cc>
    
    <cc>nayankk</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>511695</commentid>
    <comment_count>0</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-11-30 06:14:52 -0800</bug_when>
    <thetext>Add the initial compilation parts and some of the common glue for the TextureMapper in GTK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511827</commentid>
    <comment_count>1</comment_count>
      <attachid>117207</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-11-30 10:02:44 -0800</bug_when>
    <thetext>Created attachment 117207
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511831</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 10:05:42 -0800</bug_when>
    <thetext>Attachment 117207 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/graphics/cairo/TextureMapperCairo.cpp:32:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511844</commentid>
    <comment_count>3</comment_count>
      <attachid>117207</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-30 10:11:07 -0800</bug_when>
    <thetext>Comment on attachment 117207
Proposed patch

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

Nice. I have a couple quick comments...

&gt; Source/WebCore/platform/graphics/cairo/TextureMapperCairo.cpp:6
&gt; + Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
&gt; + Copyright (C) 2011 Igalia S.L.
&gt; +
&gt; + This library is free software; you can redistribute it and/or
&gt; + modify it under the terms of the GNU Library General Public

Do you mind putting the asterisks on the side here when landing? It&apos;s typical to do that in WebKit.

&gt; Source/WebCore/platform/graphics/cairo/TextureMapperCairo.cpp:32
&gt; +    if (m_context) delete m_context;

This should be two lines.

&gt; Source/WebCore/platform/graphics/cairo/TextureMapperCairo.h:4
&gt; + Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
&gt; + Copyright (C) 2011 Igalia S.L.
&gt; +

Same thing here.

&gt; Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:922
&gt; +    if (webViewAllowsAcceleratedCompositing(m_webView))
&gt; +        return AllTriggers;
&gt; +

You should just do something like:
I&apos;m surprised retun 0 doesn&apos;t return an error here...

#if !USE(ACCELERATED_COMPOSITING)
return 0;
#else
...
#endif

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4877
&gt; +void webViewSetRootGraphicsLayer(WebKitWebView* webView, GraphicsLayer* graphicsLayer)

In WebKit1 we use the web_view_set_root_graphics_layer style.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4882
&gt; +void webViewMarkForSync(WebKitWebView* webView, gboolean scheduleSync)

I would say it&apos;s best to use bool here instead of gboolean.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:4895
&gt; +gboolean webViewAllowsAcceleratedCompositing(WebKitWebView* webView)
&gt; +{
&gt; +#if USE(ACCELERATED_COMPOSITING)
&gt; +    return TRUE;
&gt; +#else
&gt; +    return FALSE;
&gt; +#endif
&gt; +}

Just put this inline instead of making it an extra function.

&gt; Source/WebKit/gtk/webkit/webkitwebviewprivate.h:33
&gt; +

You can remove this extra line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511849</commentid>
    <comment_count>4</comment_count>
      <attachid>117212</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-11-30 10:12:51 -0800</bug_when>
    <thetext>Created attachment 117212
Proposed patch

Sorry I thought I had changed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511941</commentid>
    <comment_count>5</comment_count>
      <attachid>117236</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-11-30 11:27:38 -0800</bug_when>
    <thetext>Created attachment 117236
Proposed patch

Thanks for the review! New version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512081</commentid>
    <comment_count>6</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-11-30 13:39:18 -0800</bug_when>
    <thetext>Thanks! Landed http://trac.webkit.org/changeset/101548</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117207</attachid>
            <date>2011-11-30 10:02:44 -0800</date>
            <delta_ts>2011-11-30 10:12:51 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>acc_boilerplate.patch</filename>
            <type>text/plain</type>
            <size>21892</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">Y29tbWl0IDE5ZWI5ZjZlOWMxYTZhYTkzMDJmMmI1ZTAxNjM4NmY0Y2ZlMjhiMTEKQXV0aG9yOiBB
bGVqYW5kcm8gRy4gQ2FzdHJvIDxhbGV4QGlnYWxpYS5jb20+CkRhdGU6ICAgU2F0IE5vdiAyNiAx
MToyMDo0NiAyMDExICswMTAwCgogICAgMjAxMS0xMS0zMCAgQWxlamFuZHJvIEcuIENhc3RybyAg
PGFsZXhAaWdhbGlhLmNvbT4KICAgIAogICAgICAgICAgICBbR1RLXSBBZGQgVGV4dHVyZU1hcHBl
ckNhaXJvIGJvaWxlcnBsYXRlIGltcGxlbWVudGFpdG9uCiAgICAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MAogICAgCiAgICAgICAgICAgIEFkZCB0
ZXh0dXJlIG1hcHBlciBnbHVlIHRvIHRoZSB3aWRnZXQgYW5kIGNocm9tZSBjbGllbnQuCiAgICAK
ICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgICAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgogICAgICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKToKICAgICAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KToKICAgICAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJTeW5jKToKICAgICAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29t
cG9zaXRpbmdUcmlnZ2Vycyk6CiAgICAgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgogICAgICAgICAgICAod2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVyKToKICAgICAgICAgICAg
KHdlYlZpZXdNYXJrRm9yU3luYyk6CiAgICAgICAgICAgICh3ZWJWaWV3QWxsb3dzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZyk6CiAgICAgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRl
Lmg6CiAgICAKICAgIDIwMTEtMTEtMzAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxp
YS5jb20+CiAgICAKICAgICAgICAgICAgW0dUS10gQWRkIFRleHR1cmVNYXBwZXJDYWlybyBib2ls
ZXJwbGF0ZSBpbXBsZW1lbnRhaXRvbgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDAKICAgIAogICAgICAgICAgICBBZGQgVGV4dHVyZU1hcHBl
ckNhaXJvIGNsYXNzIGFuZCBUZXh0dXJlTWFwcGVyIGNsYXNzZXMgY29tcGlsYXRpb24KICAgICAg
ICAgICAgZm9yIEdUSysuCiAgICAKICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCiAgICAKICAgICAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKICAgICAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgogICAgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmg6CiAgICAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHA6CiAgICAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgog
ICAgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fp
cm8uY3BwOgogICAgICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3Jt
TGF5ZXIpOgogICAgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBw
ZXJDYWlyby5jcHA6IEFkZGVkLgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNh
aXJvOjpkZXN0cm95KToKICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6
c2l6ZSk6CiAgICAgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OnJlc2V0KToK
ICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6YmVnaW5QYWludCk6CiAg
ICAgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OmVuZFBhaW50KToKICAgICAg
ICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dXBkYXRlQ29udGVudHMpOgogICAg
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpzYXZlKToKICAgICAgICAgICAg
KFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6c2V0Q29udGVudHNUb0ltYWdlKToKICAgICAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6YmVnaW5DbGlwKToKICAgICAgICAg
ICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZW5kQ2xpcCk6CiAgICAgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnZpZXdwb3J0U2l6ZSk6CiAgICAgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OlRleHR1cmVNYXBwZXJDYWlybyk6CiAgICAgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnNldEdyYXBoaWNzQ29udGV4dCk6CiAg
ICAgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmdyYXBoaWNzQ29udGV4dCk6
CiAgICAgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmJpbmRTdXJmYWNlKToK
ICAgICAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZHJhd1RleHR1cmUpOgog
ICAgICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6Y3JlYXRlKToKICAgICAgICAgICAg
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6Y3JlYXRlVGV4dHVyZSk6CiAgICAgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OkJpdG1hcFRleHR1cmVDYWlybyk6CiAgICAg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmJlZ2luUGFpbnRpbmcpOgogICAg
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckNhaXJvOjplbmRQYWludGluZyk6CiAgICAg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1hcHBlckNhaXJvLmg6IEFk
ZGVkLgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjp+Qml0bWFwVGV4
dHVyZUNhaXJvKToKICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6aXNW
YWxpZCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OnNvdXJjZVJl
Y3QpOgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpwYWNrKToKICAg
ICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dW5wYWNrKToKICAgICAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6aXNQYWNrZWQpOgogICAgICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpjcik6CiAgICAgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyQ2Fpcm86OmFsbG93U3VyZmFjZUZvclJvb3QpOgogICAgICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlckNhaXJvOjpjcmVhdGUpOgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNjhiZTE4
Li5kZWZlMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTEtMTEtMzAgIEFsZWph
bmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIFRl
eHR1cmVNYXBwZXJDYWlybyBib2lsZXJwbGF0ZSBpbXBsZW1lbnRhaXRvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDAKKworICAgICAgICBBZGQg
VGV4dHVyZU1hcHBlckNhaXJvIGNsYXNzIGFuZCBUZXh0dXJlTWFwcGVyIGNsYXNzZXMgY29tcGls
YXRpb24KKyAgICAgICAgZm9yIEdUSysuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpkZXN0cm95KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBUZXh0dXJlQ2Fpcm86OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVD
YWlybzo6YmVnaW5QYWludCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86
OmVuZFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dXBkYXRl
Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpzYXZlKToK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6c2V0Q29udGVudHNUb0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6YmVnaW5DbGlwKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZW5kQ2xpcCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnZpZXdwb3J0U2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OlRleHR1cmVNYXBwZXJDYWlybyk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnNldEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmdyYXBoaWNzQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmJpbmRTdXJmYWNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZHJhd1RleHR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJDYWlybzo6Y3JlYXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
Q2Fpcm86OkJpdG1hcFRleHR1cmVDYWlybyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyQ2Fpcm86OmJlZ2luUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckNhaXJvOjplbmRQYWludGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
VGV4dHVyZU1hcHBlckNhaXJvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZUNhaXJvOjp+Qml0bWFwVGV4dHVyZUNhaXJvKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cFRleHR1cmVDYWlybzo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
Q2Fpcm86OnNvdXJjZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJv
OjpwYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dW5wYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6aXNQYWNrZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpjcik6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyQ2Fpcm86OmFsbG93U3VyZmFjZUZvclJvb3QpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckNhaXJvOjpjcmVhdGUpOgorCiAyMDExLTExLTMwICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXVzZSBjYWNoZWQgc3R5bGUgZnVs
bHkgaWYgdGhlIHBhcmVudCBpbmhlcml0ZWQgc3R5bGVzIGFyZSBlcXVhbCAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KaW5kZXggYmMyYTQwYS4uZjkxODEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTU2
Miw2ICs1NjIsMTQgQEAgd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV8zRF9SRU5ERVJJTkc9
MQogZW5kaWYgICMgRU5EIEVOQUJMRV8zRF9SRU5ERVJJTkcKIAogIyAtLS0KKyMgQ29tcGlsZSB3
aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHN1cHBvcnQKKyMgLS0tCitpZiBVU0VfQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcKK3dlYmNvcmVfY3BwZmxhZ3MgKz0gXAorCS1JJChzcmNkaXIpL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcAorZW5kaWYgICMgVVNFX0FDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HCisKKyMgLS0tCiAjIE1IVE1MIHN1cHBvcnQKICMgLS0tCiBpZiBF
TkFCTEVfTUhUTUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDk3NjEwOTQuLjkz
NzFkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjUyOSw4ICsyNTI5LDYg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9SZWZQdHJDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1JlZlB0ckNhaXJvLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8uY3BwIFwKLQlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmggXAotCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3Rh
bnRMaWdodFNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAgXApAQCAtNTA3MCwzICs1MDY4LDE5IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci5jcHAgXAogICAgIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXIuaAogZW5kaWYgICMgRU5EIEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RQorCisjIC0tLQorIyBDb21waWxlIHdpdGggYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgc3VwcG9y
dAorIyAtLS0KK2lmIFVTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORword2ViY29yZV9zb3VyY2Vz
ICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBcCisJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllci5oCit3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5oCitl
bmRpZiAgIyBVU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGU3NGMwMDIu
Ljc4MmU5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNDg2LDYgKzQ4Niw5IEBAIHB1YmxpYzoKICNlbGlmIFBM
QVRGT1JNKEdUSykKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0M0QoKTsKICAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGV4dHVyZTsgfQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CisjZW5kaWYKICNl
bGlmIFBMQVRGT1JNKEVGTCkKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdDsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IGFmYzk0NTEuLmUxOTBkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyOjpkaXN0cmlidXRlT3BhY2l0eShmbG9hdCBhY2N1bXVsYXRlZE9w
YWNpdHkpCiAgICAgfQogfQogCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKKyNp
ZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiBHcmFwaGlj
c0xheWVyOjpHcmFwaGljc0xheWVyRmFjdG9yeSogR3JhcGhpY3NMYXllcjo6c19ncmFwaGljc0xh
eWVyRmFjdG9yeSA9IDA7CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0R3JhcGhpY3NMYXllckZh
Y3RvcnkoR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllckZhY3RvcnkgZmFjdG9yeSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA2
MzM0NWNiLi45NjdmZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5oCkBAIC02OCw3ICs2OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIExheWVyQ2hyb21pdW07CiB0eXBlZGVmIExheWVyQ2hyb21pdW0gUGxhdGZvcm1MYXll
cjsKIH0KLSNlbGlmIFBMQVRGT1JNKEVGTCkKKyNlbGlmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZP
Uk0oR1RLKQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXI7CiB0eXBlZGVmIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIFBsYXRmb3JtTGF5ZXI7
CkBAIC0zODIsNyArMzgyLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCB1c2luZ1RpbGVkTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX3VzaW5nVGlsZWRMYXllcjsgfQogCi0jaWYgUExBVEZPUk0oUVQp
IHx8IFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKSB8fCBQ
TEFURk9STShHVEspCiAgICAgLy8gVGhpcyBhbGxvd3Mgc2V2ZXJhbCBhbHRlcm5hdGl2ZSBHcmFw
aGljc0xheWVyIGltcGxlbWVudGF0aW9ucyBpbiB0aGUgc2FtZSBwb3J0LAogICAgIC8vIGUuZy4g
aWYgYSBkaWZmZXJlbnQgR3JhcGhpY3NMYXllciBpbXBsZW1lbnRhdGlvbiBpcyBuZWVkZWQgaW4g
V2ViS2l0MSB2cy4gV2ViS2l0Mi4KICAgICB0eXBlZGVmIFBhc3NPd25QdHI8R3JhcGhpY3NMYXll
cj4gR3JhcGhpY3NMYXllckZhY3RvcnkoR3JhcGhpY3NMYXllckNsaWVudCopOwpAQCAtNDU0LDcg
KzQ1NCw3IEBAIHByb3RlY3RlZDoKIAogICAgIGludCBtX3JlcGFpbnRDb3VudDsKIAotI2lmIFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JN
KEVGTCkgfHwgUExBVEZPUk0oR1RLKQogICAgIHN0YXRpYyBHcmFwaGljc0xheWVyOjpHcmFwaGlj
c0xheWVyRmFjdG9yeSogc19ncmFwaGljc0xheWVyRmFjdG9yeTsKICNlbmRpZgogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKaW5kZXggYzkwZDhhYi4uYjVlMTIzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0M0RDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKQEAgLTExNSw2ICsxMTUsMTMgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPENvbnRl
eHRMb3N0Q2FsbGJhY2s+KQogewogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQorUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIoKSBjb25z
dAoreworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0dXJlTWFwcGVyQ2Fpcm8uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzYzI5Y2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0dXJlTWFwcGVyQ2Fp
cm8uY3BwCkBAIC0wLDAgKzEsMTQzIEBACisvKgorIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyBDb3B5cmlnaHQgKEMpIDIw
MTEgSWdhbGlhIFMuTC4KKworIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckNhaXJvLmgiCisKKyNpbmNsdWRlICJDYWly
b1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordm9pZCBCaXRtYXBUZXh0dXJlQ2Fpcm86OmRlc3Ryb3koKQoreworICAgIGlm
IChtX2NvbnRleHQpIGRlbGV0ZSBtX2NvbnRleHQ7Cit9CisKKworSW50U2l6ZSBCaXRtYXBUZXh0
dXJlQ2Fpcm86OnNpemUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIEludFNpemUoKTsKK30KKwordm9pZCBCaXRtYXBUZXh0dXJlQ2Fpcm86OnJlc2V0KGNvbnN0
IEludFNpemUmIHNpemUsIGJvb2wgaXNPcGFxdWUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIEJpdG1hcFRleHR1cmVDYWlybzo6YmVnaW5Q
YWludChjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbV9jb250ZXh0OworfQorCit2b2lkIEJpdG1hcFRleHR1cmVDYWlybzo6ZW5k
UGFpbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQml0bWFwVGV4dHVy
ZUNhaXJvOjp1cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwgY29uc3QgSW50
UmVjdCYgcmVjdCwgdm9pZCogYml0cykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCisK
K2Jvb2wgQml0bWFwVGV4dHVyZUNhaXJvOjpzYXZlKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBCaXRtYXBU
ZXh0dXJlQ2Fpcm86OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0dXJlTWFwcGVyQ2Fpcm86OmJlZ2luQ2xpcChj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0dXJlTWFwcGVyQ2Fpcm86
OmVuZENsaXAoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFNpemUgVGV4dHVy
ZU1hcHBlckNhaXJvOjp2aWV3cG9ydFNpemUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKKworVGV4dHVyZU1hcHBlckNhaXJvOjpUZXh0dXJlTWFwcGVyQ2Fpcm8oKQorICAg
IDogbV9jb250ZXh0KDApCit7Cit9CisKK3ZvaWQgVGV4dHVyZU1hcHBlckNhaXJvOjpzZXRHcmFw
aGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQoreworICAgIG1fY29udGV4dCA9
IGNvbnRleHQ7Cit9CisKK0dyYXBoaWNzQ29udGV4dCogVGV4dHVyZU1hcHBlckNhaXJvOjpncmFw
aGljc0NvbnRleHQoKQoreworICAgIHJldHVybiBtX2NvbnRleHQ7Cit9CisKK3ZvaWQgVGV4dHVy
ZU1hcHBlckNhaXJvOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlKiB0ZXh0dXJlKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKKwordm9pZCBUZXh0dXJlTWFwcGVyQ2Fpcm86OmRyYXdU
ZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmIHRleHR1cmUsIGNvbnN0IEZsb2F0UmVjdCYgdGFy
Z2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0
eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworUGFzc093blB0cjxUZXh0dXJlTWFwcGVyPiBUZXh0dXJlTWFwcGVyOjpjcmVh
dGUoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcg
VGV4dHVyZU1hcHBlckNhaXJvKTsKK30KKworUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBUZXh0
dXJlTWFwcGVyQ2Fpcm86OmNyZWF0ZVRleHR1cmUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQml0bWFwVGV4dHVyZUNhaXJvKCkpOworfQorCitCaXRtYXBUZXh0dXJlQ2Fpcm86OkJpdG1h
cFRleHR1cmVDYWlybygpCisgICAgOiBtX2NvbnRleHQoMCkKKyAgICAsIG1fc3VyZmFjZSgwKQor
eworfQorCit2b2lkIFRleHR1cmVNYXBwZXJDYWlybzo6YmVnaW5QYWludGluZygpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0dXJlTWFwcGVyQ2Fpcm86OmVuZFBhaW50
aW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1hcHBlckNhaXJvLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0dXJlTWFwcGVyQ2Fp
cm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGYzNDY4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVy
ZU1hcHBlckNhaXJvLmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyBDb3B5cmlnaHQgKEMpIDIwMTAg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgQ29weXJpZ2h0
IChDKSAyMDExIElnYWxpYSBTLkwuCisKKyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYg
VGV4dHVyZU1hcHBlckNhaXJvX2gKKyNkZWZpbmUgVGV4dHVyZU1hcHBlckNhaXJvX2gKKworI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQ29udGV4dENhaXJv
LmgiCisjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKKyNpbmNsdWRlICJ0ZXhtYXAvVGV4dHVyZU1h
cHBlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEJpdG1hcFRleHR1cmVDYWly
byA6IHB1YmxpYyBCaXRtYXBUZXh0dXJlIHsKKyAgICBmcmllbmQgY2xhc3MgVGV4dHVyZU1hcHBl
ckNhaXJvOworcHVibGljOgorICAgIEJpdG1hcFRleHR1cmVDYWlybygpOworICAgIH5CaXRtYXBU
ZXh0dXJlQ2Fpcm8oKSB7IGRlc3Ryb3koKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCk7
CisgICAgdmlydHVhbCBJbnRTaXplIHNpemUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVz
ZXQoY29uc3QgSW50U2l6ZSYsIGJvb2wgb3BhcXVlKTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0KiBiZWdpblBhaW50KGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCk7CisgICAg
dmlydHVhbCB2b2lkIGVuZFBhaW50KCk7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9J
bWFnZShJbWFnZSopOworICAgIHZpcnR1YWwgYm9vbCBzYXZlKGNvbnN0IFN0cmluZyYgcGF0aCk7
CisgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAhbV9zdXJmYWNlO30K
KyAgICBJbnRSZWN0IHNvdXJjZVJlY3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KDAsIDAsIGNv
bnRlbnRTaXplKCkud2lkdGgoKSwgY29udGVudFNpemUoKS5oZWlnaHQoKSk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcGFjaygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1bnBhY2soKSB7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNQYWNrZWQoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUNvbnRlbnRzKFBpeGVsRm9ybWF0LCBjb25zdCBJbnRSZWN0Jiwgdm9pZCogYml0
cyk7CisKKyAgICBjYWlyb190KiBjcigpIHsgcmV0dXJuIG1fY29udGV4dC0+Y3IoKTsgfQorCitw
cml2YXRlOgorICAgIHZvaWQgY2xlYXJSZWN0KGNvbnN0IEludFJlY3QmKTsKKworICAgIFBsYXRm
b3JtQ29udGV4dENhaXJvKiBtX2NvbnRleHQ7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4g
bV9zdXJmYWNlOworfTsKKworY2xhc3MgVGV4dHVyZU1hcHBlckNhaXJvIDogcHVibGljIFRleHR1
cmVNYXBwZXIgeworcHVibGljOgorICAgIFRleHR1cmVNYXBwZXJDYWlybygpOworCisgICAgdmly
dHVhbCB2b2lkIGRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmLCBjb25zdCBGbG9hdFJl
Y3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0
eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUpOworICAgIHZpcnR1YWwgdm9pZCBi
aW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgYmVn
aW5DbGlwKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0Jik7Cisg
ICAgdmlydHVhbCB2b2lkIGVuZENsaXAoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R3JhcGhpY3ND
b250ZXh0KEdyYXBoaWNzQ29udGV4dCopOworICAgIHZpcnR1YWwgR3JhcGhpY3NDb250ZXh0KiBn
cmFwaGljc0NvbnRleHQoKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdXJmYWNlRm9yUm9vdCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRl
eHR1cmU+IGNyZWF0ZVRleHR1cmUoKTsKKyAgICB2aXJ0dWFsIEludFNpemUgdmlld3BvcnRTaXpl
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGJlZ2luUGFpbnRpbmcoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZW5kUGFpbnRpbmcoKTsKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPFRleHR1cmVNYXBw
ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBUZXh0dXJlTWFwcGVyQ2Fpcm8pOyB9
Citwcml2YXRlOgorICAgIEdyYXBoaWNzQ29udGV4dCogbV9jb250ZXh0OworICAgIFJlZlB0cjxC
aXRtYXBUZXh0dXJlQ2Fpcm8+IG1fdGV4dHVyZTsKK307CisKK30KKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCmluZGV4IGEwYTk4MWUuLmNkM2ZlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAxMS0xMS0zMCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1RLXSBBZGQgVGV4dHVyZU1hcHBlckNhaXJvIGJvaWxlcnBsYXRlIGltcGxl
bWVudGFpdG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MzQ0MAorCisgICAgICAgIEFkZCB0ZXh0dXJlIG1hcHBlciBnbHVlIHRvIHRoZSB3aWRnZXQg
YW5kIGNocm9tZSBjbGllbnQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKToKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJTeW5jKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29t
cG9zaXRpbmdUcmlnZ2Vycyk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgor
ICAgICAgICAod2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVyKToKKyAgICAgICAgKHdlYlZpZXdN
YXJrRm9yU3luYyk6CisgICAgICAgICh3ZWJWaWV3QWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Zyk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6CisKIDIwMTEtMTEt
MjkgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gU0lHU0VWIHdoZW4gYSBXZWJLaXREb3dubG9hZCBmYWlscwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggMzIz
OTNlOS4uNDkzNmYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC05MDIsMjEgKzkwMiwyNCBAQCB2b2lkIENocm9t
ZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1l
bnQpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBDaHJvbWVDbGllbnQ6
OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogcm9v
dExheWVyKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgd2ViVmlld1NldFJvb3RHcmFw
aGljc0xheWVyKG1fd2ViVmlldywgcm9vdExheWVyKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnQ6
OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgd2ViVmlld01hcmtGb3JTeW5jKG1fd2ViVmlldywgRkFMU0UpOwogfQog
CiB2b2lkIENocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYygpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB3ZWJWaWV3TWFya0ZvclN5bmMobV93ZWJWaWV3LCBU
UlVFKTsKIH0KIAogQ2hyb21lQ2xpZW50OjpDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBDaHJvbWVD
bGllbnQ6OmFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3QKIHsKKyAgICBpZiAod2Vi
Vmlld0FsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcobV93ZWJWaWV3KSkKKyAgICAgICAgcmV0
dXJuIEFsbFRyaWdnZXJzOworCiAgICAgcmV0dXJuIDA7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA0NmFiYzYwLi43MjQ1NTBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC00ODczLDYg
KzQ4NzMsMjcgQEAgdm9pZCB3ZWJWaWV3RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKICNlbmRpZgogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQordm9p
ZCB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3Jh
cGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIHdlYlZpZXdNYXJrRm9yU3luYyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVh
biBzY2hlZHVsZVN5bmMpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKyNlbmRpZgorCitn
Ym9vbGVhbiB3ZWJWaWV3QWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICByZXR1
cm4gVFJVRTsKKyNlbHNlCisgICAgcmV0dXJuIEZBTFNFOworI2VuZGlmCit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJDb3JlOjpQYWdlKiBjb3JlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCmlu
ZGV4IDUxZTVlOGUuLjI5OTk3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0
b3JlLmgiCisKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vidmlldy5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTExMiw2ICsxMTMsMTEgQEAgR3RrTWVudSogd2Via2l0X3dlYl92aWV3X2dl
dF9jb250ZXh0X21lbnUoV2ViS2l0V2ViVmlldyopOwogdm9pZCB3ZWJWaWV3RW50ZXJGdWxsc2Ny
ZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6Ok5vZGUqKTsKIHZvaWQgd2ViVmll
d0V4aXRGdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpOwogCitnYm9vbGVhbiB3ZWJW
aWV3QWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhXZWJLaXRXZWJWaWV3Kik7CisjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQordm9pZCB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5
ZXIoV2ViS2l0V2ViVmlldyosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKK3ZvaWQgd2ViVmll
d01hcmtGb3JTeW5jKFdlYktpdFdlYlZpZXcqLCBnYm9vbGVhbik7CisjZW5kaWYKIH0KIAogI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117212</attachid>
            <date>2011-11-30 10:12:51 -0800</date>
            <delta_ts>2011-11-30 11:27:38 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>acc_boilerplate.patch</filename>
            <type>text/plain</type>
            <size>21901</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">Y29tbWl0IDY3ZjgwNjU3NWJhYmMwZDcwMTRlNDYxMTEzM2FmOTg5MWQ2YjRmYWEKQXV0aG9yOiBB
bGVqYW5kcm8gRy4gQ2FzdHJvIDxhbGV4QGlnYWxpYS5jb20+CkRhdGU6ICAgU2F0IE5vdiAyNiAx
MToyMDo0NiAyMDExICswMTAwCgogICAgMjAxMS0xMS0zMCAgQWxlamFuZHJvIEcuIENhc3RybyAg
PGFsZXhAaWdhbGlhLmNvbT4KICAgIAogICAgICAgICAgICBbR1RLXSBBZGQgVGV4dHVyZU1hcHBl
ckNhaXJvIGJvaWxlcnBsYXRlIGltcGxlbWVudGFpdG9uCiAgICAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MAogICAgCiAgICAgICAgICAgIEFkZCB0
ZXh0dXJlIG1hcHBlciBnbHVlIHRvIHRoZSB3aWRnZXQgYW5kIGNocm9tZSBjbGllbnQuCiAgICAK
ICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgICAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgogICAgICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKToKICAgICAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KToKICAgICAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJTeW5jKToKICAgICAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29t
cG9zaXRpbmdUcmlnZ2Vycyk6CiAgICAgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgogICAgICAgICAgICAod2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVyKToKICAgICAgICAgICAg
KHdlYlZpZXdNYXJrRm9yU3luYyk6CiAgICAgICAgICAgICh3ZWJWaWV3QWxsb3dzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZyk6CiAgICAgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRl
Lmg6CiAgICAKICAgIDIwMTEtMTEtMzAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxp
YS5jb20+CiAgICAKICAgICAgICAgICAgW0dUS10gQWRkIFRleHR1cmVNYXBwZXJDYWlybyBib2ls
ZXJwbGF0ZSBpbXBsZW1lbnRhaXRvbgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDAKICAgIAogICAgICAgICAgICBBZGQgVGV4dHVyZU1hcHBl
ckNhaXJvIGNsYXNzIGFuZCBUZXh0dXJlTWFwcGVyIGNsYXNzZXMgY29tcGlsYXRpb24KICAgICAg
ICAgICAgZm9yIEdUSysuCiAgICAKICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCiAgICAKICAgICAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKICAgICAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgogICAgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmg6CiAgICAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHA6CiAgICAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgog
ICAgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fp
cm8uY3BwOgogICAgICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3Jt
TGF5ZXIpOgogICAgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBw
ZXJDYWlyby5jcHA6IEFkZGVkLgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNh
aXJvOjpkZXN0cm95KToKICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6
c2l6ZSk6CiAgICAgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OnJlc2V0KToK
ICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6YmVnaW5QYWludCk6CiAg
ICAgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OmVuZFBhaW50KToKICAgICAg
ICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dXBkYXRlQ29udGVudHMpOgogICAg
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpzYXZlKToKICAgICAgICAgICAg
KFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6c2V0Q29udGVudHNUb0ltYWdlKToKICAgICAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6YmVnaW5DbGlwKToKICAgICAgICAg
ICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZW5kQ2xpcCk6CiAgICAgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnZpZXdwb3J0U2l6ZSk6CiAgICAgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OlRleHR1cmVNYXBwZXJDYWlybyk6CiAgICAgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnNldEdyYXBoaWNzQ29udGV4dCk6CiAg
ICAgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmdyYXBoaWNzQ29udGV4dCk6
CiAgICAgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmJpbmRTdXJmYWNlKToK
ICAgICAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZHJhd1RleHR1cmUpOgog
ICAgICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6Y3JlYXRlKToKICAgICAgICAgICAg
KFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6Y3JlYXRlVGV4dHVyZSk6CiAgICAgICAgICAg
IChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OkJpdG1hcFRleHR1cmVDYWlybyk6CiAgICAg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmJlZ2luUGFpbnRpbmcpOgogICAg
ICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckNhaXJvOjplbmRQYWludGluZyk6CiAgICAg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1hcHBlckNhaXJvLmg6IEFk
ZGVkLgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjp+Qml0bWFwVGV4
dHVyZUNhaXJvKToKICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6aXNW
YWxpZCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OnNvdXJjZVJl
Y3QpOgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpwYWNrKToKICAg
ICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dW5wYWNrKToKICAgICAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6aXNQYWNrZWQpOgogICAgICAgICAgICAo
V2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpjcik6CiAgICAgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyQ2Fpcm86OmFsbG93U3VyZmFjZUZvclJvb3QpOgogICAgICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlckNhaXJvOjpjcmVhdGUpOgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmNjhiZTE4
Li5kZWZlMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTEtMTEtMzAgIEFsZWph
bmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIFRl
eHR1cmVNYXBwZXJDYWlybyBib2lsZXJwbGF0ZSBpbXBsZW1lbnRhaXRvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDAKKworICAgICAgICBBZGQg
VGV4dHVyZU1hcHBlckNhaXJvIGNsYXNzIGFuZCBUZXh0dXJlTWFwcGVyIGNsYXNzZXMgY29tcGls
YXRpb24KKyAgICAgICAgZm9yIEdUSysuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpkZXN0cm95KToKKyAgICAgICAgKFdl
YkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBUZXh0dXJlQ2Fpcm86OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVD
YWlybzo6YmVnaW5QYWludCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86
OmVuZFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dXBkYXRl
Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpzYXZlKToK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6c2V0Q29udGVudHNUb0ltYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6YmVnaW5DbGlwKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZW5kQ2xpcCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnZpZXdwb3J0U2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OlRleHR1cmVNYXBwZXJDYWlybyk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnNldEdyYXBoaWNzQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmdyYXBoaWNzQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmJpbmRTdXJmYWNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZHJhd1RleHR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJDYWlybzo6Y3JlYXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
Q2Fpcm86OkJpdG1hcFRleHR1cmVDYWlybyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyQ2Fpcm86OmJlZ2luUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckNhaXJvOjplbmRQYWludGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
VGV4dHVyZU1hcHBlckNhaXJvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZUNhaXJvOjp+Qml0bWFwVGV4dHVyZUNhaXJvKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1h
cFRleHR1cmVDYWlybzo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
Q2Fpcm86OnNvdXJjZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJv
OjpwYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dW5wYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6aXNQYWNrZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpjcik6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyQ2Fpcm86OmFsbG93U3VyZmFjZUZvclJvb3QpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckNhaXJvOjpjcmVhdGUpOgorCiAyMDExLTExLTMwICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXVzZSBjYWNoZWQgc3R5bGUgZnVs
bHkgaWYgdGhlIHBhcmVudCBpbmhlcml0ZWQgc3R5bGVzIGFyZSBlcXVhbCAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KaW5kZXggYmMyYTQwYS4uZjkxODEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTU2
Miw2ICs1NjIsMTQgQEAgd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV8zRF9SRU5ERVJJTkc9
MQogZW5kaWYgICMgRU5EIEVOQUJMRV8zRF9SRU5ERVJJTkcKIAogIyAtLS0KKyMgQ29tcGlsZSB3
aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHN1cHBvcnQKKyMgLS0tCitpZiBVU0VfQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcKK3dlYmNvcmVfY3BwZmxhZ3MgKz0gXAorCS1JJChzcmNkaXIpL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcAorZW5kaWYgICMgVVNFX0FDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HCisKKyMgLS0tCiAjIE1IVE1MIHN1cHBvcnQKICMgLS0tCiBpZiBF
TkFCTEVfTUhUTUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDk3NjEwOTQuLjkz
NzFkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjUyOSw4ICsyNTI5LDYg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9SZWZQdHJDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1JlZlB0ckNhaXJvLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8uY3BwIFwKLQlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmggXAotCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXllckNsdXR0
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3Rh
bnRMaWdodFNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAgXApAQCAtNTA3MCwzICs1MDY4LDE5IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlci5jcHAgXAogICAgIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXIuaAogZW5kaWYgICMgRU5EIEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RQorCisjIC0tLQorIyBDb21waWxlIHdpdGggYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgc3VwcG9y
dAorIyAtLS0KK2lmIFVTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORword2ViY29yZV9zb3VyY2Vz
ICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBcCisJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmgg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllci5oCit3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5oCitl
bmRpZiAgIyBVU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGU3NGMwMDIu
Ljc4MmU5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNDg2LDYgKzQ4Niw5IEBAIHB1YmxpYzoKICNlbGlmIFBM
QVRGT1JNKEdUSykKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0M0QoKTsKICAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGV4dHVyZTsgfQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CisjZW5kaWYKICNl
bGlmIFBMQVRGT1JNKEVGTCkKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdDsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IGFmYzk0NTEuLmUxOTBkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyOjpkaXN0cmlidXRlT3BhY2l0eShmbG9hdCBhY2N1bXVsYXRlZE9w
YWNpdHkpCiAgICAgfQogfQogCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKKyNp
ZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiBHcmFwaGlj
c0xheWVyOjpHcmFwaGljc0xheWVyRmFjdG9yeSogR3JhcGhpY3NMYXllcjo6c19ncmFwaGljc0xh
eWVyRmFjdG9yeSA9IDA7CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0R3JhcGhpY3NMYXllckZh
Y3RvcnkoR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllckZhY3RvcnkgZmFjdG9yeSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA2
MzM0NWNiLi45NjdmZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5oCkBAIC02OCw3ICs2OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIExheWVyQ2hyb21pdW07CiB0eXBlZGVmIExheWVyQ2hyb21pdW0gUGxhdGZvcm1MYXll
cjsKIH0KLSNlbGlmIFBMQVRGT1JNKEVGTCkKKyNlbGlmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZP
Uk0oR1RLKQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGV4dHVyZU1hcHBlclBsYXRmb3Jt
TGF5ZXI7CiB0eXBlZGVmIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIFBsYXRmb3JtTGF5ZXI7
CkBAIC0zODIsNyArMzgyLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCB1c2luZ1RpbGVkTGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX3VzaW5nVGlsZWRMYXllcjsgfQogCi0jaWYgUExBVEZPUk0oUVQp
IHx8IFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKSB8fCBQ
TEFURk9STShHVEspCiAgICAgLy8gVGhpcyBhbGxvd3Mgc2V2ZXJhbCBhbHRlcm5hdGl2ZSBHcmFw
aGljc0xheWVyIGltcGxlbWVudGF0aW9ucyBpbiB0aGUgc2FtZSBwb3J0LAogICAgIC8vIGUuZy4g
aWYgYSBkaWZmZXJlbnQgR3JhcGhpY3NMYXllciBpbXBsZW1lbnRhdGlvbiBpcyBuZWVkZWQgaW4g
V2ViS2l0MSB2cy4gV2ViS2l0Mi4KICAgICB0eXBlZGVmIFBhc3NPd25QdHI8R3JhcGhpY3NMYXll
cj4gR3JhcGhpY3NMYXllckZhY3RvcnkoR3JhcGhpY3NMYXllckNsaWVudCopOwpAQCAtNDU0LDcg
KzQ1NCw3IEBAIHByb3RlY3RlZDoKIAogICAgIGludCBtX3JlcGFpbnRDb3VudDsKIAotI2lmIFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JN
KEVGTCkgfHwgUExBVEZPUk0oR1RLKQogICAgIHN0YXRpYyBHcmFwaGljc0xheWVyOjpHcmFwaGlj
c0xheWVyRmFjdG9yeSogc19ncmFwaGljc0xheWVyRmFjdG9yeTsKICNlbmRpZgogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKaW5kZXggYzkwZDhhYi4uYjVlMTIzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0M0RDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKQEAgLTExNSw2ICsxMTUsMTMgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRyPENvbnRl
eHRMb3N0Q2FsbGJhY2s+KQogewogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQorUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIoKSBjb25z
dAoreworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0dXJlTWFwcGVyQ2Fpcm8uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4YjI5MWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0dXJlTWFwcGVyQ2Fp
cm8uY3BwCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyBDb3B5cmlnaHQgKEMpIDIw
MTEgSWdhbGlhIFMuTC4KKworIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckNhaXJvLmgiCisKKyNpbmNsdWRlICJDYWly
b1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordm9pZCBCaXRtYXBUZXh0dXJlQ2Fpcm86OmRlc3Ryb3koKQoreworICAgIGlm
IChtX2NvbnRleHQpCisgICAgICAgIGRlbGV0ZSBtX2NvbnRleHQ7Cit9CisKKworSW50U2l6ZSBC
aXRtYXBUZXh0dXJlQ2Fpcm86OnNpemUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIEludFNpemUoKTsKK30KKwordm9pZCBCaXRtYXBUZXh0dXJlQ2Fpcm86OnJl
c2V0KGNvbnN0IEludFNpemUmIHNpemUsIGJvb2wgaXNPcGFxdWUpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIEJpdG1hcFRleHR1cmVDYWly
bzo6YmVnaW5QYWludChjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbV9jb250ZXh0OworfQorCit2b2lkIEJpdG1hcFRleHR1cmVD
YWlybzo6ZW5kUGFpbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQml0
bWFwVGV4dHVyZUNhaXJvOjp1cGRhdGVDb250ZW50cyhQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCwg
Y29uc3QgSW50UmVjdCYgcmVjdCwgdm9pZCogYml0cykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCisKK2Jvb2wgQml0bWFwVGV4dHVyZUNhaXJvOjpzYXZlKGNvbnN0IFN0cmluZyYgcGF0
aCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBCaXRtYXBUZXh0dXJlQ2Fpcm86OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0dXJlTWFwcGVyQ2Fpcm86OmJl
Z2luQ2xpcChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBjb25zdCBGbG9hdFJl
Y3QmIHJlY3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0dXJlTWFw
cGVyQ2Fpcm86OmVuZENsaXAoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFNp
emUgVGV4dHVyZU1hcHBlckNhaXJvOjp2aWV3cG9ydFNpemUoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKKworVGV4dHVyZU1hcHBlckNhaXJvOjpUZXh0dXJlTWFwcGVyQ2Fp
cm8oKQorICAgIDogbV9jb250ZXh0KDApCit7Cit9CisKK3ZvaWQgVGV4dHVyZU1hcHBlckNhaXJv
OjpzZXRHcmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQoreworICAgIG1f
Y29udGV4dCA9IGNvbnRleHQ7Cit9CisKK0dyYXBoaWNzQ29udGV4dCogVGV4dHVyZU1hcHBlckNh
aXJvOjpncmFwaGljc0NvbnRleHQoKQoreworICAgIHJldHVybiBtX2NvbnRleHQ7Cit9CisKK3Zv
aWQgVGV4dHVyZU1hcHBlckNhaXJvOjpiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlKiB0ZXh0dXJl
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKKwordm9pZCBUZXh0dXJlTWFwcGVyQ2Fp
cm86OmRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmIHRleHR1cmUsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgZmxv
YXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworUGFzc093blB0cjxUZXh0dXJlTWFwcGVyPiBUZXh0dXJlTWFw
cGVyOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgVGV4dHVyZU1hcHBlckNhaXJvKTsKK30KKworUGFzc1JlZlB0cjxCaXRtYXBUZXh0
dXJlPiBUZXh0dXJlTWFwcGVyQ2Fpcm86OmNyZWF0ZVRleHR1cmUoKQoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQml0bWFwVGV4dHVyZUNhaXJvKCkpOworfQorCitCaXRtYXBUZXh0dXJlQ2Fp
cm86OkJpdG1hcFRleHR1cmVDYWlybygpCisgICAgOiBtX2NvbnRleHQoMCkKKyAgICAsIG1fc3Vy
ZmFjZSgwKQoreworfQorCit2b2lkIFRleHR1cmVNYXBwZXJDYWlybzo6YmVnaW5QYWludGluZygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0dXJlTWFwcGVyQ2Fpcm86
OmVuZFBhaW50aW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1hcHBl
ckNhaXJvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0dXJl
TWFwcGVyQ2Fpcm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGYzNDY4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vVGV4dHVyZU1hcHBlckNhaXJvLmgKQEAgLTAsMCArMSw4MiBAQAorLyoKKyBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisg
Q29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisKKyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZm5kZWYgVGV4dHVyZU1hcHBlckNhaXJvX2gKKyNkZWZpbmUgVGV4dHVyZU1hcHBlckNhaXJv
X2gKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQ29u
dGV4dENhaXJvLmgiCisjaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKKyNpbmNsdWRlICJ0ZXhtYXAv
VGV4dHVyZU1hcHBlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEJpdG1hcFRl
eHR1cmVDYWlybyA6IHB1YmxpYyBCaXRtYXBUZXh0dXJlIHsKKyAgICBmcmllbmQgY2xhc3MgVGV4
dHVyZU1hcHBlckNhaXJvOworcHVibGljOgorICAgIEJpdG1hcFRleHR1cmVDYWlybygpOworICAg
IH5CaXRtYXBUZXh0dXJlQ2Fpcm8oKSB7IGRlc3Ryb3koKTsgfQorICAgIHZpcnR1YWwgdm9pZCBk
ZXN0cm95KCk7CisgICAgdmlydHVhbCBJbnRTaXplIHNpemUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVzZXQoY29uc3QgSW50U2l6ZSYsIGJvb2wgb3BhcXVlKTsKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0KiBiZWdpblBhaW50KGNvbnN0IEludFJlY3QmIGRpcnR5UmVj
dCk7CisgICAgdmlydHVhbCB2b2lkIGVuZFBhaW50KCk7CisgICAgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzVG9JbWFnZShJbWFnZSopOworICAgIHZpcnR1YWwgYm9vbCBzYXZlKGNvbnN0IFN0cmlu
ZyYgcGF0aCk7CisgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiAhbV9z
dXJmYWNlO30KKyAgICBJbnRSZWN0IHNvdXJjZVJlY3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0
KDAsIDAsIGNvbnRlbnRTaXplKCkud2lkdGgoKSwgY29udGVudFNpemUoKS5oZWlnaHQoKSk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgcGFjaygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1bnBhY2soKSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQYWNrZWQoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKFBpeGVsRm9ybWF0LCBjb25zdCBJbnRSZWN0Jiwg
dm9pZCogYml0cyk7CisKKyAgICBjYWlyb190KiBjcigpIHsgcmV0dXJuIG1fY29udGV4dC0+Y3Io
KTsgfQorCitwcml2YXRlOgorICAgIHZvaWQgY2xlYXJSZWN0KGNvbnN0IEludFJlY3QmKTsKKwor
ICAgIFBsYXRmb3JtQ29udGV4dENhaXJvKiBtX2NvbnRleHQ7CisgICAgUmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4gbV9zdXJmYWNlOworfTsKKworY2xhc3MgVGV4dHVyZU1hcHBlckNhaXJvIDogcHVi
bGljIFRleHR1cmVNYXBwZXIgeworcHVibGljOgorICAgIFRleHR1cmVNYXBwZXJDYWlybygpOwor
CisgICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmLCBjb25z
dCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxv
YXQgb3BhY2l0eSwgY29uc3QgQml0bWFwVGV4dHVyZSogbWFza1RleHR1cmUpOworICAgIHZpcnR1
YWwgdm9pZCBiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYmVnaW5DbGlwKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRS
ZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIGVuZENsaXAoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
R3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCopOworICAgIHZpcnR1YWwgR3JhcGhpY3ND
b250ZXh0KiBncmFwaGljc0NvbnRleHQoKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdXJmYWNl
Rm9yUm9vdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PEJpdG1hcFRleHR1cmU+IGNyZWF0ZVRleHR1cmUoKTsKKyAgICB2aXJ0dWFsIEludFNpemUgdmll
d3BvcnRTaXplKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGJlZ2luUGFpbnRpbmcoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnRpbmcoKTsKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPFRl
eHR1cmVNYXBwZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBUZXh0dXJlTWFwcGVy
Q2Fpcm8pOyB9Citwcml2YXRlOgorICAgIEdyYXBoaWNzQ29udGV4dCogbV9jb250ZXh0OworICAg
IFJlZlB0cjxCaXRtYXBUZXh0dXJlQ2Fpcm8+IG1fdGV4dHVyZTsKK307CisKK30KKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCmluZGV4IGEwYTk4MWUuLmNkM2ZlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMyBAQAorMjAxMS0xMS0zMCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdh
bGlhLmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgVGV4dHVyZU1hcHBlckNhaXJvIGJvaWxlcnBs
YXRlIGltcGxlbWVudGFpdG9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MzQ0MAorCisgICAgICAgIEFkZCB0ZXh0dXJlIG1hcHBlciBnbHVlIHRvIHRo
ZSB3aWRnZXQgYW5kIGNocm9tZSBjbGllbnQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5n
U3luY2hyb25pemF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojph
bGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgorICAgICAgICAod2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVyKToKKyAgICAgICAg
KHdlYlZpZXdNYXJrRm9yU3luYyk6CisgICAgICAgICh3ZWJWaWV3QWxsb3dzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZyk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6CisK
IDIwMTEtMTEtMjkgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gU0lHU0VWIHdoZW4gYSBXZWJLaXREb3dubG9hZCBmYWlscwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAK
aW5kZXggMzIzOTNlOS4uNDkzNmYzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC05MDIsMjEgKzkwMiwyNCBAQCB2
b2lkIENocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQqIGVsZW1lbnQpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBDaHJv
bWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NM
YXllciogcm9vdExheWVyKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgd2ViVmlld1Nl
dFJvb3RHcmFwaGljc0xheWVyKG1fd2ViVmlldywgcm9vdExheWVyKTsKIH0KIAogdm9pZCBDaHJv
bWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgd2ViVmlld01hcmtGb3JTeW5jKG1fd2ViVmlldywgRkFM
U0UpOwogfQogCiB2b2lkIENocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3lu
YygpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB3ZWJWaWV3TWFya0ZvclN5bmMobV93
ZWJWaWV3LCBUUlVFKTsKIH0KIAogQ2hyb21lQ2xpZW50OjpDb21wb3NpdGluZ1RyaWdnZXJGbGFn
cyBDaHJvbWVDbGllbnQ6OmFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3QKIHsKKyAg
ICBpZiAod2ViVmlld0FsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcobV93ZWJWaWV3KSkKKyAg
ICAgICAgcmV0dXJuIEFsbFRyaWdnZXJzOworCiAgICAgcmV0dXJuIDA7CiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA0NmFiYzYwLi43
MjQ1NTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBA
IC00ODczLDYgKzQ4NzMsMjcgQEAgdm9pZCB3ZWJWaWV3RXhpdEZ1bGxzY3JlZW4oV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKICNlbmRpZgogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQordm9pZCB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIHdlYlZpZXdNYXJrRm9yU3luYyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBnYm9vbGVhbiBzY2hlZHVsZVN5bmMpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKyNl
bmRpZgorCitnYm9vbGVhbiB3ZWJWaWV3QWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3KQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICByZXR1cm4gVFJVRTsKKyNlbHNlCisgICAgcmV0dXJuIEZBTFNFOworI2VuZGlmCit9CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJDb3JlOjpQYWdlKiBjb3JlKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlld3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJp
dmF0ZS5oCmluZGV4IDUxZTVlOGUuLjI5OTk3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiV2lkZ2V0
QmFja2luZ1N0b3JlLmgiCisKICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vidmlldy5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTExMiw2ICsxMTMsMTEgQEAgR3RrTWVudSogd2Via2l0X3dl
Yl92aWV3X2dldF9jb250ZXh0X21lbnUoV2ViS2l0V2ViVmlldyopOwogdm9pZCB3ZWJWaWV3RW50
ZXJGdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6Ok5vZGUqKTsKIHZv
aWQgd2ViVmlld0V4aXRGdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpOwogCitnYm9v
bGVhbiB3ZWJWaWV3QWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyhXZWJLaXRXZWJWaWV3Kik7
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQordm9pZCB3ZWJWaWV3U2V0Um9vdEdy
YXBoaWNzTGF5ZXIoV2ViS2l0V2ViVmlldyosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKK3Zv
aWQgd2ViVmlld01hcmtGb3JTeW5jKFdlYktpdFdlYlZpZXcqLCBnYm9vbGVhbik7CisjZW5kaWYK
IH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117236</attachid>
            <date>2011-11-30 11:27:38 -0800</date>
            <delta_ts>2011-11-30 11:32:42 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>acc_boilerplate.patch</filename>
            <type>text/plain</type>
            <size>21424</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">Y29tbWl0IDRmZWZkNDllYjQzZDdjNjhhMjljZWVhMjI4NDczYzA3OTk1NmJiMjAKQXV0aG9yOiBB
bGVqYW5kcm8gRy4gQ2FzdHJvIDxhbGV4QGlnYWxpYS5jb20+CkRhdGU6ICAgU2F0IE5vdiAyNiAx
MToyMDo0NiAyMDExICswMTAwCgogICAgMjAxMS0xMS0zMCAgQWxlamFuZHJvIEcuIENhc3RybyAg
PGFsZXhAaWdhbGlhLmNvbT4KICAgIAogICAgICAgICAgICBbR1RLXSBBZGQgVGV4dHVyZU1hcHBl
ckNhaXJvIGJvaWxlcnBsYXRlIGltcGxlbWVudGF0aW9uCiAgICAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MAogICAgCiAgICAgICAgICAgIEFkZCB0
ZXh0dXJlIG1hcHBlciBnbHVlIHRvIHRoZSB3aWRnZXQgYW5kIGNocm9tZSBjbGllbnQuCiAgICAK
ICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgICAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgogICAgICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKToKICAgICAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KToKICAgICAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJTeW5jKToKICAgICAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29t
cG9zaXRpbmdUcmlnZ2Vycyk6CiAgICAgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgogICAgICAgICAgICAod2ViVmlld1NldFJvb3RHcmFwaGljc0xheWVyKToKICAgICAgICAgICAg
KHdlYlZpZXdNYXJrRm9yU3luYyk6CiAgICAgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdw
cml2YXRlLmg6CiAgICAKICAgIDIwMTEtMTEtMzAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4
QGlnYWxpYS5jb20+CiAgICAKICAgICAgICAgICAgW0dUS10gQWRkIFRleHR1cmVNYXBwZXJDYWly
byBib2lsZXJwbGF0ZSBpbXBsZW1lbnRhdGlvbgogICAgICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDAKICAgIAogICAgICAgICAgICBBZGQgVGV4dHVy
ZU1hcHBlckNhaXJvIGNsYXNzIGFuZCBUZXh0dXJlTWFwcGVyIGNsYXNzZXMgY29tcGlsYXRpb24K
ICAgICAgICAgICAgZm9yIEdUSysuCiAgICAKICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCiAgICAKICAgICAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKICAgICAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgogICAgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dDNELmg6CiAgICAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5jcHA6CiAgICAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oOgogICAgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dDNEQ2Fpcm8uY3BwOgogICAgICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBs
YXRmb3JtTGF5ZXIpOgogICAgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1
cmVNYXBwZXJDYWlyby5jcHA6IEFkZGVkLgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4
dHVyZUNhaXJvOjpkZXN0cm95KToKICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVD
YWlybzo6c2l6ZSk6CiAgICAgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OnJl
c2V0KToKICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6YmVnaW5QYWlu
dCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OmVuZFBhaW50KToK
ICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dXBkYXRlQ29udGVudHMp
OgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpzYXZlKToKICAgICAg
ICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6c2V0Q29udGVudHNUb0ltYWdlKToK
ICAgICAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6YmVnaW5DbGlwKToKICAg
ICAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZW5kQ2xpcCk6CiAgICAgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnZpZXdwb3J0U2l6ZSk6CiAgICAgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OlRleHR1cmVNYXBwZXJDYWlybyk6CiAg
ICAgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnNldEdyYXBoaWNzQ29udGV4
dCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmdyYXBoaWNzQ29u
dGV4dCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmJpbmRTdXJm
YWNlKToKICAgICAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZHJhd1RleHR1
cmUpOgogICAgICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6Y3JlYXRlKToKICAgICAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6Y3JlYXRlVGV4dHVyZSk6CiAgICAg
ICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OkJpdG1hcFRleHR1cmVDYWlybyk6
CiAgICAgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmJlZ2luUGFpbnRpbmcp
OgogICAgICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckNhaXJvOjplbmRQYWludGluZyk6
CiAgICAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1hcHBlckNhaXJv
Lmg6IEFkZGVkLgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjp+Qml0
bWFwVGV4dHVyZUNhaXJvKToKICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWly
bzo6aXNWYWxpZCk6CiAgICAgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlQ2Fpcm86OnNv
dXJjZVJlY3QpOgogICAgICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpwYWNr
KToKICAgICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dW5wYWNrKToKICAg
ICAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6aXNQYWNrZWQpOgogICAgICAg
ICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpjcik6CiAgICAgICAgICAgIChXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmFsbG93U3VyZmFjZUZvclJvb3QpOgogICAgICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckNhaXJvOjpjcmVhdGUpOgoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
NjhiZTE4Li42ZDIzOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMTEtMTEtMzAg
IEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
QWRkIFRleHR1cmVNYXBwZXJDYWlybyBib2lsZXJwbGF0ZSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDAKKworICAgICAg
ICBBZGQgVGV4dHVyZU1hcHBlckNhaXJvIGNsYXNzIGFuZCBUZXh0dXJlTWFwcGVyIGNsYXNzZXMg
Y29tcGlsYXRpb24KKyAgICAgICAgZm9yIEdUSysuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpkZXN0cm95KToKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6c2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCaXRtYXBUZXh0dXJlQ2Fpcm86OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVDYWlybzo6YmVnaW5QYWludCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
Q2Fpcm86OmVuZFBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6
dXBkYXRlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpz
YXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6c2V0Q29udGVudHNU
b0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6YmVnaW5DbGlw
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZW5kQ2xpcCk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnZpZXdwb3J0U2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OlRleHR1cmVNYXBwZXJDYWlybyk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OnNldEdyYXBoaWNzQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmdyYXBoaWNzQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmJpbmRTdXJmYWNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDYWlybzo6ZHJhd1RleHR1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJDYWlybzo6Y3JlYXRlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBU
ZXh0dXJlQ2Fpcm86OkJpdG1hcFRleHR1cmVDYWlybyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyQ2Fpcm86OmJlZ2luUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlckNhaXJvOjplbmRQYWludGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vVGV4dHVyZU1hcHBlckNhaXJvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Qml0
bWFwVGV4dHVyZUNhaXJvOjp+Qml0bWFwVGV4dHVyZUNhaXJvKToKKyAgICAgICAgKFdlYkNvcmU6
OkJpdG1hcFRleHR1cmVDYWlybzo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBU
ZXh0dXJlQ2Fpcm86OnNvdXJjZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVy
ZUNhaXJvOjpwYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6dW5w
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVDYWlybzo6aXNQYWNrZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUNhaXJvOjpjcik6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyQ2Fpcm86OmFsbG93U3VyZmFjZUZvclJvb3QpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckNhaXJvOjpjcmVhdGUpOgorCiAyMDExLTExLTMwICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXVzZSBjYWNoZWQgc3R5
bGUgZnVsbHkgaWYgdGhlIHBhcmVudCBpbmhlcml0ZWQgc3R5bGVzIGFyZSBlcXVhbCAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KaW5kZXggYmMyYTQwYS4uZjkxODEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
QEAgLTU2Miw2ICs1NjIsMTQgQEAgd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV8zRF9SRU5E
RVJJTkc9MQogZW5kaWYgICMgRU5EIEVOQUJMRV8zRF9SRU5ERVJJTkcKIAogIyAtLS0KKyMgQ29t
cGlsZSB3aXRoIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHN1cHBvcnQKKyMgLS0tCitpZiBVU0Vf
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcKK3dlYmNvcmVfY3BwZmxhZ3MgKz0gXAorCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcAorZW5kaWYgICMgVVNF
X0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HCisKKyMgLS0tCiAjIE1IVE1MIHN1cHBvcnQKICMgLS0t
CiBpZiBFTkFCTEVfTUhUTUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDk3NjEw
OTQuLjkzNzFkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjUyOSw4ICsy
NTI5LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJvLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8uY3BwIFwKLQlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmgg
XAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXll
ckNsdXR0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0Rpc3RhbnRMaWdodFNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAgXApAQCAtNTA3MCwzICs1MDY4LDE5IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIuaAogZW5kaWYgICMgRU5EIEVOQUJMRV9SRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRQorCisjIC0tLQorIyBDb21waWxlIHdpdGggYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcg
c3VwcG9ydAorIyAtLS0KK2lmIFVTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORword2ViY29yZV9z
b3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBcCisJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaCBcCisJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJOb2RlLmNwcCBc
CisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJO
b2RlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyUGxhdGZvcm1MYXllci5oCit3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWly
by5oCitlbmRpZiAgIyBVU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IGU3
NGMwMDIuLjc4MmU5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNDg2LDYgKzQ4Niw5IEBAIHB1YmxpYzoKICNl
bGlmIFBMQVRGT1JNKEdUSykKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QoKTsKICAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVy
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dHVyZTsgfQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7CisjZW5k
aWYKICNlbGlmIFBMQVRGT1JNKEVGTCkKICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdDsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCmluZGV4IGFmYzk0NTEuLmUxOTBkMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCkBAIC0zNDcsNyArMzQ3
LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpkaXN0cmlidXRlT3BhY2l0eShmbG9hdCBhY2N1bXVs
YXRlZE9wYWNpdHkpCiAgICAgfQogfQogCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVG
TCkKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiBH
cmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyRmFjdG9yeSogR3JhcGhpY3NMYXllcjo6c19ncmFw
aGljc0xheWVyRmFjdG9yeSA9IDA7CiAKIHZvaWQgR3JhcGhpY3NMYXllcjo6c2V0R3JhcGhpY3NM
YXllckZhY3RvcnkoR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllckZhY3RvcnkgZmFjdG9yeSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApp
bmRleCA2MzM0NWNiLi45NjdmZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC02OCw3ICs2OCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIExheWVyQ2hyb21pdW07CiB0eXBlZGVmIExheWVyQ2hyb21pdW0gUGxhdGZv
cm1MYXllcjsKIH0KLSNlbGlmIFBMQVRGT1JNKEVGTCkKKyNlbGlmIFBMQVRGT1JNKEVGTCkgfHwg
UExBVEZPUk0oR1RLKQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXI7CiB0eXBlZGVmIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIFBsYXRmb3Jt
TGF5ZXI7CkBAIC0zODIsNyArMzgyLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCB1c2luZ1RpbGVk
TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3VzaW5nVGlsZWRMYXllcjsgfQogCi0jaWYgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZM
KSB8fCBQTEFURk9STShHVEspCiAgICAgLy8gVGhpcyBhbGxvd3Mgc2V2ZXJhbCBhbHRlcm5hdGl2
ZSBHcmFwaGljc0xheWVyIGltcGxlbWVudGF0aW9ucyBpbiB0aGUgc2FtZSBwb3J0LAogICAgIC8v
IGUuZy4gaWYgYSBkaWZmZXJlbnQgR3JhcGhpY3NMYXllciBpbXBsZW1lbnRhdGlvbiBpcyBuZWVk
ZWQgaW4gV2ViS2l0MSB2cy4gV2ViS2l0Mi4KICAgICB0eXBlZGVmIFBhc3NPd25QdHI8R3JhcGhp
Y3NMYXllcj4gR3JhcGhpY3NMYXllckZhY3RvcnkoR3JhcGhpY3NMYXllckNsaWVudCopOwpAQCAt
NDU0LDcgKzQ1NCw3IEBAIHByb3RlY3RlZDoKIAogICAgIGludCBtX3JlcGFpbnRDb3VudDsKIAot
I2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oUVQpIHx8IFBM
QVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKQogICAgIHN0YXRpYyBHcmFwaGljc0xheWVyOjpH
cmFwaGljc0xheWVyRmFjdG9yeSogc19ncmFwaGljc0xheWVyRmFjdG9yeTsKICNlbmRpZgogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKaW5kZXggYzkwZDhhYi4uYjVlMTIzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhp
Y3NDb250ZXh0M0RDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAKQEAgLTExNSw2ICsxMTUsMTMgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhQYXNzT3duUHRy
PENvbnRleHRMb3N0Q2FsbGJhY2s+KQogewogfQogCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIo
KSBjb25zdAoreworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0dXJlTWFwcGVyQ2Fpcm8uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxZDhiMjAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9UZXh0dXJlTWFw
cGVyQ2Fpcm8uY3BwCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJp
Z2h0IChDKSAyMDExIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
IlRleHR1cmVNYXBwZXJDYWlyby5oIgorCisjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQg
Qml0bWFwVGV4dHVyZUNhaXJvOjpkZXN0cm95KCkKK3sKKyAgICBpZiAobV9jb250ZXh0KQorICAg
ICAgICBkZWxldGUgbV9jb250ZXh0OworfQorCisKK0ludFNpemUgQml0bWFwVGV4dHVyZUNhaXJv
OjpzaXplKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRT
aXplKCk7Cit9CisKK3ZvaWQgQml0bWFwVGV4dHVyZUNhaXJvOjpyZXNldChjb25zdCBJbnRTaXpl
JiBzaXplLCBib29sIGlzT3BhcXVlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1Bs
YXRmb3JtR3JhcGhpY3NDb250ZXh0KiBCaXRtYXBUZXh0dXJlQ2Fpcm86OmJlZ2luUGFpbnQoY29u
c3QgSW50UmVjdCYgZGlydHlSZWN0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG1fY29udGV4dDsKK30KKwordm9pZCBCaXRtYXBUZXh0dXJlQ2Fpcm86OmVuZFBhaW50KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEJpdG1hcFRleHR1cmVDYWlybzo6
dXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQgcGl4ZWxGb3JtYXQsIGNvbnN0IEludFJlY3QmIHJl
Y3QsIHZvaWQqIGJpdHMpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworCitib29sIEJp
dG1hcFRleHR1cmVDYWlybzo6c2F2ZShjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQml0bWFwVGV4dHVyZUNh
aXJvOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgVGV4dHVyZU1hcHBlckNhaXJvOjpiZWdpbkNsaXAoY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dHVyZU1hcHBlckNhaXJvOjplbmRDbGlw
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitJbnRTaXplIFRleHR1cmVNYXBwZXJD
YWlybzo6dmlld3BvcnRTaXplKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CisKK1RleHR1cmVNYXBwZXJDYWlybzo6VGV4dHVyZU1hcHBlckNhaXJvKCkKKyAgICA6IG1fY29u
dGV4dCgwKQoreworfQorCit2b2lkIFRleHR1cmVNYXBwZXJDYWlybzo6c2V0R3JhcGhpY3NDb250
ZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBtX2NvbnRleHQgPSBjb250ZXh0
OworfQorCitHcmFwaGljc0NvbnRleHQqIFRleHR1cmVNYXBwZXJDYWlybzo6Z3JhcGhpY3NDb250
ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0OworfQorCit2b2lkIFRleHR1cmVNYXBwZXJD
YWlybzo6YmluZFN1cmZhY2UoQml0bWFwVGV4dHVyZSogdGV4dHVyZSkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCisKK3ZvaWQgVGV4dHVyZU1hcHBlckNhaXJvOjpkcmF3VGV4dHVyZShj
b25zdCBCaXRtYXBUZXh0dXJlJiB0ZXh0dXJlLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3Qs
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtYXRyaXgsIGZsb2F0IG9wYWNpdHksIGNvbnN0
IEJpdG1hcFRleHR1cmUqIG1hc2tUZXh0dXJlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK1Bhc3NPd25QdHI8VGV4dHVyZU1hcHBlcj4gVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRleHR1cmVN
YXBwZXJDYWlybyk7Cit9CisKK1Bhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBl
ckNhaXJvOjpjcmVhdGVUZXh0dXJlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJpdG1h
cFRleHR1cmVDYWlybygpKTsKK30KKworQml0bWFwVGV4dHVyZUNhaXJvOjpCaXRtYXBUZXh0dXJl
Q2Fpcm8oKQorICAgIDogbV9jb250ZXh0KDApCisgICAgLCBtX3N1cmZhY2UoMCkKK3sKK30KKwor
dm9pZCBUZXh0dXJlTWFwcGVyQ2Fpcm86OmJlZ2luUGFpbnRpbmcoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dHVyZU1hcHBlckNhaXJvOjplbmRQYWludGluZygpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJDYWlyby5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVGV4dHVyZU1hcHBlckNhaXJvLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNhMDk2ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1RleHR1cmVNYXBwZXJD
YWlyby5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBUZXh0dXJlTWFwcGVyQ2Fpcm9faAorI2RlZmluZSBU
ZXh0dXJlTWFwcGVyQ2Fpcm9faAorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKKyNpbmNsdWRlICJSZWZQdHJDYWlyby5oIgor
I2luY2x1ZGUgInRleG1hcC9UZXh0dXJlTWFwcGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQml0bWFwVGV4dHVyZUNhaXJvIDogcHVibGljIEJpdG1hcFRleHR1cmUgeworICAg
IGZyaWVuZCBjbGFzcyBUZXh0dXJlTWFwcGVyQ2Fpcm87CitwdWJsaWM6CisgICAgQml0bWFwVGV4
dHVyZUNhaXJvKCk7CisgICAgfkJpdG1hcFRleHR1cmVDYWlybygpIHsgZGVzdHJveSgpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKKyAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCByZXNldChjb25zdCBJbnRTaXplJiwgYm9vbCBvcGFxdWUp
OworICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIGJlZ2luUGFpbnQoY29uc3Qg
SW50UmVjdCYgZGlydHlSZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKik7CisgICAgdmlydHVhbCBib29s
IHNhdmUoY29uc3QgU3RyaW5nJiBwYXRoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNv
bnN0IHsgcmV0dXJuICFtX3N1cmZhY2U7fQorICAgIEludFJlY3Qgc291cmNlUmVjdCgpIGNvbnN0
IHsgcmV0dXJuIEludFJlY3QoMCwgMCwgY29udGVudFNpemUoKS53aWR0aCgpLCBjb250ZW50U2l6
ZSgpLmhlaWdodCgpKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWNrKCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIHVucGFjaygpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1BhY2tlZCgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoUGl4ZWxGb3JtYXQs
IGNvbnN0IEludFJlY3QmLCB2b2lkKiBiaXRzKTsKKworICAgIGNhaXJvX3QqIGNyKCkgeyByZXR1
cm4gbV9jb250ZXh0LT5jcigpOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBjbGVhclJlY3QoY29u
c3QgSW50UmVjdCYpOworCisgICAgUGxhdGZvcm1Db250ZXh0Q2Fpcm8qIG1fY29udGV4dDsKKyAg
ICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3N1cmZhY2U7Cit9OworCitjbGFzcyBUZXh0dXJl
TWFwcGVyQ2Fpcm8gOiBwdWJsaWMgVGV4dHVyZU1hcHBlciB7CitwdWJsaWM6CisgICAgVGV4dHVy
ZU1hcHBlckNhaXJvKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29uc3QgQml0
bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmLCBmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRtYXBUZXh0dXJlKiBtYXNrVGV4
dHVyZSk7CisgICAgdmlydHVhbCB2b2lkIGJpbmRTdXJmYWNlKEJpdG1hcFRleHR1cmUqIHN1cmZh
Y2UpOworICAgIHZpcnR1YWwgdm9pZCBiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmLCBjb25zdCBGbG9hdFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQ2xpcCgpOworICAg
IHZpcnR1YWwgdm9pZCBzZXRHcmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0Kik7CisgICAg
dmlydHVhbCBHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCgpOworICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd1N1cmZhY2VGb3JSb290KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gY3JlYXRlVGV4dHVyZSgpOworICAgIHZp
cnR1YWwgSW50U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYmVn
aW5QYWludGluZygpOworICAgIHZpcnR1YWwgdm9pZCBlbmRQYWludGluZygpOworCisgICAgc3Rh
dGljIFBhc3NPd25QdHI8VGV4dHVyZU1hcHBlcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIo
bmV3IFRleHR1cmVNYXBwZXJDYWlybyk7IH0KK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0
KiBtX2NvbnRleHQ7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmVDYWlybz4gbV90ZXh0dXJlOwor
fTsKKworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYTBhOTgxZS4uYmNjYmM0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTExLTMwICBBbGVqYW5kcm8gRy4g
Q2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEFkZCBUZXh0dXJlTWFw
cGVyQ2Fpcm8gYm9pbGVycGxhdGUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQwCisKKyAgICAgICAgQWRkIHRleHR1cmUg
bWFwcGVyIGdsdWUgdG8gdGhlIHdpZGdldCBhbmQgY2hyb21lIGNsaWVudC4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6YXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldE5l
ZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMpOgorICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnQ6OmFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKToKKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJWaWV3U2V0Um9vdEdyYXBoaWNz
TGF5ZXIpOgorICAgICAgICAod2ViVmlld01hcmtGb3JTeW5jKToKKyAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlld3ByaXZhdGUuaDoKKwogMjAxMS0xMS0yOSAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBTSUdTRVYgd2hlbiBhIFdl
YktpdERvd25sb2FkIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCAzMjM5M2U5Li40ZjgxYTQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKQEAgLTkwMiwyMiArOTAyLDIyIEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiB2b2lkIENocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiByb290TGF5ZXIpCiB7Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIobV93ZWJWaWV3LCBy
b290TGF5ZXIpOwogfQogCiB2b2lkIENocm9tZUNsaWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2lu
Z1N5bmNocm9uaXphdGlvbigpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICB3ZWJWaWV3
TWFya0ZvclN5bmMobV93ZWJWaWV3LCBGQUxTRSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50Ojpz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHdlYlZpZXdNYXJrRm9yU3luYyhtX3dlYlZpZXcsIFRSVUUpOwogfQogCiBDaHJvbWVDbGll
bnQ6OkNvbXBvc2l0aW5nVHJpZ2dlckZsYWdzIENocm9tZUNsaWVudDo6YWxsb3dlZENvbXBvc2l0
aW5nVHJpZ2dlcnMoKSBjb25zdAogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBBbGxUcmln
Z2VyczsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKaW5kZXggNDZhYmM2MC4uMGVlM2UwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtNDg3Myw2ICs0ODczLDE4IEBAIHZvaWQgd2ViVmlld0V4
aXRGdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAjZW5kaWYKIH0KIAorI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKK3ZvaWQgd2ViVmlld1NldFJvb3RHcmFwaGljc0xh
eWVyKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCB3ZWJWaWV3TWFya0ZvclN5bmMo
V2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2Jvb2xlYW4gc2NoZWR1bGVTeW5jKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYkNv
cmU6OlBhZ2UqIGNvcmUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmgKaW5kZXggNTFlNWU4ZS4uOTJjMzU1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRl
LmgKQEAgLTExMiw2ICsxMTIsMTAgQEAgR3RrTWVudSogd2Via2l0X3dlYl92aWV3X2dldF9jb250
ZXh0X21lbnUoV2ViS2l0V2ViVmlldyopOwogdm9pZCB3ZWJWaWV3RW50ZXJGdWxsc2NyZWVuKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYkNvcmU6Ok5vZGUqKTsKIHZvaWQgd2ViVmlld0V4aXRG
dWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpOwogCisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQordm9pZCB3ZWJWaWV3U2V0Um9vdEdyYXBoaWNzTGF5ZXIoV2ViS2l0V2Vi
VmlldyosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKK3ZvaWQgd2ViVmlld01hcmtGb3JTeW5j
KFdlYktpdFdlYlZpZXcqLCBnYm9vbGVhbik7CisjZW5kaWYKIH0KIAogI2VuZGlmCg==
</data>
<flag name="review"
          id="116614"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>