<?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>98322</bug_id>
          
          <creation_ts>2012-10-03 16:35:49 -0700</creation_ts>
          <short_desc>Add render object that paints plugin snapshots</short_desc>
          <delta_ts>2012-10-08 14:27:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</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>
          
          <blocked>98318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>beidson</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mitz</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>734173</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-03 16:35:49 -0700</bug_when>
    <thetext>Add a new render class that knows how to paint poster images when the plugin is inactive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734174</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-10-03 16:36:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/12426546&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736781</commentid>
    <comment_count>2</comment_count>
      <attachid>167559</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-08 10:35:30 -0700</bug_when>
    <thetext>Created attachment 167559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736792</commentid>
    <comment_count>3</comment_count>
      <attachid>167559</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-08 10:45:34 -0700</bug_when>
    <thetext>Comment on attachment 167559
Patch

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

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:55
&gt;      , m_needsDocumentActivationCallbacks(false)
&gt;  {
&gt;      setHasCustomCallbacks();
&gt; +
&gt; +    if (document-&gt;page() &amp;&amp; document-&gt;page()-&gt;settings()-&gt;plugInSnapshottingEnabled())
&gt; +        setDisplayState(WaitingForSnapshot);
&gt;  }

Are you missing initialization of m_displayState here in other cases?

&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:273
&gt; +    if (image) {
&gt; +        toRenderSnapshottedPlugin(renderer())-&gt;snapshotResource()-&gt;setCachedImage(new CachedImage(image));
&gt; +        renderer()-&gt;repaint();
&gt; +    }

What happens if the plugin is display:none (or became display:none during the waiting phase)? renderer() could be null.

&gt; Source/WebCore/rendering/RenderSnapshottedPlugin.cpp:77
&gt; +void RenderSnapshottedPlugin::layout()
&gt; +{
&gt; +    ASSERT(needsLayout());
&gt; +
&gt; +    updateLogicalWidth();
&gt; +    updateLogicalHeight();
&gt; +
&gt; +    if (plugInImageElement()-&gt;displayState() &lt; HTMLPlugInElement::Playing)
&gt; +        RenderBox::layout();
&gt; +    else
&gt; +        RenderPart::layout();
&gt; +
&gt; +    m_overflow.clear();
&gt; +    addVisualEffectOverflow();
&gt; +
&gt; +    updateLayerTransform();
&gt; +
&gt; +    if (!widget() &amp;&amp; frameView())
&gt; +        frameView()-&gt;addWidgetToUpdate(this);
&gt; +
&gt; +    setNeedsLayout(false);
&gt; +}

It&apos;s a bit odd that you need special layout behavior. Are there cases where the layout of the element changes when it goes from live to snapshot, or vice versa?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736804</commentid>
    <comment_count>4</comment_count>
      <attachid>167559</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-08 10:59:58 -0700</bug_when>
    <thetext>Comment on attachment 167559
Patch

Attachment 167559 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14214391</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736810</commentid>
    <comment_count>5</comment_count>
      <attachid>167559</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-08 11:05:35 -0700</bug_when>
    <thetext>Comment on attachment 167559
Patch

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

&gt;&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:55
&gt;&gt;  }
&gt; 
&gt; Are you missing initialization of m_displayState here in other cases?

No. In HTMLPlugInElement it sets the default state to Playing. Only this subclass overrides that setting.

&gt;&gt; Source/WebCore/html/HTMLPlugInImageElement.cpp:273
&gt;&gt; +    }
&gt; 
&gt; What happens if the plugin is display:none (or became display:none during the waiting phase)? renderer() could be null.

Hmm. With display:none we could still obtain the snapshot from the plugin. Does that mean I should hold the snapshotResource in the HTML element instead of the renderer?

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugin.cpp:77
&gt;&gt; +}
&gt; 
&gt; It&apos;s a bit odd that you need special layout behavior. Are there cases where the layout of the element changes when it goes from live to snapshot, or vice versa?

No. This code is exactly the same as RenderEmbeddedObject::layout(), except that if we are snapshotting I use RenderBox::layout() instead of RenderPart::layout(). I didn&apos;t know how to factor that one part out without making this function needlessly complicated. Any suggestion?

&gt; Source/WebCore/rendering/RenderSnapshottedPlugin.cpp:130
&gt; +void RenderSnapshottedPlugin::paintReplacedOverlay(PaintInfo&amp; paintInfo, const LayoutPoint&amp; paintOffset)

This needs to be moved to RenderTheme. Will post a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736962</commentid>
    <comment_count>6</comment_count>
      <attachid>167595</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-08 13:19:01 -0700</bug_when>
    <thetext>Created attachment 167595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736964</commentid>
    <comment_count>7</comment_count>
      <attachid>167595</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-08 13:20:43 -0700</bug_when>
    <thetext>Comment on attachment 167595
Patch

Moved the overlay rendering code out to RenderTheme. Fixed, hopefully, Windows build error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737013</commentid>
    <comment_count>8</comment_count>
      <attachid>167603</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-08 14:05:21 -0700</bug_when>
    <thetext>Created attachment 167603
Removed layout() call, renamed setSnapshot to updateSnapshot, and moved setting the snapshot into RenderSnapshottedPlugin to make cleaner code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737017</commentid>
    <comment_count>9</comment_count>
      <attachid>167603</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-08 14:07:05 -0700</bug_when>
    <thetext>Comment on attachment 167603
Removed layout() call, renamed setSnapshot to updateSnapshot, and moved setting the snapshot into RenderSnapshottedPlugin to make cleaner code

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

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:7823
&gt; +		2981CAA5131822EC00D12F2A /* AccessibilityObject.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = AccessibilityObject.cpp; sourceTree = &quot;&lt;group&gt;&quot;; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };

Not sure what happened here. Will remove this when checked in.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:11265
&gt; +		A81872140977D3C0005826D9 /* ContainerNode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = ContainerNode.cpp; sourceTree = &quot;&lt;group&gt;&quot;; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };

Ditto.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:12812
&gt; +		BC772B370C4EA91E0083285F /* CSSParser.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = CSSParser.cpp; sourceTree = &quot;&lt;group&gt;&quot;; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };

And here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737045</commentid>
    <comment_count>10</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-10-08 14:27:44 -0700</bug_when>
    <thetext>Committed r130688: &lt;http://trac.webkit.org/changeset/130688&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167559</attachid>
            <date>2012-10-08 10:35:30 -0700</date>
            <delta_ts>2012-10-08 13:18:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98322-20121008103432.patch</filename>
            <type>text/plain</type>
            <size>31455</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGEwN2M4YTY4ZWJkMmRi
MDU4OGIxMzE0ZjU2M2UyNDY4ZDI2NDA4YS4uNTc0YTg1OWQxNWU1ZDgyYWM4YThlNTNlYjI0Njk1
NDg1YWFmZmYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDEyLTEwLTA4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcmVuZGVyIG9iamVjdCB0aGF0
IHBhaW50cyBwbHVnaW4gc25hcHNob3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05ODMyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI0MjY1NDY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3Qs
IHRlYWNoIHBsdWdpbnMgdG8gbWFpbnRhaW4gYSBzZXQgb2Ygc3RhdGVzIHdoZW4gcGx1Z2luIHNu
YXBzaG90dGluZyBpcyBlbmFibGVkLgorCisgICAgICAgIFNlY29uZCwgYSBuZXcgUmVuZGVyU25h
cHNob3R0ZWRQbHVnaW4gY2xhc3MgaXMgYSBSZW5kZXJFbWJlZGRlZE9iamVjdCB0aGF0IGtub3dz
IGhvdyB0byBwYWludAorICAgICAgICBzbmFwc2hvdHMgd2hlbiB0aGUgcGx1Z2luIGlzIG5vdCB2
aXNpYmx5IHBsYXlpbmcuIEl0IG1haW50YWlucyBhIFJlbmRlckltYWdlUmVzb3VyY2UgdG8KKyAg
ICAgICAgdGhlIGdlbmVyYXRlZCBwb3N0ZXIgaW1hZ2UuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzU25hcHNo
b3R0ZWRQbHVnaW4pOiBBZGQgbmV3IGZ1bmN0aW9uIHRvIGlkZW50aWZ5CisgICAgICAgIFJlbmRl
clNuYXBzaG90dGVkUGx1Z2luIGluc3RhbmNlcy4gU2luY2UgUmVuZGVyU25hcHNob3R0ZWRQbHVn
aW4gaW5oZXJpdHMgZnJvbQorICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCwgaXNFbWJlZGRl
ZE9iamVjdCgpIHN0aWxsIHJldHVybnMgdHJ1ZS4KKworICAgICAgICAqIGh0bWwvSFRNTFBsdWdJ
bkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OkhUTUxQ
bHVnSW5FbGVtZW50KTogQnkgZGVmYXVsdCBhbGwgcGx1Z2lucyBwbGF5IG9uIGxvYWQuCisgICAg
ICAgICogaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oOiBNb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiBJ
bWFnZUxvYWRlckNsaWVudEJhc2UgZG93biB0bworICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LCBzaW5jZSB0aGF0IGlzIHRoZSBjbGFzcyB0aGF0IGFjdHVhbGx5IGRlYWxzIHdpdGggaW1h
Z2UtYmFzZWQgcGx1Z2lucy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50Ojpz
ZXRTbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudDo6ZGlzcGxh
eVN0YXRlKTogQWRkIGJpdCBmb3IgZGlzcGxheSBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxQbHVnSW5FbGVtZW50OjpzZXREaXNwbGF5U3RhdGUpOgorCisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQpOiBJZiBwbHVnaW4gc25hcHNob3R0aW5n
IGlzCisgICAgICAgIGVuYWJsZWQsIHBsdWdpbiBzdGF0ZSBpcyBzZXQgdG8gd2FpdCBmb3IgYSBw
b3N0ZXIgaW1hZ2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpz
ZXRTbmFwc2hvdCk6IE9uY2UgYSBwb3N0ZXIgaW1hZ2UgaXMgYXZhaWxhYmxlLCBzZXQKKyAgICAg
ICAgc3RhdGUgdG8gd2FpdCBmb3IgdXNlciBpbnB1dCB0byBzdGFydCB0aGUgcGx1Z2luLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOiBD
cmVhdGUgUmVuZGVyU25hcHNob3R0ZWRQbHVnaW4gaWYKKyAgICAgICAgcGx1Z2luIHNuYXBzaG90
dGluZyBpcyBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6c2V0U25hcHNob3QpOiBTZXQgdGhlIHNuYXBzaG90IGFuZCByZXBhaW50LgorICAgICAgICAq
IGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOgorICAgICAgICAoSFRNTFBsdWdJbkltYWdl
RWxlbWVudCk6CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaDoK
KyAgICAgICAgKFJlbmRlckVtYmVkZGVkT2JqZWN0KTogRWxldmF0ZSBhIGZldyB2aXJ0dWFsIG1l
dGhvZHMgdG8gcHJvdGVjdGVkIGZvcgorICAgICAgICBSZW5kZXJTbmFwc2hvdHRlZFBsdWdpbiB0
byBvdmVycmlkZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnaW4u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U25hcHNob3R0ZWRQbHVnaW46OlJlbmRlclNuYXBzaG90dGVkUGx1Z2luKTogSW5pdGlhbGl6ZSBz
bmFwc2hvdAorICAgICAgICByZXNvdXJjZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBz
aG90dGVkUGx1Z2luOjp+UmVuZGVyU25hcHNob3R0ZWRQbHVnaW4pOiBTaHV0IGRvd24gc25hcHNo
b3QKKyAgICAgICAgaW1hZ2UgcmVzb3VyY2UgdG8gcmVtb3ZlIHRoZSByZW5kZXJlciBhcyBhIGNs
aWVudCwgYW5kIHJlbW92ZSBpbWFnZSBmcm9tIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z2luOjpwbHVnSW5JbWFnZUVsZW1lbnQpOiBDb252ZW5p
ZW5jZSBmdW5jdGlvbiB0byBnZXQgdGhlCisgICAgICAgIEhUTUwgZWxlbWVudC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z2luOjpsYXlvdXQpOiBTaW1pbGFyIHRvIFJl
bmRlckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQoKSwKKyAgICAgICAgZXhjZXB0IHRoYXQgd2UgdHJl
YXQgb3Vyc2VsdmVzIGFzIGEgbm9ybWFsIFJlbmRlckJveCBvYmplY3QgdG8gcGFpbnQgdGhlIHBv
c3RlciBhbmQKKyAgICAgICAgb3ZlcmxheSB3aGVuIHRoZSBwbHVnaW4gaXMgbm90IHBsYXlpbmcu
IFdlIHN0aWxsIHJlZ2lzdGVyIHRoZSB3aWRnZXQgZm9yIHVwZGF0ZSBjYWxscywKKyAgICAgICAg
c2luY2UgdGhlIHBsdWdpbiBuZWVkcyB0byBydW4gb2ZmLXNjcmVlbiBpbiBvcmRlciB0byBvYnRh
aW4gdGhlIHNuYXBzaG90LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVn
aW46OnBhaW50KTogSWYgdGhlIHBsdWdpbiBpcyBub3QgcGxheWluZywgcGFpbnQgbGlrZSBhCisg
ICAgICAgIFJlbmRlckltYWdlIGRvZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hv
dHRlZFBsdWdpbjo6cGFpbnRSZXBsYWNlZCk6IFBhaW50IHRoZSBzbmFwc2hvdCBhbmQgb3Zlcmxh
eSBpZiB0aGUKKyAgICAgICAgcGx1Z2luIGlzIG5vdCBwbGF5aW5nLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnaW46OnBhaW50UmVwbGFjZWRQb3N0ZXIpOiBJbnNwaXJl
ZCBieQorICAgICAgICBSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZCgpIGFuZCBSZW5kZXJJbWFn
ZTo6cGFpbnRJbnRvUmVjdCgpLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQ
bHVnaW46OnBhaW50UmVwbGFjZWRPdmVybGF5KTogUGFpbnQgb3ZlcmxheSBvbiB0b3Agb2YgcG9z
dGVyLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdpbi5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z2luOjppc1NuYXBzaG90
dGVkUGx1Z2luKTogUmV0dXJucyB0cnVlLgorICAgICAgICAoUmVuZGVyU25hcHNob3R0ZWRQbHVn
aW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnaW46OnNuYXBzaG90
UmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnaW46OnJl
bmRlck5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJTbmFwc2hvdHRlZFBsdWdpbik6
CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBuZXcg
UmVuZGVyU25hcHNob3R0ZWRQbHVnaW4gY2xhc3MuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAq
IFRhcmdldC5wcmk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorCiAyMDEyLTEwLTA3
ICBBcnBpdGEgQmFodWd1bmEgIDxhcnBpdGFiYWh1Z3VuYUBnbWFpbC5jb20+CiAKICAgICAgICAg
OmZpcnN0LWxpbmUgcHNldWRvIHNlbGVjdG9yIGlnbm9yaW5nIHdvcmRzIGNyZWF0ZWQgZnJvbSA6
YmVmb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJkMmM5M2U4MTM1Yjc3ZDVkMGQ0ZmM2YTk3
ZGMzMDFiNTVkMWEyOTkuLmRlOGMwNjEwYmNlN2M2YjZlMDE5OWZlZmQ5ZTk1NjZmOTM5NGYyODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMTE2LDYgKzIxMTYsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmNwcAogICAgIHJlbmRl
cmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNw
cAorICAgIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdpbi5jcHAKICAgICByZW5kZXJp
bmcvUmVuZGVyVGFibGUuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHAK
ICAgICByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggZDdhNGVkZTIxOWYzNTQ4OTc1ZmI4NDFmNTI2OTUwYzRhNTM1ODczZC4uNjQz
MWQ4MmNlNzUwOTM2ZTdhOWUwMDQ0YThiZTM0OWUzMDRlN2Q1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC01MDgyLDYgKzUwODIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdpbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbmFwc2hvdHRlZFBsdWdpbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDYXB0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2FwdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQppbmRleCAwNzhiNjlhYTI3MzQ0NjAwMDQ0YjkwMmNjYTU1ZDMxZjdlZWYx
MjU1Li4xN2JjOTU2MDZmY2Y0NGUwNzI1ZDZmZjRlZmRmZjQ1NDEzMzRiODM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKQEAgLTExODMsNiArMTE4Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJTY3JvbGxiYXJUaGVtZS5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5j
cHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIFwKKyAgICByZW5kZXJpbmcvUmVu
ZGVyU25hcHNob3R0ZWRQbHVnaW4uY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3Bw
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmNwcCBcCiAgICAgcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5jcHAgXApAQCAtMjM4MSw2ICsyMzgyLDcgQEAgSEVBREVSUyArPSBc
CiAgICAgcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmggXAogICAgIHJlbmRlcmluZy9S
ZW5kZXJTZWFyY2hGaWVsZC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggXAorICAg
IHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdpbi5oIFwKICAgICByZW5kZXJpbmcvUmVu
ZGVyVGFibGVDYXB0aW9uLmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBcCiAg
ICAgcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQxMjFi
N2QxMGIwOGJiODY0MGVkOTIyNjhhMGM0MzRjY2YxMjRlYjMuLmFjNWRjNDBhMzBkOTRmOTFhZDNm
MDU0MzhkODg4ZWZkMGY5M2FjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM0MzAsNiArMzQzMCw4
IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuaCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclNuYXBz
aG90dGVkUGx1Z2luLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclNuYXBzaG90
dGVkUGx1Z2luLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oJywKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGVmMmFhZjA1MTk5ZDFhMTlhMmQ0MzU4ZWE4Zjhk
OWVlMzZiYWU5OTIuLjI4ZGE3ZDNhOWQ2NWM4NTYyNTI3NDk4MjA2MzMwNzNiYjFiZjc5MTEgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00MjE1
OSw2ICs0MjE1OSw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyU25hcHNob3R0ZWRQbHVnaW4uY3BwIgorCQkJCT4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcUmVuZGVyU25hcHNob3R0ZWRQbHVnaW4uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN2Z1xSZW5kZXJTVkdBbGxJbk9u
ZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNiN2JkNjUxMGU4YzYyMzM4MzYxZjUxOTU3
N2RlNDE0MjkyMGE0ZWQuLjQ1NTMyZGEyYWYxNGYxZDg4Njk3OWU4M2RmODAxZjAzYzFkMmFlNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTkwOSw2ICs5MDksOCBAQAogCQkzMTk0NjIwNDEzMDIyQkYxMDA0QkIzRjggLyogRE9N
V2ViS2l0QW5pbWF0aW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE5NDYyMDIxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlv
bkxpc3QuaCAqLzsgfTsKIAkJMzE5NDYyMDUxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFu
aW1hdGlvbkxpc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTk0NjIwMzEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5t
bSAqLzsgfTsKIAkJMzE5NDYyMzIxMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9u
TGlzdEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTk0NjIzMTEzMDIyRjY1MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3Vz
dG9tLmNwcCAqLzsgfTsKKwkJMzE5NTVBODYxNjBEMTk5MDAwODU4MDI1IC8qIFJlbmRlclNuYXBz
aG90dGVkUGx1Z2luLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxRThEOEJBMTYwQkM5NEIwMDRDRThGNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdp
bi5jcHAgKi87IH07CisJCTMxOTU1QTg4MTYwRDE5OTIwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzFFOEQ4QkIxNjBCQzk0QzAwNENFOEY1IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z2luLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE5QUUw
NjMxNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlBRTA2MTE0MkQ2QjI0MDA2NTYzQTEg
LyogU3R5bGVGaWx0ZXJEYXRhLmNwcCAqLzsgfTsKIAkJMzE5QUUwNjQxNDJENkIyNDAwNjU2M0Ex
IC8qIFN0eWxlRmlsdGVyRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE5QUUwNjIxNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxOUU2
ODg3MTMyN0M5MTEwMDRBQzkxQSAvKiBKU1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjg4NjEzMjdDOTEx
MDA0QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwICovOyB9OwpAQCAtODAzOCw2
ICs4MDQwLDggQEAKIAkJMzFDMEZGNDYwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5z
aXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGNDcw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFDMEZGNDgwRTRDRUZERDAwN0Q2RkU1
IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxRThEOEJBMTYwQkM5NEIwMDRDRThGNSAvKiBSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMxRThEOEJCMTYwQkM5NEMwMDRDRThGNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdp
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTbmFwc2hvdHRlZFBs
dWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUVDMUQ1MDE0RkVGRDA4MDBD
OTQ2NjIgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsOyBwYXRoID0gTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRUMxREFDMTRGRjI2RUEwMEM5NDY2MiAvKiBO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTm90aWZpY2F0
aW9uUGVybWlzc2lvbkNhbGxiYWNrLmg7IHBhdGggPSBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxRUMxRTI2MTRGRjYwRUUwMEM5NDY2MiAvKiBKU05vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMTQ4Myw2ICsyMTQ4Nyw4IEBACiAJCQkJMEYxMUE1NEUwRjM5MjMzMTAwQzM3ODg0IC8q
IFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLywKIAkJCQlBQjI0N0E2QTBBRkQ2MzgzMDAzRkE1RkQg
LyogUmVuZGVyU2xpZGVyLmNwcCAqLywKIAkJCQlBQjI0N0E2QjBBRkQ2MzgzMDAzRkE1RkQgLyog
UmVuZGVyU2xpZGVyLmggKi8sCisJCQkJMzFFOEQ4QkExNjBCQzk0QjAwNENFOEY1IC8qIFJlbmRl
clNuYXBzaG90dGVkUGx1Z2luLmNwcCAqLywKKwkJCQkzMUU4RDhCQjE2MEJDOTRDMDA0Q0U4RjUg
LyogUmVuZGVyU25hcHNob3R0ZWRQbHVnaW4uaCAqLywKIAkJCQlBOERGNEFFMjA5ODBDNDJDMDA1
Mjk4MUIgLyogUmVuZGVyVGFibGUuY3BwICovLAogCQkJCUE4REY0QUUxMDk4MEM0MkMwMDUyOTgx
QiAvKiBSZW5kZXJUYWJsZS5oICovLAogCQkJCTZFRDg3OEMyMTQ3NDkzRjQwMDRDMzU5NyAvKiBS
ZW5kZXJUYWJsZUNhcHRpb24uY3BwICovLApAQCAtMjU1MzcsNiArMjU1NDMsNyBAQAogCQkJCTkz
MUNCRDBEMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZU5vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzMUNCRDBGMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMUNCRDExMTYxQTQ0RTkwMEU0Qzg3NCAv
KiBTY3JvbGxpbmdTdGF0ZVRyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTU1QTg4MTYwRDE5
OTIwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yODYzNCw2ICsyODY0MSw3IEBACiAJCQkJOTMxQ0JEMEUxNjFBNDRFOTAwRTRDODc0IC8qIFNj
cm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzFDQkQx
MDE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzMUNCRDEzMTYxQTQ0RjgwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZU5vZGVNYWMu
bW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk1NUE4NjE2MEQxOTkwMDA4NTgwMjUgLyogUmVuZGVy
U25hcHNob3R0ZWRQbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDFiNTg0MzQ4MzhlZjRjYjBkNjc3MGUyMjAyNGM4
M2Y0N2I2YTY5ZGMuLmM2ZTUyY2EwZGYzNDNkYWJjNGNiMGQ1OWE0YTQ2N2RlMWU2NDc1OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC01NSw2ICs1NSw3
IEBAIEhUTUxQbHVnSW5FbGVtZW50OjpIVE1MUGx1Z0luRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jCiAgICAgLCBtX05QT2JqZWN0KDApCiAjZW5kaWYK
ICAgICAsIG1faXNDYXB0dXJpbmdNb3VzZUV2ZW50cyhmYWxzZSkKKyAgICAsIG1fZGlzcGxheVN0
YXRlKFBsYXlpbmcpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
aAppbmRleCBlZWVjNjBjYjU4NmY3ZDEyYjVjZjA3NjUzZjBmN2EzMjU0MTE4YzAzLi4xNDJmMzU3
MThjNmI0ZGE1OTI4MzgyZDY2YmEyYWE1YmUwZmMwOWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUGx1Z0luRWxlbWVudC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMzLDExICsz
MywxMiBAQCBzdHJ1Y3QgTlBPYmplY3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
SW1hZ2U7CiBjbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKIGNsYXNzIFJlbmRlcldpZGdldDsK
IGNsYXNzIFdpZGdldDsKIAotY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQgOiBwdWJsaWMgSFRNTEZy
YW1lT3duZXJFbGVtZW50LCBwdWJsaWMgSW1hZ2VMb2FkZXJDbGllbnRCYXNlPEhUTUxQbHVnSW5F
bGVtZW50PiB7CitjbGFzcyBIVE1MUGx1Z0luRWxlbWVudCA6IHB1YmxpYyBIVE1MRnJhbWVPd25l
ckVsZW1lbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkhUTUxQbHVnSW5FbGVtZW50KCk7CiAK
QEAgLTQ3LDYgKzQ4LDE2IEBAIHB1YmxpYzoKIAogICAgIFdpZGdldCogcGx1Z2luV2lkZ2V0KCkg
Y29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U25hcHNob3QoSW1hZ2UqKSB7IH0KKworICAg
IGVudW0gRGlzcGxheVN0YXRlIHsKKyAgICAgICAgV2FpdGluZ0ZvclNuYXBzaG90LAorICAgICAg
ICBEaXNwbGF5aW5nU25hcHNob3QsCisgICAgICAgIFBsYXlpbmcKKyAgICB9OworICAgIERpc3Bs
YXlTdGF0ZSBkaXNwbGF5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdGF0ZTsgfQor
ICAgIHZvaWQgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSBzdGF0ZSkgeyBtX2Rpc3BsYXlT
dGF0ZSA9IHN0YXRlOyB9CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBO
UE9iamVjdCogZ2V0TlBPYmplY3QoKTsKICNlbmRpZgpAQCAtODQsNiArOTUsOCBAQCBwcml2YXRl
OgogICAgIE5QT2JqZWN0KiBtX05QT2JqZWN0OwogI2VuZGlmCiAgICAgYm9vbCBtX2lzQ2FwdHVy
aW5nTW91c2VFdmVudHM7CisKKyAgICBEaXNwbGF5U3RhdGUgbV9kaXNwbGF5U3RhdGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCA0OTExNjZlM2U4YzlkODBiOTcyZjA4MWQ2ZmI4OTc5
MGE0OGQ0OWUxLi5kN2VhYTI0NDhlN2U3NWQzOWQxZWY0NTQyMTRiNjk0MGY2ZDZiNmQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSwgMjAxMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxLDcg
KzMxLDkgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRlclNuYXBzaG90
dGVkUGx1Z2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDcsNiArNDksOSBAQCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAgICwgbV9uZWVk
c0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcyhmYWxzZSkKIHsKICAgICBzZXRIYXNDdXN0b21D
YWxsYmFja3MoKTsKKworICAgIGlmIChkb2N1bWVudC0+cGFnZSgpICYmIGRvY3VtZW50LT5wYWdl
KCktPnNldHRpbmdzKCktPnBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQoKSkKKyAgICAgICAgc2V0
RGlzcGxheVN0YXRlKFdhaXRpbmdGb3JTbmFwc2hvdCk7CiB9CiAKIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6On5IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KCkKQEAgLTE0MSw2ICsxNDYsOSBAQCBSZW5k
ZXJPYmplY3QqIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiBhcmVuYSwgUmVuZGVyUwogICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5k
ZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7CiAgICAgICAgIHJldHVybiBpbWFnZTsKICAgICB9
CisKKyAgICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgpICYmIGRvY3VtZW50KCktPnBhZ2UoKS0+c2V0
dGluZ3MoKS0+cGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gbmV3
IChhcmVuYSkgUmVuZGVyU25hcHNob3R0ZWRQbHVnaW4odGhpcyk7CiAgICAgcmV0dXJuIG5ldyAo
YXJlbmEpIFJlbmRlckVtYmVkZGVkT2JqZWN0KHRoaXMpOwogfQogCkBAIC0yNTMsNCArMjYxLDE3
IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2FsbGJhY2soTm9k
ZSogbiwgdW5zaWduZWQpCiAgICAgc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+
KG4pLT51cGRhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOwogfQogCit2b2lkIEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQ6OnNldFNuYXBzaG90KEltYWdlKiBpbWFnZSkKK3sKKyAgICBpZiAoZGlzcGxheVN0
YXRlKCkgPiBXYWl0aW5nRm9yU25hcHNob3QgfHwgIXJlbmRlcmVyKCktPmlzU25hcHNob3R0ZWRQ
bHVnaW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gWmVyby1zaXplIHBsdWdpbnMgd2ls
bCBoYXZlIG5vIGltYWdlLgorICAgIGlmIChpbWFnZSkgeworICAgICAgICB0b1JlbmRlclNuYXBz
aG90dGVkUGx1Z2luKHJlbmRlcmVyKCkpLT5zbmFwc2hvdFJlc291cmNlKCktPnNldENhY2hlZElt
YWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZSkpOworICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50
KCk7CisgICAgfQorICAgIHNldERpc3BsYXlTdGF0ZShEaXNwbGF5aW5nU25hcHNob3QpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5oCmluZGV4IDE2OGVkNDYzNDM0ZmRiNzNkNzI3OTUxZDA3Yjk0MTAxYmI5
ZTA2MDUuLjU2MjZmMzEyMjEzMDE0OGVhNDRkNDEzZjAyNGJmYjRlYjFlNTdlZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIwMTEsIDIwMTIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00
Miw3ICs0Miw3IEBAIGVudW0gUHJlZmVyUGx1Z0luc0ZvckltYWdlc09wdGlvbiB7CiB9OwogCiAv
LyBCYXNlIGNsYXNzIGZvciBIVE1MT2JqZWN0RWxlbWVudCBhbmQgSFRNTEVtYmVkRWxlbWVudAot
Y2xhc3MgSFRNTFBsdWdJbkltYWdlRWxlbWVudCA6IHB1YmxpYyBIVE1MUGx1Z0luRWxlbWVudCB7
CitjbGFzcyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50IDogcHVibGljIEhUTUxQbHVnSW5FbGVtZW50
LCBwdWJsaWMgSW1hZ2VMb2FkZXJDbGllbnRCYXNlPEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KCk7CiAKQEAgLTkw
LDYgKzkwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVdpZGdldElmTmVjZXNzYXJ5KCk7
CiAgICAgdmlydHVhbCBib29sIHVzZUZhbGxiYWNrQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgCisgICAgdmlydHVhbCB2b2lkIHNldFNuYXBzaG90KEltYWdlKikgT1ZFUlJJ
REU7CisKICAgICBib29sIG1fbmVlZHNXaWRnZXRVcGRhdGU7CiAgICAgYm9vbCBtX3Nob3VsZFBy
ZWZlclBsdWdJbnNGb3JJbWFnZXM7CiAgICAgYm9vbCBtX25lZWRzRG9jdW1lbnRBY3RpdmF0aW9u
Q2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuaAppbmRleCAzZjMxOGIxNjc3ZjYwYjM1ZGM4OTcxNmFhMDNiN2ZlNTg2NzMxZTBjLi45
NWQxMzE3NTYyMmQ5MGJlMTM5NDBjZDAyYWZiMmM5MDdjZWM1YmYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaApAQCAtMSw3ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAq
ICAgICAgICAgICAoQykgMjAwMCBTaW1vbiBIYXVzbWFubiA8aGF1c21hbm5Aa2RlLm9yZz4KLSAq
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01NiwxNCArNTYsMTYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBhbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3Q7CiAjZW5kaWYK
IAotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7
IHJldHVybiAiUmVuZGVyRW1iZWRkZWRPYmplY3QiOyB9Ci0gICAgdmlydHVhbCBib29sIGlzRW1i
ZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KK3Byb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
OwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
OworCiAgICAgdmlydHVhbCBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0IExheW91dFBv
aW50JiwgQ3Vyc29yJikgY29uc3Q7CiAKK3ByaXZhdGU6CisgICAgdmlydHVhbCBjb25zdCBjaGFy
KiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckVtYmVkZGVkT2JqZWN0IjsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0VtYmVkZGVkT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgYm9vbCBy
ZXF1aXJlc0xheWVyKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAppbmRleCAwYTcwNTc1MGY3YzY1NzViYWMzYTcxOGVhMWJlOWE4YjNjNDI2NDRm
Li4wZjAxYzBiYmQ1OTY0NGM1NTg0YTVmOGYxMWZhZjM5ZDEzYzc2NTFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0zLDcgKzMsNyBAQAogICogICAgICAgICAg
IChDKSAyMDAwIEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAg
IChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAyMDA0IEFsbGFuIFNhbmRmZWxkIEplbnNlbiAoa2RlQGNhcmV3b2xmLmNvbSkKLSAqIENvcHly
aWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIw
MDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzM3LDYgKzMzNyw3IEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoTUVURVJfRUxFTUVOVCkKICAgICB2aXJ0dWFsIGJvb2wgaXNNZXRlcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAjZW5kaWYKKyAgICB2aXJ0dWFsIGJvb2wgaXNTbmFwc2hvdHRlZFBsdWdp
bigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgRU5BQkxFKFBST0dSRVNTX0VMRU1FTlQp
CiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNo
b3R0ZWRQbHVnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90
dGVkUGx1Z2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OWM5MmEwN2UwZGE0Y2Q5MTBjNmE3YTkxZTM3YTIw
NjdmMjNiZWRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNuYXBzaG90dGVkUGx1Z2luLmNwcApAQCAtMCwwICsxLDE2MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdpbi5o
IgorCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVk
ZSAiR3JhZGllbnQuaCIKKyNpbmNsdWRlICJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgiCisjaW5j
bHVkZSAiUGFpbnRJbmZvLmgiCisjaW5jbHVkZSAiUGF0aC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1JlbmRlclNuYXBzaG90dGVkUGx1Z2luOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdpbihI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBlbGVtZW50KQorICAgIDogUmVuZGVyRW1iZWRkZWRPYmpl
Y3QoZWxlbWVudCkKKyAgICAsIG1fc25hcHNob3RSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNl
OjpjcmVhdGUoKSkKK3sKKyAgICBtX3NuYXBzaG90UmVzb3VyY2UtPmluaXRpYWxpemUodGhpcyk7
Cit9CisKK1JlbmRlclNuYXBzaG90dGVkUGx1Z2luOjp+UmVuZGVyU25hcHNob3R0ZWRQbHVnaW4o
KQoreworICAgIEFTU0VSVChtX3NuYXBzaG90UmVzb3VyY2UpOworICAgIG1fc25hcHNob3RSZXNv
dXJjZS0+c2h1dGRvd24oKTsKK30KKworSFRNTFBsdWdJbkltYWdlRWxlbWVudCogUmVuZGVyU25h
cHNob3R0ZWRQbHVnaW46OnBsdWdJbkltYWdlRWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihub2RlKCkpOworfQorCit2b2lk
IFJlbmRlclNuYXBzaG90dGVkUGx1Z2luOjpsYXlvdXQoKQoreworICAgIEFTU0VSVChuZWVkc0xh
eW91dCgpKTsKKworICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOworICAgIHVwZGF0ZUxvZ2ljYWxI
ZWlnaHQoKTsKKworICAgIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxheVN0YXRlKCkg
PCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykKKyAgICAgICAgUmVuZGVyQm94OjpsYXlvdXQo
KTsKKyAgICBlbHNlCisgICAgICAgIFJlbmRlclBhcnQ6OmxheW91dCgpOworCisgICAgbV9vdmVy
Zmxvdy5jbGVhcigpOworICAgIGFkZFZpc3VhbEVmZmVjdE92ZXJmbG93KCk7CisKKyAgICB1cGRh
dGVMYXllclRyYW5zZm9ybSgpOworCisgICAgaWYgKCF3aWRnZXQoKSAmJiBmcmFtZVZpZXcoKSkK
KyAgICAgICAgZnJhbWVWaWV3KCktPmFkZFdpZGdldFRvVXBkYXRlKHRoaXMpOworCisgICAgc2V0
TmVlZHNMYXlvdXQoZmFsc2UpOworfQorCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z2luOjpw
YWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0
KQoreworICAgIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxheVN0YXRlKCkgPCBIVE1M
UGx1Z0luRWxlbWVudDo6UGxheWluZykgeworICAgICAgICBSZW5kZXJSZXBsYWNlZDo6cGFpbnQo
cGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Cit9CisK
K3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnaW46OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAgICBpZiAocGx1
Z0luSW1hZ2VFbGVtZW50KCktPmRpc3BsYXlTdGF0ZSgpIDwgSFRNTFBsdWdJbkVsZW1lbnQ6OlBs
YXlpbmcpIHsKKyAgICAgICAgcGFpbnRSZXBsYWNlZFBvc3RlcihwYWludEluZm8sIHBhaW50T2Zm
c2V0KTsKKyAgICAgICAgcGFpbnRSZXBsYWNlZE92ZXJsYXkocGFpbnRJbmZvLCBwYWludE9mZnNl
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZW5kZXJFbWJlZGRlZE9iamVjdDo6
cGFpbnRSZXBsYWNlZChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKK30KKwordm9pZCBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdpbjo6cGFpbnRSZXBsYWNlZFBvc3RlcihQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQoreworICAgIExheW91dFVuaXQgY1dp
ZHRoID0gY29udGVudFdpZHRoKCk7CisgICAgTGF5b3V0VW5pdCBjSGVpZ2h0ID0gY29udGVudEhl
aWdodCgpOworICAgIGlmICghY1dpZHRoIHx8ICFjSGVpZ2h0KQorICAgICAgICByZXR1cm47CisK
KyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9zbmFwc2hvdFJlc291cmNlLT5pbWFnZSgpOwor
ICAgIGlmICghaW1hZ2UgfHwgaW1hZ2UtPmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgaWYgKHN0eWxlKCktPmhpZ2hsaWdodCgpICE9IG51bGxBdG9tICYmICFj
b250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHBhaW50Q3VzdG9tSGlnaGxpZ2h0
KHRvUG9pbnQocGFpbnRPZmZzZXQgLSBsb2NhdGlvbigpKSwgc3R5bGUoKS0+aGlnaGxpZ2h0KCks
IHRydWUpOworI2VuZGlmCisKKyAgICBMYXlvdXRTaXplIGNvbnRlbnRTaXplKGNXaWR0aCwgY0hl
aWdodCk7CisgICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0aW9uID0gcGFpbnRPZmZzZXQ7Cisg
ICAgY29udGVudExvY2F0aW9uLm1vdmUoYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgYm9y
ZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpOworCisgICAgTGF5b3V0UmVjdCByZWN0KGNvbnRlbnRM
b2NhdGlvbiwgY29udGVudFNpemUpOworICAgIEludFJlY3QgYWxpZ25lZFJlY3QgPSBwaXhlbFNu
YXBwZWRJbnRSZWN0KHJlY3QpOworICAgIGlmIChhbGlnbmVkUmVjdC53aWR0aCgpIDw9IDAgfHwg
YWxpZ25lZFJlY3QuaGVpZ2h0KCkgPD0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCB1
c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIGlt
YWdlLmdldCgpLCBpbWFnZS5nZXQoKSwgYWxpZ25lZFJlY3Quc2l6ZSgpKTsKKyAgICBjb250ZXh0
LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJl
Y3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCks
IHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKK30KKwordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdp
bjo6cGFpbnRSZXBsYWNlZE92ZXJsYXkoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAgICBMYXlvdXRVbml0IGNXaWR0aCA9IGNvbnRlbnRX
aWR0aCgpOworICAgIExheW91dFVuaXQgY0hlaWdodCA9IGNvbnRlbnRIZWlnaHQoKTsKKworICAg
IEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0OworICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlU2F2ZXIgc2F2ZXIoKmNvbnRleHQpOworCisgICAgTGF5b3V0UG9pbnQg
ZmlsbExvY2F0aW9uID0gcGFpbnRPZmZzZXQ7CisgICAgZmlsbExvY2F0aW9uLm1vdmUoYm9yZGVy
TGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpOworICAg
IFJlZlB0cjxHcmFkaWVudD4gZyA9IEdyYWRpZW50OjpjcmVhdGUoZmlsbExvY2F0aW9uLCBGbG9h
dFBvaW50KGZpbGxMb2NhdGlvbi54KCksIGZpbGxMb2NhdGlvbi55KCkgKyBjSGVpZ2h0KSk7Cisg
ICAgZy0+YWRkQ29sb3JTdG9wKDAsICBDb2xvciguNWYsIC41LCAuNSwgLjcpKTsKKyAgICBnLT5h
ZGRDb2xvclN0b3AoLjIsIENvbG9yKC41NGYsIC41NCwgLjU0LCAuMykpOworICAgIGctPmFkZENv
bG9yU3RvcCguNiwgQ29sb3IoLjYyZiwgLjYyLCAuNjIsIC4zKSk7CisgICAgZy0+YWRkQ29sb3JT
dG9wKDEsICBDb2xvciguN2YsIC43LCAuNywgLjk1KSk7CisgICAgY29udGV4dC0+c2V0RmlsbEdy
YWRpZW50KGcucmVsZWFzZSgpKTsKKyAgICBjb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoZmls
bExvY2F0aW9uLCBMYXlvdXRTaXplKGNXaWR0aCwgY0hlaWdodCkpKTsKKworICAgIHN0YXRpYyBj
b25zdCBmbG9hdCBkaWFtZXRlciA9IDUwLCB0cmlhbmdsZVJhZGl1cyA9IDEyOworICAgIExheW91
dFBvaW50IGNlbnRlciA9IGZpbGxMb2NhdGlvbjsKKyAgICBjZW50ZXIubW92ZShjV2lkdGggLyAy
LCBjSGVpZ2h0IC8gMik7CisgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yKC40ZiwgLjQs
IC40LCAuNyksIENvbG9yU3BhY2VTUkdCKTsKKyAgICBjb250ZXh0LT5maWxsRWxsaXBzZShGbG9h
dFJlY3QoY2VudGVyLngoKSAtIGRpYW1ldGVyIC8gMiwgY2VudGVyLnkoKSAtIGRpYW1ldGVyIC8g
MiwgZGlhbWV0ZXIsIGRpYW1ldGVyKSk7CisgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9y
KDEuZiwgMS5mLCAxLmYsIC45ZiksIENvbG9yU3BhY2VTUkdCKTsKKyAgICBQYXRoIHA7CisgICAg
cC5tb3ZlVG8oRmxvYXRQb2ludChjZW50ZXIueCgpIC0gdHJpYW5nbGVSYWRpdXMgKiAzIC8gNCwg
Y2VudGVyLnkoKSAtIHRyaWFuZ2xlUmFkaXVzKSk7CisgICAgcC5hZGRMaW5lVG8oRmxvYXRQb2lu
dChjZW50ZXIueCgpICsgdHJpYW5nbGVSYWRpdXMgKiA1IC8gNCwgY2VudGVyLnkoKSkpOworICAg
IHAuYWRkTGluZVRvKEZsb2F0UG9pbnQoY2VudGVyLngoKSAtIHRyaWFuZ2xlUmFkaXVzICogMyAv
IDQsIGNlbnRlci55KCkgKyB0cmlhbmdsZVJhZGl1cykpOworICAgIHAuY2xvc2VTdWJwYXRoKCk7
CisgICAgY29udGV4dC0+ZmlsbFBhdGgocCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBs
dWdpbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z2lu
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjRkMDQ2NWYwYjY0YTQ2MDFhNmI3NjU0ZGNhZDk1MzVkNGZlZGEwZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdpbi5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlbmRl
clNuYXBzaG90dGVkUGx1Z2luX2gKKyNkZWZpbmUgUmVuZGVyU25hcHNob3R0ZWRQbHVnaW5faAor
CisjaW5jbHVkZSAiUmVuZGVyRW1iZWRkZWRPYmplY3QuaCIKKworI2luY2x1ZGUgIlJlbmRlcklt
YWdlUmVzb3VyY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OworCitjbGFzcyBSZW5kZXJTbmFwc2hvdHRlZFBsdWdpbiA6IHB1YmxpYyBS
ZW5kZXJFbWJlZGRlZE9iamVjdCB7CitwdWJsaWM6CisgICAgUmVuZGVyU25hcHNob3R0ZWRQbHVn
aW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCopOworICAgIHZpcnR1YWwgflJlbmRlclNuYXBzaG90
dGVkUGx1Z2luKCk7CisKKyAgICBSZW5kZXJJbWFnZVJlc291cmNlKiBzbmFwc2hvdFJlc291cmNl
KCkgeyByZXR1cm4gbV9zbmFwc2hvdFJlc291cmNlLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
SFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3Q7CisgICAg
dmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclNu
YXBzaG90dGVkUGx1Z2luIjsgfQorCisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBpc1NuYXBzaG90dGVkUGx1Z2luKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25z
dCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2Vk
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAgdm9pZCBwYWlu
dFJlcGxhY2VkUG9zdGVyKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CisgICAgdm9p
ZCBwYWludFJlcGxhY2VkT3ZlcmxheShQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwor
CisgICAgT3duUHRyPFJlbmRlckltYWdlUmVzb3VyY2U+IG1fc25hcHNob3RSZXNvdXJjZTsKK307
CisKK2lubGluZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdpbiogdG9SZW5kZXJTbmFwc2hvdHRlZFBs
dWdpbihSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmpl
Y3QtPmlzU25hcHNob3R0ZWRQbHVnaW4oKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRl
clNuYXBzaG90dGVkUGx1Z2luKj4ob2JqZWN0KTsKK30KKworLy8gVGhpcyB3aWxsIGNhdGNoIGFu
eW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgordm9pZCB0b1JlbmRlclNuYXBzaG90dGVk
UGx1Z2luKGNvbnN0IFJlbmRlclNuYXBzaG90dGVkUGx1Z2luKik7CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclNuYXBzaG90dGVkUGx1Z2luX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167595</attachid>
            <date>2012-10-08 13:19:01 -0700</date>
            <delta_ts>2012-10-08 14:05:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98322-20121008131804.patch</filename>
            <type>text/plain</type>
            <size>39814</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGEwN2M4YTY4ZWJkMmRi
MDU4OGIxMzE0ZjU2M2UyNDY4ZDI2NDA4YS4uNTJjYjJkNGFkMmRlMTY5YjRiM2YzOTEwN2ZlNWFj
YjBkZDQxNjU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDEyLTEwLTA4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcmVuZGVyIG9iamVjdCB0aGF0
IHBhaW50cyBwbHVnaW4gc25hcHNob3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05ODMyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI0MjY1NDY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3Qs
IHRlYWNoIHBsdWdpbnMgdG8gbWFpbnRhaW4gYSBzZXQgb2Ygc3RhdGVzIHdoZW4gcGx1Z2luIHNu
YXBzaG90dGluZyBpcyBlbmFibGVkLgorCisgICAgICAgIFNlY29uZCwgYSBuZXcgUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4gY2xhc3MgaXMgYSBSZW5kZXJFbWJlZGRlZE9iamVjdCB0aGF0IGtub3dz
IGhvdyB0byBwYWludAorICAgICAgICBzbmFwc2hvdHMgd2hlbiB0aGUgcGx1Z2luIGlzIG5vdCB2
aXNpYmx5IHBsYXlpbmcuIEl0IG1haW50YWlucyBhIFJlbmRlckltYWdlUmVzb3VyY2UgdG8KKyAg
ICAgICAgdGhlIGdlbmVyYXRlZCBwb3N0ZXIgaW1hZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpI
VE1MUGx1Z0luRWxlbWVudCk6IEJ5IGRlZmF1bHQgYWxsIHBsdWdpbnMgcGxheSBvbiBsb2FkLgor
ICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaDogTW92ZSB0aGUgaW5oZXJpdGFuY2Ug
b2YgSW1hZ2VMb2FkZXJDbGllbnRCYXNlIGRvd24gdG8KKyAgICAgICAgSFRNTFBsdWdJbkltYWdl
RWxlbWVudCwgc2luY2UgdGhhdCBpcyB0aGUgY2xhc3MgdGhhdCBhY3R1YWxseSBkZWFscyB3aXRo
IGltYWdlLWJhc2VkIHBsdWdpbnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVu
dDo6c2V0U25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OmRp
c3BsYXlTdGF0ZSk6IEFkZCBiaXQgZm9yIGRpc3BsYXkgc3RhdGUuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUGx1Z0luRWxlbWVudDo6c2V0RGlzcGxheVN0YXRlKToKKworICAgICAgICAqIGh0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50OjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KTogSWYgcGx1Z2luIHNuYXBzaG90
dGluZyBpcworICAgICAgICBlbmFibGVkLCBwbHVnaW4gc3RhdGUgaXMgc2V0IHRvIHdhaXQgZm9y
IGEgcG9zdGVyIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVu
dDo6Y3JlYXRlUmVuZGVyZXIpOiBDcmVhdGUgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gaWYKKyAg
ICAgICAgcGx1Z2luIHNuYXBzaG90dGluZyBpcyBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6c2V0U25hcHNob3QpOiBPbmNlIGEgcG9zdGVyIGltYWdl
IGlzIGF2YWlsYWJsZSwgc2V0CisgICAgICAgIHRoZSBzbmFwc2hvdCwgcmVwYWludCwgYW5kIHNl
dCBpdHMgc3RhdGUgdG8gd2FpdCBmb3IgdXNlciBpbnB1dCB0byBzdGFydCB0aGUgcGx1Z2luLgor
ICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oOgorICAgICAgICAoSFRNTFBs
dWdJbkltYWdlRWxlbWVudCk6CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzU25hcHNob3R0ZWRQbHVnSW4pOiBB
ZGQgbmV3IGZ1bmN0aW9uIHRvIGlkZW50aWZ5CisgICAgICAgIFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luIGluc3RhbmNlcy4gU2luY2UgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gaW5oZXJpdHMgZnJv
bQorICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCwgaXNFbWJlZGRlZE9iamVjdCgpIHN0aWxs
IHJldHVybnMgdHJ1ZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
aDoKKyAgICAgICAgKFJlbmRlckVtYmVkZGVkT2JqZWN0KTogRWxldmF0ZSBhIGZldyB2aXJ0dWFs
IG1ldGhvZHMgdG8gcHJvdGVjdGVkIGZvcgorICAgICAgICBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
biB0byBvdmVycmlkZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVn
SW46OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luKTogSW5pdGlhbGl6ZSBzbmFwc2hvdAorICAgICAg
ICByZXNvdXJjZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp+
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBTaHV0IGRvd24gc25hcHNob3QKKyAgICAgICAgaW1h
Z2UgcmVzb3VyY2UgdG8gcmVtb3ZlIHRoZSByZW5kZXJlciBhcyBhIGNsaWVudCwgYW5kIHJlbW92
ZSBpbWFnZSBmcm9tIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjpwbHVnSW5JbWFnZUVsZW1lbnQpOiBDb252ZW5pZW5jZSBmdW5jdGlvbiB0
byBnZXQgdGhlCisgICAgICAgIEhUTUwgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjpsYXlvdXQpOiBTaW1pbGFyIHRvIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0OjpsYXlvdXQoKSwKKyAgICAgICAgZXhjZXB0IHRoYXQgd2UgdHJlYXQgb3Vyc2VsdmVzIGFz
IGEgbm9ybWFsIFJlbmRlckJveCBvYmplY3QgdG8gcGFpbnQgdGhlIHBvc3RlciBhbmQKKyAgICAg
ICAgb3ZlcmxheSB3aGVuIHRoZSBwbHVnaW4gaXMgbm90IHBsYXlpbmcuIFdlIHN0aWxsIHJlZ2lz
dGVyIHRoZSB3aWRnZXQgZm9yIHVwZGF0ZSBjYWxscywKKyAgICAgICAgc2luY2UgdGhlIHBsdWdp
biBuZWVkcyB0byBydW4gb2ZmLXNjcmVlbiBpbiBvcmRlciB0byBvYnRhaW4gdGhlIHNuYXBzaG90
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50KTogSWYg
dGhlIHBsdWdpbiBpcyBub3QgcGxheWluZywgcGFpbnQgbGlrZSBhCisgICAgICAgIFJlbmRlcklt
YWdlIGRvZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFp
bnRSZXBsYWNlZCk6IFBhaW50IHRoZSBzbmFwc2hvdCBhbmQgb3ZlcmxheSBpZiB0aGUKKyAgICAg
ICAgcGx1Z2luIGlzIG5vdCBwbGF5aW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OnBhaW50UmVwbGFjZWRQb3N0ZXIpOiBJbnNwaXJlZCBieQorICAgICAgICBS
ZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZCgpIGFuZCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVj
dCgpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OmlzU25hcHNo
b3R0ZWRQbHVnaW4pOiBSZXR1cm5zIHRydWUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbjo6c25hcHNob3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbjo6cmVuZGVyTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjp0b1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luKToKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZS5oOiBBZGQgYSBmdW5jdGlvbiB0aGF0IHBhaW50cyB0aGUgb3ZlcmxheSBvbiB0b3Agb2YgdGhl
IHNuYXBzaG90LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lTWFjOjpwYWludFBsdWdJblNuYXBzaG90T3ZlcmxheSk6CisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBuZXcgUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4gY2xhc3MuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IERpdHRvLgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRv
LgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJpbmdB
bGxJbk9uZS5jcHA6IERpdHRvLgorCiAyMDEyLTEwLTA3ICBBcnBpdGEgQmFodWd1bmEgIDxhcnBp
dGFiYWh1Z3VuYUBnbWFpbC5jb20+CiAKICAgICAgICAgOmZpcnN0LWxpbmUgcHNldWRvIHNlbGVj
dG9yIGlnbm9yaW5nIHdvcmRzIGNyZWF0ZWQgZnJvbSA6YmVmb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDJkMmM5M2U4MTM1Yjc3ZDVkMGQ0ZmM2YTk3ZGMzMDFiNTVkMWEyOTkuLmVmNTVjNGZj
MzQ1MjBiNTdmZjk1Njc1ZjgyYTk2MTk0M2ZmZGUzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0yMTE2LDYgKzIxMTYsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclNjcm9sbGJhclRoZW1lLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5j
cHAKICAgICByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAorICAgIHJlbmRlcmluZy9SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbi5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCiAgICAg
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZDdhNGVkZTIxOWYz
NTQ4OTc1ZmI4NDFmNTI2OTUwYzRhNTM1ODczZC4uM2I5Njc3Y2EyMmI3MGY3YmFhZjc2NzdlMjlj
YjE0MjU3YmQ0MmFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01MDgyLDYg
KzUwODIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTZWxlY3Rpb25JbmZvLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgg
XAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAwNzhi
NjlhYTI3MzQ0NjAwMDQ0YjkwMmNjYTU1ZDMxZjdlZWYxMjU1Li5jNjVlZjYwZDYzMGQ5NmM5ZjA5
ZjY3MjZkMzNmZTZhYTA1MDJlMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTExODMsNiArMTE4Myw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVtZS5jcHAgXAog
ICAgIHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwIFwKKyAgICByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3Bw
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVy
VGFibGVDYXB0aW9uLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgXApA
QCAtMjM4MSw2ICsyMzgyLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclNj
cm9sbGJhclRoZW1lLmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5oIFwKICAg
ICByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggXAorICAgIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmggXAogICAg
IHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q29sLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQxMjFiN2QxMGIwOGJiODY0MGVkOTIyNjhhMGM0
MzRjY2YxMjRlYjMuLmNiYmMzMmZjMjQxMjQyZjczNDRiYTg0MTg0YjVmNjE1Y2FlNGMxYjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTM0MzAsNiArMzQzMCw4IEBACiAgICAgICAgICAgICAncmVuZGVy
aW5nL1JlbmRlclNlbGVjdGlvbkluZm8uaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRl
clNsaWRlci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCcsCisg
ICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCcsCisgICAg
ICAgICAgICAncmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9u
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IGVmMmFhZjA1MTk5ZDFhMTlhMmQ0MzU4ZWE4ZjhkOWVlMzZiYWU5OTIuLjc5Yjk5MjZhMmI5
ODk0OTYxYmE0ODVhOWY3YWYwMTlmNDk0YTYwZjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00MjE1OSw2ICs0MjE1OSw2MiBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccmVuZGVyaW5nXHN2Z1xSZW5kZXJTVkdBbGxJbk9uZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGNiN2JkNjUxMGU4YzYyMzM4MzYxZjUxOTU3N2RlNDE0MjkyMGE0ZWQuLjkzNjg0ODc0
NGJmNzQ2OTU1ZmUwN2EzNTJiZDNhNjMzMzJmYTJlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkwOSw2ICs5MDksOCBAQAog
CQkzMTk0NjIwNDEzMDIyQkYxMDA0QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYyMDIxMzAy
MkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QuaCAqLzsgfTsKIAkJMzE5NDYy
MDUxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjIwMzEzMDIyQkYxMDA0
QkIzRjggLyogRE9NV2ViS2l0QW5pbWF0aW9uTGlzdC5tbSAqLzsgfTsKIAkJMzE5NDYyMzIxMzAy
MkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk0NjIzMTEzMDIyRjY1MDA0
QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCAqLzsgfTsKKwkJMzE5NTVB
ODYxNjBEMTk5MDAwODU4MDI1IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRThEOEJBMTYwQkM5NEIw
MDRDRThGNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgKi87IH07CisJCTMxOTU1QTg4
MTYwRDE5OTIwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFFOEQ4QkIxNjBCQzk0QzAwNENF
OEY1IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE5QUUwNjMxNDJENkIyNDAwNjU2M0ExIC8qIFN0
eWxlRmlsdGVyRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTlBRTA2MTE0MkQ2QjI0MDA2NTYzQTEgLyogU3R5bGVGaWx0ZXJEYXRhLmNwcCAq
LzsgfTsKIAkJMzE5QUUwNjQxNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5QUUwNjIxNDJE
NkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxOUU2ODg3MTMyN0M5MTEwMDRBQzkxQSAvKiBK
U1dlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTlFNjg4NjEzMjdDOTExMDA0QUM5MUEgLyogSlNXZWJLaXRBbmlt
YXRpb25DdXN0b20uY3BwICovOyB9OwpAQCAtNzgxOCw3ICs3ODIwLDcgQEAKIAkJMjk4MUNBQTIx
MzE4MjJFQzAwRDEyRjJBIC8qIEFjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFjY2Vzc2liaWxpdHlMaXN0Qm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjk4MUNBQTMxMzE4MjJFQzAwRDEyRjJBIC8qIEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk4MUNBQTQxMzE4MjJFQzAwRDEyRjJB
IC8qIEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFj
Y2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMjk4MUNBQTUxMzE4MjJFQzAwRDEyRjJBIC8qIEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTI5ODFDQUE1MTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBBY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmlj
YXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CiAJCTI5ODFDQUE2MTMxODIyRUMw
MEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyOTgxQ0FBNzEzMTgyMkVDMDBEMTJGMkEgLyogQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjk4MUNBQTgxMzE4MjJFQzAwRDEyRjJBIC8qIEFj
Y2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwMzgsNiAr
ODA0MCw4IEBACiAJCTMxQzBGRjQ2MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjQ3MEU0
Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxQzBGRjQ4MEU0Q0VGREQwMDdENkZFNSAv
KiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMUU4RDhCQTE2MEJDOTRCMDA0Q0U4RjUgLyogUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMUU4RDhCQjE2MEJDOTRDMDA0Q0U4RjUgLyogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFQzFENTAxNEZFRkQwODAwQzk0
NjYyIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmlkbDsgcGF0aCA9IE1vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUVDMURBQzE0RkYyNkVBMDBDOTQ2NjIgLyogTm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjay5oOyBwYXRoID0gTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMUVDMUUyNjE0RkY2MEVFMDBDOTQ2NjIgLyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTEyNTgsNyArMTEyNjIsNyBAQAogCQlBODE4NzIxMDA5NzdEM0MwMDA1ODI2RDkgLyogTm9k
ZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vZGVMaXN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MTg3MjExMDk3N0QzQzAwMDU4MjZEOSAvKiBD
b250YWluZXJOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250YWlu
ZXJOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MTg3MjEzMDk3N0QzQzAw
MDU4MjZEOSAvKiBOYW1lTm9kZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5hbWVOb2RlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODE4NzIx
NDA5NzdEM0MwMDA1ODI2RDkgLyogQ29udGFpbmVyTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250YWluZXJOb2RlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgxODcyMTQwOTc3RDNDMDAwNTgyNkQ5IC8q
IENvbnRhaW5lck5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IENvbnRhaW5lck5vZGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4
Y29kZS5sYW5nLmNwcDsgfTsKIAkJQTgxODcyMTUwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxkTm9k
ZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxkTm9kZUxpc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgxODcyMTgwOTc3RDNDMDAwNTgyNkQ5
IC8qIE5hbWVkTm9kZU1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmFt
ZWROb2RlTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MTg3MjE5MDk3N0Qz
QzAwMDU4MjZEOSAvKiBOYW1lTm9kZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE5hbWVOb2RlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMjgwNSw3ICsxMjgwOSw3IEBACiAJCUJDNzREQTQ3MTAxM0Y0NjgwMDc5ODdBRCAvKiBK
U1JHQkNvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUkdCQ29sb3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NkFDMTEwREQ3QUQ1QzAwNDE1RjM0
IC8qIFBhcnNlclV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXJzZXJVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM3NzJCMzYw
QzRFQTkxRTAwODMyODVGIC8qIENTU0hlbHBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ1NTSGVscGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDNzcy
QjM3MEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENTU1BhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDNzcyQjM3MEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NQYXJzZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBDU1NQYXJzZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50
aWZpZXIgPSB4Y29kZS5sYW5nLmNwcDsgfTsKIAkJQkM3NzJCMzgwQzRFQTkxRTAwODMyODVGIC8q
IENTU1BhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUGFyc2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzcyQzQ0MEM0RUIyQzYwMDgzMjg1
RiAvKiBYTUxIdHRwUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gWE1MSHR0cFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Qzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMTQ4Myw2ICsyMTQ4Nyw4IEBACiAJCQkJMEYxMUE1NEUwRjM5MjMzMTAw
QzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLywKIAkJCQlBQjI0N0E2QTBBRkQ2Mzgz
MDAzRkE1RkQgLyogUmVuZGVyU2xpZGVyLmNwcCAqLywKIAkJCQlBQjI0N0E2QjBBRkQ2MzgzMDAz
RkE1RkQgLyogUmVuZGVyU2xpZGVyLmggKi8sCisJCQkJMzFFOEQ4QkExNjBCQzk0QjAwNENFOEY1
IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCAqLywKKwkJCQkzMUU4RDhCQjE2MEJDOTRD
MDA0Q0U4RjUgLyogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCAqLywKIAkJCQlBOERGNEFFMjA5
ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGUuY3BwICovLAogCQkJCUE4REY0QUUxMDk4MEM0
MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZS5oICovLAogCQkJCTZFRDg3OEMyMTQ3NDkzRjQwMDRD
MzU5NyAvKiBSZW5kZXJUYWJsZUNhcHRpb24uY3BwICovLApAQCAtMjU1MzcsNiArMjU1NDMsNyBA
QAogCQkJCTkzMUNCRDBEMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZU5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzMUNCRDBGMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdT
dGF0ZVNjcm9sbGluZ05vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMUNCRDExMTYxQTQ0RTkw
MEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVRyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxOTU1
QTg4MTYwRDE5OTIwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0yODYzNCw2ICsyODY0MSw3IEBACiAJCQkJOTMxQ0JEMEUxNjFBNDRFOTAwRTRD
ODc0IC8qIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5MzFDQkQxMDE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzMUNCRDEzMTYxQTQ0RjgwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0
ZU5vZGVNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMTk1NUE4NjE2MEQxOTkwMDA4NTgwMjUg
LyogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCmluZGV4IDFiNTg0MzQ4MzhlZjRjYjBkNjc3
MGUyMjAyNGM4M2Y0N2I2YTY5ZGMuLmM2ZTUyY2EwZGYzNDNkYWJjNGNiMGQ1OWE0YTQ2N2RlMWU2
NDc1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCkBAIC01
NSw2ICs1NSw3IEBAIEhUTUxQbHVnSW5FbGVtZW50OjpIVE1MUGx1Z0luRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jCiAgICAgLCBtX05QT2JqZWN0KDAp
CiAjZW5kaWYKICAgICAsIG1faXNDYXB0dXJpbmdNb3VzZUV2ZW50cyhmYWxzZSkKKyAgICAsIG1f
ZGlzcGxheVN0YXRlKFBsYXlpbmcpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkVsZW1lbnQuaAppbmRleCBlZWVjNjBjYjU4NmY3ZDEyYjVjZjA3NjUzZjBmN2EzMjU0MTE4YzAz
Li4xNDJmMzU3MThjNmI0ZGE1OTI4MzgyZDY2YmEyYWE1YmUwZmMwOWZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTMzLDExICszMywxMiBAQCBzdHJ1Y3QgTlBPYmplY3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgSW1hZ2U7CiBjbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKIGNsYXNzIFJlbmRl
cldpZGdldDsKIGNsYXNzIFdpZGdldDsKIAotY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQgOiBwdWJs
aWMgSFRNTEZyYW1lT3duZXJFbGVtZW50LCBwdWJsaWMgSW1hZ2VMb2FkZXJDbGllbnRCYXNlPEhU
TUxQbHVnSW5FbGVtZW50PiB7CitjbGFzcyBIVE1MUGx1Z0luRWxlbWVudCA6IHB1YmxpYyBIVE1M
RnJhbWVPd25lckVsZW1lbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkhUTUxQbHVnSW5FbGVt
ZW50KCk7CiAKQEAgLTQ3LDYgKzQ4LDE2IEBAIHB1YmxpYzoKIAogICAgIFdpZGdldCogcGx1Z2lu
V2lkZ2V0KCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U25hcHNob3QoSW1hZ2UqKSB7
IH0KKworICAgIGVudW0gRGlzcGxheVN0YXRlIHsKKyAgICAgICAgV2FpdGluZ0ZvclNuYXBzaG90
LAorICAgICAgICBEaXNwbGF5aW5nU25hcHNob3QsCisgICAgICAgIFBsYXlpbmcKKyAgICB9Owor
ICAgIERpc3BsYXlTdGF0ZSBkaXNwbGF5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlT
dGF0ZTsgfQorICAgIHZvaWQgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSBzdGF0ZSkgeyBt
X2Rpc3BsYXlTdGF0ZSA9IHN0YXRlOyB9CisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKICAgICBOUE9iamVjdCogZ2V0TlBPYmplY3QoKTsKICNlbmRpZgpAQCAtODQsNiArOTUsOCBA
QCBwcml2YXRlOgogICAgIE5QT2JqZWN0KiBtX05QT2JqZWN0OwogI2VuZGlmCiAgICAgYm9vbCBt
X2lzQ2FwdHVyaW5nTW91c2VFdmVudHM7CisKKyAgICBEaXNwbGF5U3RhdGUgbV9kaXNwbGF5U3Rh
dGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCA0OTExNjZlM2U4YzlkODBiOTcyZjA4
MWQ2ZmI4OTc5MGE0OGQ0OWUxLi45ZmRiZWQxZmVkZjc1Mzc4MTg4YzVhOTU1Y2M0OTY4NDBlNjg4
OTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMSwg
MjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTMxLDcgKzMxLDkgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRW1i
ZWRkZWRPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUgIlJlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDcsNiArNDksOSBAQCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAg
ICwgbV9uZWVkc0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcyhmYWxzZSkKIHsKICAgICBzZXRI
YXNDdXN0b21DYWxsYmFja3MoKTsKKworICAgIGlmIChkb2N1bWVudC0+cGFnZSgpICYmIGRvY3Vt
ZW50LT5wYWdlKCktPnNldHRpbmdzKCktPnBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQoKSkKKyAg
ICAgICAgc2V0RGlzcGxheVN0YXRlKFdhaXRpbmdGb3JTbmFwc2hvdCk7CiB9CiAKIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6On5IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KCkKQEAgLTE0MSw2ICsxNDYs
OSBAQCBSZW5kZXJPYmplY3QqIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyUwogICAgICAgICBpbWFnZS0+c2V0SW1hZ2VSZXNv
dXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVhdGUoKSk7CiAgICAgICAgIHJldHVybiBpbWFn
ZTsKICAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgpICYmIGRvY3VtZW50KCktPnBh
Z2UoKS0+c2V0dGluZ3MoKS0+cGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4odGhpcyk7CiAgICAgcmV0
dXJuIG5ldyAoYXJlbmEpIFJlbmRlckVtYmVkZGVkT2JqZWN0KHRoaXMpOwogfQogCkBAIC0yNTMs
NCArMjYxLDE3IEBAIHZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlV2lkZ2V0Q2Fs
bGJhY2soTm9kZSogbiwgdW5zaWduZWQpCiAgICAgc3RhdGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdl
RWxlbWVudCo+KG4pLT51cGRhdGVXaWRnZXRJZk5lY2Vzc2FyeSgpOwogfQogCit2b2lkIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OnNldFNuYXBzaG90KEltYWdlKiBpbWFnZSkKK3sKKyAgICBpZiAo
ZGlzcGxheVN0YXRlKCkgPiBXYWl0aW5nRm9yU25hcHNob3QgfHwgIXJlbmRlcmVyKCktPmlzU25h
cHNob3R0ZWRQbHVnSW4oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gWmVyby1zaXplIHBs
dWdpbnMgd2lsbCBoYXZlIG5vIGltYWdlLgorICAgIGlmIChpbWFnZSkgeworICAgICAgICB0b1Jl
bmRlclNuYXBzaG90dGVkUGx1Z0luKHJlbmRlcmVyKCkpLT5zbmFwc2hvdFJlc291cmNlKCktPnNl
dENhY2hlZEltYWdlKG5ldyBDYWNoZWRJbWFnZShpbWFnZSkpOworICAgICAgICByZW5kZXJlcigp
LT5yZXBhaW50KCk7CisgICAgfQorICAgIHNldERpc3BsYXlTdGF0ZShEaXNwbGF5aW5nU25hcHNo
b3QpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCmluZGV4IDE2OGVkNDYzNDM0ZmRiNzNkNzI3OTUxZDA3
Yjk0MTAxYmI5ZTA2MDUuLjU2MjZmMzEyMjEzMDE0OGVhNDRkNDEzZjAyNGJmYjRlYjFlNTdlZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDksIDIw
MTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC00Miw3ICs0Miw3IEBAIGVudW0gUHJlZmVyUGx1Z0luc0ZvckltYWdlc09wdGlvbiB7
CiB9OwogCiAvLyBCYXNlIGNsYXNzIGZvciBIVE1MT2JqZWN0RWxlbWVudCBhbmQgSFRNTEVtYmVk
RWxlbWVudAotY2xhc3MgSFRNTFBsdWdJbkltYWdlRWxlbWVudCA6IHB1YmxpYyBIVE1MUGx1Z0lu
RWxlbWVudCB7CitjbGFzcyBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50IDogcHVibGljIEhUTUxQbHVn
SW5FbGVtZW50LCBwdWJsaWMgSW1hZ2VMb2FkZXJDbGllbnRCYXNlPEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KCk7
CiAKQEAgLTkwLDYgKzkwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVdpZGdldElmTmVj
ZXNzYXJ5KCk7CiAgICAgdmlydHVhbCBib29sIHVzZUZhbGxiYWNrQ29udGVudCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgCisgICAgdmlydHVhbCB2b2lkIHNldFNuYXBzaG90KEltYWdl
KikgT1ZFUlJJREU7CisKICAgICBib29sIG1fbmVlZHNXaWRnZXRVcGRhdGU7CiAgICAgYm9vbCBt
X3Nob3VsZFByZWZlclBsdWdJbnNGb3JJbWFnZXM7CiAgICAgYm9vbCBtX25lZWRzRG9jdW1lbnRB
Y3RpdmF0aW9uQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuaAppbmRleCAzZjMxOGIxNjc3ZjYwYjM1ZGM4OTcxNmFhMDNiN2ZlNTg2
NzMxZTBjLi45NWQxMzE3NTYyMmQ5MGJlMTM5NDBjZDAyYWZiMmM5MDdjZWM1YmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaApAQCAtMSw3
ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBTaW1vbiBIYXVzbWFubiA8aGF1c21hbm5Aa2Rl
Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCwgMjAwOSwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01NiwxNCArNTYsMTYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3Q7
CiAjZW5kaWYKIAotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCB7IHJldHVybiAiUmVuZGVyRW1iZWRkZWRPYmplY3QiOyB9Ci0gICAgdmlydHVhbCBi
b29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KK3Byb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlv
dXRQb2ludCYpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlv
dXRQb2ludCYpOworCiAgICAgdmlydHVhbCBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0
IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3Q7CiAKK3ByaXZhdGU6CisgICAgdmlydHVhbCBj
b25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckVtYmVkZGVkT2Jq
ZWN0IjsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VtYmVkZGVkT2JqZWN0KCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAwYTcwNTc1MGY3YzY1NzViYWMzYTcxOGVhMWJlOWE4
YjNjNDI2NDRmLi4zZDc4NDg0MDM1M2U1OWMxZGI5MGQ1MjQ0MjNmMDFhZDFlMzY4MDIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0zLDcgKzMsNyBAQAogICog
ICAgICAgICAgIChDKSAyMDAwIEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAyMDA0IEFsbGFuIFNhbmRmZWxkIEplbnNlbiAoa2RlQGNhcmV3b2xmLmNvbSkK
LSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAw
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMs
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzM3LDYgKzMzNyw3IEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKICAgICB2aXJ0dWFsIGJvb2wgaXNNZXRlcigpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKKyAgICB2aXJ0dWFsIGJvb2wgaXNTbmFwc2hv
dHRlZFBsdWdJbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgRU5BQkxFKFBST0dSRVNT
X0VMRU1FTlQpCiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTBjYzJlMWEwNzkyZjA3ODYzNDIz
M2M1MDMzZjlhMzM0MDZmM2I4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5oIgorCisjaW5jbHVkZSAiQ3Vyc29yLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
CisjaW5jbHVkZSAiR3JhZGllbnQuaCIKKyNpbmNsdWRlICJIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
LmgiCisjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCisjaW5jbHVkZSAiUGF0aC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBlbGVtZW50KQorICAgIDogUmVuZGVyRW1i
ZWRkZWRPYmplY3QoZWxlbWVudCkKKyAgICAsIG1fc25hcHNob3RSZXNvdXJjZShSZW5kZXJJbWFn
ZVJlc291cmNlOjpjcmVhdGUoKSkKK3sKKyAgICBtX3NuYXBzaG90UmVzb3VyY2UtPmluaXRpYWxp
emUodGhpcyk7Cit9CisKK1JlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp+UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4oKQoreworICAgIEFTU0VSVChtX3NuYXBzaG90UmVzb3VyY2UpOworICAgIG1fc25h
cHNob3RSZXNvdXJjZS0+c2h1dGRvd24oKTsKK30KKworSFRNTFBsdWdJbkltYWdlRWxlbWVudCog
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBsdWdJbkltYWdlRWxlbWVudCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihub2RlKCkpOwor
fQorCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpsYXlvdXQoKQoreworICAgIEFTU0VS
VChuZWVkc0xheW91dCgpKTsKKworICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOworICAgIHVwZGF0
ZUxvZ2ljYWxIZWlnaHQoKTsKKworICAgIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxh
eVN0YXRlKCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykKKyAgICAgICAgUmVuZGVyQm94
OjpsYXlvdXQoKTsKKyAgICBlbHNlCisgICAgICAgIFJlbmRlclBhcnQ6OmxheW91dCgpOworCisg
ICAgbV9vdmVyZmxvdy5jbGVhcigpOworICAgIGFkZFZpc3VhbEVmZmVjdE92ZXJmbG93KCk7CisK
KyAgICB1cGRhdGVMYXllclRyYW5zZm9ybSgpOworCisgICAgaWYgKCF3aWRnZXQoKSAmJiBmcmFt
ZVZpZXcoKSkKKyAgICAgICAgZnJhbWVWaWV3KCktPmFkZFdpZGdldFRvVXBkYXRlKHRoaXMpOwor
CisgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOworfQorCit2b2lkIFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2Zmc2V0KQoreworICAgIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxheVN0YXRl
KCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykgeworICAgICAgICBSZW5kZXJSZXBsYWNl
ZDo6cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNl
dCk7Cit9CisKK3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50UmVwbGFjZWQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKK3sKKyAg
ICBpZiAocGx1Z0luSW1hZ2VFbGVtZW50KCktPmRpc3BsYXlTdGF0ZSgpIDwgSFRNTFBsdWdJbkVs
ZW1lbnQ6OlBsYXlpbmcpIHsKKyAgICAgICAgcGFpbnRSZXBsYWNlZFBvc3RlcihwYWludEluZm8s
IHBhaW50T2Zmc2V0KTsKKyAgICAgICAgdGhlbWUoKS0+cGFpbnRQbHVnSW5TbmFwc2hvdE92ZXJs
YXkodGhpcywgcGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRSZXBsYWNlZChwYWludEluZm8sIHBh
aW50T2Zmc2V0KTsKK30KKwordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRSZXBs
YWNlZFBvc3RlcihQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50
T2Zmc2V0KQoreworICAgIC8vIFRoaXMgY29kZSBzaG91bGQgYmUgc2ltaWxhciB0byBSZW5kZXJJ
bWFnZTo6cGFpbnRSZXBsYWNlZCgpIGFuZCBSZW5kZXJJbWFnZTo6cGFpbnRJbnRvUmVjdCgpLgor
ICAgIExheW91dFVuaXQgY1dpZHRoID0gY29udGVudFdpZHRoKCk7CisgICAgTGF5b3V0VW5pdCBj
SGVpZ2h0ID0gY29udGVudEhlaWdodCgpOworICAgIGlmICghY1dpZHRoIHx8ICFjSGVpZ2h0KQor
ICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9zbmFwc2hvdFJl
c291cmNlLT5pbWFnZSgpOworICAgIGlmICghaW1hZ2UgfHwgaW1hZ2UtPmlzTnVsbCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8u
Y29udGV4dDsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKHN0eWxlKCktPmhpZ2hsaWdodCgp
ICE9IG51bGxBdG9tICYmICFjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHBh
aW50Q3VzdG9tSGlnaGxpZ2h0KHRvUG9pbnQocGFpbnRPZmZzZXQgLSBsb2NhdGlvbigpKSwgc3R5
bGUoKS0+aGlnaGxpZ2h0KCksIHRydWUpOworI2VuZGlmCisKKyAgICBMYXlvdXRTaXplIGNvbnRl
bnRTaXplKGNXaWR0aCwgY0hlaWdodCk7CisgICAgTGF5b3V0UG9pbnQgY29udGVudExvY2F0aW9u
ID0gcGFpbnRPZmZzZXQ7CisgICAgY29udGVudExvY2F0aW9uLm1vdmUoYm9yZGVyTGVmdCgpICsg
cGFkZGluZ0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpOworCisgICAgTGF5b3V0
UmVjdCByZWN0KGNvbnRlbnRMb2NhdGlvbiwgY29udGVudFNpemUpOworICAgIEludFJlY3QgYWxp
Z25lZFJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlY3QpOworICAgIGlmIChhbGlnbmVkUmVj
dC53aWR0aCgpIDw9IDAgfHwgYWxpZ25lZFJlY3QuaGVpZ2h0KCkgPD0gMCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRMb3dR
dWFsaXR5KGNvbnRleHQsIGltYWdlLmdldCgpLCBpbWFnZS5nZXQoKSwgYWxpZ25lZFJlY3Quc2l6
ZSgpKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCktPmNvbG9y
U3BhY2UoKSwgYWxpZ25lZFJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzBhMWM0ZjZlZjRhMTBmMWVjZTY5NzI3NmUy
ZTdmMTA4MGQ0Y2MxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW5faAorI2RlZmluZSBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbl9oCisKKyNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgorCisjaW5j
bHVkZSAiUmVuZGVySW1hZ2VSZXNvdXJjZS5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFBsdWdJbkltYWdlRWxlbWVudDsKKwor
Y2xhc3MgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gOiBwdWJsaWMgUmVuZGVyRW1iZWRkZWRPYmpl
Y3QgeworcHVibGljOgorICAgIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbigpOworCisg
ICAgUmVuZGVySW1hZ2VSZXNvdXJjZSogc25hcHNob3RSZXNvdXJjZSgpIHsgcmV0dXJuIG1fc25h
cHNob3RSZXNvdXJjZS5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQqIHBsdWdJbkltYWdlRWxlbWVudCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiI7
IH0KKworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNTbmFwc2hvdHRlZFBsdWdJbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25z
dCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOworICAgIHZvaWQgcGFpbnRSZXBsYWNlZFBvc3RlcihQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOworCisgICAgT3duUHRyPFJlbmRlckltYWdl
UmVzb3VyY2U+IG1fc25hcHNob3RSZXNvdXJjZTsKK307CisKK2lubGluZSBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbiogdG9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihSZW5kZXJPYmplY3QqIG9iamVj
dCkKK3sKKyAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzU25hcHNob3R0ZWRQbHVnSW4o
KSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKj4ob2Jq
ZWN0KTsKK30KKworLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2Fy
eSBjYXN0Lgordm9pZCB0b1JlbmRlclNuYXBzaG90dGVkUGx1Z0luKGNvbnN0IFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luKik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJl
bmRlclNuYXBzaG90dGVkUGx1Z0luX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgKaW5kZXggMzZlNDlmMjZjZGJjYWU4ZGNkZTk2MTcxNjUwMGMwZGJiNGJlMDVkNC4uYTYzNzQ1
YTE2OTcwMDg4NmRjYmJkOTU4YWRjZmU3NzQyNDNiYTdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmgKQEAgLTM1LDYgKzM1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBDU1NTdHlsZVNoZWV0OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZpbGVMaXN0
OwogY2xhc3MgSFRNTElucHV0RWxlbWVudDsKQEAgLTQ2LDcgKzQ3LDcgQEAgY2xhc3MgUmVuZGVy
TWV0ZXI7CiAjaWYgRU5BQkxFKFBST0dSRVNTX0VMRU1FTlQpCiBjbGFzcyBSZW5kZXJQcm9ncmVz
czsKICNlbmRpZgotY2xhc3MgQ1NTU3R5bGVTaGVldDsKK2NsYXNzIFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luOwogCiBjbGFzcyBSZW5kZXJUaGVtZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlbmRlclRo
ZW1lPiB7CiBwcm90ZWN0ZWQ6CkBAIC0yNDEsNiArMjQyLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgU3RyaW5nIGZpbGVMaXN0RGVmYXVsdExhYmVsKGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQp
IGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IEZp
bGVMaXN0KiwgY29uc3QgRm9udCYsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dl
ZCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRQbHVnSW5TbmFwc2hvdE92ZXJsYXko
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4qLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpIGNvbnN0IHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhlIHBsYXRmb3JtIHNlbGVj
dGlvbiBjb2xvci4KICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5oCmluZGV4IDdhZDQ5YmQzNDc4ODViNTg0MDJiNzhlMmZmNTMyZDdiNzZjMTEzMzkuLjMy
ODg0NzFhZGVkNDA1MjlmNjJjMDU0N2ZhZjI2ODY0MDViNzllYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCB1c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcigpIGNvbnN0OwogICAg
IC8vIEEgdmlldyBhc3NvY2lhdGVkIHRvIHRoZSBjb250YWluZWQgZG9jdW1lbnQuIFN1YmNsYXNz
ZXMgbWF5IG5vdCBoYXZlIHN1Y2ggYSB2aWV3IGFuZCByZXR1cm4gYSBmYWtlLgogICAgIHZpcnR1
YWwgTlNWaWV3KiBkb2N1bWVudFZpZXdGb3IoUmVuZGVyT2JqZWN0KikgY29uc3Q7CisKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRQbHVnSW5TbmFwc2hvdE92ZXJsYXkoUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4qLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0IE9WRVJS
SURFOworCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyVGhlbWVNYWMoKTsKICAgICB2aXJ0dWFsIH5S
ZW5kZXJUaGVtZU1hYygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCmluZGV4IGE5MGIzOGVhZTkxN2E3OWUyYjA2ODhhYzBkNDQxNjZjNThkZDNiZmEuLmUwODM3
ZmRjNWQ0MTE4NjVlMjMxZDhlYmU0ZjJhMjU2N2E1NDZlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIlJl
bmRlck1lZGlhLmgiCiAjaW1wb3J0ICJSZW5kZXJNZWRpYUNvbnRyb2xzLmgiCiAjaW1wb3J0ICJS
ZW5kZXJTbGlkZXIuaCIKKyNpbXBvcnQgIlJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgiCiAjaW1w
b3J0ICJSZW5kZXJWaWV3LmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlN0
cmluZ1RydW5jYXRvci5oIgpAQCAtMjIzMiw0ICsyMjMzLDQzIEBAIFN0cmluZyBSZW5kZXJUaGVt
ZU1hYzo6ZmlsZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgRmlsZUxpc3QqIGZpbGVMaXN0LCBjb25z
dCBGb250CiAgICAgcmV0dXJuIFN0cmluZ1RydW5jYXRvcjo6Y2VudGVyVHJ1bmNhdGUoc3RyVG9U
cnVuY2F0ZSwgd2lkdGgsIGZvbnQsIFN0cmluZ1RydW5jYXRvcjo6RW5hYmxlUm91bmRpbmdIYWNr
cyk7CiB9CiAKK3ZvaWQgUmVuZGVyVGhlbWVNYWM6OnBhaW50UGx1Z0luU25hcHNob3RPdmVybGF5
KFJlbmRlclNuYXBzaG90dGVkUGx1Z0luKiByZW5kZXJlciwgY29uc3QgUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkgY29uc3QKK3sKKyAgICBMYXlv
dXRVbml0IGNXaWR0aCA9IHJlbmRlcmVyLT5jb250ZW50V2lkdGgoKTsKKyAgICBMYXlvdXRVbml0
IGNIZWlnaHQgPSByZW5kZXJlci0+Y29udGVudEhlaWdodCgpOworICAgIGlmICghY1dpZHRoIHx8
ICFjSGVpZ2h0KQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQgPSBwYWludEluZm8uY29udGV4dDsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHNh
dmVyKCpjb250ZXh0KTsKKworICAgIExheW91dFNpemUgYm9yZGVyQW5kUGFkZGluZyhyZW5kZXJl
ci0+Ym9yZGVyTGVmdCgpICsgcmVuZGVyZXItPnBhZGRpbmdMZWZ0KCksIHJlbmRlcmVyLT5ib3Jk
ZXJUb3AoKSArIHJlbmRlcmVyLT5wYWRkaW5nVG9wKCkpOworCisgICAgTGF5b3V0U2l6ZSBjb250
ZW50U2l6ZShjV2lkdGgsIGNIZWlnaHQpOworICAgIExheW91dFBvaW50IGNvbnRlbnRMb2NhdGlv
biA9IHBhaW50T2Zmc2V0OworICAgIGNvbnRlbnRMb2NhdGlvbi5tb3ZlKGJvcmRlckFuZFBhZGRp
bmcpOworCisgICAgUmVmUHRyPEdyYWRpZW50PiBnID0gR3JhZGllbnQ6OmNyZWF0ZShjb250ZW50
TG9jYXRpb24sIEZsb2F0UG9pbnQoY29udGVudExvY2F0aW9uLngoKSwgY29udGVudExvY2F0aW9u
LnkoKSArIGNIZWlnaHQpKTsKKyAgICBnLT5hZGRDb2xvclN0b3AoMCwgIENvbG9yKC41ZiwgLjUs
IC41LCAuNykpOworICAgIGctPmFkZENvbG9yU3RvcCguMiwgQ29sb3IoLjU0ZiwgLjU0LCAuNTQs
IC4zKSk7CisgICAgZy0+YWRkQ29sb3JTdG9wKC42LCBDb2xvciguNjJmLCAuNjIsIC42MiwgLjMp
KTsKKyAgICBnLT5hZGRDb2xvclN0b3AoMSwgIENvbG9yKC43ZiwgLjcsIC43LCAuOTUpKTsKKyAg
ICBjb250ZXh0LT5zZXRGaWxsR3JhZGllbnQoZy5yZWxlYXNlKCkpOworICAgIGNvbnRleHQtPmZp
bGxSZWN0KHBpeGVsU25hcHBlZEludFJlY3QoTGF5b3V0UmVjdChjb250ZW50TG9jYXRpb24sIGNv
bnRlbnRTaXplKSkpOworCisgICAgc3RhdGljIGNvbnN0IGZsb2F0IGRpYW1ldGVyID0gNTAsIHRy
aWFuZ2xlUmFkaXVzID0gMTI7CisgICAgTGF5b3V0UG9pbnQgY2VudGVyID0gY29udGVudExvY2F0
aW9uOworICAgIGNlbnRlci5tb3ZlKGNXaWR0aCAvIDIsIGNIZWlnaHQgLyAyKTsKKyAgICBjb250
ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3IoLjRmLCAuNCwgLjQsIC43KSwgQ29sb3JTcGFjZVNSR0Ip
OworICAgIGNvbnRleHQtPmZpbGxFbGxpcHNlKEZsb2F0UmVjdChjZW50ZXIueCgpIC0gZGlhbWV0
ZXIgLyAyLCBjZW50ZXIueSgpIC0gZGlhbWV0ZXIgLyAyLCBkaWFtZXRlciwgZGlhbWV0ZXIpKTsK
KworICAgIFBhdGggcDsKKyAgICBwLm1vdmVUbyhGbG9hdFBvaW50KGNlbnRlci54KCkgLSB0cmlh
bmdsZVJhZGl1cyAqIDMgLyA0LCBjZW50ZXIueSgpIC0gdHJpYW5nbGVSYWRpdXMpKTsKKyAgICBw
LmFkZExpbmVUbyhGbG9hdFBvaW50KGNlbnRlci54KCkgKyB0cmlhbmdsZVJhZGl1cyAqIDUgLyA0
LCBjZW50ZXIueSgpKSk7CisgICAgcC5hZGRMaW5lVG8oRmxvYXRQb2ludChjZW50ZXIueCgpIC0g
dHJpYW5nbGVSYWRpdXMgKiAzIC8gNCwgY2VudGVyLnkoKSArIHRyaWFuZ2xlUmFkaXVzKSk7Cisg
ICAgcC5jbG9zZVN1YnBhdGgoKTsKKyAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29sb3IoMS5m
LCAxLmYsIDEuZiwgLjlmKSwgQ29sb3JTcGFjZVNSR0IpOworICAgIGNvbnRleHQtPmZpbGxQYXRo
KHApOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcAppbmRleCBlMzhhN2YyNzBmZmUyODA0MjA5ZGFi
ZTIyMzBjZWI1N2ZkMzE2NWI4Li43NjZmYWMzMzQ2YjVhY2NkZTE4MjllYWU3YmY3MzQ3NDg1Zjky
MTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5P
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJpbmdBbGxJbk9uZS5j
cHAKQEAgLTk1LDYgKzk1LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXJUaGVtZS5jcHAi
CiAjaW5jbHVkZSAiUmVuZGVyU2VhcmNoRmllbGQuY3BwIgogI2luY2x1ZGUgIlJlbmRlclNsaWRl
ci5jcHAiCisjaW5jbHVkZSAiUmVuZGVyU25hcHNob3R0ZWRQbHVnaW4uY3BwIgogI2luY2x1ZGUg
IlJlbmRlclRhYmxlLmNwcCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNhcHRpb24uY3BwIgogI2lu
Y2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5jcHAiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167603</attachid>
            <date>2012-10-08 14:05:21 -0700</date>
            <delta_ts>2012-10-08 14:12:36 -0700</delta_ts>
            <desc>Removed layout() call, renamed setSnapshot to updateSnapshot, and moved setting the snapshot into RenderSnapshottedPlugin to make cleaner code</desc>
            <filename>bug-98322-20121008140424.patch</filename>
            <type>text/plain</type>
            <size>38897</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGEwN2M4YTY4ZWJkMmRi
MDU4OGIxMzE0ZjU2M2UyNDY4ZDI2NDA4YS4uNWZlZDlmMWE3Zjg3ODIzYWE0MTQ5MWQwOWE3YmQ3
NmM2NzViMTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEyLTEwLTA4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcmVuZGVyIG9iamVjdCB0aGF0
IHBhaW50cyBwbHVnaW4gc25hcHNob3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05ODMyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI0MjY1NDY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRmlyc3Qs
IHRlYWNoIHBsdWdpbnMgdG8gbWFpbnRhaW4gYSBzZXQgb2Ygc3RhdGVzIHdoZW4gcGx1Z2luIHNu
YXBzaG90dGluZyBpcyBlbmFibGVkLgorCisgICAgICAgIFNlY29uZCwgYSBuZXcgUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4gY2xhc3MgaXMgYSBSZW5kZXJFbWJlZGRlZE9iamVjdCB0aGF0IGtub3dz
IGhvdyB0byBwYWludAorICAgICAgICBzbmFwc2hvdHMgd2hlbiB0aGUgcGx1Z2luIGlzIG5vdCB2
aXNpYmx5IHBsYXlpbmcuIEl0IG1haW50YWlucyBhIFJlbmRlckltYWdlUmVzb3VyY2UgdG8KKyAg
ICAgICAgdGhlIGdlbmVyYXRlZCBwb3N0ZXIgaW1hZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxQ
bHVnSW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpI
VE1MUGx1Z0luRWxlbWVudCk6IEJ5IGRlZmF1bHQgYWxsIHBsdWdpbnMgcGxheSBvbiBsb2FkLgor
ICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaDogTW92ZSB0aGUgaW5oZXJpdGFuY2Ug
b2YgSW1hZ2VMb2FkZXJDbGllbnRCYXNlIGRvd24gdG8KKyAgICAgICAgSFRNTFBsdWdJbkltYWdl
RWxlbWVudCwgc2luY2UgdGhhdCBpcyB0aGUgY2xhc3MgdGhhdCBhY3R1YWxseSBkZWFscyB3aXRo
IGltYWdlLWJhc2VkIHBsdWdpbnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVu
dDo6ZGlzcGxheVN0YXRlKTogQWRkIGJpdCBmb3IgZGlzcGxheSBzdGF0ZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50OjpzZXREaXNwbGF5U3RhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ6OnVwZGF0ZVNuYXBzaG90KToKKworICAgICAgICAqIGh0
bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50OjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KTogSWYgcGx1Z2luIHNuYXBz
aG90dGluZyBpcworICAgICAgICBlbmFibGVkLCBwbHVnaW4gc3RhdGUgaXMgc2V0IHRvIHdhaXQg
Zm9yIGEgcG9zdGVyIGltYWdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBsdWdJbkltYWdlRWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIpOiBDcmVhdGUgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gaWYK
KyAgICAgICAgcGx1Z2luIHNuYXBzaG90dGluZyBpcyBlbmFibGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3QpOiBPbmNlIGEgc25hcHNo
b3QgaXMgYXZhaWxhYmxlLCB1cGRhdGUgdGhlCisgICAgICAgIHJlbmRlcmVyIGFuZCBzZXQgaXRz
IHN0YXRlIHRvIHdhaXQgZm9yIHVzZXIgaW5wdXQgdG8gc3RhcnQgdGhlIHBsdWdpbi4KKyAgICAg
ICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQpOgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1NuYXBzaG90dGVkUGx1Z0luKTogQWRkIG5l
dyBmdW5jdGlvbiB0byBpZGVudGlmeQorICAgICAgICBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiBp
bnN0YW5jZXMuIFNpbmNlIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luIGluaGVyaXRzIGZyb20KKyAg
ICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3QsIGlzRW1iZWRkZWRPYmplY3QoKSBzdGlsbCByZXR1
cm5zIHRydWUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg6Cisg
ICAgICAgIChSZW5kZXJFbWJlZGRlZE9iamVjdCk6IEVsZXZhdGUgYSBmZXcgdmlydHVhbCBtZXRo
b2RzIHRvIHByb3RlY3RlZCBmb3IKKyAgICAgICAgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gdG8g
b3ZlcnJpZGUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpS
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbik6IEluaXRpYWxpemUgc25hcHNob3QKKyAgICAgICAgcmVz
b3VyY2UuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6flJlbmRl
clNuYXBzaG90dGVkUGx1Z0luKTogU2h1dCBkb3duIHNuYXBzaG90CisgICAgICAgIGltYWdlIHJl
c291cmNlIHRvIHJlbW92ZSB0aGUgcmVuZGVyZXIgYXMgYSBjbGllbnQsIGFuZCByZW1vdmUgaW1h
Z2UgZnJvbSBtZW1vcnkgY2FjaGUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbjo6cGx1Z0luSW1hZ2VFbGVtZW50KTogQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8gZ2V0
IHRoZQorICAgICAgICBIVE1MIGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QpOiBDYWNoZSB0aGUgc25hcHNob3QsIGFuZCBy
ZXBhaW50LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50
KTogSWYgdGhlIHBsdWdpbiBpcyBub3QgcGxheWluZywgcGFpbnQgbGlrZSBhCisgICAgICAgIFJl
bmRlckltYWdlIGRvZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6cGFpbnRSZXBsYWNlZCk6IFBhaW50IHRoZSBzbmFwc2hvdCBhbmQgb3ZlcmxheSBpZiB0aGUK
KyAgICAgICAgcGx1Z2luIGlzIG5vdCBwbGF5aW5nLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U25hcHNob3R0ZWRQbHVnSW46OnBhaW50UmVwbGFjZWRTbmFwc2hvdCk6IEluc3BpcmVkIGJ5Cisg
ICAgICAgIFJlbmRlckltYWdlOjpwYWludFJlcGxhY2VkKCkgYW5kIFJlbmRlckltYWdlOjpwYWlu
dEludG9SZWN0KCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0lu
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46Omlz
U25hcHNob3R0ZWRQbHVnaW4pOiBSZXR1cm5zIHRydWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaDogQWRkIGEgZnVuY3Rpb24gdGhhdCBwYWludHMgdGhlIG92ZXJsYXkgb24g
dG9wIG9mIHRoZSBzbmFwc2hvdC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRQbHVnSW5TbmFwc2hvdE92ZXJsYXkpOgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luIGNsYXNzLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBEaXR0by4K
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQu
cHJpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyaW5nQWxsSW5PbmUuY3BwOiBEaXR0by4KKwogMjAxMi0xMC0wNyAgQXJwaXRhIEJhaHVn
dW5hICA8YXJwaXRhYmFodWd1bmFAZ21haWwuY29tPgogCiAgICAgICAgIDpmaXJzdC1saW5lIHBz
ZXVkbyBzZWxlY3RvciBpZ25vcmluZyB3b3JkcyBjcmVhdGVkIGZyb20gOmJlZm9yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCAyZDJjOTNlODEzNWI3N2Q1ZDBkNGZjNmE5N2RjMzAxYjU1ZDFhMjk5
Li5lZjU1YzRmYzM0NTIwYjU3ZmY5NTY3NWY4MmE5NjE5NDNmZmRlMzkyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMjExNiw2ICsyMTE2LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHJl
bmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVtZS5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyU2Vh
cmNoRmllbGQuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKyAgICByZW5kZXJp
bmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uY3BwCiAgICAgcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGQ3
YTRlZGUyMTlmMzU0ODk3NWZiODQxZjUyNjk1MGM0YTUzNTg3M2QuLjNiOTY3N2NhMjJiNzBmN2Jh
YWY3Njc3ZTI5Y2IxNDI1N2JkNDJhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtNTA4Miw2ICs1MDgyLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNsaWRlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4uaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggMDc4YjY5YWEyNzM0NDYwMDA0NGI5MDJjY2E1NWQzMWY3ZWVmMTI1NS4uYzY1ZWY2MGQ2
MzBkOTZjOWYwOWY2NzI2ZDMzZmU2YWEwNTAyZTBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMTgzLDYg
KzExODMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyVGhl
bWUuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIFwKICAgICByZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBcCisgICAgcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVk
UGx1Z0luLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBcCiAgICAgcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5jcHAgXAogICAgIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuY3BwIFwKQEAgLTIzODEsNiArMjM4Miw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmlu
Zy9SZW5kZXJTY3JvbGxiYXJUaGVtZS5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmll
bGQuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oIFwKKyAgICByZW5kZXJpbmcvUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlv
bi5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmggXAogICAgIHJlbmRlcmluZy9S
ZW5kZXJUYWJsZUNvbC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkMTIxYjdkMTBiMDhiYjg2NDBl
ZDkyMjY4YTBjNDM0Y2NmMTI0ZWIzLi5jYmJjMzJmYzI0MTI0MmY3MzQ0YmE4NDE4NGI1ZjYxNWNh
ZTRjMWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zNDMwLDYgKzM0MzAsOCBAQAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmgnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyU2xp
ZGVyLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5j
cHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oJywK
ICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwJywKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvUmVuZGVyVGFibGUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2FwdGlvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCBlZjJhYWYwNTE5OWQxYTE5YTJkNDM1OGVhOGY4ZDllZTM2YmFlOTkyLi43
OWI5OTI2YTJiOTg5NDk2MWJhNDg1YTlmN2FmMDE5ZjQ5NGE2MGYwIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDIxNTksNiArNDIxNTksNjIg
QEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVu
ZGVyaW5nXFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdmdcUmVuZGVyU1ZHQWxsSW5PbmUuY3BwIgogCQkJCT4K
IAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBjYjdiZDY1MTBlOGM2MjMzODM2MWY1MTk1NzdkZTQxNDI5MjBhNGVk
Li45MzY4NDg3NDRiZjc0Njk1NWZlMDdhMzUyYmQzYTYzMzMyZmEyZTk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MDksNiAr
OTA5LDggQEAKIAkJMzE5NDYyMDQxMzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlv
bkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
OTQ2MjAyMTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0LmggKi87IH07
CiAJCTMxOTQ2MjA1MTMwMjJCRjEwMDRCQjNGOCAvKiBET01XZWJLaXRBbmltYXRpb25MaXN0Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYyMDMx
MzAyMkJGMTAwNEJCM0Y4IC8qIERPTVdlYktpdEFuaW1hdGlvbkxpc3QubW0gKi87IH07CiAJCTMx
OTQ2MjMyMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5NDYyMzEx
MzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgKi87IH07
CisJCTMxOTU1QTg2MTYwRDE5OTAwMDg1ODAyNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUU4RDhC
QTE2MEJDOTRCMDA0Q0U4RjUgLyogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwICovOyB9Owor
CQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRThEOEJCMTYw
QkM5NEMwMDRDRThGNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxOUFFMDYzMTQyRDZCMjQwMDY1
NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE5QUUwNjExNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVy
RGF0YS5jcHAgKi87IH07CiAJCTMxOUFFMDY0MTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRl
ckRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
OUFFMDYyMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTlFNjg4NzEzMjdDOTExMDA0
QUM5MUEgLyogSlNXZWJLaXRBbmltYXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RTY4ODYxMzI3QzkxMTAwNEFDOTFBIC8qIEpT
V2ViS2l0QW5pbWF0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKQEAgLTc4MTgsNyArNzgyMCw3IEBACiAJ
CTI5ODFDQUEyMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTI5ODFDQUEzMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5
TGlzdEJveE9wdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5TGlzdEJv
eE9wdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5ODFDQUE0MTMxODIy
RUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBBY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTI5ODFDQUE1MTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlPYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTgxQ0FBNTEzMTgyMkVDMDBEMTJGMkEgLyogQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0g
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3Vh
Z2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcuY3BwOyB9OwogCQkyOTgxQ0FB
NjEzMTgyMkVDMDBEMTJGMkEgLyogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjk4MUNBQTcxMzE4MjJFQzAwRDEyRjJBIC8qIEFjY2Vzc2liaWxp
dHlTY3JvbGxiYXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5ODFDQUE4MTMxODIyRUMwMEQx
MkYyQSAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04MDM4LDYgKzgwNDAsOCBAQAogCQkzMUMwRkY0NjBFNENFRkREMDA3RDZGRTUgLyogRE9NV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TVdlYktpdFRyYW5zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MUMwRkY0NzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0VHJhbnNpdGlv
bkV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMUMwRkY0ODBFNENFRkRE
MDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFFOEQ4QkExNjBCQzk0QjAwNENFOEY1
IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzFFOEQ4QkIxNjBCQzk0QzAwNENFOEY1IC8qIFJlbmRlclNuYXBzaG90
dGVkUGx1Z0luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNuYXBz
aG90dGVkUGx1Z0luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRUMxRDUwMTRG
RUZEMDgwMEM5NDY2MiAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5pZGw7IHBh
dGggPSBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFFQzFEQUMxNEZGMjZFQTAwQzk0
NjYyIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaDsgcGF0aCA9IE1vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzFFQzFFMjYxNEZGNjBFRTAwQzk0NjYyIC8qIEpTTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTExMjU4LDcgKzExMjYyLDcgQEAKIAkJQTgxODcyMTAwOTc3RDNDMDAwNTgy
NkQ5IC8qIE5vZGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb2Rl
TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODE4NzIxMTA5NzdEM0MwMDA1
ODI2RDkgLyogQ29udGFpbmVyTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ29udGFpbmVyTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODE4NzIx
MzA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOYW1lTm9kZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQTgxODcyMTQwOTc3RDNDMDAwNTgyNkQ5IC8qIENvbnRhaW5lck5vZGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGFpbmVy
Tm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MTg3MjE0MDk3N0QzQzAw
MDU4MjZEOSAvKiBDb250YWluZXJOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBDb250YWluZXJOb2Rl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVu
dGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CiAJCUE4MTg3MjE1MDk3N0QzQzAwMDU4MjZEOSAv
KiBDaGlsZE5vZGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDaGls
ZE5vZGVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MTg3MjE4MDk3N0Qz
QzAwMDU4MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5hbWVkTm9kZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODE4
NzIxOTA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYW1lTm9kZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTI4MDUsNyArMTI4MDksNyBAQAogCQlCQzc0REE0NzEwMTNGNDY4MDA3
OTg3QUQgLyogSlNSR0JDb2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1JHQkNvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzZBQzExMEREN0FE
NUMwMDQxNUYzNCAvKiBQYXJzZXJVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGFyc2VyVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNzcyQjM2MEM0RUE5MUUwMDgzMjg1RiAvKiBDU1NIZWxwZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENTU0hlbHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlCQzc3MkIzNzBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTUGFyc2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQzc3MkIzNzBDNEVBOTFFMDA4MzI4NUYgLyogQ1NTUGFyc2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0g
Q1NTUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmlj
YXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5jcHA7IH07CiAJCUJDNzcyQjM4MEM0RUE5MUUw
MDgzMjg1RiAvKiBDU1NQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENTU1BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzc3MkM0NDBDNEVC
MkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM3NzJDNDUwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE0ODMsNiArMjE0ODcsOCBAQAogCQkJCTBGMTFBNTRF
MEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi8sCiAJCQkJQUIyNDdB
NkEwQUZENjM4MzAwM0ZBNUZEIC8qIFJlbmRlclNsaWRlci5jcHAgKi8sCiAJCQkJQUIyNDdBNkIw
QUZENjM4MzAwM0ZBNUZEIC8qIFJlbmRlclNsaWRlci5oICovLAorCQkJCTMxRThEOEJBMTYwQkM5
NEIwMDRDRThGNSAvKiBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgKi8sCisJCQkJMzFFOEQ4
QkIxNjBCQzk0QzAwNENFOEY1IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggKi8sCiAJCQkJ
QThERjRBRTIwOTgwQzQyQzAwNTI5ODFCIC8qIFJlbmRlclRhYmxlLmNwcCAqLywKIAkJCQlBOERG
NEFFMTA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGUuaCAqLywKIAkJCQk2RUQ4NzhDMjE0
NzQ5M0Y0MDA0QzM1OTcgLyogUmVuZGVyVGFibGVDYXB0aW9uLmNwcCAqLywKQEAgLTI1NTM3LDYg
KzI1NTQzLDcgQEAKIAkJCQk5MzFDQkQwRDE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3Rh
dGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFDQkQwRjE2MUE0NEU5MDBFNEM4NzQgLyog
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFDQkQx
MTE2MUE0NEU5MDBFNEM4NzQgLyogU2Nyb2xsaW5nU3RhdGVUcmVlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkzMTk1NUE4ODE2MEQxOTkyMDA4NTgwMjUgLyogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4u
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtMjg2MzQsNiArMjg2NDEsNyBAQAogCQkJCTkzMUNCRDBFMTYx
QTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTMxQ0JEMTAxNjFBNDRFOTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlVHJl
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzFDQkQxMzE2MUE0NEY4MDBFNEM4NzQgLyogU2Ny
b2xsaW5nU3RhdGVOb2RlTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzE5NTVBODYxNjBEMTk5
MDAwODU4MDI1IC8qIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmNwcAppbmRleCAxYjU4NDM0ODM4
ZWY0Y2IwZDY3NzBlMjIwMjRjODNmNDdiNmE2OWRjLi5jNmU1MmNhMGRmMzQzZGFiYzRjYjBkNTlh
NGE0NjdkZTFlNjQ3NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVn
SW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50
LmNwcApAQCAtNTUsNiArNTUsNyBAQCBIVE1MUGx1Z0luRWxlbWVudDo6SFRNTFBsdWdJbkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYwogICAgICwgbV9O
UE9iamVjdCgwKQogI2VuZGlmCiAgICAgLCBtX2lzQ2FwdHVyaW5nTW91c2VFdmVudHMoZmFsc2Up
CisgICAgLCBtX2Rpc3BsYXlTdGF0ZShQbGF5aW5nKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5FbGVtZW50LmgKaW5kZXggZWVlYzYwY2I1ODZmN2QxMmI1Y2YwNzY1M2YwZjdh
MzI1NDExOGMwMy4uY2ZhMTQ3ZmM0NzM3MTRjNWU0ZjRhNDUzN2EwMjhlOWFhZThjY2QxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaApAQCAtMSw3ICsxLDcgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAg
ICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDksIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0zMywxMSArMzMsMTIgQEAgc3RydWN0IE5QT2JqZWN0OwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIEltYWdlOwogY2xhc3MgUmVuZGVyRW1iZWRkZWRPYmplY3Q7CiBj
bGFzcyBSZW5kZXJXaWRnZXQ7CiBjbGFzcyBXaWRnZXQ7CiAKLWNsYXNzIEhUTUxQbHVnSW5FbGVt
ZW50IDogcHVibGljIEhUTUxGcmFtZU93bmVyRWxlbWVudCwgcHVibGljIEltYWdlTG9hZGVyQ2xp
ZW50QmFzZTxIVE1MUGx1Z0luRWxlbWVudD4geworY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQgOiBw
dWJsaWMgSFRNTEZyYW1lT3duZXJFbGVtZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5IVE1M
UGx1Z0luRWxlbWVudCgpOwogCkBAIC00Nyw2ICs0OCwxNSBAQCBwdWJsaWM6CiAKICAgICBXaWRn
ZXQqIHBsdWdpbldpZGdldCgpIGNvbnN0OwogCisgICAgZW51bSBEaXNwbGF5U3RhdGUgeworICAg
ICAgICBXYWl0aW5nRm9yU25hcHNob3QsCisgICAgICAgIERpc3BsYXlpbmdTbmFwc2hvdCwKKyAg
ICAgICAgUGxheWluZworICAgIH07CisgICAgRGlzcGxheVN0YXRlIGRpc3BsYXlTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGlzcGxheVN0YXRlOyB9CisgICAgdm9pZCBzZXREaXNwbGF5U3RhdGUo
RGlzcGxheVN0YXRlIHN0YXRlKSB7IG1fZGlzcGxheVN0YXRlID0gc3RhdGU7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoSW1hZ2UqKSB7IH0KKwogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQogICAgIE5QT2JqZWN0KiBnZXROUE9iamVjdCgpOwogI2VuZGlmCkBAIC04
NCw2ICs5NCw4IEBAIHByaXZhdGU6CiAgICAgTlBPYmplY3QqIG1fTlBPYmplY3Q7CiAjZW5kaWYK
ICAgICBib29sIG1faXNDYXB0dXJpbmdNb3VzZUV2ZW50czsKKworICAgIERpc3BsYXlTdGF0ZSBt
X2Rpc3BsYXlTdGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCmluZGV4IDQ5MTE2NmUzZThj
OWQ4MGI5NzJmMDgxZDZmYjg5NzkwYTQ4ZDQ5ZTEuLjk5YmI4NTFlZDY3NDcwYTYzMDZjN2I2ZmVi
MmEwMTE0MDdhN2RiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgs
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMzEsNyArMzEsOSBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCisjaW5j
bHVkZSAiUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Nyw2ICs0OSw5IEBAIEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jCiAgICAgLCBtX25lZWRzRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzKGZhbHNlKQog
ewogICAgIHNldEhhc0N1c3RvbUNhbGxiYWNrcygpOworCisgICAgaWYgKGRvY3VtZW50LT5wYWdl
KCkgJiYgZG9jdW1lbnQtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cGx1Z0luU25hcHNob3R0aW5nRW5h
YmxlZCgpKQorICAgICAgICBzZXREaXNwbGF5U3RhdGUoV2FpdGluZ0ZvclNuYXBzaG90KTsKIH0K
IAogSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6fkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQoKQpAQCAt
MTQxLDYgKzE0Niw5IEBAIFJlbmRlck9iamVjdCogSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTCiAgICAgICAgIGltYWdlLT5z
ZXRJbWFnZVJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0ZSgpKTsKICAgICAgICAg
cmV0dXJuIGltYWdlOwogICAgIH0KKworICAgIGlmIChkb2N1bWVudCgpLT5wYWdlKCkgJiYgZG9j
dW1lbnQoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5wbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkKCkp
CisgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbih0aGlz
KTsKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyRW1iZWRkZWRPYmplY3QodGhpcyk7CiB9
CiAKQEAgLTI1Myw0ICsyNjEsMTMgQEAgdm9pZCBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojp1cGRh
dGVXaWRnZXRDYWxsYmFjayhOb2RlKiBuLCB1bnNpZ25lZCkKICAgICBzdGF0aWNfY2FzdDxIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50Kj4obiktPnVwZGF0ZVdpZGdldElmTmVjZXNzYXJ5KCk7CiB9CiAK
K3ZvaWQgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6dXBkYXRlU25hcHNob3QoSW1hZ2UqIGltYWdl
KQoreworICAgIGlmIChkaXNwbGF5U3RhdGUoKSA+IFdhaXRpbmdGb3JTbmFwc2hvdCB8fCAhcmVu
ZGVyZXIoKS0+aXNTbmFwc2hvdHRlZFBsdWdJbigpKQorICAgICAgICByZXR1cm47CisKKyAgICB0
b1JlbmRlclNuYXBzaG90dGVkUGx1Z0luKHJlbmRlcmVyKCkpLT51cGRhdGVTbmFwc2hvdChpbWFn
ZSk7CisgICAgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlpbmdTbmFwc2hvdCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmgKaW5kZXggMTY4ZWQ0NjM0MzRmZGI3M2Q3Mjc5NTFkMDdiOTQxMDFiYjllMDYwNS4u
YTAwOTgxOTMzMjY5ZDA0MmNjMTUyMTA4NDZiYzljOGM3YjE5NmUwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMSwgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQyLDcgKzQy
LDcgQEAgZW51bSBQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzT3B0aW9uIHsKIH07CiAKIC8vIEJhc2Ug
Y2xhc3MgZm9yIEhUTUxPYmplY3RFbGVtZW50IGFuZCBIVE1MRW1iZWRFbGVtZW50Ci1jbGFzcyBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50IDogcHVibGljIEhUTUxQbHVnSW5FbGVtZW50IHsKK2NsYXNz
IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQgOiBwdWJsaWMgSFRNTFBsdWdJbkVsZW1lbnQsIHB1Ymxp
YyBJbWFnZUxvYWRlckNsaWVudEJhc2U8SFRNTFBsdWdJbkltYWdlRWxlbWVudD4gewogcHVibGlj
OgogICAgIHZpcnR1YWwgfkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQoKTsKIApAQCAtOTAsNiArOTAs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlV2lkZ2V0SWZOZWNlc3NhcnkoKTsKICAgICB2
aXJ0dWFsIGJvb2wgdXNlRmFsbGJhY2tDb250ZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICAKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU25hcHNob3QoSW1hZ2UqKSBPVkVSUklERTsK
KwogICAgIGJvb2wgbV9uZWVkc1dpZGdldFVwZGF0ZTsKICAgICBib29sIG1fc2hvdWxkUHJlZmVy
UGx1Z0luc0ZvckltYWdlczsKICAgICBib29sIG1fbmVlZHNEb2N1bWVudEFjdGl2YXRpb25DYWxs
YmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5oCmluZGV4IDNmMzE4YjE2NzdmNjBiMzVkYzg5NzE2YWEwM2I3ZmU1ODY3MzFlMGMuLjk1ZDEz
MTc1NjIyZDkwYmUxMzk0MGNkMDJhZmIyYzkwN2NlYzViZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCkBAIC0xLDcgKzEsNyBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAyMDAwIFNpbW9uIEhhdXNtYW5uIDxoYXVzbWFubkBrZGUub3JnPgotICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwOCwgMjAwOSwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU2LDE0ICs1NiwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdDsKICNlbmRpZgogCi1w
cml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0
dXJuICJSZW5kZXJFbWJlZGRlZE9iamVjdCI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNFbWJlZGRl
ZE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQorcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CisK
ICAgICB2aXJ0dWFsIEN1cnNvckRpcmVjdGl2ZSBnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQm
LCBDdXJzb3ImKSBjb25zdDsKIAorcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyRW1iZWRkZWRPYmplY3QiOyB9CisgICAg
dmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBib29sIHJlcXVp
cmVzTGF5ZXIoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCmluZGV4IDBhNzA1NzUwZjdjNjU3NWJhYzNhNzE4ZWExYmU5YThiM2M0MjY0NGYuLjNk
Nzg0ODQwMzUzZTU5YzFkYjkwZDUyNDQyM2YwMWFkMWUzNjgwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTMsNyArMyw3IEBACiAgKiAgICAgICAgICAgKEMp
IDIwMDAgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMp
IDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIw
MDQgQWxsYW4gU2FuZGZlbGQgSmVuc2VuIChrZGVAY2FyZXdvbGYuY29tKQotICogQ29weXJpZ2h0
IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCkBAIC0zMzcsNiArMzM3LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShN
RVRFUl9FTEVNRU5UKQogICAgIHZpcnR1YWwgYm9vbCBpc01ldGVyKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICNlbmRpZgorICAgIHZpcnR1YWwgYm9vbCBpc1NuYXBzaG90dGVkUGx1Z0luKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNpZiBFTkFCTEUoUFJPR1JFU1NfRUxFTUVOVCkKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhODU5MmM4MGY2MWVmNWQ3Nzk2MWE4ZGZlZTk0MDM1YWEw
NzJlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW4uY3BwCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgiCisK
KyNpbmNsdWRlICJDdXJzb3IuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJH
cmFkaWVudC5oIgorI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJQYWludEluZm8uaCIKKyNpbmNsdWRlICJQYXRoLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luKEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQqIGVsZW1lbnQpCisgICAgOiBSZW5kZXJFbWJlZGRlZE9iamVjdChl
bGVtZW50KQorICAgICwgbV9zbmFwc2hvdFJlc291cmNlKFJlbmRlckltYWdlUmVzb3VyY2U6OmNy
ZWF0ZSgpKQoreworICAgIG1fc25hcHNob3RSZXNvdXJjZS0+aW5pdGlhbGl6ZSh0aGlzKTsKK30K
KworUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46On5SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbigpCit7
CisgICAgQVNTRVJUKG1fc25hcHNob3RSZXNvdXJjZSk7CisgICAgbV9zbmFwc2hvdFJlc291cmNl
LT5zaHV0ZG93bigpOworfQorCitIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6cGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudCo+KG5vZGUoKSk7Cit9CisKK3ZvaWQgUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KEltYWdlKiBpbWFnZSkKK3sKKyAg
ICAvLyBaZXJvLXNpemUgcGx1Z2lucyB3aWxsIGhhdmUgbm8gaW1hZ2UuCisgICAgaWYgKCFpbWFn
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zbmFwc2hvdFJlc291cmNlLT5zZXRDYWNoZWRJ
bWFnZShuZXcgQ2FjaGVkSW1hZ2UoaW1hZ2UpKTsKKyAgICByZXBhaW50KCk7Cit9CisKK3ZvaWQg
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCit7CisgICAgaWYgKHBsdWdJbkltYWdlRWxlbWVu
dCgpLT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVnSW5FbGVtZW50OjpQbGF5aW5nKSB7CisgICAg
ICAgIFJlbmRlclJlcGxhY2VkOjpwYWludChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludChwYWlu
dEluZm8sIHBhaW50T2Zmc2V0KTsKK30KKwordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6
cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBh
aW50T2Zmc2V0KQoreworICAgIGlmIChwbHVnSW5JbWFnZUVsZW1lbnQoKS0+ZGlzcGxheVN0YXRl
KCkgPCBIVE1MUGx1Z0luRWxlbWVudDo6UGxheWluZykgeworICAgICAgICBwYWludFJlcGxhY2Vk
U25hcHNob3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CisgICAgICAgIHRoZW1lKCktPnBhaW50
UGx1Z0luU25hcHNob3RPdmVybGF5KHRoaXMsIHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50UmVw
bGFjZWQocGFpbnRJbmZvLCBwYWludE9mZnNldCk7Cit9CisKK3ZvaWQgUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OnBhaW50UmVwbGFjZWRTbmFwc2hvdChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQoreworICAgIC8vIFRoaXMgY29kZSBzaG91bGQg
YmUgc2ltaWxhciB0byBSZW5kZXJJbWFnZTo6cGFpbnRSZXBsYWNlZCgpIGFuZCBSZW5kZXJJbWFn
ZTo6cGFpbnRJbnRvUmVjdCgpLgorICAgIExheW91dFVuaXQgY1dpZHRoID0gY29udGVudFdpZHRo
KCk7CisgICAgTGF5b3V0VW5pdCBjSGVpZ2h0ID0gY29udGVudEhlaWdodCgpOworICAgIGlmICgh
Y1dpZHRoIHx8ICFjSGVpZ2h0KQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8SW1hZ2U+
IGltYWdlID0gbV9zbmFwc2hvdFJlc291cmNlLT5pbWFnZSgpOworICAgIGlmICghaW1hZ2UgfHwg
aW1hZ2UtPmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYg
KHN0eWxlKCktPmhpZ2hsaWdodCgpICE9IG51bGxBdG9tICYmICFjb250ZXh0LT5wYWludGluZ0Rp
c2FibGVkKCkpCisgICAgICAgIHBhaW50Q3VzdG9tSGlnaGxpZ2h0KHRvUG9pbnQocGFpbnRPZmZz
ZXQgLSBsb2NhdGlvbigpKSwgc3R5bGUoKS0+aGlnaGxpZ2h0KCksIHRydWUpOworI2VuZGlmCisK
KyAgICBMYXlvdXRTaXplIGNvbnRlbnRTaXplKGNXaWR0aCwgY0hlaWdodCk7CisgICAgTGF5b3V0
UG9pbnQgY29udGVudExvY2F0aW9uID0gcGFpbnRPZmZzZXQ7CisgICAgY29udGVudExvY2F0aW9u
Lm1vdmUoYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5n
VG9wKCkpOworCisgICAgTGF5b3V0UmVjdCByZWN0KGNvbnRlbnRMb2NhdGlvbiwgY29udGVudFNp
emUpOworICAgIEludFJlY3QgYWxpZ25lZFJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlY3Qp
OworICAgIGlmIChhbGlnbmVkUmVjdC53aWR0aCgpIDw9IDAgfHwgYWxpZ25lZFJlY3QuaGVpZ2h0
KCkgPD0gMCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGlu
ZyA9IHNob3VsZFBhaW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLmdldCgpLCBpbWFnZS5n
ZXQoKSwgYWxpZ25lZFJlY3Quc2l6ZSgpKTsKKyAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2Uu
Z2V0KCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIENvbXBvc2l0ZVNvdXJj
ZU92ZXIsIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2Fs
aW5nKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGM2MjU3
N2Y2MDBjMGJjMWNlMGNiMTZlMzllNjI0ZGQ2YTQ4OTliCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmgKQEAgLTAsMCAr
MSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW5faAor
I2RlZmluZSBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbl9oCisKKyNpbmNsdWRlICJSZW5kZXJFbWJl
ZGRlZE9iamVjdC5oIgorCisjaW5jbHVkZSAiUmVuZGVySW1hZ2VSZXNvdXJjZS5oIgorI2luY2x1
ZGUgIlJlbmRlclRoZW1lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDsKKworY2xhc3MgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4gOiBwdWJs
aWMgUmVuZGVyRW1iZWRkZWRPYmplY3QgeworcHVibGljOgorICAgIFJlbmRlclNuYXBzaG90dGVk
UGx1Z0luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbigpOworCisgICAgdm9pZCB1cGRhdGVTbmFwc2hvdChJbWFnZSopOworCitw
cml2YXRlOgorICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdJbkltYWdlRWxlbWVudCgp
IGNvbnN0OworICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0
dXJuICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiI7IH0KKworICAgIHZpcnR1YWwgYm9vbCBpc1Nu
YXBzaG90dGVkUGx1Z0luKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50JikgT1ZFUlJJREU7CisgICAgdm9pZCBwYWludFJlcGxhY2VkU25hcHNob3QoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKKworICAgIE93blB0cjxSZW5kZXJJbWFnZVJlc291
cmNlPiBtX3NuYXBzaG90UmVzb3VyY2U7Cit9OworCitpbmxpbmUgUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4qIHRvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7
CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1NuYXBzaG90dGVkUGx1Z0luKCkpOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbio+KG9iamVjdCk7
Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2Fz
dC4KK3ZvaWQgdG9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihjb25zdCBSZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbiopOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmlu
ZGV4IDM2ZTQ5ZjI2Y2RiY2FlOGRjZGU5NjE3MTY1MDBjMGRiYjRiZTA1ZDQuLmE2Mzc0NWExNjk3
MDA4ODZkY2JiZDk1OGFkY2ZlNzc0MjQzYmE3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZS5oCkBAIC0zNSw2ICszNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgQ1NTU3R5bGVTaGVldDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGaWxlTGlzdDsKIGNs
YXNzIEhUTUxJbnB1dEVsZW1lbnQ7CkBAIC00Niw3ICs0Nyw3IEBAIGNsYXNzIFJlbmRlck1ldGVy
OwogI2lmIEVOQUJMRShQUk9HUkVTU19FTEVNRU5UKQogY2xhc3MgUmVuZGVyUHJvZ3Jlc3M7CiAj
ZW5kaWYKLWNsYXNzIENTU1N0eWxlU2hlZXQ7CitjbGFzcyBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjsKIAogY2xhc3MgUmVuZGVyVGhlbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxSZW5kZXJUaGVtZT4g
ewogcHJvdGVjdGVkOgpAQCAtMjQxLDYgKzI0Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0
cmluZyBmaWxlTGlzdERlZmF1bHRMYWJlbChib29sIG11bHRpcGxlRmlsZXNBbGxvd2VkKSBjb25z
dDsKICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBGaWxlTGlz
dCosIGNvbnN0IEZvbnQmLCBpbnQgd2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpIGNv
bnN0OwogCisgICAgdmlydHVhbCB2b2lkIHBhaW50UGx1Z0luU25hcHNob3RPdmVybGF5KFJlbmRl
clNuYXBzaG90dGVkUGx1Z0luKiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQm
KSBjb25zdCB7IH0KKwogcHJvdGVjdGVkOgogICAgIC8vIFRoZSBwbGF0Zm9ybSBzZWxlY3Rpb24g
Y29sb3IuCiAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aAppbmRleCA3YWQ0OWJkMzQ3ODg1YjU4NDAyYjc4ZTJmZjUzMmQ3Yjc2YzExMzM5Li4zMjg4NDcx
YWRlZDQwNTI5ZjYyYzA1NDdmYWYyNjg2NDA1Yjc5ZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtMTAxLDYgKzEwMSw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgdXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKICAgICAvLyBB
IHZpZXcgYXNzb2NpYXRlZCB0byB0aGUgY29udGFpbmVkIGRvY3VtZW50LiBTdWJjbGFzc2VzIG1h
eSBub3QgaGF2ZSBzdWNoIGEgdmlldyBhbmQgcmV0dXJuIGEgZmFrZS4KICAgICB2aXJ0dWFsIE5T
VmlldyogZG9jdW1lbnRWaWV3Rm9yKFJlbmRlck9iamVjdCopIGNvbnN0OworCisgICAgdmlydHVh
bCB2b2lkIHBhaW50UGx1Z0luU25hcHNob3RPdmVybGF5KFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCBPVkVSUklERTsK
KwogcHJvdGVjdGVkOgogICAgIFJlbmRlclRoZW1lTWFjKCk7CiAgICAgdmlydHVhbCB+UmVuZGVy
VGhlbWVNYWMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpp
bmRleCBhOTBiMzhlYWU5MTdhNzllMmIwNjg4YWMwZDQ0MTY2YzU4ZGQzYmZhLi5lMDgzN2ZkYzVk
NDExODY1ZTIzMWQ4ZWJlNGYyYTI1NjdhNTQ2ZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0ICJSZW5kZXJN
ZWRpYS5oIgogI2ltcG9ydCAiUmVuZGVyTWVkaWFDb250cm9scy5oIgogI2ltcG9ydCAiUmVuZGVy
U2xpZGVyLmgiCisjaW1wb3J0ICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oIgogI2ltcG9ydCAi
UmVuZGVyVmlldy5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCiAjaW1wb3J0ICJTdHJpbmdU
cnVuY2F0b3IuaCIKQEAgLTIyMzIsNCArMjIzMyw0MyBAQCBTdHJpbmcgUmVuZGVyVGhlbWVNYWM6
OmZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IEZpbGVMaXN0KiBmaWxlTGlzdCwgY29uc3QgRm9u
dAogICAgIHJldHVybiBTdHJpbmdUcnVuY2F0b3I6OmNlbnRlclRydW5jYXRlKHN0clRvVHJ1bmNh
dGUsIHdpZHRoLCBmb250LCBTdHJpbmdUcnVuY2F0b3I6OkVuYWJsZVJvdW5kaW5nSGFja3MpOwog
fQogCit2b2lkIFJlbmRlclRoZW1lTWFjOjpwYWludFBsdWdJblNuYXBzaG90T3ZlcmxheShSZW5k
ZXJTbmFwc2hvdHRlZFBsdWdJbiogcmVuZGVyZXIsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpIGNvbnN0Cit7CisgICAgTGF5b3V0VW5p
dCBjV2lkdGggPSByZW5kZXJlci0+Y29udGVudFdpZHRoKCk7CisgICAgTGF5b3V0VW5pdCBjSGVp
Z2h0ID0gcmVuZGVyZXItPmNvbnRlbnRIZWlnaHQoKTsKKyAgICBpZiAoIWNXaWR0aCB8fCAhY0hl
aWdodCkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0g
cGFpbnRJbmZvLmNvbnRleHQ7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzYXZlcigq
Y29udGV4dCk7CisKKyAgICBMYXlvdXRTaXplIGJvcmRlckFuZFBhZGRpbmcocmVuZGVyZXItPmJv
cmRlckxlZnQoKSArIHJlbmRlcmVyLT5wYWRkaW5nTGVmdCgpLCByZW5kZXJlci0+Ym9yZGVyVG9w
KCkgKyByZW5kZXJlci0+cGFkZGluZ1RvcCgpKTsKKworICAgIExheW91dFNpemUgY29udGVudFNp
emUoY1dpZHRoLCBjSGVpZ2h0KTsKKyAgICBMYXlvdXRQb2ludCBjb250ZW50TG9jYXRpb24gPSBw
YWludE9mZnNldDsKKyAgICBjb250ZW50TG9jYXRpb24ubW92ZShib3JkZXJBbmRQYWRkaW5nKTsK
KworICAgIFJlZlB0cjxHcmFkaWVudD4gZyA9IEdyYWRpZW50OjpjcmVhdGUoY29udGVudExvY2F0
aW9uLCBGbG9hdFBvaW50KGNvbnRlbnRMb2NhdGlvbi54KCksIGNvbnRlbnRMb2NhdGlvbi55KCkg
KyBjSGVpZ2h0KSk7CisgICAgZy0+YWRkQ29sb3JTdG9wKDAsICBDb2xvciguNWYsIC41LCAuNSwg
LjcpKTsKKyAgICBnLT5hZGRDb2xvclN0b3AoLjIsIENvbG9yKC41NGYsIC41NCwgLjU0LCAuMykp
OworICAgIGctPmFkZENvbG9yU3RvcCguNiwgQ29sb3IoLjYyZiwgLjYyLCAuNjIsIC4zKSk7Cisg
ICAgZy0+YWRkQ29sb3JTdG9wKDEsICBDb2xvciguN2YsIC43LCAuNywgLjk1KSk7CisgICAgY29u
dGV4dC0+c2V0RmlsbEdyYWRpZW50KGcucmVsZWFzZSgpKTsKKyAgICBjb250ZXh0LT5maWxsUmVj
dChwaXhlbFNuYXBwZWRJbnRSZWN0KExheW91dFJlY3QoY29udGVudExvY2F0aW9uLCBjb250ZW50
U2l6ZSkpKTsKKworICAgIHN0YXRpYyBjb25zdCBmbG9hdCBkaWFtZXRlciA9IDUwLCB0cmlhbmds
ZVJhZGl1cyA9IDEyOworICAgIExheW91dFBvaW50IGNlbnRlciA9IGNvbnRlbnRMb2NhdGlvbjsK
KyAgICBjZW50ZXIubW92ZShjV2lkdGggLyAyLCBjSGVpZ2h0IC8gMik7CisgICAgY29udGV4dC0+
c2V0RmlsbENvbG9yKENvbG9yKC40ZiwgLjQsIC40LCAuNyksIENvbG9yU3BhY2VTUkdCKTsKKyAg
ICBjb250ZXh0LT5maWxsRWxsaXBzZShGbG9hdFJlY3QoY2VudGVyLngoKSAtIGRpYW1ldGVyIC8g
MiwgY2VudGVyLnkoKSAtIGRpYW1ldGVyIC8gMiwgZGlhbWV0ZXIsIGRpYW1ldGVyKSk7CisKKyAg
ICBQYXRoIHA7CisgICAgcC5tb3ZlVG8oRmxvYXRQb2ludChjZW50ZXIueCgpIC0gdHJpYW5nbGVS
YWRpdXMgKiAzIC8gNCwgY2VudGVyLnkoKSAtIHRyaWFuZ2xlUmFkaXVzKSk7CisgICAgcC5hZGRM
aW5lVG8oRmxvYXRQb2ludChjZW50ZXIueCgpICsgdHJpYW5nbGVSYWRpdXMgKiA1IC8gNCwgY2Vu
dGVyLnkoKSkpOworICAgIHAuYWRkTGluZVRvKEZsb2F0UG9pbnQoY2VudGVyLngoKSAtIHRyaWFu
Z2xlUmFkaXVzICogMyAvIDQsIGNlbnRlci55KCkgKyB0cmlhbmdsZVJhZGl1cykpOworICAgIHAu
Y2xvc2VTdWJwYXRoKCk7CisgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yKDEuZiwgMS5m
LCAxLmYsIC45ZiksIENvbG9yU3BhY2VTUkdCKTsKKyAgICBjb250ZXh0LT5maWxsUGF0aChwKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJpbmdBbGxJbk9uZS5jcHAKaW5kZXggZTM4YTdmMjcwZmZlMjgwNDIwOWRhYmUyMjMw
Y2ViNTdmZDMxNjViOC4uNzY2ZmFjMzM0NmI1YWNjZGUxODI5ZWFlN2JmNzM0NzQ4NWY5MjE3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcmluZ0FsbEluT25lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyaW5nQWxsSW5PbmUuY3BwCkBA
IC05NSw2ICs5NSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyVGhlbWUuY3BwIgogI2lu
Y2x1ZGUgIlJlbmRlclNlYXJjaEZpZWxkLmNwcCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuY3Bw
IgorI2luY2x1ZGUgIlJlbmRlclNuYXBzaG90dGVkUGx1Z2luLmNwcCIKICNpbmNsdWRlICJSZW5k
ZXJUYWJsZS5jcHAiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDYXB0aW9uLmNwcCIKICNpbmNsdWRl
ICJSZW5kZXJUYWJsZUNlbGwuY3BwIgo=
</data>
<flag name="review"
          id="180326"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>