<?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>128460</bug_id>
          
          <creation_ts>2014-02-08 11:24:07 -0800</creation_ts>
          <short_desc>Subpixel rendering: Make GraphicsLayerClient::paintContents&apos;s clip rect subpixel based.</short_desc>
          <delta_ts>2014-02-11 19:23:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>978393</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-02-08 11:24:07 -0800</bug_when>
    <thetext>This is the first step in transitioning to subpixel render layer offsetting from the integral positioned graphics layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978395</commentid>
    <comment_count>1</comment_count>
      <attachid>223574</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-08 11:44:39 -0800</bug_when>
    <thetext>Created attachment 223574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978397</commentid>
    <comment_count>2</comment_count>
      <attachid>223574</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-08 11:44:58 -0800</bug_when>
    <thetext>Comment on attachment 223574
Patch

EWS testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978412</commentid>
    <comment_count>3</comment_count>
      <attachid>223579</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-08 13:03:29 -0800</bug_when>
    <thetext>Created attachment 223579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>978413</commentid>
    <comment_count>4</comment_count>
      <attachid>223579</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-08 13:03:55 -0800</bug_when>
    <thetext>Comment on attachment 223579
Patch

EWS testing ports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979217</commentid>
    <comment_count>5</comment_count>
      <attachid>223794</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-10 19:37:32 -0800</bug_when>
    <thetext>Created attachment 223794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979264</commentid>
    <comment_count>6</comment_count>
      <attachid>223794</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-10 22:05:55 -0800</bug_when>
    <thetext>Comment on attachment 223794
Patch

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

r- because of my questions.

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:258
&gt; +    m_client-&gt;paintLayerContents(graphicsLayer, graphicsContext, IntRect(clipRect));

enclosingIntRect()? If you plan to change this later, it should get a FIXME I think.

&gt; Source/WebCore/rendering/RenderLayer.cpp:2652
&gt; -static LayoutRect cornerRect(const RenderLayer* layer, const LayoutRect&amp; bounds)
&gt; +static IntRect cornerRect(const RenderLayer* layer, const IntRect&amp; bounds)

Not sure why you changed these; the corner/scrollbar rects need to be device pixel aligned at some point, so won&apos;t that involve going back to layout units?

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:2198
&gt; +    IntRect pixelSnappedRectForIntegralPositionedItems(pixelSnappedIntRect(dirtyRect));

We normally initialize with =, so pixelSnappedRectForIntegralPositionedItems = pixelSnappedIntRect(dirtyRect);

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:2613
&gt; +    IntRect pixelSnappedRectForIntegralPositionedItems(pixelSnappedIntRect(LayoutRect(clip)));

Ditto.

&gt; Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp:403
&gt; +    core(m_webView)-&gt;mainFrame().view()-&gt;paint(&amp;context, IntRect(rectToPaint));

enclosing?

&gt; Source/WebKit/win/WebView.cpp:6736
&gt; +    frame-&gt;view()-&gt;paint(&amp;context, IntRect(inClip));

enclosing?

&gt; Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:278
&gt; +        m_webPage-&gt;drawRect(graphicsContext, IntRect(clipRect));

enclosing?

&gt; Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:284
&gt; +            m_webPage-&gt;drawPageOverlay(pageOverlayLayer.key, graphicsContext, IntRect(clipRect));

ditto.

&gt; Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:196
&gt; +            m_webPage-&gt;drawPageOverlay(overlayAndLayer.key, graphicsContext, IntRect(clipRect));

ditto

&gt; Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:363
&gt; +            m_webPage-&gt;drawPageOverlay(it-&gt;key, graphicsContext, IntRect(clipRect));

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979609</commentid>
    <comment_count>7</comment_count>
      <attachid>223902</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-11 14:47:43 -0800</bug_when>
    <thetext>Created attachment 223902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979613</commentid>
    <comment_count>8</comment_count>
      <attachid>223902</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-11 14:52:07 -0800</bug_when>
    <thetext>Comment on attachment 223902
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        This is the first step in transitioning to subpixel render layer offsetting from 
&gt; +        the integral positioned graphics layer.
&gt; +

You should say what you changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979622</commentid>
    <comment_count>9</comment_count>
      <attachid>223906</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-11 15:03:32 -0800</bug_when>
    <thetext>Created attachment 223906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979623</commentid>
    <comment_count>10</comment_count>
      <attachid>223906</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-11 15:03:55 -0800</bug_when>
    <thetext>Comment on attachment 223906
Patch

EWS testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979722</commentid>
    <comment_count>11</comment_count>
      <attachid>223906</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-11 19:23:41 -0800</bug_when>
    <thetext>Comment on attachment 223906
Patch

Clearing flags on attachment: 223906

Committed r163931: &lt;http://trac.webkit.org/changeset/163931&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979723</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-11 19:23:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223574</attachid>
            <date>2014-02-08 11:44:39 -0800</date>
            <delta_ts>2014-02-08 13:03:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128460-20140208114447.patch</filename>
            <type>text/plain</type>
            <size>27685</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmM2ZkMzdkOTkzYTIy
ZTk1YWU1ODU3YTM2ZTM1NjE2ZmRjNWRmMy4uODQ0ZTQwZTlkNzY3OGQ0YTAyYzU0NmQ5M2Y3Mzgz
OGIwYzdjMDc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTAyLTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIEdyYXBoaWNzTGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMncyBjbGlwIHJlY3Qgc3Vi
cGl4ZWwgYmFzZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIHRyYW5zaXRpb25pbmcgdG8gc3VicGl4ZWwg
cmVuZGVyIGxheWVyIG9mZnNldHRpbmcgZnJvbSAKKyAgICAgICAgdGhlIGludGVncmFsIHBvc2l0
aW9uZWQgZ3JhcGhpY3MgbGF5ZXIuIEZsb2F0UmVjdCBpcyByZXF1aXJlZCB0byBub3QgdG8gbGVh
ayBMYXlvdXRSZWN0CisgICAgICAgIHR5cGUgdG8gV2ViS2l0MiB0aHJvdWdoIHRoZSBHcmFwaGlj
c0NsaWVudCBpbnRlcmZhY2UuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
cm5lclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbENvcm5lclJl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6cmVzaXplckNvcm5lclJlY3QpOiBtYWtlIHJlc2l6ZSBj
b3JuZXIgZXhwbGljaXRseSBpbnRlZ3JhbCBwb3NpdGlvbmVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OnNjcm9sbENvcm5lckFuZFJlc2l6ZXJSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJhclN0YXJ0KTogbWFrZSBzY3JvbGxiYXJz
IGV4cGxpY2l0bHkgaW50ZWdyYWwgcG9zaXRpb25lZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpob3Jpem9udGFsU2Nyb2xsYmFyU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnBhaW50UmVzaXplcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
aGl0VGVzdE92ZXJmbG93Q29udHJvbHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpwYWludCk6CisKIDIwMTQtMDItMDggIEFuZHJl
YXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB0d28gdW51c2Vk
IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1OTk1ZTUzNWI4MzU1ZGY3ZTc4
Njg2Y2I5OGFiOWY1MWQ3NzBlM2Q0Li5kMWU4YjhlYTllZGQwNmRhNzUwN2RmNTU2ZjgwYzM1MmY3
ZWIyNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTQtMDItMDggIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IE1h
a2UgR3JhcGhpY3NMYXllckNsaWVudDo6cGFpbnRDb250ZW50cydzIGNsaXAgcmVjdCBzdWJwaXhl
bCBiYXNlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyODQ2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAgaW4gdHJhbnNpdGlvbmluZyB0byBzdWJwaXhlbCByZW5k
ZXIgbGF5ZXIgb2Zmc2V0dGluZyBmcm9tIAorICAgICAgICB0aGUgaW50ZWdyYWwgcG9zaXRpb25l
ZCBncmFwaGljcyBsYXllci4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RHdGs6OnBhaW50Q29udGVudHMpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhLm1tOiBub3AKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOiBub3AKKyAgICAgICAgKFdlYktp
dDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnBhaW50Q29udGVudHMpOgorCiAyMDE0
LTAyLTA4ICBQaW90ciBHcmFkICA8cC5ncmFkQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtd
IEJ1aWxkIGJyZWFrIGluIFdlYktpdFdlYlZpZXdCYXNlLmNwcDo6d2Via2l0V2ViVmlld0Jhc2VD
cmVhdGVXZWJQYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggZWNhNjI2NGFjNjFlMWRmNGI4NTM0NzQyNDRi
ZTQwYjE3YjRjYzQ2OC4uNDdiNGRmYzE1N2JlMmVlODQ5MzE1NTc5YjkzYzZhNGUwNzQ4MzQzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJDbGllbnQuaApAQCAtMjksNiArMjksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGbG9hdFBvaW50OworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0
OwogY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEludFBvaW50OwpAQCAtNzAsNyArNzEsNyBA
QCBwdWJsaWM6CiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhpcyBsYXllciByZXF1aXJlcyBh
IGZsdXNoIGJlZm9yZSB0aGUgbmV4dCBkaXNwbGF5IHJlZnJlc2guCiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopIHsg
fQogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllcios
IEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRS
ZWN0JiBpbkNsaXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBH
cmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhh
c2UsIGNvbnN0IEZsb2F0UmVjdCYgaW5DbGlwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENv
bW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyB9CiAKICAg
ICAvLyBQcm92aWRlcyBjdXJyZW50IHRyYW5zZm9ybSAodGFraW5nIHRyYW5zZm9ybS1vcmlnaW4g
YW5kIGFuaW1hdGlvbnMgaW50byBhY2NvdW50KS4gSW5wdXQgbWF0cml4IGhhcyBiZWVuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA3MTdiZWU1Y2M4MTBkNzMw
YjFkYTQ3YWJjNmRjNGE5NzcxODE3NGE0Li5hZTA2NTNlYWI2YjZkMGRmNTk0YmNlZjU0NDFmZDhk
MzU0Mzc5ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAg
LTI2NDksNyArMjY0OSw3IEBAIHN0YXRpYyBpbnQgY29ybmVyU3RhcnQoY29uc3QgUmVuZGVyTGF5
ZXIqIGxheWVyLCBpbnQgbWluWCwgaW50IG1heFgsIGludCB0aGlja25lCiAgICAgcmV0dXJuIG1h
eFggLSB0aGlja25lc3MgLSBsYXllci0+cmVuZGVyZXIoKS5zdHlsZSgpLmJvcmRlclJpZ2h0V2lk
dGgoKTsKIH0KIAotc3RhdGljIExheW91dFJlY3QgY29ybmVyUmVjdChjb25zdCBSZW5kZXJMYXll
ciogbGF5ZXIsIGNvbnN0IExheW91dFJlY3QmIGJvdW5kcykKK3N0YXRpYyBJbnRSZWN0IGNvcm5l
clJlY3QoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBJbnRSZWN0JiBib3VuZHMpCiB7
CiAgICAgaW50IGhvcml6b250YWxUaGlja25lc3M7CiAgICAgaW50IHZlcnRpY2FsVGhpY2tuZXNz
OwpAQCAtMjY2OCw3ICsyNjY4LDcgQEAgc3RhdGljIExheW91dFJlY3QgY29ybmVyUmVjdChjb25z
dCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IExheW91dFJlY3QmIGJvdW5kcykKICAgICAgICAg
aG9yaXpvbnRhbFRoaWNrbmVzcyA9IGxheWVyLT52ZXJ0aWNhbFNjcm9sbGJhcigpLT53aWR0aCgp
OwogICAgICAgICB2ZXJ0aWNhbFRoaWNrbmVzcyA9IGxheWVyLT5ob3Jpem9udGFsU2Nyb2xsYmFy
KCktPmhlaWdodCgpOwogICAgIH0KLSAgICByZXR1cm4gTGF5b3V0UmVjdChjb3JuZXJTdGFydChs
YXllciwgYm91bmRzLngoKSwgYm91bmRzLm1heFgoKSwgaG9yaXpvbnRhbFRoaWNrbmVzcyksCisg
ICAgcmV0dXJuIEludFJlY3QoY29ybmVyU3RhcnQobGF5ZXIsIGJvdW5kcy54KCksIGJvdW5kcy5t
YXhYKCksIGhvcml6b250YWxUaGlja25lc3MpLAogICAgICAgICBib3VuZHMubWF4WSgpIC0gdmVy
dGljYWxUaGlja25lc3MgLSBsYXllci0+cmVuZGVyZXIoKS5zdHlsZSgpLmJvcmRlckJvdHRvbVdp
ZHRoKCksCiAgICAgICAgIGhvcml6b250YWxUaGlja25lc3MsIHZlcnRpY2FsVGhpY2tuZXNzKTsK
IH0KQEAgLTI2ODMsMjYgKzI2ODMsMjYgQEAgSW50UmVjdCBSZW5kZXJMYXllcjo6c2Nyb2xsQ29y
bmVyUmVjdCgpIGNvbnN0CiAgICAgYm9vbCBoYXNWZXJ0aWNhbEJhciA9IHZlcnRpY2FsU2Nyb2xs
YmFyKCk7CiAgICAgYm9vbCBoYXNSZXNpemVyID0gcmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgp
ICE9IFJFU0laRV9OT05FOwogICAgIGlmICgoaGFzSG9yaXpvbnRhbEJhciAmJiBoYXNWZXJ0aWNh
bEJhcikgfHwgKGhhc1Jlc2l6ZXIgJiYgKGhhc0hvcml6b250YWxCYXIgfHwgaGFzVmVydGljYWxC
YXIpKSkKLSAgICAgICAgcmV0dXJuIHBpeGVsU25hcHBlZEludFJlY3QoY29ybmVyUmVjdCh0aGlz
LCByZW5kZXJCb3goKS0+Ym9yZGVyQm94UmVjdCgpKSk7CisgICAgICAgIHJldHVybiBjb3JuZXJS
ZWN0KHRoaXMsIHBpeGVsU25hcHBlZEludFJlY3QocmVuZGVyQm94KCktPmJvcmRlckJveFJlY3Qo
KSkpOwogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLXN0YXRpYyBMYXlvdXRSZWN0IHJlc2l6
ZXJDb3JuZXJSZWN0KGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgTGF5b3V0UmVjdCYg
Ym91bmRzKQorc3RhdGljIEludFJlY3QgcmVzaXplckNvcm5lclJlY3QoY29uc3QgUmVuZGVyTGF5
ZXIqIGxheWVyLCBjb25zdCBJbnRSZWN0JiBib3VuZHMpCiB7CiAgICAgQVNTRVJUKGxheWVyLT5y
ZW5kZXJlcigpLmlzQm94KCkpOwogICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS5zdHlsZSgpLnJl
c2l6ZSgpID09IFJFU0laRV9OT05FKQotICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOworICAg
ICAgICByZXR1cm4gSW50UmVjdCgpOwogICAgIHJldHVybiBjb3JuZXJSZWN0KGxheWVyLCBib3Vu
ZHMpOwogfQogCi1MYXlvdXRSZWN0IFJlbmRlckxheWVyOjpzY3JvbGxDb3JuZXJBbmRSZXNpemVy
UmVjdCgpIGNvbnN0CitJbnRSZWN0IFJlbmRlckxheWVyOjpzY3JvbGxDb3JuZXJBbmRSZXNpemVy
UmVjdCgpIGNvbnN0CiB7CiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKICAgICBp
ZiAoIWJveCkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKLSAgICBMYXlvdXRSZWN0IHNjcm9s
bENvcm5lckFuZFJlc2l6ZXIgPSBzY3JvbGxDb3JuZXJSZWN0KCk7CisgICAgSW50UmVjdCBzY3Jv
bGxDb3JuZXJBbmRSZXNpemVyID0gc2Nyb2xsQ29ybmVyUmVjdCgpOwogICAgIGlmIChzY3JvbGxD
b3JuZXJBbmRSZXNpemVyLmlzRW1wdHkoKSkKLSAgICAgICAgc2Nyb2xsQ29ybmVyQW5kUmVzaXpl
ciA9IHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIGJveC0+Ym9yZGVyQm94UmVjdCgpKTsKKyAgICAg
ICAgc2Nyb2xsQ29ybmVyQW5kUmVzaXplciA9IHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIHBpeGVs
U25hcHBlZEludFJlY3QoYm94LT5ib3JkZXJCb3hSZWN0KCkpKTsKICAgICByZXR1cm4gc2Nyb2xs
Q29ybmVyQW5kUmVzaXplcjsKIH0KIApAQCAtMjgxMCw3ICsyODEwLDcgQEAgSW50UmVjdCBSZW5k
ZXJMYXllcjo6cmVjdEZvclZlcnRpY2FsU2Nyb2xsYmFyKGNvbnN0IEludFJlY3QmIGJvcmRlckJv
eFJlY3QpIGNvbnMKICAgICAgICAgYm9yZGVyQm94UmVjdC5oZWlnaHQoKSAtIChib3gtPmJvcmRl
clRvcCgpICsgYm94LT5ib3JkZXJCb3R0b20oKSkgLSBzY3JvbGxDb3JuZXIuaGVpZ2h0KCkpOwog
fQogCi1MYXlvdXRVbml0IFJlbmRlckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJhclN0YXJ0KGludCBt
aW5YLCBpbnQgbWF4WCkgY29uc3QKK2ludCBSZW5kZXJMYXllcjo6dmVydGljYWxTY3JvbGxiYXJT
dGFydChpbnQgbWluWCwgaW50IG1heFgpIGNvbnN0CiB7CiAgICAgY29uc3QgUmVuZGVyQm94KiBi
b3ggPSByZW5kZXJCb3goKTsKICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLnNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxvZ2ljYWxMZWZ0KCkpCkBAIC0yODE4LDEyICsyODE4
LDEyIEBAIExheW91dFVuaXQgUmVuZGVyTGF5ZXI6OnZlcnRpY2FsU2Nyb2xsYmFyU3RhcnQoaW50
IG1pblgsIGludCBtYXhYKSBjb25zdAogICAgIHJldHVybiBtYXhYIC0gYm94LT5ib3JkZXJSaWdo
dCgpIC0gbV92QmFyLT53aWR0aCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckxheWVyOjpob3Jp
em9udGFsU2Nyb2xsYmFyU3RhcnQoaW50IG1pblgpIGNvbnN0CitpbnQgUmVuZGVyTGF5ZXI6Omhv
cml6b250YWxTY3JvbGxiYXJTdGFydChpbnQgbWluWCkgY29uc3QKIHsKICAgICBjb25zdCBSZW5k
ZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGludCB4ID0gbWluWCArIGJveC0+Ym9yZGVy
TGVmdCgpOwogICAgIGlmIChyZW5kZXJlcigpLnN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTG9naWNhbExlZnQoKSkKLSAgICAgICAgeCArPSBtX3ZCYXIgPyBtX3ZC
YXItPndpZHRoKCkgOiByb3VuZFRvSW50KHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIGJveC0+Ym9y
ZGVyQm94UmVjdCgpKS53aWR0aCgpKTsKKyAgICAgICAgeCArPSBtX3ZCYXIgPyBtX3ZCYXItPndp
ZHRoKCkgOiByZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBwaXhlbFNuYXBwZWRJbnRSZWN0KGJveC0+
Ym9yZGVyQm94UmVjdCgpKSkud2lkdGgoKTsKICAgICByZXR1cm4geDsKIH0KIApAQCAtMzQxNSw3
ICszNDE1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3UKICAgICBjb250ZXh0LT5kcmF3SW1h
Z2UocmVzaXplQ29ybmVySW1hZ2UuZ2V0KCksIHJlbmRlcmVyKCkuc3R5bGUoKS5jb2xvclNwYWNl
KCksIHBpeGVsU25hcHBlZEludFJlY3QoaW1hZ2VSZWN0KSk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5
ZXI6OnBhaW50UmVzaXplcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCwgY29uc3QgTGF5b3V0UmVjdCYgZGFtYWdlUmVjdCkKK3ZvaWQgUmVu
ZGVyTGF5ZXI6OnBhaW50UmVzaXplcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFBvaW50JiBwYWludE9mZnNldCwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCkKIHsKICAgICBp
ZiAocmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgpID09IFJFU0laRV9OT05FKQogICAgICAgICBy
ZXR1cm47CkBAIC0zNDIzLDcgKzM0MjMsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludFJlc2l6
ZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbgogICAg
IFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgQVNTRVJUKGJveCk7CiAKLSAgICBM
YXlvdXRSZWN0IGFic1JlY3QgPSByZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBib3gtPmJvcmRlckJv
eFJlY3QoKSk7CisgICAgSW50UmVjdCBhYnNSZWN0ID0gcmVzaXplckNvcm5lclJlY3QodGhpcywg
cGl4ZWxTbmFwcGVkSW50UmVjdChib3gtPmJvcmRlckJveFJlY3QoKSkpOwogICAgIGFic1JlY3Qu
bW92ZUJ5KHBhaW50T2Zmc2V0KTsKICAgICBpZiAoIWFic1JlY3QuaW50ZXJzZWN0cyhkYW1hZ2VS
ZWN0KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ3OCw3ICszNDc4LDcgQEAgYm9vbCBSZW5kZXJM
YXllcjo6aGl0VGVzdE92ZXJmbG93Q29udHJvbHMoSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25z
dCBJbnRQb2ludCYKICAgICAKICAgICBJbnRSZWN0IHJlc2l6ZUNvbnRyb2xSZWN0OwogICAgIGlm
IChyZW5kZXJlcigpLnN0eWxlKCkucmVzaXplKCkgIT0gUkVTSVpFX05PTkUpIHsKLSAgICAgICAg
cmVzaXplQ29udHJvbFJlY3QgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlc2l6ZXJDb3JuZXJSZWN0
KHRoaXMsIGJveC0+Ym9yZGVyQm94UmVjdCgpKSk7CisgICAgICAgIHJlc2l6ZUNvbnRyb2xSZWN0
ID0gcmVzaXplckNvcm5lclJlY3QodGhpcywgcGl4ZWxTbmFwcGVkSW50UmVjdChib3gtPmJvcmRl
ckJveFJlY3QoKSkpOwogICAgICAgICBpZiAocmVzaXplQ29udHJvbFJlY3QuY29udGFpbnMobG9j
YWxQb2ludCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDUyNzA2ZDhlNWQ3OTliMzZmNTFjMGIwMjAzOTI3
MGVlODIwOWFmZGQuLjU3NzlhYzg1ZjFlMDQ0NDA0ZDlhZDc4MWE1ZjI1NzljZTUyOWQzYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC00NTcsNyArNDU3LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBwYWludE92ZXJmbG93Q29udHJvbHMoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBib29sIHBhaW50
aW5nT3ZlcmxheUNvbnRyb2xzID0gZmFsc2UpOwogICAgIHZvaWQgcGFpbnRTY3JvbGxDb3JuZXIo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VS
ZWN0KTsKLSAgICB2b2lkIHBhaW50UmVzaXplcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlv
dXRQb2ludCYsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QpOworICAgIHZvaWQgcGFpbnRS
ZXNpemVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYg
ZGFtYWdlUmVjdCk7CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpOwog
CkBAIC0xMDU3LDcgKzEwNTcsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICAvLyBSZWN0YW5n
bGUgZW5jb21wYXNzaW5nIHRoZSBzY3JvbGwgY29ybmVyIGFuZCByZXNpemVyIHJlY3QuCi0gICAg
TGF5b3V0UmVjdCBzY3JvbGxDb3JuZXJBbmRSZXNpemVyUmVjdCgpIGNvbnN0OworICAgIEludFJl
Y3Qgc2Nyb2xsQ29ybmVyQW5kUmVzaXplclJlY3QoKSBjb25zdDsKIAogICAgIC8vIE5PVEU6IFRo
aXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVycmlkZW4gc2V0U2Nyb2xsT2Zmc2V0
IGZyb20gU2Nyb2xsYWJsZUFyZWEuCiAgICAgdm9pZCBzY3JvbGxUbyhpbnQsIGludCk7CkBAIC0x
MTQ1LDggKzExNDUsOCBAQCBwcml2YXRlOgogICAgIEludFJlY3QgcmVjdEZvckhvcml6b250YWxT
Y3JvbGxiYXIoY29uc3QgSW50UmVjdCYgYm9yZGVyQm94UmVjdCkgY29uc3Q7CiAgICAgSW50UmVj
dCByZWN0Rm9yVmVydGljYWxTY3JvbGxiYXIoY29uc3QgSW50UmVjdCYgYm9yZGVyQm94UmVjdCkg
Y29uc3Q7CiAKLSAgICBMYXlvdXRVbml0IHZlcnRpY2FsU2Nyb2xsYmFyU3RhcnQoaW50IG1pblgs
IGludCBtYXhYKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGhvcml6b250YWxTY3JvbGxiYXJTdGFy
dChpbnQgbWluWCkgY29uc3Q7CisgICAgaW50IHZlcnRpY2FsU2Nyb2xsYmFyU3RhcnQoaW50IG1p
blgsIGludCBtYXhYKSBjb25zdDsKKyAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhclN0YXJ0KGlu
dCBtaW5YKSBjb25zdDsKIAogICAgIGJvb2wgb3ZlcmZsb3dDb250cm9sc0ludGVyc2VjdFJlY3Qo
Y29uc3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCA2MTFmYzY4NTkwZmQyY2Y3ZjZm
MWMzZDA4Nzg1MmVlYzNkMGJmM2NmLi43OThhYWViY2FmNmQzYmM1YmYwMzdkNDE0MTA0ODRkZjFl
NDFiYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcApAQCAtMjEyNyw4ICsyMTI3LDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNl
dENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgciwgR3JhcGhpY3MKIH0K
IAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwKLSAgICAgICAg
ICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0eVJlY3QsIC8vIEluIHRoZSBjb29y
ZHMgb2Ygcm9vdExheWVyLgotICAgICAgICAgICAgICAgICAgICBQYWludEJlaGF2aW9yIHBhaW50
QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2UpCisgICAg
Y29uc3QgTGF5b3V0UmVjdCYgcGFpbnREaXJ0eVJlY3QsIC8vIEluIHRoZSBjb29yZHMgb2Ygcm9v
dExheWVyLgorICAgIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvciwgR3JhcGhpY3NMYXllclBh
aW50aW5nUGhhc2UgcGFpbnRpbmdQaGFzZSkKIHsKICAgICBpZiAocGFpbnRzSW50b1dpbmRvdygp
IHx8IHBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSkgewogI2lmICFQTEFURk9STShJT1Mp
CkBAIC0yMTg2LDEzICsyMTg2LDE3IEBAIHN0YXRpYyB2b2lkIHBhaW50U2Nyb2xsYmFyKFNjcm9s
bGJhciogc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiB9CiAKIC8v
IFVwLWNhbGwgZnJvbSBjb21wb3NpdGluZyBsYXllciBkcmF3aW5nIGNhbGxiYWNrLgotdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3Jh
cGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSBwYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwKQordm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFz
ZSBwYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXApCiB7CiAjaWZuZGVmIE5ERUJV
RwogICAgIGlmIChQYWdlKiBwYWdlID0gcmVuZGVyZXIoKS5mcmFtZSgpLnBhZ2UoKSkKICAgICAg
ICAgcGFnZS0+c2V0SXNQYWludGluZyh0cnVlKTsKICNlbmRpZgogCisgICAgLy8gVGhlIGRpcnR5
UmVjdCBpcyBpbiB0aGUgY29vcmRzIG9mIHRoZSBwYWludGluZyByb290LgorICAgIExheW91dFJl
Y3QgZGlydHlSZWN0KGNsaXApOworICAgIEludFJlY3QgcGl4ZWxTbmFwcGVkUmVjdEZvckludGVn
cmFsUG9zaXRpb25lZEl0ZW1zKHBpeGVsU25hcHBlZEludFJlY3QoZGlydHlSZWN0KSk7CisKICAg
ICBpZiAoZ3JhcGhpY3NMYXllciA9PSBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCkKICAgICAgICAgfHwg
Z3JhcGhpY3NMYXllciA9PSBtX2ZvcmVncm91bmRMYXllci5nZXQoKQogICAgICAgICB8fCBncmFw
aGljc0xheWVyID09IG1fYmFja2dyb3VuZExheWVyLmdldCgpCkBAIC0yMjAwLDI2ICsyMjA0LDI0
IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoCiAgICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0g
bV9zY3JvbGxpbmdDb250ZW50c0xheWVyLmdldCgpKSB7CiAgICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFBhaW50KCZyZW5kZXJlcigpKTsKIAotICAgICAgICAvLyBUaGUgZGly
dHlSZWN0IGlzIGluIHRoZSBjb29yZHMgb2YgdGhlIHBhaW50aW5nIHJvb3QuCi0gICAgICAgIElu
dFJlY3QgZGlydHlSZWN0ID0gY2xpcDsKICAgICAgICAgaWYgKCEocGFpbnRpbmdQaGFzZSAmIEdy
YXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHMpKQogICAgICAgICAgICAgZGlydHlSZWN0
LmludGVyc2VjdChlbmNsb3NpbmdJbnRSZWN0KGNvbXBvc2l0ZWRCb3VuZHNJbmNsdWRpbmdNYXJn
aW4oKSkpOwogCiAgICAgICAgIC8vIFdlIGhhdmUgdG8gdXNlIHRoZSBzYW1lIHJvb3QgYXMgZm9y
IGhpdCB0ZXN0aW5nLCBiZWNhdXNlIGJvdGggbWV0aG9kcyBjYW4gY29tcHV0ZSBhbmQgY2FjaGUg
Y2xpcFJlY3RzLgogICAgICAgICBwYWludEludG9MYXllcihncmFwaGljc0xheWVyLCAmY29udGV4
dCwgZGlydHlSZWN0LCBQYWludEJlaGF2aW9yTm9ybWFsLCBwYWludGluZ1BoYXNlKTsKIAotICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KCZyZW5kZXJlcigpLCAmY29u
dGV4dCwgY2xpcCk7CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnQo
JnJlbmRlcmVyKCksICZjb250ZXh0LCBkaXJ0eVJlY3QpOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhp
Y3NMYXllciA9PSBsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkgewotICAgICAgICBwYWlu
dFNjcm9sbGJhcihtX293bmluZ0xheWVyLmhvcml6b250YWxTY3JvbGxiYXIoKSwgY29udGV4dCwg
Y2xpcCk7CisgICAgICAgIHBhaW50U2Nyb2xsYmFyKG1fb3duaW5nTGF5ZXIuaG9yaXpvbnRhbFNj
cm9sbGJhcigpLCBjb250ZXh0LCBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVk
SXRlbXMpOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvclZlcnRpY2Fs
U2Nyb2xsYmFyKCkpIHsKLSAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9vd25pbmdMYXllci52ZXJ0
aWNhbFNjcm9sbGJhcigpLCBjb250ZXh0LCBjbGlwKTsKKyAgICAgICAgcGFpbnRTY3JvbGxiYXIo
bV9vd25pbmdMYXllci52ZXJ0aWNhbFNjcm9sbGJhcigpLCBjb250ZXh0LCBwaXhlbFNuYXBwZWRS
ZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVkSXRlbXMpOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NM
YXllciA9PSBsYXllckZvclNjcm9sbENvcm5lcigpKSB7Ci0gICAgICAgIGNvbnN0IExheW91dFJl
Y3QmIHNjcm9sbENvcm5lckFuZFJlc2l6ZXIgPSBtX293bmluZ0xheWVyLnNjcm9sbENvcm5lckFu
ZFJlc2l6ZXJSZWN0KCk7CisgICAgICAgIEludFJlY3Qgc2Nyb2xsQ29ybmVyQW5kUmVzaXplciA9
IG1fb3duaW5nTGF5ZXIuc2Nyb2xsQ29ybmVyQW5kUmVzaXplclJlY3QoKTsKICAgICAgICAgY29u
dGV4dC5zYXZlKCk7CiAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKC1zY3JvbGxDb3JuZXJBbmRS
ZXNpemVyLngoKSwgLXNjcm9sbENvcm5lckFuZFJlc2l6ZXIueSgpKTsKLSAgICAgICAgTGF5b3V0
UmVjdCB0cmFuc2Zvcm1lZENsaXAgPSBjbGlwOworICAgICAgICBJbnRSZWN0IHRyYW5zZm9ybWVk
Q2xpcCA9IHBpeGVsU25hcHBlZFJlY3RGb3JJbnRlZ3JhbFBvc2l0aW9uZWRJdGVtczsKICAgICAg
ICAgdHJhbnNmb3JtZWRDbGlwLm1vdmVCeShzY3JvbGxDb3JuZXJBbmRSZXNpemVyLmxvY2F0aW9u
KCkpOwotICAgICAgICBtX293bmluZ0xheWVyLnBhaW50U2Nyb2xsQ29ybmVyKCZjb250ZXh0LCBJ
bnRQb2ludCgpLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHRyYW5zZm9ybWVkQ2xpcCkpOworICAgICAg
ICBtX293bmluZ0xheWVyLnBhaW50U2Nyb2xsQ29ybmVyKCZjb250ZXh0LCBJbnRQb2ludCgpLCB0
cmFuc2Zvcm1lZENsaXApOwogICAgICAgICBtX293bmluZ0xheWVyLnBhaW50UmVzaXplcigmY29u
dGV4dCwgSW50UG9pbnQoKSwgdHJhbnNmb3JtZWRDbGlwKTsKICAgICAgICAgY29udGV4dC5yZXN0
b3JlKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oCmluZGV4IDU4ZTMwYzRlNjlmOTNhMzVlNTkwZjIzNTEyOTFjZGQ3MmZlZTc5MTAuLmZi
YzdmY2VhMDZiYzFjZWZjYTJkZTAxNjdmZDE0NGVlOTA5ODIxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTE2NSw3ICsxNjUsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURp
c3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRl
eHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBG
bG9hdFJlY3QmIGNsaXApIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxvYXQgY29udGVudHNTY2Fs
ZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3Qgb3ZlcnJp
ZGU7CkBAIC0yODMsNyArMjgzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc1RpbGVkQmFja2lu
Z0ZsYXR0ZW5pbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIChtX2NoaWxkQ29udGFpbm1lbnRMYXll
ciAmJiBtX3VzaW5nVGlsZWRDYWNoZUxheWVyKTsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIHRpbGVD
YWNoZUZsYXR0ZW5pbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdXNpbmdUaWxlZENhY2hlTGF5
ZXIgPyBtX2NoaWxkQ29udGFpbm1lbnRMYXllci5nZXQoKSA6IDA7IH0KIAotICAgIHZvaWQgcGFp
bnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0
IEludFJlY3QmIHBhaW50RGlydHlSZWN0LCBQYWludEJlaGF2aW9yLCBHcmFwaGljc0xheWVyUGFp
bnRpbmdQaGFzZSk7CisgICAgdm9pZCBwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVy
KiwgR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBh
aW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlKTsKIAogICAgIC8vIEhlbHBl
ciBmdW5jdGlvbiBmb3IgdXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5LgogICAgIHZvaWQgYWRq
dXN0QW5jZXN0b3JDb21wb3NpdGluZ0JvdW5kc0ZvckZsb3dUaHJlYWQoSW50UmVjdCYgYW5jZXN0
b3JDb21wb3NpdGluZ0JvdW5kcywgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0
b3IpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAppbmRleCA3Y2E3Yzc2M2IwMTQyZjg1MDY4NDRjN2ZkZWM1OTRiOGJlNDdj
M2I4Li42NmI0MDYwMjJjMzc1OTJjNGI1ZGU2ZmUxZjZkYzkxNDA1N2JlNDllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAt
MjYwOCwxNyArMjYwOCwxOCBAQCBzdGF0aWMgdm9pZCBwYWludFNjcm9sbGJhcihTY3JvbGxiYXIq
IHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGNvbnRleHQu
cmVzdG9yZSgpOwogfQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFpbnRDb250ZW50
cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwKQor
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwKQogeworICAgIEludFJlY3Qg
cGl4ZWxTbmFwcGVkUmVjdEZvckludGVncmFsUG9zaXRpb25lZEl0ZW1zKHBpeGVsU25hcHBlZElu
dFJlY3QoTGF5b3V0UmVjdChjbGlwKSkpOwogICAgIGlmIChncmFwaGljc0xheWVyID09IGxheWVy
Rm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpKQotICAgICAgICBwYWludFNjcm9sbGJhcihtX3JlbmRl
clZpZXcuZnJhbWVWaWV3KCkuaG9yaXpvbnRhbFNjcm9sbGJhcigpLCBjb250ZXh0LCBjbGlwKTsK
KyAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmhvcml6b250
YWxTY3JvbGxiYXIoKSwgY29udGV4dCwgcGl4ZWxTbmFwcGVkUmVjdEZvckludGVncmFsUG9zaXRp
b25lZEl0ZW1zKTsKICAgICBlbHNlIGlmIChncmFwaGljc0xheWVyID09IGxheWVyRm9yVmVydGlj
YWxTY3JvbGxiYXIoKSkKLSAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9yZW5kZXJWaWV3LmZyYW1l
VmlldygpLnZlcnRpY2FsU2Nyb2xsYmFyKCksIGNvbnRleHQsIGNsaXApOworICAgICAgICBwYWlu
dFNjcm9sbGJhcihtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkudmVydGljYWxTY3JvbGxiYXIoKSwg
Y29udGV4dCwgcGl4ZWxTbmFwcGVkUmVjdEZvckludGVncmFsUG9zaXRpb25lZEl0ZW1zKTsKICAg
ICBlbHNlIGlmIChncmFwaGljc0xheWVyID09IGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkpIHsKICAg
ICAgICAgY29uc3QgSW50UmVjdCYgc2Nyb2xsQ29ybmVyID0gbV9yZW5kZXJWaWV3LmZyYW1lVmll
dygpLnNjcm9sbENvcm5lclJlY3QoKTsKICAgICAgICAgY29udGV4dC5zYXZlKCk7CiAgICAgICAg
IGNvbnRleHQudHJhbnNsYXRlKC1zY3JvbGxDb3JuZXIueCgpLCAtc2Nyb2xsQ29ybmVyLnkoKSk7
Ci0gICAgICAgIEludFJlY3QgdHJhbnNmb3JtZWRDbGlwID0gY2xpcDsKKyAgICAgICAgSW50UmVj
dCB0cmFuc2Zvcm1lZENsaXAgPSBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVk
SXRlbXM7CiAgICAgICAgIHRyYW5zZm9ybWVkQ2xpcC5tb3ZlQnkoc2Nyb2xsQ29ybmVyLmxvY2F0
aW9uKCkpOwogICAgICAgICBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkucGFpbnRTY3JvbGxDb3Ju
ZXIoJmNvbnRleHQsIHRyYW5zZm9ybWVkQ2xpcCk7CiAgICAgICAgIGNvbnRleHQucmVzdG9yZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
CmluZGV4IDZiMDQzZjg4ZDQwNTFkODMyMmFmYzkzZWE3ZTU4NDlhZmM2ZTYyYWYuLmQ3OGJlMGYx
YzljNzVjNGY0MWU0NTVjNTAyNGNlYWE2OTY2Y2QwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTMwNyw3ICszMDcsNyBAQCBw
cml2YXRlOgogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQgaW1wbGVtZW50YXRpb24KICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwg
ZG91YmxlKSBvdmVycmlkZSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJl
ZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50
Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNz
TGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4
dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlk
ZTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdCBvdmVycmlk
ZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXgg
NTg2N2ExMTIxMWUzNTk1ZWE2ZWEzNjc2OWZjOTI2MWMyMTA1N2I2YS4uMTBhYzFiNDZiMWNhZmVk
NzcyMDU3OWIzMTM4YzRiNDhjOTU5OWUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcldpZGdldC5jcHAKQEAgLTI5OSw3ICsyOTksNyBAQCB2b2lkIFJlbmRlcldpZGdldDo6cGFp
bnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkK
ICAgICB9CiAKICAgICBpZiAoaGFzTGF5ZXIoKSAmJiBsYXllcigpLT5jYW5SZXNpemUoKSkKLSAg
ICAgICAgbGF5ZXIoKS0+cGFpbnRSZXNpemVyKHBhaW50SW5mby5jb250ZXh0LCByb3VuZGVkSW50
UG9pbnQoYWRqdXN0ZWRQYWludE9mZnNldCksIHBhaW50SW5mby5yZWN0KTsKKyAgICAgICAgbGF5
ZXIoKS0+cGFpbnRSZXNpemVyKHBhaW50SW5mby5jb250ZXh0LCByb3VuZGVkSW50UG9pbnQoYWRq
dXN0ZWRQYWludE9mZnNldCksIHBpeGVsU25hcHBlZEludFJlY3QocGFpbnRJbmZvLnJlY3QpKTsK
IH0KIAogdm9pZCBSZW5kZXJXaWRnZXQ6OnNldE92ZXJsYXBUZXN0UmVzdWx0KGJvb2wgaXNPdmVy
bGFwcGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9MYXllclRyZWVIb3N0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKaW5kZXggNzBmNmM4MzY1MTM5ZGM1MzcyZjhmNWYw
MTVkMjVhMWZiZjllNDZhMy4uNzIzN2Q0NDhjMjAyODExODk0ZWRkZjBiNjNlYTJjZjBjNWY5OGVm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXll
clRyZWVIb3N0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCkBAIC0yNzIsMTYgKzI3MiwxNiBAQCB2b2lkIExheWVy
VHJlZUhvc3RHdGs6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopCiB7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6cGFpbnRDb250ZW50cyhjb25z
dCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNz
Q29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBS
ZWN0KQordm9pZCBMYXllclRyZWVIb3N0R3RrOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCkKIHsK
ICAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIuZ2V0
KCkpIHsKLSAgICAgICAgbV93ZWJQYWdlLT5kcmF3UmVjdChncmFwaGljc0NvbnRleHQsIGNsaXBS
ZWN0KTsKKyAgICAgICAgbV93ZWJQYWdlLT5kcmF3UmVjdChncmFwaGljc0NvbnRleHQsIEludFJl
Y3QoY2xpcFJlY3QpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGZvciAoYXV0byYg
cGFnZU92ZXJsYXlMYXllciA6IG1fcGFnZU92ZXJsYXlMYXllcnMpIHsKICAgICAgICAgaWYgKHBh
Z2VPdmVybGF5TGF5ZXIudmFsdWUuZ2V0KCkgPT0gZ3JhcGhpY3NMYXllcikgewotICAgICAgICAg
ICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkocGFnZU92ZXJsYXlMYXllci5rZXksIGdyYXBo
aWNzQ29udGV4dCwgY2xpcFJlY3QpOworICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92
ZXJsYXkocGFnZU92ZXJsYXlMYXllci5rZXksIGdyYXBoaWNzQ29udGV4dCwgSW50UmVjdChjbGlw
UmVjdCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0
ay5oCmluZGV4IGJiMzBiMDk5MDUzZjI0YTUxY2U1NmQ2ZDU4NGZhYzcwNWIwYjliMjUuLjFjYmNm
M2U1NzRmOWVkY2VmYzFiN2I5MTRhZTAxNjI3ODdlYTY4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCkBA
IC03OSw3ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAgIHZpcnR1YWwgdm9pZCBw
YWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRl
bnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNG
b3JMYXllcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgeyB9CiAKICAgICB2
b2lkIGNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIoUGFnZU92ZXJsYXkqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCBiOTcxMjU3ZWQ3NmZhOWU0OTIwMGNmNzA1ZjExMWZh
NWQ0MjU1OTFiLi43NTlmYTE5MzRkNGYxNTdlNTczYThkOTBhNWY2ZDQxYjFjMDUxZmNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC04MCw3ICs4MCw3IEBAIHByaXZh
dGU6CiAgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBk
b3VibGUgdGltZSkgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGNvbnN0IG92ZXJyaWRlIHsgfQogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IDMyMGE0OGFkM2IxOTA2YWJiYmU1YjRm
OTUzNDNlY2QyZTIzNjQ1ZDQuLmJiODkxN2Q5ZWFlMTRjMGEzYzlmMjc0NjliNzg4NmQwNDFiMWQ0
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtMTg5LDExICsx
ODksMTEgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Y2xlYXJQYWdlT3Zlcmxh
eShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCiAgICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2goKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6cGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQm
IGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJl
Y3QmIGNsaXBSZWN0KQordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6cGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQm
IGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0
UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBvdmVybGF5QW5kTGF5ZXIg
OiBtX3BhZ2VPdmVybGF5TGF5ZXJzKSB7CiAgICAgICAgIGlmIChvdmVybGF5QW5kTGF5ZXIudmFs
dWUuZ2V0KCkgPT0gZ3JhcGhpY3NMYXllcikgewotICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3
UGFnZU92ZXJsYXkob3ZlcmxheUFuZExheWVyLmtleSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVj
dCk7CisgICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShvdmVybGF5QW5kTGF5
ZXIua2V5LCBncmFwaGljc0NvbnRleHQsIEludFJlY3QoY2xpcFJlY3QpKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5oCmluZGV4IDFlZTJhMDUwYjg2MWU3NjgxNmI1MWFiZjcwZDdlY2E2OWM3ZjkzYjIu
LmU1MGViNzY2ODUwYWJiMWJjNDUyNjNmMzRjZjM1MjYxZjc3ZTgzMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToK
ICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJs
ZSB0aW1lKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIGNsaXBSZWN0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
Y29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCmluZGV4IDkwOTE2NWRkM2MxNjk5MmFmZGU1YjAyNzc1M2NiYWE2NWJkN2E0MGQuLmQ0NWE0
ODk5ZGM5M2RjYjc3MTc0MDA3OWRkMDQ1MmM0MmY2MmNiZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtMzU2LDExICszNTYsMTEgQEAgdm9pZCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFw
aGljc0xheWVyKikKIHsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGlj
c0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNv
bnN0IEludFJlY3QmIGNsaXBSZWN0KQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFw
aGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2Us
IGNvbnN0IEZsb2F0UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgZm9yIChhdXRvIGl0ID0gbV9wYWdl
T3ZlcmxheUxheWVycy5iZWdpbigpLCBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmVuZCgpOyBp
dCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgaWYgKGl0LT52YWx1ZS5nZXQoKSA9PSBncmFwaGlj
c0xheWVyKSB7Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShpdC0+a2V5
LCBncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+ZHJh
d1BhZ2VPdmVybGF5KGl0LT5rZXksIGdyYXBoaWNzQ29udGV4dCwgSW50UmVjdChjbGlwUmVjdCkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223579</attachid>
            <date>2014-02-08 13:03:29 -0800</date>
            <delta_ts>2014-02-10 19:37:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128460-20140208130341.patch</filename>
            <type>text/plain</type>
            <size>32663</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmM2ZkMzdkOTkzYTIy
ZTk1YWU1ODU3YTM2ZTM1NjE2ZmRjNWRmMy4uY2VmMmMzMDI4ZmM1NGNlMTA1MzYyMmU3ZjJjYzNi
NWEwODBmMzE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTAyLTA4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIEdyYXBoaWNzTGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMncyBjbGlwIHJlY3Qgc3Vi
cGl4ZWwgYmFzZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIHRyYW5zaXRpb25pbmcgdG8gc3VicGl4ZWwg
cmVuZGVyIGxheWVyIG9mZnNldHRpbmcgZnJvbSAKKyAgICAgICAgdGhlIGludGVncmFsIHBvc2l0
aW9uZWQgZ3JhcGhpY3MgbGF5ZXIuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxp
dHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0
aW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGlu
YXRvcjo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29ybmVyUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsQ29ybmVyUmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpyZXNpemVyQ29ybmVyUmVjdCk6IG1ha2UgcmVzaXplIGNvcm5lciBleHBsaWNpdGx5
IGludGVncmFsIHBvc2l0aW9uZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Ny
b2xsQ29ybmVyQW5kUmVzaXplclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnZlcnRpY2FsU2Nyb2xsYmFyU3RhcnQpOiBtYWtlIHNjcm9sbGJhcnMgZXhwbGljaXRseSBpbnRl
Z3JhbCBwb3NpdGlvbmVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Omhvcml6b250
YWxTY3JvbGxiYXJTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRS
ZXNpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dD
b250cm9scyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWludENv
bnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJXaWRnZXQ6OnBhaW50KToKKwogMjAxNC0wMi0wOCAgQW5kcmVhcyBLbGluZyAgPGFrbGlu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHR3byB1bnVzZWQgZnVuY3Rpb24gZGVjbGFy
YXRpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGJjZGM3MDFjMjE1OGZmY2FmM2NlNjk0ZWVkMWRm
MzdlYjUyMTdmYTMuLjE0ZmM0MjNlOGQxNDU1ZWI3NGQwM2U0NjQ1MWE3YmQ4ODIzOWJlMWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0wMi0wOCAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFN1YnBpeGVsIHJlbmRlcmluZzogTWFrZSBH
cmFwaGljc0xheWVyQ2xpZW50OjpwYWludENvbnRlbnRzJ3MgY2xpcCByZWN0IHN1YnBpeGVsIGJh
c2VkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4
NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBpcyB0aGUgZmlyc3Qgc3RlcCBpbiB0cmFuc2l0aW9uaW5nIHRvIHN1YnBpeGVsIHJlbmRlciBs
YXllciBvZmZzZXR0aW5nIGZyb20gCisgICAgICAgIHRoZSBpbnRlZ3JhbCBwb3NpdGlvbmVkIGdy
YXBoaWNzIGxheWVyLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisg
ICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpwYWludENvbnRlbnRzKToK
KyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMTQtMDItMDYgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgQ29uc29sZSBz
dXBwb3J0IHRvIEpTQ29udGV4dCBJbnNwZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTk5NWU1MzViODM1
NWRmN2U3ODY4NmNiOThhYjlmNTFkNzcwZTNkNC4uZDFlOGI4ZWE5ZWRkMDZkYTc1MDdkZjU1NmY4
MGMzNTJmN2ViMjYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTAyLTA4ICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVy
aW5nOiBNYWtlIEdyYXBoaWNzTGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMncyBjbGlwIHJlY3Qg
c3VicGl4ZWwgYmFzZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjg0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIHRyYW5zaXRpb25pbmcgdG8gc3VicGl4
ZWwgcmVuZGVyIGxheWVyIG9mZnNldHRpbmcgZnJvbSAKKyAgICAgICAgdGhlIGludGVncmFsIHBv
c2l0aW9uZWQgZ3JhcGhpY3MgbGF5ZXIuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9u
YWxpdHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0R3RrOjpwYWludENvbnRlbnRz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbTogbm9wCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbTogbm9wCisgICAgICAg
IChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpwYWludENvbnRlbnRzKToK
KwogMjAxNC0wMi0wOCAgUGlvdHIgR3JhZCAgPHAuZ3JhZEBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbR1RLXSBCdWlsZCBicmVhayBpbiBXZWJLaXRXZWJWaWV3QmFzZS5jcHA6OndlYmtpdFdlYlZp
ZXdCYXNlQ3JlYXRlV2ViUGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCmluZGV4IGVjYTYyNjRhYzYxZTFkZjRiODUz
NDc0MjQ0YmU0MGIxN2I0Y2M0NjguLjQ3YjRkZmMxNTdiZTJlZTg0OTMxNTU3OWI5M2M2YTRlMDc0
ODM0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRmxvYXRQb2ludDsKK2NsYXNzIEZsb2F0UmVjdDsKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBJbnRQb2ludDsKQEAgLTcwLDcg
KzcxLDcgQEAgcHVibGljOgogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IHRoaXMgbGF5ZXIgcmVx
dWlyZXMgYSBmbHVzaCBiZWZvcmUgdGhlIG5leHQgZGlzcGxheSByZWZyZXNoLgogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29u
c3QgSW50UmVjdCYgaW5DbGlwKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMo
Y29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGluQ2xpcCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsg
fQogCiAgICAgLy8gUHJvdmlkZXMgY3VycmVudCB0cmFuc2Zvcm0gKHRha2luZyB0cmFuc2Zvcm0t
b3JpZ2luIGFuZCBhbmltYXRpb25zIGludG8gYWNjb3VudCkuIElucHV0IG1hdHJpeCBoYXMgYmVl
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
Y3BwCmluZGV4IDJiNWIxMTkzYmM1MzA4MGJlZTkyMWQyMjJkZmVjZTRlYWQ2ZDkxMGYuLjgxOGNj
NzA4NGMxZWYzNDk1YjZhZDlkYTE1NDI5NDkyZmUxNjczNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nv
b3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKQEAgLTI1Myw5ICsyNTMs
OSBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgR3JhcGhpY3NMYXllciopCiB9CiAKIAotdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNz
Q29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29u
c3QgSW50UmVjdCYgY2xpcFJlY3QpCit2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnBhaW50
Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250
ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBG
bG9hdFJlY3QmIGNsaXBSZWN0KQogewotICAgIG1fY2xpZW50LT5wYWludExheWVyQ29udGVudHMo
Z3JhcGhpY3NMYXllciwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAgbV9jbGllbnQt
PnBhaW50TGF5ZXJDb250ZW50cyhncmFwaGljc0xheWVyLCBncmFwaGljc0NvbnRleHQsIEludFJl
Y3QoY2xpcFJlY3QpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IENvbXBv
c2l0aW5nQ29vcmRpbmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVu
dCogY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3Jk
aW5hdG9yLmgKaW5kZXggODRiODUzMjc4YzhhYzI1ZDkyNTQzYzg3MGU0ZTQ3N2RiZTIzN2FkYi4u
NGJjNTYyNTcyZjI5MDQ2NGU1MGY3OTEwMjg0ZDlkM2QzYWU5MjIxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0
aW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCkBAIC05MSw3ICs5MSw3
IEBAIHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGlt
ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFp
bnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRl
eHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVj
dCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDcx
N2JlZTVjYzgxMGQ3MzBiMWRhNDdhYmM2ZGM0YTk3NzE4MTc0YTQuLmFlMDY1M2VhYjZiNmQwZGY1
OTRiY2VmNTQ0MWZkOGQzNTQzNzlkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcApAQCAtMjY0OSw3ICsyNjQ5LDcgQEAgc3RhdGljIGludCBjb3JuZXJTdGFydChj
b25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGludCBtaW5YLCBpbnQgbWF4WCwgaW50IHRoaWNrbmUK
ICAgICByZXR1cm4gbWF4WCAtIHRoaWNrbmVzcyAtIGxheWVyLT5yZW5kZXJlcigpLnN0eWxlKCku
Ym9yZGVyUmlnaHRXaWR0aCgpOwogfQogCi1zdGF0aWMgTGF5b3V0UmVjdCBjb3JuZXJSZWN0KGNv
bnN0IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgTGF5b3V0UmVjdCYgYm91bmRzKQorc3RhdGlj
IEludFJlY3QgY29ybmVyUmVjdChjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IEludFJl
Y3QmIGJvdW5kcykKIHsKICAgICBpbnQgaG9yaXpvbnRhbFRoaWNrbmVzczsKICAgICBpbnQgdmVy
dGljYWxUaGlja25lc3M7CkBAIC0yNjY4LDcgKzI2NjgsNyBAQCBzdGF0aWMgTGF5b3V0UmVjdCBj
b3JuZXJSZWN0KGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgTGF5b3V0UmVjdCYgYm91
bmRzKQogICAgICAgICBob3Jpem9udGFsVGhpY2tuZXNzID0gbGF5ZXItPnZlcnRpY2FsU2Nyb2xs
YmFyKCktPndpZHRoKCk7CiAgICAgICAgIHZlcnRpY2FsVGhpY2tuZXNzID0gbGF5ZXItPmhvcml6
b250YWxTY3JvbGxiYXIoKS0+aGVpZ2h0KCk7CiAgICAgfQotICAgIHJldHVybiBMYXlvdXRSZWN0
KGNvcm5lclN0YXJ0KGxheWVyLCBib3VuZHMueCgpLCBib3VuZHMubWF4WCgpLCBob3Jpem9udGFs
VGhpY2tuZXNzKSwKKyAgICByZXR1cm4gSW50UmVjdChjb3JuZXJTdGFydChsYXllciwgYm91bmRz
LngoKSwgYm91bmRzLm1heFgoKSwgaG9yaXpvbnRhbFRoaWNrbmVzcyksCiAgICAgICAgIGJvdW5k
cy5tYXhZKCkgLSB2ZXJ0aWNhbFRoaWNrbmVzcyAtIGxheWVyLT5yZW5kZXJlcigpLnN0eWxlKCku
Ym9yZGVyQm90dG9tV2lkdGgoKSwKICAgICAgICAgaG9yaXpvbnRhbFRoaWNrbmVzcywgdmVydGlj
YWxUaGlja25lc3MpOwogfQpAQCAtMjY4MywyNiArMjY4MywyNiBAQCBJbnRSZWN0IFJlbmRlckxh
eWVyOjpzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QKICAgICBib29sIGhhc1ZlcnRpY2FsQmFyID0g
dmVydGljYWxTY3JvbGxiYXIoKTsKICAgICBib29sIGhhc1Jlc2l6ZXIgPSByZW5kZXJlcigpLnN0
eWxlKCkucmVzaXplKCkgIT0gUkVTSVpFX05PTkU7CiAgICAgaWYgKChoYXNIb3Jpem9udGFsQmFy
ICYmIGhhc1ZlcnRpY2FsQmFyKSB8fCAoaGFzUmVzaXplciAmJiAoaGFzSG9yaXpvbnRhbEJhciB8
fCBoYXNWZXJ0aWNhbEJhcikpKQotICAgICAgICByZXR1cm4gcGl4ZWxTbmFwcGVkSW50UmVjdChj
b3JuZXJSZWN0KHRoaXMsIHJlbmRlckJveCgpLT5ib3JkZXJCb3hSZWN0KCkpKTsKKyAgICAgICAg
cmV0dXJuIGNvcm5lclJlY3QodGhpcywgcGl4ZWxTbmFwcGVkSW50UmVjdChyZW5kZXJCb3goKS0+
Ym9yZGVyQm94UmVjdCgpKSk7CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAotc3RhdGljIExh
eW91dFJlY3QgcmVzaXplckNvcm5lclJlY3QoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25z
dCBMYXlvdXRSZWN0JiBib3VuZHMpCitzdGF0aWMgSW50UmVjdCByZXNpemVyQ29ybmVyUmVjdChj
b25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IEludFJlY3QmIGJvdW5kcykKIHsKICAgICBB
U1NFUlQobGF5ZXItPnJlbmRlcmVyKCkuaXNCb3goKSk7CiAgICAgaWYgKGxheWVyLT5yZW5kZXJl
cigpLnN0eWxlKCkucmVzaXplKCkgPT0gUkVTSVpFX05PTkUpCi0gICAgICAgIHJldHVybiBMYXlv
dXRSZWN0KCk7CisgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAgICAgcmV0dXJuIGNvcm5lclJl
Y3QobGF5ZXIsIGJvdW5kcyk7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyTGF5ZXI6OnNjcm9sbENv
cm5lckFuZFJlc2l6ZXJSZWN0KCkgY29uc3QKK0ludFJlY3QgUmVuZGVyTGF5ZXI6OnNjcm9sbENv
cm5lckFuZFJlc2l6ZXJSZWN0KCkgY29uc3QKIHsKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRl
ckJveCgpOwogICAgIGlmICghYm94KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwotICAgIExh
eW91dFJlY3Qgc2Nyb2xsQ29ybmVyQW5kUmVzaXplciA9IHNjcm9sbENvcm5lclJlY3QoKTsKKyAg
ICBJbnRSZWN0IHNjcm9sbENvcm5lckFuZFJlc2l6ZXIgPSBzY3JvbGxDb3JuZXJSZWN0KCk7CiAg
ICAgaWYgKHNjcm9sbENvcm5lckFuZFJlc2l6ZXIuaXNFbXB0eSgpKQotICAgICAgICBzY3JvbGxD
b3JuZXJBbmRSZXNpemVyID0gcmVzaXplckNvcm5lclJlY3QodGhpcywgYm94LT5ib3JkZXJCb3hS
ZWN0KCkpOworICAgICAgICBzY3JvbGxDb3JuZXJBbmRSZXNpemVyID0gcmVzaXplckNvcm5lclJl
Y3QodGhpcywgcGl4ZWxTbmFwcGVkSW50UmVjdChib3gtPmJvcmRlckJveFJlY3QoKSkpOwogICAg
IHJldHVybiBzY3JvbGxDb3JuZXJBbmRSZXNpemVyOwogfQogCkBAIC0yODEwLDcgKzI4MTAsNyBA
QCBJbnRSZWN0IFJlbmRlckxheWVyOjpyZWN0Rm9yVmVydGljYWxTY3JvbGxiYXIoY29uc3QgSW50
UmVjdCYgYm9yZGVyQm94UmVjdCkgY29ucwogICAgICAgICBib3JkZXJCb3hSZWN0LmhlaWdodCgp
IC0gKGJveC0+Ym9yZGVyVG9wKCkgKyBib3gtPmJvcmRlckJvdHRvbSgpKSAtIHNjcm9sbENvcm5l
ci5oZWlnaHQoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyTGF5ZXI6OnZlcnRpY2FsU2Nyb2xs
YmFyU3RhcnQoaW50IG1pblgsIGludCBtYXhYKSBjb25zdAoraW50IFJlbmRlckxheWVyOjp2ZXJ0
aWNhbFNjcm9sbGJhclN0YXJ0KGludCBtaW5YLCBpbnQgbWF4WCkgY29uc3QKIHsKICAgICBjb25z
dCBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmIChyZW5kZXJlcigpLnN0eWxl
KCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTG9naWNhbExlZnQoKSkKQEAg
LTI4MTgsMTIgKzI4MTgsMTIgQEAgTGF5b3V0VW5pdCBSZW5kZXJMYXllcjo6dmVydGljYWxTY3Jv
bGxiYXJTdGFydChpbnQgbWluWCwgaW50IG1heFgpIGNvbnN0CiAgICAgcmV0dXJuIG1heFggLSBi
b3gtPmJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndpZHRoKCk7CiB9CiAKLUxheW91dFVuaXQgUmVu
ZGVyTGF5ZXI6Omhvcml6b250YWxTY3JvbGxiYXJTdGFydChpbnQgbWluWCkgY29uc3QKK2ludCBS
ZW5kZXJMYXllcjo6aG9yaXpvbnRhbFNjcm9sbGJhclN0YXJ0KGludCBtaW5YKSBjb25zdAogewog
ICAgIGNvbnN0IFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgaW50IHggPSBtaW5Y
ICsgYm94LT5ib3JkZXJMZWZ0KCk7CiAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5zaG91bGRQ
bGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25Mb2dpY2FsTGVmdCgpKQotICAgICAgICB4ICs9
IG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKSA6IHJvdW5kVG9JbnQocmVzaXplckNvcm5lclJlY3Qo
dGhpcywgYm94LT5ib3JkZXJCb3hSZWN0KCkpLndpZHRoKCkpOworICAgICAgICB4ICs9IG1fdkJh
ciA/IG1fdkJhci0+d2lkdGgoKSA6IHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIHBpeGVsU25hcHBl
ZEludFJlY3QoYm94LT5ib3JkZXJCb3hSZWN0KCkpKS53aWR0aCgpOwogICAgIHJldHVybiB4Owog
fQogCkBAIC0zNDE1LDcgKzM0MTUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpkcmF3UGxhdGZvcm1S
ZXNpemVySW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdQogICAgIGNv
bnRleHQtPmRyYXdJbWFnZShyZXNpemVDb3JuZXJJbWFnZS5nZXQoKSwgcmVuZGVyZXIoKS5zdHls
ZSgpLmNvbG9yU3BhY2UoKSwgcGl4ZWxTbmFwcGVkSW50UmVjdChpbWFnZVJlY3QpKTsKIH0KIAot
dm9pZCBSZW5kZXJMYXllcjo6cGFpbnRSZXNpemVyKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBMYXlvdXRSZWN0JiBkYW1hZ2VS
ZWN0KQordm9pZCBSZW5kZXJMYXllcjo6cGFpbnRSZXNpemVyKEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgY29uc3QgSW50UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VS
ZWN0KQogewogICAgIGlmIChyZW5kZXJlcigpLnN0eWxlKCkucmVzaXplKCkgPT0gUkVTSVpFX05P
TkUpCiAgICAgICAgIHJldHVybjsKQEAgLTM0MjMsNyArMzQyMyw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnBhaW50UmVzaXplcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91dFBv
aW50JiBwYWluCiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKICAgICBBU1NFUlQo
Ym94KTsKIAotICAgIExheW91dFJlY3QgYWJzUmVjdCA9IHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMs
IGJveC0+Ym9yZGVyQm94UmVjdCgpKTsKKyAgICBJbnRSZWN0IGFic1JlY3QgPSByZXNpemVyQ29y
bmVyUmVjdCh0aGlzLCBwaXhlbFNuYXBwZWRJbnRSZWN0KGJveC0+Ym9yZGVyQm94UmVjdCgpKSk7
CiAgICAgYWJzUmVjdC5tb3ZlQnkocGFpbnRPZmZzZXQpOwogICAgIGlmICghYWJzUmVjdC5pbnRl
cnNlY3RzKGRhbWFnZVJlY3QpKQogICAgICAgICByZXR1cm47CkBAIC0zNDc4LDcgKzM0NzgsNyBA
QCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9scyhIaXRUZXN0UmVzdWx0
JiByZXN1bHQsIGNvbnN0IEludFBvaW50JgogICAgIAogICAgIEludFJlY3QgcmVzaXplQ29udHJv
bFJlY3Q7CiAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5yZXNpemUoKSAhPSBSRVNJWkVfTk9O
RSkgewotICAgICAgICByZXNpemVDb250cm9sUmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QocmVz
aXplckNvcm5lclJlY3QodGhpcywgYm94LT5ib3JkZXJCb3hSZWN0KCkpKTsKKyAgICAgICAgcmVz
aXplQ29udHJvbFJlY3QgPSByZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBwaXhlbFNuYXBwZWRJbnRS
ZWN0KGJveC0+Ym9yZGVyQm94UmVjdCgpKSk7CiAgICAgICAgIGlmIChyZXNpemVDb250cm9sUmVj
dC5jb250YWlucyhsb2NhbFBvaW50KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggNTI3MDZkOGU1ZDc5OWIz
NmY1MWMwYjAyMDM5MjcwZWU4MjA5YWZkZC4uNTc3OWFjODVmMWUwNDQ0MDRkOWFkNzgxYTVmMjU3
OWNlNTI5ZDNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQ1
Nyw3ICs0NTcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhaW50T3ZlcmZsb3dDb250cm9scyhH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFJlY3QmIGRhbWFnZVJl
Y3QsIGJvb2wgcGFpbnRpbmdPdmVybGF5Q29udHJvbHMgPSBmYWxzZSk7CiAgICAgdm9pZCBwYWlu
dFNjcm9sbENvcm5lcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IElu
dFJlY3QmIGRhbWFnZVJlY3QpOwotICAgIHZvaWQgcGFpbnRSZXNpemVyKEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTGF5b3V0UmVjdCYgZGFtYWdlUmVjdCk7Cisg
ICAgdm9pZCBwYWludFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UG9pbnQmLCBj
b25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KTsKIAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsSW5mb0Fm
dGVyTGF5b3V0KCk7CiAKQEAgLTEwNTcsNyArMTA1Nyw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
ICAgIC8vIFJlY3RhbmdsZSBlbmNvbXBhc3NpbmcgdGhlIHNjcm9sbCBjb3JuZXIgYW5kIHJlc2l6
ZXIgcmVjdC4KLSAgICBMYXlvdXRSZWN0IHNjcm9sbENvcm5lckFuZFJlc2l6ZXJSZWN0KCkgY29u
c3Q7CisgICAgSW50UmVjdCBzY3JvbGxDb3JuZXJBbmRSZXNpemVyUmVjdCgpIGNvbnN0OwogCiAg
ICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRlbiBz
ZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxhYmxlQXJlYS4KICAgICB2b2lkIHNjcm9sbFRvKGlu
dCwgaW50KTsKQEAgLTExNDUsOCArMTE0NSw4IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCByZWN0
Rm9ySG9yaXpvbnRhbFNjcm9sbGJhcihjb25zdCBJbnRSZWN0JiBib3JkZXJCb3hSZWN0KSBjb25z
dDsKICAgICBJbnRSZWN0IHJlY3RGb3JWZXJ0aWNhbFNjcm9sbGJhcihjb25zdCBJbnRSZWN0JiBi
b3JkZXJCb3hSZWN0KSBjb25zdDsKIAotICAgIExheW91dFVuaXQgdmVydGljYWxTY3JvbGxiYXJT
dGFydChpbnQgbWluWCwgaW50IG1heFgpIGNvbnN0OwotICAgIExheW91dFVuaXQgaG9yaXpvbnRh
bFNjcm9sbGJhclN0YXJ0KGludCBtaW5YKSBjb25zdDsKKyAgICBpbnQgdmVydGljYWxTY3JvbGxi
YXJTdGFydChpbnQgbWluWCwgaW50IG1heFgpIGNvbnN0OworICAgIGludCBob3Jpem9udGFsU2Ny
b2xsYmFyU3RhcnQoaW50IG1pblgpIGNvbnN0OwogCiAgICAgYm9vbCBvdmVyZmxvd0NvbnRyb2xz
SW50ZXJzZWN0UmVjdChjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDYxMWZj
Njg1OTBmZDJjZjdmNmYxYzNkMDg3ODUyZWVjM2QwYmYzY2YuLjc5OGFhZWJjYWY2ZDNiYzViZjAz
N2Q0MTQxMDQ4NGRmMWU0MWJiNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yMTI3LDggKzIxMjcsOCBAQCB2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiBy
LCBHcmFwaGljcwogfQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIo
Y29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LAotICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRSZWN0JiBwYWludERpcnR5UmVjdCwg
Ly8gSW4gdGhlIGNvb3JkcyBvZiByb290TGF5ZXIuCi0gICAgICAgICAgICAgICAgICAgIFBhaW50
QmVoYXZpb3IgcGFpbnRCZWhhdmlvciwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgcGFpbnRp
bmdQaGFzZSkKKyAgICBjb25zdCBMYXlvdXRSZWN0JiBwYWludERpcnR5UmVjdCwgLy8gSW4gdGhl
IGNvb3JkcyBvZiByb290TGF5ZXIuCisgICAgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yLCBH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBwYWludGluZ1BoYXNlKQogewogICAgIGlmIChwYWlu
dHNJbnRvV2luZG93KCkgfHwgcGFpbnRzSW50b0NvbXBvc2l0ZWRBbmNlc3RvcigpKSB7CiAjaWYg
IVBMQVRGT1JNKElPUykKQEAgLTIxODYsMTMgKzIxODYsMTcgQEAgc3RhdGljIHZvaWQgcGFpbnRT
Y3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QKIH0KIAogLy8gVXAtY2FsbCBmcm9tIGNvbXBvc2l0aW5nIGxheWVyIGRyYXdpbmcgY2Fs
bGJhY2suCi12b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFw
aGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXAp
Cit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcCkKIHsK
ICNpZm5kZWYgTkRFQlVHCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSByZW5kZXJlcigpLmZyYW1lKCku
cGFnZSgpKQogICAgICAgICBwYWdlLT5zZXRJc1BhaW50aW5nKHRydWUpOwogI2VuZGlmCiAKKyAg
ICAvLyBUaGUgZGlydHlSZWN0IGlzIGluIHRoZSBjb29yZHMgb2YgdGhlIHBhaW50aW5nIHJvb3Qu
CisgICAgTGF5b3V0UmVjdCBkaXJ0eVJlY3QoY2xpcCk7CisgICAgSW50UmVjdCBwaXhlbFNuYXBw
ZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVkSXRlbXMocGl4ZWxTbmFwcGVkSW50UmVjdChkaXJ0
eVJlY3QpKTsKKwogICAgIGlmIChncmFwaGljc0xheWVyID09IG1fZ3JhcGhpY3NMYXllci5nZXQo
KQogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1fZm9yZWdyb3VuZExheWVyLmdldCgpCiAg
ICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9iYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkKQEAgLTIy
MDAsMjYgKzIyMDQsMjQgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMo
Y29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGgKICAgICAgICAgfHwgZ3Jh
cGhpY3NMYXllciA9PSBtX3Njcm9sbGluZ0NvbnRlbnRzTGF5ZXIuZ2V0KCkpIHsKICAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQoJnJlbmRlcmVyKCkpOwogCi0gICAg
ICAgIC8vIFRoZSBkaXJ0eVJlY3QgaXMgaW4gdGhlIGNvb3JkcyBvZiB0aGUgcGFpbnRpbmcgcm9v
dC4KLSAgICAgICAgSW50UmVjdCBkaXJ0eVJlY3QgPSBjbGlwOwogICAgICAgICBpZiAoIShwYWlu
dGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50T3ZlcmZsb3dDb250ZW50cykpCiAgICAgICAg
ICAgICBkaXJ0eVJlY3QuaW50ZXJzZWN0KGVuY2xvc2luZ0ludFJlY3QoY29tcG9zaXRlZEJvdW5k
c0luY2x1ZGluZ01hcmdpbigpKSk7CiAKICAgICAgICAgLy8gV2UgaGF2ZSB0byB1c2UgdGhlIHNh
bWUgcm9vdCBhcyBmb3IgaGl0IHRlc3RpbmcsIGJlY2F1c2UgYm90aCBtZXRob2RzIGNhbiBjb21w
dXRlIGFuZCBjYWNoZSBjbGlwUmVjdHMuCiAgICAgICAgIHBhaW50SW50b0xheWVyKGdyYXBoaWNz
TGF5ZXIsICZjb250ZXh0LCBkaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3JOb3JtYWwsIHBhaW50aW5n
UGhhc2UpOwogCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnQoJnJl
bmRlcmVyKCksICZjb250ZXh0LCBjbGlwKTsKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRQYWludCgmcmVuZGVyZXIoKSwgJmNvbnRleHQsIGRpcnR5UmVjdCk7CiAgICAgfSBl
bHNlIGlmIChncmFwaGljc0xheWVyID09IGxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpKSB7
Ci0gICAgICAgIHBhaW50U2Nyb2xsYmFyKG1fb3duaW5nTGF5ZXIuaG9yaXpvbnRhbFNjcm9sbGJh
cigpLCBjb250ZXh0LCBjbGlwKTsKKyAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9vd25pbmdMYXll
ci5ob3Jpem9udGFsU2Nyb2xsYmFyKCksIGNvbnRleHQsIHBpeGVsU25hcHBlZFJlY3RGb3JJbnRl
Z3JhbFBvc2l0aW9uZWRJdGVtcyk7CiAgICAgfSBlbHNlIGlmIChncmFwaGljc0xheWVyID09IGxh
eWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkgewotICAgICAgICBwYWludFNjcm9sbGJhcihtX293
bmluZ0xheWVyLnZlcnRpY2FsU2Nyb2xsYmFyKCksIGNvbnRleHQsIGNsaXApOworICAgICAgICBw
YWludFNjcm9sbGJhcihtX293bmluZ0xheWVyLnZlcnRpY2FsU2Nyb2xsYmFyKCksIGNvbnRleHQs
IHBpeGVsU25hcHBlZFJlY3RGb3JJbnRlZ3JhbFBvc2l0aW9uZWRJdGVtcyk7CiAgICAgfSBlbHNl
IGlmIChncmFwaGljc0xheWVyID09IGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkpIHsKLSAgICAgICAg
Y29uc3QgTGF5b3V0UmVjdCYgc2Nyb2xsQ29ybmVyQW5kUmVzaXplciA9IG1fb3duaW5nTGF5ZXIu
c2Nyb2xsQ29ybmVyQW5kUmVzaXplclJlY3QoKTsKKyAgICAgICAgSW50UmVjdCBzY3JvbGxDb3Ju
ZXJBbmRSZXNpemVyID0gbV9vd25pbmdMYXllci5zY3JvbGxDb3JuZXJBbmRSZXNpemVyUmVjdCgp
OwogICAgICAgICBjb250ZXh0LnNhdmUoKTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoLXNj
cm9sbENvcm5lckFuZFJlc2l6ZXIueCgpLCAtc2Nyb2xsQ29ybmVyQW5kUmVzaXplci55KCkpOwot
ICAgICAgICBMYXlvdXRSZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IGNsaXA7CisgICAgICAgIEludFJl
Y3QgdHJhbnNmb3JtZWRDbGlwID0gcGl4ZWxTbmFwcGVkUmVjdEZvckludGVncmFsUG9zaXRpb25l
ZEl0ZW1zOwogICAgICAgICB0cmFuc2Zvcm1lZENsaXAubW92ZUJ5KHNjcm9sbENvcm5lckFuZFJl
c2l6ZXIubG9jYXRpb24oKSk7Ci0gICAgICAgIG1fb3duaW5nTGF5ZXIucGFpbnRTY3JvbGxDb3Ju
ZXIoJmNvbnRleHQsIEludFBvaW50KCksIHBpeGVsU25hcHBlZEludFJlY3QodHJhbnNmb3JtZWRD
bGlwKSk7CisgICAgICAgIG1fb3duaW5nTGF5ZXIucGFpbnRTY3JvbGxDb3JuZXIoJmNvbnRleHQs
IEludFBvaW50KCksIHRyYW5zZm9ybWVkQ2xpcCk7CiAgICAgICAgIG1fb3duaW5nTGF5ZXIucGFp
bnRSZXNpemVyKCZjb250ZXh0LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZENsaXApOwogICAgICAg
ICBjb250ZXh0LnJlc3RvcmUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggNThlMzBjNGU2OWY5M2EzNWU1OTBmMjM1MTI5MWNk
ZDcyZmVlNzkxMC4uZmJjN2ZjZWEwNmJjMWNlZmNhMmRlMDE2N2ZkMTQ0ZWU5MDk4MjFiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMTY1
LDcgKzE2NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJl
ZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllcios
IEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRS
ZWN0JiBjbGlwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25z
dCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBmbG9h
dCBjb250ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
KSBjb25zdCBvdmVycmlkZTsKQEAgLTI4Myw3ICsyODMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
aGFzVGlsZWRCYWNraW5nRmxhdHRlbmluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gKG1fY2hpbGRD
b250YWlubWVudExheWVyICYmIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXIpOyB9CiAgICAgR3JhcGhp
Y3NMYXllciogdGlsZUNhY2hlRmxhdHRlbmluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV91c2lu
Z1RpbGVkQ2FjaGVMYXllciA/IG1fY2hpbGRDb250YWlubWVudExheWVyLmdldCgpIDogMDsgfQog
Ci0gICAgdm9pZCBwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3IsIEdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlKTsKKyAgICB2b2lkIHBhaW50SW50b0xheWVyKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0JiBwYWlu
dERpcnR5UmVjdCwgUGFpbnRCZWhhdmlvciwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UpOwog
CiAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIGZvciB1cGRhdGVHcmFwaGljc0xheWVyR2VvbWV0cnku
CiAgICAgdm9pZCBhZGp1c3RBbmNlc3RvckNvbXBvc2l0aW5nQm91bmRzRm9yRmxvd1RocmVhZChJ
bnRSZWN0JiBhbmNlc3RvckNvbXBvc2l0aW5nQm91bmRzLCBjb25zdCBSZW5kZXJMYXllciogY29t
cG9zaXRpbmdBbmNlc3RvcikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDdjYTdjNzYzYjAxNDJmODUwNjg0NGM3
ZmRlYzU5NGI4YmU0N2MzYjguLjY2YjQwNjAyMmMzNzU5MmM0YjVkZTZmZTFmNmRjOTE0MDU3YmU0
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCkBAIC0yNjA4LDE3ICsyNjA4LDE4IEBAIHN0YXRpYyB2b2lkIHBhaW50U2Nyb2xs
YmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
CiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IElu
dFJlY3QmIGNsaXApCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFpbnRDb250ZW50cyhj
b25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXApCiB7
CisgICAgSW50UmVjdCBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVkSXRlbXMo
cGl4ZWxTbmFwcGVkSW50UmVjdChMYXlvdXRSZWN0KGNsaXApKSk7CiAgICAgaWYgKGdyYXBoaWNz
TGF5ZXIgPT0gbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpCi0gICAgICAgIHBhaW50U2Ny
b2xsYmFyKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5ob3Jpem9udGFsU2Nyb2xsYmFyKCksIGNv
bnRleHQsIGNsaXApOworICAgICAgICBwYWludFNjcm9sbGJhcihtX3JlbmRlclZpZXcuZnJhbWVW
aWV3KCkuaG9yaXpvbnRhbFNjcm9sbGJhcigpLCBjb250ZXh0LCBwaXhlbFNuYXBwZWRSZWN0Rm9y
SW50ZWdyYWxQb3NpdGlvbmVkSXRlbXMpOwogICAgIGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0g
bGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpKQotICAgICAgICBwYWludFNjcm9sbGJhcihtX3Jl
bmRlclZpZXcuZnJhbWVWaWV3KCkudmVydGljYWxTY3JvbGxiYXIoKSwgY29udGV4dCwgY2xpcCk7
CisgICAgICAgIHBhaW50U2Nyb2xsYmFyKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS52ZXJ0aWNh
bFNjcm9sbGJhcigpLCBjb250ZXh0LCBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlv
bmVkSXRlbXMpOwogICAgIGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JTY3JvbGxD
b3JuZXIoKSkgewogICAgICAgICBjb25zdCBJbnRSZWN0JiBzY3JvbGxDb3JuZXIgPSBtX3JlbmRl
clZpZXcuZnJhbWVWaWV3KCkuc2Nyb2xsQ29ybmVyUmVjdCgpOwogICAgICAgICBjb250ZXh0LnNh
dmUoKTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoLXNjcm9sbENvcm5lci54KCksIC1zY3Jv
bGxDb3JuZXIueSgpKTsKLSAgICAgICAgSW50UmVjdCB0cmFuc2Zvcm1lZENsaXAgPSBjbGlwOwor
ICAgICAgICBJbnRSZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IHBpeGVsU25hcHBlZFJlY3RGb3JJbnRl
Z3JhbFBvc2l0aW9uZWRJdGVtczsKICAgICAgICAgdHJhbnNmb3JtZWRDbGlwLm1vdmVCeShzY3Jv
bGxDb3JuZXIubG9jYXRpb24oKSk7CiAgICAgICAgIG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5w
YWludFNjcm9sbENvcm5lcigmY29udGV4dCwgdHJhbnNmb3JtZWRDbGlwKTsKICAgICAgICAgY29u
dGV4dC5yZXN0b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgKaW5kZXggNmIwNDNmODhkNDA1MWQ4MzIyYWZjOTNlYTdlNTg0OWFmYzZl
NjJhZi4uZDc4YmUwZjFjOWM3NWM0ZjQxZTQ1NWM1MDI0Y2VhYTY5NjZjZDAyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMzA3
LDcgKzMwNyw3IEBAIHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1l
bnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250
ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwg
R3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0
UmVjdCYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygp
IGNvbnN0IG92ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcAppbmRleCA1ODY3YTExMjExZTM1OTVlYTZlYTM2NzY5ZmM5MjYxYzIxMDU3YjZhLi4x
MGFjMWI0NmIxY2FmZWQ3NzIwNTc5YjMxMzhjNGI0OGM5NTk5ZTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtMjk5LDcgKzI5OSw3IEBAIHZvaWQgUmVu
ZGVyV2lkZ2V0OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQm
IHBhaW50T2Zmc2V0KQogICAgIH0KIAogICAgIGlmIChoYXNMYXllcigpICYmIGxheWVyKCktPmNh
blJlc2l6ZSgpKQotICAgICAgICBsYXllcigpLT5wYWludFJlc2l6ZXIocGFpbnRJbmZvLmNvbnRl
eHQsIHJvdW5kZWRJbnRQb2ludChhZGp1c3RlZFBhaW50T2Zmc2V0KSwgcGFpbnRJbmZvLnJlY3Qp
OworICAgICAgICBsYXllcigpLT5wYWludFJlc2l6ZXIocGFpbnRJbmZvLmNvbnRleHQsIHJvdW5k
ZWRJbnRQb2ludChhZGp1c3RlZFBhaW50T2Zmc2V0KSwgcGl4ZWxTbmFwcGVkSW50UmVjdChwYWlu
dEluZm8ucmVjdCkpOwogfQogCiB2b2lkIFJlbmRlcldpZGdldDo6c2V0T3ZlcmxhcFRlc3RSZXN1
bHQoYm9vbCBpc092ZXJsYXBwZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDA4NTA3YTIzZDhl
NDMxMTM3NjhhZWEwOTc0M2RhNDhkNTFjM2FkMWMuLjEyYWNkZThiZWNiYmI5NzI2NThhMDM0ZDEz
MjJmMWNmNWJmODJmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC02NzI1LDcgKzY3MjUsNyBA
QCB2b2lkIFdlYlZpZXc6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciop
CiAgICAgZmx1c2hQZW5kaW5nR3JhcGhpY3NMYXllckNoYW5nZXNTb29uKCk7CiB9CiAKLXZvaWQg
V2ViVmlldzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYg
aW5DbGlwKQordm9pZCBXZWJWaWV3OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBj
b25zdCBGbG9hdFJlY3QmIGluQ2xpcCkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBjb3JlKG1fbWFp
bkZyYW1lKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNjczMyw3ICs2NzMzLDcgQEAgdm9pZCBXZWJW
aWV3OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIEdyYXAKIAogICAgIGNvbnRleHQuc2F2ZSgpOwogICAgIGNvbnRleHQuY2xpcChp
bkNsaXApOwotICAgIGZyYW1lLT52aWV3KCktPnBhaW50KCZjb250ZXh0LCBpbkNsaXApOworICAg
IGZyYW1lLT52aWV3KCktPnBhaW50KCZjb250ZXh0LCBJbnRSZWN0KGluQ2xpcCkpOwogICAgIGNv
bnRleHQucmVzdG9yZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggYmRlYjFkMDNlYzY2ZGE3
YWZkOTAzODc2ODcwNjlkN2I0ZjVmNWU2MC4uMmVlOTFhYzhkYjZkZGMyNzc2NjUwOGYyNmI5MTU3
MzFhYzFkMDg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtMTAxOSw3ICsxMDE5LDcgQEAgcHJpdmF0
ZToKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFu
aW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1l
KTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNs
aXApOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBpbkNsaXApOwogCiAg
ICAgLy8gQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hQZW5k
aW5nR3JhcGhpY3NMYXllckNoYW5nZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCmluZGV4IDcwZjZj
ODM2NTEzOWRjNTM3MmY4ZjVmMDE1ZDI1YTFmYmY5ZTQ2YTMuLjcyMzdkNDQ4YzIwMjgxMTg5NGVk
ZGYwYjYzZWEyY2YwYzVmOThlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcApAQCAtMjcyLDE2ICsy
NzIsMTYgQEAgdm9pZCBMYXllclRyZWVIb3N0R3RrOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQogewogfQogCi12b2lkIExheWVyVHJlZUhvc3RHdGs6
OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhp
Y3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBj
b25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKK3ZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6cGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQm
IGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0
UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbV9ub25Db21wb3Np
dGVkQ29udGVudExheWVyLmdldCgpKSB7Ci0gICAgICAgIG1fd2ViUGFnZS0+ZHJhd1JlY3QoZ3Jh
cGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1JlY3QoZ3Jh
cGhpY3NDb250ZXh0LCBJbnRSZWN0KGNsaXBSZWN0KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBmb3IgKGF1dG8mIHBhZ2VPdmVybGF5TGF5ZXIgOiBtX3BhZ2VPdmVybGF5TGF5ZXJz
KSB7CiAgICAgICAgIGlmIChwYWdlT3ZlcmxheUxheWVyLnZhbHVlLmdldCgpID09IGdyYXBoaWNz
TGF5ZXIpIHsKLSAgICAgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5KHBhZ2VPdmVy
bGF5TGF5ZXIua2V5LCBncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKKyAgICAgICAgICAgIG1f
d2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5KHBhZ2VPdmVybGF5TGF5ZXIua2V5LCBncmFwaGljc0Nv
bnRleHQsIEludFJlY3QoY2xpcFJlY3QpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9MYXllclRyZWVIb3N0R3RrLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Z3RrL0xheWVyVHJlZUhvc3RHdGsuaAppbmRleCBiYjMwYjA5OTA1M2YyNGE1MWNlNTZkNmQ1ODRm
YWM3MDViMGI5YjI1Li4xY2JjZjNlNTc0ZjllZGNlZmMxYjdiOTE0YWUwMTYyNzg3ZWE2OGVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJl
ZUhvc3RHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xh
eWVyVHJlZUhvc3RHdGsuaApAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogICAgIC8vIEdyYXBo
aWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBh
aW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKKyAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhh
c2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY2xpcFJlY3QpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGNvbnN0IHsgfQogCiAgICAgdm9pZCBjcmVhdGVQYWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKaW5kZXggYjk3MTI1N2VkNzZm
YTllNDkyMDBjZjcwNWYxMTFmYTVkNDI1NTkxYi4uNzU5ZmExOTM0ZDRmMTU3ZTU3M2E4ZDkwYTVm
NmQ0MWIxYzA1MWZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAt
ODAsNyArODAsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGll
bnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY2xpcFJl
Y3QpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZSB7IH0KICNpZiBQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCAzMjBh
NDhhZDNiMTkwNmFiYmJlNWI0Zjk1MzQzZWNkMmUyMzY0NWQ0Li5iYjg5MTdkOWVhZTE0YzBhM2M5
ZjI3NDY5Yjc4ODZkMDQxYjFkNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW0KQEAgLTE4OSwxMSArMTg5LDExIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OmNsZWFyUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqIHBhZ2VPdmVybGF5KQogICAgIHNjaGVk
dWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXll
ciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXll
ciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KQogewogICAgIGZvciAoY29uc3QgYXV0
byYgb3ZlcmxheUFuZExheWVyIDogbV9wYWdlT3ZlcmxheUxheWVycykgewogICAgICAgICBpZiAo
b3ZlcmxheUFuZExheWVyLnZhbHVlLmdldCgpID09IGdyYXBoaWNzTGF5ZXIpIHsKLSAgICAgICAg
ICAgIG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5KG92ZXJsYXlBbmRMYXllci5rZXksIGdyYXBo
aWNzQ29udGV4dCwgY2xpcFJlY3QpOworICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92
ZXJsYXkob3ZlcmxheUFuZExheWVyLmtleSwgZ3JhcGhpY3NDb250ZXh0LCBJbnRSZWN0KGNsaXBS
ZWN0KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCAxZWUyYTA1MGI4NjFlNzY4MTZiNTFh
YmY3MGQ3ZWNhNjljN2Y5M2IyLi5lNTBlYjc2Njg1MGFiYjFiYzQ1MjYzZjM0Y2YzNTI2MWY3N2U4
MzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC05NCw3
ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudAog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCA5MDkxNjVkZDNjMTY5OTJhZmRlNWIwMjc3NTNj
YmFhNjViZDdhNDBkLi5kNDVhNDg5OWRjOTNkY2I3NzE3NDAwNzlkZDA0NTJjNDJmNjJjYmVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTM1NiwxMSAr
MzU2LDExIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om5vdGlmeUZsdXNo
UmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3Jh
cGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKK3ZvaWQgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWE6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNz
TGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KQogewogICAgIGZv
ciAoYXV0byBpdCA9IG1fcGFnZU92ZXJsYXlMYXllcnMuYmVnaW4oKSwgZW5kID0gbV9wYWdlT3Zl
cmxheUxheWVycy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGlmIChpdC0+dmFs
dWUuZ2V0KCkgPT0gZ3JhcGhpY3NMYXllcikgewotICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3
UGFnZU92ZXJsYXkoaXQtPmtleSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAgICAg
ICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShpdC0+a2V5LCBncmFwaGljc0NvbnRleHQs
IEludFJlY3QoY2xpcFJlY3QpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223794</attachid>
            <date>2014-02-10 19:37:32 -0800</date>
            <delta_ts>2014-02-11 14:47:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128460-20140210193735.patch</filename>
            <type>text/plain</type>
            <size>35721</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE1NzgyZWIzZTdkMjVk
YzE4ZDEzM2I0ZDQ5YzdmNTJjYzNiNTcxNC4uNzQ5Y2E0NmMwMDYyNTUyY2UxNjRkMjQ2ZjJkZjlj
NDk3M2QyZTQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTAyLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIEdyYXBoaWNzTGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMncyBjbGlwIHJlY3Qgc3Vi
cGl4ZWwgYmFzZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIHRyYW5zaXRpb25pbmcgdG8gc3VicGl4ZWwg
cmVuZGVyIGxheWVyIG9mZnNldHRpbmcgZnJvbSAKKyAgICAgICAgdGhlIGludGVncmFsIHBvc2l0
aW9uZWQgZ3JhcGhpY3MgbGF5ZXIuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxp
dHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0
aW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGlu
YXRvcjo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29ybmVyUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsQ29ybmVyUmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpyZXNpemVyQ29ybmVyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsQ29ybmVyQW5kUmVzaXplclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnZlcnRpY2FsU2Nyb2xsYmFyU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6Omhvcml6b250YWxTY3JvbGxiYXJTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6cGFpbnRSZXNpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpo
aXRUZXN0T3ZlcmZsb3dDb250cm9scyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OnBhaW50KToKKwogMjAxNC0wMi0xMCAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSURCOiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGRlY2Zh
ZjFhODBjMTM2OTlhNTkxY2Y4NzAwMzk3MDM4NTZjMjk2M2QuLmQyZTMxZTc2MjIwOTUyNTU4YmFk
YmExZDNiNTQ4OGFlNmJiNjQzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxNC0wMi0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFN1
YnBpeGVsIHJlbmRlcmluZzogTWFrZSBHcmFwaGljc0xheWVyQ2xpZW50OjpwYWludENvbnRlbnRz
J3MgY2xpcCByZWN0IHN1YnBpeGVsIGJhc2VkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyB0aGUgZmlyc3Qgc3RlcCBpbiB0cmFuc2l0aW9u
aW5nIHRvIHN1YnBpeGVsIHJlbmRlciBsYXllciBvZmZzZXR0aW5nIGZyb20gCisgICAgICAgIHRo
ZSBpbnRlZ3JhbCBwb3NpdGlvbmVkIGdyYXBoaWNzIGxheWVyLgorCisgICAgICAgIE5vIGNoYW5n
ZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMpOgorCiAyMDE0LTAyLTEwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0g
QWRkIEdVbmlxdWVPdXRQdHIgYW5kIHVzZSBpdCBpbnN0ZWFkIG9mIEdPd25QdHIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwppbmRleCA1OWMwMGM3YzExMmU0MGNiNGM4NDhhZGQxMjEzNjNiMTZlN2NlYWVkLi5hNTJl
MmZmYTM1YTg5OTgyNTY2N2MyOWUyNGY2YmRhMjhjNzliMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTQtMDItMTAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IE1ha2UgR3JhcGhpY3NMYXllckNsaWVu
dDo6cGFpbnRDb250ZW50cydzIGNsaXAgcmVjdCBzdWJwaXhlbCBiYXNlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODQ2MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0
ZXAgaW4gdHJhbnNpdGlvbmluZyB0byBzdWJwaXhlbCByZW5kZXIgbGF5ZXIgb2Zmc2V0dGluZyBm
cm9tIAorICAgICAgICB0aGUgaW50ZWdyYWwgcG9zaXRpb25lZCBncmFwaGljcyBsYXllci4KKwor
ICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYlZpZXcu
Y3BwOgorICAgICAgICAoV2ViVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogV2ViVmll
dy5oOgorCiAyMDE0LTAyLTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIENsZWFudXAgdGhlIGludGVyZmFjZSBvZiBGcmFtZVNlbGVjdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDNiNGZiMjE1ZjllMjg5MTAwMjYxOWIzN2M0YzkwMTZiYjI5YTg4ODYuLjgzZGMzOWQ0ZThh
YTc5MzViMDA3ZDNiMjlkZjUzMTkyMzE3YzYwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBA
QAorMjAxNC0wMi0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFN1YnBpeGVsIHJlbmRlcmluZzogTWFrZSBHcmFwaGljc0xheWVyQ2xpZW50OjpwYWludENvbnRl
bnRzJ3MgY2xpcCByZWN0IHN1YnBpeGVsIGJhc2VkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyB0aGUgZmlyc3Qgc3RlcCBpbiB0cmFuc2l0
aW9uaW5nIHRvIHN1YnBpeGVsIHJlbmRlciBsYXllciBvZmZzZXR0aW5nIGZyb20gCisgICAgICAg
IHRoZSBpbnRlZ3JhbCBwb3NpdGlvbmVkIGdyYXBoaWNzIGxheWVyLgorCisgICAgICAgIE5vIGNo
YW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9MYXllclRyZWVIb3N0R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdEd0
azo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXll
clRyZWVIb3N0R3RrLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToK
KyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnBhaW50Q29u
dGVudHMpOgorCiAyMDE0LTAyLTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXhlcy5odG1sIGZh
aWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50LmgKaW5kZXggZWNhNjI2NGFjNjFlMWRmNGI4NTM0NzQyNDRiZTQwYjE3YjRj
YzQ2OC4uNDdiNGRmYzE1N2JlMmVlODQ5MzE1NTc5YjkzYzZhNGUwNzQ4MzQzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaApAQCAtMjksNiArMjksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG9h
dFBvaW50OworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3Mg
R3JhcGhpY3NMYXllcjsKIGNsYXNzIEludFBvaW50OwpAQCAtNzAsNyArNzEsNyBAQCBwdWJsaWM6
CiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhpcyBsYXllciByZXF1aXJlcyBhIGZsdXNoIGJl
Zm9yZSB0aGUgbmV4dCBkaXNwbGF5IHJlZnJlc2guCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZs
dXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQogCi0gICAg
dmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNz
Q29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNs
aXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xh
eWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IEZsb2F0UmVjdCYgaW5DbGlwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENoYW5n
ZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyB9CiAKICAgICAvLyBQcm92
aWRlcyBjdXJyZW50IHRyYW5zZm9ybSAodGFraW5nIHRyYW5zZm9ybS1vcmlnaW4gYW5kIGFuaW1h
dGlvbnMgaW50byBhY2NvdW50KS4gSW5wdXQgbWF0cml4IGhhcyBiZWVuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMmI1YjEx
OTNiYzUzMDgwYmVlOTIxZDIyMmRmZWNlNGVhZDZkOTEwZi4uODE4Y2M3MDg0YzFlZjM0OTViNmFk
OWRhMTU0Mjk0OTJmZTE2NzM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjUzLDkgKzI1Myw5IEBAIHZvaWQgQ29tcG9z
aXRpbmdDb29yZGluYXRvcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikKIH0KIAogCi12b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGlj
c0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdCkKK3ZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyhjb25zdCBH
cmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29u
dGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcFJl
Y3QpCiB7Ci0gICAgbV9jbGllbnQtPnBhaW50TGF5ZXJDb250ZW50cyhncmFwaGljc0xheWVyLCBn
cmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKKyAgICBtX2NsaWVudC0+cGFpbnRMYXllckNvbnRl
bnRzKGdyYXBoaWNzTGF5ZXIsIGdyYXBoaWNzQ29udGV4dCwgSW50UmVjdChjbGlwUmVjdCkpOwog
fQogCiBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gQ29tcG9zaXRpbmdDb29yZGluYXRv
cjo6Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaAppbmRleCA4
NGI4NTMyNzhjOGFjMjVkOTI1NDNjODcwZTRlNDc3ZGJlMjM3YWRiLi40YmM1NjI1NzJmMjkwNDY0
ZTUwZjc5MTAyODRkOWQzZDNhZTkyMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHJpdmF0ZToKICAg
ICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlv
blN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikg
b3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NM
YXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25z
dCBJbnRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29u
dGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYWQ2MjU5NWMyOWIyMWJmZTEy
MTdkMDNmMGUzMGFjNWU1YWY4N2ViMC4uYTM4YWQ3YTJhZWI3NTgyMmYxZjdkZmI3MmUxMTg3ZGQz
MDk5Mzc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0y
NjQ5LDcgKzI2NDksNyBAQCBzdGF0aWMgaW50IGNvcm5lclN0YXJ0KGNvbnN0IFJlbmRlckxheWVy
KiBsYXllciwgaW50IG1pblgsIGludCBtYXhYLCBpbnQgdGhpY2tuZQogICAgIHJldHVybiBtYXhY
IC0gdGhpY2tuZXNzIC0gbGF5ZXItPnJlbmRlcmVyKCkuc3R5bGUoKS5ib3JkZXJSaWdodFdpZHRo
KCk7CiB9CiAKLXN0YXRpYyBMYXlvdXRSZWN0IGNvcm5lclJlY3QoY29uc3QgUmVuZGVyTGF5ZXIq
IGxheWVyLCBjb25zdCBMYXlvdXRSZWN0JiBib3VuZHMpCitzdGF0aWMgSW50UmVjdCBjb3JuZXJS
ZWN0KGNvbnN0IFJlbmRlckxheWVyKiBsYXllciwgY29uc3QgSW50UmVjdCYgYm91bmRzKQogewog
ICAgIGludCBob3Jpem9udGFsVGhpY2tuZXNzOwogICAgIGludCB2ZXJ0aWNhbFRoaWNrbmVzczsK
QEAgLTI2NjgsNyArMjY2OCw3IEBAIHN0YXRpYyBMYXlvdXRSZWN0IGNvcm5lclJlY3QoY29uc3Qg
UmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBMYXlvdXRSZWN0JiBib3VuZHMpCiAgICAgICAgIGhv
cml6b250YWxUaGlja25lc3MgPSBsYXllci0+dmVydGljYWxTY3JvbGxiYXIoKS0+d2lkdGgoKTsK
ICAgICAgICAgdmVydGljYWxUaGlja25lc3MgPSBsYXllci0+aG9yaXpvbnRhbFNjcm9sbGJhcigp
LT5oZWlnaHQoKTsKICAgICB9Ci0gICAgcmV0dXJuIExheW91dFJlY3QoY29ybmVyU3RhcnQobGF5
ZXIsIGJvdW5kcy54KCksIGJvdW5kcy5tYXhYKCksIGhvcml6b250YWxUaGlja25lc3MpLAorICAg
IHJldHVybiBJbnRSZWN0KGNvcm5lclN0YXJ0KGxheWVyLCBib3VuZHMueCgpLCBib3VuZHMubWF4
WCgpLCBob3Jpem9udGFsVGhpY2tuZXNzKSwKICAgICAgICAgYm91bmRzLm1heFkoKSAtIHZlcnRp
Y2FsVGhpY2tuZXNzIC0gbGF5ZXItPnJlbmRlcmVyKCkuc3R5bGUoKS5ib3JkZXJCb3R0b21XaWR0
aCgpLAogICAgICAgICBob3Jpem9udGFsVGhpY2tuZXNzLCB2ZXJ0aWNhbFRoaWNrbmVzcyk7CiB9
CkBAIC0yNjgzLDI2ICsyNjgzLDI2IEBAIEludFJlY3QgUmVuZGVyTGF5ZXI6OnNjcm9sbENvcm5l
clJlY3QoKSBjb25zdAogICAgIGJvb2wgaGFzVmVydGljYWxCYXIgPSB2ZXJ0aWNhbFNjcm9sbGJh
cigpOwogICAgIGJvb2wgaGFzUmVzaXplciA9IHJlbmRlcmVyKCkuc3R5bGUoKS5yZXNpemUoKSAh
PSBSRVNJWkVfTk9ORTsKICAgICBpZiAoKGhhc0hvcml6b250YWxCYXIgJiYgaGFzVmVydGljYWxC
YXIpIHx8IChoYXNSZXNpemVyICYmIChoYXNIb3Jpem9udGFsQmFyIHx8IGhhc1ZlcnRpY2FsQmFy
KSkpCi0gICAgICAgIHJldHVybiBwaXhlbFNuYXBwZWRJbnRSZWN0KGNvcm5lclJlY3QodGhpcywg
cmVuZGVyQm94KCktPmJvcmRlckJveFJlY3QoKSkpOworICAgICAgICByZXR1cm4gY29ybmVyUmVj
dCh0aGlzLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlbmRlckJveCgpLT5ib3JkZXJCb3hSZWN0KCkp
KTsKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi1zdGF0aWMgTGF5b3V0UmVjdCByZXNpemVy
Q29ybmVyUmVjdChjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IExheW91dFJlY3QmIGJv
dW5kcykKK3N0YXRpYyBJbnRSZWN0IHJlc2l6ZXJDb3JuZXJSZWN0KGNvbnN0IFJlbmRlckxheWVy
KiBsYXllciwgY29uc3QgSW50UmVjdCYgYm91bmRzKQogewogICAgIEFTU0VSVChsYXllci0+cmVu
ZGVyZXIoKS5pc0JveCgpKTsKICAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCkuc3R5bGUoKS5yZXNp
emUoKSA9PSBSRVNJWkVfTk9ORSkKLSAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKKyAgICAg
ICAgcmV0dXJuIEludFJlY3QoKTsKICAgICByZXR1cm4gY29ybmVyUmVjdChsYXllciwgYm91bmRz
KTsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6c2Nyb2xsQ29ybmVyQW5kUmVzaXplclJl
Y3QoKSBjb25zdAorSW50UmVjdCBSZW5kZXJMYXllcjo6c2Nyb2xsQ29ybmVyQW5kUmVzaXplclJl
Y3QoKSBjb25zdAogewogICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgaWYg
KCFib3gpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7Ci0gICAgTGF5b3V0UmVjdCBzY3JvbGxD
b3JuZXJBbmRSZXNpemVyID0gc2Nyb2xsQ29ybmVyUmVjdCgpOworICAgIEludFJlY3Qgc2Nyb2xs
Q29ybmVyQW5kUmVzaXplciA9IHNjcm9sbENvcm5lclJlY3QoKTsKICAgICBpZiAoc2Nyb2xsQ29y
bmVyQW5kUmVzaXplci5pc0VtcHR5KCkpCi0gICAgICAgIHNjcm9sbENvcm5lckFuZFJlc2l6ZXIg
PSByZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBib3gtPmJvcmRlckJveFJlY3QoKSk7CisgICAgICAg
IHNjcm9sbENvcm5lckFuZFJlc2l6ZXIgPSByZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBwaXhlbFNu
YXBwZWRJbnRSZWN0KGJveC0+Ym9yZGVyQm94UmVjdCgpKSk7CiAgICAgcmV0dXJuIHNjcm9sbENv
cm5lckFuZFJlc2l6ZXI7CiB9CiAKQEAgLTI4MTAsNyArMjgxMCw3IEBAIEludFJlY3QgUmVuZGVy
TGF5ZXI6OnJlY3RGb3JWZXJ0aWNhbFNjcm9sbGJhcihjb25zdCBJbnRSZWN0JiBib3JkZXJCb3hS
ZWN0KSBjb25zCiAgICAgICAgIGJvcmRlckJveFJlY3QuaGVpZ2h0KCkgLSAoYm94LT5ib3JkZXJU
b3AoKSArIGJveC0+Ym9yZGVyQm90dG9tKCkpIC0gc2Nyb2xsQ29ybmVyLmhlaWdodCgpKTsKIH0K
IAotTGF5b3V0VW5pdCBSZW5kZXJMYXllcjo6dmVydGljYWxTY3JvbGxiYXJTdGFydChpbnQgbWlu
WCwgaW50IG1heFgpIGNvbnN0CitpbnQgUmVuZGVyTGF5ZXI6OnZlcnRpY2FsU2Nyb2xsYmFyU3Rh
cnQoaW50IG1pblgsIGludCBtYXhYKSBjb25zdAogewogICAgIGNvbnN0IFJlbmRlckJveCogYm94
ID0gcmVuZGVyQm94KCk7CiAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5zaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25Mb2dpY2FsTGVmdCgpKQpAQCAtMjgxOCwxMiArMjgxOCwx
MiBAQCBMYXlvdXRVbml0IFJlbmRlckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJhclN0YXJ0KGludCBt
aW5YLCBpbnQgbWF4WCkgY29uc3QKICAgICByZXR1cm4gbWF4WCAtIGJveC0+Ym9yZGVyUmlnaHQo
KSAtIG1fdkJhci0+d2lkdGgoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJMYXllcjo6aG9yaXpv
bnRhbFNjcm9sbGJhclN0YXJ0KGludCBtaW5YKSBjb25zdAoraW50IFJlbmRlckxheWVyOjpob3Jp
em9udGFsU2Nyb2xsYmFyU3RhcnQoaW50IG1pblgpIGNvbnN0CiB7CiAgICAgY29uc3QgUmVuZGVy
Qm94KiBib3ggPSByZW5kZXJCb3goKTsKICAgICBpbnQgeCA9IG1pblggKyBib3gtPmJvcmRlckxl
ZnQoKTsKICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxvZ2ljYWxMZWZ0KCkpCi0gICAgICAgIHggKz0gbV92QmFyID8gbV92QmFy
LT53aWR0aCgpIDogcm91bmRUb0ludChyZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBib3gtPmJvcmRl
ckJveFJlY3QoKSkud2lkdGgoKSk7CisgICAgICAgIHggKz0gbV92QmFyID8gbV92QmFyLT53aWR0
aCgpIDogcmVzaXplckNvcm5lclJlY3QodGhpcywgcGl4ZWxTbmFwcGVkSW50UmVjdChib3gtPmJv
cmRlckJveFJlY3QoKSkpLndpZHRoKCk7CiAgICAgcmV0dXJuIHg7CiB9CiAKQEAgLTM0MTUsNyAr
MzQxNSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZShHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheW91CiAgICAgY29udGV4dC0+ZHJhd0ltYWdl
KHJlc2l6ZUNvcm5lckltYWdlLmdldCgpLCByZW5kZXJlcigpLnN0eWxlKCkuY29sb3JTcGFjZSgp
LCBwaXhlbFNuYXBwZWRJbnRSZWN0KGltYWdlUmVjdCkpOwogfQogCi12b2lkIFJlbmRlckxheWVy
OjpwYWludFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QpCit2b2lkIFJlbmRl
ckxheWVyOjpwYWludFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRQ
b2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QpCiB7CiAgICAgaWYg
KHJlbmRlcmVyKCkuc3R5bGUoKS5yZXNpemUoKSA9PSBSRVNJWkVfTk9ORSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMzQyMyw3ICszNDIzLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRSZXNpemVy
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW4KICAgICBS
ZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIEFTU0VSVChib3gpOwogCi0gICAgTGF5
b3V0UmVjdCBhYnNSZWN0ID0gcmVzaXplckNvcm5lclJlY3QodGhpcywgYm94LT5ib3JkZXJCb3hS
ZWN0KCkpOworICAgIEludFJlY3QgYWJzUmVjdCA9IHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIHBp
eGVsU25hcHBlZEludFJlY3QoYm94LT5ib3JkZXJCb3hSZWN0KCkpKTsKICAgICBhYnNSZWN0Lm1v
dmVCeShwYWludE9mZnNldCk7CiAgICAgaWYgKCFhYnNSZWN0LmludGVyc2VjdHMoZGFtYWdlUmVj
dCkpCiAgICAgICAgIHJldHVybjsKQEAgLTM0NzgsNyArMzQ3OCw3IEBAIGJvb2wgUmVuZGVyTGF5
ZXI6OmhpdFRlc3RPdmVyZmxvd0NvbnRyb2xzKEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3Qg
SW50UG9pbnQmCiAgICAgCiAgICAgSW50UmVjdCByZXNpemVDb250cm9sUmVjdDsKICAgICBpZiAo
cmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgpICE9IFJFU0laRV9OT05FKSB7Ci0gICAgICAgIHJl
c2l6ZUNvbnRyb2xSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZXNpemVyQ29ybmVyUmVjdCh0
aGlzLCBib3gtPmJvcmRlckJveFJlY3QoKSkpOworICAgICAgICByZXNpemVDb250cm9sUmVjdCA9
IHJlc2l6ZXJDb3JuZXJSZWN0KHRoaXMsIHBpeGVsU25hcHBlZEludFJlY3QoYm94LT5ib3JkZXJC
b3hSZWN0KCkpKTsKICAgICAgICAgaWYgKHJlc2l6ZUNvbnRyb2xSZWN0LmNvbnRhaW5zKGxvY2Fs
UG9pbnQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCBiZDE1YWJmODRlYjdiMGQxMzVlNmM0YTBlNzlmZDUw
Njg1ZTEwY2QzLi40NDBkYzBmYjNiMGJlM2Y3MjNlZDJmNWIwNmE5MDgzOTFhZGUyYWM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNDU4LDcgKzQ1OCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgcGFpbnRPdmVyZmxvd0NvbnRyb2xzKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgYm9vbCBwYWludGlu
Z092ZXJsYXlDb250cm9scyA9IGZhbHNlKTsKICAgICB2b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVj
dCk7Ci0gICAgdm9pZCBwYWludFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0
UG9pbnQmLCBjb25zdCBMYXlvdXRSZWN0JiBkYW1hZ2VSZWN0KTsKKyAgICB2b2lkIHBhaW50UmVz
aXplcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRQb2ludCYsIGNvbnN0IEludFJlY3QmIGRh
bWFnZVJlY3QpOwogCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQoKTsKIApA
QCAtMTA1OCw3ICsxMDU4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgLy8gUmVjdGFuZ2xl
IGVuY29tcGFzc2luZyB0aGUgc2Nyb2xsIGNvcm5lciBhbmQgcmVzaXplciByZWN0LgotICAgIExh
eW91dFJlY3Qgc2Nyb2xsQ29ybmVyQW5kUmVzaXplclJlY3QoKSBjb25zdDsKKyAgICBJbnRSZWN0
IHNjcm9sbENvcm5lckFuZFJlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKICAgICAvLyBOT1RFOiBUaGlz
IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3ZlcnJpZGVuIHNldFNjcm9sbE9mZnNldCBm
cm9tIFNjcm9sbGFibGVBcmVhLgogICAgIHZvaWQgc2Nyb2xsVG8oaW50LCBpbnQpOwpAQCAtMTE0
Niw4ICsxMTQ2LDggQEAgcHJpdmF0ZToKICAgICBJbnRSZWN0IHJlY3RGb3JIb3Jpem9udGFsU2Ny
b2xsYmFyKGNvbnN0IEludFJlY3QmIGJvcmRlckJveFJlY3QpIGNvbnN0OwogICAgIEludFJlY3Qg
cmVjdEZvclZlcnRpY2FsU2Nyb2xsYmFyKGNvbnN0IEludFJlY3QmIGJvcmRlckJveFJlY3QpIGNv
bnN0OwogCi0gICAgTGF5b3V0VW5pdCB2ZXJ0aWNhbFNjcm9sbGJhclN0YXJ0KGludCBtaW5YLCBp
bnQgbWF4WCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBob3Jpem9udGFsU2Nyb2xsYmFyU3RhcnQo
aW50IG1pblgpIGNvbnN0OworICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhclN0YXJ0KGludCBtaW5Y
LCBpbnQgbWF4WCkgY29uc3Q7CisgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJTdGFydChpbnQg
bWluWCkgY29uc3Q7CiAKICAgICBib29sIG92ZXJmbG93Q29udHJvbHNJbnRlcnNlY3RSZWN0KGNv
bnN0IEludFJlY3QmIGxvY2FsUmVjdCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMGJkNWRkNTYwOWM2MmJmNGVjYmQ2
YmRlNjgyNGZkODFiYmUzNWE0ZS4uNTkyYjAwMDhkOTBhMmM0Yzk4NWFhY2VhNDIzZmVhNDUyNmMy
NGFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKQEAgLTIxMjcsOCArMjEyNyw4IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRD
b250ZW50c05lZWREaXNwbGF5SW5SZWN0KGNvbnN0IEludFJlY3QmIHIsIEdyYXBoaWNzCiB9CiAK
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEludFJlY3QmIHBhaW50RGlydHlSZWN0LCAvLyBJbiB0aGUgY29vcmRz
IG9mIHJvb3RMYXllci4KLSAgICAgICAgICAgICAgICAgICAgUGFpbnRCZWhhdmlvciBwYWludEJl
aGF2aW9yLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBwYWludGluZ1BoYXNlKQorICAgIGNv
bnN0IExheW91dFJlY3QmIHBhaW50RGlydHlSZWN0LCAvLyBJbiB0aGUgY29vcmRzIG9mIHJvb3RM
YXllci4KKyAgICBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlIHBhaW50aW5nUGhhc2UpCiB7CiAgICAgaWYgKHBhaW50c0ludG9XaW5kb3coKSB8
fCBwYWludHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCkpIHsKICNpZiAhUExBVEZPUk0oSU9TKQpA
QCAtMjE4NiwxMyArMjE4NiwxNyBAQCBzdGF0aWMgdm9pZCBwYWludFNjcm9sbGJhcihTY3JvbGxi
YXIqIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogfQogCiAvLyBV
cC1jYWxsIGZyb20gY29tcG9zaXRpbmcgbGF5ZXIgZHJhd2luZyBjYWxsYmFjay4KLXZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UgcGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcCkKK3ZvaWQgUmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2Ug
cGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwKQogewogI2lmbmRlZiBOREVCVUcK
ICAgICBpZiAoUGFnZSogcGFnZSA9IHJlbmRlcmVyKCkuZnJhbWUoKS5wYWdlKCkpCiAgICAgICAg
IHBhZ2UtPnNldElzUGFpbnRpbmcodHJ1ZSk7CiAjZW5kaWYKIAorICAgIC8vIFRoZSBkaXJ0eVJl
Y3QgaXMgaW4gdGhlIGNvb3JkcyBvZiB0aGUgcGFpbnRpbmcgcm9vdC4KKyAgICBMYXlvdXRSZWN0
IGRpcnR5UmVjdChjbGlwKTsKKyAgICBJbnRSZWN0IHBpeGVsU25hcHBlZFJlY3RGb3JJbnRlZ3Jh
bFBvc2l0aW9uZWRJdGVtcyhwaXhlbFNuYXBwZWRJbnRSZWN0KGRpcnR5UmVjdCkpOworCiAgICAg
aWYgKGdyYXBoaWNzTGF5ZXIgPT0gbV9ncmFwaGljc0xheWVyLmdldCgpCiAgICAgICAgIHx8IGdy
YXBoaWNzTGF5ZXIgPT0gbV9mb3JlZ3JvdW5kTGF5ZXIuZ2V0KCkKICAgICAgICAgfHwgZ3JhcGhp
Y3NMYXllciA9PSBtX2JhY2tncm91bmRMYXllci5nZXQoKQpAQCAtMjIwMCwyNiArMjIwNCwyNCBA
QCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyLCBHcmFwaAogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1f
c2Nyb2xsaW5nQ29udGVudHNMYXllci5nZXQoKSkgewogICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxQYWludCgmcmVuZGVyZXIoKSk7CiAKLSAgICAgICAgLy8gVGhlIGRpcnR5
UmVjdCBpcyBpbiB0aGUgY29vcmRzIG9mIHRoZSBwYWludGluZyByb290LgotICAgICAgICBJbnRS
ZWN0IGRpcnR5UmVjdCA9IGNsaXA7CiAgICAgICAgIGlmICghKHBhaW50aW5nUGhhc2UgJiBHcmFw
aGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzKSkKICAgICAgICAgICAgIGRpcnR5UmVjdC5p
bnRlcnNlY3QoZW5jbG9zaW5nSW50UmVjdChjb21wb3NpdGVkQm91bmRzSW5jbHVkaW5nTWFyZ2lu
KCkpKTsKIAogICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSB0aGUgc2FtZSByb290IGFzIGZvciBo
aXQgdGVzdGluZywgYmVjYXVzZSBib3RoIG1ldGhvZHMgY2FuIGNvbXB1dGUgYW5kIGNhY2hlIGNs
aXBSZWN0cy4KICAgICAgICAgcGFpbnRJbnRvTGF5ZXIoZ3JhcGhpY3NMYXllciwgJmNvbnRleHQs
IGRpcnR5UmVjdCwgUGFpbnRCZWhhdmlvck5vcm1hbCwgcGFpbnRpbmdQaGFzZSk7CiAKLSAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludCgmcmVuZGVyZXIoKSwgJmNvbnRl
eHQsIGNsaXApOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KCZy
ZW5kZXJlcigpLCAmY29udGV4dCwgZGlydHlSZWN0KTsKICAgICB9IGVsc2UgaWYgKGdyYXBoaWNz
TGF5ZXIgPT0gbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKLSAgICAgICAgcGFpbnRT
Y3JvbGxiYXIobV9vd25pbmdMYXllci5ob3Jpem9udGFsU2Nyb2xsYmFyKCksIGNvbnRleHQsIGNs
aXApOworICAgICAgICBwYWludFNjcm9sbGJhcihtX293bmluZ0xheWVyLmhvcml6b250YWxTY3Jv
bGxiYXIoKSwgY29udGV4dCwgcGl4ZWxTbmFwcGVkUmVjdEZvckludGVncmFsUG9zaXRpb25lZEl0
ZW1zKTsKICAgICB9IGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JWZXJ0aWNhbFNj
cm9sbGJhcigpKSB7Ci0gICAgICAgIHBhaW50U2Nyb2xsYmFyKG1fb3duaW5nTGF5ZXIudmVydGlj
YWxTY3JvbGxiYXIoKSwgY29udGV4dCwgY2xpcCk7CisgICAgICAgIHBhaW50U2Nyb2xsYmFyKG1f
b3duaW5nTGF5ZXIudmVydGljYWxTY3JvbGxiYXIoKSwgY29udGV4dCwgcGl4ZWxTbmFwcGVkUmVj
dEZvckludGVncmFsUG9zaXRpb25lZEl0ZW1zKTsKICAgICB9IGVsc2UgaWYgKGdyYXBoaWNzTGF5
ZXIgPT0gbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSkgewotICAgICAgICBjb25zdCBMYXlvdXRSZWN0
JiBzY3JvbGxDb3JuZXJBbmRSZXNpemVyID0gbV9vd25pbmdMYXllci5zY3JvbGxDb3JuZXJBbmRS
ZXNpemVyUmVjdCgpOworICAgICAgICBJbnRSZWN0IHNjcm9sbENvcm5lckFuZFJlc2l6ZXIgPSBt
X293bmluZ0xheWVyLnNjcm9sbENvcm5lckFuZFJlc2l6ZXJSZWN0KCk7CiAgICAgICAgIGNvbnRl
eHQuc2F2ZSgpOwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtc2Nyb2xsQ29ybmVyQW5kUmVz
aXplci54KCksIC1zY3JvbGxDb3JuZXJBbmRSZXNpemVyLnkoKSk7Ci0gICAgICAgIExheW91dFJl
Y3QgdHJhbnNmb3JtZWRDbGlwID0gY2xpcDsKKyAgICAgICAgSW50UmVjdCB0cmFuc2Zvcm1lZENs
aXAgPSBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVkSXRlbXM7CiAgICAgICAg
IHRyYW5zZm9ybWVkQ2xpcC5tb3ZlQnkoc2Nyb2xsQ29ybmVyQW5kUmVzaXplci5sb2NhdGlvbigp
KTsKLSAgICAgICAgbV9vd25pbmdMYXllci5wYWludFNjcm9sbENvcm5lcigmY29udGV4dCwgSW50
UG9pbnQoKSwgcGl4ZWxTbmFwcGVkSW50UmVjdCh0cmFuc2Zvcm1lZENsaXApKTsKKyAgICAgICAg
bV9vd25pbmdMYXllci5wYWludFNjcm9sbENvcm5lcigmY29udGV4dCwgSW50UG9pbnQoKSwgdHJh
bnNmb3JtZWRDbGlwKTsKICAgICAgICAgbV9vd25pbmdMYXllci5wYWludFJlc2l6ZXIoJmNvbnRl
eHQsIEludFBvaW50KCksIHRyYW5zZm9ybWVkQ2xpcCk7CiAgICAgICAgIGNvbnRleHQucmVzdG9y
ZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaAppbmRleCA1OGUzMGM0ZTY5ZjkzYTM1ZTU5MGYyMzUxMjkxY2RkNzJmZWU3OTEwLi5mYmM3
ZmNlYTA2YmMxY2VmY2EyZGUwMTY3ZmQxNDRlZTkwOTgyMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xNjUsNyArMTY1LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hCZWZvcmVEaXNw
bGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0
JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXApIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxv
YXRSZWN0JiBjbGlwKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGZsb2F0IGNvbnRlbnRzU2NhbGVN
dWx0aXBsaWVyRm9yTmV3VGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IG92ZXJyaWRl
OwpAQCAtMjgzLDcgKzI4Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNUaWxlZEJhY2tpbmdG
bGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiAobV9jaGlsZENvbnRhaW5tZW50TGF5ZXIg
JiYgbV91c2luZ1RpbGVkQ2FjaGVMYXllcik7IH0KICAgICBHcmFwaGljc0xheWVyKiB0aWxlQ2Fj
aGVGbGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3VzaW5nVGlsZWRDYWNoZUxheWVy
ID8gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXIuZ2V0KCkgOiAwOyB9CiAKLSAgICB2b2lkIHBhaW50
SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJ
bnRSZWN0JiBwYWludERpcnR5UmVjdCwgUGFpbnRCZWhhdmlvciwgR3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2UpOworICAgIHZvaWQgcGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllcios
IEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmIHBhaW50RGlydHlSZWN0LCBQYWlu
dEJlaGF2aW9yLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSk7CiAKICAgICAvLyBIZWxwZXIg
ZnVuY3Rpb24gZm9yIHVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeS4KICAgICB2b2lkIGFkanVz
dEFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHNGb3JGbG93VGhyZWFkKEludFJlY3QmIGFuY2VzdG9y
Q29tcG9zaXRpbmdCb3VuZHMsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGluZ0FuY2VzdG9y
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKaW5kZXggN2NhN2M3NjNiMDE0MmY4NTA2ODQ0YzdmZGVjNTk0YjhiZTQ3YzNi
OC4uNjZiNDA2MDIyYzM3NTkyYzRiNWRlNmZlMWY2ZGM5MTQwNTdiZTQ5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTI2
MDgsMTcgKzI2MDgsMTggQEAgc3RhdGljIHZvaWQgcGFpbnRTY3JvbGxiYXIoU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QKICAgICBjb250ZXh0LnJl
c3RvcmUoKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhaW50Q29udGVudHMo
Y29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcCkKK3Zv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcCkKIHsKKyAgICBJbnRSZWN0IHBp
eGVsU25hcHBlZFJlY3RGb3JJbnRlZ3JhbFBvc2l0aW9uZWRJdGVtcyhwaXhlbFNuYXBwZWRJbnRS
ZWN0KExheW91dFJlY3QoY2xpcCkpKTsKICAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZv
ckhvcml6b250YWxTY3JvbGxiYXIoKSkKLSAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9yZW5kZXJW
aWV3LmZyYW1lVmlldygpLmhvcml6b250YWxTY3JvbGxiYXIoKSwgY29udGV4dCwgY2xpcCk7Cisg
ICAgICAgIHBhaW50U2Nyb2xsYmFyKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5ob3Jpem9udGFs
U2Nyb2xsYmFyKCksIGNvbnRleHQsIHBpeGVsU25hcHBlZFJlY3RGb3JJbnRlZ3JhbFBvc2l0aW9u
ZWRJdGVtcyk7CiAgICAgZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvclZlcnRpY2Fs
U2Nyb2xsYmFyKCkpCi0gICAgICAgIHBhaW50U2Nyb2xsYmFyKG1fcmVuZGVyVmlldy5mcmFtZVZp
ZXcoKS52ZXJ0aWNhbFNjcm9sbGJhcigpLCBjb250ZXh0LCBjbGlwKTsKKyAgICAgICAgcGFpbnRT
Y3JvbGxiYXIobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnZlcnRpY2FsU2Nyb2xsYmFyKCksIGNv
bnRleHQsIHBpeGVsU25hcHBlZFJlY3RGb3JJbnRlZ3JhbFBvc2l0aW9uZWRJdGVtcyk7CiAgICAg
ZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvclNjcm9sbENvcm5lcigpKSB7CiAgICAg
ICAgIGNvbnN0IEludFJlY3QmIHNjcm9sbENvcm5lciA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXco
KS5zY3JvbGxDb3JuZXJSZWN0KCk7CiAgICAgICAgIGNvbnRleHQuc2F2ZSgpOwogICAgICAgICBj
b250ZXh0LnRyYW5zbGF0ZSgtc2Nyb2xsQ29ybmVyLngoKSwgLXNjcm9sbENvcm5lci55KCkpOwot
ICAgICAgICBJbnRSZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IGNsaXA7CisgICAgICAgIEludFJlY3Qg
dHJhbnNmb3JtZWRDbGlwID0gcGl4ZWxTbmFwcGVkUmVjdEZvckludGVncmFsUG9zaXRpb25lZEl0
ZW1zOwogICAgICAgICB0cmFuc2Zvcm1lZENsaXAubW92ZUJ5KHNjcm9sbENvcm5lci5sb2NhdGlv
bigpKTsKICAgICAgICAgbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnBhaW50U2Nyb2xsQ29ybmVy
KCZjb250ZXh0LCB0cmFuc2Zvcm1lZENsaXApOwogICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApp
bmRleCA2YjA0M2Y4OGQ0MDUxZDgzMjJhZmM5M2VhN2U1ODQ5YWZjNmU2MmFmLi5kNzhiZTBmMWM5
Yzc1YzRmNDFlNDU1YzUwMjRjZWFhNjk2NmNkMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0zMDcsNyArMzA3LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uCiAgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRv
dWJsZSkgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQo
Y29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBwYWludENv
bnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQm
LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IDll
NjAxM2VkZTU4NjBjYzY5ZTZjMzhhNzMwMmVjODZmYzcyYjA3NTUuLjFjOTUwMTBkOWViNDRjODVk
ZTdkZTdjYTkxMjE4ZmVmY2I5MjhiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OnBhaW50
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAg
ICAgfQogCiAgICAgaWYgKGhhc0xheWVyKCkgJiYgbGF5ZXIoKS0+Y2FuUmVzaXplKCkpCi0gICAg
ICAgIGxheWVyKCktPnBhaW50UmVzaXplcihwYWludEluZm8uY29udGV4dCwgcm91bmRlZEludFBv
aW50KGFkanVzdGVkUGFpbnRPZmZzZXQpLCBwYWludEluZm8ucmVjdCk7CisgICAgICAgIGxheWVy
KCktPnBhaW50UmVzaXplcihwYWludEluZm8uY29udGV4dCwgcm91bmRlZEludFBvaW50KGFkanVz
dGVkUGFpbnRPZmZzZXQpLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHBhaW50SW5mby5yZWN0KSk7CiB9
CiAKIHZvaWQgUmVuZGVyV2lkZ2V0OjpzZXRPdmVybGFwVGVzdFJlc3VsdChib29sIGlzT3Zlcmxh
cHBlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCmluZGV4IDVkNGU4NDgyZGEwYTdj
NjBmYTZlNjVmNjM1ZWU5NzMwNzg2NWZjOTQuLmY4NTIxNTEwMWMzMWNiZmU1YzcyMzM4YjdhZGZj
NTk5MjkxYTlhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaApAQCAtMTksNiAr
MTksNyBAQAogI2lmbmRlZiBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dF9oCiAjZGVmaW5l
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0X2gKIAorI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtNTgsNyArNTksNyBAQCBwdWJsaWM6CiAg
ICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopOwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvUGFp
bnQpOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0VG9QYWludCk7
CiAKICAgICB2b2lkIGluaXRpYWxpemUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dEdMLmNwcAppbmRleCA0NTM1Njg2ZjIwZGI1MmI5YTAyYmE4OTY3MDc3YmJkMTZjNmYxZmM1
Li43YTlhMTRlMzI3NjFhMTY4ODVjOTgyNmVmNTYyODg3MjJmODZiNGM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcApAQCAtMzk2LDExICszOTYsMTEgQEAgdm9pZCBB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBH
cmFwaGljc0xheWVyKikKIAogfQogCi12b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiByZWN0VG9Q
YWludCkKK3ZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMo
Y29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdFRvUGFpbnQpCiB7CiAgICAg
Y29udGV4dC5zYXZlKCk7CiAgICAgY29udGV4dC5jbGlwKHJlY3RUb1BhaW50KTsKLSAgICBjb3Jl
KG1fd2ViVmlldyktPm1haW5GcmFtZSgpLnZpZXcoKS0+cGFpbnQoJmNvbnRleHQsIHJlY3RUb1Bh
aW50KTsKKyAgICBjb3JlKG1fd2ViVmlldyktPm1haW5GcmFtZSgpLnZpZXcoKS0+cGFpbnQoJmNv
bnRleHQsIEludFJlY3QocmVjdFRvUGFpbnQpKTsKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA1YmU5NTAyZWJhMzcyY2UwMmNmODQyNzI2Yjk1ZTM1
Yzk3ZDAwMjQwLi5jNjFjZjhhNDlhMzZlZGJlZWI5YWQyMGY4MWI0YmIwNjQzNjhmM2JmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcApAQCAtNjcyNSw3ICs2NzI1LDcgQEAgdm9pZCBXZWJWaWV3Ojpub3Rp
ZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogICAgIGZsdXNoUGVuZGluZ0dy
YXBoaWNzTGF5ZXJDaGFuZ2VzU29vbigpOwogfQogCi12b2lkIFdlYlZpZXc6OnBhaW50Q29udGVu
dHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGluQ2xpcCkKK3ZvaWQgV2ViVmll
dzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBpbkNs
aXApCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gY29yZShtX21haW5GcmFtZSk7CiAgICAgaWYgKCFm
cmFtZSkKQEAgLTY3MzMsNyArNjczMyw3IEBAIHZvaWQgV2ViVmlldzo6cGFpbnRDb250ZW50cyhj
b25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwCiAKICAg
ICBjb250ZXh0LnNhdmUoKTsKICAgICBjb250ZXh0LmNsaXAoaW5DbGlwKTsKLSAgICBmcmFtZS0+
dmlldygpLT5wYWludCgmY29udGV4dCwgaW5DbGlwKTsKKyAgICBmcmFtZS0+dmlldygpLT5wYWlu
dCgmY29udGV4dCwgSW50UmVjdChpbkNsaXApKTsKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5oCmluZGV4IGJkZWIxZDAzZWM2NmRhN2FmZDkwMzg3Njg3MDY5ZDdiNGY1
ZjVlNjAuLjJlZTkxYWM4ZGI2ZGRjMjc3NjY1MDhmMjZiOTE1NzMxYWMxZDA4OWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJWaWV3LmgKQEAgLTEwMTksNyArMTAxOSw3IEBAIHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NM
YXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAg
IHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5DbGlwKTsKIAogICAgIC8vIENBQ0ZMYXllclRyZWVI
b3N0Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoUGVuZGluZ0dyYXBoaWNzTGF5ZXJDaGFu
Z2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L0xheWVyVHJlZUhvc3RHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcAppbmRleCA3MGY2YzgzNjUxMzlkYzUzNzJmOGY1ZjAx
NWQyNWExZmJmOWU0NmEzLi43MjM3ZDQ0OGMyMDI4MTE4OTRlZGRmMGI2M2VhMmNmMGM1Zjk4ZWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVy
VHJlZUhvc3RHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9n
dGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKQEAgLTI3MiwxNiArMjcyLDE2IEBAIHZvaWQgTGF5ZXJU
cmVlSG9zdEd0azo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikKIHsKIH0KIAotdm9pZCBMYXllclRyZWVIb3N0R3RrOjpwYWludENvbnRlbnRzKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3ND
b250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcFJl
Y3QpCit2b2lkIExheWVyVHJlZUhvc3RHdGs6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KQogewog
ICAgIGlmIChncmFwaGljc0xheWVyID09IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci5nZXQo
KSkgewotICAgICAgICBtX3dlYlBhZ2UtPmRyYXdSZWN0KGdyYXBoaWNzQ29udGV4dCwgY2xpcFJl
Y3QpOworICAgICAgICBtX3dlYlBhZ2UtPmRyYXdSZWN0KGdyYXBoaWNzQ29udGV4dCwgSW50UmVj
dChjbGlwUmVjdCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgZm9yIChhdXRvJiBw
YWdlT3ZlcmxheUxheWVyIDogbV9wYWdlT3ZlcmxheUxheWVycykgewogICAgICAgICBpZiAocGFn
ZU92ZXJsYXlMYXllci52YWx1ZS5nZXQoKSA9PSBncmFwaGljc0xheWVyKSB7Ci0gICAgICAgICAg
ICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShwYWdlT3ZlcmxheUxheWVyLmtleSwgZ3JhcGhp
Y3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3Zl
cmxheShwYWdlT3ZlcmxheUxheWVyLmtleSwgZ3JhcGhpY3NDb250ZXh0LCBJbnRSZWN0KGNsaXBS
ZWN0KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3Rr
LmgKaW5kZXggYmIzMGIwOTkwNTNmMjRhNTFjZTU2ZDZkNTg0ZmFjNzA1YjBiOWIyNS4uMWNiY2Yz
ZTU3NGY5ZWRjZWZjMWI3YjkxNGFlMDE2Mjc4N2VhNjhlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmgKQEAg
LTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHBh
aW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVu
dHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGNsaXBSZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0Zv
ckxheWVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IH0KIAogICAgIHZv
aWQgY3JlYXRlUGFnZU92ZXJsYXlMYXllcihQYWdlT3ZlcmxheSopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IGI5NzEyNTdlZDc2ZmE5ZTQ5MjAwY2Y3MDVmMTExZmE1
ZDQyNTU5MWIuLjc1OWZhMTkzNGQ0ZjE1N2U1NzNhOGQ5MGE1ZjZkNDFiMWMwNTFmY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRv
dWJsZSB0aW1lKSBvdmVycmlkZSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGUgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGNsaXBSZWN0KSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgY29uc3Qgb3ZlcnJpZGUgeyB9CiAjaWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggMzIwYTQ4YWQzYjE5MDZhYmJiZTViNGY5
NTM0M2VjZDJlMjM2NDVkNC4uYmI4OTE3ZDllYWUxNGMwYTNjOWYyNzQ2OWI3ODg2ZDA0MWIxZDQw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0xODksMTEgKzE4
OSwxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpjbGVhclBhZ2VPdmVybGF5
KFBhZ2VPdmVybGF5KiBwYWdlT3ZlcmxheSkKICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpOwogfQogCi12b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpwYWludENvbnRl
bnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYg
Z3JhcGhpY3NDb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVj
dCYgY2xpcFJlY3QpCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpwYWludENvbnRl
bnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYg
Z3JhcGhpY3NDb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRS
ZWN0JiBjbGlwUmVjdCkKIHsKICAgICBmb3IgKGNvbnN0IGF1dG8mIG92ZXJsYXlBbmRMYXllciA6
IG1fcGFnZU92ZXJsYXlMYXllcnMpIHsKICAgICAgICAgaWYgKG92ZXJsYXlBbmRMYXllci52YWx1
ZS5nZXQoKSA9PSBncmFwaGljc0xheWVyKSB7Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQ
YWdlT3ZlcmxheShvdmVybGF5QW5kTGF5ZXIua2V5LCBncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0
KTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5KG92ZXJsYXlBbmRMYXll
ci5rZXksIGdyYXBoaWNzQ29udGV4dCwgSW50UmVjdChjbGlwUmVjdCkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLmgKaW5kZXggMWVlMmEwNTBiODYxZTc2ODE2YjUxYWJmNzBkN2VjYTY5YzdmOTNiMi4u
ZTUwZWI3NjY4NTBhYmIxYmM0NTI2M2YzNGNmMzUyNjFmNzdlODMxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtOTQsNyArOTQsNyBAQCBwcml2YXRlOgog
ICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91Ymxl
IHRpbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgY2xpcFJlY3QpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBj
b25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0KaW5kZXggOTA5MTY1ZGQzYzE2OTkyYWZkZTViMDI3NzUzY2JhYTY1YmQ3YTQwZC4uZDQ1YTQ4
OTlkYzkzZGNiNzcxNzQwMDc5ZGQwNDUyYzQyZjYyY2JlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC0zNTYsMTEgKzM1NiwxMSBAQCB2b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKQogewogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNz
Q29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29u
c3QgSW50UmVjdCYgY2xpcFJlY3QpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwg
Y29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCkKIHsKICAgICBmb3IgKGF1dG8gaXQgPSBtX3BhZ2VP
dmVybGF5TGF5ZXJzLmJlZ2luKCksIGVuZCA9IG1fcGFnZU92ZXJsYXlMYXllcnMuZW5kKCk7IGl0
ICE9IGVuZDsgKytpdCkgewogICAgICAgICBpZiAoaXQtPnZhbHVlLmdldCgpID09IGdyYXBoaWNz
TGF5ZXIpIHsKLSAgICAgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5KGl0LT5rZXks
IGdyYXBoaWNzQ29udGV4dCwgY2xpcFJlY3QpOworICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3
UGFnZU92ZXJsYXkoaXQtPmtleSwgZ3JhcGhpY3NDb250ZXh0LCBJbnRSZWN0KGNsaXBSZWN0KSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223902</attachid>
            <date>2014-02-11 14:47:43 -0800</date>
            <delta_ts>2014-02-11 15:03:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128460-20140211144757.patch</filename>
            <type>text/plain</type>
            <size>28604</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE1NzgyZWIzZTdkMjVk
YzE4ZDEzM2I0ZDQ5YzdmNTJjYzNiNTcxNC4uNzQ5Y2E0NmMwMDYyNTUyY2UxNjRkMjQ2ZjJkZjlj
NDk3M2QyZTQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTAyLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIEdyYXBoaWNzTGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMncyBjbGlwIHJlY3Qgc3Vi
cGl4ZWwgYmFzZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIHRyYW5zaXRpb25pbmcgdG8gc3VicGl4ZWwg
cmVuZGVyIGxheWVyIG9mZnNldHRpbmcgZnJvbSAKKyAgICAgICAgdGhlIGludGVncmFsIHBvc2l0
aW9uZWQgZ3JhcGhpY3MgbGF5ZXIuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxp
dHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0
aW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGlu
YXRvcjo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29ybmVyUmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsQ29ybmVyUmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpyZXNpemVyQ29ybmVyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsQ29ybmVyQW5kUmVzaXplclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnZlcnRpY2FsU2Nyb2xsYmFyU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6Omhvcml6b250YWxTY3JvbGxiYXJTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6cGFpbnRSZXNpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpo
aXRUZXN0T3ZlcmZsb3dDb250cm9scyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OnBhaW50KToKKwogMjAxNC0wMi0xMCAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSURCOiBzdG9yYWdlL2luZGV4
ZWRkYi9tb3ppbGxhL2luZGV4ZXMuaHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGRlY2Zh
ZjFhODBjMTM2OTlhNTkxY2Y4NzAwMzk3MDM4NTZjMjk2M2QuLmQyZTMxZTc2MjIwOTUyNTU4YmFk
YmExZDNiNTQ4OGFlNmJiNjQzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxNC0wMi0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFN1
YnBpeGVsIHJlbmRlcmluZzogTWFrZSBHcmFwaGljc0xheWVyQ2xpZW50OjpwYWludENvbnRlbnRz
J3MgY2xpcCByZWN0IHN1YnBpeGVsIGJhc2VkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyB0aGUgZmlyc3Qgc3RlcCBpbiB0cmFuc2l0aW9u
aW5nIHRvIHN1YnBpeGVsIHJlbmRlciBsYXllciBvZmZzZXR0aW5nIGZyb20gCisgICAgICAgIHRo
ZSBpbnRlZ3JhbCBwb3NpdGlvbmVkIGdyYXBoaWNzIGxheWVyLgorCisgICAgICAgIE5vIGNoYW5n
ZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMpOgorCiAyMDE0LTAyLTEwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0g
QWRkIEdVbmlxdWVPdXRQdHIgYW5kIHVzZSBpdCBpbnN0ZWFkIG9mIEdPd25QdHIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwppbmRleCA1OWMwMGM3YzExMmU0MGNiNGM4NDhhZGQxMjEzNjNiMTZlN2NlYWVkLi5hNTJl
MmZmYTM1YTg5OTgyNTY2N2MyOWUyNGY2YmRhMjhjNzliMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTQtMDItMTAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IE1ha2UgR3JhcGhpY3NMYXllckNsaWVu
dDo6cGFpbnRDb250ZW50cydzIGNsaXAgcmVjdCBzdWJwaXhlbCBiYXNlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODQ2MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0
ZXAgaW4gdHJhbnNpdGlvbmluZyB0byBzdWJwaXhlbCByZW5kZXIgbGF5ZXIgb2Zmc2V0dGluZyBm
cm9tIAorICAgICAgICB0aGUgaW50ZWdyYWwgcG9zaXRpb25lZCBncmFwaGljcyBsYXllci4KKwor
ICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYlZpZXcu
Y3BwOgorICAgICAgICAoV2ViVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogV2ViVmll
dy5oOgorCiAyMDE0LTAyLTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIENsZWFudXAgdGhlIGludGVyZmFjZSBvZiBGcmFtZVNlbGVjdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDNiNGZiMjE1ZjllMjg5MTAwMjYxOWIzN2M0YzkwMTZiYjI5YTg4ODYuLjgzZGMzOWQ0ZThh
YTc5MzViMDA3ZDNiMjlkZjUzMTkyMzE3YzYwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBA
QAorMjAxNC0wMi0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFN1YnBpeGVsIHJlbmRlcmluZzogTWFrZSBHcmFwaGljc0xheWVyQ2xpZW50OjpwYWludENvbnRl
bnRzJ3MgY2xpcCByZWN0IHN1YnBpeGVsIGJhc2VkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyB0aGUgZmlyc3Qgc3RlcCBpbiB0cmFuc2l0
aW9uaW5nIHRvIHN1YnBpeGVsIHJlbmRlciBsYXllciBvZmZzZXR0aW5nIGZyb20gCisgICAgICAg
IHRoZSBpbnRlZ3JhbCBwb3NpdGlvbmVkIGdyYXBoaWNzIGxheWVyLgorCisgICAgICAgIE5vIGNo
YW5nZSBpbiBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9MYXllclRyZWVIb3N0R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdEd0
azo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXll
clRyZWVIb3N0R3RrLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToK
KyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnBhaW50Q29u
dGVudHMpOgorCiAyMDE0LTAyLTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXhlcy5odG1sIGZh
aWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyQ2xpZW50LmgKaW5kZXggZWNhNjI2NGFjNjFlMWRmNGI4NTM0NzQyNDRiZTQwYjE3YjRj
YzQ2OC4uNDdiNGRmYzE1N2JlMmVlODQ5MzE1NTc5YjkzYzZhNGUwNzQ4MzQzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGll
bnQuaApAQCAtMjksNiArMjksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG9h
dFBvaW50OworY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3Mg
R3JhcGhpY3NMYXllcjsKIGNsYXNzIEludFBvaW50OwpAQCAtNzAsNyArNzEsNyBAQCBwdWJsaWM6
CiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhpcyBsYXllciByZXF1aXJlcyBhIGZsdXNoIGJl
Zm9yZSB0aGUgbmV4dCBkaXNwbGF5IHJlZnJlc2guCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZs
dXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopIHsgfQogCi0gICAg
dmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNz
Q29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNs
aXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xh
eWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IEZsb2F0UmVjdCYgaW5DbGlwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENoYW5n
ZXNGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyB9CiAKICAgICAvLyBQcm92
aWRlcyBjdXJyZW50IHRyYW5zZm9ybSAodGFraW5nIHRyYW5zZm9ybS1vcmlnaW4gYW5kIGFuaW1h
dGlvbnMgaW50byBhY2NvdW50KS4gSW5wdXQgbWF0cml4IGhhcyBiZWVuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggMmI1YjEx
OTNiYzUzMDgwYmVlOTIxZDIyMmRmZWNlNGVhZDZkOTEwZi4uOWNiOWU5N2RlZjYwYTUwNmZkZTc4
MDRiMGY4MzMzZDMzNDVmZTY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjUzLDkgKzI1Myw5IEBAIHZvaWQgQ29tcG9z
aXRpbmdDb29yZGluYXRvcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikKIH0KIAogCi12b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGlj
c0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdCkKK3ZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyhjb25zdCBH
cmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29u
dGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcFJl
Y3QpCiB7Ci0gICAgbV9jbGllbnQtPnBhaW50TGF5ZXJDb250ZW50cyhncmFwaGljc0xheWVyLCBn
cmFwaGljc0NvbnRleHQsIGNsaXBSZWN0KTsKKyAgICBtX2NsaWVudC0+cGFpbnRMYXllckNvbnRl
bnRzKGdyYXBoaWNzTGF5ZXIsIGdyYXBoaWNzQ29udGV4dCwgZW5jbG9zaW5nSW50UmVjdChjbGlw
UmVjdCkpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gQ29tcG9zaXRpbmdD
b29yZGluYXRvcjo6Y3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50KiBjbGll
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3Iu
aAppbmRleCA4NGI4NTMyNzhjOGFjMjVkOTI1NDNjODcwZTRlNDc3ZGJlMjM3YWRiLi40YmM1NjI1
NzJmMjkwNDY0ZTUwZjc5MTAyODRkOWQzZDNhZTkyMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29y
ZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTkxLDcgKzkxLDcgQEAgcHJp
dmF0ZToKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3Qg
R3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggYWQ2MjU5NWMy
OWIyMWJmZTEyMTdkMDNmMGUzMGFjNWU1YWY4N2ViMC4uYTVjMjhkMzU0ZjViNDM0OTU3Yzk1YjU2
YjE2NzQzNDI3YzQ3MzE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCkBAIC0yNjk5LDcgKzI2OTksNyBAQCBMYXlvdXRSZWN0IFJlbmRlckxheWVyOjpzY3JvbGxD
b3JuZXJBbmRSZXNpemVyUmVjdCgpIGNvbnN0CiB7CiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5k
ZXJCb3goKTsKICAgICBpZiAoIWJveCkKLSAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKKyAgICAg
ICAgcmV0dXJuIExheW91dFJlY3QoKTsKICAgICBMYXlvdXRSZWN0IHNjcm9sbENvcm5lckFuZFJl
c2l6ZXIgPSBzY3JvbGxDb3JuZXJSZWN0KCk7CiAgICAgaWYgKHNjcm9sbENvcm5lckFuZFJlc2l6
ZXIuaXNFbXB0eSgpKQogICAgICAgICBzY3JvbGxDb3JuZXJBbmRSZXNpemVyID0gcmVzaXplckNv
cm5lclJlY3QodGhpcywgYm94LT5ib3JkZXJCb3hSZWN0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAwYmQ1ZGQ1NjA5YzYyYmY0
ZWNiZDZiZGU2ODI0ZmQ4MWJiZTM1YTRlLi4zMzNkOTE1YWZmYTYwOTE3ZDYxMjI3OTNjOGJmMjY5
ZWJjMDUwYWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcApAQCAtMjEyNyw4ICsyMTI3LDggQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6
OnNldENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgciwgR3JhcGhpY3MK
IH0KIAogdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwKLSAgICAg
ICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0eVJlY3QsIC8vIEluIHRoZSBj
b29yZHMgb2Ygcm9vdExheWVyLgotICAgICAgICAgICAgICAgICAgICBQYWludEJlaGF2aW9yIHBh
aW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2UpCisg
ICAgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnREaXJ0eVJlY3QsIC8vIEluIHRoZSBjb29yZHMgb2Yg
cm9vdExheWVyLgorICAgIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvciwgR3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UgcGFpbnRpbmdQaGFzZSkKIHsKICAgICBpZiAocGFpbnRzSW50b1dpbmRv
dygpIHx8IHBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSkgewogI2lmICFQTEFURk9STShJ
T1MpCkBAIC0yMTg2LDEzICsyMTg2LDE3IEBAIHN0YXRpYyB2b2lkIHBhaW50U2Nyb2xsYmFyKFNj
cm9sbGJhciogc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiB9CiAK
IC8vIFVwLWNhbGwgZnJvbSBjb21wb3NpdGluZyBsYXllciBkcmF3aW5nIGNhbGxiYWNrLgotdm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFp
bnRpbmdQaGFzZSBwYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwKQordm9pZCBSZW5k
ZXJMYXllckJhY2tpbmc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSBwYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXApCiB7CiAjaWZuZGVmIE5E
RUJVRwogICAgIGlmIChQYWdlKiBwYWdlID0gcmVuZGVyZXIoKS5mcmFtZSgpLnBhZ2UoKSkKICAg
ICAgICAgcGFnZS0+c2V0SXNQYWludGluZyh0cnVlKTsKICNlbmRpZgogCisgICAgLy8gVGhlIGRp
cnR5UmVjdCBpcyBpbiB0aGUgY29vcmRzIG9mIHRoZSBwYWludGluZyByb290LgorICAgIExheW91
dFJlY3QgZGlydHlSZWN0KGNsaXApOworICAgIEludFJlY3QgcGl4ZWxTbmFwcGVkUmVjdEZvcklu
dGVncmFsUG9zaXRpb25lZEl0ZW1zID0gcGl4ZWxTbmFwcGVkSW50UmVjdChkaXJ0eVJlY3QpOwor
CiAgICAgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbV9ncmFwaGljc0xheWVyLmdldCgpCiAgICAgICAg
IHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9mb3JlZ3JvdW5kTGF5ZXIuZ2V0KCkKICAgICAgICAgfHwg
Z3JhcGhpY3NMYXllciA9PSBtX2JhY2tncm91bmRMYXllci5nZXQoKQpAQCAtMjIwMCwyNCArMjIw
NCwyMiBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFw
aGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaAogICAgICAgICB8fCBncmFwaGljc0xheWVy
ID09IG1fc2Nyb2xsaW5nQ29udGVudHNMYXllci5nZXQoKSkgewogICAgICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxQYWludCgmcmVuZGVyZXIoKSk7CiAKLSAgICAgICAgLy8gVGhl
IGRpcnR5UmVjdCBpcyBpbiB0aGUgY29vcmRzIG9mIHRoZSBwYWludGluZyByb290LgotICAgICAg
ICBJbnRSZWN0IGRpcnR5UmVjdCA9IGNsaXA7CiAgICAgICAgIGlmICghKHBhaW50aW5nUGhhc2Ug
JiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzKSkKICAgICAgICAgICAgIGRpcnR5
UmVjdC5pbnRlcnNlY3QoZW5jbG9zaW5nSW50UmVjdChjb21wb3NpdGVkQm91bmRzSW5jbHVkaW5n
TWFyZ2luKCkpKTsKIAogICAgICAgICAvLyBXZSBoYXZlIHRvIHVzZSB0aGUgc2FtZSByb290IGFz
IGZvciBoaXQgdGVzdGluZywgYmVjYXVzZSBib3RoIG1ldGhvZHMgY2FuIGNvbXB1dGUgYW5kIGNh
Y2hlIGNsaXBSZWN0cy4KICAgICAgICAgcGFpbnRJbnRvTGF5ZXIoZ3JhcGhpY3NMYXllciwgJmNv
bnRleHQsIGRpcnR5UmVjdCwgUGFpbnRCZWhhdmlvck5vcm1hbCwgcGFpbnRpbmdQaGFzZSk7CiAK
LSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludCgmcmVuZGVyZXIoKSwg
JmNvbnRleHQsIGNsaXApOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBh
aW50KCZyZW5kZXJlcigpLCAmY29udGV4dCwgZGlydHlSZWN0KTsKICAgICB9IGVsc2UgaWYgKGdy
YXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKLSAgICAgICAg
cGFpbnRTY3JvbGxiYXIobV9vd25pbmdMYXllci5ob3Jpem9udGFsU2Nyb2xsYmFyKCksIGNvbnRl
eHQsIGNsaXApOworICAgICAgICBwYWludFNjcm9sbGJhcihtX293bmluZ0xheWVyLmhvcml6b250
YWxTY3JvbGxiYXIoKSwgY29udGV4dCwgcGl4ZWxTbmFwcGVkUmVjdEZvckludGVncmFsUG9zaXRp
b25lZEl0ZW1zKTsKICAgICB9IGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JWZXJ0
aWNhbFNjcm9sbGJhcigpKSB7Ci0gICAgICAgIHBhaW50U2Nyb2xsYmFyKG1fb3duaW5nTGF5ZXIu
dmVydGljYWxTY3JvbGxiYXIoKSwgY29udGV4dCwgY2xpcCk7CisgICAgICAgIHBhaW50U2Nyb2xs
YmFyKG1fb3duaW5nTGF5ZXIudmVydGljYWxTY3JvbGxiYXIoKSwgY29udGV4dCwgcGl4ZWxTbmFw
cGVkUmVjdEZvckludGVncmFsUG9zaXRpb25lZEl0ZW1zKTsKICAgICB9IGVsc2UgaWYgKGdyYXBo
aWNzTGF5ZXIgPT0gbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSkgewogICAgICAgICBjb25zdCBMYXlv
dXRSZWN0JiBzY3JvbGxDb3JuZXJBbmRSZXNpemVyID0gbV9vd25pbmdMYXllci5zY3JvbGxDb3Ju
ZXJBbmRSZXNpemVyUmVjdCgpOwogICAgICAgICBjb250ZXh0LnNhdmUoKTsKICAgICAgICAgY29u
dGV4dC50cmFuc2xhdGUoLXNjcm9sbENvcm5lckFuZFJlc2l6ZXIueCgpLCAtc2Nyb2xsQ29ybmVy
QW5kUmVzaXplci55KCkpOwotICAgICAgICBMYXlvdXRSZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IGNs
aXA7CisgICAgICAgIExheW91dFJlY3QgdHJhbnNmb3JtZWRDbGlwID0gTGF5b3V0UmVjdChjbGlw
KTsKICAgICAgICAgdHJhbnNmb3JtZWRDbGlwLm1vdmVCeShzY3JvbGxDb3JuZXJBbmRSZXNpemVy
LmxvY2F0aW9uKCkpOwogICAgICAgICBtX293bmluZ0xheWVyLnBhaW50U2Nyb2xsQ29ybmVyKCZj
b250ZXh0LCBJbnRQb2ludCgpLCBwaXhlbFNuYXBwZWRJbnRSZWN0KHRyYW5zZm9ybWVkQ2xpcCkp
OwogICAgICAgICBtX293bmluZ0xheWVyLnBhaW50UmVzaXplcigmY29udGV4dCwgSW50UG9pbnQo
KSwgdHJhbnNmb3JtZWRDbGlwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaAppbmRleCA1OGUzMGM0ZTY5ZjkzYTM1ZTU5MGYyMzUxMjkxY2RkNzJmZWU3
OTEwLi5mYmM3ZmNlYTA2YmMxY2VmY2EyZGUwMTY3ZmQxNDRlZTkwOTgyMWIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0xNjUsNyArMTY1
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hC
ZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhp
Y3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNs
aXApIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwg
Y29uc3QgRmxvYXRSZWN0JiBjbGlwKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGZsb2F0IGNvbnRl
bnRzU2NhbGVNdWx0aXBsaWVyRm9yTmV3VGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0
IG92ZXJyaWRlOwpAQCAtMjgzLDcgKzI4Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNUaWxl
ZEJhY2tpbmdGbGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiAobV9jaGlsZENvbnRhaW5t
ZW50TGF5ZXIgJiYgbV91c2luZ1RpbGVkQ2FjaGVMYXllcik7IH0KICAgICBHcmFwaGljc0xheWVy
KiB0aWxlQ2FjaGVGbGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3VzaW5nVGlsZWRD
YWNoZUxheWVyID8gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXIuZ2V0KCkgOiAwOyB9CiAKLSAgICB2
b2lkIHBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBJbnRSZWN0JiBwYWludERpcnR5UmVjdCwgUGFpbnRCZWhhdmlvciwgR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UpOworICAgIHZvaWQgcGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmIHBhaW50RGlydHlS
ZWN0LCBQYWludEJlaGF2aW9yLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSk7CiAKICAgICAv
LyBIZWxwZXIgZnVuY3Rpb24gZm9yIHVwZGF0ZUdyYXBoaWNzTGF5ZXJHZW9tZXRyeS4KICAgICB2
b2lkIGFkanVzdEFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHNGb3JGbG93VGhyZWFkKEludFJlY3Qm
IGFuY2VzdG9yQ29tcG9zaXRpbmdCb3VuZHMsIGNvbnN0IFJlbmRlckxheWVyKiBjb21wb3NpdGlu
Z0FuY2VzdG9yKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggN2NhN2M3NjNiMDE0MmY4NTA2ODQ0YzdmZGVjNTk0
YjhiZTQ3YzNiOC4uMWI0MjAxMjlkYzM3YTBhNGVhNGQzMzA3OGY4NWZlYjcyZDcyYTE1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAKQEAgLTI2MDgsMTcgKzI2MDgsMTggQEAgc3RhdGljIHZvaWQgcGFpbnRTY3JvbGxiYXIoU2Ny
b2xsYmFyKiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QKICAgICBj
b250ZXh0LnJlc3RvcmUoKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhaW50
Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYg
Y2xpcCkKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWludENvbnRlbnRzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcCkKIHsKKyAgICBJ
bnRSZWN0IHBpeGVsU25hcHBlZFJlY3RGb3JJbnRlZ3JhbFBvc2l0aW9uZWRJdGVtcyA9IHBpeGVs
U25hcHBlZEludFJlY3QoTGF5b3V0UmVjdChjbGlwKSk7CiAgICAgaWYgKGdyYXBoaWNzTGF5ZXIg
PT0gbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpCi0gICAgICAgIHBhaW50U2Nyb2xsYmFy
KG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5ob3Jpem9udGFsU2Nyb2xsYmFyKCksIGNvbnRleHQs
IGNsaXApOworICAgICAgICBwYWludFNjcm9sbGJhcihtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCku
aG9yaXpvbnRhbFNjcm9sbGJhcigpLCBjb250ZXh0LCBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdy
YWxQb3NpdGlvbmVkSXRlbXMpOwogICAgIGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJG
b3JWZXJ0aWNhbFNjcm9sbGJhcigpKQotICAgICAgICBwYWludFNjcm9sbGJhcihtX3JlbmRlclZp
ZXcuZnJhbWVWaWV3KCkudmVydGljYWxTY3JvbGxiYXIoKSwgY29udGV4dCwgY2xpcCk7CisgICAg
ICAgIHBhaW50U2Nyb2xsYmFyKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS52ZXJ0aWNhbFNjcm9s
bGJhcigpLCBjb250ZXh0LCBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVkSXRl
bXMpOwogICAgIGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JTY3JvbGxDb3JuZXIo
KSkgewogICAgICAgICBjb25zdCBJbnRSZWN0JiBzY3JvbGxDb3JuZXIgPSBtX3JlbmRlclZpZXcu
ZnJhbWVWaWV3KCkuc2Nyb2xsQ29ybmVyUmVjdCgpOwogICAgICAgICBjb250ZXh0LnNhdmUoKTsK
ICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoLXNjcm9sbENvcm5lci54KCksIC1zY3JvbGxDb3Ju
ZXIueSgpKTsKLSAgICAgICAgSW50UmVjdCB0cmFuc2Zvcm1lZENsaXAgPSBjbGlwOworICAgICAg
ICBJbnRSZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IHBpeGVsU25hcHBlZFJlY3RGb3JJbnRlZ3JhbFBv
c2l0aW9uZWRJdGVtczsKICAgICAgICAgdHJhbnNmb3JtZWRDbGlwLm1vdmVCeShzY3JvbGxDb3Ju
ZXIubG9jYXRpb24oKSk7CiAgICAgICAgIG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5wYWludFNj
cm9sbENvcm5lcigmY29udGV4dCwgdHJhbnNmb3JtZWRDbGlwKTsKICAgICAgICAgY29udGV4dC5y
ZXN0b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgKaW5kZXggNmIwNDNmODhkNDA1MWQ4MzIyYWZjOTNlYTdlNTg0OWFmYzZlNjJhZi4u
ZDc4YmUwZjFjOWM3NWM0ZjQxZTQ1NWM1MDI0Y2VhYTY5NjZjZDAyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMzA3LDcgKzMw
Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRhdGlv
bgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBkb3VibGUpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0Jiwg
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhp
Y3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYp
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKaW5kZXggNWQ0
ZTg0ODJkYTBhN2M2MGZhNmU2NWY2MzVlZTk3MzA3ODY1ZmM5NC4uZjg1MjE1MTAxYzMxY2JmZTVj
NzIzMzhiN2FkZmM1OTkyOTFhOWE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5o
CkBAIC0xOSw2ICsxOSw3IEBACiAjaWZuZGVmIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
X2gKICNkZWZpbmUgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRfaAogCisjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIkdyYXBo
aWNzTGF5ZXJDbGllbnQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC01OCw3ICs1OSw3IEBA
IHB1YmxpYzoKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJs
ZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByZWN0VG9QYWludCk7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJl
Y3RUb1BhaW50KTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0R0wuY3BwCmluZGV4IDQ1MzU2ODZmMjBkYjUyYjlhMDJiYTg5NjcwNzdi
YmQxNmM2ZjFmYzUuLjhlNGYwMzI0N2MxZDE2YTVmMzRiODQ1MTgyNTI0MjhmNmI1MGI4ZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwCkBAIC0zOTYsMTEgKzM5Niwx
MSBAQCB2b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlGbHVzaFJlcXVp
cmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogCiB9CiAKLXZvaWQgQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJl
Y3QmIHJlY3RUb1BhaW50KQordm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cGFp
bnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiByZWN0VG9QYWlu
dCkKIHsKICAgICBjb250ZXh0LnNhdmUoKTsKICAgICBjb250ZXh0LmNsaXAocmVjdFRvUGFpbnQp
OwotICAgIGNvcmUobV93ZWJWaWV3KS0+bWFpbkZyYW1lKCkudmlldygpLT5wYWludCgmY29udGV4
dCwgcmVjdFRvUGFpbnQpOworICAgIGNvcmUobV93ZWJWaWV3KS0+bWFpbkZyYW1lKCkudmlldygp
LT5wYWludCgmY29udGV4dCwgZW5jbG9zaW5nSW50UmVjdChyZWN0VG9QYWludCkpOwogICAgIGNv
bnRleHQucmVzdG9yZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDViZTk1MDJlYmEz
NzJjZTAyY2Y4NDI3MjZiOTVlMzVjOTdkMDAyNDAuLjFjMzlmMzQwNmI2MWNmMDUzNmUyYzkyYzVj
M2QwMTU3NjBlZDM2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC02NzI1LDcgKzY3MjUsNyBA
QCB2b2lkIFdlYlZpZXc6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciop
CiAgICAgZmx1c2hQZW5kaW5nR3JhcGhpY3NMYXllckNoYW5nZXNTb29uKCk7CiB9CiAKLXZvaWQg
V2ViVmlldzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYg
aW5DbGlwKQordm9pZCBXZWJWaWV3OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBj
b25zdCBGbG9hdFJlY3QmIGluQ2xpcCkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBjb3JlKG1fbWFp
bkZyYW1lKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNjczMyw3ICs2NzMzLDcgQEAgdm9pZCBXZWJW
aWV3OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIEdyYXAKIAogICAgIGNvbnRleHQuc2F2ZSgpOwogICAgIGNvbnRleHQuY2xpcChp
bkNsaXApOwotICAgIGZyYW1lLT52aWV3KCktPnBhaW50KCZjb250ZXh0LCBpbkNsaXApOworICAg
IGZyYW1lLT52aWV3KCktPnBhaW50KCZjb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0KGluQ2xpcCkp
OwogICAgIGNvbnRleHQucmVzdG9yZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggYmRlYjFk
MDNlYzY2ZGE3YWZkOTAzODc2ODcwNjlkN2I0ZjVmNWU2MC4uMmVlOTFhYzhkYjZkZGMyNzc2NjUw
OGYyNmI5MTU3MzFhYzFkMDg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtMTAxOSw3ICsxMDE5LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRv
dWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBpbkNsaXApOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBpbkNs
aXApOwogCiAgICAgLy8gQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2hQZW5kaW5nR3JhcGhpY3NMYXllckNoYW5nZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCmlu
ZGV4IDcwZjZjODM2NTEzOWRjNTM3MmY4ZjVmMDE1ZDI1YTFmYmY5ZTQ2YTMuLjBkOTMwZmU0MWZk
MWQwYjZiYzA1NDQyMzZjNmZlNGRiZDllZjBkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcApAQCAt
MjcyLDE2ICsyNzIsMTYgQEAgdm9pZCBMYXllclRyZWVIb3N0R3RrOjpub3RpZnlGbHVzaFJlcXVp
cmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKQogewogfQogCi12b2lkIExheWVyVHJl
ZUhvc3RHdGs6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXll
ciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKK3ZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGlj
c0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNv
bnN0IEZsb2F0UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbV9u
b25Db21wb3NpdGVkQ29udGVudExheWVyLmdldCgpKSB7Ci0gICAgICAgIG1fd2ViUGFnZS0+ZHJh
d1JlY3QoZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAgICAgIG1fd2ViUGFnZS0+ZHJh
d1JlY3QoZ3JhcGhpY3NDb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0KGNsaXBSZWN0KSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIHBhZ2VPdmVybGF5TGF5ZXIgOiBt
X3BhZ2VPdmVybGF5TGF5ZXJzKSB7CiAgICAgICAgIGlmIChwYWdlT3ZlcmxheUxheWVyLnZhbHVl
LmdldCgpID09IGdyYXBoaWNzTGF5ZXIpIHsKLSAgICAgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1Bh
Z2VPdmVybGF5KHBhZ2VPdmVybGF5TGF5ZXIua2V5LCBncmFwaGljc0NvbnRleHQsIGNsaXBSZWN0
KTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5KHBhZ2VPdmVybGF5TGF5
ZXIua2V5LCBncmFwaGljc0NvbnRleHQsIGVuY2xvc2luZ0ludFJlY3QoY2xpcFJlY3QpKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAppbmRleCBi
YjMwYjA5OTA1M2YyNGE1MWNlNTZkNmQ1ODRmYWM3MDViMGI5YjI1Li4xY2JjZjNlNTc0ZjllZGNl
ZmMxYjdiOTE0YWUwMTYyNzg3ZWE2OGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaApAQCAtNzksNyArNzks
NyBAQCBwcml2YXRlOgogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
ZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIGNsaXBSZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
Y2xpcFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IHsgfQogCiAgICAgdm9pZCBjcmVhdGVQ
YWdlT3ZlcmxheUxheWVyKFBhZ2VPdmVybGF5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLmgKaW5kZXggYjk3MTI1N2VkNzZmYTllNDkyMDBjZjcwNWYxMTFmYTVkNDI1NTkxYi4u
NzU5ZmExOTM0ZDRmMTU3ZTU3M2E4ZDkwYTVmNmQ0MWIxYzA1MWZjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtODAsNyArODAsNyBAQCBwcml2YXRlOgogICAgIC8v
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5p
bWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUp
IG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgY2xpcFJlY3QpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBj
b25zdCBvdmVycmlkZSB7IH0KICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYS5tbQppbmRleCAzMjBhNDhhZDNiMTkwNmFiYmJlNWI0Zjk1MzQzZWNkMmUy
MzY0NWQ0Li4yNjFiYmZiZGQyM2QzMTE5NmQyODlmZGQ4ZDA3MGVkOGJmMGFiMjNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTE4OSwxMSArMTg5LDExIEBAIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmNsZWFyUGFnZU92ZXJsYXkoUGFnZU92ZXJs
YXkqIHBhZ2VPdmVybGF5KQogICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CiB9
CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnBhaW50Q29udGVudHMoY29uc3Qg
R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0Nv
bnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVj
dCkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnBhaW50Q29udGVudHMoY29uc3Qg
R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0Nv
bnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNsaXBS
ZWN0KQogewogICAgIGZvciAoY29uc3QgYXV0byYgb3ZlcmxheUFuZExheWVyIDogbV9wYWdlT3Zl
cmxheUxheWVycykgewogICAgICAgICBpZiAob3ZlcmxheUFuZExheWVyLnZhbHVlLmdldCgpID09
IGdyYXBoaWNzTGF5ZXIpIHsKLSAgICAgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5
KG92ZXJsYXlBbmRMYXllci5rZXksIGdyYXBoaWNzQ29udGV4dCwgY2xpcFJlY3QpOworICAgICAg
ICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkob3ZlcmxheUFuZExheWVyLmtleSwgZ3Jh
cGhpY3NDb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0KGNsaXBSZWN0KSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEuaAppbmRleCAxZWUyYTA1MGI4NjFlNzY4MTZiNTFhYmY3MGQ3ZWNhNjljN2Y5M2IyLi5l
NTBlYjc2Njg1MGFiYjFiYzQ1MjYzZjM0Y2YzNTI2MWY3N2U4MzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC05NCw3ICs5NCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUg
dGltZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBw
YWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBw
YWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNv
bnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bQppbmRleCA5MDkxNjVkZDNjMTY5OTJhZmRlNWIwMjc3NTNjYmFhNjViZDdhNDBkLi5iMzFkZmMw
YTE3MmRkMmY2YmYyNmYxMjEyMTYzZDI4YmRlYWQxYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTM1NiwxMSArMzU2LDExIEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhp
Y3NMYXllciopCiB7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnBh
aW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhpY3ND
b250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25z
dCBJbnRSZWN0JiBjbGlwUmVjdCkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcGhp
Y3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBj
b25zdCBGbG9hdFJlY3QmIGNsaXBSZWN0KQogewogICAgIGZvciAoYXV0byBpdCA9IG1fcGFnZU92
ZXJsYXlMYXllcnMuYmVnaW4oKSwgZW5kID0gbV9wYWdlT3ZlcmxheUxheWVycy5lbmQoKTsgaXQg
IT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGlmIChpdC0+dmFsdWUuZ2V0KCkgPT0gZ3JhcGhpY3NM
YXllcikgewotICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkoaXQtPmtleSwg
Z3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAgICAgICAgICBtX3dlYlBhZ2UtPmRyYXdQ
YWdlT3ZlcmxheShpdC0+a2V5LCBncmFwaGljc0NvbnRleHQsIGVuY2xvc2luZ0ludFJlY3QoY2xp
cFJlY3QpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223906</attachid>
            <date>2014-02-11 15:03:32 -0800</date>
            <delta_ts>2014-02-11 19:23:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128460-20140211150347.patch</filename>
            <type>text/plain</type>
            <size>28528</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE1NzgyZWIzZTdkMjVk
YzE4ZDEzM2I0ZDQ5YzdmNTJjYzNiNTcxNC4uMmY5MWFhNWM5ZmM2ZTAyYTUyZTMyMzFmNzNjYmYz
MDQwYjMyYmJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTAyLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBNYWtlIEdyYXBoaWNzTGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMncyBjbGlwIHJlY3Qgc3Vi
cGl4ZWwgYmFzZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAg
ICAgR3JhcGhpY3NDbGllbnQ6OnBhaW50Q29udGVudHMgdGFrZXMgY2xpcFJlY3QgYXMgRmxvYXRS
ZWN0IG5vdyBzbyB0aGF0IHdlIGNhbiBwYWludCBvbgorICAgICAgICBzdWJwaXhlbCBwb3NpdGlv
bi4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpwYWludENvbnRlbnRz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb3JuZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzY3JvbGxDb3JuZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2l6ZXJDb3Ju
ZXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxDb3JuZXJBbmRS
ZXNpemVyUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dmVydGljYWxTY3Jv
bGxiYXJTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aG9yaXpvbnRhbFNj
cm9sbGJhclN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludFJlc2l6
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RPdmVyZmxvd0NvbnRy
b2xzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhaW50Q29udGVu
dHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
cldpZGdldDo6cGFpbnQpOgorCiAyMDE0LTAyLTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBJREI6IHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXhl
cy5odG1sIGZhaWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZGVjZmFmMWE4MGMxMzY5OWE1OTFjZjg3
MDAzOTcwMzg1NmMyOTYzZC4uYTIwYjI2ZThjOTJmZmI0MzgyM2JhYWJiMzA3ODIzYzhjZjNmNTQz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAyLTEwICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBN
YWtlIEdyYXBoaWNzTGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMncyBjbGlwIHJlY3Qgc3VicGl4
ZWwgYmFzZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjg0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAg
R3JhcGhpY3NDbGllbnQ6OnBhaW50Q29udGVudHMgdGFrZXMgY2xpcFJlY3QgYXMgRmxvYXRSZWN0
IG5vdyBzbyB0aGF0IHdlIGNhbiBwYWludCBvbgorICAgICAgICBzdWJwaXhlbCBwb3NpdGlvbi4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKToK
KwogMjAxNC0wMi0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dMSUJdIEFkZCBHVW5pcXVlT3V0UHRyIGFuZCB1c2UgaXQgaW5zdGVhZCBv
ZiBHT3duUHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNTljMDBjN2MxMTJlNDBjYjRjODQ4YWRkMTIx
MzYzYjE2ZTdjZWFlZC4uYWFhZTVlYmNhNjA2NWNiZmY4MmU3NGUxMzdlNmYxMTk2NzRiNTk2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAyLTEwICBaYWxhbiBCdWp0
YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBNYWtl
IEdyYXBoaWNzTGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMncyBjbGlwIHJlY3Qgc3VicGl4ZWwg
YmFzZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjg0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgR3Jh
cGhpY3NDbGllbnQ6OnBhaW50Q29udGVudHMgdGFrZXMgY2xpcFJlY3QgYXMgRmxvYXRSZWN0IG5v
dyBzbyB0aGF0IHdlIGNhbiBwYWludCBvbgorICAgICAgICBzdWJwaXhlbCBwb3NpdGlvbi4KKwor
ICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIFdlYlZpZXcu
Y3BwOgorICAgICAgICAoV2ViVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogV2ViVmll
dy5oOgorCiAyMDE0LTAyLTA4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIENsZWFudXAgdGhlIGludGVyZmFjZSBvZiBGcmFtZVNlbGVjdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDNiNGZiMjE1ZjllMjg5MTAwMjYxOWIzN2M0YzkwMTZiYjI5YTg4ODYuLjVhNDRmNWRlMzg1
NzNhNWRjMDhkMzhjYTk1NzJjZDI3NWVkYzAxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBA
QAorMjAxNC0wMi0xMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IFN1YnBpeGVsIHJlbmRlcmluZzogTWFrZSBHcmFwaGljc0xheWVyQ2xpZW50OjpwYWludENvbnRl
bnRzJ3MgY2xpcCByZWN0IHN1YnBpeGVsIGJhc2VkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgorCisgICAgICAgIEdyYXBoaWNzQ2xpZW50OjpwYWludENvbnRlbnRzIHRha2Vz
IGNsaXBSZWN0IGFzIEZsb2F0UmVjdCBub3cgc28gdGhhdCB3ZSBjYW4gcGFpbnQgb24KKyAgICAg
ICAgc3VicGl4ZWwgcG9zaXRpb24uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxp
dHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0R3RrOjpwYWludENvbnRlbnRzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyk6CisKIDIwMTQtMDIt
MTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIElEQjogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleGVzLmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAppbmRl
eCBlY2E2MjY0YWM2MWUxZGY0Yjg1MzQ3NDI0NGJlNDBiMTdiNGNjNDY4Li40N2I0ZGZjMTU3YmUy
ZWU4NDkzMTU1NzliOTNjNmE0ZTA3NDgzNDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGbG9h
dFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xh
c3MgSW50UG9pbnQ7CkBAIC03MCw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICAvLyBOb3RpZmljYXRp
b24gdGhhdCB0aGlzIGxheWVyIHJlcXVpcmVzIGEgZmx1c2ggYmVmb3JlIHRoZSBuZXh0IGRpc3Bs
YXkgcmVmcmVzaC4KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVm
cmVzaChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRD
b250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGluQ2xpcCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRl
eHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBpbkNsaXAp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqKSBjb25zdCB7IH0KIAogICAgIC8vIFByb3ZpZGVzIGN1cnJlbnQgdHJhbnNm
b3JtICh0YWtpbmcgdHJhbnNmb3JtLW9yaWdpbiBhbmQgYW5pbWF0aW9ucyBpbnRvIGFjY291bnQp
LiBJbnB1dCBtYXRyaXggaGFzIGJlZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCAyYjViMTE5M2JjNTMwODBiZWU5MjFkMjIy
ZGZlY2U0ZWFkNmQ5MTBmLi45Y2I5ZTk3ZGVmNjBhNTA2ZmRlNzgwNGIwZjgzMzNkMzM0NWZlNjY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0
b3IuY3BwCkBAIC0yNTMsOSArMjUzLDkgQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogfQogCiAKLXZvaWQgQ29t
cG9zaXRpbmdDb29yZGluYXRvcjo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQordm9pZCBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCkKIHsKLSAgICBtX2NsaWVu
dC0+cGFpbnRMYXllckNvbnRlbnRzKGdyYXBoaWNzTGF5ZXIsIGdyYXBoaWNzQ29udGV4dCwgY2xp
cFJlY3QpOworICAgIG1fY2xpZW50LT5wYWludExheWVyQ29udGVudHMoZ3JhcGhpY3NMYXllciwg
Z3JhcGhpY3NDb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0KGNsaXBSZWN0KSk7CiB9CiAKIHN0ZDo6
dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVH
cmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3Np
dGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCmluZGV4IDg0Yjg1MzI3OGM4
YWMyNWQ5MjU0M2M4NzBlNGU0NzdkYmUyMzdhZGIuLjRiYzU2MjU3MmYyOTA0NjRlNTBmNzkxMDI4
NGQ5ZDNkM2FlOTIyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0
aW5nQ29vcmRpbmF0b3IuaApAQCAtOTEsNyArOTEsNyBAQCBwcml2YXRlOgogICAgIC8vIEdyYXBo
aWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChj
b25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsK
LSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3Jh
cGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3Qm
IGNsaXBSZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25z
dCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcFJlY3QpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGZs
b2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBhZDYyNTk1YzI5YjIxYmZlMTIxN2QwM2YwZTMw
YWM1ZTVhZjg3ZWIwLi5hNWMyOGQzNTRmNWI0MzQ5NTdjOTViNTZiMTY3NDM0MjdjNDczMTYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI2OTksNyArMjY5
OSw3IEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OnNjcm9sbENvcm5lckFuZFJlc2l6ZXJSZWN0
KCkgY29uc3QKIHsKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICgh
Ym94KQotICAgICAgICByZXR1cm4gSW50UmVjdCgpOworICAgICAgICByZXR1cm4gTGF5b3V0UmVj
dCgpOwogICAgIExheW91dFJlY3Qgc2Nyb2xsQ29ybmVyQW5kUmVzaXplciA9IHNjcm9sbENvcm5l
clJlY3QoKTsKICAgICBpZiAoc2Nyb2xsQ29ybmVyQW5kUmVzaXplci5pc0VtcHR5KCkpCiAgICAg
ICAgIHNjcm9sbENvcm5lckFuZFJlc2l6ZXIgPSByZXNpemVyQ29ybmVyUmVjdCh0aGlzLCBib3gt
PmJvcmRlckJveFJlY3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCmluZGV4IDBiZDVkZDU2MDljNjJiZjRlY2JkNmJkZTY4MjRmZDgxYmJl
MzVhNGUuLjMzM2Q5MTVhZmZhNjA5MTdkNjEyMjc5M2M4YmYyNjllYmMwNTBhYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yMTI3
LDggKzIxMjcsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNOZWVkRGlz
cGxheUluUmVjdChjb25zdCBJbnRSZWN0JiByLCBHcmFwaGljcwogfQogCiB2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllciwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICBjb25z
dCBJbnRSZWN0JiBwYWludERpcnR5UmVjdCwgLy8gSW4gdGhlIGNvb3JkcyBvZiByb290TGF5ZXIu
Ci0gICAgICAgICAgICAgICAgICAgIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvciwgR3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2UgcGFpbnRpbmdQaGFzZSkKKyAgICBjb25zdCBMYXlvdXRSZWN0
JiBwYWludERpcnR5UmVjdCwgLy8gSW4gdGhlIGNvb3JkcyBvZiByb290TGF5ZXIuCisgICAgUGFp
bnRCZWhhdmlvciBwYWludEJlaGF2aW9yLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBwYWlu
dGluZ1BoYXNlKQogewogICAgIGlmIChwYWludHNJbnRvV2luZG93KCkgfHwgcGFpbnRzSW50b0Nv
bXBvc2l0ZWRBbmNlc3RvcigpKSB7CiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTIxODYsMTMgKzIx
ODYsMTcgQEAgc3RhdGljIHZvaWQgcGFpbnRTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIs
IEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QKIH0KIAogLy8gVXAtY2FsbCBmcm9tIGNv
bXBvc2l0aW5nIGxheWVyIGRyYXdpbmcgY2FsbGJhY2suCi12b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5n
UGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXApCit2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFp
bnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2Us
IGNvbnN0IEZsb2F0UmVjdCYgY2xpcCkKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSByZW5kZXJlcigpLmZyYW1lKCkucGFnZSgpKQogICAgICAgICBwYWdlLT5zZXRJc1Bh
aW50aW5nKHRydWUpOwogI2VuZGlmCiAKKyAgICAvLyBUaGUgZGlydHlSZWN0IGlzIGluIHRoZSBj
b29yZHMgb2YgdGhlIHBhaW50aW5nIHJvb3QuCisgICAgTGF5b3V0UmVjdCBkaXJ0eVJlY3QoY2xp
cCk7CisgICAgSW50UmVjdCBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVkSXRl
bXMgPSBwaXhlbFNuYXBwZWRJbnRSZWN0KGRpcnR5UmVjdCk7CisKICAgICBpZiAoZ3JhcGhpY3NM
YXllciA9PSBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCkKICAgICAgICAgfHwgZ3JhcGhpY3NMYXllciA9
PSBtX2ZvcmVncm91bmRMYXllci5nZXQoKQogICAgICAgICB8fCBncmFwaGljc0xheWVyID09IG1f
YmFja2dyb3VuZExheWVyLmdldCgpCkBAIC0yMjAwLDI0ICsyMjA0LDIyIEBAIHZvaWQgUmVuZGVy
TGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIsIEdyYXBoCiAgICAgICAgIHx8IGdyYXBoaWNzTGF5ZXIgPT0gbV9zY3JvbGxpbmdDb250
ZW50c0xheWVyLmdldCgpKSB7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bFBhaW50KCZyZW5kZXJlcigpKTsKIAotICAgICAgICAvLyBUaGUgZGlydHlSZWN0IGlzIGluIHRo
ZSBjb29yZHMgb2YgdGhlIHBhaW50aW5nIHJvb3QuCi0gICAgICAgIEludFJlY3QgZGlydHlSZWN0
ID0gY2xpcDsKICAgICAgICAgaWYgKCEocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWlu
dE92ZXJmbG93Q29udGVudHMpKQogICAgICAgICAgICAgZGlydHlSZWN0LmludGVyc2VjdChlbmNs
b3NpbmdJbnRSZWN0KGNvbXBvc2l0ZWRCb3VuZHNJbmNsdWRpbmdNYXJnaW4oKSkpOwogCiAgICAg
ICAgIC8vIFdlIGhhdmUgdG8gdXNlIHRoZSBzYW1lIHJvb3QgYXMgZm9yIGhpdCB0ZXN0aW5nLCBi
ZWNhdXNlIGJvdGggbWV0aG9kcyBjYW4gY29tcHV0ZSBhbmQgY2FjaGUgY2xpcFJlY3RzLgogICAg
ICAgICBwYWludEludG9MYXllcihncmFwaGljc0xheWVyLCAmY29udGV4dCwgZGlydHlSZWN0LCBQ
YWludEJlaGF2aW9yTm9ybWFsLCBwYWludGluZ1BoYXNlKTsKIAotICAgICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFBhaW50KCZyZW5kZXJlcigpLCAmY29udGV4dCwgY2xpcCk7Cisg
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnQoJnJlbmRlcmVyKCksICZj
b250ZXh0LCBkaXJ0eVJlY3QpOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkgewotICAgICAgICBwYWludFNjcm9sbGJhcihtX293
bmluZ0xheWVyLmhvcml6b250YWxTY3JvbGxiYXIoKSwgY29udGV4dCwgY2xpcCk7CisgICAgICAg
IHBhaW50U2Nyb2xsYmFyKG1fb3duaW5nTGF5ZXIuaG9yaXpvbnRhbFNjcm9sbGJhcigpLCBjb250
ZXh0LCBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQb3NpdGlvbmVkSXRlbXMpOwogICAgIH0g
ZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsK
LSAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9vd25pbmdMYXllci52ZXJ0aWNhbFNjcm9sbGJhcigp
LCBjb250ZXh0LCBjbGlwKTsKKyAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9vd25pbmdMYXllci52
ZXJ0aWNhbFNjcm9sbGJhcigpLCBjb250ZXh0LCBwaXhlbFNuYXBwZWRSZWN0Rm9ySW50ZWdyYWxQ
b3NpdGlvbmVkSXRlbXMpOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZv
clNjcm9sbENvcm5lcigpKSB7CiAgICAgICAgIGNvbnN0IExheW91dFJlY3QmIHNjcm9sbENvcm5l
ckFuZFJlc2l6ZXIgPSBtX293bmluZ0xheWVyLnNjcm9sbENvcm5lckFuZFJlc2l6ZXJSZWN0KCk7
CiAgICAgICAgIGNvbnRleHQuc2F2ZSgpOwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtc2Ny
b2xsQ29ybmVyQW5kUmVzaXplci54KCksIC1zY3JvbGxDb3JuZXJBbmRSZXNpemVyLnkoKSk7Ci0g
ICAgICAgIExheW91dFJlY3QgdHJhbnNmb3JtZWRDbGlwID0gY2xpcDsKKyAgICAgICAgTGF5b3V0
UmVjdCB0cmFuc2Zvcm1lZENsaXAgPSBMYXlvdXRSZWN0KGNsaXApOwogICAgICAgICB0cmFuc2Zv
cm1lZENsaXAubW92ZUJ5KHNjcm9sbENvcm5lckFuZFJlc2l6ZXIubG9jYXRpb24oKSk7CiAgICAg
ICAgIG1fb3duaW5nTGF5ZXIucGFpbnRTY3JvbGxDb3JuZXIoJmNvbnRleHQsIEludFBvaW50KCks
IHBpeGVsU25hcHBlZEludFJlY3QodHJhbnNmb3JtZWRDbGlwKSk7CiAgICAgICAgIG1fb3duaW5n
TGF5ZXIucGFpbnRSZXNpemVyKCZjb250ZXh0LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZENsaXAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4
IDU4ZTMwYzRlNjlmOTNhMzVlNTkwZjIzNTEyOTFjZGQ3MmZlZTc5MTAuLmZiYzdmY2VhMDZiYzFj
ZWZjYTJkZTAxNjdmZDE0NGVlOTA5ODIxYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNo
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNz
Q29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIGNs
aXApIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxvYXQgY29udGVudHNTY2FsZU11bHRpcGxpZXJG
b3JOZXdUaWxlcyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3Qgb3ZlcnJpZGU7CkBAIC0yODMs
NyArMjgzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc1RpbGVkQmFja2luZ0ZsYXR0ZW5pbmdM
YXllcigpIGNvbnN0IHsgcmV0dXJuIChtX2NoaWxkQ29udGFpbm1lbnRMYXllciAmJiBtX3VzaW5n
VGlsZWRDYWNoZUxheWVyKTsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIHRpbGVDYWNoZUZsYXR0ZW5p
bmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXIgPyBtX2NoaWxk
Q29udGFpbm1lbnRMYXllci5nZXQoKSA6IDA7IH0KIAotICAgIHZvaWQgcGFpbnRJbnRvTGF5ZXIo
Y29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmIHBh
aW50RGlydHlSZWN0LCBQYWludEJlaGF2aW9yLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSk7
CisgICAgdm9pZCBwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnREaXJ0eVJlY3QsIFBhaW50QmVoYXZpb3Is
IEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlKTsKIAogICAgIC8vIEhlbHBlciBmdW5jdGlvbiBm
b3IgdXBkYXRlR3JhcGhpY3NMYXllckdlb21ldHJ5LgogICAgIHZvaWQgYWRqdXN0QW5jZXN0b3JD
b21wb3NpdGluZ0JvdW5kc0ZvckZsb3dUaHJlYWQoSW50UmVjdCYgYW5jZXN0b3JDb21wb3NpdGlu
Z0JvdW5kcywgY29uc3QgUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nQW5jZXN0b3IpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCA3Y2E3Yzc2M2IwMTQyZjg1MDY4NDRjN2ZkZWM1OTRiOGJlNDdjM2I4Li4xYjQyMDEy
OWRjMzdhMGE0ZWE0ZDMzMDc4Zjg1ZmViNzJkNzJhMTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjYwOCwxNyArMjYw
OCwxOCBAQCBzdGF0aWMgdm9pZCBwYWludFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdAogICAgIGNvbnRleHQucmVzdG9yZSgpOwog
fQogCi12b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFw
aGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwKQordm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwKQogeworICAgIEludFJlY3QgcGl4ZWxTbmFwcGVk
UmVjdEZvckludGVncmFsUG9zaXRpb25lZEl0ZW1zID0gcGl4ZWxTbmFwcGVkSW50UmVjdChMYXlv
dXRSZWN0KGNsaXApKTsKICAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvckhvcml6b250
YWxTY3JvbGxiYXIoKSkKLSAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9yZW5kZXJWaWV3LmZyYW1l
VmlldygpLmhvcml6b250YWxTY3JvbGxiYXIoKSwgY29udGV4dCwgY2xpcCk7CisgICAgICAgIHBh
aW50U2Nyb2xsYmFyKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5ob3Jpem9udGFsU2Nyb2xsYmFy
KCksIGNvbnRleHQsIHBpeGVsU25hcHBlZFJlY3RGb3JJbnRlZ3JhbFBvc2l0aW9uZWRJdGVtcyk7
CiAgICAgZWxzZSBpZiAoZ3JhcGhpY3NMYXllciA9PSBsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFy
KCkpCi0gICAgICAgIHBhaW50U2Nyb2xsYmFyKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS52ZXJ0
aWNhbFNjcm9sbGJhcigpLCBjb250ZXh0LCBjbGlwKTsKKyAgICAgICAgcGFpbnRTY3JvbGxiYXIo
bV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnZlcnRpY2FsU2Nyb2xsYmFyKCksIGNvbnRleHQsIHBp
eGVsU25hcHBlZFJlY3RGb3JJbnRlZ3JhbFBvc2l0aW9uZWRJdGVtcyk7CiAgICAgZWxzZSBpZiAo
Z3JhcGhpY3NMYXllciA9PSBsYXllckZvclNjcm9sbENvcm5lcigpKSB7CiAgICAgICAgIGNvbnN0
IEludFJlY3QmIHNjcm9sbENvcm5lciA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zY3JvbGxD
b3JuZXJSZWN0KCk7CiAgICAgICAgIGNvbnRleHQuc2F2ZSgpOwogICAgICAgICBjb250ZXh0LnRy
YW5zbGF0ZSgtc2Nyb2xsQ29ybmVyLngoKSwgLXNjcm9sbENvcm5lci55KCkpOwotICAgICAgICBJ
bnRSZWN0IHRyYW5zZm9ybWVkQ2xpcCA9IGNsaXA7CisgICAgICAgIEludFJlY3QgdHJhbnNmb3Jt
ZWRDbGlwID0gcGl4ZWxTbmFwcGVkUmVjdEZvckludGVncmFsUG9zaXRpb25lZEl0ZW1zOwogICAg
ICAgICB0cmFuc2Zvcm1lZENsaXAubW92ZUJ5KHNjcm9sbENvcm5lci5sb2NhdGlvbigpKTsKICAg
ICAgICAgbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnBhaW50U2Nyb2xsQ29ybmVyKCZjb250ZXh0
LCB0cmFuc2Zvcm1lZENsaXApOwogICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA2YjA0
M2Y4OGQ0MDUxZDgzMjJhZmM5M2VhN2U1ODQ5YWZjNmU2MmFmLi5kNzhiZTBmMWM5Yzc1YzRmNDFl
NDU1YzUwMjRjZWFhNjk2NmNkMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0zMDcsNyArMzA3LDcgQEAgcHJpdmF0ZToKICAg
ICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZSkgb3Zl
cnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaAppbmRleCA1ZDRlODQ4MmRhMGE3YzYwZmE2ZTY1
ZjYzNWVlOTczMDc4NjVmYzk0Li5mODUyMTUxMDFjMzFjYmZlNWM3MjMzOGI3YWRmYzU5OTI5MWE5
YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmgKQEAgLTE5LDYgKzE5LDcgQEAK
ICNpZm5kZWYgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRfaAogI2RlZmluZSBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dF9oCiAKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNs
dWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNsaWVudC5oIgog
I2luY2x1ZGUgIkludFJlY3QuaCIKQEAgLTU4LDcgKzU5LDcgQEAgcHVibGljOgogICAgIC8vIEdy
YXBoaWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpOwogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1BhaW50KTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdFRvUGFpbnQpOwogCiAgICAg
dm9pZCBpbml0aWFsaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5j
cHAKaW5kZXggNDUzNTY4NmYyMGRiNTJiOWEwMmJhODk2NzA3N2JiZDE2YzZmMWZjNS4uOGU0ZjAz
MjQ3YzFkMTZhNWYzNGI4NDUxODI1MjQyOGY2YjUwYjhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHRHTC5jcHAKQEAgLTM5NiwxMSArMzk2LDExIEBAIHZvaWQgQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQ6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NM
YXllciopCiAKIH0KIAotdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cGFpbnRD
b250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgcmVjdFRvUGFpbnQpCit2
b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmIHJlY3RUb1BhaW50KQogewogICAgIGNvbnRleHQu
c2F2ZSgpOwogICAgIGNvbnRleHQuY2xpcChyZWN0VG9QYWludCk7Ci0gICAgY29yZShtX3dlYlZp
ZXcpLT5tYWluRnJhbWUoKS52aWV3KCktPnBhaW50KCZjb250ZXh0LCByZWN0VG9QYWludCk7Cisg
ICAgY29yZShtX3dlYlZpZXcpLT5tYWluRnJhbWUoKS52aWV3KCktPnBhaW50KCZjb250ZXh0LCBl
bmNsb3NpbmdJbnRSZWN0KHJlY3RUb1BhaW50KSk7CiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNWJlOTUwMmViYTM3MmNlMDJjZjg0MjcyNmI5NWUz
NWM5N2QwMDI0MC4uMWMzOWYzNDA2YjYxY2YwNTM2ZTJjOTJjNWMzZDAxNTc2MGVkMzZhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5jcHAKQEAgLTY3MjUsNyArNjcyNSw3IEBAIHZvaWQgV2ViVmlldzo6bm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKICAgICBmbHVzaFBlbmRpbmdH
cmFwaGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKIH0KIAotdm9pZCBXZWJWaWV3OjpwYWludENvbnRl
bnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEdyYXBo
aWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApCit2b2lkIFdlYlZp
ZXc6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgaW5D
bGlwKQogewogICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUobV9tYWluRnJhbWUpOwogICAgIGlmICgh
ZnJhbWUpCkBAIC02NzMzLDcgKzY3MzMsNyBAQCB2b2lkIFdlYlZpZXc6OnBhaW50Q29udGVudHMo
Y29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcAogCiAg
ICAgY29udGV4dC5zYXZlKCk7CiAgICAgY29udGV4dC5jbGlwKGluQ2xpcCk7Ci0gICAgZnJhbWUt
PnZpZXcoKS0+cGFpbnQoJmNvbnRleHQsIGluQ2xpcCk7CisgICAgZnJhbWUtPnZpZXcoKS0+cGFp
bnQoJmNvbnRleHQsIGVuY2xvc2luZ0ludFJlY3QoaW5DbGlwKSk7CiAgICAgY29udGV4dC5yZXN0
b3JlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAppbmRleCBiZGViMWQwM2VjNjZkYTdhZmQ5MDM4NzY4
NzA2OWQ3YjRmNWY1ZTYwLi4yZWU5MWFjOGRiNmRkYzI3NzY2NTA4ZjI2YjkxNTczMWFjMWQwODlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5oCkBAIC0xMDE5LDcgKzEwMTksNyBAQCBwcml2YXRlOgogICAgIC8v
IEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3Rh
cnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpOwogICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CisgICAg
dmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcios
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGluQ2xpcCk7CiAKICAgICAvLyBDQUNG
TGF5ZXJUcmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwgdm9pZCBmbHVzaFBlbmRpbmdHcmFwaGlj
c0xheWVyQ2hhbmdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAKaW5kZXggNzBmNmM4MzY1MTM5ZGM1
MzcyZjhmNWYwMTVkMjVhMWZiZjllNDZhMy4uMGQ5MzBmZTQxZmQxZDBiNmJjMDU0NDIzNmM2ZmU0
ZGJkOWVmMGRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2d0ay9MYXllclRyZWVIb3N0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuY3BwCkBAIC0yNzIsMTYgKzI3MiwxNiBAQCB2
b2lkIExheWVyVHJlZUhvc3RHdGs6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopCiB7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6cGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQm
IGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJl
Y3QmIGNsaXBSZWN0KQordm9pZCBMYXllclRyZWVIb3N0R3RrOjpwYWludENvbnRlbnRzKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3ND
b250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlw
UmVjdCkKIHsKICAgICBpZiAoZ3JhcGhpY3NMYXllciA9PSBtX25vbkNvbXBvc2l0ZWRDb250ZW50
TGF5ZXIuZ2V0KCkpIHsKLSAgICAgICAgbV93ZWJQYWdlLT5kcmF3UmVjdChncmFwaGljc0NvbnRl
eHQsIGNsaXBSZWN0KTsKKyAgICAgICAgbV93ZWJQYWdlLT5kcmF3UmVjdChncmFwaGljc0NvbnRl
eHQsIGVuY2xvc2luZ0ludFJlY3QoY2xpcFJlY3QpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGZvciAoYXV0byYgcGFnZU92ZXJsYXlMYXllciA6IG1fcGFnZU92ZXJsYXlMYXllcnMp
IHsKICAgICAgICAgaWYgKHBhZ2VPdmVybGF5TGF5ZXIudmFsdWUuZ2V0KCkgPT0gZ3JhcGhpY3NM
YXllcikgewotICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkocGFnZU92ZXJs
YXlMYXllci5rZXksIGdyYXBoaWNzQ29udGV4dCwgY2xpcFJlY3QpOworICAgICAgICAgICAgbV93
ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkocGFnZU92ZXJsYXlMYXllci5rZXksIGdyYXBoaWNzQ29u
dGV4dCwgZW5jbG9zaW5nSW50UmVjdChjbGlwUmVjdCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCmluZGV4IGJiMzBiMDk5MDUzZjI0YTUxY2U1
NmQ2ZDU4NGZhYzcwNWIwYjliMjUuLjFjYmNmM2U1NzRmOWVkY2VmYzFiN2I5MTRhZTAxNjI3ODdl
YTY4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsv
TGF5ZXJUcmVlSG9zdEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCkBAIC03OSw3ICs3OSw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25T
dGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSk7CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopOwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwor
ICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFp
bnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgY29uc3QgeyB9CiAKICAgICB2b2lkIGNyZWF0ZVBhZ2VPdmVybGF5TGF5ZXIoUGFn
ZU92ZXJsYXkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCBiOTcx
MjU3ZWQ3NmZhOWU0OTIwMGNmNzA1ZjExMWZhNWQ0MjU1OTFiLi43NTlmYTE5MzRkNGYxNTdlNTcz
YThkOTBhNWY2ZDQxYjFjMDUxZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5oCkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgb3ZlcnJpZGUgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y2xpcFJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9y
TGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0IG92ZXJyaWRlIHsgfQog
I2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmlu
ZGV4IDMyMGE0OGFkM2IxOTA2YWJiYmU1YjRmOTUzNDNlY2QyZTIzNjQ1ZDQuLjI2MWJiZmJkZDIz
ZDMxMTk2ZDI4OWZkZDhkMDcwZWQ4YmYwYWIyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbQpAQCAtMTg5LDExICsxODksMTEgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6Y2xlYXJQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogcGFnZU92ZXJsYXkpCiAg
ICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKIH0KIAotdm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQordm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgZm9yIChj
b25zdCBhdXRvJiBvdmVybGF5QW5kTGF5ZXIgOiBtX3BhZ2VPdmVybGF5TGF5ZXJzKSB7CiAgICAg
ICAgIGlmIChvdmVybGF5QW5kTGF5ZXIudmFsdWUuZ2V0KCkgPT0gZ3JhcGhpY3NMYXllcikgewot
ICAgICAgICAgICAgbV93ZWJQYWdlLT5kcmF3UGFnZU92ZXJsYXkob3ZlcmxheUFuZExheWVyLmtl
eSwgZ3JhcGhpY3NDb250ZXh0LCBjbGlwUmVjdCk7CisgICAgICAgICAgICBtX3dlYlBhZ2UtPmRy
YXdQYWdlT3ZlcmxheShvdmVybGF5QW5kTGF5ZXIua2V5LCBncmFwaGljc0NvbnRleHQsIGVuY2xv
c2luZ0ludFJlY3QoY2xpcFJlY3QpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IDFlZTJh
MDUwYjg2MWU3NjgxNmI1MWFiZjcwZDdlY2E2OWM3ZjkzYjIuLmU1MGViNzY2ODUwYWJiMWJjNDUy
NjNmMzRjZjM1MjYxZjc3ZTgzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLmgKQEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBj
bGlwUmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGNsaXBSZWN0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNGb3JM
YXllcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Qgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IDkwOTE2NWRkM2Mx
Njk5MmFmZGU1YjAyNzc1M2NiYWE2NWJkN2E0MGQuLmIzMWRmYzBhMTcyZGQyZjZiZjI2ZjEyMTIx
NjNkMjhiZGVhZDFhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5tbQpAQCAtMzU2LDExICszNTYsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikKIHsKIH0KIAot
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyhjb25zdCBH
cmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29u
dGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0
KQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyhjb25z
dCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNz
Q29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xp
cFJlY3QpCiB7CiAgICAgZm9yIChhdXRvIGl0ID0gbV9wYWdlT3ZlcmxheUxheWVycy5iZWdpbigp
LCBlbmQgPSBtX3BhZ2VPdmVybGF5TGF5ZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAg
ICAgICAgaWYgKGl0LT52YWx1ZS5nZXQoKSA9PSBncmFwaGljc0xheWVyKSB7Ci0gICAgICAgICAg
ICBtX3dlYlBhZ2UtPmRyYXdQYWdlT3ZlcmxheShpdC0+a2V5LCBncmFwaGljc0NvbnRleHQsIGNs
aXBSZWN0KTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+ZHJhd1BhZ2VPdmVybGF5KGl0LT5rZXks
IGdyYXBoaWNzQ29udGV4dCwgZW5jbG9zaW5nSW50UmVjdChjbGlwUmVjdCkpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>