<?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>81785</bug_id>
          
          <creation_ts>2012-03-21 08:37:46 -0700</creation_ts>
          <short_desc>[GTK] Build fix for Accelerated Compositing with Clutter</short_desc>
          <delta_ts>2012-12-23 17:19:29 -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>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>73767</blocked>
    
    <blocked>105699</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joone Hur">joone.hur</reporter>
          <assigned_to name="Joone Hur">joone.hur</assigned_to>
          <cc>alex</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>584159</commentid>
    <comment_count>0</comment_count>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2012-03-21 08:37:46 -0700</bug_when>
    <thetext>AcceleratedCompositingContext was introduced to isolate different accelerated compositing implementations: r104194(https://bugs.webkit.org/show_bug.cgi?id=75519).
However, Clutter implementation doesn&apos;t build with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584216</commentid>
    <comment_count>1</comment_count>
      <attachid>133060</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2012-03-21 09:27:31 -0700</bug_when>
    <thetext>Created attachment 133060
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584297</commentid>
    <comment_count>2</comment_count>
      <attachid>133060</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-21 10:26:43 -0700</bug_when>
    <thetext>Comment on attachment 133060
Proposed Patch

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

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp:39
&gt;  #include &quot;Extensions3DOpenGL.h&quot;
&gt;  #include &quot;GraphicsContext3DPrivate.h&quot;
&gt;  #include &quot;Image.h&quot;
&gt; +#include &quot;NotImplemented.h&quot;
&gt;  #include &quot;OpenGLShims.h&quot;
&gt;  #include &quot;PlatformContextCairo.h&quot;
&gt;  #include &quot;RefPtrCairo.h&quot;

Clutter is going to need its own GraphicsContext3D right? Why not just add a stub?

&gt; Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h:75
&gt; -    OwnPtr&lt;WebCore::GraphicsLayer&gt; m_rootGraphicsLayer;
&gt;      unsigned int m_syncTimerCallbackId;
&gt;  
&gt;  #if USE(CLUTTER)
&gt; +    WebCore::GraphicsLayer* m_rootGraphicsLayer;
&gt;      GtkWidget* m_rootLayerEmbedder;
&gt;  #elif USE(TEXTURE_MAPPER_GL)
&gt;      WebCore::GLContext* glContext();
&gt;      WebCore::TextureMapperLayer* m_rootTextureMapperLayer;
&gt; +    OwnPtr&lt;WebCore::GraphicsLayer&gt; m_rootGraphicsLayer;
&gt;      OwnPtr&lt;WebCore::TextureMapper&gt; m_textureMapper;

Why can&apos;t this be shared?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584985</commentid>
    <comment_count>3</comment_count>
      <attachid>133060</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2012-03-21 22:34:21 -0700</bug_when>
    <thetext>Comment on attachment 133060
Proposed Patch

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

&gt;&gt; Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp:39
&gt;&gt;  #include &quot;RefPtrCairo.h&quot;
&gt; 
&gt; Clutter is going to need its own GraphicsContext3D right? Why not just add a stub?

I will add GraphicsContext3DClutter later. This patch just fixes the build error.

&gt;&gt; Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h:75
&gt;&gt;      OwnPtr&lt;WebCore::TextureMapper&gt; m_textureMapper;
&gt; 
&gt; Why can&apos;t this be shared?

Currently, we just use the given layer for the root layer, but I will create a root layer to add the given layer as a child. 
Thanks you for your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585272</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-22 07:49:09 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 133060 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133060&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp:39
&gt; &gt;&gt;  #include &quot;RefPtrCairo.h&quot;
&gt; &gt; 
&gt; &gt; Clutter is going to need its own GraphicsContext3D right? Why not just add a stub?
&gt; 
&gt; I will add GraphicsContext3DClutter later. This patch just fixes the build error.

I think it makes sense to add the stub now, since in the end the file will never be shared between the two.
&gt; 
&gt; &gt;&gt; Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h:75
&gt; &gt;&gt;      OwnPtr&lt;WebCore::TextureMapper&gt; m_textureMapper;
&gt; &gt; 
&gt; &gt; Why can&apos;t this be shared?
&gt; 
&gt; Currently, we just use the given layer for the root layer, but I will create a root layer to add the given layer as a child. 

There&apos;s no need. Now that I understand why you are doing this, I don&apos;t think it needs to be changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587497</commentid>
    <comment_count>5</comment_count>
      <attachid>133060</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2012-03-25 23:53:19 -0700</bug_when>
    <thetext>Comment on attachment 133060
Proposed Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/cairo/GraphicsContext3DCairo.cpp:39
&gt;&gt;&gt;&gt;  #include &quot;RefPtrCairo.h&quot;
&gt;&gt;&gt; 
&gt;&gt;&gt; Clutter is going to need its own GraphicsContext3D right? Why not just add a stub?
&gt;&gt; 
&gt;&gt; I will add GraphicsContext3DClutter later. This patch just fixes the build error.
&gt; 
&gt; I think it makes sense to add the stub now, since in the end the file will never be shared between the two.

Okay, I will add GraphicsContext3D stub to be built with Clutter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587499</commentid>
    <comment_count>6</comment_count>
      <attachid>133737</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2012-03-25 23:54:28 -0700</bug_when>
    <thetext>Created attachment 133737
Proposed Patch2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587502</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-25 23:58:17 -0700</bug_when>
    <thetext>Attachment 133737 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/clutter/GraphicsContext3DPrivate.h:34:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/platform/graphics/clutter/GraphicsContext3DPrivate.h:40:  Missing space before {  [whitespace/braces] [5]
Source/WebCore/platform/graphics/clutter/GraphicsContext3DPrivate.h:43:  The parameter name &quot;matrix&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 9 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>587507</commentid>
    <comment_count>8</comment_count>
      <attachid>133740</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2012-03-26 00:15:12 -0700</bug_when>
    <thetext>Created attachment 133740
Proposed Patch3

Fixed style errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587770</commentid>
    <comment_count>9</comment_count>
      <attachid>133740</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-26 08:29:22 -0700</bug_when>
    <thetext>Comment on attachment 133740
Proposed Patch3

Thanks for cleaning up my mess!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587979</commentid>
    <comment_count>10</comment_count>
      <attachid>133740</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2012-03-26 12:16:18 -0700</bug_when>
    <thetext>Comment on attachment 133740
Proposed Patch3

Thank you! :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588012</commentid>
    <comment_count>11</comment_count>
      <attachid>133740</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-26 12:41:58 -0700</bug_when>
    <thetext>Comment on attachment 133740
Proposed Patch3

Clearing flags on attachment: 133740

Committed r112141: &lt;http://trac.webkit.org/changeset/112141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588013</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-26 12:42:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133060</attachid>
            <date>2012-03-21 09:27:31 -0700</date>
            <delta_ts>2012-03-25 23:54:28 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>ac_fix.patch</filename>
            <type>text/plain</type>
            <size>6355</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZWQ0YjEzLi5mNDkyOGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTItMDMtMjEgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisK
KyAgICAgICAgW0dUS10gQnVpbGQgZml4IGZvciBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB3aXRo
IENsdXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgxNzg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgd2FzIGludHJvZHVjZWQgdG8gaXNvbGF0ZSBk
aWZmZXJlbnQgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgCisgICAgICAgIGltcGxlbWVudGF0aW9u
cyhyMTA0MTk0KSwgYnV0IENsdXR0ZXIgaW1wbGVtZW50YXRpb24gZG9lc24ndCBidWlsZCB3aXRo
IGl0LgorICAgICAgICBUaGlzIGZpeGVzIHRoZSBidWlsZCBlcnJvci4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIpOgorCiAyMDEyLTAz
LTIwICBXLiBKYW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbY2hyb21pdW1dIENvbnZlcnQgVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlIHRvIGEg
Mi1EIEJlemllciBmb3IgYmV0dGVyIGNvbnRyb2wgb2YgY3VydmUgc2hhcGUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQz
RENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwCmluZGV4IGFkN2RiNDEuLjdjOTVkMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNE
Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRXh0
ZW5zaW9uczNET3BlbkdMLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgi
CiAjaW5jbHVkZSAiSW1hZ2UuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIk9wZW5HTFNoaW1zLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKICNp
bmNsdWRlICJSZWZQdHJDYWlyby5oIgpAQCAtMjQ0LDcgKzI0NSwxMiBAQCBib29sIEdyYXBoaWNz
Q29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkgY29uc3QKICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiBQbGF0Zm9ybUxheWVyKiBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1M
YXllcigpIGNvbnN0CiB7CisjaWYgVVNFKENMVVRURVIpCisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKKyNlbHNlCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKKyNlbmRp
ZgogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4YmQ2OTg4Li5jMDJhNzIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMDMtMjEgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgW0dUS10gQnVpbGQgZml4IGZvciBB
Y2NlbGVyYXRlZCBDb21wb3NpdGluZyB3aXRoIENsdXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQg
d2FzIGludHJvZHVjZWQgdG8gaXNvbGF0ZSBkaWZmZXJlbnQgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgCisgICAgICAgIGltcGxlbWVudGF0aW9ucyhyMTA0MTk0KSwgYnV0IENsdXR0ZXIgaW1wbGVt
ZW50YXRpb24gZG9lc24ndCBidWlsZCB3aXRoIGl0LgorICAgICAgICBUaGlzIGZpeGVzIHRoZSBi
dWlsZCBlcnJvci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Lmg6CisgICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRD
bHV0dGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlbmRlckxheWVyc1RvV2luZG93KToKKyAgICAg
ICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlc2l6ZVJvb3RMYXll
cik6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzeW5j
TGF5ZXJzTm93KToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OnN5bmNMYXllcnNUaW1lb3V0KToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDMtMjAg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBDb252
ZXJ0IGhhc1NwZWxsaW5nTWFya2VyIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKaW5kZXggYjI1NjdlYi4uMTEyMGQ4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCkBAIC02MywxNCArNjMsMTUgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKLSAgICBPd25QdHI8V2ViQ29y
ZTo6R3JhcGhpY3NMYXllcj4gbV9yb290R3JhcGhpY3NMYXllcjsKICAgICB1bnNpZ25lZCBpbnQg
bV9zeW5jVGltZXJDYWxsYmFja0lkOwogCiAjaWYgVVNFKENMVVRURVIpCisgICAgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciogbV9yb290R3JhcGhpY3NMYXllcjsKICAgICBHdGtXaWRnZXQqIG1fcm9v
dExheWVyRW1iZWRkZXI7CiAjZWxpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAgICAgV2ViQ29y
ZTo6R0xDb250ZXh0KiBnbENvbnRleHQoKTsKICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5
ZXIqIG1fcm9vdFRleHR1cmVNYXBwZXJMYXllcjsKKyAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhp
Y3NMYXllcj4gbV9yb290R3JhcGhpY3NMYXllcjsKICAgICBPd25QdHI8V2ViQ29yZTo6VGV4dHVy
ZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2x1
dHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwCmluZGV4IDJlOTVmYzUuLjAwYTE5MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Q2x1dHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcApAQCAtMjUsNiAr
MjUsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NMYXllci5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5j
bHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKICNpbmNsdWRlIDxjbHV0dGVyLWd0ay9jbHV0
dGVyLWd0ay5oPgogI2luY2x1ZGUgPGNsdXR0ZXIvY2x1dHRlci5oPgpAQCAtMzUsOCArMzYsOCBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OkFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAg
OiBtX3dlYlZpZXcod2ViVmlldykKLSAgICAsIG1fcm9vdEdyYXBoaWNzTGF5ZXIoMCkKICAgICAs
IG1fc3luY1RpbWVyQ2FsbGJhY2tJZCgwKQorICAgICwgbV9yb290R3JhcGhpY3NMYXllcigwKQog
ICAgICwgbV9yb290TGF5ZXJFbWJlZGRlcigwKQogewogfQpAQCAtNTIsNyArNTMsNyBAQCBib29s
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjplbmFibGVkKCkKICAgICByZXR1cm4gbV9y
b290R3JhcGhpY3NMYXllcjsKIH0KIAotYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dDo6cmVuZGVyTGF5ZXJzVG9XaW5kb3coY2Fpcm9fdCogd2lkZ2V0Q3IsIGNvbnN0IEludFJlY3Qm
IGNsaXBSZWN0KQorYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cmVuZGVyTGF5
ZXJzVG9XaW5kb3coY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDgsNyArMTA5LDcgQEAgdm9pZCBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cmVzaXplUm9vdExheWVyKGNvbnN0IEludFNpemUmIHNp
emUpCiAgICAgYWxsb2NhdGlvbi55ID0gMDsKICAgICBhbGxvY2F0aW9uLndpZHRoID0gc2l6ZS53
aWR0aCgpOwogICAgIGFsbG9jYXRpb24uaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKLSAgICBndGtf
d2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVChtX3dlYlZpZXctPnByaXYtPnJvb3RMYXll
ckVtYmVkZGVyKSwgJmFsbG9jYXRpb24pOworICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShH
VEtfV0lER0VUKG1fcm9vdExheWVyRW1iZWRkZXIpLCAmYWxsb2NhdGlvbik7CiB9CiAKIHN0YXRp
YyBnYm9vbGVhbiBzeW5jTGF5ZXJzVGltZW91dENhbGxiYWNrKEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0KiBjb250ZXh0KQpAQCAtMTI3LDExICsxMjgsMjQgQEAgdm9pZCBBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6bWFya0ZvclN5bmMoKQogICAgIG1fc3luY1RpbWVyQ2FsbGJh
Y2tJZCA9IGdfdGltZW91dF9hZGRfZnVsbChHREtfUFJJT1JJVFlfRVZFTlRTLCAwLCByZWludGVy
cHJldF9jYXN0PEdTb3VyY2VGdW5jPihzeW5jTGF5ZXJzVGltZW91dENhbGxiYWNrKSwgdGhpcywg
MCk7CiB9CiAKLXZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnN5bmNMYXllcnNU
aW1lb3V0KCkKK3ZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnN5bmNMYXllcnNO
b3coKQogeworICAgIGlmIChtX3Jvb3RHcmFwaGljc0xheWVyKQorICAgICAgICBtX3Jvb3RHcmFw
aGljc0xheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKKwogICAg
IGNvcmUobV93ZWJWaWV3KS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+c3luY0NvbXBvc2l0aW5nU3Rh
dGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKIH0KIAordm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6c3luY0xheWVyc1RpbWVvdXQoKQoreworICAgIG1fc3luY1RpbWVyQ2FsbGJhY2tJ
ZCA9IDA7CisgICAgc3luY0xheWVyc05vdygpOworICAgIGlmICghbV9yb290R3JhcGhpY3NMYXll
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVuZGVyTGF5ZXJzVG9XaW5kb3coSW50UmVjdCgp
KTsKK30KKwogdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5QW5pbWF0
aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpCiB7
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133737</attachid>
            <date>2012-03-25 23:54:28 -0700</date>
            <delta_ts>2012-03-26 00:15:12 -0700</delta_ts>
            <desc>Proposed Patch2</desc>
            <filename>ac_fix.patch</filename>
            <type>text/plain</type>
            <size>19775</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZmQ1OTM1Li43NWQ2NDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTItMDMtMjUgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisK
KyAgICAgICAgW0dUS10gQnVpbGQgZml4IGZvciBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB3aXRo
IENsdXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgxNzg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgd2FzIGludHJvZHVjZWQgdG8gaXNvbGF0ZSBk
aWZmZXJlbnQgYWNjZWxlcmF0ZWQgCisgICAgICAgIGNvbXBvc2l0aW5nIGltcGxlbWVudGF0aW9u
cyhyMTA0MTk0KSwgYnV0IHRoZSBDbHV0dGVyIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgCisgICAg
ICAgIGJ1aWxkIHdpdGggaXQuIFRoaXMgaW5jbHVkZXMgYW4gaW5pdGlhbCBpbXBsZW1lbnRhdGlv
biBvZiBHcmFwaGljc0NvbnRleHQzRCAKKyAgICAgICAgYW5kIGZpeGVzIHRoZSBidWlsZCBlcnJv
ci4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2x1dHRlci9EcmF3aW5nQnVmZmVyQ2x1dHRlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6On5EcmF3aW5nQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OnBsYXRmb3JtQ29sb3JCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1Rv
Q2FudmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzQ29u
dGV4dDNEQ2x1dHRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnBhaW50VG9DYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmlzR0xFUzJDb21wbGlhbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6Om1ha2VDb250
ZXh0Q3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6
OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6OnBhaW50VG9HcmFwaGljc0xheWVyQWN0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRFByaXZhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwbGF0Zm9ybUxheWVyKToKKwog
MjAxMi0wMy0yNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
RG9uJ3QgdXNlIENTU1J1bGVMaXN0IGZvciBjaGlsZCBydWxlIG93bmVyc2hpcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmQ4OGZlZC4uZTYxNTFmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC01Nzk3LDEwICs1Nzk3LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgg
XAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0RyYXdpbmdCdWZmZXJD
YWlyby5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAgXApA
QCAtNTgxMSw2ICs1ODA3LDIwIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0wuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCitpZiBVU0VfQ0xVVFRFUgord2ViY29yZV9zb3Vy
Y2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0RyYXdp
bmdCdWZmZXJDbHV0dGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2x1dHRlci9HcmFwaGljc0NvbnRleHQzRENsdXR0ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgKK2Vsc2UKK3dlYmNvcmVfc291cmNlcyArPSBcCisJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRHJhd2luZ0J1ZmZlckNhaXJvLmNwcCBcCisJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCitlbmRpZiAgIyBFTkQgVVNFX0NMVVRURVIK
KwogZW5kaWYgICMgRU5EIEVOQUJMRV9XRUJHTAogCiAjIC0tLQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9EcmF3aW5nQnVmZmVyQ2x1dHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0RyYXdpbmdCdWZm
ZXJDbHV0dGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjMzMmMx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1
dHRlci9EcmF3aW5nQnVmZmVyQ2x1dHRlci5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAxMiwgQ29sbGFib3JhIEx0ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSB8fCBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRl
ICJEcmF3aW5nQnVmZmVyLmgiCisKKyNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRT
aXplJiBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG11bHRpc2FtcGxl
RXh0ZW5zaW9uU3VwcG9ydGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHBh
Y2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvblN1cHBvcnRlZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBzZXBhcmF0ZUJhY2tpbmdUZXh0dXJlKQoreworfQorCitEcmF3aW5nQnVm
ZmVyOjp+RHJhd2luZ0J1ZmZlcigpCit7Cit9CisKK1BsYXRmb3JtM0RPYmplY3QgRHJhd2luZ0J1
ZmZlcjo6cGxhdGZvcm1Db2xvckJ1ZmZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29sb3JC
dWZmZXI7Cit9CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCit2b2lkIERyYXdp
bmdCdWZmZXI6OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhDYW52YXNSZW5kZXJpbmdD
b250ZXh0KiBjb250ZXh0KQoreworfQorI2VuZGlmCisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzQ29udGV4
dDNEQ2x1dHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVy
L0dyYXBoaWNzQ29udGV4dDNEQ2x1dHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uY2EwZmZkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RDbHV0dGVyLmNwcApAQCAtMCww
ICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorICogQ29weXJp
Z2h0IChDKSAyMDEyIENvbGxhYm9yYSBMdGQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorCisj
aW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYv
Tm90Rm91bmQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4
dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK3sKKyAgICBSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRl
cywgaG9zdFdpbmRvdywgZmFsc2UpKTsKKyAgICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7Cit9
CisKK0dyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQz
RDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBib29sKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0dyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhp
Y3NDb250ZXh0M0QoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWFnZSogaW1hZ2UsIHVuc2lnbmVkIGludCBmb3Jt
YXQsIHVuc2lnbmVkIGludCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3Jl
R2FtbWFBbmRDb2xvclByb2ZpbGUsIFZlY3Rvcjx1aW50OF90PiYgb3V0cHV0VmVjdG9yKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpwYWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4
ZWxzLCBpbnQgaW1hZ2VXaWR0aCwgaW50IGltYWdlSGVpZ2h0LCBpbnQgY2FudmFzV2lkdGgsIGlu
dCBjYW52YXNIZWlnaHQsIFBsYXRmb3JtQ29udGV4dENhaXJvKiBjb250ZXh0KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRM
b3N0Q2FsbGJhY2soUGFzc093blB0cjxDb250ZXh0TG9zdENhbGxiYWNrPikKK3sKK30KKwordm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soUGFzc093blB0cjxF
cnJvck1lc3NhZ2VDYWxsYmFjaz4pCit7Cit9CisKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1h
a2VDb250ZXh0Q3VycmVudCgpCit7CisgICAgaWYgKCFtX3ByaXZhdGUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKK30K
K1BsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0M0QoKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnBsYXRmb3JtQ29udGV4
dCgpOworfQorCitib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCitQbGF0Zm9ybUxheWVyKiBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1MYXllcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cGxhdGZvcm1MYXllcigpOworfQorI2Vu
ZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jYWQxNzBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
Y3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgSWdh
bGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQor
ICogIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKKworI2lmIEVO
QUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU+IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dDNEKiBjb250ZXh0LCBIb3N0V2luZG93KiB3aW5kb3cpCit7CisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoY29udGV4dCwgd2luZG93KSk7
Cit9CisKK0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBIb3N0V2luZG93KiB3aW5kb3cpCisgICAgOiBt
X2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fd2luZG93KHdpbmRvdykKK3sKK30KKworR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlOjp+R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKCkKK3sKK30KKwor
Ym9vbCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6Om1ha2VDb250ZXh0Q3VycmVudCgpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAgICByZXR1cm4gMDsKK30K
KworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENMVVRURVIpCit2b2lk
IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGFpbnRUb0dyYXBoaWNzTGF5ZXJBY3RvcihDbHV0
dGVyQWN0b3IqLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSkKK3sKK30KKyNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRV9XRUJHTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2x1dHRlci9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM4ZWJhNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBJ
Z2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbGxhYm9yYSBMdGQuCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKKyAqICBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaWZuZGVmIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZV9oCisjZGVmaW5lIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZV9oCisKKyNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVUVEVSKQorI2luY2x1ZGUgPGNs
dXR0ZXIvY2x1dHRlci5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlCit7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25Q
dHI8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBI
b3N0V2luZG93Kik7CisgICAgfkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpOworICAgIGJvb2wg
bWFrZUNvbnRleHRDdXJyZW50KCk7CisgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0
Zm9ybUNvbnRleHQoKTsKKyAgICBDbHV0dGVyQWN0b3IqIHBsYXRmb3JtTGF5ZXIoKXtyZXR1cm4g
bV9sYXllcjt9CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVU
VEVSKQorICAgIHZpcnR1YWwgdm9pZCBwYWludFRvR3JhcGhpY3NMYXllckFjdG9yKENsdXR0ZXJB
Y3RvciosIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgbWF0cml4LCBmbG9hdCBvcGFjaXR5KTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIEdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRCosIEhvc3RXaW5kb3cqKTsKKwor
ICAgIEdyYXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7CisgICAgSG9zdFdpbmRvdyogbV93aW5k
b3c7CisgICAgQ2x1dHRlckFjdG9yKiBtX2xheWVyOworfTsKKworfQorCisjZW5kaWYgLy8gR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA4NzQ5ZGNjLi41NTI1
NWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMDMtMjUgIEpvb25l
IEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgW0dUS10gQnVpbGQg
Zml4IGZvciBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB3aXRoIENsdXR0ZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNzg1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQgd2FzIGludHJvZHVjZWQgdG8gaXNvbGF0ZSBkaWZmZXJlbnQgYWNjZWxlcmF0ZWQg
CisgICAgICAgIGNvbXBvc2l0aW5nIGltcGxlbWVudGF0aW9ucyhyMTA0MTk0KSwgYnV0IHRoZSBD
bHV0dGVyIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QKKyAgICAgICAgYnVpbGQgd2l0aCBpdC4gVGhp
cyBmaXhlcyB0aGUgYnVpbGQgZXJyb3IuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oOgorICAgICAgICAoQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Q2x1dHRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpyZW5kZXJMYXllcnNUb1dp
bmRvdyk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpy
ZXNpemVSb290TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6c3luY0xheWVyc05vdyk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0OjpzeW5jTGF5ZXJzVGltZW91dCk6CisgICAgICAgIChXZWJLaXQpOgor
CiAyMDEyLTAzLTI0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBSZXBsYWNlIG9jY3VycmVuY2VzIG9mICJ1cmkiIGluIHRoZSBkb2N1bWVu
dGF0aW9uIHdpdGggIlVSSSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCmluZGV4IGIy
NTY3ZWIuLjExMjBkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaApAQCAtNjMs
MTQgKzYzLDE1IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBXZWJLaXRXZWJWaWV3KiBtX3dl
YlZpZXc7Ci0gICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdEdyYXBoaWNz
TGF5ZXI7CiAgICAgdW5zaWduZWQgaW50IG1fc3luY1RpbWVyQ2FsbGJhY2tJZDsKIAogI2lmIFVT
RShDTFVUVEVSKQorICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIG1fcm9vdEdyYXBoaWNzTGF5
ZXI7CiAgICAgR3RrV2lkZ2V0KiBtX3Jvb3RMYXllckVtYmVkZGVyOwogI2VsaWYgVVNFKFRFWFRV
UkVfTUFQUEVSX0dMKQogICAgIFdlYkNvcmU6OkdMQ29udGV4dCogZ2xDb250ZXh0KCk7CiAgICAg
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyKiBtX3Jvb3RUZXh0dXJlTWFwcGVyTGF5ZXI7Cisg
ICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdEdyYXBoaWNzTGF5ZXI7CiAg
ICAgT3duUHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXI+IG1fdGV4dHVyZU1hcHBlcjsKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcAppbmRl
eCAyZTk1ZmM1Li4wMGExOTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0Q2x1dHRlci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCiAj
aW5jbHVkZSA8Y2x1dHRlci1ndGsvY2x1dHRlci1ndGsuaD4KICNpbmNsdWRlIDxjbHV0dGVyL2Ns
dXR0ZXIuaD4KQEAgLTM1LDggKzM2LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dChXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBtX3Jv
b3RHcmFwaGljc0xheWVyKDApCiAgICAgLCBtX3N5bmNUaW1lckNhbGxiYWNrSWQoMCkKKyAgICAs
IG1fcm9vdEdyYXBoaWNzTGF5ZXIoMCkKICAgICAsIG1fcm9vdExheWVyRW1iZWRkZXIoMCkKIHsK
IH0KQEAgLTUyLDcgKzUzLDcgQEAgYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6
ZW5hYmxlZCgpCiAgICAgcmV0dXJuIG1fcm9vdEdyYXBoaWNzTGF5ZXI7CiB9CiAKLWJvb2wgQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlbmRlckxheWVyc1RvV2luZG93KGNhaXJvX3Qq
IHdpZGdldENyLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKK2Jvb2wgQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ6OnJlbmRlckxheWVyc1RvV2luZG93KGNvbnN0IEludFJlY3QmIGNsaXBS
ZWN0KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTA4
LDcgKzEwOSw3IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlc2l6ZVJv
b3RMYXllcihjb25zdCBJbnRTaXplJiBzaXplKQogICAgIGFsbG9jYXRpb24ueSA9IDA7CiAgICAg
YWxsb2NhdGlvbi53aWR0aCA9IHNpemUud2lkdGgoKTsKICAgICBhbGxvY2F0aW9uLmhlaWdodCA9
IHNpemUuaGVpZ2h0KCk7Ci0gICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQo
bV93ZWJWaWV3LT5wcml2LT5yb290TGF5ZXJFbWJlZGRlciksICZhbGxvY2F0aW9uKTsKKyAgICBn
dGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUoR1RLX1dJREdFVChtX3Jvb3RMYXllckVtYmVkZGVyKSwg
JmFsbG9jYXRpb24pOwogfQogCiBzdGF0aWMgZ2Jvb2xlYW4gc3luY0xheWVyc1RpbWVvdXRDYWxs
YmFjayhBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCogY29udGV4dCkKQEAgLTEyNywxMSAr
MTI4LDI0IEBAIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6Om1hcmtGb3JTeW5j
KCkKICAgICBtX3N5bmNUaW1lckNhbGxiYWNrSWQgPSBnX3RpbWVvdXRfYWRkX2Z1bGwoR0RLX1BS
SU9SSVRZX0VWRU5UUywgMCwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oc3luY0xheWVy
c1RpbWVvdXRDYWxsYmFjayksIHRoaXMsIDApOwogfQogCi12b2lkIEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0OjpzeW5jTGF5ZXJzVGltZW91dCgpCit2b2lkIEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0OjpzeW5jTGF5ZXJzTm93KCkKIHsKKyAgICBpZiAobV9yb290R3JhcGhpY3NM
YXllcikKKyAgICAgICAgbV9yb290R3JhcGhpY3NMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVG
b3JUaGlzTGF5ZXJPbmx5KCk7CisKICAgICBjb3JlKG1fd2ViVmlldyktPm1haW5GcmFtZSgpLT52
aWV3KCktPnN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CiB9CiAKK3Zv
aWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnN5bmNMYXllcnNUaW1lb3V0KCkKK3sK
KyAgICBtX3N5bmNUaW1lckNhbGxiYWNrSWQgPSAwOworICAgIHN5bmNMYXllcnNOb3coKTsKKyAg
ICBpZiAoIW1fcm9vdEdyYXBoaWNzTGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHJlbmRl
ckxheWVyc1RvV2luZG93KEludFJlY3QoKSk7Cit9CisKIHZvaWQgQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIGRvdWJsZSB0aW1lKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133740</attachid>
            <date>2012-03-26 00:15:12 -0700</date>
            <delta_ts>2012-03-26 12:41:58 -0700</delta_ts>
            <desc>Proposed Patch3</desc>
            <filename>ac_fix.patch</filename>
            <type>text/plain</type>
            <size>19770</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZmQ1OTM1Li43NWQ2NDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTItMDMtMjUgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisK
KyAgICAgICAgW0dUS10gQnVpbGQgZml4IGZvciBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyB3aXRo
IENsdXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgxNzg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgd2FzIGludHJvZHVjZWQgdG8gaXNvbGF0ZSBk
aWZmZXJlbnQgYWNjZWxlcmF0ZWQgCisgICAgICAgIGNvbXBvc2l0aW5nIGltcGxlbWVudGF0aW9u
cyhyMTA0MTk0KSwgYnV0IHRoZSBDbHV0dGVyIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgCisgICAg
ICAgIGJ1aWxkIHdpdGggaXQuIFRoaXMgaW5jbHVkZXMgYW4gaW5pdGlhbCBpbXBsZW1lbnRhdGlv
biBvZiBHcmFwaGljc0NvbnRleHQzRCAKKyAgICAgICAgYW5kIGZpeGVzIHRoZSBidWlsZCBlcnJv
ci4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2x1dHRlci9EcmF3aW5nQnVmZmVyQ2x1dHRlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVm
ZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6On5EcmF3aW5nQnVmZmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OnBsYXRmb3JtQ29sb3JCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1Rv
Q2FudmFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzQ29u
dGV4dDNEQ2x1dHRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnBhaW50VG9DYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmlzR0xFUzJDb21wbGlhbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6fkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6Om1ha2VDb250
ZXh0Q3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6
OnBsYXRmb3JtQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6OnBhaW50VG9HcmFwaGljc0xheWVyQWN0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRFByaXZhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwbGF0Zm9ybUxheWVyKToKKwog
MjAxMi0wMy0yNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
RG9uJ3QgdXNlIENTU1J1bGVMaXN0IGZvciBjaGlsZCBydWxlIG93bmVyc2hpcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmQ4OGZlZC4uZTYxNTFmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC01Nzk3LDEwICs1Nzk3LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgg
XAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0RyYXdpbmdCdWZmZXJD
YWlyby5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAgXApA
QCAtNTgxMSw2ICs1ODA3LDIwIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0wuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCitpZiBVU0VfQ0xVVFRFUgord2ViY29yZV9zb3Vy
Y2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0RyYXdp
bmdCdWZmZXJDbHV0dGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2x1dHRlci9HcmFwaGljc0NvbnRleHQzRENsdXR0ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgKK2Vsc2UKK3dlYmNvcmVfc291cmNlcyArPSBcCisJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRHJhd2luZ0J1ZmZlckNhaXJvLmNwcCBcCisJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCitlbmRpZiAgIyBFTkQgVVNFX0NMVVRURVIK
KwogZW5kaWYgICMgRU5EIEVOQUJMRV9XRUJHTAogCiAjIC0tLQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9EcmF3aW5nQnVmZmVyQ2x1dHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0RyYXdpbmdCdWZm
ZXJDbHV0dGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjMzMmMx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1
dHRlci9EcmF3aW5nQnVmZmVyQ2x1dHRlci5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAxMiwgQ29sbGFib3JhIEx0ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSB8fCBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRl
ICJEcmF3aW5nQnVmZmVyLmgiCisKKyNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRT
aXplJiBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIG11bHRpc2FtcGxl
RXh0ZW5zaW9uU3VwcG9ydGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHBh
Y2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvblN1cHBvcnRlZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBzZXBhcmF0ZUJhY2tpbmdUZXh0dXJlKQoreworfQorCitEcmF3aW5nQnVm
ZmVyOjp+RHJhd2luZ0J1ZmZlcigpCit7Cit9CisKK1BsYXRmb3JtM0RPYmplY3QgRHJhd2luZ0J1
ZmZlcjo6cGxhdGZvcm1Db2xvckJ1ZmZlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29sb3JC
dWZmZXI7Cit9CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCit2b2lkIERyYXdp
bmdCdWZmZXI6OnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb0NhbnZhcyhDYW52YXNSZW5kZXJpbmdD
b250ZXh0KiBjb250ZXh0KQoreworfQorI2VuZGlmCisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzQ29udGV4
dDNEQ2x1dHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVy
L0dyYXBoaWNzQ29udGV4dDNEQ2x1dHRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uY2EwZmZkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RDbHV0dGVyLmNwcApAQCAtMCww
ICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorICogQ29weXJp
Z2h0IChDKSAyMDEyIENvbGxhYm9yYSBMdGQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorCisj
aW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYv
Tm90Rm91bmQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4
dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK3sKKyAgICBSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRl
cywgaG9zdFdpbmRvdywgZmFsc2UpKTsKKyAgICByZXR1cm4gY29udGV4dC5yZWxlYXNlKCk7Cit9
CisKK0dyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQz
RDo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBib29sKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0dyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhp
Y3NDb250ZXh0M0QoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWFnZSogaW1hZ2UsIHVuc2lnbmVkIGludCBmb3Jt
YXQsIHVuc2lnbmVkIGludCB0eXBlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3Jl
R2FtbWFBbmRDb2xvclByb2ZpbGUsIFZlY3Rvcjx1aW50OF90PiYgb3V0cHV0VmVjdG9yKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpwYWludFRvQ2FudmFzKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4
ZWxzLCBpbnQgaW1hZ2VXaWR0aCwgaW50IGltYWdlSGVpZ2h0LCBpbnQgY2FudmFzV2lkdGgsIGlu
dCBjYW52YXNIZWlnaHQsIFBsYXRmb3JtQ29udGV4dENhaXJvKiBjb250ZXh0KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRM
b3N0Q2FsbGJhY2soUGFzc093blB0cjxDb250ZXh0TG9zdENhbGxiYWNrPikKK3sKK30KKwordm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soUGFzc093blB0cjxF
cnJvck1lc3NhZ2VDYWxsYmFjaz4pCit7Cit9CisKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1h
a2VDb250ZXh0Q3VycmVudCgpCit7CisgICAgaWYgKCFtX3ByaXZhdGUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKK30K
K1BsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0M0QoKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnBsYXRmb3JtQ29udGV4
dCgpOworfQorCitib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCitQbGF0Zm9ybUxheWVyKiBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1MYXllcigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cGxhdGZvcm1MYXllcigpOworfQorI2Vu
ZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jYWQxNzBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
Y3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgSWdh
bGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQor
ICogIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCIKKworI2lmIEVO
QUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU+IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dDNEKiBjb250ZXh0LCBIb3N0V2luZG93KiB3aW5kb3cpCit7CisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoY29udGV4dCwgd2luZG93KSk7
Cit9CisKK0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBIb3N0V2luZG93KiB3aW5kb3cpCisgICAgOiBt
X2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fd2luZG93KHdpbmRvdykKK3sKK30KKworR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlOjp+R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKCkKK3sKK30KKwor
Ym9vbCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6Om1ha2VDb250ZXh0Q3VycmVudCgpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZTo6cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAgICByZXR1cm4gMDsKK30K
KworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENMVVRURVIpCit2b2lk
IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cGFpbnRUb0dyYXBoaWNzTGF5ZXJBY3RvcihDbHV0
dGVyQWN0b3IqLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIG1hdHJpeCwgZmxvYXQgb3BhY2l0eSkKK3sKK30KKyNlbmRpZiAvLyBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRV9XRUJHTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2x1dHRlci9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTcwZjgyZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBJ
Z2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbGxhYm9yYSBMdGQuCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKKyAqICBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaWZuZGVmIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZV9oCisjZGVmaW5lIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZV9oCisKKyNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShDTFVUVEVSKQorI2luY2x1ZGUgPGNs
dXR0ZXIvY2x1dHRlci5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0
cjxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCosIEhv
c3RXaW5kb3cqKTsKKyAgICB+R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKCk7CisgICAgYm9vbCBt
YWtlQ29udGV4dEN1cnJlbnQoKTsKKyAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRm
b3JtQ29udGV4dCgpOworICAgIENsdXR0ZXJBY3RvciogcGxhdGZvcm1MYXllcigpIHsgcmV0dXJu
IG1fbGF5ZXI7IH0KKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKENM
VVRURVIpCisgICAgdmlydHVhbCB2b2lkIHBhaW50VG9HcmFwaGljc0xheWVyQWN0b3IoQ2x1dHRl
ckFjdG9yKiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiwgZmxvYXQgb3BhY2l0eSk7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBIb3N0V2luZG93Kik7CisKKyAgICBH
cmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OworICAgIEhvc3RXaW5kb3cqIG1fd2luZG93Owor
ICAgIENsdXR0ZXJBY3RvciogbV9sYXllcjsKK307CisKK30KKworI2VuZGlmIC8vIEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggODc0OWRjYy4uNTUyNTVhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTI1ICBKb29uZSBIdXIg
IDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtHVEtdIEJ1aWxkIGZpeCBm
b3IgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcgd2l0aCBDbHV0dGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTc4NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0IHdhcyBpbnRyb2R1Y2VkIHRvIGlzb2xhdGUgZGlmZmVyZW50IGFjY2VsZXJhdGVkIAorICAg
ICAgICBjb21wb3NpdGluZyBpbXBsZW1lbnRhdGlvbnMocjEwNDE5NCksIGJ1dCB0aGUgQ2x1dHRl
ciBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0CisgICAgICAgIGJ1aWxkIHdpdGggaXQuIFRoaXMgZml4
ZXMgdGhlIGJ1aWxkIGVycm9yLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKKyAgICAgICAgKEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dENsdXR0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cmVuZGVyTGF5ZXJzVG9XaW5kb3cp
OgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cmVzaXpl
Um9vdExheWVyKToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OnN5bmNMYXllcnNOb3cpOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6c3luY0xheWVyc1RpbWVvdXQpOgorICAgICAgICAoV2ViS2l0KToKKwogMjAx
Mi0wMy0yNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gUmVwbGFjZSBvY2N1cnJlbmNlcyBvZiAidXJpIiBpbiB0aGUgZG9jdW1lbnRhdGlv
biB3aXRoICJVUkkiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaAppbmRleCBiMjU2N2Vi
Li4xMTIwZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKQEAgLTYzLDE0ICs2
MywxNSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3
OwotICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RHcmFwaGljc0xheWVy
OwogICAgIHVuc2lnbmVkIGludCBtX3N5bmNUaW1lckNhbGxiYWNrSWQ7CiAKICNpZiBVU0UoQ0xV
VFRFUikKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBtX3Jvb3RHcmFwaGljc0xheWVyOwog
ICAgIEd0a1dpZGdldCogbV9yb290TGF5ZXJFbWJlZGRlcjsKICNlbGlmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKICAgICBXZWJDb3JlOjpHTENvbnRleHQqIGdsQ29udGV4dCgpOwogICAgIFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJMYXllciogbV9yb290VGV4dHVyZU1hcHBlckxheWVyOworICAgIE93
blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RHcmFwaGljc0xheWVyOwogICAgIE93
blB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBwZXI7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Q2x1dHRlci5jcHAKaW5kZXggMmU5
NWZjNS4uMDBhMTkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENs
dXR0ZXIuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1
ZGUgPGNsdXR0ZXItZ3RrL2NsdXR0ZXItZ3RrLmg+CiAjaW5jbHVkZSA8Y2x1dHRlci9jbHV0dGVy
Lmg+CkBAIC0zNSw4ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKICAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQotICAgICwgbV9yb290R3Jh
cGhpY3NMYXllcigwKQogICAgICwgbV9zeW5jVGltZXJDYWxsYmFja0lkKDApCisgICAgLCBtX3Jv
b3RHcmFwaGljc0xheWVyKDApCiAgICAgLCBtX3Jvb3RMYXllckVtYmVkZGVyKDApCiB7CiB9CkBA
IC01Miw3ICs1Myw3IEBAIGJvb2wgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmVuYWJs
ZWQoKQogICAgIHJldHVybiBtX3Jvb3RHcmFwaGljc0xheWVyOwogfQogCi1ib29sIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpyZW5kZXJMYXllcnNUb1dpbmRvdyhjYWlyb190KiB3aWRn
ZXRDciwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCitib29sIEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0OjpyZW5kZXJMYXllcnNUb1dpbmRvdyhjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKQEAgLTEwOCw3ICsx
MDksNyBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpyZXNpemVSb290TGF5
ZXIoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBhbGxvY2F0aW9uLnkgPSAwOwogICAgIGFsbG9j
YXRpb24ud2lkdGggPSBzaXplLndpZHRoKCk7CiAgICAgYWxsb2NhdGlvbi5oZWlnaHQgPSBzaXpl
LmhlaWdodCgpOwotICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShHVEtfV0lER0VUKG1fd2Vi
Vmlldy0+cHJpdi0+cm9vdExheWVyRW1iZWRkZXIpLCAmYWxsb2NhdGlvbik7CisgICAgZ3RrX3dp
ZGdldF9zaXplX2FsbG9jYXRlKEdUS19XSURHRVQobV9yb290TGF5ZXJFbWJlZGRlciksICZhbGxv
Y2F0aW9uKTsKIH0KIAogc3RhdGljIGdib29sZWFuIHN5bmNMYXllcnNUaW1lb3V0Q2FsbGJhY2so
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQqIGNvbnRleHQpCkBAIC0xMjcsMTEgKzEyOCwy
NCBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjptYXJrRm9yU3luYygpCiAg
ICAgbV9zeW5jVGltZXJDYWxsYmFja0lkID0gZ190aW1lb3V0X2FkZF9mdWxsKEdES19QUklPUklU
WV9FVkVOVFMsIDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHN5bmNMYXllcnNUaW1l
b3V0Q2FsbGJhY2spLCB0aGlzLCAwKTsKIH0KIAotdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6c3luY0xheWVyc1RpbWVvdXQoKQordm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6c3luY0xheWVyc05vdygpCiB7CisgICAgaWYgKG1fcm9vdEdyYXBoaWNzTGF5ZXIp
CisgICAgICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOworCiAgICAgY29yZShtX3dlYlZpZXcpLT5tYWluRnJhbWUoKS0+dmlldygp
LT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwogfQogCit2b2lkIEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzeW5jTGF5ZXJzVGltZW91dCgpCit7CisgICAg
bV9zeW5jVGltZXJDYWxsYmFja0lkID0gMDsKKyAgICBzeW5jTGF5ZXJzTm93KCk7CisgICAgaWYg
KCFtX3Jvb3RHcmFwaGljc0xheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICByZW5kZXJMYXll
cnNUb1dpbmRvdyhJbnRSZWN0KCkpOworfQorCiB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqLCBkb3VibGUgdGltZSkKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>