<?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>109382</bug_id>
          
          <creation_ts>2013-02-10 11:31:22 -0800</creation_ts>
          <short_desc>[WebGL][EFL][GTK][Qt]Add support for OES_vertex_array_object.</short_desc>
          <delta_ts>2013-02-14 11:59: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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>109797</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kalyan">kalyan.kondapally</reporter>
          <assigned_to name="Kalyan">kalyan.kondapally</assigned_to>
          <cc>bajones</cc>
    
    <cc>buildbot</cc>
    
    <cc>dino</cc>
    
    <cc>gman</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kadam</cc>
    
    <cc>kbr</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>ostap73</cc>
    
    <cc>rakuco</cc>
    
    <cc>rgabor</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zarvai</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>829325</commentid>
    <comment_count>0</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-10 11:31:22 -0800</bug_when>
    <thetext>Add support for OES_vertex_array_object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829341</commentid>
    <comment_count>1</comment_count>
      <attachid>187492</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-10 13:15:41 -0800</bug_when>
    <thetext>Created attachment 187492
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829346</commentid>
    <comment_count>2</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-10 13:32:51 -0800</bug_when>
    <thetext>I had to add the following to layout test:

if (window.internals)
    window.internals.settings.setWebGLErrorsToConsoleEnabled(false);

to disable WebGL from printing errors to console, as we do a test with extension disabled.

Needed to add isSuccessfullyParsed(); at the end of file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829667</commentid>
    <comment_count>3</comment_count>
      <attachid>187492</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-11 07:30:31 -0800</bug_when>
    <thetext>Comment on attachment 187492
patch

Attachment 187492 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16488311

New failing tests:
compositing/checkerboard.html
accessibility/anchor-linked-anonymous-block-crash.html
http/tests/cache/cancel-multiple-post-xhrs.html
animations/3d/state-at-end-event-transform.html
animations/animation-add-events-in-handler.html
animations/3d/replace-filling-transform.html
http/tests/cache/history-only-cached-subresource-loads.html
compositing/bounds-in-flipped-writing-mode.html
accessibility/accessibility-node-reparent.html
animations/animation-border-overflow.html
accessibility/accessibility-object-detached.html
accessibility/anonymous-render-block-in-continuation-causes-crash.html
animations/animation-controller-drt-api.html
compositing/absolute-position-changed-with-composited-parent-layer.html
compositing/absolute-position-changed-in-composited-layer.html
http/tests/cache/iframe-304-crash.html
animations/3d/transform-perspective.html
http/tests/cache/cancel-during-failure-crash.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
canvas/philip/tests/2d.clearRect.basic.html
animations/3d/transform-origin-vs-functions.html
animations/animation-css-rule-types.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829913</commentid>
    <comment_count>4</comment_count>
      <attachid>187621</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-11 11:19:16 -0800</bug_when>
    <thetext>Created attachment 187621
patchv2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830109</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-11 14:11:14 -0800</bug_when>
    <thetext>Gregg or Brandon, could one of you take a look at this patch? I recall Chromium&apos;s implementation of this extension being more complex. Is the layout test sufficient to catch any driver bugs that might have required workarounds?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830123</commentid>
    <comment_count>6</comment_count>
      <attachid>187621</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-11 14:20:21 -0800</bug_when>
    <thetext>Comment on attachment 187621
patchv2

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

&gt; Source/WebCore/platform/graphics/OpenGLShims.cpp:132
&gt; +#if defined(GL_ARB_vertex_array_object)
&gt; +    ASSIGN_FUNCTION_TABLE_ENTRY(glBindVertexArray, success);
&gt; +#endif

Wouldn&apos;t it make sense to include these entries even if GL_ARB_vertex_array_object isn&apos;t defined in the GL headers. We could still fill them out at runtime if the machine includes different symbols.

&gt; Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp:165
&gt; +    if (name == &quot;GL_OES_vertex_array_object&quot;) {
&gt; +#if (PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL))
&gt; +        return m_availableExtensions.contains(&quot;GL_ARB_vertex_array_object&quot;);
&gt; +#else

I&apos;m guessing you want to check for both GL_OES_vertex_array_object and GL_ARB_vertex_array_object.

&gt; Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp:194
&gt; +    static bool supportsVertexArrayObject =  const_cast&lt;Extensions3DOpenGL*&gt;(this)-&gt;supports(&quot;GL_OES_vertex_array_object&quot;);
&gt; +    return supportsVertexArrayObject;
&gt; +}

It&apos;s a bit funky to cast away the constness here. Why not make supports work with const pointers or just make this method work with non-const pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830698</commentid>
    <comment_count>7</comment_count>
      <attachid>187808</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-12 01:40:27 -0800</bug_when>
    <thetext>Created attachment 187808
patchv3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830710</commentid>
    <comment_count>8</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-12 01:54:35 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 187621 [details])
&gt;We could still fill them out at runtime if the machine includes different symbols.

done.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp:165
&gt; &gt; +    if (name == &quot;GL_OES_vertex_array_object&quot;) {
&gt; &gt; +#if (PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL))
&gt; &gt; +        return m_availableExtensions.contains(&quot;GL_ARB_vertex_array_object&quot;);
&gt; &gt; +#else
&gt; 
&gt; I&apos;m guessing you want to check for both GL_OES_vertex_array_object and GL_ARB_vertex_array_object.

It should be enough to check for GL_ARB_vertex_array_object here(Extensions3DOpenGL), as we know that GL_OES_vertex_array_object is an OpenGL-ES extension.
 
&gt; It&apos;s a bit funky to cast away the constness here. Why not make supports work with const pointers or just make this method work with non-const pointers.

Done, made the method to work with non-const pointers. I did try earlier to make supports work with const pointers but ended up with a conclusion to do that change in another patch. I will probably do that after this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831030</commentid>
    <comment_count>9</comment_count>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2013-02-12 09:44:26 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Gregg or Brandon, could one of you take a look at this patch? I recall Chromium&apos;s implementation of this extension being more complex. Is the layout test sufficient to catch any driver bugs that might have required workarounds?

With the latest changes this patch looks good. All of the validation that made Chrome/Webkit&apos;s implementation complex are at a different layer, this patch is just exposing the underlying native function on new platforms, but the rest of the logic should still remain the same. The existing layout test should be sufficient to catch implementation issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831032</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-12 09:47:18 -0800</bug_when>
    <thetext>The changes to GraphicsContext3D et al. look okay to me, but someone else will likely need to review the test change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831133</commentid>
    <comment_count>11</comment_count>
      <attachid>187808</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-12 11:50:16 -0800</bug_when>
    <thetext>Comment on attachment 187808
patchv3

The test change looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831475</commentid>
    <comment_count>12</comment_count>
    <who name="Gregg Tavares">gman</who>
    <bug_when>2013-02-12 17:39:39 -0800</bug_when>
    <thetext>Looks good to me. The things that made it hard on Chrome had to do with our OpenGL ES 2.0 emulation which exposes more features than WebGL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832241</commentid>
    <comment_count>13</comment_count>
      <attachid>187808</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-13 13:08:57 -0800</bug_when>
    <thetext>Comment on attachment 187808
patchv3

Since @mrobinson indicated the code changes look OK, marking r+ and cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832278</commentid>
    <comment_count>14</comment_count>
      <attachid>187808</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 13:32:04 -0800</bug_when>
    <thetext>Comment on attachment 187808
patchv3

Clearing flags on attachment: 187808

Committed r142786: &lt;http://trac.webkit.org/changeset/142786&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832279</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 13:32:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832363</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-13 14:40:03 -0800</bug_when>
    <thetext>It broke the Qt-ARM build:

/mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/WebCore/platform/graphics/OpenGLShims.cpp: In function &apos;bool WebCore::initializeOpenGLShims()&apos;:
/mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/WebCore/platform/graphics/OpenGLShims.cpp:130:5: error: &apos;::glBindVertexArray&apos; has not been declared
/mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/WebCore/platform/graphics/OpenGLShims.cpp:152:5: error: &apos;::glDeleteVertexArrays&apos; has not been declared
/mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/WebCore/platform/graphics/OpenGLShims.cpp:162:5: error: &apos;::glGenVertexArrays&apos; has not been declared
/mnt/raptor2/slaves/qt5-linux-armv7-release/build/Source/WebCore/platform/graphics/OpenGLShims.cpp:186:5: error: &apos;::glIsVertexArray&apos; has not been declared


Gábor, could you check it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832763</commentid>
    <comment_count>17</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-02-13 23:36:24 -0800</bug_when>
    <thetext>Same problem on Windows:

OpenGLShims.cpp
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\OpenGLShims.cpp(130) : error C2039: &apos;glBindVertexArray&apos; : is not a member of &apos;`global namespace&apos;&apos;
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\OpenGLShims.cpp(130) : error C2065: &apos;glBindVertexArray&apos; : undeclared identifier
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\OpenGLShims.cpp(152) : error C2039: &apos;glDeleteVertexArrays&apos; : is not a member of &apos;`global namespace&apos;&apos;
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\OpenGLShims.cpp(152) : error C2065: &apos;glDeleteVertexArrays&apos; : undeclared identifier
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\OpenGLShims.cpp(162) : error C2039: &apos;glGenVertexArrays&apos; : is not a member of &apos;`global namespace&apos;&apos;
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\OpenGLShims.cpp(162) : error C2065: &apos;glGenVertexArrays&apos; : undeclared identifier
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\OpenGLShims.cpp(186) : error C2039: &apos;glIsVertexArray&apos; : is not a member of &apos;`global namespace&apos;&apos;
C:\WebKitBuildSlave\szeged-windows-1\qt-windows-32bit-release\build\Source\WebCore\platform\graphics\OpenGLShims.cpp(186) : error C2065: &apos;glIsVertexArray&apos; : undeclared identifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832873</commentid>
    <comment_count>18</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-02-14 02:13:38 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; It broke the Qt-ARM build:
&gt; Gábor, could you check it?

I am also looking into it. Created a separate issue for this 
https://bugs.webkit.org/show_bug.cgi?id=109797</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187492</attachid>
            <date>2013-02-10 13:15:41 -0800</date>
            <delta_ts>2013-02-11 11:19:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>oesver1.patch</filename>
            <type>text/plain</type>
            <size>17962</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGE0NjZmODguLjQxN2I5ODIgMTAwNjQ0Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTEwICBLb25k
YXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBb
V2ViR0xdW0VGTF1bR1RLXVtRdF1BZGQgc3VwcG9ydCBmb3IgT0VTX3ZlcnRleF9hcnJheV9vYmpl
Y3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkz
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFi
bGUgb2VzLXZlcnRleC1hcnJheS1vYmplY3QgZm9yIEVGTCBwb3J0LgorCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDItMTAgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TiAocjEzMjQyMik6IFBhZ2UgY29udGVudCBhbmQgc2Nyb2xsYmFycyBhcmUgaW5jb3JyZWN0bHkg
b2Zmc2V0IGFmdGVyIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQpkaWZmIC0t
Z2l0IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0
LWV4cGVjdGVkLnR4dCBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4LWFy
cmF5LW9iamVjdC1leHBlY3RlZC50eHQKaW5kZXggMzdhYmFkZC4uNWRkZjM3MiAxMDA2NDQKLS0t
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0LWV4
cGVjdGVkLnR4dAorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1h
cnJheS1vYmplY3QtZXhwZWN0ZWQudHh0CkBAIC00Nyw0ICs0Nyw1IEBAIFBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMK
IAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCi1URVNUIENPTVBMRVRFClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQorVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbCBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sCmlu
ZGV4IGNkMDc5NDMuLjNhMTNkNmEgMTAwNjQ0Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sCkBAIC0zMyw2ICszMyw5IEBA
IGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhl
IE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAKIGRlYnVnKCIiKTsKIAoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29u
c29sZUVuYWJsZWQoZmFsc2UpOworCiB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CiB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwogdmFyIGdsID0gY3JlYXRl
M0RDb250ZXh0KGNhbnZhcyk7CkBAIC01OTAsOCArNTkzLDcgQEAgZnVuY3Rpb24gcnVuQXJyYXlC
dWZmZXJCaW5kVGVzdHMoKSB7CiAKIGRlYnVnKCIiKTsKIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Citpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhM2ZhOGJjLi5l
N2E5Y2YwIDEwMDY0NAotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNDIs
OSArMzQyLDYgQEAgZmFzdC9jc3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbAogCiB3ZWJr
aXQub3JnL2IvOTkwOTYgZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXlidWZmZXItdHJhbnNmZXItb2Yt
Y29udHJvbC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIAotIyBFeHBlY3RlZCB0byBmYWlsIHVudGls
IHN1cHBvcnQgZm9yIGV4dGVuc2lvbiBpcyBpbXBsZW1lbnRlZAotd2Via2l0Lm9yZy9iLzk2ODI4
IGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQotCiAjIEV4cGVjdGVkIHRvIGZhaWwgdW50aWwgT0VTX2VsZW1lbnRfaW5kZXhfdWlu
dCBleHRlbnNpb24gaXMgaW1wbGVtZW50ZWQKIHdlYmtpdC5vcmcvYi85ODI1NyBmYXN0L2NhbnZh
cy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCmRp
ZmYgLS1naXQgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjNTMzYzQyLi5kMjFmZGIwIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMy0w
Mi0xMCAgS29uZGFwYWxseSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxseUBpbnRlbC5jb20+CisK
KyAgICAgICAgW1dlYkdMXVtFRkxdW0dUS11bUXRdQWRkIHN1cHBvcnQgZm9yIE9FU192ZXJ0ZXhf
YXJyYXlfb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5MzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVj
dC5odG1sCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIFZlcnRl
eCBBcnJheSBPYmplY3Qgd2hpbGUgdXNpbmcKKyAgICAgICAgT3BlbkdMLiBUaGUgcGF0Y2ggYWRk
cyBzdXBwb3J0IGZvciBsb2FkaW5nIHRoZSBuZWNlc3Nhcnkgb3BlbmdsIGZ1bmN0aW9ucworICAg
ICAgICBhbmQgc3VwcG9ydCBmb3IgY2hlY2tpbmcgR0xfQVJCX3ZlcnRleF9hcnJheV9vYmplY3Qu
IFRoZSBzdXBwb3J0CisgICAgICAgIGZvciBPRVNfdmVydGV4X2FycmF5X29iamVjdCBpcyBhZHZl
cnRpc2VkIGlmIEdMX0FSQl92ZXJ0ZXhfYXJyYXlfb2JqZWN0IGlzCisgICAgICAgIHN1cHBvcnRl
ZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmluaXRpYWxpemVPcGVuR0xTaGltcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvT3BlbkdMU2hpbXMuaDoKKyAgICAgICAgKF9PcGVuR0xGdW5jdGlvblRhYmxlKToK
KyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgbG9hZGluZyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9u
cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjpjcmVhdGVWZXJ0
ZXhBcnJheU9FUyk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmRlbGV0
ZVZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6
aXNWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6
OmJpbmRWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVu
R0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKworICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wu
aDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRE9wZW5HTCk6CisKIDIwMTMtMDItMTAgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CgpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKaW5kZXggYWM3ZGY2MC4uMzU3YTM1OSAxMDA2NDQK
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCkBAIC0xMjcs
NiArMTI3LDkgQEAgYm9vbCBpbml0aWFsaXplT3BlbkdMU2hpbXMoKQogICAgIEFTU0lHTl9GVU5D
VElPTl9UQUJMRV9FTlRSWShnbEJpbmRCdWZmZXIsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5D
VElPTl9UQUJMRV9FTlRSWShnbEJpbmRGcmFtZWJ1ZmZlciwgc3VjY2Vzcyk7CiAgICAgQVNTSUdO
X0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmluZFJlbmRlcmJ1ZmZlciwgc3VjY2Vzcyk7CisjaWYg
ZGVmaW5lZChHTF9BUkJfdmVydGV4X2FycmF5X29iamVjdCkKKyAgICBBU1NJR05fRlVOQ1RJT05f
VEFCTEVfRU5UUlkoZ2xCaW5kVmVydGV4QXJyYXksIHN1Y2Nlc3MpOworI2VuZGlmCiAgICAgQVNT
SUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmxlbmRDb2xvciwgc3VjY2Vzcyk7CiAgICAgQVNT
SUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmxlbmRFcXVhdGlvbiwgc3VjY2Vzcyk7CiAgICAg
QVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmxlbmRFcXVhdGlvblNlcGFyYXRlLCBzdWNj
ZXNzKTsKQEAgLTE0OCw2ICsxNTEsOSBAQCBib29sIGluaXRpYWxpemVPcGVuR0xTaGltcygpCiAg
ICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlUHJvZ3JhbSwgc3VjY2Vzcyk7
CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlUmVuZGVyYnVmZmVycywg
c3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlU2hhZGVy
LCBzdWNjZXNzKTsKKyNpZiBkZWZpbmVkKEdMX0FSQl92ZXJ0ZXhfYXJyYXlfb2JqZWN0KQorICAg
IEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbERlbGV0ZVZlcnRleEFycmF5cywgc3VjY2Vz
cyk7CisjZW5kaWYKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xEZXRhY2hTaGFk
ZXIsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbERpc2FibGVW
ZXJ0ZXhBdHRyaWJBcnJheSwgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VO
VFJZKGdsRW5hYmxlVmVydGV4QXR0cmliQXJyYXksIHN1Y2Nlc3MpOwpAQCAtMTU3LDYgKzE2Myw5
IEBAIGJvb2wgaW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCkKICAgICBBU1NJR05fRlVOQ1RJT05fVEFC
TEVfRU5UUlkoZ2xHZW5lcmF0ZU1pcG1hcCwgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9O
X1RBQkxFX0VOVFJZKGdsR2VuRnJhbWVidWZmZXJzLCBzdWNjZXNzKTsKICAgICBBU1NJR05fRlVO
Q1RJT05fVEFCTEVfRU5UUlkoZ2xHZW5SZW5kZXJidWZmZXJzLCBzdWNjZXNzKTsKKyNpZiBkZWZp
bmVkKEdMX0FSQl92ZXJ0ZXhfYXJyYXlfb2JqZWN0KQorICAgIEFTU0lHTl9GVU5DVElPTl9UQUJM
RV9FTlRSWShnbEdlblZlcnRleEFycmF5cywgc3VjY2Vzcyk7CisjZW5kaWYKICAgICBBU1NJR05f
RlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRBY3RpdmVBdHRyaWIsIHN1Y2Nlc3MpOwogICAgIEFT
U0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldEFjdGl2ZVVuaWZvcm0sIHN1Y2Nlc3MpOwog
ICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldEF0dGFjaGVkU2hhZGVycywgc3Vj
Y2Vzcyk7CkBAIC0xODAsNiArMTg5LDkgQEAgYm9vbCBpbml0aWFsaXplT3BlbkdMU2hpbXMoKQog
ICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbElzUHJvZ3JhbSwgc3VjY2Vzcyk7CiAg
ICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsSXNSZW5kZXJidWZmZXIsIHN1Y2Nlc3Mp
OwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbElzU2hhZGVyLCBzdWNjZXNzKTsK
KyNpZiBkZWZpbmVkKEdMX0FSQl92ZXJ0ZXhfYXJyYXlfb2JqZWN0KQorICAgIEFTU0lHTl9GVU5D
VElPTl9UQUJMRV9FTlRSWShnbElzVmVydGV4QXJyYXksIHN1Y2Nlc3MpOworI2VuZGlmCiAgICAg
QVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsTGlua1Byb2dyYW0sIHN1Y2Nlc3MpOwogICAg
IEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbFJlbmRlcmJ1ZmZlclN0b3JhZ2UsIHN1Y2Nl
c3MpOwogICAgIC8vIEluIEdMRVMyIHRoZXJlIGFyZSBvcHRpb25hbCBBTkdMRSBhbmQgQVBQTEUg
ZXh0ZW5zaW9ucyBmb3IgZ2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUuCmRpZmYgLS1n
aXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaCBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCmluZGV4IDNkOTY5MjcuLjE2
M2EyMjQgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xT
aGltcy5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5o
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8UVN1cmZhY2U+CiAjZWxzZQogI2luY2x1ZGUg
PEdML2dsLmg+CisjaW5jbHVkZSA8R0wvZ2xleHQuaD4KICNlbmRpZgogCiAjaWYgZGVmaW5lZChH
TF9FU19WRVJTSU9OXzJfMCkKQEAgLTUzLDYgKzU0LDcgQEAgdHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbEJpbmRBdHRyaWJMb2NhdGlvblR5cGUpIChHTHVpbnQsIEdMdWludCwgY29uc3QgY2hh
cioKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCaW5kQnVmZmVyVHlwZSkgKEdMZW51bSwg
R0x1aW50KTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCaW5kRnJhbWVidWZmZXJUeXBl
KSAoR0xlbnVtLCBHTHVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEJpbmRSZW5k
ZXJidWZmZXJUeXBlKSAoR0xlbnVtLCBHTHVpbnQpOwordHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZ
ICpnbEJpbmRWZXJ0ZXhBcnJheVR5cGUpIChHTHVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbEJsZW5kQ29sb3JUeXBlKSAoR0xjbGFtcGYsIEdMY2xhbXBmLCBHTGNsYW1wZiwgR0xj
bGFtcGYpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEJsZW5kRXF1YXRpb25UeXBlKSAo
R0xlbnVtKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCbGVuZEVxdWF0aW9uU2VwYXJh
dGVUeXBlKShHTGVudW0sIEdMZW51bSk7CkBAIC02OSw2ICs3MSw3IEBAIHR5cGVkZWYgdm9pZCAo
R0xBUElFTlRSWSAqZ2xEZWxldGVGcmFtZWJ1ZmZlcnNUeXBlKSAoR0xzaXplaSBuLCBjb25zdCBH
THVpbnQqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xEZWxldGVQcm9ncmFtVHlwZSkg
KEdMdWludCk7CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsRGVsZXRlUmVuZGVyYnVmZmVy
c1R5cGUpIChHTHNpemVpIG4sIGNvbnN0IEdMdWludCopOwogdHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbERlbGV0ZVNoYWRlclR5cGUpIChHTHVpbnQpOwordHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbERlbGV0ZVZlcnRleEFycmF5c1R5cGUpIChHTHNpemVpLCBjb25zdCBHTHVpbnQqKTsK
IHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xEZXRhY2hTaGFkZXJUeXBlKSAoR0x1aW50LCBH
THVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbERpc2FibGVWZXJ0ZXhBdHRyaWJB
cnJheVR5cGUpIChHTHVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEVuYWJsZVZl
cnRleEF0dHJpYkFycmF5VHlwZSkgKEdMdWludCk7CkBAIC03OCw2ICs4MSw3IEBAIHR5cGVkZWYg
dm9pZCAoR0xBUElFTlRSWSAqZ2xHZW5CdWZmZXJzVHlwZSkgKEdMc2l6ZWksIEdMdWludCopOwog
dHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEdlbmVyYXRlTWlwbWFwVHlwZSkgKEdMZW51bSB0
YXJnZXQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEdlbkZyYW1lYnVmZmVyc1R5cGUp
IChHTHNpemVpLCBHTHVpbnQqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xHZW5SZW5k
ZXJidWZmZXJzVHlwZSkgKEdMc2l6ZWksIEdMdWludCopOwordHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbEdlblZlcnRleEFycmF5c1R5cGUpIChHTHNpemVpLCBHTHVpbnQqKTsKIHR5cGVkZWYg
dm9pZCAoR0xBUElFTlRSWSAqZ2xHZXRBY3RpdmVBdHRyaWJUeXBlKSAoR0x1aW50LCBHTHVpbnQs
IEdMc2l6ZWksIEdMc2l6ZWkqLCBHTGludCosIEdMZW51bSosIEdMY2hhciopOwogdHlwZWRlZiB2
b2lkIChHTEFQSUVOVFJZICpnbEdldEFjdGl2ZVVuaWZvcm1UeXBlKSAoR0x1aW50LCBHTHVpbnQs
IEdMc2l6ZWksIEdMc2l6ZWkqLCBHTGludCosIEdMZW51bSosIEdMY2hhciopOwogdHlwZWRlZiB2
b2lkIChHTEFQSUVOVFJZICpnbEdldEF0dGFjaGVkU2hhZGVyc1R5cGUpIChHTHVpbnQsIEdMc2l6
ZWksIEdMc2l6ZWkqLCBHTHVpbnQqKTsKQEAgLTEwMSw2ICsxMDUsNyBAQCB0eXBlZGVmIEdMYm9v
bGVhbiAoR0xBUElFTlRSWSAqZ2xJc0ZyYW1lYnVmZmVyVHlwZSkgKEdMdWludCk7CiB0eXBlZGVm
IEdMYm9vbGVhbiAoR0xBUElFTlRSWSAqZ2xJc1Byb2dyYW1UeXBlKSAoR0x1aW50KTsKIHR5cGVk
ZWYgR0xib29sZWFuIChHTEFQSUVOVFJZICpnbElzUmVuZGVyYnVmZmVyVHlwZSkgKEdMdWludCk7
CiB0eXBlZGVmIEdMYm9vbGVhbiAoR0xBUElFTlRSWSAqZ2xJc1NoYWRlclR5cGUpIChHTHVpbnQp
OwordHlwZWRlZiBHTGJvb2xlYW4gKEdMQVBJRU5UUlkgKmdsSXNWZXJ0ZXhBcnJheVR5cGUpIChH
THVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbExpbmtQcm9ncmFtVHlwZSkgKEdM
dWludCk7CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsUmVuZGVyYnVmZmVyU3RvcmFnZVR5
cGUpIChHTGVudW0sIEdMZW51bSwgR0xzaXplaSwgR0xzaXplaSk7CiB0eXBlZGVmIHZvaWQgKEdM
QVBJRU5UUlkgKmdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlVHlwZSkgKEdMZW51bSwg
R0xzaXplaSwgR0xlbnVtLCBHTHNpemVpLCBHTHNpemVpKTsKQEAgLTE0OSw2ICsxNTQsNyBAQCB0
eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAgICAgRlVOQ1RJT05fVEFCTEVf
RU5UUlkoZ2xCaW5kQnVmZmVyKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEJpbmRGcmFt
ZWJ1ZmZlcik7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xCaW5kUmVuZGVyYnVmZmVyKTsK
KyAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEJpbmRWZXJ0ZXhBcnJheSk7CiAgICAgRlVOQ1RJ
T05fVEFCTEVfRU5UUlkoZ2xCbGVuZENvbG9yKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShn
bEJsZW5kRXF1YXRpb24pOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmxlbmRFcXVhdGlv
blNlcGFyYXRlKTsKQEAgLTE2NSw2ICsxNzEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVu
Y3Rpb25UYWJsZSB7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xEZWxldGVQcm9ncmFtKTsK
ICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMpOwogICAgIEZV
TkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlU2hhZGVyKTsKKyAgICBGVU5DVElPTl9UQUJMRV9F
TlRSWShnbERlbGV0ZVZlcnRleEFycmF5cyk7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xE
ZXRhY2hTaGFkZXIpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGlzYWJsZVZlcnRleEF0
dHJpYkFycmF5KTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEVuYWJsZVZlcnRleEF0dHJp
YkFycmF5KTsKQEAgLTE3NCw2ICsxODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rp
b25UYWJsZSB7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZW5lcmF0ZU1pcG1hcCk7CiAg
ICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZW5GcmFtZWJ1ZmZlcnMpOwogICAgIEZVTkNUSU9O
X1RBQkxFX0VOVFJZKGdsR2VuUmVuZGVyYnVmZmVycyk7CisgICAgRlVOQ1RJT05fVEFCTEVfRU5U
UlkoZ2xHZW5WZXJ0ZXhBcnJheXMpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0QWN0
aXZlQXR0cmliKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldEFjdGl2ZVVuaWZvcm0p
OwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0QXR0YWNoZWRTaGFkZXJzKTsKQEAgLTE5
Nyw2ICsyMDUsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAgICAg
RlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xJc1Byb2dyYW0pOwogICAgIEZVTkNUSU9OX1RBQkxFX0VO
VFJZKGdsSXNSZW5kZXJidWZmZXIpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsSXNTaGFk
ZXIpOworICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsSXNWZXJ0ZXhBcnJheSk7CiAgICAgRlVO
Q1RJT05fVEFCTEVfRU5UUlkoZ2xMaW5rUHJvZ3JhbSk7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5U
UlkoZ2xSZW5kZXJidWZmZXJTdG9yYWdlKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbFJl
bmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSk7CkBAIC0yNDgsNiArMjU3LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUgewogI2RlZmluZSBnbEJpbmRGcmFtZWJ1ZmZl
ciAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xCaW5kRnJhbWVidWZm
ZXIpCiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZlckVYVCAgICAgICAgICAgICAgICAgIGdsQmlu
ZFJlbmRlcmJ1ZmZlcgogI2RlZmluZSBnbEJpbmRSZW5kZXJidWZmZXIgICAgICAgICAgICAgICAg
ICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xCaW5kUmVuZGVyYnVmZmVyKQorI2RlZmluZSBnbEJp
bmRWZXJ0ZXhBcnJheSAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xC
aW5kVmVydGV4QXJyYXkpCiAjZGVmaW5lIGdsQmxlbmRDb2xvciAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEJsZW5kQ29sb3IpCiAjZGVmaW5lIGdsQmxlbmRF
cXVhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEJsZW5k
RXF1YXRpb24pCiAjZGVmaW5lIGdsQmxlbmRFcXVhdGlvblNlcGFyYXRlICAgICAgICAgICAgICAg
IExPT0tVUF9HTF9GVU5DVElPTihnbEJsZW5kRXF1YXRpb25TZXBhcmF0ZSkKQEAgLTI2OCw2ICsy
NzgsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAjZGVmaW5lIGds
RGVsZXRlUmVuZGVyYnVmZmVyc0VYVCAgICAgICAgICAgICAgIGdsRGVsZXRlUmVuZGVyYnVmZmVy
cwogI2RlZmluZSBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMgICAgICAgICAgICAgICAgICBMT09LVVBf
R0xfRlVOQ1RJT04oZ2xEZWxldGVSZW5kZXJidWZmZXJzKQogI2RlZmluZSBnbERlbGV0ZVNoYWRl
ciAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xEZWxldGVTaGFk
ZXIpCisjZGVmaW5lIGdsRGVsZXRlVmVydGV4QXJyYXlzICAgICAgICAgICAgICAgICAgIExPT0tV
UF9HTF9GVU5DVElPTihnbERlbGV0ZVZlcnRleEFycmF5cykKICNkZWZpbmUgZ2xEZXRhY2hTaGFk
ZXIgICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsRGV0YWNoU2hh
ZGVyKQogI2RlZmluZSBnbERpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSAgICAgICAgICAgICBMT09L
VVBfR0xfRlVOQ1RJT04oZ2xEaXNhYmxlVmVydGV4QXR0cmliQXJyYXkpCiAjZGVmaW5lIGdsRW5h
YmxlVmVydGV4QXR0cmliQXJyYXkgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KQpAQCAtMjgyLDYgKzI5Myw3IEBAIHR5cGVkZWYgc3RydWN0
IF9PcGVuR0xGdW5jdGlvblRhYmxlIHsKICNkZWZpbmUgZ2xHZW5GcmFtZWJ1ZmZlcnMgICAgICAg
ICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2VuRnJhbWVidWZmZXJzKQogI2Rl
ZmluZSBnbEdlblJlbmRlcmJ1ZmZlcnNFWFQgICAgICAgICAgICAgICAgICBnbEdlblJlbmRlcmJ1
ZmZlcnMKICNkZWZpbmUgZ2xHZW5SZW5kZXJidWZmZXJzICAgICAgICAgICAgICAgICAgICAgTE9P
S1VQX0dMX0ZVTkNUSU9OKGdsR2VuUmVuZGVyYnVmZmVycykKKyNkZWZpbmUgZ2xHZW5WZXJ0ZXhB
cnJheXMgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2VuVmVydGV4
QXJyYXlzKQogI2RlZmluZSBnbEdldEFjdGl2ZUF0dHJpYiAgICAgICAgICAgICAgICAgICAgICBM
T09LVVBfR0xfRlVOQ1RJT04oZ2xHZXRBY3RpdmVBdHRyaWIpCiAjZGVmaW5lIGdsR2V0QWN0aXZl
VW5pZm9ybSAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldEFjdGl2
ZVVuaWZvcm0pCiAjZGVmaW5lIGdsR2V0QXR0YWNoZWRTaGFkZXJzICAgICAgICAgICAgICAgICAg
IExPT0tVUF9HTF9GVU5DVElPTihnbEdldEF0dGFjaGVkU2hhZGVycykKQEAgLTMxMCw2ICszMjIs
NyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAjZGVmaW5lIGdsSXNS
ZW5kZXJidWZmZXJFWFQgICAgICAgICAgICAgICAgICAgIGdsSXNSZW5kZXJidWZmZXIKICNkZWZp
bmUgZ2xJc1JlbmRlcmJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNU
SU9OKGdsSXNSZW5kZXJidWZmZXIpCiAjZGVmaW5lIGdsSXNTaGFkZXIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbElzU2hhZGVyKQorI2RlZmluZSBnbElz
VmVydGV4QXJyYXkgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xJ
c1ZlcnRleEFycmF5KQogI2RlZmluZSBnbExpbmtQcm9ncmFtICAgICAgICAgICAgICAgICAgICAg
ICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xMaW5rUHJvZ3JhbSkKICNkZWZpbmUgZ2xSZW5kZXJi
dWZmZXJTdG9yYWdlRVhUICAgICAgICAgICAgICAgZ2xSZW5kZXJidWZmZXJTdG9yYWdlCiAjZGVm
aW5lIGdsUmVuZGVyYnVmZmVyU3RvcmFnZSAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5D
VElPTihnbFJlbmRlcmJ1ZmZlclN0b3JhZ2UpCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKaW5kZXgg
NmNjZjRiMi4uOWVmZTUxOSAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcApAQCAtNjQsMjIgKzY0
LDI2IEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjpyZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlz
YW1wbGUodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuCiBQbGF0Zm9ybTNET2JqZWN0IEV4dGVuc2lv
bnMzRE9wZW5HTDo6Y3JlYXRlVmVydGV4QXJyYXlPRVMoKQogewogICAgIG1fY29udGV4dC0+bWFr
ZUNvbnRleHRDdXJyZW50KCk7Ci0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFFUKSAm
JiAhUExBVEZPUk0oRUZMKSAmJiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3Qp
ICYmIEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICBHTHVpbnQgYXJyYXkgPSAwOwor
I2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpKQorICAg
IGlmIChpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCkpCisgICAgICAgIGdsR2VuVmVydGV4
QXJyYXlzKDEsICZhcnJheSk7CisjZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9v
YmplY3QpICYmIEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICBnbEdlblZlcnRleEFy
cmF5c0FQUExFKDEsICZhcnJheSk7Ci0gICAgcmV0dXJuIGFycmF5OwotI2Vsc2UKLSAgICByZXR1
cm4gMDsKICNlbmRpZgorICAgIHJldHVybiBhcnJheTsKIH0KIAogdm9pZCBFeHRlbnNpb25zM0RP
cGVuR0w6OmRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QgYXJyYXkpCiB7CiAg
ICAgaWYgKCFhcnJheSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgbV9jb250ZXh0LT5t
YWtlQ29udGV4dEN1cnJlbnQoKTsKLSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oUVQp
ICYmICFQTEFURk9STShFRkwpICYmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVj
dCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdAorI2lmIChQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpKQorICAgIGlmIChpc1ZlcnRleEFycmF5T2Jq
ZWN0U3VwcG9ydGVkKCkpCisgICAgICAgIGdsRGVsZXRlVmVydGV4QXJyYXlzKDEsICZhcnJheSk7
CisjZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYmIEdMX0FQUExF
X3ZlcnRleF9hcnJheV9vYmplY3QKICAgICBnbERlbGV0ZVZlcnRleEFycmF5c0FQUExFKDEsICZh
cnJheSk7CiAjZW5kaWYKIH0KQEAgLTg4LDE5ICs5MiwyNCBAQCBHQzNEYm9vbGVhbiBFeHRlbnNp
b25zM0RPcGVuR0w6OmlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKIHsK
ICAgICBpZiAoIWFycmF5KQogICAgICAgICByZXR1cm4gR0xfRkFMU0U7Ci0gICAgCisKICAgICBt
X2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwotI2lmICFQTEFURk9STShHVEspICYmICFQ
TEFURk9STShRVCkgJiYgIVBMQVRGT1JNKEVGTCkgJiYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhf
YXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0CisjaWYgKFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkpCisgICAgaWYgKGlzVmVy
dGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKKyAgICAgICAgcmV0dXJuIGdsSXNWZXJ0ZXhBcnJh
eShhcnJheSk7CisjZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYm
IEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICByZXR1cm4gZ2xJc1ZlcnRleEFycmF5
QVBQTEUoYXJyYXkpOwotI2Vsc2UKLSAgICByZXR1cm4gR0xfRkFMU0U7CiAjZW5kaWYKKyAgICBy
ZXR1cm4gR0xfRkFMU0U7CiB9CiAKIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjpiaW5kVmVydGV4
QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKIHsKICAgICBtX2NvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpOwotI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShRVCkgJiYg
IVBMQVRGT1JNKEVGTCkgJiYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAm
JiBHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0CisjaWYgKFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkpCisgICAgaWYgKGlzVmVydGV4QXJyYXlPYmplY3RT
dXBwb3J0ZWQoKSkKKyAgICAgICAgZ2xCaW5kVmVydGV4QXJyYXkoYXJyYXkpOworI2VsaWYgZGVm
aW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJy
YXlfb2JqZWN0CiAgICAgZ2xCaW5kVmVydGV4QXJyYXlBUFBMRShhcnJheSk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShhcnJheSk7CkBAIC0xNTEsNyArMTYwLDcgQEAgYm9vbCBFeHRlbnNpb25z
M0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKIAogICAgIC8v
IEdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgaWYgKG5hbWUgPT0gIkdMX09FU192ZXJ0
ZXhfYXJyYXlfb2JqZWN0IikKLSAgICAgICAgcmV0dXJuIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5j
b250YWlucygiR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdCIpOworICAgICAgICByZXR1cm4g
bV9hdmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2Jq
ZWN0IikgfHwgIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucygiR0xfQVJCX3ZlcnRleF9h
cnJheV9vYmplY3QiKTsKIAogICAgIC8vIERlc2t0b3AgR0wgYWx3YXlzIHN1cHBvcnRzIHRoZSBz
dGFuZGFyZCBkZXJpdmF0aXZlIGZ1bmN0aW9ucwogICAgIGlmIChuYW1lID09ICJHTF9PRVNfc3Rh
bmRhcmRfZGVyaXZhdGl2ZXMiKQpAQCAtMTcyLDYgKzE4MSwxNCBAQCBTdHJpbmcgRXh0ZW5zaW9u
czNET3BlbkdMOjpnZXRFeHRlbnNpb25zKCkKICAgICByZXR1cm4gU3RyaW5nKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsKIH0KIAor
I2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpKQorYm9v
bCBFeHRlbnNpb25zM0RPcGVuR0w6OmlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSBjb25z
dAoreworICAgIHN0YXRpYyBib29sIHN1cHBvcnRzVmVydGV4QXJyYXlPYmplY3QgPSAgY29uc3Rf
Y2FzdDxFeHRlbnNpb25zM0RPcGVuR0wqPih0aGlzKS0+c3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhf
YXJyYXlfb2JqZWN0Iik7CisgICAgcmV0dXJuIHN1cHBvcnRzVmVydGV4QXJyYXlPYmplY3Q7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKDNEX0dS
QVBISUNTKQpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0wuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKaW5kZXggM2JlYzg5Ni4uMjExYmMxZiAxMDA2NDQK
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0wuaAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTC5oCkBAIC01OSw2ICs1OSwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNFeHRlbnNpb24oY29uc3QgV1RGOjpTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIFN0cmluZyBnZXRFeHRlbnNpb25zKCk7CisjaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkpCitwcml2YXRlOgorICAgIGJvb2wgaXNWZXJ0ZXhBcnJh
eU9iamVjdFN1cHBvcnRlZCgpIGNvbnN0OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCg==
</data>
<flag name="commit-queue"
          id="207430"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187621</attachid>
            <date>2013-02-11 11:19:16 -0800</date>
            <delta_ts>2013-02-12 01:40:27 -0800</delta_ts>
            <desc>patchv2</desc>
            <filename>reviewpatch.patch</filename>
            <type>text/plain</type>
            <size>18093</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGE0NjZmODguLjQxN2I5ODIgMTAwNjQ0Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTEwICBLb25k
YXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBb
V2ViR0xdW0VGTF1bR1RLXVtRdF1BZGQgc3VwcG9ydCBmb3IgT0VTX3ZlcnRleF9hcnJheV9vYmpl
Y3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkz
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFi
bGUgb2VzLXZlcnRleC1hcnJheS1vYmplY3QgZm9yIEVGTCBwb3J0LgorCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDItMTAgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lP
TiAocjEzMjQyMik6IFBhZ2UgY29udGVudCBhbmQgc2Nyb2xsYmFycyBhcmUgaW5jb3JyZWN0bHkg
b2Zmc2V0IGFmdGVyIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQpkaWZmIC0t
Z2l0IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0
LWV4cGVjdGVkLnR4dCBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4LWFy
cmF5LW9iamVjdC1leHBlY3RlZC50eHQKaW5kZXggMzdhYmFkZC4uNWRkZjM3MiAxMDA2NDQKLS0t
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0LWV4
cGVjdGVkLnR4dAorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1h
cnJheS1vYmplY3QtZXhwZWN0ZWQudHh0CkBAIC00Nyw0ICs0Nyw1IEBAIFBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IHRoZXJlIHNob3VsZCBiZSBubyBlcnJvcnMK
IAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCi1URVNUIENPTVBMRVRFClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQorVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbCBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sCmlu
ZGV4IGNkMDc5NDMuLjNhMTNkNmEgMTAwNjQ0Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sCkBAIC0zMyw2ICszMyw5IEBA
IGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhl
IE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAKIGRlYnVnKCIiKTsKIAoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29u
c29sZUVuYWJsZWQoZmFsc2UpOworCiB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CiB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOwogdmFyIGdsID0gY3JlYXRl
M0RDb250ZXh0KGNhbnZhcyk7CkBAIC01OTAsOCArNTkzLDcgQEAgZnVuY3Rpb24gcnVuQXJyYXlC
dWZmZXJCaW5kVGVzdHMoKSB7CiAKIGRlYnVnKCIiKTsKIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Citpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwogPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci0KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhM2ZhOGJjLi5l
N2E5Y2YwIDEwMDY0NAotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNDIs
OSArMzQyLDYgQEAgZmFzdC9jc3MvZHJhZ2dhYmxlLXJlZ2lvbi1wYXJzZXIuaHRtbAogCiB3ZWJr
aXQub3JnL2IvOTkwOTYgZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXlidWZmZXItdHJhbnNmZXItb2Yt
Y29udHJvbC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIAotIyBFeHBlY3RlZCB0byBmYWlsIHVudGls
IHN1cHBvcnQgZm9yIGV4dGVuc2lvbiBpcyBpbXBsZW1lbnRlZAotd2Via2l0Lm9yZy9iLzk2ODI4
IGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQotCiAjIEV4cGVjdGVkIHRvIGZhaWwgdW50aWwgT0VTX2VsZW1lbnRfaW5kZXhfdWlu
dCBleHRlbnNpb24gaXMgaW1wbGVtZW50ZWQKIHdlYmtpdC5vcmcvYi85ODI1NyBmYXN0L2NhbnZh
cy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCmRp
ZmYgLS1naXQgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjNTMzYzQyLi5kMjFmZGIwIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMy0w
Mi0xMCAgS29uZGFwYWxseSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxseUBpbnRlbC5jb20+CisK
KyAgICAgICAgW1dlYkdMXVtFRkxdW0dUS11bUXRdQWRkIHN1cHBvcnQgZm9yIE9FU192ZXJ0ZXhf
YXJyYXlfb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5MzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVj
dC5odG1sCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIFZlcnRl
eCBBcnJheSBPYmplY3Qgd2hpbGUgdXNpbmcKKyAgICAgICAgT3BlbkdMLiBUaGUgcGF0Y2ggYWRk
cyBzdXBwb3J0IGZvciBsb2FkaW5nIHRoZSBuZWNlc3Nhcnkgb3BlbmdsIGZ1bmN0aW9ucworICAg
ICAgICBhbmQgc3VwcG9ydCBmb3IgY2hlY2tpbmcgR0xfQVJCX3ZlcnRleF9hcnJheV9vYmplY3Qu
IFRoZSBzdXBwb3J0CisgICAgICAgIGZvciBPRVNfdmVydGV4X2FycmF5X29iamVjdCBpcyBhZHZl
cnRpc2VkIGlmIEdMX0FSQl92ZXJ0ZXhfYXJyYXlfb2JqZWN0IGlzCisgICAgICAgIHN1cHBvcnRl
ZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmluaXRpYWxpemVPcGVuR0xTaGltcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvT3BlbkdMU2hpbXMuaDoKKyAgICAgICAgKF9PcGVuR0xGdW5jdGlvblRhYmxlKToK
KyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgbG9hZGluZyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9u
cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNET3BlbkdMOjpjcmVhdGVWZXJ0
ZXhBcnJheU9FUyk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmRlbGV0
ZVZlcnRleEFycmF5T0VTKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6
aXNWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6
OmJpbmRWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVu
R0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToKKworICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wu
aDoKKyAgICAgICAgKEV4dGVuc2lvbnMzRE9wZW5HTCk6CisKIDIwMTMtMDItMTAgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CgpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKaW5kZXggYWM3ZGY2MC4uMzU3YTM1OSAxMDA2NDQK
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcAorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3BwCkBAIC0xMjcs
NiArMTI3LDkgQEAgYm9vbCBpbml0aWFsaXplT3BlbkdMU2hpbXMoKQogICAgIEFTU0lHTl9GVU5D
VElPTl9UQUJMRV9FTlRSWShnbEJpbmRCdWZmZXIsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5D
VElPTl9UQUJMRV9FTlRSWShnbEJpbmRGcmFtZWJ1ZmZlciwgc3VjY2Vzcyk7CiAgICAgQVNTSUdO
X0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmluZFJlbmRlcmJ1ZmZlciwgc3VjY2Vzcyk7CisjaWYg
ZGVmaW5lZChHTF9BUkJfdmVydGV4X2FycmF5X29iamVjdCkKKyAgICBBU1NJR05fRlVOQ1RJT05f
VEFCTEVfRU5UUlkoZ2xCaW5kVmVydGV4QXJyYXksIHN1Y2Nlc3MpOworI2VuZGlmCiAgICAgQVNT
SUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmxlbmRDb2xvciwgc3VjY2Vzcyk7CiAgICAgQVNT
SUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmxlbmRFcXVhdGlvbiwgc3VjY2Vzcyk7CiAgICAg
QVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmxlbmRFcXVhdGlvblNlcGFyYXRlLCBzdWNj
ZXNzKTsKQEAgLTE0OCw2ICsxNTEsOSBAQCBib29sIGluaXRpYWxpemVPcGVuR0xTaGltcygpCiAg
ICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlUHJvZ3JhbSwgc3VjY2Vzcyk7
CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlUmVuZGVyYnVmZmVycywg
c3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlU2hhZGVy
LCBzdWNjZXNzKTsKKyNpZiBkZWZpbmVkKEdMX0FSQl92ZXJ0ZXhfYXJyYXlfb2JqZWN0KQorICAg
IEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbERlbGV0ZVZlcnRleEFycmF5cywgc3VjY2Vz
cyk7CisjZW5kaWYKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xEZXRhY2hTaGFk
ZXIsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbERpc2FibGVW
ZXJ0ZXhBdHRyaWJBcnJheSwgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VO
VFJZKGdsRW5hYmxlVmVydGV4QXR0cmliQXJyYXksIHN1Y2Nlc3MpOwpAQCAtMTU3LDYgKzE2Myw5
IEBAIGJvb2wgaW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCkKICAgICBBU1NJR05fRlVOQ1RJT05fVEFC
TEVfRU5UUlkoZ2xHZW5lcmF0ZU1pcG1hcCwgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9O
X1RBQkxFX0VOVFJZKGdsR2VuRnJhbWVidWZmZXJzLCBzdWNjZXNzKTsKICAgICBBU1NJR05fRlVO
Q1RJT05fVEFCTEVfRU5UUlkoZ2xHZW5SZW5kZXJidWZmZXJzLCBzdWNjZXNzKTsKKyNpZiBkZWZp
bmVkKEdMX0FSQl92ZXJ0ZXhfYXJyYXlfb2JqZWN0KQorICAgIEFTU0lHTl9GVU5DVElPTl9UQUJM
RV9FTlRSWShnbEdlblZlcnRleEFycmF5cywgc3VjY2Vzcyk7CisjZW5kaWYKICAgICBBU1NJR05f
RlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRBY3RpdmVBdHRyaWIsIHN1Y2Nlc3MpOwogICAgIEFT
U0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldEFjdGl2ZVVuaWZvcm0sIHN1Y2Nlc3MpOwog
ICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldEF0dGFjaGVkU2hhZGVycywgc3Vj
Y2Vzcyk7CkBAIC0xODAsNiArMTg5LDkgQEAgYm9vbCBpbml0aWFsaXplT3BlbkdMU2hpbXMoKQog
ICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbElzUHJvZ3JhbSwgc3VjY2Vzcyk7CiAg
ICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsSXNSZW5kZXJidWZmZXIsIHN1Y2Nlc3Mp
OwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbElzU2hhZGVyLCBzdWNjZXNzKTsK
KyNpZiBkZWZpbmVkKEdMX0FSQl92ZXJ0ZXhfYXJyYXlfb2JqZWN0KQorICAgIEFTU0lHTl9GVU5D
VElPTl9UQUJMRV9FTlRSWShnbElzVmVydGV4QXJyYXksIHN1Y2Nlc3MpOworI2VuZGlmCiAgICAg
QVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsTGlua1Byb2dyYW0sIHN1Y2Nlc3MpOwogICAg
IEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbFJlbmRlcmJ1ZmZlclN0b3JhZ2UsIHN1Y2Nl
c3MpOwogICAgIC8vIEluIEdMRVMyIHRoZXJlIGFyZSBvcHRpb25hbCBBTkdMRSBhbmQgQVBQTEUg
ZXh0ZW5zaW9ucyBmb3IgZ2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUuCmRpZmYgLS1n
aXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaCBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCmluZGV4IDNkOTY5MjcuLjE2
M2EyMjQgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xT
aGltcy5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5o
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8UVN1cmZhY2U+CiAjZWxzZQogI2luY2x1ZGUg
PEdML2dsLmg+CisjaW5jbHVkZSA8R0wvZ2xleHQuaD4KICNlbmRpZgogCiAjaWYgZGVmaW5lZChH
TF9FU19WRVJTSU9OXzJfMCkKQEAgLTUzLDYgKzU0LDcgQEAgdHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbEJpbmRBdHRyaWJMb2NhdGlvblR5cGUpIChHTHVpbnQsIEdMdWludCwgY29uc3QgY2hh
cioKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCaW5kQnVmZmVyVHlwZSkgKEdMZW51bSwg
R0x1aW50KTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCaW5kRnJhbWVidWZmZXJUeXBl
KSAoR0xlbnVtLCBHTHVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEJpbmRSZW5k
ZXJidWZmZXJUeXBlKSAoR0xlbnVtLCBHTHVpbnQpOwordHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZ
ICpnbEJpbmRWZXJ0ZXhBcnJheVR5cGUpIChHTHVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbEJsZW5kQ29sb3JUeXBlKSAoR0xjbGFtcGYsIEdMY2xhbXBmLCBHTGNsYW1wZiwgR0xj
bGFtcGYpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEJsZW5kRXF1YXRpb25UeXBlKSAo
R0xlbnVtKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCbGVuZEVxdWF0aW9uU2VwYXJh
dGVUeXBlKShHTGVudW0sIEdMZW51bSk7CkBAIC02OSw2ICs3MSw3IEBAIHR5cGVkZWYgdm9pZCAo
R0xBUElFTlRSWSAqZ2xEZWxldGVGcmFtZWJ1ZmZlcnNUeXBlKSAoR0xzaXplaSBuLCBjb25zdCBH
THVpbnQqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xEZWxldGVQcm9ncmFtVHlwZSkg
KEdMdWludCk7CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsRGVsZXRlUmVuZGVyYnVmZmVy
c1R5cGUpIChHTHNpemVpIG4sIGNvbnN0IEdMdWludCopOwogdHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbERlbGV0ZVNoYWRlclR5cGUpIChHTHVpbnQpOwordHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbERlbGV0ZVZlcnRleEFycmF5c1R5cGUpIChHTHNpemVpLCBjb25zdCBHTHVpbnQqKTsK
IHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xEZXRhY2hTaGFkZXJUeXBlKSAoR0x1aW50LCBH
THVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbERpc2FibGVWZXJ0ZXhBdHRyaWJB
cnJheVR5cGUpIChHTHVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEVuYWJsZVZl
cnRleEF0dHJpYkFycmF5VHlwZSkgKEdMdWludCk7CkBAIC03OCw2ICs4MSw3IEBAIHR5cGVkZWYg
dm9pZCAoR0xBUElFTlRSWSAqZ2xHZW5CdWZmZXJzVHlwZSkgKEdMc2l6ZWksIEdMdWludCopOwog
dHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEdlbmVyYXRlTWlwbWFwVHlwZSkgKEdMZW51bSB0
YXJnZXQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbEdlbkZyYW1lYnVmZmVyc1R5cGUp
IChHTHNpemVpLCBHTHVpbnQqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xHZW5SZW5k
ZXJidWZmZXJzVHlwZSkgKEdMc2l6ZWksIEdMdWludCopOwordHlwZWRlZiB2b2lkIChHTEFQSUVO
VFJZICpnbEdlblZlcnRleEFycmF5c1R5cGUpIChHTHNpemVpLCBHTHVpbnQqKTsKIHR5cGVkZWYg
dm9pZCAoR0xBUElFTlRSWSAqZ2xHZXRBY3RpdmVBdHRyaWJUeXBlKSAoR0x1aW50LCBHTHVpbnQs
IEdMc2l6ZWksIEdMc2l6ZWkqLCBHTGludCosIEdMZW51bSosIEdMY2hhciopOwogdHlwZWRlZiB2
b2lkIChHTEFQSUVOVFJZICpnbEdldEFjdGl2ZVVuaWZvcm1UeXBlKSAoR0x1aW50LCBHTHVpbnQs
IEdMc2l6ZWksIEdMc2l6ZWkqLCBHTGludCosIEdMZW51bSosIEdMY2hhciopOwogdHlwZWRlZiB2
b2lkIChHTEFQSUVOVFJZICpnbEdldEF0dGFjaGVkU2hhZGVyc1R5cGUpIChHTHVpbnQsIEdMc2l6
ZWksIEdMc2l6ZWkqLCBHTHVpbnQqKTsKQEAgLTEwMSw2ICsxMDUsNyBAQCB0eXBlZGVmIEdMYm9v
bGVhbiAoR0xBUElFTlRSWSAqZ2xJc0ZyYW1lYnVmZmVyVHlwZSkgKEdMdWludCk7CiB0eXBlZGVm
IEdMYm9vbGVhbiAoR0xBUElFTlRSWSAqZ2xJc1Byb2dyYW1UeXBlKSAoR0x1aW50KTsKIHR5cGVk
ZWYgR0xib29sZWFuIChHTEFQSUVOVFJZICpnbElzUmVuZGVyYnVmZmVyVHlwZSkgKEdMdWludCk7
CiB0eXBlZGVmIEdMYm9vbGVhbiAoR0xBUElFTlRSWSAqZ2xJc1NoYWRlclR5cGUpIChHTHVpbnQp
OwordHlwZWRlZiBHTGJvb2xlYW4gKEdMQVBJRU5UUlkgKmdsSXNWZXJ0ZXhBcnJheVR5cGUpIChH
THVpbnQpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbExpbmtQcm9ncmFtVHlwZSkgKEdM
dWludCk7CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsUmVuZGVyYnVmZmVyU3RvcmFnZVR5
cGUpIChHTGVudW0sIEdMZW51bSwgR0xzaXplaSwgR0xzaXplaSk7CiB0eXBlZGVmIHZvaWQgKEdM
QVBJRU5UUlkgKmdsUmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlVHlwZSkgKEdMZW51bSwg
R0xzaXplaSwgR0xlbnVtLCBHTHNpemVpLCBHTHNpemVpKTsKQEAgLTE0OSw2ICsxNTQsNyBAQCB0
eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAgICAgRlVOQ1RJT05fVEFCTEVf
RU5UUlkoZ2xCaW5kQnVmZmVyKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEJpbmRGcmFt
ZWJ1ZmZlcik7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xCaW5kUmVuZGVyYnVmZmVyKTsK
KyAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEJpbmRWZXJ0ZXhBcnJheSk7CiAgICAgRlVOQ1RJ
T05fVEFCTEVfRU5UUlkoZ2xCbGVuZENvbG9yKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShn
bEJsZW5kRXF1YXRpb24pOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmxlbmRFcXVhdGlv
blNlcGFyYXRlKTsKQEAgLTE2NSw2ICsxNzEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVu
Y3Rpb25UYWJsZSB7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xEZWxldGVQcm9ncmFtKTsK
ICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMpOwogICAgIEZV
TkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlU2hhZGVyKTsKKyAgICBGVU5DVElPTl9UQUJMRV9F
TlRSWShnbERlbGV0ZVZlcnRleEFycmF5cyk7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xE
ZXRhY2hTaGFkZXIpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGlzYWJsZVZlcnRleEF0
dHJpYkFycmF5KTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEVuYWJsZVZlcnRleEF0dHJp
YkFycmF5KTsKQEAgLTE3NCw2ICsxODEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rp
b25UYWJsZSB7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZW5lcmF0ZU1pcG1hcCk7CiAg
ICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZW5GcmFtZWJ1ZmZlcnMpOwogICAgIEZVTkNUSU9O
X1RBQkxFX0VOVFJZKGdsR2VuUmVuZGVyYnVmZmVycyk7CisgICAgRlVOQ1RJT05fVEFCTEVfRU5U
UlkoZ2xHZW5WZXJ0ZXhBcnJheXMpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0QWN0
aXZlQXR0cmliKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldEFjdGl2ZVVuaWZvcm0p
OwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0QXR0YWNoZWRTaGFkZXJzKTsKQEAgLTE5
Nyw2ICsyMDUsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAgICAg
RlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xJc1Byb2dyYW0pOwogICAgIEZVTkNUSU9OX1RBQkxFX0VO
VFJZKGdsSXNSZW5kZXJidWZmZXIpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsSXNTaGFk
ZXIpOworICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsSXNWZXJ0ZXhBcnJheSk7CiAgICAgRlVO
Q1RJT05fVEFCTEVfRU5UUlkoZ2xMaW5rUHJvZ3JhbSk7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5U
UlkoZ2xSZW5kZXJidWZmZXJTdG9yYWdlKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbFJl
bmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZSk7CkBAIC0yNDgsNiArMjU3LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUgewogI2RlZmluZSBnbEJpbmRGcmFtZWJ1ZmZl
ciAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xCaW5kRnJhbWVidWZm
ZXIpCiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZlckVYVCAgICAgICAgICAgICAgICAgIGdsQmlu
ZFJlbmRlcmJ1ZmZlcgogI2RlZmluZSBnbEJpbmRSZW5kZXJidWZmZXIgICAgICAgICAgICAgICAg
ICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xCaW5kUmVuZGVyYnVmZmVyKQorI2RlZmluZSBnbEJp
bmRWZXJ0ZXhBcnJheSAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xC
aW5kVmVydGV4QXJyYXkpCiAjZGVmaW5lIGdsQmxlbmRDb2xvciAgICAgICAgICAgICAgICAgICAg
ICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEJsZW5kQ29sb3IpCiAjZGVmaW5lIGdsQmxlbmRF
cXVhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEJsZW5k
RXF1YXRpb24pCiAjZGVmaW5lIGdsQmxlbmRFcXVhdGlvblNlcGFyYXRlICAgICAgICAgICAgICAg
IExPT0tVUF9HTF9GVU5DVElPTihnbEJsZW5kRXF1YXRpb25TZXBhcmF0ZSkKQEAgLTI2OCw2ICsy
NzgsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAjZGVmaW5lIGds
RGVsZXRlUmVuZGVyYnVmZmVyc0VYVCAgICAgICAgICAgICAgIGdsRGVsZXRlUmVuZGVyYnVmZmVy
cwogI2RlZmluZSBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMgICAgICAgICAgICAgICAgICBMT09LVVBf
R0xfRlVOQ1RJT04oZ2xEZWxldGVSZW5kZXJidWZmZXJzKQogI2RlZmluZSBnbERlbGV0ZVNoYWRl
ciAgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xEZWxldGVTaGFk
ZXIpCisjZGVmaW5lIGdsRGVsZXRlVmVydGV4QXJyYXlzICAgICAgICAgICAgICAgICAgIExPT0tV
UF9HTF9GVU5DVElPTihnbERlbGV0ZVZlcnRleEFycmF5cykKICNkZWZpbmUgZ2xEZXRhY2hTaGFk
ZXIgICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsRGV0YWNoU2hh
ZGVyKQogI2RlZmluZSBnbERpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSAgICAgICAgICAgICBMT09L
VVBfR0xfRlVOQ1RJT04oZ2xEaXNhYmxlVmVydGV4QXR0cmliQXJyYXkpCiAjZGVmaW5lIGdsRW5h
YmxlVmVydGV4QXR0cmliQXJyYXkgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEVu
YWJsZVZlcnRleEF0dHJpYkFycmF5KQpAQCAtMjgyLDYgKzI5Myw3IEBAIHR5cGVkZWYgc3RydWN0
IF9PcGVuR0xGdW5jdGlvblRhYmxlIHsKICNkZWZpbmUgZ2xHZW5GcmFtZWJ1ZmZlcnMgICAgICAg
ICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2VuRnJhbWVidWZmZXJzKQogI2Rl
ZmluZSBnbEdlblJlbmRlcmJ1ZmZlcnNFWFQgICAgICAgICAgICAgICAgICBnbEdlblJlbmRlcmJ1
ZmZlcnMKICNkZWZpbmUgZ2xHZW5SZW5kZXJidWZmZXJzICAgICAgICAgICAgICAgICAgICAgTE9P
S1VQX0dMX0ZVTkNUSU9OKGdsR2VuUmVuZGVyYnVmZmVycykKKyNkZWZpbmUgZ2xHZW5WZXJ0ZXhB
cnJheXMgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsR2VuVmVydGV4
QXJyYXlzKQogI2RlZmluZSBnbEdldEFjdGl2ZUF0dHJpYiAgICAgICAgICAgICAgICAgICAgICBM
T09LVVBfR0xfRlVOQ1RJT04oZ2xHZXRBY3RpdmVBdHRyaWIpCiAjZGVmaW5lIGdsR2V0QWN0aXZl
VW5pZm9ybSAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdldEFjdGl2
ZVVuaWZvcm0pCiAjZGVmaW5lIGdsR2V0QXR0YWNoZWRTaGFkZXJzICAgICAgICAgICAgICAgICAg
IExPT0tVUF9HTF9GVU5DVElPTihnbEdldEF0dGFjaGVkU2hhZGVycykKQEAgLTMxMCw2ICszMjIs
NyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVuY3Rpb25UYWJsZSB7CiAjZGVmaW5lIGdsSXNS
ZW5kZXJidWZmZXJFWFQgICAgICAgICAgICAgICAgICAgIGdsSXNSZW5kZXJidWZmZXIKICNkZWZp
bmUgZ2xJc1JlbmRlcmJ1ZmZlciAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNU
SU9OKGdsSXNSZW5kZXJidWZmZXIpCiAjZGVmaW5lIGdsSXNTaGFkZXIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbElzU2hhZGVyKQorI2RlZmluZSBnbElz
VmVydGV4QXJyYXkgICAgICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xJ
c1ZlcnRleEFycmF5KQogI2RlZmluZSBnbExpbmtQcm9ncmFtICAgICAgICAgICAgICAgICAgICAg
ICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xMaW5rUHJvZ3JhbSkKICNkZWZpbmUgZ2xSZW5kZXJi
dWZmZXJTdG9yYWdlRVhUICAgICAgICAgICAgICAgZ2xSZW5kZXJidWZmZXJTdG9yYWdlCiAjZGVm
aW5lIGdsUmVuZGVyYnVmZmVyU3RvcmFnZSAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5D
VElPTihnbFJlbmRlcmJ1ZmZlclN0b3JhZ2UpCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKaW5kZXgg
NmNjZjRiMi4uMmU2NjI0NSAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcApAQCAtNjQsMjIgKzY0
LDI2IEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjpyZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlz
YW1wbGUodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuCiBQbGF0Zm9ybTNET2JqZWN0IEV4dGVuc2lv
bnMzRE9wZW5HTDo6Y3JlYXRlVmVydGV4QXJyYXlPRVMoKQogewogICAgIG1fY29udGV4dC0+bWFr
ZUNvbnRleHRDdXJyZW50KCk7Ci0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFFUKSAm
JiAhUExBVEZPUk0oRUZMKSAmJiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3Qp
ICYmIEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICBHTHVpbnQgYXJyYXkgPSAwOwor
I2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpKQorICAg
IGlmIChpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCkpCisgICAgICAgIGdsR2VuVmVydGV4
QXJyYXlzKDEsICZhcnJheSk7CisjZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9v
YmplY3QpICYmIEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICBnbEdlblZlcnRleEFy
cmF5c0FQUExFKDEsICZhcnJheSk7Ci0gICAgcmV0dXJuIGFycmF5OwotI2Vsc2UKLSAgICByZXR1
cm4gMDsKICNlbmRpZgorICAgIHJldHVybiBhcnJheTsKIH0KIAogdm9pZCBFeHRlbnNpb25zM0RP
cGVuR0w6OmRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QgYXJyYXkpCiB7CiAg
ICAgaWYgKCFhcnJheSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgbV9jb250ZXh0LT5t
YWtlQ29udGV4dEN1cnJlbnQoKTsKLSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oUVQp
ICYmICFQTEFURk9STShFRkwpICYmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVj
dCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdAorI2lmIChQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpKQorICAgIGlmIChpc1ZlcnRleEFycmF5T2Jq
ZWN0U3VwcG9ydGVkKCkpCisgICAgICAgIGdsRGVsZXRlVmVydGV4QXJyYXlzKDEsICZhcnJheSk7
CisjZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYmIEdMX0FQUExF
X3ZlcnRleF9hcnJheV9vYmplY3QKICAgICBnbERlbGV0ZVZlcnRleEFycmF5c0FQUExFKDEsICZh
cnJheSk7CiAjZW5kaWYKIH0KQEAgLTg4LDE5ICs5MiwyNCBAQCBHQzNEYm9vbGVhbiBFeHRlbnNp
b25zM0RPcGVuR0w6OmlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKIHsK
ICAgICBpZiAoIWFycmF5KQogICAgICAgICByZXR1cm4gR0xfRkFMU0U7Ci0gICAgCisKICAgICBt
X2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwotI2lmICFQTEFURk9STShHVEspICYmICFQ
TEFURk9STShRVCkgJiYgIVBMQVRGT1JNKEVGTCkgJiYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhf
YXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0CisjaWYgKFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkpCisgICAgaWYgKGlzVmVy
dGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQoKSkKKyAgICAgICAgcmV0dXJuIGdsSXNWZXJ0ZXhBcnJh
eShhcnJheSk7CisjZWxpZiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYm
IEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICByZXR1cm4gZ2xJc1ZlcnRleEFycmF5
QVBQTEUoYXJyYXkpOwotI2Vsc2UKLSAgICByZXR1cm4gR0xfRkFMU0U7CiAjZW5kaWYKKyAgICBy
ZXR1cm4gR0xfRkFMU0U7CiB9CiAKIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjpiaW5kVmVydGV4
QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCBhcnJheSkKIHsKICAgICBtX2NvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpOwotI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShRVCkgJiYg
IVBMQVRGT1JNKEVGTCkgJiYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAm
JiBHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0CisjaWYgKFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkpCisgICAgaWYgKGlzVmVydGV4QXJyYXlPYmplY3RT
dXBwb3J0ZWQoKSkKKyAgICAgICAgZ2xCaW5kVmVydGV4QXJyYXkoYXJyYXkpOworI2VsaWYgZGVm
aW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJy
YXlfb2JqZWN0CiAgICAgZ2xCaW5kVmVydGV4QXJyYXlBUFBMRShhcnJheSk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShhcnJheSk7CkBAIC0xNTAsOCArMTU5LDEzIEBAIGJvb2wgRXh0ZW5zaW9u
czNET3BlbkdMOjpzdXBwb3J0c0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAg
IHJldHVybiBtX2F2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FSQl90ZXh0dXJlX2Zs
b2F0Iik7CiAKICAgICAvLyBHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdAotICAgIGlmIChuYW1l
ID09ICJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpCisgICAgaWYgKG5hbWUgPT0gIkdMX09F
U192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikgeworI2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFFUKSB8fCBQTEFURk9STShFRkwpKQorICAgICAgICByZXR1cm4gbV9hdmFpbGFibGVFeHRlbnNp
b25zLmNvbnRhaW5zKCJHTF9BUkJfdmVydGV4X2FycmF5X29iamVjdCIpOworI2Vsc2UKICAgICAg
ICAgcmV0dXJuIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucygiR0xfQVBQTEVfdmVydGV4
X2FycmF5X29iamVjdCIpOworI2VuZGlmCisgICAgfQogCiAgICAgLy8gRGVza3RvcCBHTCBhbHdh
eXMgc3VwcG9ydHMgdGhlIHN0YW5kYXJkIGRlcml2YXRpdmUgZnVuY3Rpb25zCiAgICAgaWYgKG5h
bWUgPT0gIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpCkBAIC0xNzIsNiArMTg2LDE0IEBA
IFN0cmluZyBFeHRlbnNpb25zM0RPcGVuR0w6OmdldEV4dGVuc2lvbnMoKQogICAgIHJldHVybiBT
dHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oOjpnbEdldFN0cmluZyhHTF9FWFRF
TlNJT05TKSkpOwogfQogCisjaWYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpIHx8IFBM
QVRGT1JNKEVGTCkpCitib29sIEV4dGVuc2lvbnMzRE9wZW5HTDo6aXNWZXJ0ZXhBcnJheU9iamVj
dFN1cHBvcnRlZCgpIGNvbnN0Cit7CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNWZXJ0ZXhBcnJh
eU9iamVjdCA9ICBjb25zdF9jYXN0PEV4dGVuc2lvbnMzRE9wZW5HTCo+KHRoaXMpLT5zdXBwb3J0
cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKKyAgICByZXR1cm4gc3VwcG9ydHNWZXJ0
ZXhBcnJheU9iamVjdDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBVU0UoM0RfR1JBUEhJQ1MpCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAppbmRleCAzYmVjODk2
Li4yMTFiYzFmIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKQEAgLTU5LDYgKzU5LDEwIEBAIHByb3Rl
Y3RlZDoKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0V4dGVuc2lvbihjb25zdCBXVEY6OlN0
cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5nIGdldEV4dGVuc2lvbnMoKTsKKyNpZiAoUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKSkKK3ByaXZhdGU6CisgICAg
Ym9vbCBpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCkgY29uc3Q7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187808</attachid>
            <date>2013-02-12 01:40:27 -0800</date>
            <delta_ts>2013-02-13 13:32:04 -0800</delta_ts>
            <desc>patchv3</desc>
            <filename>extforreview.patch</filename>
            <type>text/plain</type>
            <size>17637</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDVlYTcyODIuLjYwNzNhNzUgMTAwNjQ0Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTEyICBLb25k
YXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBb
V2ViR0xdW0VGTF1bR1RLXVtRdF1BZGQgc3VwcG9ydCBmb3IgT0VTX3ZlcnRleF9hcnJheV9vYmpl
Y3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkz
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFi
bGUgb2VzLXZlcnRleC1hcnJheS1vYmplY3QgZm9yIEVGTCBwb3J0LgorCisgICAgICAgICogZmFz
dC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDItMTEgIEt3
YW5nWW9uZyBDaG9pICA8a3kwLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gUmVt
b3ZlIHdlYmludGVudHMgZnJvbSBUZXN0RXhwZWN0YXRpb25zCmRpZmYgLS1naXQgTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QtZXhwZWN0ZWQudHh0
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0LWV4
cGVjdGVkLnR4dAppbmRleCAzN2FiYWRkLi41ZGRmMzcyIDEwMDY0NAotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QtZXhwZWN0ZWQudHh0Cisr
KyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC1l
eHBlY3RlZC50eHQKQEAgLTQ3LDQgKzQ3LDUgQEAgUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogdGhlcmUgc2hvdWxkIGJlIG5vIGVycm9ycwogCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKLVRFU1QgQ09NUExFVEUKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9vZXMtdmVydGV4LWFycmF5LW9iamVjdC5odG1sIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwKaW5kZXggY2QwNzk0My4u
M2ExM2Q2YSAxMDA2NDQKLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0
ZXgtYXJyYXktb2JqZWN0Lmh0bWwKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL29l
cy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwKQEAgLTMzLDYgKzMzLDkgQEAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgT0VTX3ZlcnRleF9h
cnJheV9vYmplY3QKIAogZGVidWcoIiIpOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChm
YWxzZSk7CisKIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKIHZhciBjYW52YXMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY2FudmFzIik7CiB2YXIgZ2wgPSBjcmVhdGUzRENvbnRleHQoY2Fu
dmFzKTsKQEAgLTU5MCw4ICs1OTMsNyBAQCBmdW5jdGlvbiBydW5BcnJheUJ1ZmZlckJpbmRUZXN0
cygpIHsKIAogZGVidWcoIiIpOwogc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKK2lzU3VjY2Vz
c2Z1bGx5UGFyc2VkKCk7CiA8L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLQogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0
IExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIExheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDc5MmUxYjAuLjM2NWE0ZTkgMTAwNjQ0
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM0Miw5ICszNDIsNiBAQCBm
YXN0L2Nzcy9kcmFnZ2FibGUtcmVnaW9uLXBhcnNlci5odG1sCiAKIHdlYmtpdC5vcmcvYi85OTA5
NiBmYXN0L2NhbnZhcy93ZWJnbC9hcnJheWJ1ZmZlci10cmFuc2Zlci1vZi1jb250cm9sLmh0bWwg
WyBGYWlsdXJlIFBhc3MgXQogCi0jIEV4cGVjdGVkIHRvIGZhaWwgdW50aWwgc3VwcG9ydCBmb3Ig
ZXh0ZW5zaW9uIGlzIGltcGxlbWVudGVkCi13ZWJraXQub3JnL2IvOTY4MjggZmFzdC9jYW52YXMv
d2ViZ2wvb2VzLXZlcnRleC1hcnJheS1vYmplY3QuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi0KICMg
RXhwZWN0ZWQgdG8gZmFpbCB1bnRpbCBPRVNfZWxlbWVudF9pbmRleF91aW50IGV4dGVuc2lvbiBp
cyBpbXBsZW1lbnRlZAogd2Via2l0Lm9yZy9iLzk4MjU3IGZhc3QvY2FudmFzL3dlYmdsL29lcy1l
bGVtZW50LWluZGV4LXVpbnQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKZGlmZiAtLWdpdCBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYwZDgz
NTkuLmRhMWNlYWQgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAyLTEyICBLb25kYXBh
bGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKworICAgICAgICBbV2Vi
R0xdW0VGTF1bR1RLXVtRdF1BZGQgc3VwcG9ydCBmb3IgT0VTX3ZlcnRleF9hcnJheV9vYmplY3Qu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzODIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGZhc3QvY2FudmFzL3dlYmdsL29lcy12ZXJ0ZXgtYXJyYXktb2JqZWN0Lmh0bWwKKworICAg
ICAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdXNpbmcgVmVydGV4IEFycmF5IE9iamVj
dCB3aXRoIE9wZW5HbC4KKyAgICAgICAgVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbG9hZGlu
ZyBuZWNlc3Nhcnkgb3BlbmdsIGZ1bmN0aW9ucworICAgICAgICBhbmQgc3VwcG9ydCBmb3IgY2hl
Y2tpbmcgR0xfQVJCX3ZlcnRleF9hcnJheV9vYmplY3QuIFRoZSBzdXBwb3J0CisgICAgICAgIGZv
ciBPRVNfdmVydGV4X2FycmF5X29iamVjdCBpcyBhZHZlcnRpc2VkIGlmIEdMX0FSQl92ZXJ0ZXhf
YXJyYXlfb2JqZWN0IGlzCisgICAgICAgIHN1cHBvcnRlZC4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL09wZW5HTFNoaW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVP
cGVuR0xTaGltcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaDoK
KyAgICAgICAgKF9PcGVuR0xGdW5jdGlvblRhYmxlKToKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBm
b3IgbG9hZGluZyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXh0ZW5zaW9uczNET3BlbkdMOjpjcmVhdGVWZXJ0ZXhBcnJheU9FUyk6CisgICAgICAgIChX
ZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmRlbGV0ZVZlcnRleEFycmF5T0VTKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRE9wZW5HTDo6aXNWZXJ0ZXhBcnJheU9FUyk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OmJpbmRWZXJ0ZXhBcnJheU9FUyk6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVuR0w6OnN1cHBvcnRzRXh0ZW5zaW9uKToK
KworICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RPcGVu
R0w6OmlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaDoKKyAgICAgICAgKEV4dGVuc2lvbnMz
RE9wZW5HTCk6CisKIDIwMTMtMDItMTIgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgoKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xT
aGltcy5jcHAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuY3Bw
CmluZGV4IGFjN2RmNjAuLjk4OGY4YjkgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9PcGVuR0xTaGltcy5jcHAKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL09wZW5HTFNoaW1zLmNwcApAQCAtMTI3LDYgKzEyNyw3IEBAIGJvb2wgaW5pdGlhbGl6
ZU9wZW5HTFNoaW1zKCkKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xCaW5kQnVm
ZmVyLCBzdWNjZXNzKTsKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xCaW5kRnJh
bWVidWZmZXIsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbEJp
bmRSZW5kZXJidWZmZXIsIHN1Y2Nlc3MpOworICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRS
WShnbEJpbmRWZXJ0ZXhBcnJheSwgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxF
X0VOVFJZKGdsQmxlbmRDb2xvciwgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxF
X0VOVFJZKGdsQmxlbmRFcXVhdGlvbiwgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RB
QkxFX0VOVFJZKGdsQmxlbmRFcXVhdGlvblNlcGFyYXRlLCBzdWNjZXNzKTsKQEAgLTE0OCw2ICsx
NDksNyBAQCBib29sIGluaXRpYWxpemVPcGVuR0xTaGltcygpCiAgICAgQVNTSUdOX0ZVTkNUSU9O
X1RBQkxFX0VOVFJZKGdsRGVsZXRlUHJvZ3JhbSwgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZVTkNU
SU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlUmVuZGVyYnVmZmVycywgc3VjY2Vzcyk7CiAgICAgQVNT
SUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlU2hhZGVyLCBzdWNjZXNzKTsKKyAgICBB
U1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xEZWxldGVWZXJ0ZXhBcnJheXMsIHN1Y2Nlc3Mp
OwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbERldGFjaFNoYWRlciwgc3VjY2Vz
cyk7CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGlzYWJsZVZlcnRleEF0dHJp
YkFycmF5LCBzdWNjZXNzKTsKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xFbmFi
bGVWZXJ0ZXhBdHRyaWJBcnJheSwgc3VjY2Vzcyk7CkBAIC0xNTcsNiArMTU5LDcgQEAgYm9vbCBp
bml0aWFsaXplT3BlbkdMU2hpbXMoKQogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShn
bEdlbmVyYXRlTWlwbWFwLCBzdWNjZXNzKTsKICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5U
UlkoZ2xHZW5GcmFtZWJ1ZmZlcnMsIHN1Y2Nlc3MpOwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJM
RV9FTlRSWShnbEdlblJlbmRlcmJ1ZmZlcnMsIHN1Y2Nlc3MpOworICAgIEFTU0lHTl9GVU5DVElP
Tl9UQUJMRV9FTlRSWShnbEdlblZlcnRleEFycmF5cywgc3VjY2Vzcyk7CiAgICAgQVNTSUdOX0ZV
TkNUSU9OX1RBQkxFX0VOVFJZKGdsR2V0QWN0aXZlQXR0cmliLCBzdWNjZXNzKTsKICAgICBBU1NJ
R05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRBY3RpdmVVbmlmb3JtLCBzdWNjZXNzKTsKICAg
ICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRBdHRhY2hlZFNoYWRlcnMsIHN1Y2Nl
c3MpOwpAQCAtMTgwLDYgKzE4Myw3IEBAIGJvb2wgaW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCkKICAg
ICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xJc1Byb2dyYW0sIHN1Y2Nlc3MpOwogICAg
IEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbElzUmVuZGVyYnVmZmVyLCBzdWNjZXNzKTsK
ICAgICBBU1NJR05fRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xJc1NoYWRlciwgc3VjY2Vzcyk7Cisg
ICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsSXNWZXJ0ZXhBcnJheSwgc3VjY2Vzcyk7
CiAgICAgQVNTSUdOX0ZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsTGlua1Byb2dyYW0sIHN1Y2Nlc3Mp
OwogICAgIEFTU0lHTl9GVU5DVElPTl9UQUJMRV9FTlRSWShnbFJlbmRlcmJ1ZmZlclN0b3JhZ2Us
IHN1Y2Nlc3MpOwogICAgIC8vIEluIEdMRVMyIHRoZXJlIGFyZSBvcHRpb25hbCBBTkdMRSBhbmQg
QVBQTEUgZXh0ZW5zaW9ucyBmb3IgZ2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUuCmRp
ZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMU2hpbXMuaCBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCmluZGV4IDNkOTY5
MjcuLmIzNzEzMWQgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9P
cGVuR0xTaGltcy5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xT
aGltcy5oCkBAIC01Myw2ICs1Myw3IEBAIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCaW5k
QXR0cmliTG9jYXRpb25UeXBlKSAoR0x1aW50LCBHTHVpbnQsIGNvbnN0IGNoYXIqCiB0eXBlZGVm
IHZvaWQgKEdMQVBJRU5UUlkgKmdsQmluZEJ1ZmZlclR5cGUpIChHTGVudW0sIEdMdWludCk7CiB0
eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsQmluZEZyYW1lYnVmZmVyVHlwZSkgKEdMZW51bSwg
R0x1aW50KTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCaW5kUmVuZGVyYnVmZmVyVHlw
ZSkgKEdMZW51bSwgR0x1aW50KTsKK3R5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCaW5kVmVy
dGV4QXJyYXlUeXBlKSAoR0x1aW50KTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCbGVu
ZENvbG9yVHlwZSkgKEdMY2xhbXBmLCBHTGNsYW1wZiwgR0xjbGFtcGYsIEdMY2xhbXBmKTsKIHR5
cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xCbGVuZEVxdWF0aW9uVHlwZSkgKEdMZW51bSk7CiB0
eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsQmxlbmRFcXVhdGlvblNlcGFyYXRlVHlwZSkoR0xl
bnVtLCBHTGVudW0pOwpAQCAtNjksNiArNzAsNyBAQCB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkg
KmdsRGVsZXRlRnJhbWVidWZmZXJzVHlwZSkgKEdMc2l6ZWkgbiwgY29uc3QgR0x1aW50Kik7CiB0
eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsRGVsZXRlUHJvZ3JhbVR5cGUpIChHTHVpbnQpOwog
dHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNUeXBlKSAoR0xz
aXplaSBuLCBjb25zdCBHTHVpbnQqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xEZWxl
dGVTaGFkZXJUeXBlKSAoR0x1aW50KTsKK3R5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xEZWxl
dGVWZXJ0ZXhBcnJheXNUeXBlKSAoR0xzaXplaSwgY29uc3QgR0x1aW50Kik7CiB0eXBlZGVmIHZv
aWQgKEdMQVBJRU5UUlkgKmdsRGV0YWNoU2hhZGVyVHlwZSkgKEdMdWludCwgR0x1aW50KTsKIHR5
cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xEaXNhYmxlVmVydGV4QXR0cmliQXJyYXlUeXBlKSAo
R0x1aW50KTsKIHR5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xFbmFibGVWZXJ0ZXhBdHRyaWJB
cnJheVR5cGUpIChHTHVpbnQpOwpAQCAtNzgsNiArODAsNyBAQCB0eXBlZGVmIHZvaWQgKEdMQVBJ
RU5UUlkgKmdsR2VuQnVmZmVyc1R5cGUpIChHTHNpemVpLCBHTHVpbnQqKTsKIHR5cGVkZWYgdm9p
ZCAoR0xBUElFTlRSWSAqZ2xHZW5lcmF0ZU1pcG1hcFR5cGUpIChHTGVudW0gdGFyZ2V0KTsKIHR5
cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xHZW5GcmFtZWJ1ZmZlcnNUeXBlKSAoR0xzaXplaSwg
R0x1aW50Kik7CiB0eXBlZGVmIHZvaWQgKEdMQVBJRU5UUlkgKmdsR2VuUmVuZGVyYnVmZmVyc1R5
cGUpIChHTHNpemVpLCBHTHVpbnQqKTsKK3R5cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xHZW5W
ZXJ0ZXhBcnJheXNUeXBlKSAoR0xzaXplaSwgR0x1aW50Kik7CiB0eXBlZGVmIHZvaWQgKEdMQVBJ
RU5UUlkgKmdsR2V0QWN0aXZlQXR0cmliVHlwZSkgKEdMdWludCwgR0x1aW50LCBHTHNpemVpLCBH
THNpemVpKiwgR0xpbnQqLCBHTGVudW0qLCBHTGNoYXIqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElF
TlRSWSAqZ2xHZXRBY3RpdmVVbmlmb3JtVHlwZSkgKEdMdWludCwgR0x1aW50LCBHTHNpemVpLCBH
THNpemVpKiwgR0xpbnQqLCBHTGVudW0qLCBHTGNoYXIqKTsKIHR5cGVkZWYgdm9pZCAoR0xBUElF
TlRSWSAqZ2xHZXRBdHRhY2hlZFNoYWRlcnNUeXBlKSAoR0x1aW50LCBHTHNpemVpLCBHTHNpemVp
KiwgR0x1aW50Kik7CkBAIC0xMDEsNiArMTA0LDcgQEAgdHlwZWRlZiBHTGJvb2xlYW4gKEdMQVBJ
RU5UUlkgKmdsSXNGcmFtZWJ1ZmZlclR5cGUpIChHTHVpbnQpOwogdHlwZWRlZiBHTGJvb2xlYW4g
KEdMQVBJRU5UUlkgKmdsSXNQcm9ncmFtVHlwZSkgKEdMdWludCk7CiB0eXBlZGVmIEdMYm9vbGVh
biAoR0xBUElFTlRSWSAqZ2xJc1JlbmRlcmJ1ZmZlclR5cGUpIChHTHVpbnQpOwogdHlwZWRlZiBH
TGJvb2xlYW4gKEdMQVBJRU5UUlkgKmdsSXNTaGFkZXJUeXBlKSAoR0x1aW50KTsKK3R5cGVkZWYg
R0xib29sZWFuIChHTEFQSUVOVFJZICpnbElzVmVydGV4QXJyYXlUeXBlKSAoR0x1aW50KTsKIHR5
cGVkZWYgdm9pZCAoR0xBUElFTlRSWSAqZ2xMaW5rUHJvZ3JhbVR5cGUpIChHTHVpbnQpOwogdHlw
ZWRlZiB2b2lkIChHTEFQSUVOVFJZICpnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VUeXBlKSAoR0xlbnVt
LCBHTGVudW0sIEdMc2l6ZWksIEdMc2l6ZWkpOwogdHlwZWRlZiB2b2lkIChHTEFQSUVOVFJZICpn
bFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZVR5cGUpIChHTGVudW0sIEdMc2l6ZWksIEdM
ZW51bSwgR0xzaXplaSwgR0xzaXplaSk7CkBAIC0xNDksNiArMTUzLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUgewogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmlu
ZEJ1ZmZlcik7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xCaW5kRnJhbWVidWZmZXIpOwog
ICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsQmluZFJlbmRlcmJ1ZmZlcik7CisgICAgRlVOQ1RJ
T05fVEFCTEVfRU5UUlkoZ2xCaW5kVmVydGV4QXJyYXkpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VO
VFJZKGdsQmxlbmRDb2xvcik7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xCbGVuZEVxdWF0
aW9uKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEJsZW5kRXF1YXRpb25TZXBhcmF0ZSk7
CkBAIC0xNjUsNiArMTcwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUg
ewogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGVsZXRlUHJvZ3JhbSk7CiAgICAgRlVOQ1RJ
T05fVEFCTEVfRU5UUlkoZ2xEZWxldGVSZW5kZXJidWZmZXJzKTsKICAgICBGVU5DVElPTl9UQUJM
RV9FTlRSWShnbERlbGV0ZVNoYWRlcik7CisgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xEZWxl
dGVWZXJ0ZXhBcnJheXMpOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsRGV0YWNoU2hhZGVy
KTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbERpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSk7
CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xFbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSk7CkBA
IC0xNzQsNiArMTgwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUgewog
ICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2VuZXJhdGVNaXBtYXApOwogICAgIEZVTkNUSU9O
X1RBQkxFX0VOVFJZKGdsR2VuRnJhbWVidWZmZXJzKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRS
WShnbEdlblJlbmRlcmJ1ZmZlcnMpOworICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsR2VuVmVy
dGV4QXJyYXlzKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbEdldEFjdGl2ZUF0dHJpYik7
CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xHZXRBY3RpdmVVbmlmb3JtKTsKICAgICBGVU5D
VElPTl9UQUJMRV9FTlRSWShnbEdldEF0dGFjaGVkU2hhZGVycyk7CkBAIC0xOTcsNiArMjA0LDcg
QEAgdHlwZWRlZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUgewogICAgIEZVTkNUSU9OX1RB
QkxFX0VOVFJZKGdsSXNQcm9ncmFtKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbElzUmVu
ZGVyYnVmZmVyKTsKICAgICBGVU5DVElPTl9UQUJMRV9FTlRSWShnbElzU2hhZGVyKTsKKyAgICBG
VU5DVElPTl9UQUJMRV9FTlRSWShnbElzVmVydGV4QXJyYXkpOwogICAgIEZVTkNUSU9OX1RBQkxF
X0VOVFJZKGdsTGlua1Byb2dyYW0pOwogICAgIEZVTkNUSU9OX1RBQkxFX0VOVFJZKGdsUmVuZGVy
YnVmZmVyU3RvcmFnZSk7CiAgICAgRlVOQ1RJT05fVEFCTEVfRU5UUlkoZ2xSZW5kZXJidWZmZXJT
dG9yYWdlTXVsdGlzYW1wbGUpOwpAQCAtMjQ4LDYgKzI1Niw3IEBAIHR5cGVkZWYgc3RydWN0IF9P
cGVuR0xGdW5jdGlvblRhYmxlIHsKICNkZWZpbmUgZ2xCaW5kRnJhbWVidWZmZXIgICAgICAgICAg
ICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsQmluZEZyYW1lYnVmZmVyKQogI2RlZmlu
ZSBnbEJpbmRSZW5kZXJidWZmZXJFWFQgICAgICAgICAgICAgICAgICBnbEJpbmRSZW5kZXJidWZm
ZXIKICNkZWZpbmUgZ2xCaW5kUmVuZGVyYnVmZmVyICAgICAgICAgICAgICAgICAgICAgTE9PS1VQ
X0dMX0ZVTkNUSU9OKGdsQmluZFJlbmRlcmJ1ZmZlcikKKyNkZWZpbmUgZ2xCaW5kVmVydGV4QXJy
YXkgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsQmluZFZlcnRleEFy
cmF5KQogI2RlZmluZSBnbEJsZW5kQ29sb3IgICAgICAgICAgICAgICAgICAgICAgICAgICBMT09L
VVBfR0xfRlVOQ1RJT04oZ2xCbGVuZENvbG9yKQogI2RlZmluZSBnbEJsZW5kRXF1YXRpb24gICAg
ICAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xCbGVuZEVxdWF0aW9uKQog
I2RlZmluZSBnbEJsZW5kRXF1YXRpb25TZXBhcmF0ZSAgICAgICAgICAgICAgICBMT09LVVBfR0xf
RlVOQ1RJT04oZ2xCbGVuZEVxdWF0aW9uU2VwYXJhdGUpCkBAIC0yNjgsNiArMjc3LDcgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUgewogI2RlZmluZSBnbERlbGV0ZVJlbmRl
cmJ1ZmZlcnNFWFQgICAgICAgICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMKICNkZWZpbmUg
Z2xEZWxldGVSZW5kZXJidWZmZXJzICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9O
KGdsRGVsZXRlUmVuZGVyYnVmZmVycykKICNkZWZpbmUgZ2xEZWxldGVTaGFkZXIgICAgICAgICAg
ICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsRGVsZXRlU2hhZGVyKQorI2RlZmlu
ZSBnbERlbGV0ZVZlcnRleEFycmF5cyAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJ
T04oZ2xEZWxldGVWZXJ0ZXhBcnJheXMpCiAjZGVmaW5lIGdsRGV0YWNoU2hhZGVyICAgICAgICAg
ICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbERldGFjaFNoYWRlcikKICNkZWZp
bmUgZ2xEaXNhYmxlVmVydGV4QXR0cmliQXJyYXkgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNU
SU9OKGdsRGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KQogI2RlZmluZSBnbEVuYWJsZVZlcnRleEF0
dHJpYkFycmF5ICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xFbmFibGVWZXJ0ZXhB
dHRyaWJBcnJheSkKQEAgLTI4Miw2ICsyOTIsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3BlbkdMRnVu
Y3Rpb25UYWJsZSB7CiAjZGVmaW5lIGdsR2VuRnJhbWVidWZmZXJzICAgICAgICAgICAgICAgICAg
ICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdlbkZyYW1lYnVmZmVycykKICNkZWZpbmUgZ2xHZW5S
ZW5kZXJidWZmZXJzRVhUICAgICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzCiAjZGVm
aW5lIGdsR2VuUmVuZGVyYnVmZmVycyAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5D
VElPTihnbEdlblJlbmRlcmJ1ZmZlcnMpCisjZGVmaW5lIGdsR2VuVmVydGV4QXJyYXlzICAgICAg
ICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbEdlblZlcnRleEFycmF5cykKICNk
ZWZpbmUgZ2xHZXRBY3RpdmVBdHRyaWIgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZV
TkNUSU9OKGdsR2V0QWN0aXZlQXR0cmliKQogI2RlZmluZSBnbEdldEFjdGl2ZVVuaWZvcm0gICAg
ICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xHZXRBY3RpdmVVbmlmb3JtKQog
I2RlZmluZSBnbEdldEF0dGFjaGVkU2hhZGVycyAgICAgICAgICAgICAgICAgICBMT09LVVBfR0xf
RlVOQ1RJT04oZ2xHZXRBdHRhY2hlZFNoYWRlcnMpCkBAIC0zMTAsNiArMzIxLDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgX09wZW5HTEZ1bmN0aW9uVGFibGUgewogI2RlZmluZSBnbElzUmVuZGVyYnVmZmVy
RVhUICAgICAgICAgICAgICAgICAgICBnbElzUmVuZGVyYnVmZmVyCiAjZGVmaW5lIGdsSXNSZW5k
ZXJidWZmZXIgICAgICAgICAgICAgICAgICAgICAgIExPT0tVUF9HTF9GVU5DVElPTihnbElzUmVu
ZGVyYnVmZmVyKQogI2RlZmluZSBnbElzU2hhZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xJc1NoYWRlcikKKyNkZWZpbmUgZ2xJc1ZlcnRleEFycmF5
ICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQX0dMX0ZVTkNUSU9OKGdsSXNWZXJ0ZXhBcnJh
eSkKICNkZWZpbmUgZ2xMaW5rUHJvZ3JhbSAgICAgICAgICAgICAgICAgICAgICAgICAgTE9PS1VQ
X0dMX0ZVTkNUSU9OKGdsTGlua1Byb2dyYW0pCiAjZGVmaW5lIGdsUmVuZGVyYnVmZmVyU3RvcmFn
ZUVYVCAgICAgICAgICAgICAgIGdsUmVuZGVyYnVmZmVyU3RvcmFnZQogI2RlZmluZSBnbFJlbmRl
cmJ1ZmZlclN0b3JhZ2UgICAgICAgICAgICAgICAgICBMT09LVVBfR0xfRlVOQ1RJT04oZ2xSZW5k
ZXJidWZmZXJTdG9yYWdlKQpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCmluZGV4IDZjY2Y0YjIuLmQw
NjJmYzAgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uczNET3BlbkdMLmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKQEAgLTY0LDIyICs2NCwyNiBAQCB2b2lk
IEV4dGVuc2lvbnMzRE9wZW5HTDo6cmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKHVuc2ln
bmVkIGxvbmcgdGFyZ2V0LCB1bgogUGxhdGZvcm0zRE9iamVjdCBFeHRlbnNpb25zM0RPcGVuR0w6
OmNyZWF0ZVZlcnRleEFycmF5T0VTKCkKIHsKICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3Vy
cmVudCgpOwotI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShRVCkgJiYgIVBMQVRGT1JN
KEVGTCkgJiYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBM
RV92ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgR0x1aW50IGFycmF5ID0gMDsKKyNpZiAoUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKSkKKyAgICBpZiAoaXNWZXJ0
ZXhBcnJheU9iamVjdFN1cHBvcnRlZCgpKQorICAgICAgICBnbEdlblZlcnRleEFycmF5cygxLCAm
YXJyYXkpOworI2VsaWYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBH
TF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgZ2xHZW5WZXJ0ZXhBcnJheXNBUFBMRSgx
LCAmYXJyYXkpOwotICAgIHJldHVybiBhcnJheTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7CiAjZW5k
aWYKKyAgICByZXR1cm4gYXJyYXk7CiB9CiAKIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjpkZWxl
dGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0IGFycmF5KQogewogICAgIGlmICghYXJy
YXkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRD
dXJyZW50KCk7Ci0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFFUKSAmJiAhUExBVEZP
Uk0oRUZMKSAmJiBkZWZpbmVkKEdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmplY3QpICYmIEdMX0FQ
UExFX3ZlcnRleF9hcnJheV9vYmplY3QKKyNpZiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShR
VCkgfHwgUExBVEZPUk0oRUZMKSkKKyAgICBpZiAoaXNWZXJ0ZXhBcnJheU9iamVjdFN1cHBvcnRl
ZCgpKQorICAgICAgICBnbERlbGV0ZVZlcnRleEFycmF5cygxLCAmYXJyYXkpOworI2VsaWYgZGVm
aW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92ZXJ0ZXhfYXJy
YXlfb2JqZWN0CiAgICAgZ2xEZWxldGVWZXJ0ZXhBcnJheXNBUFBMRSgxLCAmYXJyYXkpOwogI2Vu
ZGlmCiB9CkBAIC04OCwxOSArOTIsMjQgQEAgR0MzRGJvb2xlYW4gRXh0ZW5zaW9uczNET3BlbkdM
Ojppc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QgYXJyYXkpCiB7CiAgICAgaWYgKCFh
cnJheSkKICAgICAgICAgcmV0dXJuIEdMX0ZBTFNFOwotICAgIAorCiAgICAgbV9jb250ZXh0LT5t
YWtlQ29udGV4dEN1cnJlbnQoKTsKLSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oUVQp
ICYmICFQTEFURk9STShFRkwpICYmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVj
dCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdAorI2lmIChQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpKQorICAgIGlmIChpc1ZlcnRleEFycmF5T2Jq
ZWN0U3VwcG9ydGVkKCkpCisgICAgICAgIHJldHVybiBnbElzVmVydGV4QXJyYXkoYXJyYXkpOwor
I2VsaWYgZGVmaW5lZChHTF9BUFBMRV92ZXJ0ZXhfYXJyYXlfb2JqZWN0KSAmJiBHTF9BUFBMRV92
ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgcmV0dXJuIGdsSXNWZXJ0ZXhBcnJheUFQUExFKGFycmF5
KTsKLSNlbHNlCi0gICAgcmV0dXJuIEdMX0ZBTFNFOwogI2VuZGlmCisgICAgcmV0dXJuIEdMX0ZB
TFNFOwogfQogCiB2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6YmluZFZlcnRleEFycmF5T0VTKFBs
YXRmb3JtM0RPYmplY3QgYXJyYXkpCiB7CiAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJl
bnQoKTsKLSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oUVQpICYmICFQTEFURk9STShF
RkwpICYmIGRlZmluZWQoR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xfQVBQTEVf
dmVydGV4X2FycmF5X29iamVjdAorI2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSB8
fCBQTEFURk9STShFRkwpKQorICAgIGlmIChpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCkp
CisgICAgICAgIGdsQmluZFZlcnRleEFycmF5KGFycmF5KTsKKyNlbGlmIGRlZmluZWQoR0xfQVBQ
TEVfdmVydGV4X2FycmF5X29iamVjdCkgJiYgR0xfQVBQTEVfdmVydGV4X2FycmF5X29iamVjdAog
ICAgIGdsQmluZFZlcnRleEFycmF5QVBQTEUoYXJyYXkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0oYXJyYXkpOwpAQCAtMTUwLDggKzE1OSwxMyBAQCBib29sIEV4dGVuc2lvbnMzRE9wZW5HTDo6
c3VwcG9ydHNFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICByZXR1cm4gbV9h
dmFpbGFibGVFeHRlbnNpb25zLmNvbnRhaW5zKCJHTF9BUkJfdGV4dHVyZV9mbG9hdCIpOwogCiAg
ICAgLy8gR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKLSAgICBpZiAobmFtZSA9PSAiR0xfT0VT
X3ZlcnRleF9hcnJheV9vYmplY3QiKQorICAgIGlmIChuYW1lID09ICJHTF9PRVNfdmVydGV4X2Fy
cmF5X29iamVjdCIpIHsKKyNpZiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwgUExB
VEZPUk0oRUZMKSkKKyAgICAgICAgcmV0dXJuIG1fYXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlu
cygiR0xfQVJCX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKKyNlbHNlCiAgICAgICAgIHJldHVybiBt
X2F2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFpbnMoIkdMX0FQUExFX3ZlcnRleF9hcnJheV9vYmpl
Y3QiKTsKKyNlbmRpZgorICAgIH0KIAogICAgIC8vIERlc2t0b3AgR0wgYWx3YXlzIHN1cHBvcnRz
IHRoZSBzdGFuZGFyZCBkZXJpdmF0aXZlIGZ1bmN0aW9ucwogICAgIGlmIChuYW1lID09ICJHTF9P
RVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQpAQCAtMTcyLDYgKzE4NiwxNCBAQCBTdHJpbmcgRXh0
ZW5zaW9uczNET3BlbkdMOjpnZXRFeHRlbnNpb25zKCkKICAgICByZXR1cm4gU3RyaW5nKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KDo6Z2xHZXRTdHJpbmcoR0xfRVhURU5TSU9OUykpKTsK
IH0KIAorI2lmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwp
KQorYm9vbCBFeHRlbnNpb25zM0RPcGVuR0w6OmlzVmVydGV4QXJyYXlPYmplY3RTdXBwb3J0ZWQo
KQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHN1cHBvcnRzVmVydGV4QXJyYXlPYmplY3QgPSBz
dXBwb3J0cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKKyAgICByZXR1cm4gc3VwcG9y
dHNWZXJ0ZXhBcnJheU9iamVjdDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBVU0UoM0RfR1JBUEhJQ1MpCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAppbmRleCAz
YmVjODk2Li42Njc5MWE0IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKQEAgLTU5LDYgKzU5LDEwIEBA
IHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0V4dGVuc2lvbihjb25zdCBX
VEY6OlN0cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5nIGdldEV4dGVuc2lvbnMoKTsKKyNpZiAo
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKSkKK3ByaXZhdGU6
CisgICAgYm9vbCBpc1ZlcnRleEFycmF5T2JqZWN0U3VwcG9ydGVkKCk7CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>