<?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>220895</bug_id>
          
          <creation_ts>2021-01-23 13:56:44 -0800</creation_ts>
          <short_desc>Failures with Metal ANGLE backend</short_desc>
          <delta_ts>2021-02-20 10:15:19 -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>WebGL</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>222218</dependson>
          <blocked>220076</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kpiddington</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1721876</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-01-23 13:56:44 -0800</bug_when>
    <thetext>In order to enable the ANGLE Metal backend, we need to not regress any LayoutTests. At least the following are failing (just 1.0.3):

[160/580] webgl/1.0.3/conformance/extensions/ext-frag-depth.html failed unexpectedly (text diff)                              
[209/580] webgl/1.0.3/conformance/glsl/constructors/glsl-construct-bvec2.html failed unexpectedly (text diff)
[222/580] webgl/1.0.3/conformance/context/context-hidden-alpha.html failed unexpectedly (text diff)
[287/580] webgl/1.0.3/conformance/textures/copy-tex-image-2d-formats.html failed unexpectedly (text diff)
[314/580] webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment.html failed unexpectedly (text diff)
[344/580] webgl/1.0.3/conformance/programs/program-test.html passed unexpectedly         
[360/580] webgl/1.0.3/conformance/rendering/line-loop-tri-fan.html failed unexpectedly (text diff)
[371/580] webgl/1.0.3/conformance/glsl/constructors/glsl-construct-ivec2.html failed unexpectedly (text diff)
[403/580] webgl/1.0.3/conformance/uniforms/out-of-bounds-uniform-array-access.html failed unexpectedly (text diff)
[445/580] webgl/1.0.3/conformance/glsl/constructors/glsl-construct-vec2.html failed unexpectedly (text diff)
[450/580] webgl/1.0.3/conformance/glsl/constructors/glsl-construct-vec-mat-corner-cases.html failed unexpectedly (text diff)
[521/580] webgl/1.0.3/conformance/ogles/GL/mat/mat_041_to_046.html failed unexpectedly (test timed out, text diff)
[521/580] webgl/1.0.3/conformance/ogles/GL/functions/functions_113_to_120.html failed unexpectedly (test timed out, text diff)
[540/580] webgl/1.0.3/conformance/glsl/misc/shaders-with-invariance.html failed unexpectedly (text diff)      
[547/580] webgl/1.0.3/conformance/glsl/misc/shaders-with-uniform-structs.html failed unexpectedly (text diff)
[568/580] webgl/1.0.3/conformance/glsl/misc/struct-specifiers-in-uniforms.html failed unexpectedly (text diff)
[580/580] webgl/1.0.3/conformance/ogles/GL/functions/functions_121_to_126.html failed unexpectedly (test timed out, text diff)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721877</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-23 13:57:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/73539537&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727631</commentid>
    <comment_count>2</comment_count>
      <attachid>419865</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-02-10 10:53:56 -0800</bug_when>
    <thetext>Created attachment 419865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727632</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-02-10 10:54:59 -0800</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729531</commentid>
    <comment_count>4</comment_count>
      <attachid>419865</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-02-15 19:48:13 -0800</bug_when>
    <thetext>Comment on attachment 419865
Patch

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

Nice work Kyle. Looks good to me overall. A few minor comments. r+

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.cpp:611
&gt; +    // Replace gl_FragData() with our globally defined fragdata

gl_FragData is a variable rather than a function, so suggest removing the ().

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.cpp:1139
&gt; +                else if ( outputVarying.name == &quot;gl_FragDepthEXT&quot;)

Remove inconsistent space after (.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.cpp:1420
&gt; +    

Strange whitespace.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:1896
&gt; +    putAngle(&quot;texture2DRect&quot;);

Hoping these additions don&apos;t accidentally add support for rectangular textures in WebGL shaders. I think there are enough negative tests to prevent that.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp:18
&gt; +class FixTypeTraverser : public TIntermTraverser

Could you please add a per-class comment about what this pass does?

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp:23
&gt; +        bool visitAggregate(Visit visit, TIntermAggregate *aggregateNode) override

Strange indentation.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp:29
&gt; +        if(aggregateNode-&gt;isConstructor())

Space before &quot;(&quot;.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp:34
&gt; +                

Please leave a comment as to why nothing needs to be done.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp:36
&gt; +            else if(retType.isVector())

Space before &quot;(&quot;. Here again, and throughout.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp:70
&gt; +                            assert(!&quot;Should not be reached in case of 0, or 4&quot;);

Why not? Please add comment.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:648
&gt; +ANGLE_ALWAYS_INLINE int ANGLE_int_clamp(int value, int minValue, int maxValue)

Note: it might not be guaranteed that these ANGLE_ declarations won&apos;t conflict with something the user declares. See WebGL&apos;s reserved identifiers in https://www.khronos.org/registry/webgl/specs/latest/1.0/#4.3 . It&apos;s fine for this patch, just FYI.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp:24
&gt;  class Reducer : public TIntermRebuild

Possible to document what this (preexisting) class does?

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp:29
&gt; +    IdGen &amp; mIdGen;

No space after &quot;&amp;&quot; per ANGLE style. Here and below.

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp:51
&gt; +                    //Create instance variable

Could you document a little bit more what this instance variable is being created for?

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm:438
&gt; +        mIOSurfaceTexture-&gt;setColorWritableMask(MTLColorWriteMaskAll &amp; (~MTLColorWriteMaskAlpha));

It&apos;s great that disabling alpha writes into these IOSurfaces works with Metal. When attempting to do this with OpenGL there were some cases that were broken - for example BlitFramebuffer into the texture would destroy the alpha channel. There are workarounds at higher levels (in Chromium, at least) that should be removed once the Metal backend&apos;s turned on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731707</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-02-19 18:09:41 -0800</bug_when>
    <thetext>Committed r273188 (234374@main): &lt;https://commits.webkit.org/234374@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731728</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-02-19 19:07:22 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 222218</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731729</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-02-19 19:07:58 -0800</bug_when>
    <thetext>Reverted r273188 for reason:

Broke the build: Is missing a cpp file

Committed r273189 (234375@main): &lt;https://commits.webkit.org/234375@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731805</commentid>
    <comment_count>8</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-02-20 10:15:19 -0800</bug_when>
    <thetext>Committed r273200 (234386@main): &lt;https://commits.webkit.org/234386@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419865</attachid>
            <date>2021-02-10 10:53:56 -0800</date>
            <delta_ts>2021-02-15 19:48:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220895-20210210105355.patch</filename>
            <type>text/plain</type>
            <size>62192</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNjYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggMjU2ZTdmMzgyZjEwZDlkMWNmNDQ2YTZhNjg0OGMxNjYwYzNkMDc0ZS4uMDRhYmFkMTJhNDZm
MTEzNGI0ZGM1NzMwZjdiOTljNzU3OGUyODc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTAyLTEwICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKwlGaXggYSBudW1iZXIgb2YgZnVuY3Rpb25hbCByZWdyZXNzaW9u
cyBjYXVzZWQgYnkgZW5hYmxpbmcgdGhlIE1ldGFsIEFOR0xFIGJhY2tlbmQgYnkgZGVmYXVsdC4K
KwlodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwODk1CisJPHJkYXI6
Ly9wcm9ibGVtLzczNTM5NTM3PiBSZWdyZXNzaW9uIGZhaWx1cmVzIHdpdGggTWV0YWwgQU5HTEUg
YmFja2VuZCAoMjIwODk1KQorICAKKyAgICAgICAgRml4ZWQgd2ViZ2wvMS4wLjMvY29uZm9ybWFu
Y2UvY29udGV4dC9jb250ZXh0LWhpZGRlbi1hbHBoYS5odG1sCisgICAgCisgICAgICAgIE1UTCBU
cmFuc2xhdG9yIGRpcmVjdCBmaXhlcyBmb3Igd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2UvZ2xzbC9j
b25zdHJ1Y3RvcnMvZ2xzbC1jb25zdHJ1Y3QtKnZlYzIgdGVzdHMsIFBsdXMgZml4IGZvciBHTF9W
ZXJ0ZXhJbmRleAorICAgIAorICAgICAgICBGaXggRW1pdE1ldGFsIGNyYXNoIGZvciBtaXNzaW5n
IGZ1bmN0aW9uIHRleHR1cmVSZWN0LgorICAgIAorICAgICAgICBBZGRpdGlvbmFsIGZpeGVzIGZv
ciA3MzY3NTk5MCwgc2hhZGVycy13aXRoLWludmFyaWFuY2UuaHRtbCwgc2hhZGVycy13aXRoLXVu
aWZvcm0tc3RydWN0cy5odG1sLCBzdHJ1Y3Qtc3BlY2lmaWVycy1pbi11bmlmb3Jtcy5odG1sLCBm
cmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sCisgICAgCisgICAgICAgIEZpeGVkIGNs
YW1waW5nIG9mIGFycmF5IGVsZW1lbnRzCisgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogQU5HTEUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBzcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3Qu
Y3BwOgorICAgICAgICAoc2g6OlRyYW5zbGF0b3JNZXRhbERpcmVjdDo6dHJhbnNsYXRlSW1wbCk6
CisgICAgICAgICogc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0
L0VtaXRNZXRhbC5jcHA6CisgICAgICAgIChHZW5NZXRhbFRyYXZlcnNlcjo6ZW1pdFBvc3RRdWFs
aWZpZXIpOgorICAgICAgICAoR2VuTWV0YWxUcmF2ZXJzZXI6OnZpc2l0QmluYXJ5KToKKyAgICAg
ICAgKEdlbk1ldGFsVHJhdmVyc2VyOjpCdWlsZEZ1bmNUb05hbWUpOgorICAgICAgICAqIHNyYy9j
b21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9GaXhUeXBlQ29uc3RydWN0
b3JzLmNwcDogQWRkZWQuCisgICAgICAgIChzaDo6Rml4VHlwZVRyYXZlcnNlcjo6Rml4VHlwZVRy
YXZlcnNlcik6CisgICAgICAgIChzaDo6Rml4VHlwZUNvbnN0cnVjdG9ycyk6CisgICAgICAgICog
c3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L0ZpeFR5cGVDb25z
dHJ1Y3RvcnMuaDogQWRkZWQuCisgICAgICAgICogc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJh
bnNsYXRvck1ldGFsRGlyZWN0L05hbWVFbWJlZGRlZFVuaWZvcm1TdHJ1Y3RzTWV0YWwuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKHNoOjpOYW1lRW1iZWRkZWRTdHJ1Y3RVbmlmb3Jtc01ldGFsKToKKyAg
ICAgICAgKiBzcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvTmFt
ZUVtYmVkZGVkVW5pZm9ybVN0cnVjdHNNZXRhbC5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvY29t
cGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvUGlwZWxpbmUuY3BwOgorICAg
ICAgICAoU2F0dXJhdGVWZWN0b3JPZik6CisgICAgICAgICogc3JjL2NvbXBpbGVyL3RyYW5zbGF0
b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1Byb2dyYW1QcmVsdWRlLmNwcDoKKyAgICAgICAgKHNo
OjpQcm9ncmFtUHJlbHVkZTo6UHJvZ3JhbVByZWx1ZGUpOgorICAgICAgICAqIHNyYy9jb21waWxl
ci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9SZWR1Y2VJbnRlcmZhY2VCbG9ja3Mu
Y3BwOgorICAgICAgICAoc2g6OlJlZHVjZXI6OlJlZHVjZXIpOgorICAgICAgICAoc2g6OlJlZHVj
ZUludGVyZmFjZUJsb2Nrcyk6CisgICAgICAgICogc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJh
bnNsYXRvck1ldGFsRGlyZWN0L1JlZHVjZUludGVyZmFjZUJsb2Nrcy5oOgorICAgICAgICAqIHNy
Yy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9TZXBhcmF0ZUNvbXBv
dW5kU3RydWN0RGVjbGFyYXRpb25zLmNwcDoKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbG9hZF9mdW5jdGlvbnNfdGFibGVfYXV0b2dlbi5jcHA6CisgICAgICAgICogc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwubW06CisgICAgICAgIChyeDo6Q29udGV4dE10
bDo6ZHJhd0VsZW1lbnRzSW1wbCk6CisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21l
dGFsL0lPU3VyZmFjZVN1cmZhY2VNdGwuaDoKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvSU9TdXJmYWNlU3VyZmFjZU10bC5tbToKKyAgICAgICAgKHJ4OjpJT1N1cmZhY2VT
dXJmYWNlTXRsOjpJT1N1cmZhY2VTdXJmYWNlTXRsKToKKyAgICAgICAgKHJ4OjpJT1N1cmZhY2VT
dXJmYWNlTXRsOjpjcmVhdGVCYWNraW5nVGV4dHVyZSk6CisgICAgICAgICogc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL21ldGFsL1JlbmRlckJ1ZmZlck10bC5tbToKKyAgICAgICAgKHJ4OjpSZW5kZXJi
dWZmZXJNdGw6OnNldFN0b3JhZ2VJbXBsKToKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwuaDoKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwubW06CisgICAgICAgIChyeDo6VmVydGV4QXJyYXlNdGw6
OmdldEluZGV4QnVmZmVyKToKKyAgICAgICAgKHJ4OjpWZXJ0ZXhBcnJheU10bDo6Y29udmVydElu
ZGV4QnVmZmVyKToKKyAgICAgICAgKHJ4OjpWZXJ0ZXhBcnJheU10bDo6c3RyZWFtSW5kZXhCdWZm
ZXJGcm9tQ2xpZW50KToKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRs
X3V0aWxzLm1tOgorICAgICAgICAocng6Om10bDo6SW5pdGlhbGl6ZURlcHRoU3RlbmNpbFRleHR1
cmVDb250ZW50c0dQVSk6CisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL3No
YWRlcnMvYmxpdC5tZXRhbDoKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwv
c2hhZGVycy9tdGxfZGVmYXVsdF9zaGFkZXJzX3NyY19hdXRvZ2VuLmluYzoKKwogMjAyMS0wMS0x
MyAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbV2ViR0wy
XSBmYm9zdGF0ZXF1ZXJ5LCBuZWdhdGl2ZWJ1ZmZlcmFwaSwgbmVnYXRpdmV2ZXJ0ZXhhcnJheWFw
aSwgc2hhZGVyc3RhdGVxdWVyeSBjb25mb3JtYW5jZSBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0FOR0xFLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMzI2ZDJiODVkNDkxNGIzNDhjNGY0NDBhNWVkNTE0ZmM5MjEzZWIzYi4uYWVlODYyNzc4YWUy
YzQyODMyZWRiMjhjNDM0MjIyMzlmNDZiY2E5MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQU5HTEUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9BTkdMRS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgwLDYg
KzExODAsOSBAQAogCQlBM0QzMjkxNTIzQ0ZDQjc3MDAzNzU2NTcgLyogUmV3cml0ZVJvd01ham9y
TWF0cmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEzRDMyOTBGMjNDRkNCNzYwMDM3NTY1NyAvKiBSZXdyaXRlUm93TWFqb3JNYXRyaWNlcy5oICov
OyB9OwogCQlBM0QzMjkxODIzQ0ZDQjc3MDAzNzU2NTcgLyogUmVtb3ZlSW5hY3RpdmVJbnRlcmZh
Y2VWYXJpYWJsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTNEMzI5MTIyM0NGQ0I3NjAwMzc1NjU3IC8qIFJlbW92ZUluYWN0aXZlSW50ZXJmYWNl
VmFyaWFibGVzLmNwcCAqLzsgfTsKIAkJQTNEMzI5MTkyM0NGQ0I3NzAwMzc1NjU3IC8qIFJlbW92
ZUluYWN0aXZlSW50ZXJmYWNlVmFyaWFibGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBM0QzMjkxMzIzQ0ZDQjc2MDAzNzU2NTcgLyogUmVtb3ZlSW5h
Y3RpdmVJbnRlcmZhY2VWYXJpYWJsZXMuaCAqLzsgfTsKKwkJRkYyRDJGNTQyNUM4QjE0QTAwMkZC
Njk5IC8qIEZpeFR5cGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZGMkQyRjUyMjVDOEIxNEEwMDJGQjY5OSAvKiBGaXhUeXBlQ29u
c3RydWN0b3JzLmggKi87IH07CisJCUZGMkQyRjU1MjVDOEIxNEEwMDJGQjY5OSAvKiBGaXhUeXBl
Q29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGRjJEMkY1MjI1QzhCMTRBMDAyRkI2OTkgLyogRml4VHlwZUNvbnN0cnVjdG9ycy5oICov
OyB9OworCQlGRjJEMkY1NjI1QzhCMTRBMDAyRkI2OTkgLyogRml4VHlwZUNvbnN0cnVjdG9ycy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRjJEMkY1
MzI1QzhCMTRBMDAyRkI2OTkgLyogRml4VHlwZUNvbnN0cnVjdG9ycy5jcHAgKi87IH07CiAJCUZG
ODFGRUQwMjU4MThENjgwMDg5NEUyNCAvKiBtdGxfZ2xzbGFuZ191dGlscy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkY4MUZFODAyNTgxOEQ2ODAwODk0
RTI0IC8qIG10bF9nbHNsYW5nX3V0aWxzLmggKi87IH07CiAJCUZGODFGRUQxMjU4MThENjgwMDg5
NEUyNCAvKiBQcm9ncmFtTXRsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRjgxRkU4MTI1ODE4RDY4MDA4OTRFMjQgLyogUHJvZ3JhbU10bC5oICovOyB9
OwogCQlGRjgxRkVEMjI1ODE4RDY4MDA4OTRFMjQgLyogRGlzcGxheU10bF9hcGkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGODFGRTgyMjU4MThENjgw
MDg5NEUyNCAvKiBEaXNwbGF5TXRsX2FwaS5oICovOyB9OwpAQCAtMTMxNSw2ICsxMzE4LDggQEAK
IAkJRkY4MUZGQTIyNTgxQUQwNDAwODk0RTI0IC8qIGNsZWFyLm1ldGFsIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkY4MUZFQjEyNTgxOEQ2ODAwODk0RTI0
IC8qIGNsZWFyLm1ldGFsICovOyB9OwogCQlGRjgxRkZBMzI1ODFBRDA0MDA4OTRFMjQgLyogZ2Vu
X21pcG1hcC5tZXRhbCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZGODFGRUIyMjU4MThENjgwMDg5NEUyNCAvKiBnZW5fbWlwbWFwLm1ldGFsICovOyB9Owog
CQlGRjgxRkZBNDI1ODFBRDA0MDA4OTRFMjQgLyogZ2VuX2luZGljZXMubWV0YWwgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRjgxRkVCMzI1ODE4RDY4MDA4
OTRFMjQgLyogZ2VuX2luZGljZXMubWV0YWwgKi87IH07CisJCUZGQTBDMkM3MjVDQjZBNzcwMDEw
NTMwNiAvKiBOYW1lRW1iZWRkZWRVbmlmb3JtU3RydWN0c01ldGFsLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGQTBDMkM1MjVDQjZBNzYwMDEwNTMw
NiAvKiBOYW1lRW1iZWRkZWRVbmlmb3JtU3RydWN0c01ldGFsLmNwcCAqLzsgfTsKKwkJRkZBMEMy
QzgyNUNCNkE3NzAwMTA1MzA2IC8qIE5hbWVFbWJlZGRlZFVuaWZvcm1TdHJ1Y3RzTWV0YWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZGQTBDMkM2MjVD
QjZBNzcwMDEwNTMwNiAvKiBOYW1lRW1iZWRkZWRVbmlmb3JtU3RydWN0c01ldGFsLmggKi87IH07
CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQnVpbGRSdWxl
IHNlY3Rpb24gKi8KQEAgLTIxNjUsNiArMjE3MCw4IEBACiAJCUEzRDMyOTEzMjNDRkNCNzYwMDM3
NTY1NyAvKiBSZW1vdmVJbmFjdGl2ZUludGVyZmFjZVZhcmlhYmxlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdmVJbmFjdGl2ZUludGVyZmFjZVZhcmlhYmxlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQjM5RDBEMTEyMDBGMEUzMDAwODhFNjkgLyog
bGliQU5HTEUuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliQU5HTEUuYTsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRkIzOUQyQkYxMjAwRjNFNjAwMDg4
RTY5IC8qIFNoYWRlckxhbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IFNo
YWRlckxhbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkYyRDJGNTIyNUM4QjE0
QTAwMkZCNjk5IC8qIEZpeFR5cGVDb25zdHJ1Y3RvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRml4VHlw
ZUNvbnN0cnVjdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRjJEMkY1MzI1
QzhCMTRBMDAyRkI2OTkgLyogRml4VHlwZUNvbnN0cnVjdG9ycy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGaXhUeXBlQ29uc3RydWN0b3JzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRkY4MUZFODAyNTgxOEQ2ODAwODk0RTI0IC8qIG10bF9nbHNsYW5nX3V0aWxzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IG10bF9nbHNsYW5nX3V0aWxzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZGODFGRTgxMjU4MThENjgwMDg5NEUyNCAvKiBQcm9ncmFt
TXRsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2dyYW1NdGwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkY4MUZFODIyNTgxOEQ2ODAwODk0RTI0IC8qIERp
c3BsYXlNdGxfYXBpLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlN
dGxfYXBpLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzAyLDYgKzIzMDksOCBA
QAogCQlGRjgxRkY5ODI1ODFBM0MxMDA4OTRFMjQgLyogQXNOb2RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFzTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGRjgxRkY5OTI1ODFBM0MxMDA4OTRFMjQgLyogSW50ZXJtUmVidWlsZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnRlcm1SZWJ1aWxkLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkY4MUZGOUEyNTgxQTNDMjAwODk0RTI0IC8qIEludGVybVJl
YnVpbGQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW50ZXJtUmVidWlsZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRkEwQzJDNTI1Q0I2QTc2MDAxMDUzMDYg
LyogTmFtZUVtYmVkZGVkVW5pZm9ybVN0cnVjdHNNZXRhbC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBOYW1lRW1iZWRkZWRVbmlmb3JtU3RydWN0c01ldGFsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkZBMEMyQzYyNUNCNkE3NzAwMTA1MzA2IC8q
IE5hbWVFbWJlZGRlZFVuaWZvcm1TdHJ1Y3RzTWV0YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTmFtZUVtYmVkZGVkVW5pZm9ybVN0cnVjdHNNZXRhbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0zNTczLDYgKzM1
ODIsOCBAQAogCQkJCUZGODFGRjJEMjU4MTkxOTcwMDg5NEUyNCAvKiBFbWl0TWV0YWwuY3BwICov
LAogCQkJCUZGODFGRjUyMjU4MTkxOTcwMDg5NEUyNCAvKiBFbWl0TWV0YWwuaCAqLywKIAkJCQlG
RjgxRkYyODI1ODE5MTk3MDA4OTRFMjQgLyogRW52aXJvbm1lbnRWYXJpYWJsZS5oICovLAorCQkJ
CUZGMkQyRjUzMjVDOEIxNEEwMDJGQjY5OSAvKiBGaXhUeXBlQ29uc3RydWN0b3JzLmNwcCAqLywK
KwkJCQlGRjJEMkY1MjI1QzhCMTRBMDAyRkI2OTkgLyogRml4VHlwZUNvbnN0cnVjdG9ycy5oICov
LAogCQkJCUZGODFGRjQ4MjU4MTkxOTcwMDg5NEUyNCAvKiBIb2lzdENvbnN0YW50cy5jcHAgKi8s
CiAJCQkJRkY4MUZGNEMyNTgxOTE5NzAwODk0RTI0IC8qIEhvaXN0Q29uc3RhbnRzLmggKi8sCiAJ
CQkJRkY4MUZGNTEyNTgxOTE5NzAwODk0RTI0IC8qIElkR2VuLmNwcCAqLywKQEAgLTM1ODcsNiAr
MzU5OCw4IEBACiAJCQkJRkY4MUZGNTYyNTgxOTE5NzAwODk0RTI0IC8qIE1vZGlmeVN0cnVjdC5o
ICovLAogCQkJCUZGODFGRjIxMjU4MTkxOTcwMDg5NEUyNCAvKiBOYW1lLmNwcCAqLywKIAkJCQlG
RjgxRkYyNDI1ODE5MTk3MDA4OTRFMjQgLyogTmFtZS5oICovLAorCQkJCUZGQTBDMkM1MjVDQjZB
NzYwMDEwNTMwNiAvKiBOYW1lRW1iZWRkZWRVbmlmb3JtU3RydWN0c01ldGFsLmNwcCAqLywKKwkJ
CQlGRkEwQzJDNjI1Q0I2QTc3MDAxMDUzMDYgLyogTmFtZUVtYmVkZGVkVW5pZm9ybVN0cnVjdHNN
ZXRhbC5oICovLAogCQkJCUZGODFGRjM3MjU4MTkxOTcwMDg5NEUyNCAvKiBQaXBlbGluZS5jcHAg
Ki8sCiAJCQkJRkY4MUZGNDkyNTgxOTE5NzAwODk0RTI0IC8qIFBpcGVsaW5lLmggKi8sCiAJCQkJ
RkY4MUZGNTAyNTgxOTE5NzAwODk0RTI0IC8qIFByb2dyYW1QcmVsdWRlLmNwcCAqLywKQEAgLTM3
MzcsNiArMzc1MCw3IEBACiAJCQkJMzFDREZGQUYyNDkxODRBMTAwNDg2RjI3IC8qIEZpbmRNYWlu
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUNERkZCNjI0OTE4NEExMDA0ODZGMjcgLyogRmluZFN5
bWJvbE5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQ0RGRjY4MjQ5MTg0OEMwMDQ4NkYyNyAv
KiBGaXhlZFZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkYyRDJGNTUyNUM4QjE0QTAwMkZC
Njk5IC8qIEZpeFR5cGVDb25zdHJ1Y3RvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUEzQzQ5QzE2
MjU1REY4NjYwMDVFOERGNyAvKiBGbGFnU2FtcGxlcnNXaXRoVGV4ZWxGZXRjaC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFDREZGQzAyNDkxODRBNzAwNDg2RjI3IC8qIEZsYWdTdGQxNDBTdHJ1Y3Rz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUNERkY3RjI0OTE4NDk4MDA0ODZGMjcgLyogRm9sZEV4
cHJlc3Npb25zLmggaW4gSGVhZGVycyAqLywKQEAgLTQxNjksNiArNDE4Myw3IEBACiAJCQkJNUM1
NUQ2RkYyMjgyNkNCMzAwQjVCQTJDIC8qIEZpbmRNYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
QzU1RDZGQjIyODI2Q0IzMDBCNUJBMkMgLyogRmluZFN5bWJvbE5vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDNTVENzI4MjI4Mjc0NzcwMEI1QkEyQyAvKiBGaXhlZFZlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRkYyRDJGNTQyNUM4QjE0QTAwMkZCNjk5IC8qIEZpeFR5cGVDb25zdHJ1Y3Rv
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUEzQzQ5QzEyMjU1REY4NjUwMDVFOERGNyAvKiBGbGFn
U2FtcGxlcnNXaXRoVGV4ZWxGZXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM5RkZGNEYxOTEw
MkEwMDAwMjVCOEZBIC8qIEZsYWdTdGQxNDBTdHJ1Y3RzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
QzU1RDZBNDIyODI2QjlGMDBCNUJBMkMgLyogRm9sZEV4cHJlc3Npb25zLmggaW4gSGVhZGVycyAq
LywKQEAgLTQyNzQsNiArNDI4OSw3IEBACiAJCQkJRkY4MUZGMDkyNTgxOEQ2OTAwODk0RTI0IC8q
IG10bF91dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkY4MUZGNUUyNTgxOTE5NzAwODk0RTI0
IC8qIE5hbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNTVENjY5MjI4MjZCOUYwMEI1QkEyQyAv
KiBOYW1lRW1iZWRkZWRVbmlmb3JtU3RydWN0cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkZBMEMy
QzgyNUNCNkE3NzAwMTA1MzA2IC8qIE5hbWVFbWJlZGRlZFVuaWZvcm1TdHJ1Y3RzTWV0YWwuaCBp
biBIZWFkZXJzICovLAogCQkJCUEzMDMwNzBCMjMwNUY2QjUwMDJEQTk3MiAvKiBub19kZXN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzU1RDcwNzIyODI2Q0IzMDBCNUJBMkMgLyogTm9k
ZVNlYXJjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkY4MUZGOUIyNTgxQTNDMjAwODk0RTI0IC8q
IE5vZGVUeXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTQ3NDYsNiArNDc2Miw3IEBACiAJCQkJQTMw
MzA3MDMyMzA1RjYzNjAwMkRBOTcyIC8qIEZpbmRGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1QzU1RDZGRDIyODI2Q0IzMDBCNUJBMkMgLyogRmluZE1haW4uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUM1NUQ3MDMyMjgyNkNCMzAwQjVCQTJDIC8qIEZpbmRTeW1ib2xOb2RlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUZGMkQyRjU2MjVDOEIxNEEwMDJGQjY5OSAvKiBGaXhUeXBlQ29u
c3RydWN0b3JzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzQzQ5QzBCMjU1REY4NUYwMDVFOERG
NyAvKiBGbGFnU2FtcGxlcnNXaXRoVGV4ZWxGZXRjaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
QzlGRkY0RTE5MTAyQTAwMDAyNUI4RkEgLyogRmxhZ1N0ZDE0MFN0cnVjdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNDRDgxOEYxREJGRUExMDAwNjA2NkI4IC8qIEZsb2F0MTZUb0Zsb2F0MzIu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC00ODI4LDYgKzQ4NDUsNyBAQAogCQkJCUZGODFGRUVDMjU4
MThENjkwMDg5NEUyNCAvKiBtdGxfdXRpbHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGRjgxRkY1
QjI1ODE5MTk3MDA4OTRFMjQgLyogTmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzU1RDZC
NjIyODI2QkM4MDBCNUJBMkMgLyogTmFtZUVtYmVkZGVkVW5pZm9ybVN0cnVjdHMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRkZBMEMyQzcyNUNCNkE3NzAwMTA1MzA2IC8qIE5hbWVFbWJlZGRlZFVu
aWZvcm1TdHJ1Y3RzTWV0YWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE1RUJEQkYxRkNFNDRC
RjAwQUM3QTg5IC8qIG51bGxfZnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDQ0Q1
OTY5MjI4NEY3OTYwMDE4RjJEOCAvKiBPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
QzFEQkMzMzFCMDQzNzVGMDAyMzU1NTIgLyogT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRv
ci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0LmNwcAppbmRleCA0ZTEw
MjI4MmVlM2FhYWRmNmYwYjQyNTZmNjdmNTM5OGJhZTBlNTE5Li42YWFlZTNlZDZiMzY0NzI2ZTNj
MDk1M2Q3OWMyMGNlOTczMWZkMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QuY3BwCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0
b3JNZXRhbERpcmVjdC5jcHAKQEAgLTI3LDEyICsyNywxMyBAQAogI2luY2x1ZGUgImNvbXBpbGVy
L3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1Jld3JpdGVVbmFkZHJlc3NhYmxlUmVm
ZXJlbmNlcy5oIgogI2luY2x1ZGUgImNvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFs
RGlyZWN0L1NlcGFyYXRlQ29tcG91bmRFeHByZXNzaW9ucy5oIgogI2luY2x1ZGUgImNvbXBpbGVy
L3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1NlcGFyYXRlQ29tcG91bmRTdHJ1Y3RE
ZWNsYXJhdGlvbnMuaCIKKyNpbmNsdWRlICJjb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JN
ZXRhbERpcmVjdC9GaXhUeXBlQ29uc3RydWN0b3JzLmgiCiAjaW5jbHVkZSAiY29tcGlsZXIvdHJh
bnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvU3ltYm9sRW52LmgiCiAjaW5jbHVkZSAiY29t
cGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvVG9wb3NvcnRTdHJ1Y3RzLmgi
CiAjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvV3Jh
cE1haW4uaCIKICNpbmNsdWRlICJjb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbFV0
aWxzLmgiCiAjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy9Jbml0aWFsaXpl
VmFyaWFibGVzLmgiCi0jaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy9OYW1l
RW1iZWRkZWRVbmlmb3JtU3RydWN0cy5oIgorI2luY2x1ZGUgImNvbXBpbGVyL3RyYW5zbGF0b3Iv
VHJhbnNsYXRvck1ldGFsRGlyZWN0L05hbWVFbWJlZGRlZFVuaWZvcm1TdHJ1Y3RzTWV0YWwuaCIK
ICNpbmNsdWRlICJjb21waWxlci90cmFuc2xhdG9yL3RyZWVfb3BzL1JlbW92ZUF0b21pY0NvdW50
ZXJCdWlsdGlucy5oIgogI2luY2x1ZGUgImNvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9vcHMvUmVt
b3ZlSW5hY3RpdmVJbnRlcmZhY2VWYXJpYWJsZXMuaCIKICNpbmNsdWRlICJjb21waWxlci90cmFu
c2xhdG9yL3RyZWVfb3BzL1Jld3JpdGVBdG9taWNDb3VudGVycy5oIgpAQCAtNjAyLDYgKzYwMywx
OSBAQCB2b2lkIEFkZEZyYWdEZXB0aERlY2xhcmF0aW9uKFRJbnRlcm1CbG9jayAmcm9vdCwgVFN5
bWJvbFRhYmxlICZzeW1ib2xUYWJsZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgVEludGVy
bVNlcXVlbmNle25ldyBUSW50ZXJtRGVjbGFyYXRpb257QnVpbHRJblZhcmlhYmxlOjpnbF9GcmFn
RGVwdGgoKX19KTsKIH0KIAordm9pZCBBZGRGcmFnRGVwdGhFWFREZWNsYXJhdGlvbihUQ29tcGls
ZXIgJmNvbXBpbGVyLCBUSW50ZXJtQmxvY2sgJnJvb3QsIFRTeW1ib2xUYWJsZSAmc3ltYm9sVGFi
bGUpCit7ICAgCisgICAgY29uc3QgVEludGVybVN5bWJvbCAqZ2xGcmFnRGVwdGhFeHQgPSBGaW5k
U3ltYm9sTm9kZSgmcm9vdCwgSW1tdXRhYmxlU3RyaW5nKCJnbF9GcmFnRGVwdGhFWFQiKSk7Cisg
ICAgQVNTRVJUKGdsRnJhZ0RlcHRoRXh0KTsKKworICAgIC8vIFJlcGxhY2UgZ2xfRnJhZ0RhdGEo
KSB3aXRoIG91ciBnbG9iYWxseSBkZWZpbmVkIGZyYWdkYXRhCisgICAgaWYgKCFSZXBsYWNlVmFy
aWFibGUoJmNvbXBpbGVyLCAmcm9vdCwgJihnbEZyYWdEZXB0aEV4dC0+dmFyaWFibGUoKSksIEJ1
aWx0SW5WYXJpYWJsZTo6Z2xfRnJhZ0RlcHRoKCkpKQorICAgIHsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBBZGRGcmFnRGVwdGhEZWNsYXJhdGlvbihyb290LCBzeW1ib2xUYWJsZSk7Cit9
CisKIEFOR0xFX05PX0RJU0NBUkQgYm9vbCBBZGRGcmFnRGF0YURlY2xhcmF0aW9uKFRDb21waWxl
ciAmY29tcGlsZXIsIFRJbnRlcm1CbG9jayAmcm9vdCkKIHsKICAgICBUU3ltYm9sVGFibGUgJnN5
bWJvbFRhYmxlID0gY29tcGlsZXIuZ2V0U3ltYm9sVGFibGUoKTsKQEAgLTkzOSw3ICs5NTMsNyBA
QCBib29sIFRyYW5zbGF0b3JNZXRhbERpcmVjdDo6dHJhbnNsYXRlSW1wbChUSW50ZXJtQmxvY2sg
JnJvb3QsIFNoQ29tcGlsZU9wdGlvbnMgYwogCiAgICAgaWYgKGFnZ3JlZ2F0ZVR5cGVzVXNlZEZv
clVuaWZvcm1zID4gMCkKICAgICB7Ci0gICAgICAgIGlmICghTmFtZUVtYmVkZGVkU3RydWN0VW5p
Zm9ybXModGhpcywgJnJvb3QsICZzeW1ib2xUYWJsZSkpCisgICAgICAgIGlmICghTmFtZUVtYmVk
ZGVkU3RydWN0VW5pZm9ybXNNZXRhbCh0aGlzLCAmcm9vdCwgJnN5bWJvbFRhYmxlKSkKICAgICAg
ICAgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CkBAIC0xMTA1LDYgKzEx
MTksNyBAQCBib29sIFRyYW5zbGF0b3JNZXRhbERpcmVjdDo6dHJhbnNsYXRlSW1wbChUSW50ZXJt
QmxvY2sgJnJvb3QsIFNoQ29tcGlsZU9wdGlvbnMgYwogICAgICAgICBib29sIHVzZXNGcmFnQ29s
b3IgPSBmYWxzZTsKICAgICAgICAgYm9vbCB1c2VzRnJhZ0RhdGEgID0gZmFsc2U7CiAgICAgICAg
IGJvb2wgdXNlc0ZyYWdEZXB0aCA9IGZhbHNlOworICAgICAgICBib29sIHVzZXNGcmFnRGVwdGhF
WFQgPSBmYWxzZTsKICAgICAgICAgZm9yIChjb25zdCBTaGFkZXJWYXJpYWJsZSAmb3V0cHV0VmFy
eWluZyA6IG1PdXRwdXRWYXJpYWJsZXMpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChvdXRw
dXRWYXJ5aW5nLmlzQnVpbHRJbigpKQpAQCAtMTEyMSw2ICsxMTM2LDEwIEBAIGJvb2wgVHJhbnNs
YXRvck1ldGFsRGlyZWN0Ojp0cmFuc2xhdGVJbXBsKFRJbnRlcm1CbG9jayAmcm9vdCwgU2hDb21w
aWxlT3B0aW9ucyBjCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB1c2Vz
RnJhZ0RlcHRoID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoIG91dHB1dFZhcnlpbmcubmFtZSA9PSAiZ2xfRnJhZ0RlcHRoRVhUIikKKyAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHVzZXNGcmFnRGVwdGhFWFQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0xMTQxLDgg
KzExNjAsMTEgQEAgYm9vbCBUcmFuc2xhdG9yTWV0YWxEaXJlY3Q6OnRyYW5zbGF0ZUltcGwoVElu
dGVybUJsb2NrICZyb290LCBTaENvbXBpbGVPcHRpb25zIGMKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLQotICAgICAgICBpZiAodXNlc0Zy
YWdEZXB0aCkKKyAgICAgICAgaWYodXNlc0ZyYWdEZXB0aEVYVCkKKyAgICAgICAgeworICAgICAg
ICAgICAgQWRkRnJhZ0RlcHRoRVhURGVjbGFyYXRpb24oKnRoaXMsIHJvb3QsIHN5bWJvbFRhYmxl
KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICh1c2VzRnJhZ0RlcHRoKQogICAgICAgICB7
CiAgICAgICAgICAgICBBZGRGcmFnRGVwdGhEZWNsYXJhdGlvbihyb290LCBzeW1ib2xUYWJsZSk7
CiAgICAgICAgIH0KQEAgLTEyMjAsNiArMTI0MiwxNSBAQCBib29sIFRyYW5zbGF0b3JNZXRhbERp
cmVjdDo6dHJhbnNsYXRlSW1wbChUSW50ZXJtQmxvY2sgJnJvb3QsIFNoQ29tcGlsZU9wdGlvbnMg
YwogICAgICAgICAgICAgfQogICAgICAgICAgICAgRGVjbGFyZVJpZ2h0QmVmb3JlTWFpbihyb290
LCBrZ2xfVmVydGV4SW5kZXhNZXRhbCk7CiAgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoRmlu
ZFN5bWJvbE5vZGUoJnJvb3QsIEJ1aWx0SW5WYXJpYWJsZTo6Z2xfVmVydGV4SUQoKS0+bmFtZSgp
KSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFSZXBsYWNlVmFyaWFibGUodGhpcywgJnJv
b3QsIEJ1aWx0SW5WYXJpYWJsZTo6Z2xfVmVydGV4SUQoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZrZ2xfVmVydGV4SW5kZXhNZXRhbCkpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgRGVj
bGFyZVJpZ2h0QmVmb3JlTWFpbihyb290LCBrZ2xfVmVydGV4SW5kZXhNZXRhbCk7CisgICAgICAg
IH0KIAogI2lmIDAKICAgICAgICAgaWYgKGNvbXBpbGVPcHRpb25zICYgU0hfQUREX0JSRVNFTkhB
TV9MSU5FX1JBU1RFUl9FTVVMQVRJT04pCkBAIC0xMzE5LDcgKzEzNTAsNyBAQCBib29sIFRyYW5z
bGF0b3JNZXRhbERpcmVjdDo6dHJhbnNsYXRlSW1wbChUSW50ZXJtQmxvY2sgJnJvb3QsIFNoQ29t
cGlsZU9wdGlvbnMgYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKCFS
ZWR1Y2VJbnRlcmZhY2VCbG9ja3MoKnRoaXMsIHJvb3QpKQorICAgIGlmICghUmVkdWNlSW50ZXJm
YWNlQmxvY2tzKCp0aGlzLCByb290LCBpZEdlbikpCiAgICAgewogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpAQCAtMTM3NywxMiArMTQwOCwxNiBAQCBib29sIFRyYW5zbGF0b3JNZXRhbERp
cmVjdDo6dHJhbnNsYXRlSW1wbChUSW50ZXJtQmxvY2sgJnJvb3QsIFNoQ29tcGlsZU9wdGlvbnMg
YwogICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyAgICBpZighRml4VHlwZUNv
bnN0cnVjdG9ycygqdGhpcywgc3ltYm9sRW52LCByb290KSkKKyAgICB7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CiAKICAgICBpZiAoIVRvcG9zb3J0U3RydWN0cygqdGhpcywgc3ltYm9s
RW52LCByb290LCBwcGMpKQogICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLQor
ICAgIAogICAgIGlmICghRW1pdE1ldGFsKCp0aGlzLCByb290LCBpZEdlbiwgcGlwZWxpbmVTdHJ1
Y3RzLCBpbnZhcmlhbnRzLCBzeW1ib2xFbnYsIHBwYykpCiAgICAgewogICAgICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIv
dHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvRW1pdE1ldGFsLmNwcCBiL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERp
cmVjdC9FbWl0TWV0YWwuY3BwCmluZGV4IDYzYjE1N2RhZmFlODRlMzdiN2EwNDY2NDllNWNkOTJi
YjM0MWVjOWQuLjQyN2M0YzFmMGRlZjIwNWMzNTM4N2JlOTk0NWVkZWI5ZDg0YzViN2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1Ry
YW5zbGF0b3JNZXRhbERpcmVjdC9FbWl0TWV0YWwuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9FbWl0
TWV0YWwuY3BwCkBAIC05MzMsNyArOTMzLDcgQEAgdm9pZCBHZW5NZXRhbFRyYXZlcnNlcjo6ZW1p
dFBvc3RRdWFsaWZpZXIoY29uc3QgRW1pdFZhcmlhYmxlRGVjbGFyYXRpb25Db25maWcgJmUKICAg
ICB9CiAKICAgICBjb25zdCBib29sIGlzSW52YXJpYW50ID0KLSAgICAgICAgZGVjbC5pc0ZpZWxk
KCkgPyBtSW52YXJpYW50cy5jb250YWlucyhkZWNsLmZpZWxkKCkpIDogbUludmFyaWFudHMuY29u
dGFpbnMoZGVjbC52YXJpYWJsZSgpKTsKKyAgICAgICAgKGRlY2wuaXNGaWVsZCgpID8gbUludmFy
aWFudHMuY29udGFpbnMoZGVjbC5maWVsZCgpKSA6IG1JbnZhcmlhbnRzLmNvbnRhaW5zKGRlY2wu
dmFyaWFibGUoKSkpICYmIChxdWFsaWZpZXIgPT0gVFF1YWxpZmllcjo6RXZxUG9zaXRpb24gfHwg
cXVhbGlmaWVyID09IFRRdWFsaWZpZXI6OkV2cUZyYWdDb29yZCk7CiAKICAgICBpZiAoaXNJbnZh
cmlhbnQpCiAgICAgewpAQCAtMTU0Nyw5ICsxNTQ3LDM0IEBAIGJvb2wgR2VuTWV0YWxUcmF2ZXJz
ZXI6OnZpc2l0QmluYXJ5KFZpc2l0LCBUSW50ZXJtQmluYXJ5ICpiaW5hcnlOb2RlKQogICAgICAg
ICBjYXNlIFRPcGVyYXRvcjo6RU9wSW5kZXhEaXJlY3Q6CiAgICAgICAgIGNhc2UgVE9wZXJhdG9y
OjpFT3BJbmRleEluZGlyZWN0OgogICAgICAgICB7CisgICAgICAgICAgICBUVHlwZSBsZWZ0VHlw
ZSA9IGxlZnROb2RlLmdldFR5cGUoKTsKICAgICAgICAgICAgIGdyb3VwZWRUcmF2ZXJzZShsZWZ0
Tm9kZSk7CiAgICAgICAgICAgICBtT3V0IDw8ICJbIjsKLSAgICAgICAgICAgIHJpZ2h0Tm9kZS50
cmF2ZXJzZSh0aGlzKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtT3V0IDw8ICJB
TkdMRV9pbnRfY2xhbXAoIjsKKyAgICAgICAgICAgICAgICBncm91cGVkVHJhdmVyc2UocmlnaHRO
b2RlKTsKKyAgICAgICAgICAgICAgICBtT3V0IDw8ICIsIDAsICI7CisgICAgICAgICAgICAgICAg
aWYobGVmdFR5cGUuaXNVbnNpemVkQXJyYXkoKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIGdyb3VwZWRUcmF2ZXJzZShsZWZ0Tm9kZSk7CisgICAgICAgICAgICAgICAg
ICAgIG1PdXQgPDwgIi5zaXplKCkiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbnQgbWF4U2l6
ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnRUeXBlLmlzQXJyYXkoKSkKKyAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgbWF4U2l6ZSA9IHN0YXRpY19j
YXN0PGludD4obGVmdFR5cGUuZ2V0T3V0ZXJtb3N0QXJyYXlTaXplKCkpIC0gMTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1heFNpemUgPSBsZWZ0VHlwZS5nZXROb21p
bmFsU2l6ZSgpIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBtT3V0IDw8IG1heFNpemU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1P
dXQgPDwgIikiOworCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBtT3V0IDw8ICJdIjsKICAg
ICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTE4NjgsNyArMTg5Myw5IEBAIEdlbk1ldGFsVHJh
dmVyc2VyOjpGdW5jVG9OYW1lIEdlbk1ldGFsVHJhdmVyc2VyOjpCdWlsZEZ1bmNUb05hbWUoKQog
ICAgIHB1dEFuZ2xlKCJ0ZXh0dXJlMkQiKTsKICAgICBwdXRBbmdsZSgidGV4dHVyZTJETG9kIik7
CiAgICAgcHV0QW5nbGUoInRleHR1cmUyRFByb2oiKTsKKyAgICBwdXRBbmdsZSgidGV4dHVyZTJE
UmVjdCIpOwogICAgIHB1dEFuZ2xlKCJ0ZXh0dXJlMkRQcm9qTG9kIik7CisgICAgcHV0QW5nbGUo
InRleHR1cmUyRFJlY3RQcm9qIik7CiAgICAgcHV0QW5nbGUoInRleHR1cmUzRCIpOwogICAgIHB1
dEFuZ2xlKCJ0ZXh0dXJlM0RMb2QiKTsKICAgICBwdXRBbmdsZSgidGV4dHVyZTNEUHJvakxvZCIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5z
bGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L0ZpeFR5cGVDb25zdHJ1Y3RvcnMuY3BwIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1l
dGFsRGlyZWN0L0ZpeFR5cGVDb25zdHJ1Y3RvcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlOWU3MTNlZGRj
MDY2MzJlZTg2YTk1YTQzMTIwNWI1ZmY5NzU4NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxE
aXJlY3QvRml4VHlwZUNvbnN0cnVjdG9ycy5jcHAKQEAgLTAsMCArMSw5NyBAQAorCisvLworLy8g
Q29weXJpZ2h0IDIwMjAgVGhlIEFOR0xFIFByb2plY3QgQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0
eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisv
LworI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRv
ci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvQXN0SGVscGVycy5oIgorI2luY2x1ZGUgImNvbXBpbGVy
L3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L0RlYnVnLmgiCisjaW5jbHVkZSAiY29t
cGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvRW52aXJvbm1lbnRWYXJpYWJs
ZS5oIgorI2luY2x1ZGUgImNvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV9vcHMvU2ltcGxpZnlMb29w
Q29uZGl0aW9ucy5oIgorI2luY2x1ZGUgImNvbXBpbGVyL3RyYW5zbGF0b3IvdHJlZV91dGlsL0lu
dGVybVJlYnVpbGQuaCIKKyNpbmNsdWRlICJjb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JN
ZXRhbERpcmVjdC9GaXhUeXBlQ29uc3RydWN0b3JzLmgiCit1c2luZyBuYW1lc3BhY2Ugc2g7Cisv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworbmFtZXNwYWNlCit7CitjbGFzcyBGaXhUeXBlVHJhdmVy
c2VyIDogcHVibGljIFRJbnRlcm1UcmF2ZXJzZXIKK3sKK3B1YmxpYzoKKyAgRml4VHlwZVRyYXZl
cnNlcigpIDogVEludGVybVRyYXZlcnNlcihmYWxzZSwgZmFsc2UsIHRydWUpIHt9CisgICAgCisg
ICAgICAgIGJvb2wgdmlzaXRBZ2dyZWdhdGUoVmlzaXQgdmlzaXQsIFRJbnRlcm1BZ2dyZWdhdGUg
KmFnZ3JlZ2F0ZU5vZGUpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAodmlzaXQgIT0gVmlz
aXQ6OlBvc3RWaXNpdCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0KKyAgICAgICAgaWYoYWdncmVnYXRlTm9kZS0+aXNDb25zdHJ1Y3RvcigpKQorICAgICAg
ICB7CisgICAgICAgICAgICBjb25zdCBUVHlwZSAmcmV0VHlwZSA9IGFnZ3JlZ2F0ZU5vZGUtPmdl
dFR5cGUoKTsKKyAgICAgICAgICAgIGlmKHJldFR5cGUuaXNTY2FsYXIoKSkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYo
cmV0VHlwZS5pc1ZlY3RvcigpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNpemVf
dCBwcmltYXJ5U2l6ZSA9IHJldFR5cGUuZ2V0Tm9taW5hbFNpemUoKTsKKyAgICAgICAgICAgICAg
ICBUSW50ZXJtU2VxdWVuY2UgKmFyZ3MgPSBhZ2dyZWdhdGVOb2RlLT5nZXRTZXF1ZW5jZSgpOwor
ICAgICAgICAgICAgICAgIHNpemVfdCBhcmdzU2l6ZSA9IDA7CisgICAgICAgICAgICAgICAgc2l6
ZV90IGJlZm9yZVNpemUgPSAwOworICAgICAgICAgICAgICAgIFRJbnRlcm1Ob2RlICpsYXN0QXJn
OworICAgICAgICAgICAgICAgIGZvciAoVEludGVybU5vZGUgKiZhcmcgOiAqYXJncykKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBU
SW50ZXJtVHlwZWQgKnRhcmcgPSBhcmctPmdldEFzVHlwZWQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgbGFzdEFyZyA9IGFyZzsKKyAgICAgICAgICAgICAgICAgICAgaWYodGFyZykKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFyZ3NTaXplICs9IHRhcmctPmdldE5vbWluYWxTaXplKCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmKGFyZ3NTaXplIDw9IHByaW1hcnlTaXplKQorICAgICAgICAgICAg
ICAgICAgICAgICAgYmVmb3JlU2l6ZSs9IHRhcmctPmdldE5vbWluYWxTaXplKCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmKGFyZ3NTaXplID4gcHJpbWFyeVNpemUpCisg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc3dpenpsZVNpemUg
PSBwcmltYXJ5U2l6ZSAtIGJlZm9yZVNpemU7CisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1U
eXBlZCAqdGFyZyA9IGxhc3RBcmctPmdldEFzVHlwZWQoKTsKKyAgICAgICAgICAgICAgICAgICAg
VEludGVybVN3aXp6bGUgKiBuZXdTd2l6emxlID0gbnVsbHB0cjsKKyAgICAgICAgICAgICAgICAg
ICAgc3dpdGNoKHN3aXp6bGVTaXplKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3dp
enpsZSA9IG5ldyBUSW50ZXJtU3dpenpsZSh0YXJnLT5kZWVwQ29weSgpLHswfSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3dpenpsZSA9IG5ldyBUSW50ZXJt
U3dpenpsZSh0YXJnLT5kZWVwQ29weSgpLHswLDF9KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdTd2l6emxlID0gbmV3IFRJbnRlcm1Td2l6emxlKHRhcmctPmRl
ZXBDb3B5KCksezAsMSwyfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCBpbiBjYXNlIG9mIDAsIG9yIDQiKTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZihuZXdTd2l6emxl
KQorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+cXVldWVSZXBsYWNlbWVudFdpdGhQYXJl
bnQoYWdncmVnYXRlTm9kZSwgbGFzdEFyZywgbmV3U3dpenpsZSwgT3JpZ2luYWxOb2RlOjpJU19E
Uk9QUEVEKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBl
bHNlIGlmKHJldFR5cGUuaXNNYXRyaXgoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAvL1RCRCBpZiBpc3N1ZXMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9Cit9OworfSAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KK2Jvb2wgc2g6OkZpeFR5cGVDb25zdHJ1Y3RvcnMoVENvbXBpbGVyICZj
b21waWxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTeW1ib2xFbnYg
JnN5bWJvbEVudiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSW50ZXJt
QmxvY2sgJnJvb3QpCit7CisgICAgRml4VHlwZVRyYXZlcnNlciB0cmF2ZXJzZXI7CisgICAgcm9v
dC50cmF2ZXJzZSgmdHJhdmVyc2VyKTsKKyAgICBpZighdHJhdmVyc2VyLnVwZGF0ZVRyZWUoJmNv
bXBpbGVyLCAmcm9vdCkpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IHJldHVybiB0cnVlOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0
b3JNZXRhbERpcmVjdC9GaXhUeXBlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvRml4VHlw
ZUNvbnN0cnVjdG9ycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5YWQzOGMzOWM1OTM3NGEzNTRlMjZmYzQxNTgz
NTBhNjI3YjBjNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvRml4VHlwZUNvbnN0
cnVjdG9ycy5oCkBAIC0wLDAgKzEsMTkgQEAKKy8vCisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgQU5H
TEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi
ZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8vCisKKyNpZm5kZWYgQ09NUElMRVJf
VFJBTlNMQVRPUl9UUkFOU0xBVE9STUVUQUxESVJFQ1RfRklYVFlQRUNPTlNUUlVDVE9SU19IXwor
I2RlZmluZSBDT01QSUxFUl9UUkFOU0xBVE9SX1RSQU5TTEFUT1JNRVRBTERJUkVDVF9GSVhUWVBF
Q09OU1RSVUNUT1JTX0hfCisjaW5jbHVkZSAiY29tbW9uL2FuZ2xldXRpbHMuaCIKKyNpbmNsdWRl
ICJjb21waWxlci90cmFuc2xhdG9yL0NvbXBpbGVyLmgiCisjaW5jbHVkZSAiY29tcGlsZXIvdHJh
bnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvU3ltYm9sRW52LmgiCisKK25hbWVzcGFjZSBz
aAoreworCUFOR0xFX05PX0RJU0NBUkQgYm9vbCBGaXhUeXBlQ29uc3RydWN0b3JzKFRDb21waWxl
ciAmY29tcGlsZXIsIFN5bWJvbEVudiAmU3ltYm9sRW52LCBUSW50ZXJtQmxvY2sgJnJvb3QpOwor
Cit9ICAvL25hbWVzcGFjZSBzaAorCisjZW5kaWYgLy9DT01QSUxFUl9UUkFOU0xBVE9SX1RSQU5T
TEFUT1JNRVRBTERJUkVDVF9GSVhUWVBFQ09OU1RSVUNUT1JTX0hfClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBp
bGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L05hbWVFbWJlZGRlZFVuaWZvcm1T
dHJ1Y3RzTWV0YWwuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3Ry
YW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L05hbWVFbWJlZGRlZFVuaWZvcm1TdHJ1Y3Rz
TWV0YWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhYjVmMmM5NzQ4NDVmMjlhOTg2ZTE5NzU2M2UxYzE5MzQy
ODdiM2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29t
cGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvTmFtZUVtYmVkZGVkVW5pZm9y
bVN0cnVjdHNNZXRhbC5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8vCisvLyBDb3B5cmlnaHQgMjAx
OCBUaGUgQU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0
aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy8vCisvLyBOYW1lRW1i
ZWRkZWRVbmlmb3JtU3RydWN0c01ldGFsOiBHaXZlcyBuYW1lbGVzcyB1bmlmb3JtIHN0cnVjdCBp
bnRlcm5hbCBuYW1lcy4KKy8vCisKKyNpbmNsdWRlICJjb21waWxlci90cmFuc2xhdG9yL1RyYW5z
bGF0b3JNZXRhbERpcmVjdC9OYW1lRW1iZWRkZWRVbmlmb3JtU3RydWN0c01ldGFsLmgiCisKKyNp
bmNsdWRlICJjb21waWxlci90cmFuc2xhdG9yL1N5bWJvbFRhYmxlLmgiCisjaW5jbHVkZSAiY29t
cGlsZXIvdHJhbnNsYXRvci90cmVlX3V0aWwvSW50ZXJtVHJhdmVyc2UuaCIKKworbmFtZXNwYWNl
IHNoCit7CituYW1lc3BhY2UKK3sKKy8vIFRoaXMgdHJhdmVyc2VyIHRyYW5zbGF0ZXMgZW1iZWRk
ZWQgdW5pZm9ybSBzdHJ1Y3RzIGludG8gYSBzcGVjaWZpZXIgYW5kIGRlY2xhcmF0aW9uLgorLy8g
VGhpcyBtYWtlcyB0aGUgZGVjbGFyYXRpb25zIGVhc2llciB0byBtb3ZlIGludG8gdW5pZm9ybSBi
bG9ja3MuCitjbGFzcyBUcmF2ZXJzZXIgOiBwdWJsaWMgVEludGVybVRyYXZlcnNlcgoreworCisg
IHB1YmxpYzoKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50LCBUSW50ZXJtU3ltYm9sICo+IHJl
cGxhY2VtZW50czsKKyAgICBleHBsaWNpdCBUcmF2ZXJzZXIoVFN5bWJvbFRhYmxlICpzeW1ib2xU
YWJsZSkKKyAgICAgICAgOiBUSW50ZXJtVHJhdmVyc2VyKHRydWUsIGZhbHNlLCBmYWxzZSwgc3lt
Ym9sVGFibGUpCisgICAgeworCisgICAgfQorCisgICAgYm9vbCB2aXNpdERlY2xhcmF0aW9uKFZp
c2l0IHZpc2l0LCBUSW50ZXJtRGVjbGFyYXRpb24gKmRlY2wpIG92ZXJyaWRlCisgICAgeworICAg
ICAgICBBU1NFUlQodmlzaXQgPT0gUHJlVmlzaXQpOworCisgICAgICAgIGlmICghbUluR2xvYmFs
U2NvcGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbnN0IFRJbnRlcm1TZXF1ZW5jZSAmc2VxdWVuY2UgPSAqKGRlY2wtPmdldFNl
cXVlbmNlKCkpOworICAgICAgICBBU1NFUlQoc2VxdWVuY2Uuc2l6ZSgpID09IDEpOworICAgICAg
ICBUSW50ZXJtVHlwZWQgKmRlY2xhcmF0b3IgPSBzZXF1ZW5jZS5mcm9udCgpLT5nZXRBc1R5cGVk
KCk7CisgICAgICAgIGNvbnN0IFRUeXBlICZ0eXBlICAgICAgICA9IGRlY2xhcmF0b3ItPmdldFR5
cGUoKTsKKworICAgICAgICBpZiAodHlwZS5pc1N0cnVjdFNwZWNpZmllcigpICYmIHR5cGUuZ2V0
UXVhbGlmaWVyKCkgPT0gRXZxVW5pZm9ybSkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc3Qg
VFN0cnVjdHVyZSAqc3RydWN0dXJlID0gdHlwZS5nZXRTdHJ1Y3QoKTsKKworICAgICAgICAgICAg
aWYgKHN0cnVjdHVyZS0+c3ltYm9sVHlwZSgpID09IFN5bWJvbFR5cGU6OkVtcHR5KQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGRvUmVwbGFjZW1lbnQoZGVjbCwgZGVjbGFyYXRvciwg
c3RydWN0dXJlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgdm9pZCB2aXNpdFN5bWJvbChUSW50ZXJtU3ltYm9sICpkZWNsKSBv
dmVycmlkZQorICAgIHsKKyAgICAgICAgYXV0byBzeW1ib2wgPSByZXBsYWNlbWVudHMuZmluZChk
ZWNsLT51bmlxdWVJZCgpLmdldCgpKTsKKyAgICAgICAgaWYoc3ltYm9sICE9IHJlcGxhY2VtZW50
cy5lbmQoKSkKKyAgICAgICAgeworICAgICAgICAgICAgcXVldWVSZXBsYWNlbWVudChzeW1ib2wt
PnNlY29uZC0+ZGVlcENvcHkoKSwgT3JpZ2luYWxOb2RlOjpJU19EUk9QUEVEKTsKKyAgICAgICAg
fQorICAgIH0KKworICBwcml2YXRlOgorICAgIHZvaWQgZG9SZXBsYWNlbWVudChUSW50ZXJtRGVj
bGFyYXRpb24gKmRlY2wsCisgICAgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCAqZGVj
bGFyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVFN0cnVjdHVyZSAqb2xkU3Ry
dWN0dXJlKQorICAgIHsKKyAgICAgICAgLy8gc3RydWN0IDxzdHJ1Y3ROYW1lPiB7IC4uLiB9Owor
ICAgICAgICBUU3RydWN0dXJlICpzdHJ1Y3R1cmUgPSBuZXcgVFN0cnVjdHVyZShtU3ltYm9sVGFi
bGUsIGtFbXB0eUltbXV0YWJsZVN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJm9sZFN0cnVjdHVyZS0+ZmllbGRzKCksIFN5bWJvbFR5cGU6OkFu
Z2xlSW50ZXJuYWwpOworICAgICAgICBUVHlwZSAqbmFtZWRUeXBlICAgICAgPSBuZXcgVFR5cGUo
c3RydWN0dXJlLCB0cnVlKTsKKyAgICAgICAgbmFtZWRUeXBlLT5zZXRRdWFsaWZpZXIoRXZxR2xv
YmFsKTsKKworICAgICAgICBUVmFyaWFibGUgKnN0cnVjdFZhcmlhYmxlID0KKyAgICAgICAgICAg
IG5ldyBUVmFyaWFibGUobVN5bWJvbFRhYmxlLCBrRW1wdHlJbW11dGFibGVTdHJpbmcsIG5hbWVk
VHlwZSwgU3ltYm9sVHlwZTo6RW1wdHkpOworICAgICAgICBUSW50ZXJtU3ltYm9sICpzdHJ1Y3RE
ZWNsYXJhdG9yICAgICAgID0gbmV3IFRJbnRlcm1TeW1ib2woc3RydWN0VmFyaWFibGUpOworICAg
ICAgICBUSW50ZXJtRGVjbGFyYXRpb24gKnN0cnVjdERlY2xhcmF0aW9uID0gbmV3IFRJbnRlcm1E
ZWNsYXJhdGlvbjsKKyAgICAgICAgc3RydWN0RGVjbGFyYXRpb24tPmFwcGVuZERlY2xhcmF0b3Io
c3RydWN0RGVjbGFyYXRvcik7CisKKyAgICAgICAgVEludGVybVNlcXVlbmNlICpuZXdTZXF1ZW5j
ZSA9IG5ldyBUSW50ZXJtU2VxdWVuY2U7CisgICAgICAgIG5ld1NlcXVlbmNlLT5wdXNoX2JhY2so
c3RydWN0RGVjbGFyYXRpb24pOworCisgICAgICAgIC8vIHVuaWZvcm0gPHN0cnVjdE5hbWU+IDxz
dHJ1Y3RVbmlmb3JtTmFtZT47CisgICAgICAgIFRJbnRlcm1TeW1ib2wgKmFzU3ltYm9sID0gZGVj
bGFyYXRvci0+Z2V0QXNTeW1ib2xOb2RlKCk7CisgICAgICAgIGlmIChhc1N5bWJvbCAmJiBhc1N5
bWJvbC0+dmFyaWFibGUoKS5zeW1ib2xUeXBlKCkgIT0gU3ltYm9sVHlwZTo6RW1wdHkpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIFRJbnRlcm1EZWNsYXJhdGlvbiAqbmFtZWREZWNsID0gbmV3IFRJ
bnRlcm1EZWNsYXJhdGlvbjsKKyAgICAgICAgICAgIFRUeXBlICp1bmlmb3JtVHlwZSAgICAgICAg
ICAgID0gbmV3IFRUeXBlKHN0cnVjdHVyZSwgZmFsc2UpOworICAgICAgICAgICAgdW5pZm9ybVR5
cGUtPnNldFF1YWxpZmllcihFdnFVbmlmb3JtKTsKKworICAgICAgICAgICAgVFZhcmlhYmxlICpu
ZXdWYXIgICAgICAgID0gbmV3IFRWYXJpYWJsZShtU3ltYm9sVGFibGUsIGFzU3ltYm9sLT5nZXRO
YW1lKCksIHVuaWZvcm1UeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFzU3ltYm9sLT52YXJpYWJsZSgpLnN5bWJvbFR5cGUoKSk7CisgICAgICAgICAg
ICBUSW50ZXJtU3ltYm9sICpuZXdTeW1ib2wgPSBuZXcgVEludGVybVN5bWJvbChuZXdWYXIpOwor
ICAgICAgICAgICAgcmVwbGFjZW1lbnRzW2FzU3ltYm9sLT51bmlxdWVJZCgpLmdldCgpXSA9IG5l
d1N5bWJvbDsKKyAgICAgICAgICAgIG5hbWVkRGVjbC0+YXBwZW5kRGVjbGFyYXRvcihuZXdTeW1i
b2wpOworCisgICAgICAgICAgICBuZXdTZXF1ZW5jZS0+cHVzaF9iYWNrKG5hbWVkRGVjbCk7Cisg
ICAgICAgIH0KKworICAgICAgICBtTXVsdGlSZXBsYWNlbWVudHMuZW1wbGFjZV9iYWNrKGdldFBh
cmVudE5vZGUoKS0+Z2V0QXNCbG9jaygpLCBkZWNsLCAqbmV3U2VxdWVuY2UpOworICAgIH0KK307
Cit9ICAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK2Jvb2wgTmFtZUVtYmVkZGVkU3RydWN0VW5p
Zm9ybXNNZXRhbChUQ29tcGlsZXIgKmNvbXBpbGVyLCBUSW50ZXJtQmxvY2sgKnJvb3QsIFRTeW1i
b2xUYWJsZSAqc3ltYm9sVGFibGUpCit7CisgICAgVHJhdmVyc2VyIG5hbWVTdHJ1Y3RzKHN5bWJv
bFRhYmxlKTsKKyAgICByb290LT50cmF2ZXJzZSgmbmFtZVN0cnVjdHMpOworICAgIHJldHVybiBu
YW1lU3RydWN0cy51cGRhdGVUcmVlKGNvbXBpbGVyLCByb290KTsKK30KK30gIC8vIG5hbWVzcGFj
ZSBzaApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3Ry
YW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L05hbWVFbWJlZGRlZFVuaWZvcm1TdHJ1Y3Rz
TWV0YWwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9y
L1RyYW5zbGF0b3JNZXRhbERpcmVjdC9OYW1lRW1iZWRkZWRVbmlmb3JtU3RydWN0c01ldGFsLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjRiYzJkNzE4MDQ1YzUwZDg5NDk4MWFiZWIzNWM4ZjBhMGM0MTJkNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFu
c2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9OYW1lRW1iZWRkZWRVbmlmb3JtU3RydWN0c01l
dGFsLmgKQEAgLTAsMCArMSwzMSBAQAorLy8KKy8vIENvcHlyaWdodCAyMDE4IFRoZSBBTkdMRSBQ
cm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisv
LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLy8KKy8vIE5hbWVFbWJlZGRlZFVuaWZvcm1T
dHJ1Y3RzOiBHaXZlcyBuYW1lbGVzcyB1bmlmb3JtIHN0cnVjdCBpbnRlcm5hbCBuYW1lcy4KKy8v
CisvLyBGb3IgZXhhbXBsZToKKy8vICAgdW5pZm9ybSBzdHJ1Y3QgeyBpbnQgYTsgfSB1bmk7Cisv
LyBiZWNvbWVzOgorLy8gICBzdHJ1Y3QgczEgeyBpbnQgYTsgfTsKKy8vICAgdW5pZm9ybSBzMSB1
bmk7CisvLworCisjaWZuZGVmIENPTVBJTEVSX1RSQU5TTEFUT1JfVFJFRU9QU19OQU1FRU1CRURE
RURVTklGT1JNU1RSVUNUU01FVEFMX0hfCisjZGVmaW5lIENPTVBJTEVSX1RSQU5TTEFUT1JfVFJF
RU9QU19OQU1FRU1CRURERURVTklGT1JNU1RSVUNUU01FVEFMX0hfCisKKyNpbmNsdWRlICJjb21t
b24vYW5nbGV1dGlscy5oIgorCituYW1lc3BhY2Ugc2gKK3sKK2NsYXNzIFRDb21waWxlcjsKK2Ns
YXNzIFRJbnRlcm1CbG9jazsKK2NsYXNzIFRTeW1ib2xUYWJsZTsKKworQU5HTEVfTk9fRElTQ0FS
RCBib29sIE5hbWVFbWJlZGRlZFN0cnVjdFVuaWZvcm1zTWV0YWwoVENvbXBpbGVyICpjb21waWxl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSW50
ZXJtQmxvY2sgKnJvb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVFN5bWJvbFRhYmxlICpzeW1ib2xUYWJsZSk7Cit9ICAvLyBuYW1lc3BhY2Ugc2gK
KworI2VuZGlmICAvLyBDT01QSUxFUl9UUkFOU0xBVE9SX1RSRUVPUFNfTkFNRUVNQkVEREVEVU5J
Rk9STVNUUlVDVFNNRVRBTF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1BpcGVsaW5lLmNw
cCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5z
bGF0b3JNZXRhbERpcmVjdC9QaXBlbGluZS5jcHAKaW5kZXggNTRjMzc4YTFjOTUwNTlmZDJiNjk2
OGVhNjA0NDc4YmI5ZjQ4Yzg3Zi4uOGNmMGNlODFjNmY1YTRlYWFiNjI4NTcyZWI5M2IyMWQxZWQ4
OGI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3Ry
YW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1BpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxE
aXJlY3QvUGlwZWxpbmUuY3BwCkBAIC0yOTgsNyArMjk4LDggQEAgc3RhdGljIGludCBTYXR1cmF0
ZVZlY3Rvck9mKGNvbnN0IFRGaWVsZCAmZmllbGQpCiAgICAgQVNTRVJUKHR5cGUuaXNTY2FsYXIo
KSB8fCB0eXBlLmlzVmVjdG9yKCkpOwogCiAgICAgY29uc3QgYm9vbCBjb25kID0gdHlwZS5nZXRC
YXNpY1R5cGUoKSA9PSBCVCAmJiAhdHlwZS5pc0FycmF5KCkgJiYKLSAgICAgICAgICAgICAgICAg
ICAgICBDb21wYXJlQnkoQ21wLCB0eXBlLmdldE5vbWluYWxTaXplKCksIE1hdGNoRGltKTsKKyAg
ICAgICAgICAgICAgICAgICAgICBDb21wYXJlQnkoQ21wLCB0eXBlLmdldE5vbWluYWxTaXplKCks
IE1hdGNoRGltKSAmJiB0eXBlLmdldFF1YWxpZmllcigpICE9IFRRdWFsaWZpZXI6OkV2cUZyYWdE
ZXB0aDsKKwogCiAgICAgaWYgKGNvbmQpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0
L1Byb2dyYW1QcmVsdWRlLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxl
ci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9Qcm9ncmFtUHJlbHVkZS5jcHAKaW5k
ZXggOGJmNWEwMmZlMGRiMGJlZDNkMmFhM2M5NTVjYzk5OTI3NTNiN2M4My4uMjcwYjMzYjNiYjQx
YTI4MWFlMmE4MDQ0ZjA4NzIyMGE4YjlhN2Q1YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1By
b2dyYW1QcmVsdWRlLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGls
ZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvUHJvZ3JhbVByZWx1ZGUuY3BwCkBA
IC0zMyw3ICszMyw3IEBAIGNsYXNzIFByb2dyYW1QcmVsdWRlIDogcHVibGljIFRJbnRlcm1UcmF2
ZXJzZXIKICAgICAgICAgOiBUSW50ZXJtVHJhdmVyc2VyKHRydWUsIGZhbHNlLCBmYWxzZSksIG1P
dXQob3V0KQogICAgIHsKICAgICAgICAgQUxXQVlTX0lOTElORSgpOwotCisgICAgICAgIGludF9j
bGFtcCgpOwogICAgICAgICBpZiAocHBjLmhhc1N0cnVjdEVxKQogICAgICAgICB7CiAgICAgICAg
ICAgICBlcXVhbFZlY3RvcigpOwpAQCAtMTA5LDYgKzEwOSw3IEBAIGNsYXNzIFByb2dyYW1QcmVs
dWRlIDogcHVibGljIFRJbnRlcm1UcmF2ZXJzZXIKICAgICB2b2lkIG5lZ2F0ZU1hdHJpeCgpOwog
ICAgIHZvaWQgbWF0bXVsQXNzaWduKCk7CiAgICAgdm9pZCBhdGFuKCk7CisgICAgdm9pZCBpbnRf
Y2xhbXAoKTsKICAgICB2b2lkIGFkZE1hdHJpeFNjYWxhckFzc2lnbigpOwogICAgIHZvaWQgc3Vi
TWF0cml4U2NhbGFyQXNzaWduKCk7CiAgICAgdm9pZCBhZGRNYXRyaXhTY2FsYXIoKTsKQEAgLTE2
OCw2ICsxNjksOCBAQCBjbGFzcyBQcm9ncmFtUHJlbHVkZSA6IHB1YmxpYyBUSW50ZXJtVHJhdmVy
c2VyCiAgICAgdm9pZCB0ZXh0dXJlMkRMb2QoKTsKICAgICB2b2lkIHRleHR1cmUyRFByb2ooKTsK
ICAgICB2b2lkIHRleHR1cmUyRFByb2pMb2QoKTsKKyAgICB2b2lkIHRleHR1cmUyRFJlY3QoKTsK
KyAgICB2b2lkIHRleHR1cmUyRFJlY3RQcm9qKCk7CiAgICAgdm9pZCB0ZXh0dXJlM0RMb2QoKTsK
ICAgICB2b2lkIHRleHR1cmUzRFByb2ooKTsKICAgICB2b2lkIHRleHR1cmUzRFByb2pMb2QoKTsK
QEAgLTY0MCw2ICs2NDMsMTQgQEAgQU5HTEVfQUxXQVlTX0lOTElORSBUIEFOR0xFX3NpZ24oVCB4
KQogKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX21ldGFsX2NvbW1vbigpKQog
CitQUk9HUkFNX1BSRUxVREVfREVDTEFSRShpbnRfY2xhbXAsCisgICAgICAgICAgICAgICAgICAg
ICAgICBSIigKK0FOR0xFX0FMV0FZU19JTkxJTkUgaW50IEFOR0xFX2ludF9jbGFtcChpbnQgdmFs
dWUsIGludCBtaW5WYWx1ZSwgaW50IG1heFZhbHVlKQoreworICAgIHJldHVybiAoKHZhbHVlIDwg
bWluVmFsdWUpID8gIG1pblZhbHVlIDogKCh2YWx1ZSA+IG1heFZhbHVlKSA/IG1heFZhbHVlIDog
dmFsdWUpKTsKK307CispIikKKwogUFJPR1JBTV9QUkVMVURFX0RFQ0xBUkUoYXRhbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgIFIiKAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CkBAIC0xNzUyLDYg
KzE3NjMsMjIgQEAgQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmUyRF9pbXBs
KAogKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlRW52KCkpCiAKK1BST0dSQU1f
UFJFTFVERV9ERUNMQVJFKHRleHR1cmUyRFJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICBS
IigKKyNkZWZpbmUgQU5HTEVfdGV4dHVyZTJEUmVjdChlbnYsIC4uLikgQU5HTEVfdGV4dHVyZTJE
UmVjdF9pbXBsKCplbnYudGV4dHVyZSwgKmVudi5zYW1wbGVyLCBfX1ZBX0FSR1NfXykKKwordGVt
cGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CitBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVf
dGV4dHVyZTJEUmVjdF9pbXBsKAorICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAorICAgIHRo
cmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKKyAgICB0aHJlYWQgbWV0YWw6OmZs
b2F0MiBjb25zdCAmY29vcmQpCit7CisgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkKTsKK30KKykiLAorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZUVudigpKQor
CisKIFBST0dSQU1fUFJFTFVERV9ERUNMQVJFKHRleHR1cmUyRExvZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgIFIiKAogI2RlZmluZSBBTkdMRV90ZXh0dXJlMkRMb2QoZW52LCAuLi4pIEFOR0xF
X3RleHR1cmUyRExvZF9pbXBsKCplbnYudGV4dHVyZSwgKmVudi5zYW1wbGVyLCBfX1ZBX0FSR1Nf
XykKQEAgLTE3OTQsNiArMTgyMSwzMCBAQCBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVf
dGV4dHVyZTJEUHJval9pbXBsKAogKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJl
RW52KCkpCiAKK1BST0dSQU1fUFJFTFVERV9ERUNMQVJFKHRleHR1cmUyRFJlY3RQcm9qLAorICAg
ICAgICAgICAgICAgICAgICAgICAgUiIoCisjZGVmaW5lIEFOR0xFX3RleHR1cmUyRFJlY3RQcm9q
KGVudiwgLi4uKSBBTkdMRV90ZXh0dXJlMkRSZWN0UHJval9pbXBsKCplbnYudGV4dHVyZSwgKmVu
di5zYW1wbGVyLCBfX1ZBX0FSR1NfXykKKyAgICAgICAgICAgICAgICAgICAgICAgIAordGVtcGxh
dGUgPHR5cGVuYW1lIFRleHR1cmU+CitBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
dHVyZTJEUmVjdFByb2pfaW1wbCgKKyAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKKyAgICB0
aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCisgICAgdGhyZWFkIG1ldGFsOjpm
bG9hdDMgY29uc3QgJmNvb3JkKQoreworICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVy
LCBjb29yZC54eS9jb29yZC56KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CitB
TkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZTJEUmVjdFByb2pfaW1wbCgKKyAg
ICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKKyAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29u
c3QgJnNhbXBsZXIsCisgICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkKQorewor
ICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eS9jb29yZC53KTsKK30K
KykiLAorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dHVyZUVudigpKQorCiBQUk9HUkFNX1BS
RUxVREVfREVDTEFSRSh0ZXh0dXJlMkRQcm9qTG9kLAogICAgICAgICAgICAgICAgICAgICAgICAg
UiIoCiAjZGVmaW5lIEFOR0xFX3RleHR1cmUyRFByb2pMb2QoZW52LCAuLi4pIEFOR0xFX3RleHR1
cmUyRFByb2pMb2RfaW1wbCgqZW52LnRleHR1cmUsICplbnYuc2FtcGxlciwgX19WQV9BUkdTX18p
CkBAIC0xODIwLDYgKzE4NzEsNyBAQCBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
dHVyZTJEUHJvakxvZF9pbXBsKAogKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJl
RW52KCkpCiAKKwogUFJPR1JBTV9QUkVMVURFX0RFQ0xBUkUodGV4dHVyZTNETG9kLAogICAgICAg
ICAgICAgICAgICAgICAgICAgUiIoCiAjZGVmaW5lIEFOR0xFX3RleHR1cmUzRExvZChlbnYsIC4u
LikgQU5HTEVfdGV4dHVyZTNETG9kX2ltcGwoKmVudi50ZXh0dXJlLCAqZW52LnNhbXBsZXIsIF9f
VkFfQVJHU19fKQpAQCAtMjk5NCw2ICszMDQ2LDggQEAgUHJvZ3JhbVByZWx1ZGU6OkZ1bmNUb0Vt
aXR0ZXIgUHJvZ3JhbVByZWx1ZGU6OkJ1aWxkRnVuY1RvRW1pdHRlcigpCiAgICAgcHV0QnVpbHRJ
bigidGV4dHVyZTJEIiwgRU1JVF9NRVRIT0QodGV4dHVyZTJEKSk7CiAgICAgcHV0QnVpbHRJbigi
dGV4dHVyZTJETG9kIiwgRU1JVF9NRVRIT0QodGV4dHVyZTJETG9kKSk7CiAgICAgcHV0QnVpbHRJ
bigidGV4dHVyZTJEUHJvaiIsIEVNSVRfTUVUSE9EKHRleHR1cmUyRFByb2opKTsKKyAgICBwdXRC
dWlsdEluKCJ0ZXh0dXJlMkRSZWN0IiwgRU1JVF9NRVRIT0QodGV4dHVyZTJEUmVjdCkpOworICAg
IHB1dEJ1aWx0SW4oInRleHR1cmUyRFJlY3RQcm9qIiwgRU1JVF9NRVRIT0QodGV4dHVyZTJEUmVj
dFByb2opKTsKICAgICBwdXRCdWlsdEluKCJ0ZXh0dXJlM0RMb2QiLCBFTUlUX01FVEhPRCh0ZXh0
dXJlM0RMb2QpKTsKICAgICBwdXRCdWlsdEluKCJ0ZXh0dXJlM0RQcm9qIiwgRU1JVF9NRVRIT0Qo
dGV4dHVyZTNEUHJvaikpOwogICAgIHB1dEJ1aWx0SW4oInRleHR1cmUzRFByb2pMb2QiLCBFTUlU
X01FVEhPRCh0ZXh0dXJlM0RQcm9qTG9kKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvUmVk
dWNlSW50ZXJmYWNlQmxvY2tzLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21w
aWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9SZWR1Y2VJbnRlcmZhY2VCbG9j
a3MuY3BwCmluZGV4IGFhODE2OTZmMDZhZjY5ZDRhZGEyNTc5YzAyZDA4YzQ4OTQ1ZmQ5ZTguLmU0
NzcyYmIzOWUyNGRlMTliNmZiMmZmNTk4Y2U3ZTQ3ZTYyYmEwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRh
bERpcmVjdC9SZWR1Y2VJbnRlcmZhY2VCbG9ja3MuY3BwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9SZWR1
Y2VJbnRlcmZhY2VCbG9ja3MuY3BwCkBAIC03LDYgKzcsNyBAQAogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KICNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgogCisjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNs
YXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QuaCIKICNpbmNsdWRlICJjb21waWxlci90cmFuc2xh
dG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9Bc3RIZWxwZXJzLmgiCiAjaW5jbHVkZSAiY29tcGls
ZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvUmVkdWNlSW50ZXJmYWNlQmxvY2tz
LmgiCiAjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci90cmVlX29wcy9TZXBhcmF0ZURlY2xh
cmF0aW9ucy5oIgpAQCAtMTksMTQgKzIwLDE5IEBAIHVzaW5nIG5hbWVzcGFjZSBzaDsKIG5hbWVz
cGFjZQogewogCisKIGNsYXNzIFJlZHVjZXIgOiBwdWJsaWMgVEludGVybVJlYnVpbGQKIHsKLSAg
ICBzdGQ6OnVub3JkZXJlZF9tYXA8Y29uc3QgVEludGVyZmFjZUJsb2NrICosIHN0ZDo6bWFwPElt
bXV0YWJsZVN0cmluZywgY29uc3QgVFZhcmlhYmxlICo+PgorICAgIHN0ZDo6dW5vcmRlcmVkX21h
cDxjb25zdCBUSW50ZXJmYWNlQmxvY2sgKiwgIGNvbnN0IFRWYXJpYWJsZSAqPgogICAgICAgICBt
TGlmdGVkTWFwOwogICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxjb25zdCBUVmFyaWFibGUgKiwgY29u
c3QgVFZhcmlhYmxlICo+IG1JbnN0YW5jZU1hcDsKLQorICAgIElkR2VuICYgbUlkR2VuOwogICBw
dWJsaWM6Ci0gICAgUmVkdWNlcihUQ29tcGlsZXIgJmNvbXBpbGVyKSA6IFRJbnRlcm1SZWJ1aWxk
KGNvbXBpbGVyLCB0cnVlLCBmYWxzZSkge30KKyAgICBSZWR1Y2VyKFRDb21waWxlciAmY29tcGls
ZXIsIElkR2VuICYgaWRHZW4pIDogVEludGVybVJlYnVpbGQoY29tcGlsZXIsIHRydWUsIGZhbHNl
KSwKKyAgICAgICAgbUlkR2VuKGlkR2VuKQorICAgIHsKKworICAgIH0KIAogICAgIFByZVJlc3Vs
dCB2aXNpdERlY2xhcmF0aW9uUHJlKFRJbnRlcm1EZWNsYXJhdGlvbiAmZGVjbE5vZGUpIG92ZXJy
aWRlCiAgICAgewpAQCAtNDIsMjMgKzQ4LDIxIEBAIGNsYXNzIFJlZHVjZXIgOiBwdWJsaWMgVElu
dGVybVJlYnVpbGQKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoc3ltYm9sVHlw
ZSA9PSBTeW1ib2xUeXBlOjpFbXB0eSkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgICAgIGF1dG8gJm5hbWVUb1ZhciA9IG1MaWZ0ZWRNYXBbaW50ZXJmYWNlQmxvY2tdOwotICAg
ICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxUSW50ZXJtTm9kZSAqPiByZXBsYWNlbWVudHM7
Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoVEZpZWxkICpmaWVsZCA6IGludGVyZmFjZUJsb2Nr
LT5maWVsZHMoKSkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byAmbGlmdGVkVHlwZSA9IENsb25lVHlwZSgqZmllbGQtPnR5cGUoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQobGlmdGVkVHlwZS5nZXRRdWFsaWZpZXIoKSA9PSBUUXVh
bGlmaWVyOjpFdnFVbmlmb3JtIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlm
dGVkVHlwZS5nZXRRdWFsaWZpZXIoKSA9PSBUUXVhbGlmaWVyOjpFdnFHbG9iYWwpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgbGlmdGVkVHlwZS5zZXRRdWFsaWZpZXIoVFF1YWxpZmllcjo6RXZx
VW5pZm9ybSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvICpsaWZ0ZWRWYXIgPSBuZXcg
VFZhcmlhYmxlKCZtU3ltYm9sVGFibGUsIGZpZWxkLT5uYW1lKCksICZsaWZ0ZWRUeXBlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVs
ZC0+c3ltYm9sVHlwZSgpKTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVRvVmFyW2Zp
ZWxkLT5uYW1lKCldID0gbGlmdGVkVmFyOwotCi0gICAgICAgICAgICAgICAgICAgICAgICByZXBs
YWNlbWVudHMucHVzaF9iYWNrKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUSW50
ZXJtRGVjbGFyYXRpb257bmV3IFRJbnRlcm1TeW1ib2wobGlmdGVkVmFyKX0pOwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcmVSZXN1bHQ6Ok11bHRp
KHN0ZDo6bW92ZShyZXBsYWNlbWVudHMpKTsKKyAgICAgICAgICAgICAgICAgICAgLy9DcmVhdGUg
aW5zdGFuY2UgdmFyaWFibGUKKyAgICAgICAgICAgICAgICAgICAgYXV0byAmc3RydWN0dXJlID0K
KyAgICAgICAgICAgICAgICAgICAgICAgICpuZXcgVFN0cnVjdHVyZSgmbVN5bWJvbFRhYmxlLCBp
bnRlcmZhY2VCbG9jay0+bmFtZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZpbnRlcmZhY2VCbG9jay0+ZmllbGRzKCksIGludGVyZmFjZUJsb2NrLT5zeW1ib2xU
eXBlKCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvICZzdHJ1Y3RWYXIgPSBDcmVhdGVTdHJ1
Y3RUeXBlVmFyaWFibGUobVN5bWJvbFRhYmxlLCBzdHJ1Y3R1cmUpOworCisgICAgICAgICAgICAg
ICAgICAgIGF1dG8gJmluc3RhbmNlVmFyID0KKyAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0
ZUluc3RhbmNlVmFyaWFibGUobVN5bWJvbFRhYmxlLCBzdHJ1Y3R1cmUsIG1JZEdlbi5jcmVhdGVO
ZXdOYW1lKGludGVyZmFjZUJsb2NrLT5uYW1lKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBUUXVhbGlmaWVyOjpFdnFCdWZmZXIsICZ0eXBlLmdldEFy
cmF5U2l6ZXMoKSk7CisgICAgICAgICAgICAgICAgICAgIG1MaWZ0ZWRNYXBbaW50ZXJmYWNlQmxv
Y2tdID0gJmluc3RhbmNlVmFyOworCisgICAgICAgICAgICAgICAgICAgIFRJbnRlcm1Ob2RlICpy
ZXBsYWNlbWVudHNbXSA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUSW50ZXJtRGVj
bGFyYXRpb257bmV3IFRJbnRlcm1TeW1ib2woJnN0cnVjdFZhcil9LAorICAgICAgICAgICAgICAg
ICAgICAgICAgbmV3IFRJbnRlcm1EZWNsYXJhdGlvbntuZXcgVEludGVybVN5bWJvbCgmaW5zdGFu
Y2VWYXIpfX07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcmVSZXN1bHQ6Ok11bHRpKHN0
ZDo6YmVnaW4ocmVwbGFjZW1lbnRzKSwgc3RkOjplbmQocmVwbGFjZW1lbnRzKSk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB7CkBAIC03
MCw3ICs3NCw3IEBAIGNsYXNzIFJlZHVjZXIgOiBwdWJsaWMgVEludGVybVJlYnVpbGQKICAgICAg
ICAgICAgICAgICAgICAgYXV0byAmc3RydWN0VmFyID0gQ3JlYXRlU3RydWN0VHlwZVZhcmlhYmxl
KG1TeW1ib2xUYWJsZSwgc3RydWN0dXJlKTsKICAgICAgICAgICAgICAgICAgICAgYXV0byAmaW5z
dGFuY2VWYXIgPQogICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlSW5zdGFuY2VWYXJpYWJs
ZShtU3ltYm9sVGFibGUsIHN0cnVjdHVyZSwgTmFtZSh2YXIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUXVhbGlmaWVyOjpFdnFVbmlmb3JtLCAmdHlw
ZS5nZXRBcnJheVNpemVzKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBUUXVhbGlmaWVyOjpFdnFCdWZmZXIsICZ0eXBlLmdldEFycmF5U2l6ZXMoKSk7
CiAKICAgICAgICAgICAgICAgICAgICAgbUluc3RhbmNlTWFwWyZ2YXJdID0gJmluc3RhbmNlVmFy
OwogCkBAIC0xMDAsOSArMTA0LDcgQEAgY2xhc3MgUmVkdWNlciA6IHB1YmxpYyBUSW50ZXJtUmVi
dWlsZAogICAgICAgICAgICAgYXV0byBpdCA9IG1MaWZ0ZWRNYXAuZmluZChpYik7CiAgICAgICAg
ICAgICBpZiAoaXQgIT0gbUxpZnRlZE1hcC5lbmQoKSkKICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBhdXRvICpsaWZ0ZWRWYXIgPSBpdC0+c2Vjb25kW3Zhci5uYW1lKCldOwotICAgICAg
ICAgICAgICAgIEFTU0VSVChsaWZ0ZWRWYXIpOwotICAgICAgICAgICAgICAgIHJldHVybiAqbmV3
IFRJbnRlcm1TeW1ib2wobGlmdGVkVmFyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gQWNjZXNz
RmllbGQoKihpdC0+c2Vjb25kKSwgdmFyLm5hbWUoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIHN5bWJvbE5vZGU7CkBAIC0xMTMsOSArMTE1LDkgQEAgY2xhc3Mg
UmVkdWNlciA6IHB1YmxpYyBUSW50ZXJtUmVidWlsZAogCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwogCi1ib29sIHNoOjpSZWR1Y2VJbnRlcmZhY2VCbG9ja3MoVENvbXBpbGVyICZjb21waWxlciwg
VEludGVybUJsb2NrICZyb290KQorYm9vbCBzaDo6UmVkdWNlSW50ZXJmYWNlQmxvY2tzKFRDb21w
aWxlciAmY29tcGlsZXIsIFRJbnRlcm1CbG9jayAmcm9vdCwgSWRHZW4gJiBpZEdlbikKIHsKLSAg
ICBSZWR1Y2VyIHJlZHVjZXIoY29tcGlsZXIpOworICAgIFJlZHVjZXIgcmVkdWNlcihjb21waWxl
ciwgaWRHZW4pOwogICAgIGlmICghcmVkdWNlci5yZWJ1aWxkUm9vdChyb290KSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9SZWR1Y2VJbnRl
cmZhY2VCbG9ja3MuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFu
c2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9SZWR1Y2VJbnRlcmZhY2VCbG9ja3MuaAppbmRl
eCAzNjk1Y2JhZGZkNjRhMjEyYTViZTU1MTg5YjljZTcyYzY4ZDc0YWU5Li5mZjUyOWNkMDliNzFh
OGExYmZmMGFlYWQ0M2E1M2FmMmUwNzY1NGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvUmVk
dWNlSW50ZXJmYWNlQmxvY2tzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2Nv
bXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1JlZHVjZUludGVyZmFjZUJs
b2Nrcy5oCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBzaAogLy8gQmVjb21lczoKIC8vICBz
dHJ1Y3QgRm9vIHsgaW50IHg7IH07IHVuaWZvcm0gRm9vIHg7CiAvLwotQU5HTEVfTk9fRElTQ0FS
RCBib29sIFJlZHVjZUludGVyZmFjZUJsb2NrcyhUQ29tcGlsZXIgJmNvbXBpbGVyLCBUSW50ZXJt
QmxvY2sgJnJvb3QpOworQU5HTEVfTk9fRElTQ0FSRCBib29sIFJlZHVjZUludGVyZmFjZUJsb2Nr
cyhUQ29tcGlsZXIgJmNvbXBpbGVyLCBUSW50ZXJtQmxvY2sgJnJvb3QsIElkR2VuICYgaWRHZW4p
OwogCiB9ICAvLyBuYW1lc3BhY2Ugc2gKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1NlcGFy
YXRlQ29tcG91bmRTdHJ1Y3REZWNsYXJhdGlvbnMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1NlcGFyYXRl
Q29tcG91bmRTdHJ1Y3REZWNsYXJhdGlvbnMuY3BwCmluZGV4IDRiYThjNmQxMjBiMGI0NTIyMDY5
NGJmYmI2NzRmMGRiYzNkMGMyMWMuLjE3MjI3N2I3YjMwMjdiNjVkOWI2NzczMTcxZDg0NjRkMmQ5
ZDE2M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90
cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9TZXBhcmF0ZUNvbXBvdW5kU3RydWN0RGVj
bGFyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIv
dHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvU2VwYXJhdGVDb21wb3VuZFN0cnVjdERl
Y2xhcmF0aW9ucy5jcHAKQEAgLTIwLDYgKzIwLDcgQEAgbmFtZXNwYWNlCiBjbGFzcyBTZXBhcmF0
b3IgOiBwdWJsaWMgVEludGVybVRyYXZlcnNlcgogewogICBwdWJsaWM6CisgICAgc3RkOjp1bm9y
ZGVyZWRfbWFwPGludCwgVEludGVybVN5bWJvbCAqPiByZXBsYWNlbWVudE1hcDsKICAgICBTZXBh
cmF0b3IoVFN5bWJvbFRhYmxlICZzeW1ib2xUYWJsZSkgOiBUSW50ZXJtVHJhdmVyc2VyKGZhbHNl
LCBmYWxzZSwgdHJ1ZSwgJnN5bWJvbFRhYmxlKSB7fQogCiAgICAgYm9vbCB2aXNpdERlY2xhcmF0
aW9uKFZpc2l0LCBUSW50ZXJtRGVjbGFyYXRpb24gKmRlY2xOb2RlKSBvdmVycmlkZQpAQCAtNDQs
OCArNDUsMTAgQEAgY2xhc3MgU2VwYXJhdG9yIDogcHVibGljIFRJbnRlcm1UcmF2ZXJzZXIKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sVHlw
ZSwgdmFyLmV4dGVuc2lvbigpKTsKIAogICAgICAgICAgICAgICAgIFRJbnRlcm1TZXF1ZW5jZSBy
ZXBsYWNlbWVudHM7CisgICAgICAgICAgICAgICAgVEludGVybVN5bWJvbCAqIGluc3RhbmNlU3lt
Ym9sID0gbmV3IFRJbnRlcm1TeW1ib2woaW5zdGFuY2VWYXIpOwogICAgICAgICAgICAgICAgIHJl
cGxhY2VtZW50cy5wdXNoX2JhY2sobmV3IFRJbnRlcm1TeW1ib2woc3RydWN0VmFyKSk7Ci0gICAg
ICAgICAgICAgICAgcmVwbGFjZW1lbnRzLnB1c2hfYmFjayhuZXcgVEludGVybVN5bWJvbChpbnN0
YW5jZVZhcikpOworICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50cy5wdXNoX2JhY2soaW5zdGFu
Y2VTeW1ib2wpOworICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50TWFwW3N5bWJvbE5vZGUtPnVu
aXF1ZUlkKCkuZ2V0KCldID0gaW5zdGFuY2VTeW1ib2w7CiAgICAgICAgICAgICAgICAgbU11bHRp
UmVwbGFjZW1lbnRzLnB1c2hfYmFjaygKICAgICAgICAgICAgICAgICAgICAgTm9kZVJlcGxhY2VX
aXRoTXVsdGlwbGVFbnRyeShkZWNsTm9kZSwgc3ltYm9sTm9kZSwgc3RkOjptb3ZlKHJlcGxhY2Vt
ZW50cykpKTsKICAgICAgICAgICAgIH0KQEAgLTUzLDYgKzU2LDE1IEBAIGNsYXNzIFNlcGFyYXRv
ciA6IHB1YmxpYyBUSW50ZXJtVHJhdmVyc2VyCiAKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KKyAgICAKKyAgICB2b2lkIHZpc2l0U3ltYm9sKFRJbnRlcm1TeW1ib2wgKmRlY2wpIG92ZXJy
aWRlCisgICAgeworICAgICAgICBhdXRvIHN5bWJvbCA9IHJlcGxhY2VtZW50TWFwLmZpbmQoZGVj
bC0+dW5pcXVlSWQoKS5nZXQoKSk7CisgICAgICAgIGlmKHN5bWJvbCAhPSByZXBsYWNlbWVudE1h
cC5lbmQoKSkKKyAgICAgICAgeworICAgICAgICAgICAgcXVldWVSZXBsYWNlbWVudChzeW1ib2wt
PnNlY29uZC0+ZGVlcENvcHkoKSwgT3JpZ2luYWxOb2RlOjpJU19EUk9QUEVEKTsKKyAgICAgICAg
fQorICAgIH0KIH07CiAKIH0gIC8vIGFub255bW91cyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9sb2FkX2Z1bmN0aW9u
c190YWJsZV9hdXRvZ2VuLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9sb2FkX2Z1bmN0aW9uc190YWJsZV9hdXRvZ2VuLmNwcAppbmRleCAyZWYwMWNh
M2NmZTkwNTc4YzgzMDVkYmEwNDM5MTRhZjc2YzA0ODkyLi5mYTA0Y2E5M2Y1YzI0NTZmMWE2ZmEz
NmZjNWZmNDEyNDBiYWE4YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvbG9hZF9mdW5jdGlvbnNfdGFibGVfYXV0b2dlbi5jcHAKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2xvYWRfZnVu
Y3Rpb25zX3RhYmxlX2F1dG9nZW4uY3BwCkBAIC0xLDcgKzEsNyBAQAogLy8gR0VORVJBVEVEIEZJ
TEUgLSBETyBOT1QgRURJVC4KIC8vIEdlbmVyYXRlZCBieSBnZW5fbG9hZF9mdW5jdGlvbnNfdGFi
bGUucHkgdXNpbmcgZGF0YSBmcm9tIGxvYWRfZnVuY3Rpb25zX2RhdGEuanNvbgogLy8KLS8vIENv
cHlyaWdodCAyMDIwIFRoZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLyBDb3B5cmlnaHQgMjAyMSBUaGUgQU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZS4KIC8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQ29udGV4dE10bC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Db250ZXh0TXRsLm1tCmluZGV4IDMyODUwYzk4
N2JkODk0MmIxNjM4MzA5OWQ4YmRiOTdmOGY5ZjQ3ZDUuLmVjZjVmYjc2OWE1ZjkzNzJlNjgwM2Mz
ZDEzMDZkNGRiMzVlMDRhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Db250ZXh0TXRsLm1tCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Db250ZXh0TXRsLm1tCkBA
IC02NTgsMTQgKzY1OCwxMiBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRNdGw6OmRyYXdFbGVtZW50
c0ltcGwoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgbXRsOjpCdWZmZXJSZWYgaWR4
QnVmZmVyOwogICAgIHNpemVfdCBjb252ZXJ0ZWRPZmZzZXQgICAgICAgICAgICAgPSAwOwogICAg
IGdsOjpEcmF3RWxlbWVudHNUeXBlIGNvbnZlcnRlZFR5cGUgPSB0eXBlOwotICAgIHNpemVfdCBj
b252ZXJ0ZWRDb3VudCAgICAgICAgICAgICAgPSAoc2l6ZV90KWNvdW50OwotCiAgICAgQU5HTEVf
VFJZKG1WZXJ0ZXhBcnJheS0+Z2V0SW5kZXhCdWZmZXIoY29udGV4dCwgdHlwZSwgbW9kZSwgY291
bnQsIGluZGljZXMsICZpZHhCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJmNvbnZlcnRlZE9mZnNldCwgJmNvbnZlcnRlZFR5cGUsICZjb252ZXJ0ZWRD
b3VudCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb252
ZXJ0ZWRPZmZzZXQsICZjb252ZXJ0ZWRUeXBlKSk7CiAKICAgICBBU1NFUlQoaWR4QnVmZmVyKTsK
ICAgICBBU1NFUlQoKGNvbnZlcnRlZE9mZnNldCAlIG10bDo6a0luZGV4QnVmZmVyT2Zmc2V0QWxp
Z25tZW50KSA9PSAwKTsKLSAgICB1aW50MzJfdCBjb252ZXJ0ZWRDb3VudGkzMiA9ICh1aW50MzJf
dCljb252ZXJ0ZWRDb3VudDsKKyAgICB1aW50MzJfdCBjb252ZXJ0ZWRDb3VudGkzMiA9ICh1aW50
MzJfdCljb3VudDsKICAgICBpZiAobVN0YXRlLmlzVHJhbnNmb3JtRmVlZGJhY2tBY3RpdmVVbnBh
dXNlZCgpKQogICAgIHsKICAgICAgICAgQU5HTEVfVFJZKHNldHVwRHJhdyhjb250ZXh0LCBtb2Rl
LCAwLCBjb252ZXJ0ZWRDb3VudGkzMiwgaW5zdGFuY2VzLCB0eXBlLCBpbmRpY2VzLCB0cnVlKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVy
ZXIvbWV0YWwvSU9TdXJmYWNlU3VyZmFjZU10bC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0lPU3VyZmFjZVN1cmZhY2VNdGwuaAppbmRleCA5
NTQ4ZTVkYjkwOWJhOGJlNDQwZTE5ZjQyMTc3MmRkZDFmM2VhNjE5Li42ODYwYjBkOTRkNjUyZWEx
MjcyZmZjOTE1Y2UwMmY0Y2MyY2ZlZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvSU9TdXJmYWNlU3VyZmFjZU10bC5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9J
T1N1cmZhY2VTdXJmYWNlTXRsLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBjbGFzcyBJT1N1cmZhY2VT
dXJmYWNlTXRsIDogcHVibGljIFN1cmZhY2VNdGxQcm90b2NvbAogCiAgICAgQ29udGV4dE10bCAq
Y29udGV4dE1UTDsKICAgICBJT1N1cmZhY2VSZWYgbUlPU3VyZmFjZTsKKyAgICBHTGludCBtR0xJ
bnRlcm5hbEZvcm1hdDsKICAgICBtdGw6OlRleHR1cmVSZWYgbUlPU3VyZmFjZVRleHR1cmU7CiAg
ICAgbXRsOjpUZXh0dXJlUmVmIG1JT1N1cmZhY2VUZXh0dXJlVmlldzsKICAgICBtdGw6OkZvcm1h
dCBtRm9ybWF0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL21ldGFsL0lPU3VyZmFjZVN1cmZhY2VNdGwubW0gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvSU9TdXJmYWNlU3VyZmFjZU10
bC5tbQppbmRleCBjY2NjNzZhNzBjMzZiNjQzNDJlY2RhYzllNDAwYTQwOTI3ZjhkZmY2Li40MGMx
YjdjOTdjZTk5ZjhkNmE2M2VkYWY2NTJjMzAyNTY2ZjU3OGNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvSU9TdXJmYWNlU3Vy
ZmFjZU10bC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbWV0YWwvSU9TdXJmYWNlU3VyZmFjZU10bC5tbQpAQCAtMjYwLDYgKzI2MCw3IEBAIElP
U3VyZmFjZVN1cmZhY2VNdGw6OklPU3VyZmFjZVN1cmZhY2VNdGwoRGlzcGxheU10bCAqZGlzcGxh
eSwKICAgICBBU1NFUlQobUZvcm1hdEluZGV4ID49IDApOwogICAgIG1Gb3JtYXQgICAgICAgICA9
IGRpc3BsYXktPmdldFBpeGVsRm9ybWF0KGtJT1N1cmZhY2VGb3JtYXRzW21Gb3JtYXRJbmRleF0u
cGl4ZWxGb3JtYXQpOwogICAgIG1JbnRlcm5hbEZvcm1hdCA9IGRpc3BsYXktPmdldFBpeGVsRm9y
bWF0KGtJT1N1cmZhY2VGb3JtYXRzW21Gb3JtYXRJbmRleF0uaW50ZXJuYWxQaXhlbEZvcm1hdCk7
CisgICAgbUdMSW50ZXJuYWxGb3JtYXQgPSBrSU9TdXJmYWNlRm9ybWF0c1ttRm9ybWF0SW5kZXhd
LmludGVybmFsRm9ybWF0OwogfQogCiBJT1N1cmZhY2VTdXJmYWNlTXRsOjp+SU9TdXJmYWNlU3Vy
ZmFjZU10bCgpCkBAIC00MzAsNiArNDMxLDEzIEBAIGFuZ2xlOjpSZXN1bHQgSU9TdXJmYWNlU3Vy
ZmFjZU10bDo6Y3JlYXRlQmFja2luZ1RleHR1cmUoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRlCiAg
ICAgbUlPU3VyZmFjZVRleHR1cmUgPQogICAgICAgICBtVGVtcG9yYXJ5U3VyZmFjZVJlZi0+Y3Jl
YXRlVmlld1dpdGhEaWZmZXJlbnRGb3JtYXQoTVRMUGl4ZWxGb3JtYXRCR1JBOFVub3JtKTsKICAg
ICBtUmVuZGVyVGFyZ2V0LnNldChtSU9TdXJmYWNlVGV4dHVyZSwgbXRsOjprWmVyb05hdGl2ZU1p
cExldmVsLCAwLCBtSW50ZXJuYWxGb3JtYXQpOworCisgICAgaWYgKG1HTEludGVybmFsRm9ybWF0
ID09IEdMX1JHQikKKyAgICB7CisgICAgICAgIC8vIERpc2FibGUgc3Vic2VxdWVudCByZW5kZXJp
bmcgdG8gYWxwaGEgY2hhbm5lbC4KKyAgICAgICAgbUlPU3VyZmFjZVRleHR1cmUtPnNldENvbG9y
V3JpdGFibGVNYXNrKE1UTENvbG9yV3JpdGVNYXNrQWxsICYgKH5NVExDb2xvcldyaXRlTWFza0Fs
cGhhKSk7CisgICAgfQorCiAgICAgbUlPU3VyZmFjZVRleHR1cmVDcmVhdGVkID0gdHJ1ZTsKICAg
ICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvUmVuZGVyQnVmZmVy
TXRsLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21l
dGFsL1JlbmRlckJ1ZmZlck10bC5tbQppbmRleCAyZjliNWY2MzJkNTBiYmQ3MjExNjFkM2MzZmUz
NmI1MzY2ODdkMjcxLi43YTQ2NzFiNTRiNjEwNTgzNWE1NWMyZmQyY2Q4YjkwMWZjZmRiNjk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
bWV0YWwvUmVuZGVyQnVmZmVyTXRsLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9SZW5kZXJCdWZmZXJNdGwubW0KQEAgLTExMCw2ICsx
MTAsNyBAQCBhbmdsZTo6UmVzdWx0IFJlbmRlcmJ1ZmZlck10bDo6c2V0U3RvcmFnZUltcGwoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgIC8vIEZvciBlbXVsYXRlZCBjaGFubmVs
cyB0aGF0IEdMIHRleHR1cmUgaW50ZW5kcyB0byBub3QgaGF2ZSwKICAgICAgICAgLy8gd2UgbmVl
ZCB0byBpbml0aWFsaXplIHRoZWlyIGNvbnRlbnQuCiAgICAgICAgIGJvb2wgZW11bGF0ZWRDaGFu
bmVscyA9IG10bDo6SXNGb3JtYXRFbXVsYXRlZChtRm9ybWF0KTsKKyAgICAgICAgYm9vbCBpc0Rl
cHRoU3RlbmNpbCA9IG1Gb3JtYXQuaGFzRGVwdGhPclN0ZW5jaWxCaXRzKCk7CiAgICAgICAgIGlm
IChlbXVsYXRlZENoYW5uZWxzKQogICAgICAgICB7CiAgICAgICAgICAgICBnbDo6SW1hZ2VJbmRl
eCBpbmRleDsKQEAgLTEzMCw2ICsxMzEsMjUgQEAgYW5nbGU6OlJlc3VsdCBSZW5kZXJidWZmZXJN
dGw6OnNldFN0b3JhZ2VJbXBsKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRsOjpJbWFn
ZU5hdGl2ZUluZGV4KGdsOjpJbWFnZUluZGV4OjpNYWtlMkRNdWx0aXNhbXBsZSgpLCAwKSkpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9ICAvLyBpZiAoZW11bGF0ZWRDaGFubmVscykKKyAgICAg
ICAgaWYoaXNEZXB0aFN0ZW5jaWwpCisgICAgICAgIHsKKyAgICAgICAgICAgIGdsOjpJbWFnZUlu
ZGV4IGluZGV4OworCisgICAgICAgICAgICBpZiAoYWN0dWFsU2FtcGxlcyA+IDEpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgaW5kZXggPSBnbDo6SW1hZ2VJbmRleDo6TWFrZTJETXVs
dGlzYW1wbGUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBpbmRleCA9IGdsOjpJbWFnZUluZGV4OjpNYWtlMkQoMCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBBTkdMRV9UUlkobXRsOjpJbml0aWFsaXplRGVwdGhT
dGVuY2lsVGV4dHVyZUNvbnRlbnRzR1BVKGNvbnRleHQsIG1UZXh0dXJlLCBtRm9ybWF0LCBtdGw6
OkltYWdlTmF0aXZlSW5kZXgoaW5kZXgsIDApKSk7CisgICAgICAgICAgICBpZiAobUltcGxpY2l0
TVNUZXh0dXJlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEFOR0xFX1RSWShtdGw6
OkluaXRpYWxpemVEZXB0aFN0ZW5jaWxUZXh0dXJlQ29udGVudHNHUFUoY29udGV4dCwgbUltcGxp
Y2l0TVNUZXh0dXJlLCBtRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXRsOjpJbWFnZU5hdGl2ZUluZGV4KGdsOjpJbWFnZUlu
ZGV4OjpNYWtlMkRNdWx0aXNhbXBsZSgpLCAwKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9
CiAgICAgfQogCiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1Zl
cnRleEFycmF5TXRsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwuaAppbmRleCBmZTZiNWY3YTllOTA2ZjE5ODc5M2Vh
YWNkNDc0NzI3ODFlMjRjYjc1Li5jNTBmMTE5N2YwNWNiZjRhNzhkYTQ0YmI3Y2ExMzc3Y2Q2ZDkx
MzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwuaApAQCAtNTgsOCAr
NTgsNyBAQCBjbGFzcyBWZXJ0ZXhBcnJheU10bCA6IHB1YmxpYyBWZXJ0ZXhBcnJheUltcGwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKnNvdXJjZVBvaW50ZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGw6OkJ1ZmZlclJlZiAqaWR4QnVm
ZmVyT3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppZHhCdWZm
ZXJPZmZzZXRPdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6RHJhd0Vs
ZW1lbnRzVHlwZSAqaW5kZXhUeXBlT3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90ICppbmRleEJ1ZmZlckNvdW50T3V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlICppbmRleFR5cGVPdXQpOwogCiAgICAgLy8g
VXNlIHRvIGVtdWxhdGUgaW5zdGFuY2VkIGRyYXcgZm9yIGluc3RhbmNlIDxpbnN0YW5jZUlkPi4K
ICAgICAvLyBUaGUgdHlwaWNhbCBjYWxsIHNlcXVlbmNlIGZvciBlbXVsYXRlZCBpbnN0YW5jZSBk
cmF3IGlzOgpAQCAtODksMTYgKzg4LDE0IEBAIGNsYXNzIFZlcnRleEFycmF5TXRsIDogcHVibGlj
IFZlcnRleEFycmF5SW1wbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGds
OjpQcmltaXRpdmVNb2RlIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
dGw6OkJ1ZmZlclJlZiAqaWR4QnVmZmVyT3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCAqaWR4QnVmZmVyT2Zmc2V0T3V0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaW5kZXhCdWZmZXJDb3VudE91dCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppZHhCdWZmZXJPZmZzZXRPdXQp
OwogICAgIGFuZ2xlOjpSZXN1bHQgc3RyZWFtSW5kZXhCdWZmZXJGcm9tQ2xpZW50KGNvbnN0IGds
OjpDb250ZXh0ICpnbENvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2w6OkRyYXdFbGVtZW50c1R5cGUgaW5kZXhUeXBlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpQcmltaXRpdmVNb2RlIHByaW1p
dGl2ZVR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IGluZGV4Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3Qgdm9pZCAqc291cmNlUG9pbnRlciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtdGw6OkJ1ZmZlclJlZiAqaWR4QnVmZmVyT3V0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaWR4
QnVmZmVyT2Zmc2V0T3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCAqaWR4QnVmZmVyQ291bnRPdXQpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaWR4QnVmZmVyT2Zmc2V0T3V0KTsKIAog
ICAgIGFuZ2xlOjpSZXN1bHQgY29udmVydEluZGV4QnVmZmVyR1BVKGNvbnN0IGdsOjpDb250ZXh0
ICpnbENvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6
OkRyYXdFbGVtZW50c1R5cGUgaW5kZXhUeXBlLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1ZlcnRleEFycmF5TXRsLm1tIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1ZlcnRl
eEFycmF5TXRsLm1tCmluZGV4IDAyMTk1ZDgyNjk4MmE1OTFlNDg3OWM0ZDc0OTI2NmFkMzM2N2Y3
YTcuLmQ2NDU4YjIxYWJhMDYwYzViY2VmZmZkNjUwNzliNDViYTc0ZGQxZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9WZXJ0
ZXhBcnJheU10bC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwubW0KQEAgLTgyLDggKzgyLDcgQEAgYW5nbGU6
OlJlc3VsdCBTdHJlYW1JbmRleERhdGEoQ29udGV4dE10bCAqY29udGV4dE10bCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdsOjpQcmltaXRpdmVNb2RlIG1vZGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIHByaW1pdGl2ZVJlc3RhcnRFbmFibGVkLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXRsOjpCdWZmZXJSZWYgKmJ1ZmZlck91dCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqYnVmZmVyT2Zmc2V0T3V0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppbmRleENvdW50T3V0KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpidWZmZXJPZmZzZXRPdXQpCiB7CiAgICAgZHlu
YW1pY0J1ZmZlci0+cmVsZWFzZUluRmxpZ2h0QnVmZmVycyhjb250ZXh0TXRsKTsKICAgICBjb25z
dCBzaXplX3QgYW1vdW50ID0gR2V0SW5kZXhDb252ZXJ0ZWRCdWZmZXJTaXplKGluZGV4VHlwZSwg
aW5kZXhDb3VudCk7CkBAIC0xMjQsNyArMTIzLDYgQEAgYW5nbGU6OlJlc3VsdCBTdHJlYW1JbmRl
eERhdGEoQ29udGV4dE10bCAqY29udGV4dE10bCwKICAgICB7CiAgICAgICAgIG1lbWNweShkc3Qs
IHNvdXJjZVBvaW50ZXIsIGFtb3VudCk7CiAgICAgfQotICAgICppbmRleENvdW50T3V0ID0gaW5k
ZXhDb3VudDsKICAgICBBTkdMRV9UUlkoZHluYW1pY0J1ZmZlci0+Y29tbWl0KGNvbnRleHRNdGwp
KTsKIAogICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpDb250aW51ZTsKQEAgLTcwMyw4ICs3MDEs
NyBAQCBhbmdsZTo6UmVzdWx0IFZlcnRleEFycmF5TXRsOjpnZXRJbmRleEJ1ZmZlcihjb25zdCBn
bDo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHZvaWQgKmluZGljZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtdGw6OkJ1ZmZlclJlZiAqaWR4QnVmZmVyT3V0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppZHhCdWZmZXJP
ZmZzZXRPdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
bDo6RHJhd0VsZW1lbnRzVHlwZSAqaW5kZXhUeXBlT3V0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppbmRleEJ1ZmZlckNvdW50T3V0KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkRyYXdFbGVtZW50
c1R5cGUgKmluZGV4VHlwZU91dCkKIHsKICAgICBjb25zdCBnbDo6QnVmZmVyICpnbEVsZW1lbnRB
cnJheUJ1ZmZlciA9IGdldFN0YXRlKCkuZ2V0RWxlbWVudEFycmF5QnVmZmVyKCk7CiAKQEAgLTcx
Miw3ICs3MDksNyBAQCBhbmdsZTo6UmVzdWx0IFZlcnRleEFycmF5TXRsOjpnZXRJbmRleEJ1ZmZl
cihjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICBpZiAoIWdsRWxlbWVudEFycmF5QnVm
ZmVyKQogICAgIHsKICAgICAgICAgQU5HTEVfVFJZKHN0cmVhbUluZGV4QnVmZmVyRnJvbUNsaWVu
dChjb250ZXh0LCB0eXBlLCBtb2RlLCBjb3VudCwgaW5kaWNlcywgaWR4QnVmZmVyT3V0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeEJ1ZmZlck9mZnNl
dE91dCwgaW5kZXhCdWZmZXJDb3VudE91dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlkeEJ1ZmZlck9mZnNldE91dCkpOwogICAgIH0KICAgICBlbHNl
CiAgICAgewpAQCAtNzIxLDcgKzcxOCw3IEBAIGFuZ2xlOjpSZXN1bHQgVmVydGV4QXJyYXlNdGw6
OmdldEluZGV4QnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICBpZiAo
bmVlZENvbnZlcnNpb24pCiAgICAgICAgIHsKICAgICAgICAgICAgIEFOR0xFX1RSWShjb252ZXJ0
SW5kZXhCdWZmZXIoY29udGV4dCwgdHlwZSwgbW9kZSwgY29udmVydGVkT2Zmc2V0LCBpZHhCdWZm
ZXJPdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeEJ1ZmZl
ck9mZnNldE91dCwgaW5kZXhCdWZmZXJDb3VudE91dCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZHhCdWZmZXJPZmZzZXRPdXQpKTsKICAgICAgICAgfQogICAg
ICAgICBlbHNlCiAgICAgICAgIHsKQEAgLTcyOSw3ICs3MjYsNyBAQCBhbmdsZTo6UmVzdWx0IFZl
cnRleEFycmF5TXRsOjpnZXRJbmRleEJ1ZmZlcihjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwK
ICAgICAgICAgICAgIEJ1ZmZlck10bCAqYnVmZmVyTXRsID0gbXRsOjpHZXRJbXBsKGdsRWxlbWVu
dEFycmF5QnVmZmVyKTsKICAgICAgICAgICAgICppZHhCdWZmZXJPdXQgICAgICAgID0gYnVmZmVy
TXRsLT5nZXRDdXJyZW50QnVmZmVyKCk7CiAgICAgICAgICAgICAqaWR4QnVmZmVyT2Zmc2V0T3V0
ICA9IGNvbnZlcnRlZE9mZnNldDsKLSAgICAgICAgICAgICppbmRleEJ1ZmZlckNvdW50T3V0ID0g
Y291bnQ7CisgICAgICAgICAgICAKICAgICAgICAgfQogICAgIH0KIApAQCAtNzQ4LDggKzc0NSw3
IEBAIGFuZ2xlOjpSZXN1bHQgVmVydGV4QXJyYXlNdGw6OmNvbnZlcnRJbmRleEJ1ZmZlcihjb25z
dCBnbDo6Q29udGV4dCAqZ2xDb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdsOjpQcmltaXRpdmVNb2RlIG1vZGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGw6OkJ1ZmZlclJl
ZiAqaWR4QnVmZmVyT3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCAqaWR4QnVmZmVyT2Zmc2V0T3V0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaW5kZXhCdWZmZXJDb3VudE91
dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgKmlkeEJ1ZmZlck9mZnNldE91dCkKIHsKICAgICBzaXplX3Qgb2Zmc2V0TW9kdWxvID0gb2Zm
c2V0ICUgbXRsOjprSW5kZXhCdWZmZXJPZmZzZXRBbGlnbm1lbnQ7CiAgICAgQVNTRVJUKG9mZnNl
dE1vZHVsbyAhPSAwIHx8IGluZGV4VHlwZSA9PSBnbDo6RHJhd0VsZW1lbnRzVHlwZTo6VW5zaWdu
ZWRCeXRlKTsKQEAgLTc4NSw4ICs3ODEsNyBAQCBhbmdsZTo6UmVzdWx0IFZlcnRleEFycmF5TXRs
Ojpjb252ZXJ0SW5kZXhCdWZmZXIoY29uc3QgZ2w6OkNvbnRleHQgKmdsQ29udGV4dCwKICAgICAg
ICAgQU5HTEVfVFJZKFN0cmVhbUluZGV4RGF0YShjb250ZXh0TXRsLCAmY29udmVyc2lvbi0+ZGF0
YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHhCdWZmZXItPmdldENsaWVu
dFNoYWRvd0NvcHlEYXRhKGNvbnRleHRNdGwpICsgb2Zmc2V0TW9kdWxvLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluZGV4VHlwZSwgaW5kZXhDb3VudCwgbW9kZSwgZ2xTdGF0
ZS5pc1ByaW1pdGl2ZVJlc3RhcnRFbmFibGVkKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJmNvbnZlcnNpb24tPmNvbnZlcnRlZEJ1ZmZlciwgJmNvbnZlcnNpb24tPmNvbnZl
cnRlZE9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleEJ1ZmZl
ckNvdW50T3V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbnZlcnNp
b24tPmNvbnZlcnRlZEJ1ZmZlciwgJmNvbnZlcnNpb24tPmNvbnZlcnRlZE9mZnNldCkpOwogICAg
IH0KICAgICBlbHNlCiAgICAgewpAQCAtODM5LDggKzgzNCw3IEBAIGFuZ2xlOjpSZXN1bHQgVmVy
dGV4QXJyYXlNdGw6OnN0cmVhbUluZGV4QnVmZmVyRnJvbUNsaWVudChjb25zdCBnbDo6Q29udGV4
dCAqY29uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IGluZGV4Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqc291cmNlUG9pbnRlciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtdGw6OkJ1ZmZlclJlZiAqaWR4QnVmZmVyT3V0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaWR4QnVmZmVyT2Zmc2V0
T3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCAqaWR4QnVmZmVyQ291bnRPdXQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppZHhCdWZmZXJPZmZz
ZXRPdXQpCiB7CiAgICAgQVNTRVJUKGdldFN0YXRlKCkuZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkg
PT0gbnVsbHB0cik7CiAgICAgQ29udGV4dE10bCAqY29udGV4dE10bCA9IG10bDo6R2V0SW1wbChj
b250ZXh0KTsKQEAgLTg0OCw3ICs4NDIsNyBAQCBhbmdsZTo6UmVzdWx0IFZlcnRleEFycmF5TXRs
OjpzdHJlYW1JbmRleEJ1ZmZlckZyb21DbGllbnQoY29uc3QgZ2w6OkNvbnRleHQgKmNvbgogICAg
IGF1dG8gc3JjRGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oc291cmNlUG9pbnRl
cik7CiAgICAgQU5HTEVfVFJZKFN0cmVhbUluZGV4RGF0YShjb250ZXh0TXRsLCAmbUR5bmFtaWNJ
bmRleERhdGEsIHNyY0RhdGEsIGluZGV4VHlwZSwgaW5kZXhDb3VudCwgbW9kZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmdldFN0YXRlKCkuaXNQcmltaXRpdmVSZXN0
YXJ0RW5hYmxlZCgpLCBpZHhCdWZmZXJPdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZHhCdWZmZXJPZmZzZXRPdXQsIGlkeEJ1ZmZlckNvdW50T3V0KSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZHhCdWZmZXJPZmZzZXRPdXQpKTsKIAogICAgIHJldHVybiBhbmds
ZTo6UmVzdWx0OjpDb250aW51ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0gYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvbXRsX3V0aWxzLm1tCmlu
ZGV4IDI2ZWE0ZGVlNzM1YTgzOTBmYTM5MWEzM2QxNWY0OTI4NjRkOWQ3NWEuLjBlY2NiY2U2ZDRh
MDA5ZWNjODE4YmI4ZDI5MTliZGIyOTBiNTQ5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9tdGxfdXRpbHMubW0KKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL210bF91
dGlscy5tbQpAQCAtMzA1LDI1ICszMDUsMjAgQEAgYW5nbGU6OlJlc3VsdCBJbml0aWFsaXplRGVw
dGhTdGVuY2lsVGV4dHVyZUNvbnRlbnRzR1BVKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXgKICAg
ICAvLyBVc2UgY2xlYXIgb3BlcmF0aW9uCiAgICAgQ29udGV4dE10bCAqY29udGV4dE10bCAgICAg
ICAgICAgPSBtdGw6OkdldEltcGwoY29udGV4dCk7CiAgICAgY29uc3QgYW5nbGU6OkZvcm1hdCAm
YW5nbGVGb3JtYXQgPSB0ZXh0dXJlT2JqRm9ybWF0LmFjdHVhbEFuZ2xlRm9ybWF0KCk7Ci0KLSAg
ICBtdGw6OlJlbmRlclBhc3NEZXNjIHJwRGVzYzsKKyAgICBSZW5kZXJUYXJnZXRNdGwgcnRNVEw7
CiAKICAgICB1aW50MzJfdCBsYXllciA9IGluZGV4Lmhhc0xheWVyKCkgPyBpbmRleC5nZXRMYXll
ckluZGV4KCkgOiAwOwotCisgICAgcnRNVEwuc2V0KHRleHR1cmUsIGxldmVsLCBsYXllciwgdGV4
dHVyZU9iakZvcm1hdCk7CisgICAgbXRsOjpSZW5kZXJQYXNzRGVzYyBycERlc2M7CisgICAgcnRN
VEwudG9SZW5kZXJQYXNzQXR0YWNobWVudERlc2MoJnJwRGVzYy5kZXB0aEF0dGFjaG1lbnQpOwog
ICAgIHJwRGVzYy5zYW1wbGVDb3VudCA9IHRleHR1cmUtPnNhbXBsZXMoKTsKICAgICBpZiAoYW5n
bGVGb3JtYXQuZGVwdGhCaXRzKQogICAgIHsKLSAgICAgICAgcnBEZXNjLmRlcHRoQXR0YWNobWVu
dC5yZW5kZXJUYXJnZXQtPnRleHR1cmUgICAgICA9IHRleHR1cmU7Ci0gICAgICAgIHJwRGVzYy5k
ZXB0aEF0dGFjaG1lbnQucmVuZGVyVGFyZ2V0LT5sZXZlbCAgICAgICAgPSBsZXZlbDsKLSAgICAg
ICAgcnBEZXNjLmRlcHRoQXR0YWNobWVudC5yZW5kZXJUYXJnZXQtPnNsaWNlT3JEZXB0aCA9IGxh
eWVyOwogICAgICAgICBycERlc2MuZGVwdGhBdHRhY2htZW50LmxvYWRBY3Rpb24gICA9IE1UTExv
YWRBY3Rpb25DbGVhcjsKICAgICAgICAgcnBEZXNjLmRlcHRoQXR0YWNobWVudC5jbGVhckRlcHRo
ICAgPSAxLjA7CiAgICAgfQogICAgIGlmIChhbmdsZUZvcm1hdC5zdGVuY2lsQml0cykKICAgICB7
Ci0gICAgICAgIHJwRGVzYy5zdGVuY2lsQXR0YWNobWVudC5yZW5kZXJUYXJnZXQtPnRleHR1cmUg
ICAgICA9IHRleHR1cmU7Ci0gICAgICAgIHJwRGVzYy5zdGVuY2lsQXR0YWNobWVudC5yZW5kZXJU
YXJnZXQtPmxldmVsICAgICAgICA9IGxldmVsOwotICAgICAgICBycERlc2Muc3RlbmNpbEF0dGFj
aG1lbnQucmVuZGVyVGFyZ2V0LT5zbGljZU9yRGVwdGggPSBsYXllcjsKICAgICAgICAgcnBEZXNj
LnN0ZW5jaWxBdHRhY2htZW50LmxvYWRBY3Rpb24gICA9IE1UTExvYWRBY3Rpb25DbGVhcjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci9tZXRhbC9zaGFkZXJzL2JsaXQubWV0YWwgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvc2hhZGVycy9ibGl0Lm1ldGFsCmluZGV4IDJh
OWJiNWRlMzc0NmMyY2RhY2YzMWYyZWIxMmE0OWEzMzExMzczMTQuLmFiYjBhYzYzYzNkNjM5ZmM0
Nzg3ZjQ0NmM1ZjY2MzdmM2RiMzgzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9zaGFkZXJzL2JsaXQubWV0YWwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL3NoYWRl
cnMvYmxpdC5tZXRhbApAQCAtMzIsMTAgKzMyLDEyIEBAIHN0cnVjdCBCbGl0UGFyYW1zCiAgICAg
ZmxvYXQyIHNyY1RleENvb3Jkc1szXTsKICAgICBpbnQgc3JjTGV2ZWw7ICAvLyBTb3VyY2UgdGV4
dHVyZSBsZXZlbC4KICAgICBpbnQgc3JjTGF5ZXI7ICAvLyBTb3VyY2UgdGV4dHVyZSBsYXllci4K
LQorICAgIGludCBzcmNMZXZlbDI7ICAvLyBTb3VyY2UgdGV4dHVyZSBsZXZlbC4KKyAgICBpbnQg
c3JjTGF5ZXIyOyAgLy8gU291cmNlIHRleHR1cmUgbGF5ZXIuCiAgICAgYm9vbCBkc3RGbGlwVmll
d3BvcnRYOwogICAgIGJvb2wgZHN0RmxpcFZpZXdwb3J0WTsKICAgICBib29sIGRzdEx1bWluYW5j
ZTsgIC8vIGRlc3RpbmF0aW9uIHRleHR1cmUgaXMgbHVtaW5hbmNlLiBVbnVzZWQgYnkgZGVwdGgg
JiBzdGVuY2lsIGJsaXR0aW5nLgorICAgIHVpbnQ4X3QgcGFkZGluZ1s5XTsKIH07CiAKIHN0cnVj
dCBCbGl0VlNPdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJB
TkdMRS9yZW5kZXJlci9tZXRhbC9zaGFkZXJzL210bF9kZWZhdWx0X3NoYWRlcnNfc3JjX2F1dG9n
ZW4uaW5jIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21l
dGFsL3NoYWRlcnMvbXRsX2RlZmF1bHRfc2hhZGVyc19zcmNfYXV0b2dlbi5pbmMKaW5kZXggZjAx
MzQ1MGQzNWMwOWRlZjgyZGZkZTg4ZTYxZmNlYWJmNDcwNzA2My4uY2EwMjBjZWVmMDlmNTNlYzQ3
NDdlNjEzNTc3MzdmM2Q3N2FhYWI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL3NoYWRlcnMvbXRsX2RlZmF1bHRfc2hhZGVy
c19zcmNfYXV0b2dlbi5pbmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFO
R0xFL3JlbmRlcmVyL21ldGFsL3NoYWRlcnMvbXRsX2RlZmF1bHRfc2hhZGVyc19zcmNfYXV0b2dl
bi5pbmMKQEAgLTMxOSw3ICszMTksOCBAQCBzdHJ1Y3QgQmxpdFBhcmFtcwogICAgIGZsb2F0MiBz
cmNUZXhDb29yZHNbM107CiAgICAgaW50IHNyY0xldmVsOwogICAgIGludCBzcmNMYXllcjsKLQor
ICAgIGludCBzcmNMZXZlbDI7CisgICAgaW50IHNyY0xheWVyMjsKICAgICBib29sIGRzdEZsaXBW
aWV3cG9ydFg7CiAgICAgYm9vbCBkc3RGbGlwVmlld3BvcnRZOwogICAgIGJvb2wgZHN0THVtaW5h
bmNlOwo=
</data>
<flag name="review"
          id="438223"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>