<?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>193408</bug_id>
          
          <creation_ts>2019-01-14 14:20:47 -0800</creation_ts>
          <short_desc>Add Reveal support in iOSMac</short_desc>
          <delta_ts>2019-01-15 19:02:31 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=193480</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1494309</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-14 14:20:47 -0800</bug_when>
    <thetext>Add Reveal support in iOSMac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494315</commentid>
    <comment_count>1</comment_count>
      <attachid>359079</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-14 14:29:30 -0800</bug_when>
    <thetext>Created attachment 359079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494320</commentid>
    <comment_count>2</comment_count>
      <attachid>359079</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-14 14:33:31 -0800</bug_when>
    <thetext>Comment on attachment 359079
Patch

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

&gt; Source/WebCore/Configurations/WebCore.xcconfig:132
&gt; +OTHER_LDFLAGS = $(inherited) $(WK_RELOCATABLE_FRAMEWORK_LDFLAGS) $(WK_UNDEFINED_SYMBOLS_LDFLAGS) -lsqlite3 -lobjc -lANGLE -allowable_client WebCoreTestSupport -allowable_client WebKitLegacy -force_load $(BUILT_PRODUCTS_DIR)/libPAL.a -framework CFNetwork -framework CoreAudio -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework Metal $(OTHER_LDFLAGS_PLATFORM_$(WK_COCOA_TOUCH)) $(OTHER_LDFLAGS_PLATFORM_$(WK_PLATFORM_NAME)) $(WK_APPKIT_LDFLAGS) $(WK_APPSUPPORT_LDFLAGS) $(WK_AUDIO_UNIT_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_CORE_UI_LDFLAGS) $(WK_DATA_DETECTORS_CORE_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_IOSURFACE_LDFLAGS) $(WK_LIBWEBRTC_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_OPENGL_LDFLAGS) $(WK_SYSTEM_CONFIGURATION_LDFLAGS) $(WK_SYSTEM_PREVIEW_LDFLAGS) $(WK_URL_FORMATTING_LDFLAGS) $(WK_UIKITMAC_LDFLAGS);

Sort

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:194
&gt; +- (void)startHighlightingItem:(RVItem *)item

missing newlines between all of these. Also, are they optional? Maybe we don&apos;t have to implement the ones that don&apos;t do anything?

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:223
&gt; +- (void)drawHighlightContentForItem:(RVItem *)item context:(CGContextRef)context

This needs a lot of style cleanup. Also don&apos;t hardcode the .77

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:505
&gt; +    UNUSED_PARAM(createAnimationController); // remove once we create this correctly

No need for the comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494338</commentid>
    <comment_count>3</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-14 15:17:33 -0800</bug_when>
    <thetext>Can you clarify what of the style is not up to par? It passes the webkit style bot.

All of those selectors are required. They might be optional in the future, but today, they are required.

Do we have somewhere that 0.77 is defined, and if not, is defining it at the top of the file enough, or do we need it somewhere else that&apos;s more universal, and if so, where is that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494346</commentid>
    <comment_count>4</comment_count>
      <attachid>359079</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-14 15:31:21 -0800</bug_when>
    <thetext>Comment on attachment 359079
Patch

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

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:160
&gt; +@property (nonatomic, readonly) UIView* view;

Nit - UIView *

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:162
&gt; +- (instancetype)initWithHighlightRect:(NSRect)highlightRect view:(UIView*)view;

Nit - UIView *

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:172
&gt; +- (instancetype)initWithHighlightRect:(NSRect)highlightRect view:(UIView*)view

Nit - UIView*

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:226
&gt; +    UNUSED_PARAM(item);
&gt; +    UNUSED_PARAM(context);

Nit - these look quite used!

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:228
&gt; +    NSArray &lt;NSValue *&gt; * rects = [self highlightRectsForItem:item];

Nit - no space between * and rects.

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:232
&gt; +    UIView * textContentView = self.view;

Nit - no space after the *

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:240
&gt; +    CGAffineTransform ct = CGContextGetCTM(context);

Nit - WebKit style prefers full words over single letters/abbreviations in variable names.

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:241
&gt; +    CGAffineTransform t = CGAffineTransformIdentity;

(Here too)

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:247
&gt; +    for (NSValue * v in rects) {

Nit - No space between * and v

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:249
&gt; +        RetainPtr&lt;CGImageRef&gt; imgRef = _image-&gt;nativeImage();

Nit - imageRef (or just nativeImage) instead of imgRef

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:250
&gt; +        CGRect origin = CGRectMake(backingScale*(imgSrcRect.origin.x - highlightRect.origin.x), backingScale*(imgSrcRect.origin.y - highlightRect.origin.y),  backingScale*(highlightRect.size.width), backingScale*(highlightRect.size.height));

Nit - spaces around the infix operators!

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:503
&gt; +    UNUSED_PARAM(view);
&gt; +    UNUSED_PARAM(textIndicatorInstallationCallback);
&gt; +    UNUSED_PARAM(rootViewToViewConversionCallback);
&gt; +    UNUSED_PARAM(clearTextIndicator);

Nit - at least the view looks used.

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:509
&gt; +    RetainPtr&lt;WebRevealHighlight&gt; webHighlight =  adoptNS([[WebRevealHighlight alloc] initWithHighlightRect:[view convertRect:textIndicator-&gt;selectionRectInRootViewCoordinates() toView:nil] view:view]);

Nit - double space after =

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:514
&gt; +    [UINSSharedRevealController() revealItem:item.get() locationInWindow:dictionaryPopupInfo.origin window:view.window highlighter: (id&lt;UIRVPresenterHighlightDelegate&gt;) webHighlight.get()];

Nit - extra space before (id&lt;

&gt; Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:140
&gt; +    

Nit - stray whitespace change?

&gt; Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:179
&gt; +    dictionaryPopupInfo.attributedString = [[NSMutableAttributedString alloc] initWithString:range.text()];

Does this leak? It&apos;s not clear to me when this is released (aside from RetainPtr).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494348</commentid>
    <comment_count>5</comment_count>
      <attachid>359079</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-14 15:32:16 -0800</bug_when>
    <thetext>Comment on attachment 359079
Patch

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

&gt;&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:172
&gt;&gt; +- (instancetype)initWithHighlightRect:(NSRect)highlightRect view:(UIView*)view
&gt; 
&gt; Nit - UIView*

Rather, UIView *</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494370</commentid>
    <comment_count>6</comment_count>
      <attachid>359093</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-14 16:06:53 -0800</bug_when>
    <thetext>Created attachment 359093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494415</commentid>
    <comment_count>7</comment_count>
      <attachid>359102</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-14 17:15:58 -0800</bug_when>
    <thetext>Created attachment 359102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494419</commentid>
    <comment_count>8</comment_count>
      <attachid>359103</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-14 17:27:38 -0800</bug_when>
    <thetext>Created attachment 359103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494427</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-14 17:36:04 -0800</bug_when>
    <thetext>(In reply to Megan Gardner from comment #3)
&gt; Can you clarify what of the style is not up to par? It passes the webkit
&gt; style bot.

I think Wenson did this for me :) The stylebot covers a tiny minority of style rules. https://webkit.org/code-style-guidelines/ is a good start for others, and for more you probably just want to take an average file and follow that.

&gt; All of those selectors are required. They might be optional in the future,
&gt; but today, they are required.

OK!

&gt; Do we have somewhere that 0.77 is defined, and if not, is defining it at the
&gt; top of the file enough, or do we need it somewhere else that&apos;s more
&gt; universal, and if so, where is that?

We do, see the code that you borrowed...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494684</commentid>
    <comment_count>10</comment_count>
      <attachid>359103</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-01-15 10:12:59 -0800</bug_when>
    <thetext>Comment on attachment 359103
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:179
&gt; +    dictionaryPopupInfo.attributedString = adoptNS([[NSMutableAttributedString alloc] initWithString:range.text()]);

Why is this dictionaryPopupInfo.attributedString so different that the one used on Mac?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494710</commentid>
    <comment_count>11</comment_count>
      <attachid>359103</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-15 10:46:07 -0800</bug_when>
    <thetext>Comment on attachment 359103
Patch

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

&gt;&gt; Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:179
&gt;&gt; +    dictionaryPopupInfo.attributedString = adoptNS([[NSMutableAttributedString alloc] initWithString:range.text()]);
&gt; 
&gt; Why is this dictionaryPopupInfo.attributedString so different that the one used on Mac?

We don&apos;t need the attributes because we&apos;ll never paint it (we in odd cases actually paint the attributed string on macOS). That said, we might want to generate with one with editingAttributedStringFromRange() and then just not apply the attributes instead of taking a totally different path to creating it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494716</commentid>
    <comment_count>12</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-15 10:52:53 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #11)
&gt; Comment on attachment 359103 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=359103&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:179
&gt; &gt;&gt; +    dictionaryPopupInfo.attributedString = adoptNS([[NSMutableAttributedString alloc] initWithString:range.text()]);
&gt; &gt; 
&gt; &gt; Why is this dictionaryPopupInfo.attributedString so different that the one used on Mac?
&gt; 
&gt; We don&apos;t need the attributes because we&apos;ll never paint it (we in odd cases
&gt; actually paint the attributed string on macOS). That said, we might want to
&gt; generate with one with editingAttributedStringFromRange() and then just not
&gt; apply the attributes instead of taking a totally different path to creating
&gt; it.

Unfortunately, editingAttributedStringFromRange() appears to be guarded by !IOS_FAMILY :(

This may just be because it uses NSFontManager. One avenue might be to define out the only part that uses the fontManager in that function (it appears to be used as a fallback when the font cascade&apos;s font is missing, and we try to grab a default font of the same size).

I think we could do all this in a followup though...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494739</commentid>
    <comment_count>13</comment_count>
      <attachid>359184</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-15 11:39:13 -0800</bug_when>
    <thetext>Created attachment 359184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494781</commentid>
    <comment_count>14</comment_count>
      <attachid>359184</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-15 13:17:22 -0800</bug_when>
    <thetext>Comment on attachment 359184
Patch

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

&gt; Source/WebCore/Configurations/WebCore.xcconfig:119
&gt; +WK_UIKITMAC_LDFLAGS = $(WK_UIKITMAC_LDFLAGS_$(WK_PLATFORM_NAME));
&gt; +WK_UIKITMAC_LDFLAGS_iosmac = -framework UIKitMacHelper;

I think this is going to introduce a build dependency cycle, you&apos;ll need to softlink this framework as well.

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:65
&gt; +#include &lt;pal/spi/ios/UIKitSPI.h&gt;

This is oddly placed, you can put it up with the other headers.

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:230
&gt; +    return _highlighting;

Is this a part of the protocol? Or why do we have this?

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:511
&gt; +    UNUSED_PARAM(createAnimationController);

Probably should ASSERT_UNUSED(!createAnimationController, createAnimationController); (or however that macro works, I never get it right). We never want to get here with createAnimationController set (at the moment).

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:519
&gt; +    RetainPtr&lt;RVItem&gt; item = adoptNS([allocRVItemInstance() initWithText:dictionaryPopupInfo.attributedString.get().string selectedRange:NSMakeRange(0, 0)]);
&gt; +    
&gt; +    [webHighlight setImage:textIndicator-&gt;contentImage()];

Why is image not just another parameter to the initializer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494789</commentid>
    <comment_count>15</comment_count>
      <attachid>359184</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-15 13:26:44 -0800</bug_when>
    <thetext>Comment on attachment 359184
Patch

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

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:246
&gt; +    CGContextSaveGState(context);

CGContextStateSaver!

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:251
&gt; +    transform = CGAffineTransformScale(transform, iOSMacScaleFactor, iOSMacScaleFactor);

Why not CGAffineTransform transform = CGAffineTransformMakeScale()

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:257
&gt; +        CGRect origin = CGRectMake(backingScale * (imgSrcRect.origin.x - highlightRect.origin.x), backingScale * (imgSrcRect.origin.y - highlightRect.origin.y),  backingScale * (highlightRect.size.width), backingScale*(highlightRect.size.height));

Why do this backingScale math here, rather than putting it into the context scale?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494821</commentid>
    <comment_count>16</comment_count>
      <attachid>359184</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-15 14:36:07 -0800</bug_when>
    <thetext>Comment on attachment 359184
Patch

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

&gt;&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:230
&gt;&gt; +    return _highlighting;
&gt; 
&gt; Is this a part of the protocol? Or why do we have this?

Yes, it is part of the protocol

&gt;&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:257
&gt;&gt; +        CGRect origin = CGRectMake(backingScale * (imgSrcRect.origin.x - highlightRect.origin.x), backingScale * (imgSrcRect.origin.y - highlightRect.origin.y),  backingScale * (highlightRect.size.width), backingScale*(highlightRect.size.height));
&gt; 
&gt; Why do this backingScale math here, rather than putting it into the context scale?

I copied this wholesale from the UIKit implementation, per Guillaume&apos;s suggestion. I changed as little as possible to get it working.

&gt;&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:519
&gt;&gt; +    [webHighlight setImage:textIndicator-&gt;contentImage()];
&gt; 
&gt; Why is image not just another parameter to the initializer?

Because I didn&apos;t think we could have a @property Image</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494825</commentid>
    <comment_count>17</comment_count>
      <attachid>359184</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-15 14:41:35 -0800</bug_when>
    <thetext>Comment on attachment 359184
Patch

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

&gt;&gt;&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:230
&gt;&gt;&gt; +    return _highlighting;
&gt;&gt; 
&gt;&gt; Is this a part of the protocol? Or why do we have this?
&gt; 
&gt; Yes, it is part of the protocol

OK.

&gt;&gt;&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:257
&gt;&gt;&gt; +        CGRect origin = CGRectMake(backingScale * (imgSrcRect.origin.x - highlightRect.origin.x), backingScale * (imgSrcRect.origin.y - highlightRect.origin.y),  backingScale * (highlightRect.size.width), backingScale*(highlightRect.size.height));
&gt;&gt; 
&gt;&gt; Why do this backingScale math here, rather than putting it into the context scale?
&gt; 
&gt; I copied this wholesale from the UIKit implementation, per Guillaume&apos;s suggestion. I changed as little as possible to get it working.

This is one piece of cleanup you can likely safely do.

&gt;&gt;&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:519
&gt;&gt;&gt; +    [webHighlight setImage:textIndicator-&gt;contentImage()];
&gt;&gt; 
&gt;&gt; Why is image not just another parameter to the initializer?
&gt; 
&gt; Because I didn&apos;t think we could have a @property Image

1) you can definitely have C++ types in properties
2) why do you need a property? Can&apos;t they just be ivars?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494850</commentid>
    <comment_count>18</comment_count>
      <attachid>359212</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-15 15:15:36 -0800</bug_when>
    <thetext>Created attachment 359212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494877</commentid>
    <comment_count>19</comment_count>
      <attachid>359212</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-01-15 16:07:15 -0800</bug_when>
    <thetext>Comment on attachment 359212
Patch

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=193408

Where&apos;s the radar

&gt; Source/WebCore/Configurations/WebCore.xcconfig:120
&gt; +WK_UIKITMAC_LDFLAGS = $(WK_UIKITMAC_LDFLAGS_$(WK_PLATFORM_NAME));
&gt; +WK_UIKITMAC_LDFLAGS_iosmac = -framework UIKitMacHelper;
&gt; +

Remove this.

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:68
&gt; +#include &lt;pal/spi/ios/UIKitSPI.h&gt;

I said something about this before.

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:180
&gt; +    _highlighting = NO;

Technically not needed; ObjC zero fills objects.

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:232
&gt; +    NSArray &lt;NSValue *&gt; *rects = [self highlightRectsForItem:item];

NSArray&lt;

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:236
&gt; +    UIView *textContentView = _view;

Maybe just use _view elsewhere instead of this local that is *more*  typing?

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:239
&gt; +    for (NSUInteger i = 1; i &lt; rects.count; i++)

This could use fast iteration! (for (NSValue *rect in rects)...)

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:256
&gt; +    

No newline :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494883</commentid>
    <comment_count>20</comment_count>
      <attachid>359219</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-15 16:19:08 -0800</bug_when>
    <thetext>Created attachment 359219
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494896</commentid>
    <comment_count>21</comment_count>
      <attachid>359219</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-15 16:35:47 -0800</bug_when>
    <thetext>Comment on attachment 359219
Patch for landing

Rejecting attachment 359219 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 359219, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=359219&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=193408&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 359219 from bug 193408.
Fetching: https://bugs.webkit.org/attachment.cgi?id=359219
Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	Source/WebCore/ChangeLog
	M	Source/WebCore/PAL/ChangeLog
	M	Source/WebCore/PAL/pal/spi/cocoa/RevealSPI.h
	M	Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h
	M	Source/WebCore/editing/cocoa/DictionaryLookup.mm
	M	Source/WebCore/editing/mac/DictionaryLookup.h
	M	Source/WebKit/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/Source/WebKit/ChangeLog&apos; is out of date
W: 8b6fb47134c77a4ef657c35a4147c6d273583138 and refs/remotes/origin/master differ, using rebase:
:040000 040000 8efbe8fa869a5c8c32565e31ec4ae494f4b65cc7 0577f0ce766d9cc7c9796288d1735dd8ef4ea8dd M	Source
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	Source/WebCore/ChangeLog
	M	Source/WebCore/PAL/ChangeLog
	M	Source/WebCore/PAL/pal/spi/cocoa/RevealSPI.h
	M	Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h
	M	Source/WebCore/editing/cocoa/DictionaryLookup.mm
	M	Source/WebCore/editing/mac/DictionaryLookup.h
	M	Source/WebKit/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/Source/WebKit/ChangeLog&apos; is out of date
W: 8b6fb47134c77a4ef657c35a4147c6d273583138 and refs/remotes/origin/master differ, using rebase:
:040000 040000 8efbe8fa869a5c8c32565e31ec4ae494f4b65cc7 0577f0ce766d9cc7c9796288d1735dd8ef4ea8dd M	Source
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
From https://git.webkit.org/git/WebKit
   a364fa76fb3..758647a3573  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 240017 = a364fa76fb35b7cc445c092b976a5d2e121a43d0
r240018 = 758647a35739e72e66b5fef7d286095cecc36e23
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: https://webkit-queues.webkit.org/results/10765244</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494900</commentid>
    <comment_count>22</comment_count>
      <attachid>359223</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-01-15 16:41:45 -0800</bug_when>
    <thetext>Created attachment 359223
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494927</commentid>
    <comment_count>23</comment_count>
      <attachid>359223</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-15 17:19:26 -0800</bug_when>
    <thetext>Comment on attachment 359223
Patch for landing

Clearing flags on attachment: 359223

Committed r240021: &lt;https://trac.webkit.org/changeset/240021&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494928</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-15 17:19:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494931</commentid>
    <comment_count>25</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-15 17:21:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/47303063&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359079</attachid>
            <date>2019-01-14 14:29:30 -0800</date>
            <delta_ts>2019-01-14 16:06:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193408-20190114142929.patch</filename>
            <type>text/plain</type>
            <size>21595</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMzMxMzFjMTdmZjNk
MjFjYjk1MDUxMzgxYzAwZDU4YTYwNTg4OC4uNjY3NmZkYTA3NTMzN2QwNzk2ZGQyYTI3ZjNmZDgz
NzllNzZmMjg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAxLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVh
bCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaU9TTWFjIGFuZCBSZXZlYWwgYXJlIGN1cnJlbnRseSBub3QgdGVzdGFibGUu
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSByZXZlYWwgU1BJIHNwZWNpZmljYWxseSBm
b3IgaU9TTWFjLgorICAgICAgICBTaG93IHRoZSBjb250cm9sbGVyIHdoZW4gY2FsbGVkLCBhbmQg
aW1wbGVtZW50IHRoZSBkZWxlZ2F0ZSB0byAKKyAgICAgICAgY29ycmVjdGx5IHJlLXBhaW50IHRo
ZSBjb250ZW50IHdpdGggdGhlIGF1dG8tZ2VuZXJhdGVkIGhpZ2hsaWdodCBmcm9tCisgICAgICAg
IHRoZSByZXZlYWwgZnJhbWV3b3JrLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW06
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6dmll
dzpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHNldEltYWdlOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0UmVjdHNGb3JJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgc3RhcnRIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0SXRlbTp3aXRoUHJvZ3Jlc3M6XSk6Cisg
ICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBjb21wbGV0ZUhpZ2hsaWdodGluZ0l0ZW06XSk6
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBzdG9wSGlnaGxpZ2h0aW5nSXRlbTpdKToK
KyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhpZ2hsaWdodFJhbmdlQ2hhbmdlZEZvckl0
ZW06XSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBoaWdobGlnaHRpbmddKToKKyAg
ICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGRyYXdIaWdobGlnaHRDb250ZW50Rm9ySXRlbTpj
b250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1
cCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oOgorCiAyMDE5LTAx
LTExICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
R2FyYmxlZCByZW5kZXJpbmcgb24gWW91dHViZSB3aGlsZSBzY3JvbGxpbmcgdW5kZXIgWDExLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggNWExMGQ3NDkxNTk5MDY2MTI5NGU5MjBkODdlYWI4MTAwMmIy
N2VmYi4uYjQyNjE1YWVlNTA0Njg1ZGE2ODkwMDk3ZDg1ZmMyYTc4YjJhNDA3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMTQgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUmV2ZWFsIHN1cHBvcnQgaW4g
aU9TTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTM0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYWRkaXRpb25hbCBuZWVkZWQgU1BJLgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9SZXZl
YWxTUEkuaDoKKwogMjAxOS0wMS0xMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBPdmVycmlkZSB0aGUgc2Vzc2lvbiBjb25maWd1cmF0aW9uIGZvciBjb29r
aWVBY2NlcHRQb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDUzY2MzM2M2OTI3ZTYxYWE0ZTY5ZGFlOTBkYTgw
NTEyNTdkZTkyNS4uZmMxNTUyNGNkOWFkMTlmOTg3ZDA4NDQ2MjA5OTc1N2I2ZTJjODAwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0wMS0xNCAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBSZXZlYWwgc3VwcG9ydCBpbiBpT1NN
YWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBj
YWxscyB0byBEaWN0aW9uYXJ5TG9va3VwIGZyb20gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25h
cnlMb29rdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JS
YW5nZSk6CisKIDIwMTktMDEtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW50cm9kdWNlIElETCBmaWxlcyBmb3IgcnVudGltZS1lbmFibGVkIFVu
ZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbSBKYXZhU2NyaXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWI4NGU4OTBkZTIwYjJlYmNj
NmE4MjNkYzZkZTVlMzdlZDEyNjc2NC4uMWFmMDlmNWRmZmZmNTQwZjlkYzAxZGI2YTM3ZDExZTM3
MTZiY2IxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMTUsNiArMTE1LDkgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0dm9zID0g
JChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2
c2ltdWxhdG9yID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpOwogV0tfT1BF
TkdMX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKK1dLX1VJS0lUTUFDX0xE
RkxBR1MgPSAkKFdLX1VJS0lUTUFDX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19V
SUtJVE1BQ19MREZMQUdTX2lvc21hYyA9IC1mcmFtZXdvcmsgVUlLaXRNYWNIZWxwZXI7CisKIFdL
X1NZU1RFTV9DT05GSUdVUkFUSU9OX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9DT05GSUdVUkFUSU9O
X0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19TWVNURU1fQ09ORklHVVJBVElPTl9M
REZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgU3lzdGVtQ29uZmlndXJhdGlvbjsKIApAQCAtMTI2
LDcgKzEyOSw3IEBAIFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRU
SU5HX0xERkxBR1NfJChXS19IQVZFX1VSTF9GT1JNQVRUSU5HCiBXS19VUkxfRk9STUFUVElOR19M
REZMQUdTX1lFUyA9IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKIAogLy8gRklYTUU6IFJlZHVj
ZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnRzIDxyZGFyOi8vcHJvYmxlbS8zMTgyMzk2
OT4KLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdP
UktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZMQUdTKSAtbHNxbGl0ZTMgLWxv
YmpjIC1sQU5HTEUgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2Fi
bGVfY2xpZW50IFdlYktpdExlZ2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
bGliUEFMLmEgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1l
d29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRp
b24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgTWV0YWwgJChPVEhFUl9MREZMQUdTX1BM
QVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19Q
TEFURk9STV9OQU1FKSkgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BUFBTVVBQT1JUX0xERkxB
R1MpICQoV0tfQVVESU9fVU5JVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NP
UkVfVUlfTERGTEFHUykgJChXS19EQVRBX0RFVEVDVE9SU19DT1JFX0xERkxBR1MpICQoV0tfR1JB
UEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19JT1NVUkZBQ0VfTERGTEFHUykgJChXS19MSUJX
RUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01P
QklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoV0tfU1lTVEVNX0NP
TkZJR1VSQVRJT05fTERGTEFHUykgJChXS19TWVNURU1fUFJFVklFV19MREZMQUdTKSAkKFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1MpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdL
X1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAkKFdLX1VOREVGSU5FRF9TWU1CT0xTX0xE
RkxBR1MpIC1sc3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3Jl
VGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9saWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3
b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0
IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNZXRh
bCAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERG
TEFHU19QTEFURk9STV8kKFdLX1BMQVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAk
KFdLX0FQUFNVUFBPUlRfTERGTEFHUykgJChXS19BVURJT19VTklUX0xERkxBR1MpICQoV0tfQ0FS
Qk9OX0xERkxBR1MpICQoV0tfQ09SRV9VSV9MREZMQUdTKSAkKFdLX0RBVEFfREVURUNUT1JTX0NP
UkVfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFD
RV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19PUEVOR0xfTERG
TEFHUykgJChXS19TWVNURU1fQ09ORklHVVJBVElPTl9MREZMQUdTKSAkKFdLX1NZU1RFTV9QUkVW
SUVXX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19VSUtJVE1BQ19M
REZMQUdTKTsKIAogT1RIRVJfTERGTEFHU19QTEFURk9STV9jb2NvYXRvdWNoID0gLWFsbG93YWJs
ZV9jbGllbnQgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93YWJsZV9jbGll
bnQgQ2FzYWJsYW5jYSAtYWxsb3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJsZV9jbGllbnQg
VFZCb29rcyAtYWxsb3dhYmxlX2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVu
dCBXZWJLaXRUZXN0UnVubmVyIC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRBUEk7CiBPVEhF
Ul9MREZMQUdTX1BMQVRGT1JNX21hY29zeCA9IC1zdWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxs
YSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9S
ZXZlYWxTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5o
CmluZGV4IDgyYjdjNGEwOTFiYzlkZGJjOTQ2MmI1ODcxOWFiNTMzOTFiNDcwZjQuLjM5ZGJhNWM3
YjY4OTA1ZDBiMGJkMDNiODdjNTljZjc3YzYwYTFjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCkBAIC00NCw5ICs0NCw5IEBAIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChSZXZlYWxDb3JlLCBSVlNlbGVjdGlvbikKICNpbXBvcnQgPFJldmVhbC9S
VlByZXNlbnRlci5oPgogI2ltcG9ydCA8UmV2ZWFsL1JldmVhbC5oPgogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKyNpbXBvcnQgPFJldmVhbENvcmUvUlZJdGVtX1ByaXZhdGUuaD4KICNpbXBvcnQg
PFJldmVhbENvcmUvUlZTZWxlY3Rpb24uaD4KICNpbXBvcnQgPFJldmVhbENvcmUvUmV2ZWFsQ29y
ZS5oPgotCiAjZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQppbmRleCA2NzFhYzlh
YjMwYTU5ZmRhODk0MWYzODQ1YzNlYThiYmE5ZTU0ZjIxLi5iMDc4MDQzZjY0NjA4MWNkZWZiY2Ew
ZTRhZWM0ZjcyMDJiYWRlNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9EaWN0aW9uYXJ5TG9va3VwLm1tCkBAIC00NSw2ICs0NSw3IEBACiAjaW1wb3J0ICJWaXNpYmxl
UG9zaXRpb24uaCIKICNpbXBvcnQgIlZpc2libGVTZWxlY3Rpb24uaCIKICNpbXBvcnQgIlZpc2li
bGVVbml0cy5oIgorI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29r
dXBTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CkBAIC01NCw2ICs1
NSwxMCBAQAogCiAjaW1wb3J0IDxQREZLaXQvUERGS2l0Lmg+CiAKK2V4dGVybiAiQyIgeworI2lt
cG9ydCA8VUlLaXRNYWNIZWxwZXIvVUlOU1JldmVhbENvbnRyb2xsZXIuaD4KK30KKwogI2VuZGlm
IC8vICFQTEFURk9STShXQVRDSCkKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE0MSw3ICsxNDYs
MTE4IEBAIC0gKHZvaWQpcmV2ZWFsQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKWNvbnRl
eHQgc3RvcEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlCiAKIEBlbmQKIAotI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKyNlbGlmIFBMQVRGT1JNKElPU01BQykgLy8gUExBVEZPUk0oTUFDKQorCitAaW50
ZXJmYWNlIFdlYlJldmVhbEhpZ2hsaWdodCA8VUlSVlByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRl
PiA6IE5TT2JqZWN0IHsKK0Bwcml2YXRlCisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBfaW1h
Z2U7CisgICAgQ0dSZWN0IF9oaWdobGlnaHRSZWN0OworICAgIEJPT0wgX2hpZ2hsaWdodGluZzsK
KyAgICBVSVZpZXcgKl92aWV3OworfQorCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IENHUmVjdCBoaWdobGlnaHRSZWN0OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBV
SVZpZXcqIHZpZXc7CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEhpZ2hsaWdodFJlY3Q6KE5T
UmVjdCloaWdobGlnaHRSZWN0IHZpZXc6KFVJVmlldyopdmlldzsKKy0gKHZvaWQpc2V0SW1hZ2U6
KFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4mJilpbWFnZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRp
b24gV2ViUmV2ZWFsSGlnaGxpZ2h0CisKK0BzeW50aGVzaXplIGhpZ2hsaWdodFJlY3Q9X2hpZ2hs
aWdodFJlY3Q7CitAc3ludGhlc2l6ZSB2aWV3PV92aWV3OworCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhIaWdobGlnaHRSZWN0OihOU1JlY3QpaGlnaGxpZ2h0UmVjdCB2aWV3OihVSVZpZXcqKXZp
ZXcKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5p
bDsKKyAgICAKKyAgICBfaGlnaGxpZ2h0UmVjdCA9IGhpZ2hsaWdodFJlY3Q7CisgICAgX3ZpZXcg
PSB2aWV3OworICAgIF9oaWdobGlnaHRpbmcgPSBOTzsKKyAgICAKKyAgICByZXR1cm4gc2VsZjsK
K30KKworLSAodm9pZClzZXRJbWFnZTooUmVmUHRyPFdlYkNvcmU6OkltYWdlPiYmKWltYWdlCit7
CisgICAgX2ltYWdlID0gV1RGTW92ZShpbWFnZSk7Cit9CisKKy0gKE5TQXJyYXkgPE5TVmFsdWUg
Kj4gKiloaWdobGlnaHRSZWN0c0Zvckl0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURf
UEFSQU0oaXRlbSk7CisgICAgcmV0dXJuIEBbW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OnNlbGYu
aGlnaGxpZ2h0UmVjdF1dOworfQorLSAodm9pZClzdGFydEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRl
bSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAgX2hpZ2hsaWdodGluZyA9
IFlFUzsKK30KKy0gKHZvaWQpaGlnaGxpZ2h0SXRlbTooUlZJdGVtICopaXRlbSB3aXRoUHJvZ3Jl
c3M6KENHRmxvYXQpcHJvZ3Jlc3MKK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAgVU5V
U0VEX1BBUkFNKHByb2dyZXNzKTsKK30KKy0gKHZvaWQpY29tcGxldGVIaWdobGlnaHRpbmdJdGVt
OihSVkl0ZW0gKilpdGVtCit7CisgICAgVU5VU0VEX1BBUkFNKGl0ZW0pOworfQorLSAodm9pZClz
dG9wSGlnaGxpZ2h0aW5nSXRlbTooUlZJdGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShp
dGVtKTsKKyAgICBfaGlnaGxpZ2h0aW5nID0gTk87Cit9CistICh2b2lkKWhpZ2hsaWdodFJhbmdl
Q2hhbmdlZEZvckl0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7
Cit9CisKKy0gKEJPT0wpaGlnaGxpZ2h0aW5nCit7CisgICAgcmV0dXJuIF9oaWdobGlnaHRpbmc7
Cit9CisKKy0gKHZvaWQpZHJhd0hpZ2hsaWdodENvbnRlbnRGb3JJdGVtOihSVkl0ZW0gKilpdGVt
IGNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0Cit7CisgICAgVU5VU0VEX1BBUkFNKGl0ZW0p
OworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICAKKyAgICBOU0FycmF5IDxOU1ZhbHVl
ICo+ICogcmVjdHMgPSBbc2VsZiBoaWdobGlnaHRSZWN0c0Zvckl0ZW06aXRlbV07CisgICAgaWYg
KCFyZWN0cy5jb3VudCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFVJVmlldyAqIHRleHRD
b250ZW50VmlldyA9IHNlbGYudmlldzsKKyAgICAKKyAgICBDR1JlY3QgaGlnaGxpZ2h0UmVjdCA9
IHJlY3RzLmZpcnN0T2JqZWN0LkNHUmVjdFZhbHVlOworICAgIGZvciAoTlNVSW50ZWdlciBpID0g
MTsgaSA8IHJlY3RzLmNvdW50OyBpKyspCisgICAgICAgIGhpZ2hsaWdodFJlY3QgPSBDR1JlY3RV
bmlvbihoaWdobGlnaHRSZWN0LCByZWN0c1tpXS5DR1JlY3RWYWx1ZSk7CisgICAgaGlnaGxpZ2h0
UmVjdCA9IFt0ZXh0Q29udGVudFZpZXcgY29udmVydFJlY3Q6aGlnaGxpZ2h0UmVjdCBmcm9tVmll
dzpuaWxdOworICAgIAorICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7CisgICAgQ0dB
ZmZpbmVUcmFuc2Zvcm0gY3QgPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7CisgICAgQ0dBZmZp
bmVUcmFuc2Zvcm0gdCA9IENHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHk7CisgICAgQ0dGbG9hdCBi
YWNraW5nU2NhbGUgPSBjdC5hOworICAgIENHRmxvYXQgaU9TTWFjU2NhbGVGYWN0b3IgPSAwLjc3
OworICAgIHQgPSBDR0FmZmluZVRyYW5zZm9ybVNjYWxlKHQsIGlPU01hY1NjYWxlRmFjdG9yLCBp
T1NNYWNTY2FsZUZhY3Rvcik7CisgICAgQ0dDb250ZXh0U2V0Q1RNKGNvbnRleHQsIHQpOworICAg
IAorICAgIGZvciAoTlNWYWx1ZSAqIHYgaW4gcmVjdHMpIHsKKyAgICAgICAgQ0dSZWN0IGltZ1Ny
Y1JlY3QgPSBbdGV4dENvbnRlbnRWaWV3IGNvbnZlcnRSZWN0OnYuQ0dSZWN0VmFsdWUgZnJvbVZp
ZXc6bmlsXTsKKyAgICAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltZ1JlZiA9IF9pbWFnZS0+
bmF0aXZlSW1hZ2UoKTsKKyAgICAgICAgQ0dSZWN0IG9yaWdpbiA9IENHUmVjdE1ha2UoYmFja2lu
Z1NjYWxlKihpbWdTcmNSZWN0Lm9yaWdpbi54IC0gaGlnaGxpZ2h0UmVjdC5vcmlnaW4ueCksIGJh
Y2tpbmdTY2FsZSooaW1nU3JjUmVjdC5vcmlnaW4ueSAtIGhpZ2hsaWdodFJlY3Qub3JpZ2luLnkp
LCAgYmFja2luZ1NjYWxlKihoaWdobGlnaHRSZWN0LnNpemUud2lkdGgpLCBiYWNraW5nU2NhbGUq
KGhpZ2hsaWdodFJlY3Quc2l6ZS5oZWlnaHQpKTsKKyAgICAgICAgQ0dDb250ZXh0RHJhd0ltYWdl
KGNvbnRleHQsIG9yaWdpbiwgaW1nUmVmLmdldCgpKTsKKyAgICB9CisgICAgCisgICAgQ0dDb250
ZXh0UmVzdG9yZUdTdGF0ZShjb250ZXh0KTsKKyAgICAKK30KKworQGVuZAorCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TTUFDKQogCiAjZW5kaWYgLy8gRU5BQkxFKFJFVkVBTCkKIApAQCAtMzIxLDcg
KzQzNyw3IEBAIHN0ZDo6dHVwbGU8TlNTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5ICo+IERpY3Rpb25h
cnlMb29rdXA6OnN0cmluZ0ZvclBERlNlbGVjdGlvbihQCiAgICAgCiAjZW5kaWYgLy8gIVBMQVRG
T1JNKFdBVENIKQogCi1zdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9yQ3JlYXRl
QW5pbWF0aW9uQ29udHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIsIGNvbnN0
IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8sIE5TVmlldyAqdmlldywg
Y29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3ImKT4mIHRleHRJbmRpY2F0b3JJ
bnN0YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRS
ZWN0KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBjbGVhclRleHRJbmRpY2F0b3IpCitzdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNo
b3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdGlvbkNv
bnRyb2xsZXIsIGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8s
IFJldmVhbFZpZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9y
Jik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rp
b248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFj
aywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yKQogewogICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICAKQEAgLTM3OSw3ICs0OTUsMjYgQEAgc3Rh
dGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xs
ZXIoYm9vbCBjcmVhdGVBbmltYXQKICAgICBbcHJlc2VudGVyIHJldmVhbEl0ZW06aXRlbS5nZXQo
KSBkb2N1bWVudENvbnRleHQ6bmlsIHByZXNlbnRpbmdDb250ZXh0OmNvbnRleHQuZ2V0KCkgb3B0
aW9uczpuaWxdOwogICAgIHJldHVybiBuaWw7CiAgICAgCi0jZWxzZSAvLyBQTEFURk9STShNQUMp
CisjZWxpZiBQTEFURk9STShJT1NNQUMpCisgICAgCisgICAgVU5VU0VEX1BBUkFNKHZpZXcpOwor
ICAgIFVOVVNFRF9QQVJBTSh0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2spOworICAg
IFVOVVNFRF9QQVJBTShyb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayk7CisgICAgVU5V
U0VEX1BBUkFNKGNsZWFyVGV4dEluZGljYXRvcik7CisgICAgCisgICAgVU5VU0VEX1BBUkFNKGNy
ZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIpOyAvLyByZW1vdmUgb25jZSB3ZSBjcmVhdGUgdGhpcyBj
b3JyZWN0bHkKKworICAgIGF1dG8gdGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0
ZShkaWN0aW9uYXJ5UG9wdXBJbmZvLnRleHRJbmRpY2F0b3IpOworICAgIAorICAgIFJldGFpblB0
cjxXZWJSZXZlYWxIaWdobGlnaHQ+IHdlYkhpZ2hsaWdodCA9ICBhZG9wdE5TKFtbV2ViUmV2ZWFs
SGlnaGxpZ2h0IGFsbG9jXSBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6W3ZpZXcgY29udmVydFJlY3Q6
dGV4dEluZGljYXRvci0+c2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpIHRvVmll
dzpuaWxdIHZpZXc6dmlld10pOworICAgIAorICAgIFJldGFpblB0cjxSVkl0ZW0+IGl0ZW0gPSBh
ZG9wdE5TKFthbGxvY1JWSXRlbUluc3RhbmNlKCkgaW5pdFdpdGhUZXh0OmRpY3Rpb25hcnlQb3B1
cEluZm8uYXR0cmlidXRlZFN0cmluZy5nZXQoKS5zdHJpbmcgc2VsZWN0ZWRSYW5nZTpOU01ha2VS
YW5nZSgwLCAwKV0pOworICAgIAorICAgIFt3ZWJIaWdobGlnaHQgc2V0SW1hZ2U6dGV4dEluZGlj
YXRvci0+Y29udGVudEltYWdlKCldOworICAgIFtVSU5TU2hhcmVkUmV2ZWFsQ29udHJvbGxlcigp
IHJldmVhbEl0ZW06aXRlbS5nZXQoKSBsb2NhdGlvbkluV2luZG93OmRpY3Rpb25hcnlQb3B1cElu
Zm8ub3JpZ2luIHdpbmRvdzp2aWV3LndpbmRvdyBoaWdobGlnaHRlcjogKGlkPFVJUlZQcmVzZW50
ZXJIaWdobGlnaHREZWxlZ2F0ZT4pIHdlYkhpZ2hsaWdodC5nZXQoKV07CisgICAgcmV0dXJuIG5p
bDsKKyAgICAKKyNlbHNlIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgCiAgICAgVU5VU0VE
X1BBUkFNKGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIpOwogICAgIFVOVVNFRF9QQVJBTShkaWN0
aW9uYXJ5UG9wdXBJbmZvKTsKQEAgLTM4OSwxMyArNTI0LDEzIEBAIHN0YXRpYyBXS1JldmVhbENv
bnRyb2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9sbGVyKGJvb2wgY3JlYXRl
QW5pbWF0CiAgICAgVU5VU0VEX1BBUkFNKGNsZWFyVGV4dEluZGljYXRvcik7CiAgICAgCiAgICAg
cmV0dXJuIG5pbDsKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCisjZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIAog
fQogCi12b2lkIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9w
dXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVu
Y3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2Fs
bGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmll
d1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJU
ZXh0SW5kaWNhdG9yKQordm9pZCBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoY29uc3QgRGlj
dGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgUmV2ZWFsVmlldyAqdmlldywg
Y29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3ImKT4mIHRleHRJbmRpY2F0b3JJ
bnN0YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRS
ZWN0KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBjbGVhclRleHRJbmRpY2F0b3IpCiB7CiAgICAgc2hvd1BvcHVwT3JDcmVhdGVBbmlt
YXRpb25Db250cm9sbGVyKGZhbHNlLCBkaWN0aW9uYXJ5UG9wdXBJbmZvLCB2aWV3LCB0ZXh0SW5k
aWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxi
YWNrLCBXVEZNb3ZlKGNsZWFyVGV4dEluZGljYXRvcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oCmluZGV4IGY4Zjc2MWNkYzgxYWViZDNkZjA4
ODM3YTMyMzFjMDhmMzVhNGZlYjkuLjE2MzE5NjdmZjkyYWRmOGE4ODk1ZjdmZWM1NzgyZDhjNjEy
M2E2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlM
b29rdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3Vw
LmgKQEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBPQkpD
X0NMQVNTIE5TVmlldzsKK09CSkNfQ0xBU1MgVUlWaWV3OwogT0JKQ19DTEFTUyBQREZTZWxlY3Rp
b247CiAKICNpZiBQTEFURk9STShNQUMpCiB0eXBlZGVmIGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbkNvbnRyb2xsZXI+IFdLUmV2ZWFsQ29udHJvbGxlcjsKK3VzaW5nIFJldmVhbFZpZXcg
PSBOU1ZpZXc7CiAjZWxzZQogdHlwZWRlZiBpZCBXS1JldmVhbENvbnRyb2xsZXI7Cit1c2luZyBS
ZXZlYWxWaWV3ID0gVUlWaWV3OwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNTYsNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogU2hv
dWxkIG1vdmUvdW5pZnkgZGljdGlvbmFyeVBvcHVwSW5mb0ZvclJhbmdlIGhlcmUgdG9vLgogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2hvd1BvcHVwKGNvbnN0IERpY3Rpb25hcnlQ
b3B1cEluZm8mLCBOU1ZpZXcgKiwgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0
b3ImKT4mIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5j
dGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxi
YWNrID0gbnVsbHB0ciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9y
ID0gbnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2hvd1BvcHVwKGNv
bnN0IERpY3Rpb25hcnlQb3B1cEluZm8mLCBSZXZlYWxWaWV3ICosIGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJh
Y2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1Rv
Vmlld0NvbnZlcnNpb25DYWxsYmFjayA9IG51bGxwdHIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNsZWFyVGV4dEluZGljYXRvciA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyB2b2lkIGhpZGVQb3B1cCgpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAxNDk3MTRhYjFkMjI2NWE2ODM0ZDU3ZWY0N2IxMTZl
YTRlMjllMzUxLi5lYWQ5MTVmMDk0NWRiZGE1YmI2NjY0OTdkNTMyZmE5NDAyMjI3ZmJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zMDMsNiArMzAzLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2lu
ZG93RGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRp
Y2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9p
ZCBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9w
dXBJbmZvJikgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikgPSAwOwpAQCAtMzEyLDcg
KzMxNCw2IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHBs
dWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJ
bnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0
X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRTdGF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1
cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25z
dCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5n
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFz
b25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0KSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcg
ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0Fs
dGVybmF0aXZlVGV4dCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaAppbmRleCA4NzdjODEzN2YzMzE2NTgyYWM1NDMzZWVkNWIxN2JkYWIy
NTM5ZDlmLi41ZGE2Zjk5YmY1MjQwMjMzMDNkODcxZGEwN2JmNzJlMTZhZmNiNTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTM0
LDYgKzEzNCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25z
dCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgbGF5ZXJU
cmVlQ29tbWl0Q29tcGxldGUoKSBvdmVycmlkZTsKKyAgICAgICAgCisgICAgdm9pZCBkaWRQZXJm
b3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpIG92ZXJyaWRl
OwogICAgIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50
PiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50JiwgZG91YmxlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA3ZTA2M2RhMWQzOGMwNWVhMzZmMjEwOWIyMGZk
NzQxNGMyMGI3NTMyLi5iZmI3NTQyYTQyZDhmMGI5MmVjMDUzNjBkZmMyZmY2Njg2NmRiYzcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
CkBAIC01NCw2ICs1NCw3IEBACiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW1w
b3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0Rvd25sb2FkSW50ZXJuYWwuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+CkBAIC00NTMsNiArNDU0LDEx
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQogewogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0
aW9uYXJ5UG9wdXBJbmZvKQoreworICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0
aW9uYXJ5UG9wdXBJbmZvLCBtX2NvbnRlbnRWaWV3LCBudWxscHRyKTsKK30KKwogdm9pZCBQYWdl
Q2xpZW50SW1wbDo6c2V0UmVtb3RlTGF5ZXJUcmVlUm9vdE5vZGUoUmVtb3RlTGF5ZXJUcmVlTm9k
ZSogcm9vdE5vZGUpCiB7CiAgICAgW21fY29udGVudFZpZXcgX3NldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdSb290Vmlldzpyb290Tm9kZSA/IHJvb3ROb2RlLT51aVZpZXcoKSA6IG5pbF07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAxMWE3
NDY3MzlmNzZiZjcyM2MzYmE4MDExNmFkZGRlOTNhYjQ4MjEwLi5iOWJkNzBjOWJlZTEwNjllMWI0
ZjEyMzA5OGI5Y2FlMTJkNjQ4N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTk4MSw5ICs5ODEsOSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KHVpbnQzMl90IGluZGV4LCBib29sIGFs
bG93TXVsdAogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRGb2N1c2Vk
RWxlbWVudFNlbGVjdGVkSW5kZXgoaW5kZXgsIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pLCBtX3Bh
Z2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1
cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5
UG9wdXBJbmZvKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcGFnZUNsaWVudCgpLmRp
ZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGRpY3Rpb25hcnlQb3B1cEluZm8pOwogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6c2F2ZVBERlRvVGVtcG9yYXJ5Rm9sZGVyQW5kT3BlbldpdGhOYXRpdmVB
cHBsaWNhdGlvbihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IDhjZTU2NWZiOTU2ZjM2
Y2I3NTJlZjgxMWExMjQ1ZWI1NWRkY2Y5YjMuLmEyY2YwM2E2NWZkNGM4NjUyMjlkODkwNjdhMTk1
MWZhOTQyZWRhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1dlYlBhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KQEAgLTEzNyw3ICsxMzcsNyBAQCBEaWN0aW9uYXJ5
UG9wdXBJbmZvIFdlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5nZShGcmFtZSYgZnJh
bWUsIFJhbmdlJiByYQogICAgIGZsb2F0IHNjYWxlZEFzY2VudCA9IHN0eWxlID8gc3R5bGUtPmZv
bnRNZXRyaWNzKCkuYXNjZW50KCkgKiBwYWdlU2NhbGVGYWN0b3IoKSA6IDA7CiAgICAgZGljdGlv
bmFyeVBvcHVwSW5mby5vcmlnaW4gPSBGbG9hdFBvaW50KHJhbmdlUmVjdC54KCksIHJhbmdlUmVj
dC55KCkgKyBzY2FsZWRBc2NlbnQpOwogICAgIGRpY3Rpb25hcnlQb3B1cEluZm8ub3B0aW9ucyA9
IG9wdGlvbnM7Ci0KKyAgICAKICNpZiBQTEFURk9STShNQUMpCiAKICAgICBOU0F0dHJpYnV0ZWRT
dHJpbmcgKm5zQXR0cmlidXRlZFN0cmluZyA9IGVkaXRpbmdBdHRyaWJ1dGVkU3RyaW5nRnJvbVJh
bmdlKHJhbmdlLCBJbmNsdWRlSW1hZ2VzSW5BdHRyaWJ1dGVkU3RyaW5nOjpObyk7CkBAIC0xNzUs
NiArMTc1LDEwIEBAIERpY3Rpb25hcnlQb3B1cEluZm8gV2ViUGFnZTo6ZGljdGlvbmFyeVBvcHVw
SW5mb0ZvclJhbmdlKEZyYW1lJiBmcmFtZSwgUmFuZ2UmIHJhCiAgICAgZGljdGlvbmFyeVBvcHVw
SW5mby5hdHRyaWJ1dGVkU3RyaW5nID0gc2NhbGVkTlNBdHRyaWJ1dGVkU3RyaW5nOwogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKICAgICAKKyNpZiBQTEFURk9STShJT1NNQUMpCisgICAgZGljdGlv
bmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nID0gW1tOU011dGFibGVBdHRyaWJ1dGVkU3Ry
aW5nIGFsbG9jXSBpbml0V2l0aFN0cmluZzpyYW5nZS50ZXh0KCldOworI2VuZGlmIC8vIFBMQVRG
T1JNKElPU01BQykKKyAgICAKICAgICBlZGl0b3Iuc2V0SXNHZXR0aW5nRGljdGlvbmFyeVBvcHVw
SW5mbyhmYWxzZSk7CiAgICAgcmV0dXJuIGRpY3Rpb25hcnlQb3B1cEluZm87CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359093</attachid>
            <date>2019-01-14 16:06:53 -0800</date>
            <delta_ts>2019-01-14 17:15:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193408-20190114160652.patch</filename>
            <type>text/plain</type>
            <size>21237</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMzMxMzFjMTdmZjNk
MjFjYjk1MDUxMzgxYzAwZDU4YTYwNTg4OC4uNjY3NmZkYTA3NTMzN2QwNzk2ZGQyYTI3ZjNmZDgz
NzllNzZmMjg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAxLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVh
bCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaU9TTWFjIGFuZCBSZXZlYWwgYXJlIGN1cnJlbnRseSBub3QgdGVzdGFibGUu
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSByZXZlYWwgU1BJIHNwZWNpZmljYWxseSBm
b3IgaU9TTWFjLgorICAgICAgICBTaG93IHRoZSBjb250cm9sbGVyIHdoZW4gY2FsbGVkLCBhbmQg
aW1wbGVtZW50IHRoZSBkZWxlZ2F0ZSB0byAKKyAgICAgICAgY29ycmVjdGx5IHJlLXBhaW50IHRo
ZSBjb250ZW50IHdpdGggdGhlIGF1dG8tZ2VuZXJhdGVkIGhpZ2hsaWdodCBmcm9tCisgICAgICAg
IHRoZSByZXZlYWwgZnJhbWV3b3JrLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW06
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6dmll
dzpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHNldEltYWdlOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0UmVjdHNGb3JJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgc3RhcnRIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0SXRlbTp3aXRoUHJvZ3Jlc3M6XSk6Cisg
ICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBjb21wbGV0ZUhpZ2hsaWdodGluZ0l0ZW06XSk6
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBzdG9wSGlnaGxpZ2h0aW5nSXRlbTpdKToK
KyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhpZ2hsaWdodFJhbmdlQ2hhbmdlZEZvckl0
ZW06XSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBoaWdobGlnaHRpbmddKToKKyAg
ICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGRyYXdIaWdobGlnaHRDb250ZW50Rm9ySXRlbTpj
b250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1
cCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oOgorCiAyMDE5LTAx
LTExICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
R2FyYmxlZCByZW5kZXJpbmcgb24gWW91dHViZSB3aGlsZSBzY3JvbGxpbmcgdW5kZXIgWDExLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggNWExMGQ3NDkxNTk5MDY2MTI5NGU5MjBkODdlYWI4MTAwMmIy
N2VmYi4uYjQyNjE1YWVlNTA0Njg1ZGE2ODkwMDk3ZDg1ZmMyYTc4YjJhNDA3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMTQgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUmV2ZWFsIHN1cHBvcnQgaW4g
aU9TTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTM0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYWRkaXRpb25hbCBuZWVkZWQgU1BJLgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9SZXZl
YWxTUEkuaDoKKwogMjAxOS0wMS0xMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBPdmVycmlkZSB0aGUgc2Vzc2lvbiBjb25maWd1cmF0aW9uIGZvciBjb29r
aWVBY2NlcHRQb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDUzY2MzM2M2OTI3ZTYxYWE0ZTY5ZGFlOTBkYTgw
NTEyNTdkZTkyNS4uZmMxNTUyNGNkOWFkMTlmOTg3ZDA4NDQ2MjA5OTc1N2I2ZTJjODAwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0wMS0xNCAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBSZXZlYWwgc3VwcG9ydCBpbiBpT1NN
YWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBj
YWxscyB0byBEaWN0aW9uYXJ5TG9va3VwIGZyb20gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25h
cnlMb29rdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JS
YW5nZSk6CisKIDIwMTktMDEtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW50cm9kdWNlIElETCBmaWxlcyBmb3IgcnVudGltZS1lbmFibGVkIFVu
ZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbSBKYXZhU2NyaXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWI4NGU4OTBkZTIwYjJlYmNj
NmE4MjNkYzZkZTVlMzdlZDEyNjc2NC4uMjI5MmU1NjJlMmFhMzQxZGJmYjA3YmQzMmI1OGQwNjFi
MDAyMTgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMTUsNiArMTE1LDkgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0dm9zID0g
JChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2
c2ltdWxhdG9yID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpOwogV0tfT1BF
TkdMX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKK1dLX1VJS0lUTUFDX0xE
RkxBR1MgPSAkKFdLX1VJS0lUTUFDX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19V
SUtJVE1BQ19MREZMQUdTX2lvc21hYyA9IC1mcmFtZXdvcmsgVUlLaXRNYWNIZWxwZXI7CisKIFdL
X1NZU1RFTV9DT05GSUdVUkFUSU9OX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9DT05GSUdVUkFUSU9O
X0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19TWVNURU1fQ09ORklHVVJBVElPTl9M
REZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgU3lzdGVtQ29uZmlndXJhdGlvbjsKIApAQCAtMTI2
LDcgKzEyOSw3IEBAIFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRU
SU5HX0xERkxBR1NfJChXS19IQVZFX1VSTF9GT1JNQVRUSU5HCiBXS19VUkxfRk9STUFUVElOR19M
REZMQUdTX1lFUyA9IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKIAogLy8gRklYTUU6IFJlZHVj
ZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnRzIDxyZGFyOi8vcHJvYmxlbS8zMTgyMzk2
OT4KLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdP
UktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZMQUdTKSAtbHNxbGl0ZTMgLWxv
YmpjIC1sQU5HTEUgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2Fi
bGVfY2xpZW50IFdlYktpdExlZ2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
bGliUEFMLmEgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1l
d29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRp
b24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgTWV0YWwgJChPVEhFUl9MREZMQUdTX1BM
QVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19Q
TEFURk9STV9OQU1FKSkgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BUFBTVVBQT1JUX0xERkxB
R1MpICQoV0tfQVVESU9fVU5JVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NP
UkVfVUlfTERGTEFHUykgJChXS19EQVRBX0RFVEVDVE9SU19DT1JFX0xERkxBR1MpICQoV0tfR1JB
UEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19JT1NVUkZBQ0VfTERGTEFHUykgJChXS19MSUJX
RUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01P
QklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoV0tfU1lTVEVNX0NP
TkZJR1VSQVRJT05fTERGTEFHUykgJChXS19TWVNURU1fUFJFVklFV19MREZMQUdTKSAkKFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1MpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdL
X1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAkKFdLX1VOREVGSU5FRF9TWU1CT0xTX0xE
RkxBR1MpIC1sc3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3Jl
VGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9saWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3
b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0
IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNZXRh
bCAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERG
TEFHU19QTEFURk9STV8kKFdLX1BMQVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAk
KFdLX0FQUFNVUFBPUlRfTERGTEFHUykgJChXS19BVURJT19VTklUX0xERkxBR1MpICQoV0tfQ0FS
Qk9OX0xERkxBR1MpICQoV0tfQ09SRV9VSV9MREZMQUdTKSAkKFdLX0RBVEFfREVURUNUT1JTX0NP
UkVfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFD
RV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19PUEVOR0xfTERG
TEFHUykgJChXS19TWVNURU1fQ09ORklHVVJBVElPTl9MREZMQUdTKSAkKFdLX1NZU1RFTV9QUkVW
SUVXX0xERkxBR1MpICQoV0tfVUlLSVRNQUNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19M
REZMQUdTKTsKIAogT1RIRVJfTERGTEFHU19QTEFURk9STV9jb2NvYXRvdWNoID0gLWFsbG93YWJs
ZV9jbGllbnQgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93YWJsZV9jbGll
bnQgQ2FzYWJsYW5jYSAtYWxsb3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJsZV9jbGllbnQg
VFZCb29rcyAtYWxsb3dhYmxlX2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVu
dCBXZWJLaXRUZXN0UnVubmVyIC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRBUEk7CiBPVEhF
Ul9MREZMQUdTX1BMQVRGT1JNX21hY29zeCA9IC1zdWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxs
YSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9S
ZXZlYWxTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5o
CmluZGV4IDgyYjdjNGEwOTFiYzlkZGJjOTQ2MmI1ODcxOWFiNTMzOTFiNDcwZjQuLjM5ZGJhNWM3
YjY4OTA1ZDBiMGJkMDNiODdjNTljZjc3YzYwYTFjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCkBAIC00NCw5ICs0NCw5IEBAIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChSZXZlYWxDb3JlLCBSVlNlbGVjdGlvbikKICNpbXBvcnQgPFJldmVhbC9S
VlByZXNlbnRlci5oPgogI2ltcG9ydCA8UmV2ZWFsL1JldmVhbC5oPgogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKyNpbXBvcnQgPFJldmVhbENvcmUvUlZJdGVtX1ByaXZhdGUuaD4KICNpbXBvcnQg
PFJldmVhbENvcmUvUlZTZWxlY3Rpb24uaD4KICNpbXBvcnQgPFJldmVhbENvcmUvUmV2ZWFsQ29y
ZS5oPgotCiAjZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQppbmRleCA2NzFhYzlh
YjMwYTU5ZmRhODk0MWYzODQ1YzNlYThiYmE5ZTU0ZjIxLi42NjEzZTA1NDk1ZTY1YmIwYTBiN2M2
YTRiZDllZjYwZGM3NzQyNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9EaWN0aW9uYXJ5TG9va3VwLm1tCkBAIC00NSwxNyArNDUsMjIgQEAKICNpbXBvcnQgIlZpc2li
bGVQb3NpdGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVNlbGVjdGlvbi5oIgogI2ltcG9ydCAiVmlz
aWJsZVVuaXRzLmgiCisjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0xv
b2t1cFNQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi9SZWZQdHIuaD4KIAogI2lmICFQTEFURk9STShXQVRDSCkKLQogI2ltcG9ydCA8UERGS2l0
L1BERktpdC5oPgotCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdBVENIKQogCisjaWYgUExBVEZPUk0o
SU9TTUFDKQorZXh0ZXJuICJDIiB7CisjaW1wb3J0IDxVSUtpdE1hY0hlbHBlci9VSU5TUmV2ZWFs
Q29udHJvbGxlci5oPgorfQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU01BQykKKwogI2lmIFBMQVRG
T1JNKE1BQykKIAogQGludGVyZmFjZSBXZWJSZXZlYWxIaWdobGlnaHQgPFJWUHJlc2VudGVySGln
aGxpZ2h0RGVsZWdhdGU+IDogTlNPYmplY3QgewpAQCAtMTQxLDcgKzE0NiwxMjAgQEAgLSAodm9p
ZClyZXZlYWxDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCBzdG9wSGlnaGxp
Z2h0aW5nSXRlbTooUlZJdGUKIAogQGVuZAogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorI2Vs
aWYgUExBVEZPUk0oSU9TTUFDKSAvLyBQTEFURk9STShNQUMpCisKK0BpbnRlcmZhY2UgV2ViUmV2
ZWFsSGlnaGxpZ2h0IDxVSVJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+IDogTlNPYmplY3Qg
eworQHByaXZhdGUKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IF9pbWFnZTsKKyAgICBDR1Jl
Y3QgX2hpZ2hsaWdodFJlY3Q7CisgICAgQk9PTCBfaGlnaGxpZ2h0aW5nOworICAgIFVJVmlldyAq
X3ZpZXc7Cit9CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IGhpZ2hs
aWdodFJlY3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyAqdmlldzsK
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdo
dFJlY3QgdmlldzooVUlWaWV3ICopdmlldzsKKy0gKHZvaWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJD
b3JlOjpJbWFnZT4mJilpbWFnZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViUmV2ZWFs
SGlnaGxpZ2h0CisKK0BzeW50aGVzaXplIGhpZ2hsaWdodFJlY3Q9X2hpZ2hsaWdodFJlY3Q7CitA
c3ludGhlc2l6ZSB2aWV3PV92aWV3OworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhIaWdobGln
aHRSZWN0OihOU1JlY3QpaGlnaGxpZ2h0UmVjdCB2aWV3OihVSVZpZXcgKil2aWV3Cit7CisgICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisg
ICAgX2hpZ2hsaWdodFJlY3QgPSBoaWdobGlnaHRSZWN0OworICAgIF92aWV3ID0gdmlldzsKKyAg
ICBfaGlnaGxpZ2h0aW5nID0gTk87CisgICAgCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZv
aWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4mJilpbWFnZQoreworICAgIF9pbWFn
ZSA9IFdURk1vdmUoaW1hZ2UpOworfQorCistIChOU0FycmF5IDxOU1ZhbHVlICo+ICopaGlnaGxp
Z2h0UmVjdHNGb3JJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgVU5VU0VEX1BBUkFNKGl0ZW0p
OworICAgIHJldHVybiBAW1tOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpzZWxmLmhpZ2hsaWdodFJl
Y3RdXTsKK30KKworLSAodm9pZClzdGFydEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0K
K3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAgX2hpZ2hsaWdodGluZyA9IFlFUzsKK30K
KworLSAodm9pZCloaWdobGlnaHRJdGVtOihSVkl0ZW0gKilpdGVtIHdpdGhQcm9ncmVzczooQ0dG
bG9hdClwcm9ncmVzcworeworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsKKyAgICBVTlVTRURfUEFS
QU0ocHJvZ3Jlc3MpOworfQorCistICh2b2lkKWNvbXBsZXRlSGlnaGxpZ2h0aW5nSXRlbTooUlZJ
dGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsKK30KKworLSAodm9pZClzdG9w
SGlnaGxpZ2h0aW5nSXRlbTooUlZJdGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShpdGVt
KTsKKyAgICBfaGlnaGxpZ2h0aW5nID0gTk87Cit9CisKKy0gKHZvaWQpaGlnaGxpZ2h0UmFuZ2VD
aGFuZ2VkRm9ySXRlbTooUlZJdGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsK
K30KKworLSAoQk9PTCloaWdobGlnaHRpbmcKK3sKKyAgICByZXR1cm4gX2hpZ2hsaWdodGluZzsK
K30KKworLSAodm9pZClkcmF3SGlnaGxpZ2h0Q29udGVudEZvckl0ZW06KFJWSXRlbSAqKWl0ZW0g
Y29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKK3sKKyAgICBOU0FycmF5IDxOU1ZhbHVlICo+
ICpyZWN0cyA9IFtzZWxmIGhpZ2hsaWdodFJlY3RzRm9ySXRlbTppdGVtXTsKKyAgICBpZiAoIXJl
Y3RzLmNvdW50KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgVUlWaWV3ICp0ZXh0Q29udGVu
dFZpZXcgPSBzZWxmLnZpZXc7CisgICAgCisgICAgQ0dSZWN0IGhpZ2hsaWdodFJlY3QgPSByZWN0
cy5maXJzdE9iamVjdC5DR1JlY3RWYWx1ZTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDE7IGkg
PCByZWN0cy5jb3VudDsgaSsrKQorICAgICAgICBoaWdobGlnaHRSZWN0ID0gQ0dSZWN0VW5pb24o
aGlnaGxpZ2h0UmVjdCwgcmVjdHNbaV0uQ0dSZWN0VmFsdWUpOworICAgIGhpZ2hsaWdodFJlY3Qg
PSBbdGV4dENvbnRlbnRWaWV3IGNvbnZlcnRSZWN0OmhpZ2hsaWdodFJlY3QgZnJvbVZpZXc6bmls
XTsKKyAgICAKKyAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOworICAgIENHQWZmaW5l
VHJhbnNmb3JtIGNvbnRleHRUcmFuc2Zvcm0gPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7Cisg
ICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0
eTsKKyAgICBDR0Zsb2F0IGJhY2tpbmdTY2FsZSA9IGNvbnRleHRUcmFuc2Zvcm0uYTsKKyAgICBD
R0Zsb2F0IGlPU01hY1NjYWxlRmFjdG9yID0gMC43NzsKKyAgICB0cmFuc2Zvcm0gPSBDR0FmZmlu
ZVRyYW5zZm9ybVNjYWxlKHRyYW5zZm9ybSwgaU9TTWFjU2NhbGVGYWN0b3IsIGlPU01hY1NjYWxl
RmFjdG9yKTsKKyAgICBDR0NvbnRleHRTZXRDVE0oY29udGV4dCwgdHJhbnNmb3JtKTsKKyAgICAK
KyAgICBmb3IgKE5TVmFsdWUgKnYgaW4gcmVjdHMpIHsKKyAgICAgICAgQ0dSZWN0IGltZ1NyY1Jl
Y3QgPSBbdGV4dENvbnRlbnRWaWV3IGNvbnZlcnRSZWN0OnYuQ0dSZWN0VmFsdWUgZnJvbVZpZXc6
bmlsXTsKKyAgICAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlUmVmID0gX2ltYWdlLT5u
YXRpdmVJbWFnZSgpOworICAgICAgICBDR1JlY3Qgb3JpZ2luID0gQ0dSZWN0TWFrZShiYWNraW5n
U2NhbGUgKiAoaW1nU3JjUmVjdC5vcmlnaW4ueCAtIGhpZ2hsaWdodFJlY3Qub3JpZ2luLngpLCBi
YWNraW5nU2NhbGUgKiAoaW1nU3JjUmVjdC5vcmlnaW4ueSAtIGhpZ2hsaWdodFJlY3Qub3JpZ2lu
LnkpLCAgYmFja2luZ1NjYWxlICogKGhpZ2hsaWdodFJlY3Quc2l6ZS53aWR0aCksIGJhY2tpbmdT
Y2FsZSooaGlnaGxpZ2h0UmVjdC5zaXplLmhlaWdodCkpOworICAgICAgICBDR0NvbnRleHREcmF3
SW1hZ2UoY29udGV4dCwgb3JpZ2luLCBpbWFnZVJlZi5nZXQoKSk7CisgICAgfQorICAgIAorICAg
IENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CisgICAgCit9CisKK0BlbmQKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU01BQykKIAogI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCiAKQEAg
LTMyMSw3ICs0MzksNyBAQCBzdGQ6OnR1cGxlPE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqPiBE
aWN0aW9uYXJ5TG9va3VwOjpzdHJpbmdGb3JQREZTZWxlY3Rpb24oUAogICAgIAogI2VuZGlmIC8v
ICFQTEFURk9STShXQVRDSCkKIAotc3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBP
ckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBjcmVhdGVBbmltYXRpb25Db250cm9sbGVy
LCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcg
KnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5k
aWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0
KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yKQorc3RhdGljIFdLUmV2ZWFsQ29udHJv
bGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBjcmVhdGVBbmlt
YXRpb25Db250cm9sbGVyLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9w
dXBJbmZvLCBSZXZlYWxWaWV3ICp2aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dElu
ZGljYXRvciYpPiYgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6
OkZ1bmN0aW9uPEZsb2F0UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9u
Q2FsbGJhY2ssIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikKIHsK
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgCkBAIC0zNzksNyArNDk3LDI1
IEBAIHN0YXRpYyBXS1JldmVhbENvbnRyb2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKGJvb2wgY3JlYXRlQW5pbWF0CiAgICAgW3ByZXNlbnRlciByZXZlYWxJdGVtOml0
ZW0uZ2V0KCkgZG9jdW1lbnRDb250ZXh0Om5pbCBwcmVzZW50aW5nQ29udGV4dDpjb250ZXh0Lmdl
dCgpIG9wdGlvbnM6bmlsXTsKICAgICByZXR1cm4gbmlsOwogICAgIAotI2Vsc2UgLy8gUExBVEZP
Uk0oTUFDKQorI2VsaWYgUExBVEZPUk0oSU9TTUFDKQorICAgIAorICAgIFVOVVNFRF9QQVJBTSh0
ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2spOworICAgIFVOVVNFRF9QQVJBTShyb290
Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKGNsZWFyVGV4
dEluZGljYXRvcik7CisgICAgCisgICAgVU5VU0VEX1BBUkFNKGNyZWF0ZUFuaW1hdGlvbkNvbnRy
b2xsZXIpOworCisgICAgYXV0byB0ZXh0SW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRl
KGRpY3Rpb25hcnlQb3B1cEluZm8udGV4dEluZGljYXRvcik7CisgICAgCisgICAgUmV0YWluUHRy
PFdlYlJldmVhbEhpZ2hsaWdodD4gd2ViSGlnaGxpZ2h0ID0gYWRvcHROUyhbW1dlYlJldmVhbEhp
Z2hsaWdodCBhbGxvY10gaW5pdFdpdGhIaWdobGlnaHRSZWN0Olt2aWV3IGNvbnZlcnRSZWN0OnRl
eHRJbmRpY2F0b3ItPnNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSB0b1ZpZXc6
bmlsXSB2aWV3OnZpZXddKTsKKyAgICAKKyAgICBSZXRhaW5QdHI8UlZJdGVtPiBpdGVtID0gYWRv
cHROUyhbYWxsb2NSVkl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoVGV4dDpkaWN0aW9uYXJ5UG9wdXBJ
bmZvLmF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkuc3RyaW5nIHNlbGVjdGVkUmFuZ2U6TlNNYWtlUmFu
Z2UoMCwgMCldKTsKKyAgICAKKyAgICBbd2ViSGlnaGxpZ2h0IHNldEltYWdlOnRleHRJbmRpY2F0
b3ItPmNvbnRlbnRJbWFnZSgpXTsKKyAgICBbVUlOU1NoYXJlZFJldmVhbENvbnRyb2xsZXIoKSBy
ZXZlYWxJdGVtOml0ZW0uZ2V0KCkgbG9jYXRpb25JbldpbmRvdzpkaWN0aW9uYXJ5UG9wdXBJbmZv
Lm9yaWdpbiB3aW5kb3c6dmlldy53aW5kb3cgaGlnaGxpZ2h0ZXI6KGlkPFVJUlZQcmVzZW50ZXJI
aWdobGlnaHREZWxlZ2F0ZT4pIHdlYkhpZ2hsaWdodC5nZXQoKV07CisgICAgcmV0dXJuIG5pbDsK
KyAgICAKKyNlbHNlIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgCiAgICAgVU5VU0VEX1BB
UkFNKGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIpOwogICAgIFVOVVNFRF9QQVJBTShkaWN0aW9u
YXJ5UG9wdXBJbmZvKTsKQEAgLTM4OSwxMyArNTI1LDEzIEBAIHN0YXRpYyBXS1JldmVhbENvbnRy
b2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9sbGVyKGJvb2wgY3JlYXRlQW5p
bWF0CiAgICAgVU5VU0VEX1BBUkFNKGNsZWFyVGV4dEluZGljYXRvcik7CiAgICAgCiAgICAgcmV0
dXJuIG5pbDsKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCisjZW5kaWYgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIAogfQog
Ci12b2lkIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJh
Y2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1Rv
Vmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0
SW5kaWNhdG9yKQordm9pZCBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoY29uc3QgRGljdGlv
bmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgUmV2ZWFsVmlldyAqdmlldywgY29u
c3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3ImKT4mIHRleHRJbmRpY2F0b3JJbnN0
YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0
KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjbGVhclRleHRJbmRpY2F0b3IpCiB7CiAgICAgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRp
b25Db250cm9sbGVyKGZhbHNlLCBkaWN0aW9uYXJ5UG9wdXBJbmZvLCB2aWV3LCB0ZXh0SW5kaWNh
dG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNr
LCBXVEZNb3ZlKGNsZWFyVGV4dEluZGljYXRvcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oCmluZGV4IGY4Zjc2MWNkYzgxYWViZDNkZjA4ODM3
YTMyMzFjMDhmMzVhNGZlYjkuLjE2MzE5NjdmZjkyYWRmOGE4ODk1ZjdmZWM1NzgyZDhjNjEyM2E2
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29r
dXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLmgK
QEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBPQkpDX0NM
QVNTIE5TVmlldzsKK09CSkNfQ0xBU1MgVUlWaWV3OwogT0JKQ19DTEFTUyBQREZTZWxlY3Rpb247
CiAKICNpZiBQTEFURk9STShNQUMpCiB0eXBlZGVmIGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbkNvbnRyb2xsZXI+IFdLUmV2ZWFsQ29udHJvbGxlcjsKK3VzaW5nIFJldmVhbFZpZXcgPSBO
U1ZpZXc7CiAjZWxzZQogdHlwZWRlZiBpZCBXS1JldmVhbENvbnRyb2xsZXI7Cit1c2luZyBSZXZl
YWxWaWV3ID0gVUlWaWV3OwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTYsNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogU2hvdWxk
IG1vdmUvdW5pZnkgZGljdGlvbmFyeVBvcHVwSW5mb0ZvclJhbmdlIGhlcmUgdG9vLgogCi0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2hvd1BvcHVwKGNvbnN0IERpY3Rpb25hcnlQb3B1
cEluZm8mLCBOU1ZpZXcgKiwgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3Im
KT4mIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlv
bjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNr
ID0gbnVsbHB0ciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yID0g
bnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2hvd1BvcHVwKGNvbnN0
IERpY3Rpb25hcnlQb3B1cEluZm8mLCBSZXZlYWxWaWV3ICosIGNvbnN0IFdURjo6RnVuY3Rpb248
dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ss
IGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmll
d0NvbnZlcnNpb25DYWxsYmFjayA9IG51bGxwdHIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNs
ZWFyVGV4dEluZGljYXRvciA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIGhpZGVQb3B1cCgpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCAxNDk3MTRhYjFkMjI2NWE2ODM0ZDU3ZWY0N2IxMTZlYTRl
MjllMzUxLi5lYWQ5MTVmMDk0NWRiZGE1YmI2NjY0OTdkNTMyZmE5NDAyMjI3ZmJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zMDMsNiArMzAzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0
b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBk
aWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJ
bmZvJikgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikgPSAwOwpAQCAtMzEyLDcgKzMx
NCw2IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHBsdWdp
bkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1
dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChj
b25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25G
b3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0KSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVy
bmF0aXZlVGV4dCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAppbmRleCA4NzdjODEzN2YzMzE2NTgyYWM1NDMzZWVkNWIxN2JkYWIyNTM5
ZDlmLi41ZGE2Zjk5YmY1MjQwMjMzMDNkODcxZGEwN2JmNzJlMTZhZmNiNTI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTM0LDYg
KzEzNCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25zdCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgbGF5ZXJUcmVl
Q29tbWl0Q29tcGxldGUoKSBvdmVycmlkZTsKKyAgICAgICAgCisgICAgdm9pZCBkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIGNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpIG92ZXJyaWRlOwog
ICAgIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50Piwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
JiwgZG91YmxlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA3ZTA2M2RhMWQzOGMwNWVhMzZmMjEwOWIyMGZkNzQx
NGMyMGI3NTMyLi5iZmI3NTQyYTQyZDhmMGI5MmVjMDUzNjBkZmMyZmY2Njg2NmRiYzcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBA
IC01NCw2ICs1NCw3IEBACiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW1wb3J0
ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0Rvd25sb2FkSW50ZXJuYWwuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+CkBAIC00NTMsNiArNDU0LDExIEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNv
bnN0IExheWVyVHJlZUNvbnRleHQmKQogewogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQ
ZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9u
YXJ5UG9wdXBJbmZvKQoreworICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9u
YXJ5UG9wdXBJbmZvLCBtX2NvbnRlbnRWaWV3LCBudWxscHRyKTsKK30KKwogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6c2V0UmVtb3RlTGF5ZXJUcmVlUm9vdE5vZGUoUmVtb3RlTGF5ZXJUcmVlTm9kZSog
cm9vdE5vZGUpCiB7CiAgICAgW21fY29udGVudFZpZXcgX3NldEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdSb290Vmlldzpyb290Tm9kZSA/IHJvb3ROb2RlLT51aVZpZXcoKSA6IG5pbF07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAxMWE3NDY3
MzlmNzZiZjcyM2MzYmE4MDExNmFkZGRlOTNhYjQ4MjEwLi5iOWJkNzBjOWJlZTEwNjllMWI0ZjEy
MzA5OGI5Y2FlMTJkNjQ4N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KQEAgLTk4MSw5ICs5ODEsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KHVpbnQzMl90IGluZGV4LCBib29sIGFsbG93
TXVsdAogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRGb2N1c2VkRWxl
bWVudFNlbGVjdGVkSW5kZXgoaW5kZXgsIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pLCBtX3BhZ2VJ
RCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChj
b25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9w
dXBJbmZvKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcGFnZUNsaWVudCgpLmRpZFBl
cmZvcm1EaWN0aW9uYXJ5TG9va3VwKGRpY3Rpb25hcnlQb3B1cEluZm8pOwogfQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2F2ZVBERlRvVGVtcG9yYXJ5Rm9sZGVyQW5kT3BlbldpdGhOYXRpdmVBcHBs
aWNhdGlvbihjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBjb25zdCBTdHJpbmcmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IDhjZTU2NWZiOTU2ZjM2Y2I3
NTJlZjgxMWExMjQ1ZWI1NWRkY2Y5YjMuLjM2YzliMzUyNjEyODhiZDVlMzE2OTFlZGYwMWU4OTZh
NGZhNGMxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1dlYlBhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KQEAgLTE3NSw2ICsxNzUsMTAgQEAgRGljdGlvbmFyeVBv
cHVwSW5mbyBXZWJQYWdlOjpkaWN0aW9uYXJ5UG9wdXBJbmZvRm9yUmFuZ2UoRnJhbWUmIGZyYW1l
LCBSYW5nZSYgcmEKICAgICBkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcgPSBz
Y2FsZWROU0F0dHJpYnV0ZWRTdHJpbmc7CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogICAgIAor
I2lmIFBMQVRGT1JNKElPU01BQykKKyAgICBkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRT
dHJpbmcgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdp
dGhTdHJpbmc6cmFuZ2UudGV4dCgpXSk7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TTUFDKQorICAg
IAogICAgIGVkaXRvci5zZXRJc0dldHRpbmdEaWN0aW9uYXJ5UG9wdXBJbmZvKGZhbHNlKTsKICAg
ICByZXR1cm4gZGljdGlvbmFyeVBvcHVwSW5mbzsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359102</attachid>
            <date>2019-01-14 17:15:58 -0800</date>
            <delta_ts>2019-01-14 17:27:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193408-20190114171558.patch</filename>
            <type>text/plain</type>
            <size>21330</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMzMxMzFjMTdmZjNk
MjFjYjk1MDUxMzgxYzAwZDU4YTYwNTg4OC4uNjY3NmZkYTA3NTMzN2QwNzk2ZGQyYTI3ZjNmZDgz
NzllNzZmMjg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAxLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVh
bCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaU9TTWFjIGFuZCBSZXZlYWwgYXJlIGN1cnJlbnRseSBub3QgdGVzdGFibGUu
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSByZXZlYWwgU1BJIHNwZWNpZmljYWxseSBm
b3IgaU9TTWFjLgorICAgICAgICBTaG93IHRoZSBjb250cm9sbGVyIHdoZW4gY2FsbGVkLCBhbmQg
aW1wbGVtZW50IHRoZSBkZWxlZ2F0ZSB0byAKKyAgICAgICAgY29ycmVjdGx5IHJlLXBhaW50IHRo
ZSBjb250ZW50IHdpdGggdGhlIGF1dG8tZ2VuZXJhdGVkIGhpZ2hsaWdodCBmcm9tCisgICAgICAg
IHRoZSByZXZlYWwgZnJhbWV3b3JrLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW06
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6dmll
dzpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHNldEltYWdlOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0UmVjdHNGb3JJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgc3RhcnRIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0SXRlbTp3aXRoUHJvZ3Jlc3M6XSk6Cisg
ICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBjb21wbGV0ZUhpZ2hsaWdodGluZ0l0ZW06XSk6
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBzdG9wSGlnaGxpZ2h0aW5nSXRlbTpdKToK
KyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhpZ2hsaWdodFJhbmdlQ2hhbmdlZEZvckl0
ZW06XSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBoaWdobGlnaHRpbmddKToKKyAg
ICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGRyYXdIaWdobGlnaHRDb250ZW50Rm9ySXRlbTpj
b250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1
cCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oOgorCiAyMDE5LTAx
LTExICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
R2FyYmxlZCByZW5kZXJpbmcgb24gWW91dHViZSB3aGlsZSBzY3JvbGxpbmcgdW5kZXIgWDExLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggNWExMGQ3NDkxNTk5MDY2MTI5NGU5MjBkODdlYWI4MTAwMmIy
N2VmYi4uYjQyNjE1YWVlNTA0Njg1ZGE2ODkwMDk3ZDg1ZmMyYTc4YjJhNDA3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMTQgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUmV2ZWFsIHN1cHBvcnQgaW4g
aU9TTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTM0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYWRkaXRpb25hbCBuZWVkZWQgU1BJLgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9SZXZl
YWxTUEkuaDoKKwogMjAxOS0wMS0xMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBPdmVycmlkZSB0aGUgc2Vzc2lvbiBjb25maWd1cmF0aW9uIGZvciBjb29r
aWVBY2NlcHRQb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDUzY2MzM2M2OTI3ZTYxYWE0ZTY5ZGFlOTBkYTgw
NTEyNTdkZTkyNS4uZmMxNTUyNGNkOWFkMTlmOTg3ZDA4NDQ2MjA5OTc1N2I2ZTJjODAwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0wMS0xNCAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBSZXZlYWwgc3VwcG9ydCBpbiBpT1NN
YWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBj
YWxscyB0byBEaWN0aW9uYXJ5TG9va3VwIGZyb20gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25h
cnlMb29rdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JS
YW5nZSk6CisKIDIwMTktMDEtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW50cm9kdWNlIElETCBmaWxlcyBmb3IgcnVudGltZS1lbmFibGVkIFVu
ZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbSBKYXZhU2NyaXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWI4NGU4OTBkZTIwYjJlYmNj
NmE4MjNkYzZkZTVlMzdlZDEyNjc2NC4uMjI5MmU1NjJlMmFhMzQxZGJmYjA3YmQzMmI1OGQwNjFi
MDAyMTgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMTUsNiArMTE1LDkgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0dm9zID0g
JChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2
c2ltdWxhdG9yID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpOwogV0tfT1BF
TkdMX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKK1dLX1VJS0lUTUFDX0xE
RkxBR1MgPSAkKFdLX1VJS0lUTUFDX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19V
SUtJVE1BQ19MREZMQUdTX2lvc21hYyA9IC1mcmFtZXdvcmsgVUlLaXRNYWNIZWxwZXI7CisKIFdL
X1NZU1RFTV9DT05GSUdVUkFUSU9OX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9DT05GSUdVUkFUSU9O
X0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19TWVNURU1fQ09ORklHVVJBVElPTl9M
REZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgU3lzdGVtQ29uZmlndXJhdGlvbjsKIApAQCAtMTI2
LDcgKzEyOSw3IEBAIFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRU
SU5HX0xERkxBR1NfJChXS19IQVZFX1VSTF9GT1JNQVRUSU5HCiBXS19VUkxfRk9STUFUVElOR19M
REZMQUdTX1lFUyA9IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKIAogLy8gRklYTUU6IFJlZHVj
ZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnRzIDxyZGFyOi8vcHJvYmxlbS8zMTgyMzk2
OT4KLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdP
UktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZMQUdTKSAtbHNxbGl0ZTMgLWxv
YmpjIC1sQU5HTEUgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2Fi
bGVfY2xpZW50IFdlYktpdExlZ2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
bGliUEFMLmEgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1l
d29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRp
b24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgTWV0YWwgJChPVEhFUl9MREZMQUdTX1BM
QVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19Q
TEFURk9STV9OQU1FKSkgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BUFBTVVBQT1JUX0xERkxB
R1MpICQoV0tfQVVESU9fVU5JVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NP
UkVfVUlfTERGTEFHUykgJChXS19EQVRBX0RFVEVDVE9SU19DT1JFX0xERkxBR1MpICQoV0tfR1JB
UEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19JT1NVUkZBQ0VfTERGTEFHUykgJChXS19MSUJX
RUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01P
QklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoV0tfU1lTVEVNX0NP
TkZJR1VSQVRJT05fTERGTEFHUykgJChXS19TWVNURU1fUFJFVklFV19MREZMQUdTKSAkKFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1MpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdL
X1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAkKFdLX1VOREVGSU5FRF9TWU1CT0xTX0xE
RkxBR1MpIC1sc3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3Jl
VGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9saWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3
b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0
IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNZXRh
bCAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERG
TEFHU19QTEFURk9STV8kKFdLX1BMQVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAk
KFdLX0FQUFNVUFBPUlRfTERGTEFHUykgJChXS19BVURJT19VTklUX0xERkxBR1MpICQoV0tfQ0FS
Qk9OX0xERkxBR1MpICQoV0tfQ09SRV9VSV9MREZMQUdTKSAkKFdLX0RBVEFfREVURUNUT1JTX0NP
UkVfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFD
RV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19PUEVOR0xfTERG
TEFHUykgJChXS19TWVNURU1fQ09ORklHVVJBVElPTl9MREZMQUdTKSAkKFdLX1NZU1RFTV9QUkVW
SUVXX0xERkxBR1MpICQoV0tfVUlLSVRNQUNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19M
REZMQUdTKTsKIAogT1RIRVJfTERGTEFHU19QTEFURk9STV9jb2NvYXRvdWNoID0gLWFsbG93YWJs
ZV9jbGllbnQgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93YWJsZV9jbGll
bnQgQ2FzYWJsYW5jYSAtYWxsb3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJsZV9jbGllbnQg
VFZCb29rcyAtYWxsb3dhYmxlX2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVu
dCBXZWJLaXRUZXN0UnVubmVyIC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRBUEk7CiBPVEhF
Ul9MREZMQUdTX1BMQVRGT1JNX21hY29zeCA9IC1zdWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxs
YSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9S
ZXZlYWxTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5o
CmluZGV4IDgyYjdjNGEwOTFiYzlkZGJjOTQ2MmI1ODcxOWFiNTMzOTFiNDcwZjQuLjM5ZGJhNWM3
YjY4OTA1ZDBiMGJkMDNiODdjNTljZjc3YzYwYTFjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCkBAIC00NCw5ICs0NCw5IEBAIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChSZXZlYWxDb3JlLCBSVlNlbGVjdGlvbikKICNpbXBvcnQgPFJldmVhbC9S
VlByZXNlbnRlci5oPgogI2ltcG9ydCA8UmV2ZWFsL1JldmVhbC5oPgogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKyNpbXBvcnQgPFJldmVhbENvcmUvUlZJdGVtX1ByaXZhdGUuaD4KICNpbXBvcnQg
PFJldmVhbENvcmUvUlZTZWxlY3Rpb24uaD4KICNpbXBvcnQgPFJldmVhbENvcmUvUmV2ZWFsQ29y
ZS5oPgotCiAjZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQppbmRleCA2NzFhYzlh
YjMwYTU5ZmRhODk0MWYzODQ1YzNlYThiYmE5ZTU0ZjIxLi42NjEzZTA1NDk1ZTY1YmIwYTBiN2M2
YTRiZDllZjYwZGM3NzQyNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9EaWN0aW9uYXJ5TG9va3VwLm1tCkBAIC00NSwxNyArNDUsMjIgQEAKICNpbXBvcnQgIlZpc2li
bGVQb3NpdGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVNlbGVjdGlvbi5oIgogI2ltcG9ydCAiVmlz
aWJsZVVuaXRzLmgiCisjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0xv
b2t1cFNQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi9SZWZQdHIuaD4KIAogI2lmICFQTEFURk9STShXQVRDSCkKLQogI2ltcG9ydCA8UERGS2l0
L1BERktpdC5oPgotCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdBVENIKQogCisjaWYgUExBVEZPUk0o
SU9TTUFDKQorZXh0ZXJuICJDIiB7CisjaW1wb3J0IDxVSUtpdE1hY0hlbHBlci9VSU5TUmV2ZWFs
Q29udHJvbGxlci5oPgorfQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU01BQykKKwogI2lmIFBMQVRG
T1JNKE1BQykKIAogQGludGVyZmFjZSBXZWJSZXZlYWxIaWdobGlnaHQgPFJWUHJlc2VudGVySGln
aGxpZ2h0RGVsZWdhdGU+IDogTlNPYmplY3QgewpAQCAtMTQxLDcgKzE0NiwxMjAgQEAgLSAodm9p
ZClyZXZlYWxDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCBzdG9wSGlnaGxp
Z2h0aW5nSXRlbTooUlZJdGUKIAogQGVuZAogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorI2Vs
aWYgUExBVEZPUk0oSU9TTUFDKSAvLyBQTEFURk9STShNQUMpCisKK0BpbnRlcmZhY2UgV2ViUmV2
ZWFsSGlnaGxpZ2h0IDxVSVJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+IDogTlNPYmplY3Qg
eworQHByaXZhdGUKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IF9pbWFnZTsKKyAgICBDR1Jl
Y3QgX2hpZ2hsaWdodFJlY3Q7CisgICAgQk9PTCBfaGlnaGxpZ2h0aW5nOworICAgIFVJVmlldyAq
X3ZpZXc7Cit9CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IGhpZ2hs
aWdodFJlY3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyAqdmlldzsK
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdo
dFJlY3QgdmlldzooVUlWaWV3ICopdmlldzsKKy0gKHZvaWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJD
b3JlOjpJbWFnZT4mJilpbWFnZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViUmV2ZWFs
SGlnaGxpZ2h0CisKK0BzeW50aGVzaXplIGhpZ2hsaWdodFJlY3Q9X2hpZ2hsaWdodFJlY3Q7CitA
c3ludGhlc2l6ZSB2aWV3PV92aWV3OworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhIaWdobGln
aHRSZWN0OihOU1JlY3QpaGlnaGxpZ2h0UmVjdCB2aWV3OihVSVZpZXcgKil2aWV3Cit7CisgICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisg
ICAgX2hpZ2hsaWdodFJlY3QgPSBoaWdobGlnaHRSZWN0OworICAgIF92aWV3ID0gdmlldzsKKyAg
ICBfaGlnaGxpZ2h0aW5nID0gTk87CisgICAgCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZv
aWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4mJilpbWFnZQoreworICAgIF9pbWFn
ZSA9IFdURk1vdmUoaW1hZ2UpOworfQorCistIChOU0FycmF5IDxOU1ZhbHVlICo+ICopaGlnaGxp
Z2h0UmVjdHNGb3JJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgVU5VU0VEX1BBUkFNKGl0ZW0p
OworICAgIHJldHVybiBAW1tOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpzZWxmLmhpZ2hsaWdodFJl
Y3RdXTsKK30KKworLSAodm9pZClzdGFydEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0K
K3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAgX2hpZ2hsaWdodGluZyA9IFlFUzsKK30K
KworLSAodm9pZCloaWdobGlnaHRJdGVtOihSVkl0ZW0gKilpdGVtIHdpdGhQcm9ncmVzczooQ0dG
bG9hdClwcm9ncmVzcworeworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsKKyAgICBVTlVTRURfUEFS
QU0ocHJvZ3Jlc3MpOworfQorCistICh2b2lkKWNvbXBsZXRlSGlnaGxpZ2h0aW5nSXRlbTooUlZJ
dGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsKK30KKworLSAodm9pZClzdG9w
SGlnaGxpZ2h0aW5nSXRlbTooUlZJdGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShpdGVt
KTsKKyAgICBfaGlnaGxpZ2h0aW5nID0gTk87Cit9CisKKy0gKHZvaWQpaGlnaGxpZ2h0UmFuZ2VD
aGFuZ2VkRm9ySXRlbTooUlZJdGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsK
K30KKworLSAoQk9PTCloaWdobGlnaHRpbmcKK3sKKyAgICByZXR1cm4gX2hpZ2hsaWdodGluZzsK
K30KKworLSAodm9pZClkcmF3SGlnaGxpZ2h0Q29udGVudEZvckl0ZW06KFJWSXRlbSAqKWl0ZW0g
Y29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKK3sKKyAgICBOU0FycmF5IDxOU1ZhbHVlICo+
ICpyZWN0cyA9IFtzZWxmIGhpZ2hsaWdodFJlY3RzRm9ySXRlbTppdGVtXTsKKyAgICBpZiAoIXJl
Y3RzLmNvdW50KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgVUlWaWV3ICp0ZXh0Q29udGVu
dFZpZXcgPSBzZWxmLnZpZXc7CisgICAgCisgICAgQ0dSZWN0IGhpZ2hsaWdodFJlY3QgPSByZWN0
cy5maXJzdE9iamVjdC5DR1JlY3RWYWx1ZTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDE7IGkg
PCByZWN0cy5jb3VudDsgaSsrKQorICAgICAgICBoaWdobGlnaHRSZWN0ID0gQ0dSZWN0VW5pb24o
aGlnaGxpZ2h0UmVjdCwgcmVjdHNbaV0uQ0dSZWN0VmFsdWUpOworICAgIGhpZ2hsaWdodFJlY3Qg
PSBbdGV4dENvbnRlbnRWaWV3IGNvbnZlcnRSZWN0OmhpZ2hsaWdodFJlY3QgZnJvbVZpZXc6bmls
XTsKKyAgICAKKyAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOworICAgIENHQWZmaW5l
VHJhbnNmb3JtIGNvbnRleHRUcmFuc2Zvcm0gPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7Cisg
ICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0
eTsKKyAgICBDR0Zsb2F0IGJhY2tpbmdTY2FsZSA9IGNvbnRleHRUcmFuc2Zvcm0uYTsKKyAgICBD
R0Zsb2F0IGlPU01hY1NjYWxlRmFjdG9yID0gMC43NzsKKyAgICB0cmFuc2Zvcm0gPSBDR0FmZmlu
ZVRyYW5zZm9ybVNjYWxlKHRyYW5zZm9ybSwgaU9TTWFjU2NhbGVGYWN0b3IsIGlPU01hY1NjYWxl
RmFjdG9yKTsKKyAgICBDR0NvbnRleHRTZXRDVE0oY29udGV4dCwgdHJhbnNmb3JtKTsKKyAgICAK
KyAgICBmb3IgKE5TVmFsdWUgKnYgaW4gcmVjdHMpIHsKKyAgICAgICAgQ0dSZWN0IGltZ1NyY1Jl
Y3QgPSBbdGV4dENvbnRlbnRWaWV3IGNvbnZlcnRSZWN0OnYuQ0dSZWN0VmFsdWUgZnJvbVZpZXc6
bmlsXTsKKyAgICAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlUmVmID0gX2ltYWdlLT5u
YXRpdmVJbWFnZSgpOworICAgICAgICBDR1JlY3Qgb3JpZ2luID0gQ0dSZWN0TWFrZShiYWNraW5n
U2NhbGUgKiAoaW1nU3JjUmVjdC5vcmlnaW4ueCAtIGhpZ2hsaWdodFJlY3Qub3JpZ2luLngpLCBi
YWNraW5nU2NhbGUgKiAoaW1nU3JjUmVjdC5vcmlnaW4ueSAtIGhpZ2hsaWdodFJlY3Qub3JpZ2lu
LnkpLCAgYmFja2luZ1NjYWxlICogKGhpZ2hsaWdodFJlY3Quc2l6ZS53aWR0aCksIGJhY2tpbmdT
Y2FsZSooaGlnaGxpZ2h0UmVjdC5zaXplLmhlaWdodCkpOworICAgICAgICBDR0NvbnRleHREcmF3
SW1hZ2UoY29udGV4dCwgb3JpZ2luLCBpbWFnZVJlZi5nZXQoKSk7CisgICAgfQorICAgIAorICAg
IENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CisgICAgCit9CisKK0BlbmQKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU01BQykKIAogI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCiAKQEAg
LTMyMSw3ICs0MzksNyBAQCBzdGQ6OnR1cGxlPE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqPiBE
aWN0aW9uYXJ5TG9va3VwOjpzdHJpbmdGb3JQREZTZWxlY3Rpb24oUAogICAgIAogI2VuZGlmIC8v
ICFQTEFURk9STShXQVRDSCkKIAotc3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBP
ckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBjcmVhdGVBbmltYXRpb25Db250cm9sbGVy
LCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcg
KnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5k
aWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0
KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yKQorc3RhdGljIFdLUmV2ZWFsQ29udHJv
bGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBjcmVhdGVBbmlt
YXRpb25Db250cm9sbGVyLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9w
dXBJbmZvLCBSZXZlYWxWaWV3ICp2aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dElu
ZGljYXRvciYpPiYgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6
OkZ1bmN0aW9uPEZsb2F0UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9u
Q2FsbGJhY2ssIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikKIHsK
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgCkBAIC0zNzksNyArNDk3LDI1
IEBAIHN0YXRpYyBXS1JldmVhbENvbnRyb2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKGJvb2wgY3JlYXRlQW5pbWF0CiAgICAgW3ByZXNlbnRlciByZXZlYWxJdGVtOml0
ZW0uZ2V0KCkgZG9jdW1lbnRDb250ZXh0Om5pbCBwcmVzZW50aW5nQ29udGV4dDpjb250ZXh0Lmdl
dCgpIG9wdGlvbnM6bmlsXTsKICAgICByZXR1cm4gbmlsOwogICAgIAotI2Vsc2UgLy8gUExBVEZP
Uk0oTUFDKQorI2VsaWYgUExBVEZPUk0oSU9TTUFDKQorICAgIAorICAgIFVOVVNFRF9QQVJBTSh0
ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2spOworICAgIFVOVVNFRF9QQVJBTShyb290
Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKGNsZWFyVGV4
dEluZGljYXRvcik7CisgICAgCisgICAgVU5VU0VEX1BBUkFNKGNyZWF0ZUFuaW1hdGlvbkNvbnRy
b2xsZXIpOworCisgICAgYXV0byB0ZXh0SW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRl
KGRpY3Rpb25hcnlQb3B1cEluZm8udGV4dEluZGljYXRvcik7CisgICAgCisgICAgUmV0YWluUHRy
PFdlYlJldmVhbEhpZ2hsaWdodD4gd2ViSGlnaGxpZ2h0ID0gYWRvcHROUyhbW1dlYlJldmVhbEhp
Z2hsaWdodCBhbGxvY10gaW5pdFdpdGhIaWdobGlnaHRSZWN0Olt2aWV3IGNvbnZlcnRSZWN0OnRl
eHRJbmRpY2F0b3ItPnNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSB0b1ZpZXc6
bmlsXSB2aWV3OnZpZXddKTsKKyAgICAKKyAgICBSZXRhaW5QdHI8UlZJdGVtPiBpdGVtID0gYWRv
cHROUyhbYWxsb2NSVkl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoVGV4dDpkaWN0aW9uYXJ5UG9wdXBJ
bmZvLmF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkuc3RyaW5nIHNlbGVjdGVkUmFuZ2U6TlNNYWtlUmFu
Z2UoMCwgMCldKTsKKyAgICAKKyAgICBbd2ViSGlnaGxpZ2h0IHNldEltYWdlOnRleHRJbmRpY2F0
b3ItPmNvbnRlbnRJbWFnZSgpXTsKKyAgICBbVUlOU1NoYXJlZFJldmVhbENvbnRyb2xsZXIoKSBy
ZXZlYWxJdGVtOml0ZW0uZ2V0KCkgbG9jYXRpb25JbldpbmRvdzpkaWN0aW9uYXJ5UG9wdXBJbmZv
Lm9yaWdpbiB3aW5kb3c6dmlldy53aW5kb3cgaGlnaGxpZ2h0ZXI6KGlkPFVJUlZQcmVzZW50ZXJI
aWdobGlnaHREZWxlZ2F0ZT4pIHdlYkhpZ2hsaWdodC5nZXQoKV07CisgICAgcmV0dXJuIG5pbDsK
KyAgICAKKyNlbHNlIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgCiAgICAgVU5VU0VEX1BB
UkFNKGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIpOwogICAgIFVOVVNFRF9QQVJBTShkaWN0aW9u
YXJ5UG9wdXBJbmZvKTsKQEAgLTM4OSwxMyArNTI1LDEzIEBAIHN0YXRpYyBXS1JldmVhbENvbnRy
b2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9sbGVyKGJvb2wgY3JlYXRlQW5p
bWF0CiAgICAgVU5VU0VEX1BBUkFNKGNsZWFyVGV4dEluZGljYXRvcik7CiAgICAgCiAgICAgcmV0
dXJuIG5pbDsKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCisjZW5kaWYgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIAogfQog
Ci12b2lkIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJh
Y2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1Rv
Vmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0
SW5kaWNhdG9yKQordm9pZCBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoY29uc3QgRGljdGlv
bmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgUmV2ZWFsVmlldyAqdmlldywgY29u
c3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3ImKT4mIHRleHRJbmRpY2F0b3JJbnN0
YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0
KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjbGVhclRleHRJbmRpY2F0b3IpCiB7CiAgICAgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRp
b25Db250cm9sbGVyKGZhbHNlLCBkaWN0aW9uYXJ5UG9wdXBJbmZvLCB2aWV3LCB0ZXh0SW5kaWNh
dG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNr
LCBXVEZNb3ZlKGNsZWFyVGV4dEluZGljYXRvcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oCmluZGV4IGY4Zjc2MWNkYzgxYWViZDNkZjA4ODM3
YTMyMzFjMDhmMzVhNGZlYjkuLjE2MzE5NjdmZjkyYWRmOGE4ODk1ZjdmZWM1NzgyZDhjNjEyM2E2
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29r
dXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLmgK
QEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBPQkpDX0NM
QVNTIE5TVmlldzsKK09CSkNfQ0xBU1MgVUlWaWV3OwogT0JKQ19DTEFTUyBQREZTZWxlY3Rpb247
CiAKICNpZiBQTEFURk9STShNQUMpCiB0eXBlZGVmIGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbkNvbnRyb2xsZXI+IFdLUmV2ZWFsQ29udHJvbGxlcjsKK3VzaW5nIFJldmVhbFZpZXcgPSBO
U1ZpZXc7CiAjZWxzZQogdHlwZWRlZiBpZCBXS1JldmVhbENvbnRyb2xsZXI7Cit1c2luZyBSZXZl
YWxWaWV3ID0gVUlWaWV3OwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTYsNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogU2hvdWxk
IG1vdmUvdW5pZnkgZGljdGlvbmFyeVBvcHVwSW5mb0ZvclJhbmdlIGhlcmUgdG9vLgogCi0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2hvd1BvcHVwKGNvbnN0IERpY3Rpb25hcnlQb3B1
cEluZm8mLCBOU1ZpZXcgKiwgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3Im
KT4mIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlv
bjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNr
ID0gbnVsbHB0ciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yID0g
bnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2hvd1BvcHVwKGNvbnN0
IERpY3Rpb25hcnlQb3B1cEluZm8mLCBSZXZlYWxWaWV3ICosIGNvbnN0IFdURjo6RnVuY3Rpb248
dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ss
IGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmll
d0NvbnZlcnNpb25DYWxsYmFjayA9IG51bGxwdHIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNs
ZWFyVGV4dEluZGljYXRvciA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIGhpZGVQb3B1cCgpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCAxNDk3MTRhYjFkMjI2NWE2ODM0ZDU3ZWY0N2IxMTZlYTRl
MjllMzUxLi5lYWQ5MTVmMDk0NWRiZGE1YmI2NjY0OTdkNTMyZmE5NDAyMjI3ZmJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zMDMsNiArMzAzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0
b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBk
aWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJ
bmZvJikgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikgPSAwOwpAQCAtMzEyLDcgKzMx
NCw2IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHBsdWdp
bkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1
dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChj
b25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25G
b3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0KSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVy
bmF0aXZlVGV4dCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAppbmRleCA4NzdjODEzN2YzMzE2NTgyYWM1NDMzZWVkNWIxN2JkYWIyNTM5
ZDlmLi41ZGE2Zjk5YmY1MjQwMjMzMDNkODcxZGEwN2JmNzJlMTZhZmNiNTI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTM0LDYg
KzEzNCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25zdCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgbGF5ZXJUcmVl
Q29tbWl0Q29tcGxldGUoKSBvdmVycmlkZTsKKyAgICAgICAgCisgICAgdm9pZCBkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIGNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpIG92ZXJyaWRlOwog
ICAgIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50Piwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
JiwgZG91YmxlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA3ZTA2M2RhMWQzOGMwNWVhMzZmMjEwOWIyMGZkNzQx
NGMyMGI3NTMyLi42Y2JiNDA0YjRhN2RkMDFlYTZhYzBjYzJmYmVkYzM3MjY1NTI0NDQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBA
IC01NCw2ICs1NCw3IEBACiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW1wb3J0
ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0Rvd25sb2FkSW50ZXJuYWwuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+CkBAIC00NTMsNiArNDU0LDE1IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNv
bnN0IExheWVyVHJlZUNvbnRleHQmKQogewogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQ
ZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9u
YXJ5UG9wdXBJbmZvKQoreworI2lmIEVOQUJMRShSRVZFQUwpCisgICAgRGljdGlvbmFyeUxvb2t1
cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIG1fY29udGVudFZpZXcsIG51bGxwdHIp
OworI2VsaWYKKyAgICBVTlVTRURfUEFSQU0oZGljdGlvbmFyeVBvcHVwSW5mbyk7CisjZW5kaWYg
Ly8gRU5BQkxFKFJFVkVBTCkKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UmVtb3RlTGF5
ZXJUcmVlUm9vdE5vZGUoUmVtb3RlTGF5ZXJUcmVlTm9kZSogcm9vdE5vZGUpCiB7CiAgICAgW21f
Y29udGVudFZpZXcgX3NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290Vmlldzpyb290Tm9kZSA/
IHJvb3ROb2RlLT51aVZpZXcoKSA6IG5pbF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAxMWE3NDY3MzlmNzZiZjcyM2MzYmE4MDExNmFk
ZGRlOTNhYjQ4MjEwLi5iOWJkNzBjOWJlZTEwNjllMWI0ZjEyMzA5OGI5Y2FlMTJkNjQ4N2M1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAg
LTk4MSw5ICs5ODEsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Rm9jdXNlZEVsZW1lbnRTZWxl
Y3RlZEluZGV4KHVpbnQzMl90IGluZGV4LCBib29sIGFsbG93TXVsdAogICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRGb2N1c2VkRWxlbWVudFNlbGVjdGVkSW5kZXgoaW5k
ZXgsIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvJikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25z
dCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcGFnZUNsaWVudCgpLmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3Vw
KGRpY3Rpb25hcnlQb3B1cEluZm8pOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2F2ZVBERlRv
VGVtcG9yYXJ5Rm9sZGVyQW5kT3BlbldpdGhOYXRpdmVBcHBsaWNhdGlvbihjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tCmluZGV4IDhjZTU2NWZiOTU2ZjM2Y2I3NTJlZjgxMWExMjQ1ZWI1NWRkY2Y5
YjMuLjM2YzliMzUyNjEyODhiZDVlMzE2OTFlZGYwMWU4OTZhNGZhNGMxNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0KQEAgLTE3NSw2ICsxNzUsMTAgQEAgRGljdGlvbmFyeVBvcHVwSW5mbyBXZWJQYWdlOjpkaWN0
aW9uYXJ5UG9wdXBJbmZvRm9yUmFuZ2UoRnJhbWUmIGZyYW1lLCBSYW5nZSYgcmEKICAgICBkaWN0
aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcgPSBzY2FsZWROU0F0dHJpYnV0ZWRTdHJp
bmc7CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogICAgIAorI2lmIFBMQVRGT1JNKElPU01BQykK
KyAgICBkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6cmFuZ2UudGV4dCgp
XSk7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TTUFDKQorICAgIAogICAgIGVkaXRvci5zZXRJc0dl
dHRpbmdEaWN0aW9uYXJ5UG9wdXBJbmZvKGZhbHNlKTsKICAgICByZXR1cm4gZGljdGlvbmFyeVBv
cHVwSW5mbzsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359103</attachid>
            <date>2019-01-14 17:27:38 -0800</date>
            <delta_ts>2019-01-15 11:39:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193408-20190114172738.patch</filename>
            <type>text/plain</type>
            <size>21330</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMzMxMzFjMTdmZjNk
MjFjYjk1MDUxMzgxYzAwZDU4YTYwNTg4OC4uNjY3NmZkYTA3NTMzN2QwNzk2ZGQyYTI3ZjNmZDgz
NzllNzZmMjg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAxLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVh
bCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaU9TTWFjIGFuZCBSZXZlYWwgYXJlIGN1cnJlbnRseSBub3QgdGVzdGFibGUu
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSByZXZlYWwgU1BJIHNwZWNpZmljYWxseSBm
b3IgaU9TTWFjLgorICAgICAgICBTaG93IHRoZSBjb250cm9sbGVyIHdoZW4gY2FsbGVkLCBhbmQg
aW1wbGVtZW50IHRoZSBkZWxlZ2F0ZSB0byAKKyAgICAgICAgY29ycmVjdGx5IHJlLXBhaW50IHRo
ZSBjb250ZW50IHdpdGggdGhlIGF1dG8tZ2VuZXJhdGVkIGhpZ2hsaWdodCBmcm9tCisgICAgICAg
IHRoZSByZXZlYWwgZnJhbWV3b3JrLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW06
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6dmll
dzpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHNldEltYWdlOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0UmVjdHNGb3JJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgc3RhcnRIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0SXRlbTp3aXRoUHJvZ3Jlc3M6XSk6Cisg
ICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBjb21wbGV0ZUhpZ2hsaWdodGluZ0l0ZW06XSk6
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBzdG9wSGlnaGxpZ2h0aW5nSXRlbTpdKToK
KyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhpZ2hsaWdodFJhbmdlQ2hhbmdlZEZvckl0
ZW06XSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBoaWdobGlnaHRpbmddKToKKyAg
ICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGRyYXdIaWdobGlnaHRDb250ZW50Rm9ySXRlbTpj
b250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1
cCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oOgorCiAyMDE5LTAx
LTExICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
R2FyYmxlZCByZW5kZXJpbmcgb24gWW91dHViZSB3aGlsZSBzY3JvbGxpbmcgdW5kZXIgWDExLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggNWExMGQ3NDkxNTk5MDY2MTI5NGU5MjBkODdlYWI4MTAwMmIy
N2VmYi4uYjQyNjE1YWVlNTA0Njg1ZGE2ODkwMDk3ZDg1ZmMyYTc4YjJhNDA3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMTQgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUmV2ZWFsIHN1cHBvcnQgaW4g
aU9TTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTM0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYWRkaXRpb25hbCBuZWVkZWQgU1BJLgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9SZXZl
YWxTUEkuaDoKKwogMjAxOS0wMS0xMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBPdmVycmlkZSB0aGUgc2Vzc2lvbiBjb25maWd1cmF0aW9uIGZvciBjb29r
aWVBY2NlcHRQb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDUzY2MzM2M2OTI3ZTYxYWE0ZTY5ZGFlOTBkYTgw
NTEyNTdkZTkyNS4uZmMxNTUyNGNkOWFkMTlmOTg3ZDA4NDQ2MjA5OTc1N2I2ZTJjODAwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0wMS0xNCAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBSZXZlYWwgc3VwcG9ydCBpbiBpT1NN
YWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBj
YWxscyB0byBEaWN0aW9uYXJ5TG9va3VwIGZyb20gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25h
cnlMb29rdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JS
YW5nZSk6CisKIDIwMTktMDEtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW50cm9kdWNlIElETCBmaWxlcyBmb3IgcnVudGltZS1lbmFibGVkIFVu
ZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbSBKYXZhU2NyaXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWI4NGU4OTBkZTIwYjJlYmNj
NmE4MjNkYzZkZTVlMzdlZDEyNjc2NC4uMjI5MmU1NjJlMmFhMzQxZGJmYjA3YmQzMmI1OGQwNjFi
MDAyMTgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMTUsNiArMTE1LDkgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0dm9zID0g
JChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2
c2ltdWxhdG9yID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpOwogV0tfT1BF
TkdMX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKK1dLX1VJS0lUTUFDX0xE
RkxBR1MgPSAkKFdLX1VJS0lUTUFDX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19V
SUtJVE1BQ19MREZMQUdTX2lvc21hYyA9IC1mcmFtZXdvcmsgVUlLaXRNYWNIZWxwZXI7CisKIFdL
X1NZU1RFTV9DT05GSUdVUkFUSU9OX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9DT05GSUdVUkFUSU9O
X0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19TWVNURU1fQ09ORklHVVJBVElPTl9M
REZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgU3lzdGVtQ29uZmlndXJhdGlvbjsKIApAQCAtMTI2
LDcgKzEyOSw3IEBAIFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRU
SU5HX0xERkxBR1NfJChXS19IQVZFX1VSTF9GT1JNQVRUSU5HCiBXS19VUkxfRk9STUFUVElOR19M
REZMQUdTX1lFUyA9IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKIAogLy8gRklYTUU6IFJlZHVj
ZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnRzIDxyZGFyOi8vcHJvYmxlbS8zMTgyMzk2
OT4KLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdP
UktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZMQUdTKSAtbHNxbGl0ZTMgLWxv
YmpjIC1sQU5HTEUgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2Fi
bGVfY2xpZW50IFdlYktpdExlZ2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
bGliUEFMLmEgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1l
d29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRp
b24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgTWV0YWwgJChPVEhFUl9MREZMQUdTX1BM
QVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19Q
TEFURk9STV9OQU1FKSkgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BUFBTVVBQT1JUX0xERkxB
R1MpICQoV0tfQVVESU9fVU5JVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NP
UkVfVUlfTERGTEFHUykgJChXS19EQVRBX0RFVEVDVE9SU19DT1JFX0xERkxBR1MpICQoV0tfR1JB
UEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19JT1NVUkZBQ0VfTERGTEFHUykgJChXS19MSUJX
RUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01P
QklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoV0tfU1lTVEVNX0NP
TkZJR1VSQVRJT05fTERGTEFHUykgJChXS19TWVNURU1fUFJFVklFV19MREZMQUdTKSAkKFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1MpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdL
X1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAkKFdLX1VOREVGSU5FRF9TWU1CT0xTX0xE
RkxBR1MpIC1sc3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3Jl
VGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9saWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3
b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0
IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNZXRh
bCAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERG
TEFHU19QTEFURk9STV8kKFdLX1BMQVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAk
KFdLX0FQUFNVUFBPUlRfTERGTEFHUykgJChXS19BVURJT19VTklUX0xERkxBR1MpICQoV0tfQ0FS
Qk9OX0xERkxBR1MpICQoV0tfQ09SRV9VSV9MREZMQUdTKSAkKFdLX0RBVEFfREVURUNUT1JTX0NP
UkVfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFD
RV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19PUEVOR0xfTERG
TEFHUykgJChXS19TWVNURU1fQ09ORklHVVJBVElPTl9MREZMQUdTKSAkKFdLX1NZU1RFTV9QUkVW
SUVXX0xERkxBR1MpICQoV0tfVUlLSVRNQUNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19M
REZMQUdTKTsKIAogT1RIRVJfTERGTEFHU19QTEFURk9STV9jb2NvYXRvdWNoID0gLWFsbG93YWJs
ZV9jbGllbnQgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93YWJsZV9jbGll
bnQgQ2FzYWJsYW5jYSAtYWxsb3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJsZV9jbGllbnQg
VFZCb29rcyAtYWxsb3dhYmxlX2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVu
dCBXZWJLaXRUZXN0UnVubmVyIC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRBUEk7CiBPVEhF
Ul9MREZMQUdTX1BMQVRGT1JNX21hY29zeCA9IC1zdWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxs
YSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9S
ZXZlYWxTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5o
CmluZGV4IDgyYjdjNGEwOTFiYzlkZGJjOTQ2MmI1ODcxOWFiNTMzOTFiNDcwZjQuLjM5ZGJhNWM3
YjY4OTA1ZDBiMGJkMDNiODdjNTljZjc3YzYwYTFjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCkBAIC00NCw5ICs0NCw5IEBAIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChSZXZlYWxDb3JlLCBSVlNlbGVjdGlvbikKICNpbXBvcnQgPFJldmVhbC9S
VlByZXNlbnRlci5oPgogI2ltcG9ydCA8UmV2ZWFsL1JldmVhbC5oPgogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKyNpbXBvcnQgPFJldmVhbENvcmUvUlZJdGVtX1ByaXZhdGUuaD4KICNpbXBvcnQg
PFJldmVhbENvcmUvUlZTZWxlY3Rpb24uaD4KICNpbXBvcnQgPFJldmVhbENvcmUvUmV2ZWFsQ29y
ZS5oPgotCiAjZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQppbmRleCA2NzFhYzlh
YjMwYTU5ZmRhODk0MWYzODQ1YzNlYThiYmE5ZTU0ZjIxLi42NjEzZTA1NDk1ZTY1YmIwYTBiN2M2
YTRiZDllZjYwZGM3NzQyNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9EaWN0aW9uYXJ5TG9va3VwLm1tCkBAIC00NSwxNyArNDUsMjIgQEAKICNpbXBvcnQgIlZpc2li
bGVQb3NpdGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVNlbGVjdGlvbi5oIgogI2ltcG9ydCAiVmlz
aWJsZVVuaXRzLmgiCisjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0xv
b2t1cFNQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQg
PHd0Zi9SZWZQdHIuaD4KIAogI2lmICFQTEFURk9STShXQVRDSCkKLQogI2ltcG9ydCA8UERGS2l0
L1BERktpdC5oPgotCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdBVENIKQogCisjaWYgUExBVEZPUk0o
SU9TTUFDKQorZXh0ZXJuICJDIiB7CisjaW1wb3J0IDxVSUtpdE1hY0hlbHBlci9VSU5TUmV2ZWFs
Q29udHJvbGxlci5oPgorfQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU01BQykKKwogI2lmIFBMQVRG
T1JNKE1BQykKIAogQGludGVyZmFjZSBXZWJSZXZlYWxIaWdobGlnaHQgPFJWUHJlc2VudGVySGln
aGxpZ2h0RGVsZWdhdGU+IDogTlNPYmplY3QgewpAQCAtMTQxLDcgKzE0NiwxMjAgQEAgLSAodm9p
ZClyZXZlYWxDb250ZXh0OihSVlByZXNlbnRpbmdDb250ZXh0ICopY29udGV4dCBzdG9wSGlnaGxp
Z2h0aW5nSXRlbTooUlZJdGUKIAogQGVuZAogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorI2Vs
aWYgUExBVEZPUk0oSU9TTUFDKSAvLyBQTEFURk9STShNQUMpCisKK0BpbnRlcmZhY2UgV2ViUmV2
ZWFsSGlnaGxpZ2h0IDxVSVJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+IDogTlNPYmplY3Qg
eworQHByaXZhdGUKKyAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IF9pbWFnZTsKKyAgICBDR1Jl
Y3QgX2hpZ2hsaWdodFJlY3Q7CisgICAgQk9PTCBfaGlnaGxpZ2h0aW5nOworICAgIFVJVmlldyAq
X3ZpZXc7Cit9CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IGhpZ2hs
aWdodFJlY3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVmlldyAqdmlldzsK
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdo
dFJlY3QgdmlldzooVUlWaWV3ICopdmlldzsKKy0gKHZvaWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJD
b3JlOjpJbWFnZT4mJilpbWFnZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViUmV2ZWFs
SGlnaGxpZ2h0CisKK0BzeW50aGVzaXplIGhpZ2hsaWdodFJlY3Q9X2hpZ2hsaWdodFJlY3Q7CitA
c3ludGhlc2l6ZSB2aWV3PV92aWV3OworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhIaWdobGln
aHRSZWN0OihOU1JlY3QpaGlnaGxpZ2h0UmVjdCB2aWV3OihVSVZpZXcgKil2aWV3Cit7CisgICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisg
ICAgX2hpZ2hsaWdodFJlY3QgPSBoaWdobGlnaHRSZWN0OworICAgIF92aWV3ID0gdmlldzsKKyAg
ICBfaGlnaGxpZ2h0aW5nID0gTk87CisgICAgCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZv
aWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4mJilpbWFnZQoreworICAgIF9pbWFn
ZSA9IFdURk1vdmUoaW1hZ2UpOworfQorCistIChOU0FycmF5IDxOU1ZhbHVlICo+ICopaGlnaGxp
Z2h0UmVjdHNGb3JJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAgVU5VU0VEX1BBUkFNKGl0ZW0p
OworICAgIHJldHVybiBAW1tOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpzZWxmLmhpZ2hsaWdodFJl
Y3RdXTsKK30KKworLSAodm9pZClzdGFydEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0K
K3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAgX2hpZ2hsaWdodGluZyA9IFlFUzsKK30K
KworLSAodm9pZCloaWdobGlnaHRJdGVtOihSVkl0ZW0gKilpdGVtIHdpdGhQcm9ncmVzczooQ0dG
bG9hdClwcm9ncmVzcworeworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsKKyAgICBVTlVTRURfUEFS
QU0ocHJvZ3Jlc3MpOworfQorCistICh2b2lkKWNvbXBsZXRlSGlnaGxpZ2h0aW5nSXRlbTooUlZJ
dGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsKK30KKworLSAodm9pZClzdG9w
SGlnaGxpZ2h0aW5nSXRlbTooUlZJdGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShpdGVt
KTsKKyAgICBfaGlnaGxpZ2h0aW5nID0gTk87Cit9CisKKy0gKHZvaWQpaGlnaGxpZ2h0UmFuZ2VD
aGFuZ2VkRm9ySXRlbTooUlZJdGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsK
K30KKworLSAoQk9PTCloaWdobGlnaHRpbmcKK3sKKyAgICByZXR1cm4gX2hpZ2hsaWdodGluZzsK
K30KKworLSAodm9pZClkcmF3SGlnaGxpZ2h0Q29udGVudEZvckl0ZW06KFJWSXRlbSAqKWl0ZW0g
Y29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKK3sKKyAgICBOU0FycmF5IDxOU1ZhbHVlICo+
ICpyZWN0cyA9IFtzZWxmIGhpZ2hsaWdodFJlY3RzRm9ySXRlbTppdGVtXTsKKyAgICBpZiAoIXJl
Y3RzLmNvdW50KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgVUlWaWV3ICp0ZXh0Q29udGVu
dFZpZXcgPSBzZWxmLnZpZXc7CisgICAgCisgICAgQ0dSZWN0IGhpZ2hsaWdodFJlY3QgPSByZWN0
cy5maXJzdE9iamVjdC5DR1JlY3RWYWx1ZTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDE7IGkg
PCByZWN0cy5jb3VudDsgaSsrKQorICAgICAgICBoaWdobGlnaHRSZWN0ID0gQ0dSZWN0VW5pb24o
aGlnaGxpZ2h0UmVjdCwgcmVjdHNbaV0uQ0dSZWN0VmFsdWUpOworICAgIGhpZ2hsaWdodFJlY3Qg
PSBbdGV4dENvbnRlbnRWaWV3IGNvbnZlcnRSZWN0OmhpZ2hsaWdodFJlY3QgZnJvbVZpZXc6bmls
XTsKKyAgICAKKyAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOworICAgIENHQWZmaW5l
VHJhbnNmb3JtIGNvbnRleHRUcmFuc2Zvcm0gPSBDR0NvbnRleHRHZXRDVE0oY29udGV4dCk7Cisg
ICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0
eTsKKyAgICBDR0Zsb2F0IGJhY2tpbmdTY2FsZSA9IGNvbnRleHRUcmFuc2Zvcm0uYTsKKyAgICBD
R0Zsb2F0IGlPU01hY1NjYWxlRmFjdG9yID0gMC43NzsKKyAgICB0cmFuc2Zvcm0gPSBDR0FmZmlu
ZVRyYW5zZm9ybVNjYWxlKHRyYW5zZm9ybSwgaU9TTWFjU2NhbGVGYWN0b3IsIGlPU01hY1NjYWxl
RmFjdG9yKTsKKyAgICBDR0NvbnRleHRTZXRDVE0oY29udGV4dCwgdHJhbnNmb3JtKTsKKyAgICAK
KyAgICBmb3IgKE5TVmFsdWUgKnYgaW4gcmVjdHMpIHsKKyAgICAgICAgQ0dSZWN0IGltZ1NyY1Jl
Y3QgPSBbdGV4dENvbnRlbnRWaWV3IGNvbnZlcnRSZWN0OnYuQ0dSZWN0VmFsdWUgZnJvbVZpZXc6
bmlsXTsKKyAgICAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlUmVmID0gX2ltYWdlLT5u
YXRpdmVJbWFnZSgpOworICAgICAgICBDR1JlY3Qgb3JpZ2luID0gQ0dSZWN0TWFrZShiYWNraW5n
U2NhbGUgKiAoaW1nU3JjUmVjdC5vcmlnaW4ueCAtIGhpZ2hsaWdodFJlY3Qub3JpZ2luLngpLCBi
YWNraW5nU2NhbGUgKiAoaW1nU3JjUmVjdC5vcmlnaW4ueSAtIGhpZ2hsaWdodFJlY3Qub3JpZ2lu
LnkpLCAgYmFja2luZ1NjYWxlICogKGhpZ2hsaWdodFJlY3Quc2l6ZS53aWR0aCksIGJhY2tpbmdT
Y2FsZSooaGlnaGxpZ2h0UmVjdC5zaXplLmhlaWdodCkpOworICAgICAgICBDR0NvbnRleHREcmF3
SW1hZ2UoY29udGV4dCwgb3JpZ2luLCBpbWFnZVJlZi5nZXQoKSk7CisgICAgfQorICAgIAorICAg
IENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CisgICAgCit9CisKK0BlbmQKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU01BQykKIAogI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCiAKQEAg
LTMyMSw3ICs0MzksNyBAQCBzdGQ6OnR1cGxlPE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqPiBE
aWN0aW9uYXJ5TG9va3VwOjpzdHJpbmdGb3JQREZTZWxlY3Rpb24oUAogICAgIAogI2VuZGlmIC8v
ICFQTEFURk9STShXQVRDSCkKIAotc3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBP
ckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBjcmVhdGVBbmltYXRpb25Db250cm9sbGVy
LCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcg
KnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5k
aWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0
KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5j
dGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yKQorc3RhdGljIFdLUmV2ZWFsQ29udHJv
bGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBjcmVhdGVBbmlt
YXRpb25Db250cm9sbGVyLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9w
dXBJbmZvLCBSZXZlYWxWaWV3ICp2aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dElu
ZGljYXRvciYpPiYgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6
OkZ1bmN0aW9uPEZsb2F0UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9u
Q2FsbGJhY2ssIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikKIHsK
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAgICAgCkBAIC0zNzksNyArNDk3LDI1
IEBAIHN0YXRpYyBXS1JldmVhbENvbnRyb2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKGJvb2wgY3JlYXRlQW5pbWF0CiAgICAgW3ByZXNlbnRlciByZXZlYWxJdGVtOml0
ZW0uZ2V0KCkgZG9jdW1lbnRDb250ZXh0Om5pbCBwcmVzZW50aW5nQ29udGV4dDpjb250ZXh0Lmdl
dCgpIG9wdGlvbnM6bmlsXTsKICAgICByZXR1cm4gbmlsOwogICAgIAotI2Vsc2UgLy8gUExBVEZP
Uk0oTUFDKQorI2VsaWYgUExBVEZPUk0oSU9TTUFDKQorICAgIAorICAgIFVOVVNFRF9QQVJBTSh0
ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2spOworICAgIFVOVVNFRF9QQVJBTShyb290
Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKGNsZWFyVGV4
dEluZGljYXRvcik7CisgICAgCisgICAgVU5VU0VEX1BBUkFNKGNyZWF0ZUFuaW1hdGlvbkNvbnRy
b2xsZXIpOworCisgICAgYXV0byB0ZXh0SW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRl
KGRpY3Rpb25hcnlQb3B1cEluZm8udGV4dEluZGljYXRvcik7CisgICAgCisgICAgUmV0YWluUHRy
PFdlYlJldmVhbEhpZ2hsaWdodD4gd2ViSGlnaGxpZ2h0ID0gYWRvcHROUyhbW1dlYlJldmVhbEhp
Z2hsaWdodCBhbGxvY10gaW5pdFdpdGhIaWdobGlnaHRSZWN0Olt2aWV3IGNvbnZlcnRSZWN0OnRl
eHRJbmRpY2F0b3ItPnNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSB0b1ZpZXc6
bmlsXSB2aWV3OnZpZXddKTsKKyAgICAKKyAgICBSZXRhaW5QdHI8UlZJdGVtPiBpdGVtID0gYWRv
cHROUyhbYWxsb2NSVkl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoVGV4dDpkaWN0aW9uYXJ5UG9wdXBJ
bmZvLmF0dHJpYnV0ZWRTdHJpbmcuZ2V0KCkuc3RyaW5nIHNlbGVjdGVkUmFuZ2U6TlNNYWtlUmFu
Z2UoMCwgMCldKTsKKyAgICAKKyAgICBbd2ViSGlnaGxpZ2h0IHNldEltYWdlOnRleHRJbmRpY2F0
b3ItPmNvbnRlbnRJbWFnZSgpXTsKKyAgICBbVUlOU1NoYXJlZFJldmVhbENvbnRyb2xsZXIoKSBy
ZXZlYWxJdGVtOml0ZW0uZ2V0KCkgbG9jYXRpb25JbldpbmRvdzpkaWN0aW9uYXJ5UG9wdXBJbmZv
Lm9yaWdpbiB3aW5kb3c6dmlldy53aW5kb3cgaGlnaGxpZ2h0ZXI6KGlkPFVJUlZQcmVzZW50ZXJI
aWdobGlnaHREZWxlZ2F0ZT4pIHdlYkhpZ2hsaWdodC5nZXQoKV07CisgICAgcmV0dXJuIG5pbDsK
KyAgICAKKyNlbHNlIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgCiAgICAgVU5VU0VEX1BB
UkFNKGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIpOwogICAgIFVOVVNFRF9QQVJBTShkaWN0aW9u
YXJ5UG9wdXBJbmZvKTsKQEAgLTM4OSwxMyArNTI1LDEzIEBAIHN0YXRpYyBXS1JldmVhbENvbnRy
b2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9sbGVyKGJvb2wgY3JlYXRlQW5p
bWF0CiAgICAgVU5VU0VEX1BBUkFNKGNsZWFyVGV4dEluZGljYXRvcik7CiAgICAgCiAgICAgcmV0
dXJuIG5pbDsKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCisjZW5kaWYgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIAogfQog
Ci12b2lkIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJh
Y2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1Rv
Vmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0
SW5kaWNhdG9yKQordm9pZCBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoY29uc3QgRGljdGlv
bmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgUmV2ZWFsVmlldyAqdmlldywgY29u
c3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3ImKT4mIHRleHRJbmRpY2F0b3JJbnN0
YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0
KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjbGVhclRleHRJbmRpY2F0b3IpCiB7CiAgICAgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRp
b25Db250cm9sbGVyKGZhbHNlLCBkaWN0aW9uYXJ5UG9wdXBJbmZvLCB2aWV3LCB0ZXh0SW5kaWNh
dG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNr
LCBXVEZNb3ZlKGNsZWFyVGV4dEluZGljYXRvcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oCmluZGV4IGY4Zjc2MWNkYzgxYWViZDNkZjA4ODM3
YTMyMzFjMDhmMzVhNGZlYjkuLjE2MzE5NjdmZjkyYWRmOGE4ODk1ZjdmZWM1NzgyZDhjNjEyM2E2
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29r
dXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLmgK
QEAgLTM0LDEyICszNCwxNSBAQAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBPQkpDX0NM
QVNTIE5TVmlldzsKK09CSkNfQ0xBU1MgVUlWaWV3OwogT0JKQ19DTEFTUyBQREZTZWxlY3Rpb247
CiAKICNpZiBQTEFURk9STShNQUMpCiB0eXBlZGVmIGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbkNvbnRyb2xsZXI+IFdLUmV2ZWFsQ29udHJvbGxlcjsKK3VzaW5nIFJldmVhbFZpZXcgPSBO
U1ZpZXc7CiAjZWxzZQogdHlwZWRlZiBpZCBXS1JldmVhbENvbnRyb2xsZXI7Cit1c2luZyBSZXZl
YWxWaWV3ID0gVUlWaWV3OwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTYsNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTogU2hvdWxk
IG1vdmUvdW5pZnkgZGljdGlvbmFyeVBvcHVwSW5mb0ZvclJhbmdlIGhlcmUgdG9vLgogCi0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2hvd1BvcHVwKGNvbnN0IERpY3Rpb25hcnlQb3B1
cEluZm8mLCBOU1ZpZXcgKiwgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3Im
KT4mIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlv
bjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNr
ID0gbnVsbHB0ciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yID0g
bnVsbHB0cik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2hvd1BvcHVwKGNvbnN0
IERpY3Rpb25hcnlQb3B1cEluZm8mLCBSZXZlYWxWaWV3ICosIGNvbnN0IFdURjo6RnVuY3Rpb248
dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ss
IGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmll
d0NvbnZlcnNpb25DYWxsYmFjayA9IG51bGxwdHIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNs
ZWFyVGV4dEluZGljYXRvciA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIGhpZGVQb3B1cCgpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCAxNDk3MTRhYjFkMjI2NWE2ODM0ZDU3ZWY0N2IxMTZlYTRl
MjllMzUxLi5lYWQ5MTVmMDk0NWRiZGE1YmI2NjY0OTdkNTMyZmE5NDAyMjI3ZmJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zMDMsNiArMzAzLDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFJlZjxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yPiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyVGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRJbmRpY2F0
b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCkgPSAwOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBk
aWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJ
bmZvJikgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikgPSAwOwpAQCAtMzEyLDcgKzMx
NCw2IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHBsdWdp
bkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1
dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChj
b25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25G
b3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0KSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVy
bmF0aXZlVGV4dCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAppbmRleCA4NzdjODEzN2YzMzE2NTgyYWM1NDMzZWVkNWIxN2JkYWIyNTM5
ZDlmLi41ZGE2Zjk5YmY1MjQwMjMzMDNkODcxZGEwN2JmNzJlMTZhZmNiNTI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTM0LDYg
KzEzNCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25zdCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgbGF5ZXJUcmVl
Q29tbWl0Q29tcGxldGUoKSBvdmVycmlkZTsKKyAgICAgICAgCisgICAgdm9pZCBkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cChjb25zdCBXZWJDb3JlOjpEaWN0aW9uYXJ5UG9wdXBJbmZvJikgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIGNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpIG92ZXJyaWRlOwog
ICAgIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50Piwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
JiwgZG91YmxlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA3ZTA2M2RhMWQzOGMwNWVhMzZmMjEwOWIyMGZkNzQx
NGMyMGI3NTMyLi5iMjM3ZWY1MDUyYWYzNzVjMWVjNTY0N2I3YmRiMjgxZTA3ZmE0OGJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBA
IC01NCw2ICs1NCw3IEBACiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW1wb3J0
ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0Rvd25sb2FkSW50ZXJuYWwuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+CkBAIC00NTMsNiArNDU0LDE1IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNv
bnN0IExheWVyVHJlZUNvbnRleHQmKQogewogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQ
ZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9u
YXJ5UG9wdXBJbmZvKQoreworI2lmIEVOQUJMRShSRVZFQUwpCisgICAgRGljdGlvbmFyeUxvb2t1
cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIG1fY29udGVudFZpZXcsIG51bGxwdHIp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGljdGlvbmFyeVBvcHVwSW5mbyk7CisjZW5kaWYg
Ly8gRU5BQkxFKFJFVkVBTCkKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UmVtb3RlTGF5
ZXJUcmVlUm9vdE5vZGUoUmVtb3RlTGF5ZXJUcmVlTm9kZSogcm9vdE5vZGUpCiB7CiAgICAgW21f
Y29udGVudFZpZXcgX3NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290Vmlldzpyb290Tm9kZSA/
IHJvb3ROb2RlLT51aVZpZXcoKSA6IG5pbF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAxMWE3NDY3MzlmNzZiZjcyM2MzYmE4MDExNmFk
ZGRlOTNhYjQ4MjEwLi5iOWJkNzBjOWJlZTEwNjllMWI0ZjEyMzA5OGI5Y2FlMTJkNjQ4N2M1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAg
LTk4MSw5ICs5ODEsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Rm9jdXNlZEVsZW1lbnRTZWxl
Y3RlZEluZGV4KHVpbnQzMl90IGluZGV4LCBib29sIGFsbG93TXVsdAogICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRGb2N1c2VkRWxlbWVudFNlbGVjdGVkSW5kZXgoaW5k
ZXgsIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvJikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25z
dCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcGFnZUNsaWVudCgpLmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3Vw
KGRpY3Rpb25hcnlQb3B1cEluZm8pOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2F2ZVBERlRv
VGVtcG9yYXJ5Rm9sZGVyQW5kT3BlbldpdGhOYXRpdmVBcHBsaWNhdGlvbihjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tCmluZGV4IDhjZTU2NWZiOTU2ZjM2Y2I3NTJlZjgxMWExMjQ1ZWI1NWRkY2Y5
YjMuLjM2YzliMzUyNjEyODhiZDVlMzE2OTFlZGYwMWU4OTZhNGZhNGMxNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0KQEAgLTE3NSw2ICsxNzUsMTAgQEAgRGljdGlvbmFyeVBvcHVwSW5mbyBXZWJQYWdlOjpkaWN0
aW9uYXJ5UG9wdXBJbmZvRm9yUmFuZ2UoRnJhbWUmIGZyYW1lLCBSYW5nZSYgcmEKICAgICBkaWN0
aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcgPSBzY2FsZWROU0F0dHJpYnV0ZWRTdHJp
bmc7CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogICAgIAorI2lmIFBMQVRGT1JNKElPU01BQykK
KyAgICBkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlQXR0cmlidXRlZFN0cmluZyBhbGxvY10gaW5pdFdpdGhTdHJpbmc6cmFuZ2UudGV4dCgp
XSk7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TTUFDKQorICAgIAogICAgIGVkaXRvci5zZXRJc0dl
dHRpbmdEaWN0aW9uYXJ5UG9wdXBJbmZvKGZhbHNlKTsKICAgICByZXR1cm4gZGljdGlvbmFyeVBv
cHVwSW5mbzsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359184</attachid>
            <date>2019-01-15 11:39:13 -0800</date>
            <delta_ts>2019-01-15 15:15:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193408-20190115113912.patch</filename>
            <type>text/plain</type>
            <size>22033</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMzMxMzFjMTdmZjNk
MjFjYjk1MDUxMzgxYzAwZDU4YTYwNTg4OC4uNjY3NmZkYTA3NTMzN2QwNzk2ZGQyYTI3ZjNmZDgz
NzllNzZmMjg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAxLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVh
bCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaU9TTWFjIGFuZCBSZXZlYWwgYXJlIGN1cnJlbnRseSBub3QgdGVzdGFibGUu
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSByZXZlYWwgU1BJIHNwZWNpZmljYWxseSBm
b3IgaU9TTWFjLgorICAgICAgICBTaG93IHRoZSBjb250cm9sbGVyIHdoZW4gY2FsbGVkLCBhbmQg
aW1wbGVtZW50IHRoZSBkZWxlZ2F0ZSB0byAKKyAgICAgICAgY29ycmVjdGx5IHJlLXBhaW50IHRo
ZSBjb250ZW50IHdpdGggdGhlIGF1dG8tZ2VuZXJhdGVkIGhpZ2hsaWdodCBmcm9tCisgICAgICAg
IHRoZSByZXZlYWwgZnJhbWV3b3JrLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW06
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6dmll
dzpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHNldEltYWdlOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0UmVjdHNGb3JJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgc3RhcnRIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0SXRlbTp3aXRoUHJvZ3Jlc3M6XSk6Cisg
ICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBjb21wbGV0ZUhpZ2hsaWdodGluZ0l0ZW06XSk6
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBzdG9wSGlnaGxpZ2h0aW5nSXRlbTpdKToK
KyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhpZ2hsaWdodFJhbmdlQ2hhbmdlZEZvckl0
ZW06XSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBoaWdobGlnaHRpbmddKToKKyAg
ICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGRyYXdIaWdobGlnaHRDb250ZW50Rm9ySXRlbTpj
b250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1
cCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oOgorCiAyMDE5LTAx
LTExICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
R2FyYmxlZCByZW5kZXJpbmcgb24gWW91dHViZSB3aGlsZSBzY3JvbGxpbmcgdW5kZXIgWDExLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggNWExMGQ3NDkxNTk5MDY2MTI5NGU5MjBkODdlYWI4MTAwMmIy
N2VmYi4uYjQyNjE1YWVlNTA0Njg1ZGE2ODkwMDk3ZDg1ZmMyYTc4YjJhNDA3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMTQgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUmV2ZWFsIHN1cHBvcnQgaW4g
aU9TTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTM0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYWRkaXRpb25hbCBuZWVkZWQgU1BJLgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9SZXZl
YWxTUEkuaDoKKwogMjAxOS0wMS0xMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBPdmVycmlkZSB0aGUgc2Vzc2lvbiBjb25maWd1cmF0aW9uIGZvciBjb29r
aWVBY2NlcHRQb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDUzY2MzM2M2OTI3ZTYxYWE0ZTY5ZGFlOTBkYTgw
NTEyNTdkZTkyNS4uZmMxNTUyNGNkOWFkMTlmOTg3ZDA4NDQ2MjA5OTc1N2I2ZTJjODAwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0wMS0xNCAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBSZXZlYWwgc3VwcG9ydCBpbiBpT1NN
YWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBj
YWxscyB0byBEaWN0aW9uYXJ5TG9va3VwIGZyb20gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25h
cnlMb29rdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JS
YW5nZSk6CisKIDIwMTktMDEtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW50cm9kdWNlIElETCBmaWxlcyBmb3IgcnVudGltZS1lbmFibGVkIFVu
ZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbSBKYXZhU2NyaXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWI4NGU4OTBkZTIwYjJlYmNj
NmE4MjNkYzZkZTVlMzdlZDEyNjc2NC4uMjI5MmU1NjJlMmFhMzQxZGJmYjA3YmQzMmI1OGQwNjFi
MDAyMTgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMTUsNiArMTE1LDkgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0dm9zID0g
JChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2
c2ltdWxhdG9yID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpOwogV0tfT1BF
TkdMX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKK1dLX1VJS0lUTUFDX0xE
RkxBR1MgPSAkKFdLX1VJS0lUTUFDX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19V
SUtJVE1BQ19MREZMQUdTX2lvc21hYyA9IC1mcmFtZXdvcmsgVUlLaXRNYWNIZWxwZXI7CisKIFdL
X1NZU1RFTV9DT05GSUdVUkFUSU9OX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9DT05GSUdVUkFUSU9O
X0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19TWVNURU1fQ09ORklHVVJBVElPTl9M
REZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgU3lzdGVtQ29uZmlndXJhdGlvbjsKIApAQCAtMTI2
LDcgKzEyOSw3IEBAIFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRU
SU5HX0xERkxBR1NfJChXS19IQVZFX1VSTF9GT1JNQVRUSU5HCiBXS19VUkxfRk9STUFUVElOR19M
REZMQUdTX1lFUyA9IC1mcmFtZXdvcmsgVVJMRm9ybWF0dGluZzsKIAogLy8gRklYTUU6IFJlZHVj
ZSB0aGUgbnVtYmVyIG9mIGFsbG93YWJsZV9jbGllbnRzIDxyZGFyOi8vcHJvYmxlbS8zMTgyMzk2
OT4KLU9USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdP
UktfTERGTEFHUykgJChXS19VTkRFRklORURfU1lNQk9MU19MREZMQUdTKSAtbHNxbGl0ZTMgLWxv
YmpjIC1sQU5HTEUgLWFsbG93YWJsZV9jbGllbnQgV2ViQ29yZVRlc3RTdXBwb3J0IC1hbGxvd2Fi
bGVfY2xpZW50IFdlYktpdExlZ2FjeSAtZm9yY2VfbG9hZCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
bGliUEFMLmEgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1l
d29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRp
b24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgTWV0YWwgJChPVEhFUl9MREZMQUdTX1BM
QVRGT1JNXyQoV0tfQ09DT0FfVE9VQ0gpKSAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19Q
TEFURk9STV9OQU1FKSkgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BUFBTVVBQT1JUX0xERkxB
R1MpICQoV0tfQVVESU9fVU5JVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NP
UkVfVUlfTERGTEFHUykgJChXS19EQVRBX0RFVEVDVE9SU19DT1JFX0xERkxBR1MpICQoV0tfR1JB
UEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19JT1NVUkZBQ0VfTERGTEFHUykgJChXS19MSUJX
RUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01P
QklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfT1BFTkdMX0xERkxBR1MpICQoV0tfU1lTVEVNX0NP
TkZJR1VSQVRJT05fTERGTEFHUykgJChXS19TWVNURU1fUFJFVklFV19MREZMQUdTKSAkKFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1MpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdL
X1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAkKFdLX1VOREVGSU5FRF9TWU1CT0xTX0xE
RkxBR1MpIC1sc3FsaXRlMyAtbG9iamMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3Jl
VGVzdFN1cHBvcnQgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9saWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3
b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0
IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNZXRh
bCAkKE9USEVSX0xERkxBR1NfUExBVEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERG
TEFHU19QTEFURk9STV8kKFdLX1BMQVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAk
KFdLX0FQUFNVUFBPUlRfTERGTEFHUykgJChXS19BVURJT19VTklUX0xERkxBR1MpICQoV0tfQ0FS
Qk9OX0xERkxBR1MpICQoV0tfQ09SRV9VSV9MREZMQUdTKSAkKFdLX0RBVEFfREVURUNUT1JTX0NP
UkVfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFD
RV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19PUEVOR0xfTERG
TEFHUykgJChXS19TWVNURU1fQ09ORklHVVJBVElPTl9MREZMQUdTKSAkKFdLX1NZU1RFTV9QUkVW
SUVXX0xERkxBR1MpICQoV0tfVUlLSVRNQUNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19M
REZMQUdTKTsKIAogT1RIRVJfTERGTEFHU19QTEFURk9STV9jb2NvYXRvdWNoID0gLWFsbG93YWJs
ZV9jbGllbnQgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50IGlUdW5lc1UgLWFsbG93YWJsZV9jbGll
bnQgQ2FzYWJsYW5jYSAtYWxsb3dhYmxlX2NsaWVudCBSZW1vdGUgLWFsbG93YWJsZV9jbGllbnQg
VFZCb29rcyAtYWxsb3dhYmxlX2NsaWVudCBEdW1wUmVuZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVu
dCBXZWJLaXRUZXN0UnVubmVyIC1hbGxvd2FibGVfY2xpZW50IFRlc3RXZWJLaXRBUEk7CiBPVEhF
Ul9MREZMQUdTX1BMQVRGT1JNX21hY29zeCA9IC1zdWJfbGlicmFyeSBsaWJvYmpjIC11bWJyZWxs
YSBXZWJLaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9S
ZXZlYWxTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5o
CmluZGV4IDgyYjdjNGEwOTFiYzlkZGJjOTQ2MmI1ODcxOWFiNTMzOTFiNDcwZjQuLjM5ZGJhNWM3
YjY4OTA1ZDBiMGJkMDNiODdjNTljZjc3YzYwYTFjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oCkBAIC00NCw5ICs0NCw5IEBAIFNPRlRfTElOS19D
TEFTU19PUFRJT05BTChSZXZlYWxDb3JlLCBSVlNlbGVjdGlvbikKICNpbXBvcnQgPFJldmVhbC9S
VlByZXNlbnRlci5oPgogI2ltcG9ydCA8UmV2ZWFsL1JldmVhbC5oPgogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKyNpbXBvcnQgPFJldmVhbENvcmUvUlZJdGVtX1ByaXZhdGUuaD4KICNpbXBvcnQg
PFJldmVhbENvcmUvUlZTZWxlY3Rpb24uaD4KICNpbXBvcnQgPFJldmVhbENvcmUvUmV2ZWFsQ29y
ZS5oPgotCiAjZWxzZSAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggZGVmN2RmYjk1YTQzZTBhYjI5ZGY3
ZDAyODAxNjAxM2U0NTYzYjFiNS4uYzRiOGRjYzg2OTExYTM3NDY1ODU3NjVkZWU1NmJlZGE3NTlm
NmU0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1VJS2l0U1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTQ3
LDkgKzQ3LDEwIEBAIFdURl9FWFRFUk5fQ19FTkQKIEBpbnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAo
KQogKyAoVUlBcHBsaWNhdGlvblNjZW5lQ2xhc3NpY01vZGUpX2NsYXNzaWNNb2RlOwogLSAoR1NL
ZXlib2FyZFJlZilfaGFyZHdhcmVLZXlib2FyZDsKKy0gKENHRmxvYXQpX2lPU01hY1NjYWxlOwog
QGVuZAogCi0jZWxzZQorI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2ltcG9y
dCA8VUlLaXQvVUlLaXQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9j
b2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9E
aWN0aW9uYXJ5TG9va3VwLm1tCmluZGV4IDY3MWFjOWFiMzBhNTlmZGE4OTQxZjM4NDVjM2VhOGJi
YTllNTRmMjEuLmRmZGFjMjY4ZjY4ZTA0YTQwMzYwODEwMDBlZDUwZGY5ZDAwYWRiYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW0KQEAg
LTQ1LDE3ICs0NSwyNyBAQAogI2ltcG9ydCAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW1wb3J0ICJW
aXNpYmxlU2VsZWN0aW9uLmgiCiAjaW1wb3J0ICJWaXNpYmxlVW5pdHMuaCIKKyNpbXBvcnQgPHBh
bC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1JldmVh
bFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTG9va3VwU1BJLmg+CiAjaW1wb3J0IDx3dGYv
QmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogCiAjaWYgIVBM
QVRGT1JNKFdBVENIKQotCiAjaW1wb3J0IDxQREZLaXQvUERGS2l0Lmg+Ci0KICNlbmRpZiAvLyAh
UExBVEZPUk0oV0FUQ0gpCiAKKyNpZiBQTEFURk9STShJT1NNQUMpCitleHRlcm4gIkMiIHsKKyNp
bXBvcnQgPFVJS2l0TWFjSGVscGVyL1VJTlNSZXZlYWxDb250cm9sbGVyLmg+Cit9CisKK1NPRlRf
TElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQXBwbGljYXRp
b24pCisjaW5jbHVkZSA8cGFsL3NwaS9pb3MvVUlLaXRTUEkuaD4KKworI2VuZGlmIC8vIFBMQVRG
T1JNKElPU01BQykKKwogI2lmIFBMQVRGT1JNKE1BQykKIAogQGludGVyZmFjZSBXZWJSZXZlYWxI
aWdobGlnaHQgPFJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+IDogTlNPYmplY3QgewpAQCAt
MTQxLDcgKzE1MSwxMjAgQEAgLSAodm9pZClyZXZlYWxDb250ZXh0OihSVlByZXNlbnRpbmdDb250
ZXh0ICopY29udGV4dCBzdG9wSGlnaGxpZ2h0aW5nSXRlbTooUlZJdGUKIAogQGVuZAogCi0jZW5k
aWYgLy8gUExBVEZPUk0oTUFDKQorI2VsaWYgUExBVEZPUk0oSU9TTUFDKSAvLyBQTEFURk9STShN
QUMpCisKK0BpbnRlcmZhY2UgV2ViUmV2ZWFsSGlnaGxpZ2h0IDxVSVJWUHJlc2VudGVySGlnaGxp
Z2h0RGVsZWdhdGU+IDogTlNPYmplY3QgeworQHByaXZhdGUKKyAgICBSZWZQdHI8V2ViQ29yZTo6
SW1hZ2U+IF9pbWFnZTsKKyAgICBDR1JlY3QgX2hpZ2hsaWdodFJlY3Q7CisgICAgQk9PTCBfaGln
aGxpZ2h0aW5nOworICAgIFVJVmlldyAqX3ZpZXc7Cit9CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQ0dSZWN0IGhpZ2hsaWdodFJlY3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIFVJVmlldyAqdmlldzsKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSGlnaGxp
Z2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdodFJlY3QgdmlldzooVUlWaWV3ICopdmlldzsKKy0gKHZv
aWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4mJilpbWFnZTsKKworQGVuZAorCitA
aW1wbGVtZW50YXRpb24gV2ViUmV2ZWFsSGlnaGxpZ2h0CisKK0BzeW50aGVzaXplIGhpZ2hsaWdo
dFJlY3Q9X2hpZ2hsaWdodFJlY3Q7CitAc3ludGhlc2l6ZSB2aWV3PV92aWV3OworCistIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhIaWdobGlnaHRSZWN0OihOU1JlY3QpaGlnaGxpZ2h0UmVjdCB2aWV3
OihVSVZpZXcgKil2aWV3Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAg
ICAgIHJldHVybiBuaWw7CisgICAgCisgICAgX2hpZ2hsaWdodFJlY3QgPSBoaWdobGlnaHRSZWN0
OworICAgIF92aWV3ID0gdmlldzsKKyAgICBfaGlnaGxpZ2h0aW5nID0gTk87CisgICAgCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJDb3JlOjpJbWFn
ZT4mJilpbWFnZQoreworICAgIF9pbWFnZSA9IFdURk1vdmUoaW1hZ2UpOworfQorCistIChOU0Fy
cmF5IDxOU1ZhbHVlICo+ICopaGlnaGxpZ2h0UmVjdHNGb3JJdGVtOihSVkl0ZW0gKilpdGVtCit7
CisgICAgVU5VU0VEX1BBUkFNKGl0ZW0pOworICAgIHJldHVybiBAW1tOU1ZhbHVlIHZhbHVlV2l0
aENHUmVjdDpzZWxmLmhpZ2hsaWdodFJlY3RdXTsKK30KKworLSAodm9pZClzdGFydEhpZ2hsaWdo
dGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAg
X2hpZ2hsaWdodGluZyA9IFlFUzsKK30KKworLSAodm9pZCloaWdobGlnaHRJdGVtOihSVkl0ZW0g
KilpdGVtIHdpdGhQcm9ncmVzczooQ0dGbG9hdClwcm9ncmVzcworeworICAgIFVOVVNFRF9QQVJB
TShpdGVtKTsKKyAgICBVTlVTRURfUEFSQU0ocHJvZ3Jlc3MpOworfQorCistICh2b2lkKWNvbXBs
ZXRlSGlnaGxpZ2h0aW5nSXRlbTooUlZJdGVtICopaXRlbQoreworICAgIFVOVVNFRF9QQVJBTShp
dGVtKTsKK30KKworLSAodm9pZClzdG9wSGlnaGxpZ2h0aW5nSXRlbTooUlZJdGVtICopaXRlbQor
eworICAgIFVOVVNFRF9QQVJBTShpdGVtKTsKKyAgICBfaGlnaGxpZ2h0aW5nID0gTk87Cit9CisK
Ky0gKHZvaWQpaGlnaGxpZ2h0UmFuZ2VDaGFuZ2VkRm9ySXRlbTooUlZJdGVtICopaXRlbQorewor
ICAgIFVOVVNFRF9QQVJBTShpdGVtKTsKK30KKworLSAoQk9PTCloaWdobGlnaHRpbmcKK3sKKyAg
ICByZXR1cm4gX2hpZ2hsaWdodGluZzsKK30KKworLSAodm9pZClkcmF3SGlnaGxpZ2h0Q29udGVu
dEZvckl0ZW06KFJWSXRlbSAqKWl0ZW0gY29udGV4dDooQ0dDb250ZXh0UmVmKWNvbnRleHQKK3sK
KyAgICBOU0FycmF5IDxOU1ZhbHVlICo+ICpyZWN0cyA9IFtzZWxmIGhpZ2hsaWdodFJlY3RzRm9y
SXRlbTppdGVtXTsKKyAgICBpZiAoIXJlY3RzLmNvdW50KQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgVUlWaWV3ICp0ZXh0Q29udGVudFZpZXcgPSBzZWxmLnZpZXc7CisgICAgCisgICAgQ0dS
ZWN0IGhpZ2hsaWdodFJlY3QgPSByZWN0cy5maXJzdE9iamVjdC5DR1JlY3RWYWx1ZTsKKyAgICBm
b3IgKE5TVUludGVnZXIgaSA9IDE7IGkgPCByZWN0cy5jb3VudDsgaSsrKQorICAgICAgICBoaWdo
bGlnaHRSZWN0ID0gQ0dSZWN0VW5pb24oaGlnaGxpZ2h0UmVjdCwgcmVjdHNbaV0uQ0dSZWN0VmFs
dWUpOworICAgIGhpZ2hsaWdodFJlY3QgPSBbdGV4dENvbnRlbnRWaWV3IGNvbnZlcnRSZWN0Omhp
Z2hsaWdodFJlY3QgZnJvbVZpZXc6bmlsXTsKKyAgICAKKyAgICBDR0NvbnRleHRTYXZlR1N0YXRl
KGNvbnRleHQpOworICAgIENHQWZmaW5lVHJhbnNmb3JtIGNvbnRleHRUcmFuc2Zvcm0gPSBDR0Nv
bnRleHRHZXRDVE0oY29udGV4dCk7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0g
Q0dBZmZpbmVUcmFuc2Zvcm1JZGVudGl0eTsKKyAgICBDR0Zsb2F0IGJhY2tpbmdTY2FsZSA9IGNv
bnRleHRUcmFuc2Zvcm0uYTsKKyAgICBDR0Zsb2F0IGlPU01hY1NjYWxlRmFjdG9yID0gW2dldFVJ
QXBwbGljYXRpb25DbGFzcygpIHNoYXJlZEFwcGxpY2F0aW9uXS5faU9TTWFjU2NhbGU7CisgICAg
dHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1TY2FsZSh0cmFuc2Zvcm0sIGlPU01hY1NjYWxl
RmFjdG9yLCBpT1NNYWNTY2FsZUZhY3Rvcik7CisgICAgQ0dDb250ZXh0U2V0Q1RNKGNvbnRleHQs
IHRyYW5zZm9ybSk7CisgICAgCisgICAgZm9yIChOU1ZhbHVlICp2IGluIHJlY3RzKSB7CisgICAg
ICAgIENHUmVjdCBpbWdTcmNSZWN0ID0gW3RleHRDb250ZW50VmlldyBjb252ZXJ0UmVjdDp2LkNH
UmVjdFZhbHVlIGZyb21WaWV3Om5pbF07CisgICAgICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBp
bWFnZVJlZiA9IF9pbWFnZS0+bmF0aXZlSW1hZ2UoKTsKKyAgICAgICAgQ0dSZWN0IG9yaWdpbiA9
IENHUmVjdE1ha2UoYmFja2luZ1NjYWxlICogKGltZ1NyY1JlY3Qub3JpZ2luLnggLSBoaWdobGln
aHRSZWN0Lm9yaWdpbi54KSwgYmFja2luZ1NjYWxlICogKGltZ1NyY1JlY3Qub3JpZ2luLnkgLSBo
aWdobGlnaHRSZWN0Lm9yaWdpbi55KSwgIGJhY2tpbmdTY2FsZSAqIChoaWdobGlnaHRSZWN0LnNp
emUud2lkdGgpLCBiYWNraW5nU2NhbGUqKGhpZ2hsaWdodFJlY3Quc2l6ZS5oZWlnaHQpKTsKKyAg
ICAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQsIG9yaWdpbiwgaW1hZ2VSZWYuZ2V0KCkp
OworICAgIH0KKyAgICAKKyAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRleHQpOworICAg
IAorfQorCitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NNQUMpCiAKICNlbmRpZiAvLyBF
TkFCTEUoUkVWRUFMKQogCkBAIC0zMjEsNyArNDQ0LDcgQEAgc3RkOjp0dXBsZTxOU1N0cmluZyAq
LCBOU0RpY3Rpb25hcnkgKj4gRGljdGlvbmFyeUxvb2t1cDo6c3RyaW5nRm9yUERGU2VsZWN0aW9u
KFAKICAgICAKICNlbmRpZiAvLyAhUExBVEZPUk0oV0FUQ0gpCiAKLXN0YXRpYyBXS1JldmVhbENv
bnRyb2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9sbGVyKGJvb2wgY3JlYXRl
QW5pbWF0aW9uQ29udHJvbGxlciwgY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFy
eVBvcHVwSW5mbywgTlNWaWV3ICp2aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dElu
ZGljYXRvciYpPiYgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6
OkZ1bmN0aW9uPEZsb2F0UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9u
Q2FsbGJhY2ssIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikKK3N0
YXRpYyBXS1JldmVhbENvbnRyb2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9s
bGVyKGJvb2wgY3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlciwgY29uc3QgRGljdGlvbmFyeVBvcHVw
SW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgUmV2ZWFsVmlldyAqdmlldywgY29uc3QgV1RGOjpG
dW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3ImKT4mIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25D
YWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4mIHJvb3RW
aWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjbGVh
clRleHRJbmRpY2F0b3IpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAg
IApAQCAtMzc5LDcgKzUwMiwyNSBAQCBzdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1
cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdAogICAgIFtwcmVz
ZW50ZXIgcmV2ZWFsSXRlbTppdGVtLmdldCgpIGRvY3VtZW50Q29udGV4dDpuaWwgcHJlc2VudGlu
Z0NvbnRleHQ6Y29udGV4dC5nZXQoKSBvcHRpb25zOm5pbF07CiAgICAgcmV0dXJuIG5pbDsKICAg
ICAKLSNlbHNlIC8vIFBMQVRGT1JNKE1BQykKKyNlbGlmIFBMQVRGT1JNKElPU01BQykKKyAgICAK
KyAgICBVTlVTRURfUEFSQU0odGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrKTsKKyAg
ICBVTlVTRURfUEFSQU0ocm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2spOworICAgIFVO
VVNFRF9QQVJBTShjbGVhclRleHRJbmRpY2F0b3IpOworICAgIAorICAgIFVOVVNFRF9QQVJBTShj
cmVhdGVBbmltYXRpb25Db250cm9sbGVyKTsKKworICAgIGF1dG8gdGV4dEluZGljYXRvciA9IFRl
eHRJbmRpY2F0b3I6OmNyZWF0ZShkaWN0aW9uYXJ5UG9wdXBJbmZvLnRleHRJbmRpY2F0b3IpOwor
ICAgIAorICAgIFJldGFpblB0cjxXZWJSZXZlYWxIaWdobGlnaHQ+IHdlYkhpZ2hsaWdodCA9IGFk
b3B0TlMoW1tXZWJSZXZlYWxIaWdobGlnaHQgYWxsb2NdIGluaXRXaXRoSGlnaGxpZ2h0UmVjdDpb
dmlldyBjb252ZXJ0UmVjdDp0ZXh0SW5kaWNhdG9yLT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nv
b3JkaW5hdGVzKCkgdG9WaWV3Om5pbF0gdmlldzp2aWV3XSk7CisgICAgCisgICAgUmV0YWluUHRy
PFJWSXRlbT4gaXRlbSA9IGFkb3B0TlMoW2FsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0V2l0aFRl
eHQ6ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdldCgpLnN0cmluZyBzZWxl
Y3RlZFJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXSk7CisgICAgCisgICAgW3dlYkhpZ2hsaWdodCBz
ZXRJbWFnZTp0ZXh0SW5kaWNhdG9yLT5jb250ZW50SW1hZ2UoKV07CisgICAgW1VJTlNTaGFyZWRS
ZXZlYWxDb250cm9sbGVyKCkgcmV2ZWFsSXRlbTppdGVtLmdldCgpIGxvY2F0aW9uSW5XaW5kb3c6
ZGljdGlvbmFyeVBvcHVwSW5mby5vcmlnaW4gd2luZG93OnZpZXcud2luZG93IGhpZ2hsaWdodGVy
OihpZDxVSVJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+KSB3ZWJIaWdobGlnaHQuZ2V0KCld
OworICAgIHJldHVybiBuaWw7CisgICAgCisjZWxzZSAvLyBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIAogICAgIFVOVVNFRF9QQVJBTShjcmVhdGVBbmltYXRpb25Db250cm9sbGVyKTsKICAgICBV
TlVTRURfUEFSQU0oZGljdGlvbmFyeVBvcHVwSW5mbyk7CkBAIC0zODksMTMgKzUzMCwxMyBAQCBz
dGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJv
bGxlcihib29sIGNyZWF0ZUFuaW1hdAogICAgIFVOVVNFRF9QQVJBTShjbGVhclRleHRJbmRpY2F0
b3IpOwogICAgIAogICAgIHJldHVybiBuaWw7Ci0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKICAgICAKIH0KIAotdm9pZCBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoY29u
c3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgTlNWaWV3ICp2aWV3
LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiYgdGV4dEluZGljYXRv
ckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0aW9uPEZsb2F0UmVjdChGbG9h
dFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2ssIFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikKK3ZvaWQgRGljdGlvbmFyeUxvb2t1cDo6c2hv
d1BvcHVwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8sIFJl
dmVhbFZpZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+
JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248
RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywg
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yKQogewogICAgIHNob3dQ
b3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihmYWxzZSwgZGljdGlvbmFyeVBvcHVwSW5m
bywgdmlldywgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCByb290Vmlld1RvVmll
d0NvbnZlcnNpb25DYWxsYmFjaywgV1RGTW92ZShjbGVhclRleHRJbmRpY2F0b3IpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXAuaCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXAuaAppbmRleCBmOGY3
NjFjZGM4MWFlYmQzZGYwODgzN2EzMjMxYzA4ZjM1YTRmZWI5Li4xNjMxOTY3ZmY5MmFkZjhhODg5
NWY3ZmVjNTc4MmQ4YzYxMjNhNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hYy9EaWN0aW9uYXJ5TG9va3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMv
RGljdGlvbmFyeUxvb2t1cC5oCkBAIC0zNCwxMiArMzQsMTUgQEAKICNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KIAogT0JKQ19DTEFTUyBOU1ZpZXc7CitPQkpDX0NMQVNTIFVJVmlldzsKIE9CSkNf
Q0xBU1MgUERGU2VsZWN0aW9uOwogCiAjaWYgUExBVEZPUk0oTUFDKQogdHlwZWRlZiBpZCA8TlNJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPiBXS1JldmVhbENvbnRyb2xsZXI7Cit1
c2luZyBSZXZlYWxWaWV3ID0gTlNWaWV3OwogI2Vsc2UKIHR5cGVkZWYgaWQgV0tSZXZlYWxDb250
cm9sbGVyOwordXNpbmcgUmV2ZWFsVmlldyA9IFVJVmlldzsKICNlbmRpZiAvLyBQTEFURk9STShN
QUMpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU2LDcgKzU5LDcgQEAgcHVibGljOgogCiAg
ICAgLy8gRklYTUU6IFNob3VsZCBtb3ZlL3VuaWZ5IGRpY3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5n
ZSBoZXJlIHRvby4KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNob3dQb3B1cChj
b25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiwgTlNWaWV3ICosIGNvbnN0IFdURjo6RnVuY3Rpb248
dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ss
IGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmll
d0NvbnZlcnNpb25DYWxsYmFjayA9IG51bGxwdHIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNs
ZWFyVGV4dEluZGljYXRvciA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIHNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiwgUmV2ZWFsVmlldyAqLCBj
b25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiYgdGV4dEluZGljYXRvcklu
c3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0aW9uPEZsb2F0UmVjdChGbG9hdFJl
Y3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2sgPSBudWxscHRyLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoKT4mJiBjbGVhclRleHRJbmRpY2F0b3IgPSBudWxscHRyKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBoaWRlUG9wdXAoKTsKICAgICAKICNpZiBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMTQ5NzE0YWIxZDIyNjVh
NjgzNGQ1N2VmNDdiMTE2ZWE0ZTI5ZTM1MS4uZWFkOTE1ZjA5NDVkYmRhNWJiNjY2NDk3ZDUzMmZh
OTQwMjIyN2ZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzAzLDYg
KzMwMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihSZWY8
V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZl
dGltZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6
VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpID0gMDsKKyAgICAK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2ViQ29y
ZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpID0gMDsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lk
IGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYp
ID0gMDsKQEAgLTMxMiw3ICszMTQsNiBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IHZpcnR1YWwgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKHVpbnQ2NF90IHBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2lu
ZG93SGFzRm9jdXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luQ29tcGxleFRleHRJ
bnB1dFN0YXRlKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBQbHVn
aW5Db21wbGV4VGV4dElucHV0U3RhdGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9y
bURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpBbHRlcm5h
dGl2ZVRleHRUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBs
YWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFj
ZW1lbnRTdHJpbmdzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFu
ZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dCkgPSAwOwogICAg
IHZpcnR1YWwgU3RyaW5nIGRpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKFdlYkNvcmU6OlJlYXNv
bkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggODc3YzgxMzdmMzMxNjU4MmFj
NTQzM2VlZDViMTdiZGFiMjUzOWQ5Zi4uNWRhNmY5OWJmNTI0MDIzMzAzZDg3MWRhMDdiZjcyZTE2
YWZjYjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmgKQEAgLTEzNCw2ICsxMzQsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRDb21t
aXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKSBvdmVycmlkZTsK
ICAgICB2b2lkIGxheWVyVHJlZUNvbW1pdENvbXBsZXRlKCkgb3ZlcnJpZGU7CisgICAgICAgIAor
ICAgIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2ViQ29yZTo6RGljdGlv
bmFyeVBvcHVwSW5mbyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjb3VsZE5vdFJlc3RvcmVQYWdl
U3RhdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlc3RvcmVQYWdlU3RhdGUoT3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRQb2ludD4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYsIGRvdWJsZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggN2UwNjNkYTFkMzhj
MDVlYTM2ZjIxMDliMjBmZDc0MTRjMjBiNzUzMi4uYjIzN2VmNTA1MmFmMzc1YzFlYzU2NDdiN2Jk
YjI4MWUwN2ZhNDhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQpAQCAtNTQsNiArNTQsNyBAQAogI2ltcG9ydCAiV2ViRWRpdENvbW1h
bmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJfV0tEb3du
bG9hZEludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlMb29rdXAuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZv
cm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJvbWlzZWRBdHRhY2htZW50SW5mby5oPgpA
QCAtNDUzLDYgKzQ1NCwxNSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikKIHsKIH0KIAordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFy
eVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbykKK3sKKyNpZiBFTkFCTEUoUkVWRUFMKQor
ICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBtX2Nv
bnRlbnRWaWV3LCBudWxscHRyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRpY3Rpb25hcnlQ
b3B1cEluZm8pOworI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCit9CisKIHZvaWQgUGFnZUNsaWVu
dEltcGw6OnNldFJlbW90ZUxheWVyVHJlZVJvb3ROb2RlKFJlbW90ZUxheWVyVHJlZU5vZGUqIHJv
b3ROb2RlKQogewogICAgIFttX2NvbnRlbnRWaWV3IF9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Um9vdFZpZXc6cm9vdE5vZGUgPyByb290Tm9kZS0+dWlWaWV3KCkgOiBuaWxdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMTFhNzQ2NzM5
Zjc2YmY3MjNjM2JhODAxMTZhZGRkZTkzYWI0ODIxMC4uYjliZDcwYzliZWUxMDY5ZTFiNGYxMjMw
OThiOWNhZTEyZDY0ODdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tCkBAIC05ODEsOSArOTgxLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dEZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRleCh1aW50MzJfdCBpbmRleCwgYm9vbCBhbGxvd011
bHQKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9jdXNlZEVsZW1l
bnRTZWxlY3RlZEluZGV4KGluZGV4LCBhbGxvd011bHRpcGxlU2VsZWN0aW9uKSwgbV9wYWdlSUQp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29u
c3QgRGljdGlvbmFyeVBvcHVwSW5mbyYpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURp
Y3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVw
SW5mbykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHBhZ2VDbGllbnQoKS5kaWRQZXJm
b3JtRGljdGlvbmFyeUxvb2t1cChkaWN0aW9uYXJ5UG9wdXBJbmZvKTsKIH0KIAogdm9pZCBXZWJQ
YWdlUHJveHk6OnNhdmVQREZUb1RlbXBvcmFyeUZvbGRlckFuZE9wZW5XaXRoTmF0aXZlQXBwbGlj
YXRpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQppbmRleCA4Y2U1NjVmYjk1NmYzNmNiNzUy
ZWY4MTFhMTI0NWViNTVkZGNmOWIzLi4zNmM5YjM1MjYxMjg4YmQ1ZTMxNjkxZWRmMDFlODk2YTRm
YTRjMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2Nv
YS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29jb2EvV2ViUGFnZUNvY29hLm1tCkBAIC0xNzUsNiArMTc1LDEwIEBAIERpY3Rpb25hcnlQb3B1
cEluZm8gV2ViUGFnZTo6ZGljdGlvbmFyeVBvcHVwSW5mb0ZvclJhbmdlKEZyYW1lJiBmcmFtZSwg
UmFuZ2UmIHJhCiAgICAgZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nID0gc2Nh
bGVkTlNBdHRyaWJ1dGVkU3RyaW5nOwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKICAgICAKKyNp
ZiBQTEFURk9STShJT1NNQUMpCisgICAgZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3Ry
aW5nID0gYWRvcHROUyhbW05TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRXaXRo
U3RyaW5nOnJhbmdlLnRleHQoKV0pOworI2VuZGlmIC8vIFBMQVRGT1JNKElPU01BQykKKyAgICAK
ICAgICBlZGl0b3Iuc2V0SXNHZXR0aW5nRGljdGlvbmFyeVBvcHVwSW5mbyhmYWxzZSk7CiAgICAg
cmV0dXJuIGRpY3Rpb25hcnlQb3B1cEluZm87CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359212</attachid>
            <date>2019-01-15 15:15:36 -0800</date>
            <delta_ts>2019-01-15 16:19:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193408-20190115151536.patch</filename>
            <type>text/plain</type>
            <size>19774</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMzMxMzFjMTdmZjNk
MjFjYjk1MDUxMzgxYzAwZDU4YTYwNTg4OC4uNjY3NmZkYTA3NTMzN2QwNzk2ZGQyYTI3ZjNmZDgz
NzllNzZmMjg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAxLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVh
bCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaU9TTWFjIGFuZCBSZXZlYWwgYXJlIGN1cnJlbnRseSBub3QgdGVzdGFibGUu
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSByZXZlYWwgU1BJIHNwZWNpZmljYWxseSBm
b3IgaU9TTWFjLgorICAgICAgICBTaG93IHRoZSBjb250cm9sbGVyIHdoZW4gY2FsbGVkLCBhbmQg
aW1wbGVtZW50IHRoZSBkZWxlZ2F0ZSB0byAKKyAgICAgICAgY29ycmVjdGx5IHJlLXBhaW50IHRo
ZSBjb250ZW50IHdpdGggdGhlIGF1dG8tZ2VuZXJhdGVkIGhpZ2hsaWdodCBmcm9tCisgICAgICAg
IHRoZSByZXZlYWwgZnJhbWV3b3JrLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZzoKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW06
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBpbml0V2l0aEhpZ2hsaWdodFJlY3Q6dmll
dzpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHNldEltYWdlOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0UmVjdHNGb3JJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgc3RhcnRIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAg
ICAoLVtXZWJSZXZlYWxIaWdobGlnaHQgaGlnaGxpZ2h0SXRlbTp3aXRoUHJvZ3Jlc3M6XSk6Cisg
ICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBjb21wbGV0ZUhpZ2hsaWdodGluZ0l0ZW06XSk6
CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBzdG9wSGlnaGxpZ2h0aW5nSXRlbTpdKToK
KyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhpZ2hsaWdodFJhbmdlQ2hhbmdlZEZvckl0
ZW06XSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdodCBoaWdobGlnaHRpbmddKToKKyAg
ICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGRyYXdIaWdobGlnaHRDb250ZW50Rm9ySXRlbTpj
b250ZXh0Ol0pOgorICAgICAgICAoV2ViQ29yZTo6c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1
cCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oOgorCiAyMDE5LTAx
LTExICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
R2FyYmxlZCByZW5kZXJpbmcgb24gWW91dHViZSB3aGlsZSBzY3JvbGxpbmcgdW5kZXIgWDExLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggNWExMGQ3NDkxNTk5MDY2MTI5NGU5MjBkODdlYWI4MTAwMmIy
N2VmYi4uYjQyNjE1YWVlNTA0Njg1ZGE2ODkwMDk3ZDg1ZmMyYTc4YjJhNDA3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDEtMTQgIE1lZ2FuIEdhcmRuZXIgIDxt
ZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgUmV2ZWFsIHN1cHBvcnQgaW4g
aU9TTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTM0MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYWRkaXRpb25hbCBuZWVkZWQgU1BJLgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9SZXZl
YWxTUEkuaDoKKwogMjAxOS0wMS0xMCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBPdmVycmlkZSB0aGUgc2Vzc2lvbiBjb25maWd1cmF0aW9uIGZvciBjb29r
aWVBY2NlcHRQb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDUzY2MzM2M2OTI3ZTYxYWE0ZTY5ZGFlOTBkYTgw
NTEyNTdkZTkyNS4uZmMxNTUyNGNkOWFkMTlmOTg3ZDA4NDQ2MjA5OTc1N2I2ZTJjODAwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0wMS0xNCAgTWVnYW4gR2FyZG5lciAgPG1lZ2Fu
X2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBSZXZlYWwgc3VwcG9ydCBpbiBpT1NN
YWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQw
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBj
YWxscyB0byBEaWN0aW9uYXJ5TG9va3VwIGZyb20gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3Jt
RGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25h
cnlMb29rdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JS
YW5nZSk6CisKIDIwMTktMDEtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgSW50cm9kdWNlIElETCBmaWxlcyBmb3IgcnVudGltZS1lbmFibGVkIFVu
ZG9NYW5hZ2VyIGFuZCBVbmRvSXRlbSBKYXZhU2NyaXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKaW5kZXggYWI4NGU4OTBkZTIwYjJlYmNj
NmE4MjNkYzZkZTVlMzdlZDEyNjc2NC4uMzcyZjZiZjFiOTA2MGEwYjFjYWMzZDkzOTA1YWNlNWZk
ZGQwMmEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29y
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhj
Y29uZmlnCkBAIC0xMTUsNiArMTE1LDkgQEAgV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0dm9zID0g
JChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVvcyk7CiBXS19PUEVOR0xfTERGTEFHU19hcHBsZXR2
c2ltdWxhdG9yID0gJChXS19PUEVOR0xfTERGTEFHU19pcGhvbmVzaW11bGF0b3IpOwogV0tfT1BF
TkdMX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBPcGVuR0w7CiAKK1dLX1VJS0lUTUFDX0xE
RkxBR1MgPSAkKFdLX1VJS0lUTUFDX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19V
SUtJVE1BQ19MREZMQUdTX2lvc21hYyA9IC1mcmFtZXdvcmsgVUlLaXRNYWNIZWxwZXI7CisKIFdL
X1NZU1RFTV9DT05GSUdVUkFUSU9OX0xERkxBR1MgPSAkKFdLX1NZU1RFTV9DT05GSUdVUkFUSU9O
X0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19TWVNURU1fQ09ORklHVVJBVElPTl9M
REZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgU3lzdGVtQ29uZmlndXJhdGlvbjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUmV2ZWFsU1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaAppbmRleCA4MmI3YzRhMDkx
YmM5ZGRiYzk0NjJiNTg3MTlhYjUzMzkxYjQ3MGY0Li4zOWRiYTVjN2I2ODkwNWQwYjBiZDAzYjg3
YzU5Y2Y3N2M2MGExYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9SZXZlYWxTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9S
ZXZlYWxTUEkuaApAQCAtNDQsOSArNDQsOSBAQCBTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoUmV2
ZWFsQ29yZSwgUlZTZWxlY3Rpb24pCiAjaW1wb3J0IDxSZXZlYWwvUlZQcmVzZW50ZXIuaD4KICNp
bXBvcnQgPFJldmVhbC9SZXZlYWwuaD4KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCisjaW1wb3J0
IDxSZXZlYWxDb3JlL1JWSXRlbV9Qcml2YXRlLmg+CiAjaW1wb3J0IDxSZXZlYWxDb3JlL1JWU2Vs
ZWN0aW9uLmg+CiAjaW1wb3J0IDxSZXZlYWxDb3JlL1JldmVhbENvcmUuaD4KLQogI2Vsc2UgLy8g
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lv
cy9VSUtpdFNQSS5oCmluZGV4IGRlZjdkZmI5NWE0M2UwYWIyOWRmN2QwMjgwMTYwMTNlNDU2M2Ix
YjUuLmM0YjhkY2M4NjkxMWEzNzQ2NTg1NzY1ZGVlNTZiZWRhNzU5ZjZlNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC00Nyw5ICs0NywxMCBAQCBXVEZf
RVhURVJOX0NfRU5ECiBAaW50ZXJmYWNlIFVJQXBwbGljYXRpb24gKCkKICsgKFVJQXBwbGljYXRp
b25TY2VuZUNsYXNzaWNNb2RlKV9jbGFzc2ljTW9kZTsKIC0gKEdTS2V5Ym9hcmRSZWYpX2hhcmR3
YXJlS2V5Ym9hcmQ7CistIChDR0Zsb2F0KV9pT1NNYWNTY2FsZTsKIEBlbmQKIAotI2Vsc2UKKyNl
bHNlIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxv
b2t1cC5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5t
bQppbmRleCA2NzFhYzlhYjMwYTU5ZmRhODk0MWYzODQ1YzNlYThiYmE5ZTU0ZjIxLi45NjFlY2E5
M2I4YWJiNjk5NDc1YzM0Y2M3NDJiNTIxODA3ZWNhNzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCkBAIC0zNSw2ICszNSw3IEBACiAj
aW1wb3J0ICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJG
cmFtZVNlbGVjdGlvbi5oIgorI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKICNpbXBvcnQg
IkhUTUxDb252ZXJ0ZXIuaCIKICNpbXBvcnQgIkhpdFRlc3RSZXN1bHQuaCIKICNpbXBvcnQgIk5v
dEltcGxlbWVudGVkLmgiCkBAIC00NSwxNyArNDYsMjkgQEAKICNpbXBvcnQgIlZpc2libGVQb3Np
dGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVNlbGVjdGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVVu
aXRzLmgiCisjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0xvb2t1cFNQ
SS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9S
ZWZQdHIuaD4KIAogI2lmICFQTEFURk9STShXQVRDSCkKLQogI2ltcG9ydCA8UERGS2l0L1BERktp
dC5oPgotCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdBVENIKQogCisjaWYgUExBVEZPUk0oSU9TTUFD
KQorZXh0ZXJuICJDIiB7CisjaW1wb3J0IDxVSUtpdE1hY0hlbHBlci9VSU5TUmV2ZWFsQ29udHJv
bGxlci5oPgorfQorU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKFVJS2l0TWFjSGVscGVyKQor
U09GVF9MSU5LKFVJS2l0TWFjSGVscGVyLCBVSU5TU2hhcmVkUmV2ZWFsQ29udHJvbGxlciwgaWQ8
VUlOU1JldmVhbENvbnRyb2xsZXI+LCAodm9pZCksICgpKQorCitTT0ZUX0xJTktfRlJBTUVXT1JL
KFVJS2l0KQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUFwcGxpY2F0aW9uKQorI2luY2x1ZGUg
PHBhbC9zcGkvaW9zL1VJS2l0U1BJLmg+CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NNQUMpCisK
ICNpZiBQTEFURk9STShNQUMpCiAKIEBpbnRlcmZhY2UgV2ViUmV2ZWFsSGlnaGxpZ2h0IDxSVlBy
ZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlPiA6IE5TT2JqZWN0IHsKQEAgLTE0MSw3ICsxNTQsMTEx
IEBAIC0gKHZvaWQpcmV2ZWFsQ29udGV4dDooUlZQcmVzZW50aW5nQ29udGV4dCAqKWNvbnRleHQg
c3RvcEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlCiAKIEBlbmQKIAotI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKKyNlbGlmIFBMQVRGT1JNKElPU01BQykgLy8gUExBVEZPUk0oTUFDKQorCitAaW50ZXJm
YWNlIFdlYlJldmVhbEhpZ2hsaWdodCA8VUlSVlByZXNlbnRlckhpZ2hsaWdodERlbGVnYXRlPiA6
IE5TT2JqZWN0IHsKK0Bwcml2YXRlCisgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBfaW1hZ2U7
CisgICAgQ0dSZWN0IF9oaWdobGlnaHRSZWN0OworICAgIEJPT0wgX2hpZ2hsaWdodGluZzsKKyAg
ICBVSVZpZXcgKl92aWV3OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhIaWdobGlnaHRS
ZWN0OihOU1JlY3QpaGlnaGxpZ2h0UmVjdCB2aWV3OihVSVZpZXcgKil2aWV3IGltYWdlOihSZWZQ
dHI8V2ViQ29yZTo6SW1hZ2U+JiYpaW1hZ2U7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdl
YlJldmVhbEhpZ2hsaWdodAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhIaWdobGlnaHRSZWN0
OihOU1JlY3QpaGlnaGxpZ2h0UmVjdCB2aWV3OihVSVZpZXcgKil2aWV3IGltYWdlOihSZWZQdHI8
V2ViQ29yZTo6SW1hZ2U+JiYpaW1hZ2UKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRd
KSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICBfaGlnaGxpZ2h0UmVjdCA9IGhpZ2hs
aWdodFJlY3Q7CisgICAgX3ZpZXcgPSB2aWV3OworICAgIF9oaWdobGlnaHRpbmcgPSBOTzsKKyAg
ICBfaW1hZ2UgPSBpbWFnZTsKKyAgICAKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClz
ZXRJbWFnZTooUmVmUHRyPFdlYkNvcmU6OkltYWdlPiYmKWltYWdlCit7CisgICAgX2ltYWdlID0g
V1RGTW92ZShpbWFnZSk7Cit9CisKKy0gKE5TQXJyYXkgPE5TVmFsdWUgKj4gKiloaWdobGlnaHRS
ZWN0c0Zvckl0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7Cisg
ICAgcmV0dXJuIEBbW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Ol9oaWdobGlnaHRSZWN0XV07Cit9
CisKKy0gKHZvaWQpc3RhcnRIaWdobGlnaHRpbmdJdGVtOihSVkl0ZW0gKilpdGVtCit7CisgICAg
VU5VU0VEX1BBUkFNKGl0ZW0pOworICAgIF9oaWdobGlnaHRpbmcgPSBZRVM7Cit9CisKKy0gKHZv
aWQpaGlnaGxpZ2h0SXRlbTooUlZJdGVtICopaXRlbSB3aXRoUHJvZ3Jlc3M6KENHRmxvYXQpcHJv
Z3Jlc3MKK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAgVU5VU0VEX1BBUkFNKHByb2dy
ZXNzKTsKK30KKworLSAodm9pZCljb21wbGV0ZUhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0
ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7Cit9CisKKy0gKHZvaWQpc3RvcEhpZ2hsaWdo
dGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAg
X2hpZ2hsaWdodGluZyA9IE5POworfQorCistICh2b2lkKWhpZ2hsaWdodFJhbmdlQ2hhbmdlZEZv
ckl0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7Cit9CisKKy0g
KEJPT0wpaGlnaGxpZ2h0aW5nCit7CisgICAgcmV0dXJuIF9oaWdobGlnaHRpbmc7Cit9CisKKy0g
KHZvaWQpZHJhd0hpZ2hsaWdodENvbnRlbnRGb3JJdGVtOihSVkl0ZW0gKilpdGVtIGNvbnRleHQ6
KENHQ29udGV4dFJlZiljb250ZXh0Cit7CisgICAgTlNBcnJheSA8TlNWYWx1ZSAqPiAqcmVjdHMg
PSBbc2VsZiBoaWdobGlnaHRSZWN0c0Zvckl0ZW06aXRlbV07CisgICAgaWYgKCFyZWN0cy5jb3Vu
dCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFVJVmlldyAqdGV4dENvbnRlbnRWaWV3ID0g
X3ZpZXc7CisgICAgCisgICAgQ0dSZWN0IGhpZ2hsaWdodFJlY3QgPSByZWN0cy5maXJzdE9iamVj
dC5DR1JlY3RWYWx1ZTsKKyAgICBmb3IgKE5TVUludGVnZXIgaSA9IDE7IGkgPCByZWN0cy5jb3Vu
dDsgaSsrKQorICAgICAgICBoaWdobGlnaHRSZWN0ID0gQ0dSZWN0VW5pb24oaGlnaGxpZ2h0UmVj
dCwgcmVjdHNbaV0uQ0dSZWN0VmFsdWUpOworICAgIGhpZ2hsaWdodFJlY3QgPSBbdGV4dENvbnRl
bnRWaWV3IGNvbnZlcnRSZWN0OmhpZ2hsaWdodFJlY3QgZnJvbVZpZXc6bmlsXTsKKyAgICAKKyAg
ICBXZWJDb3JlOjpDR0NvbnRleHRTdGF0ZVNhdmVyIHNhdmVTdGF0ZShjb250ZXh0KTsKKyAgICBD
R0FmZmluZVRyYW5zZm9ybSBjb250ZXh0VHJhbnNmb3JtID0gQ0dDb250ZXh0R2V0Q1RNKGNvbnRl
eHQpOworICAgIENHRmxvYXQgYmFja2luZ1NjYWxlID0gY29udGV4dFRyYW5zZm9ybS5hOworICAg
IENHRmxvYXQgaU9TTWFjU2NhbGVGYWN0b3IgPSBbZ2V0VUlBcHBsaWNhdGlvbkNsYXNzKCkgc2hh
cmVkQXBwbGljYXRpb25dLl9pT1NNYWNTY2FsZTsKKyAgICBDR0FmZmluZVRyYW5zZm9ybSB0cmFu
c2Zvcm0gPSBDR0FmZmluZVRyYW5zZm9ybU1ha2VTY2FsZShpT1NNYWNTY2FsZUZhY3RvciAqIGJh
Y2tpbmdTY2FsZSwgaU9TTWFjU2NhbGVGYWN0b3IgKiBiYWNraW5nU2NhbGUpOworICAgIENHQ29u
dGV4dFNldENUTShjb250ZXh0LCB0cmFuc2Zvcm0pOworICAgIAorICAgIGZvciAoTlNWYWx1ZSAq
diBpbiByZWN0cykgeworICAgICAgICBDR1JlY3QgaW1nU3JjUmVjdCA9IFt0ZXh0Q29udGVudFZp
ZXcgY29udmVydFJlY3Q6di5DR1JlY3RWYWx1ZSBmcm9tVmlldzpuaWxdOworICAgICAgICBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2VSZWYgPSBfaW1hZ2UtPm5hdGl2ZUltYWdlKCk7CisgICAg
ICAgIENHUmVjdCBvcmlnaW4gPSBDR1JlY3RNYWtlKGltZ1NyY1JlY3Qub3JpZ2luLnggLSBoaWdo
bGlnaHRSZWN0Lm9yaWdpbi54LCBpbWdTcmNSZWN0Lm9yaWdpbi55IC0gaGlnaGxpZ2h0UmVjdC5v
cmlnaW4ueSwgaGlnaGxpZ2h0UmVjdC5zaXplLndpZHRoLCBoaWdobGlnaHRSZWN0LnNpemUuaGVp
Z2h0KTsKKyAgICAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQsIG9yaWdpbiwgaW1hZ2VS
ZWYuZ2V0KCkpOworICAgIH0KKyAgICAKK30KKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0o
SU9TTUFDKQogCiAjZW5kaWYgLy8gRU5BQkxFKFJFVkVBTCkKIApAQCAtMzIxLDcgKzQzOCw3IEBA
IHN0ZDo6dHVwbGU8TlNTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5ICo+IERpY3Rpb25hcnlMb29rdXA6
OnN0cmluZ0ZvclBERlNlbGVjdGlvbihQCiAgICAgCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdBVENI
KQogCi1zdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9u
Q29udHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIsIGNvbnN0IERpY3Rpb25h
cnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8sIE5TVmlldyAqdmlldywgY29uc3QgV1RG
OjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3ImKT4mIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRp
b25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4mIHJv
b3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBj
bGVhclRleHRJbmRpY2F0b3IpCitzdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9y
Q3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIs
IGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8sIFJldmVhbFZp
ZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0
SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRS
ZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yKQogewogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKICAgICAKQEAgLTM3OSw3ICs0OTYsMjMgQEAgc3RhdGljIFdLUmV2
ZWFsQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBj
cmVhdGVBbmltYXQKICAgICBbcHJlc2VudGVyIHJldmVhbEl0ZW06aXRlbS5nZXQoKSBkb2N1bWVu
dENvbnRleHQ6bmlsIHByZXNlbnRpbmdDb250ZXh0OmNvbnRleHQuZ2V0KCkgb3B0aW9uczpuaWxd
OwogICAgIHJldHVybiBuaWw7CiAgICAgCi0jZWxzZSAvLyBQTEFURk9STShNQUMpCisjZWxpZiBQ
TEFURk9STShJT1NNQUMpCisgICAgCisgICAgVU5VU0VEX1BBUkFNKHRleHRJbmRpY2F0b3JJbnN0
YWxsYXRpb25DYWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKHJvb3RWaWV3VG9WaWV3Q29udmVy
c2lvbkNhbGxiYWNrKTsKKyAgICBVTlVTRURfUEFSQU0oY2xlYXJUZXh0SW5kaWNhdG9yKTsKKyAg
ICBBU1NFUlRfVU5VU0VEKGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIsICFjcmVhdGVBbmltYXRp
b25Db250cm9sbGVyKTsKKworICAgIGF1dG8gdGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6
OmNyZWF0ZShkaWN0aW9uYXJ5UG9wdXBJbmZvLnRleHRJbmRpY2F0b3IpOworICAgIAorICAgIFJl
dGFpblB0cjxXZWJSZXZlYWxIaWdobGlnaHQ+IHdlYkhpZ2hsaWdodCA9IGFkb3B0TlMoW1tXZWJS
ZXZlYWxIaWdobGlnaHQgYWxsb2NdIGluaXRXaXRoSGlnaGxpZ2h0UmVjdDpbdmlldyBjb252ZXJ0
UmVjdDp0ZXh0SW5kaWNhdG9yLT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkg
dG9WaWV3Om5pbF0gdmlldzp2aWV3IGltYWdlOnRleHRJbmRpY2F0b3ItPmNvbnRlbnRJbWFnZSgp
XSk7CisgICAgCisgICAgUmV0YWluUHRyPFJWSXRlbT4gaXRlbSA9IGFkb3B0TlMoW2FsbG9jUlZJ
dGVtSW5zdGFuY2UoKSBpbml0V2l0aFRleHQ6ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVk
U3RyaW5nLmdldCgpLnN0cmluZyBzZWxlY3RlZFJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXSk7Cisg
ICAgCisgICAgW1VJTlNTaGFyZWRSZXZlYWxDb250cm9sbGVyKCkgcmV2ZWFsSXRlbTppdGVtLmdl
dCgpIGxvY2F0aW9uSW5XaW5kb3c6ZGljdGlvbmFyeVBvcHVwSW5mby5vcmlnaW4gd2luZG93OnZp
ZXcud2luZG93IGhpZ2hsaWdodGVyOihpZDxVSVJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+
KSB3ZWJIaWdobGlnaHQuZ2V0KCldOworICAgIHJldHVybiBuaWw7CisgICAgCisjZWxzZSAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQogICAgIAogICAgIFVOVVNFRF9QQVJBTShjcmVhdGVBbmltYXRp
b25Db250cm9sbGVyKTsKICAgICBVTlVTRURfUEFSQU0oZGljdGlvbmFyeVBvcHVwSW5mbyk7CkBA
IC0zODksMTMgKzUyMiwxMyBAQCBzdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9y
Q3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdAogICAgIFVOVVNFRF9Q
QVJBTShjbGVhclRleHRJbmRpY2F0b3IpOwogICAgIAogICAgIHJldHVybiBuaWw7Ci0jZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgCiAg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICAKIH0KIAotdm9pZCBEaWN0aW9uYXJ5
TG9va3VwOjpzaG93UG9wdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBv
cHVwSW5mbywgTlNWaWV3ICp2aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGlj
YXRvciYpPiYgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1
bmN0aW9uPEZsb2F0UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2Fs
bGJhY2ssIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikKK3ZvaWQg
RGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRp
Y3Rpb25hcnlQb3B1cEluZm8sIFJldmVhbFZpZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rpb248
dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ss
IGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmll
d0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5k
aWNhdG9yKQogewogICAgIHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihmYWxz
ZSwgZGljdGlvbmFyeVBvcHVwSW5mbywgdmlldywgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNh
bGxiYWNrLCByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGTW92ZShjbGVhclRl
eHRJbmRpY2F0b3IpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0RpY3Rpb25hcnlMb29rdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25h
cnlMb29rdXAuaAppbmRleCBmOGY3NjFjZGM4MWFlYmQzZGYwODgzN2EzMjMxYzA4ZjM1YTRmZWI5
Li4xNjMxOTY3ZmY5MmFkZjhhODg5NWY3ZmVjNTc4MmQ4YzYxMjNhNjM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oCkBAIC0zNCwxMiArMzQsMTUg
QEAKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogT0JKQ19DTEFTUyBOU1ZpZXc7CitPQkpD
X0NMQVNTIFVJVmlldzsKIE9CSkNfQ0xBU1MgUERGU2VsZWN0aW9uOwogCiAjaWYgUExBVEZPUk0o
TUFDKQogdHlwZWRlZiBpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPiBX
S1JldmVhbENvbnRyb2xsZXI7Cit1c2luZyBSZXZlYWxWaWV3ID0gTlNWaWV3OwogI2Vsc2UKIHR5
cGVkZWYgaWQgV0tSZXZlYWxDb250cm9sbGVyOwordXNpbmcgUmV2ZWFsVmlldyA9IFVJVmlldzsK
ICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU2LDcg
KzU5LDcgQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6IFNob3VsZCBtb3ZlL3VuaWZ5IGRpY3Rp
b25hcnlQb3B1cEluZm9Gb3JSYW5nZSBoZXJlIHRvby4KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyB2b2lkIHNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiwgTlNWaWV3ICos
IGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9y
SW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0
UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayA9IG51bGxwdHIsIFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvciA9IG51bGxwdHIpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJ
bmZvJiwgUmV2ZWFsVmlldyAqLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRv
ciYpPiYgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0
aW9uPEZsb2F0UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJh
Y2sgPSBudWxscHRyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjbGVhclRleHRJbmRpY2F0b3Ig
PSBudWxscHRyKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBoaWRlUG9wdXAoKTsK
ICAgICAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
aW5kZXggMTQ5NzE0YWIxZDIyNjVhNjgzNGQ1N2VmNDdiMTE2ZWE0ZTI5ZTM1MS4uZWFkOTE1ZjA5
NDVkYmRhNWJiNjY2NDk3ZDUzMmZhOTQwMjIyN2ZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bh
Z2VDbGllbnQuaApAQCAtMzAzLDYgKzMwMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dEluZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhclRl
eHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlv
bikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jl
c3MoZmxvYXQpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25h
cnlMb29rdXAoY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpID0gMDsKICNlbmRp
ZgogCiAgICAgdmlydHVhbCB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29u
c3QgTGF5ZXJUcmVlQ29udGV4dCYpID0gMDsKQEAgLTMxMiw3ICszMTQsNiBAQCBwdWJsaWM6CiAj
aWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9j
dXNDaGFuZ2VkKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29s
IHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyLCBQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2ViQ29yZTo6RGlj
dGlvbmFyeVBvcHVwSW5mbyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25Q
YW5lbChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0
cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVy
bmF0aXZlVGV4dCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGRpc21pc3NDb3JyZWN0aW9uUGFu
ZWxTb29uKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5k
ZXggODc3YzgxMzdmMzMxNjU4MmFjNTQzM2VlZDViMTdiZGFiMjUzOWQ5Zi4uNWRhNmY5OWJmNTI0
MDIzMzAzZDg3MWRhMDdiZjcyZTE2YWZjYjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTEzNCw2ICsxMzQsOCBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGxheWVyVHJlZUNvbW1pdENvbXBsZXRlKCkg
b3ZlcnJpZGU7CisgICAgICAgIAorICAgIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAo
Y29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpIG92ZXJyaWRlOwogCiAgICAgdm9p
ZCBjb3VsZE5vdFJlc3RvcmVQYWdlU3RhdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlc3RvcmVQ
YWdlU3RhdGUoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYsIGRvdWJsZSkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0KaW5kZXggN2UwNjNkYTFkMzhjMDVlYTM2ZjIxMDliMjBmZDc0MTRjMjBiNzUzMi4uYjIzN2Vm
NTA1MmFmMzc1YzFlYzU2NDdiN2JkYjI4MWUwN2ZhNDhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNTQsNiArNTQsNyBAQAog
I2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5
LmgiCiAjaW1wb3J0ICJfV0tEb3dubG9hZEludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL0Rp
Y3Rpb25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJvbWlz
ZWRBdHRhY2htZW50SW5mby5oPgpAQCAtNDUzLDYgKzQ1NCwxNSBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250
ZXh0JikKIHsKIH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlM
b29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbykKK3sK
KyNpZiBFTkFCTEUoUkVWRUFMKQorICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0
aW9uYXJ5UG9wdXBJbmZvLCBtX2NvbnRlbnRWaWV3LCBudWxscHRyKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGRpY3Rpb25hcnlQb3B1cEluZm8pOworI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwp
Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFJlbW90ZUxheWVyVHJlZVJvb3ROb2RlKFJl
bW90ZUxheWVyVHJlZU5vZGUqIHJvb3ROb2RlKQogewogICAgIFttX2NvbnRlbnRWaWV3IF9zZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdFZpZXc6cm9vdE5vZGUgPyByb290Tm9kZS0+dWlWaWV3
KCkgOiBuaWxdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KaW5kZXggMTFhNzQ2NzM5Zjc2YmY3MjNjM2JhODAxMTZhZGRkZTkzYWI0ODIxMC4uYjli
ZDcwYzliZWUxMDY5ZTFiNGYxMjMwOThiOWNhZTEyZDY0ODdjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC05ODEsOSArOTgxLDkgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldEZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRleCh1aW50MzJf
dCBpbmRleCwgYm9vbCBhbGxvd011bHQKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6U2V0Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGluZGV4LCBhbGxvd011bHRpcGxl
U2VsZWN0aW9uKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9y
bURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVw
SW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHBhZ2VDbGllbnQoKS5kaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChkaWN0aW9uYXJ5UG9wdXBJ
bmZvKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNhdmVQREZUb1RlbXBvcmFyeUZvbGRlckFu
ZE9wZW5XaXRoTmF0aXZlQXBwbGljYXRpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQppbmRl
eCA4Y2U1NjVmYjk1NmYzNmNiNzUyZWY4MTFhMTI0NWViNTVkZGNmOWIzLi4zNmM5YjM1MjYxMjg4
YmQ1ZTMxNjkxZWRmMDFlODk2YTRmYTRjMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCkBAIC0xNzUsNiArMTc1
LDEwIEBAIERpY3Rpb25hcnlQb3B1cEluZm8gV2ViUGFnZTo6ZGljdGlvbmFyeVBvcHVwSW5mb0Zv
clJhbmdlKEZyYW1lJiBmcmFtZSwgUmFuZ2UmIHJhCiAgICAgZGljdGlvbmFyeVBvcHVwSW5mby5h
dHRyaWJ1dGVkU3RyaW5nID0gc2NhbGVkTlNBdHRyaWJ1dGVkU3RyaW5nOwogI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykKICAgICAKKyNpZiBQTEFURk9STShJT1NNQUMpCisgICAgZGljdGlvbmFyeVBv
cHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nID0gYWRvcHROUyhbW05TTXV0YWJsZUF0dHJpYnV0ZWRT
dHJpbmcgYWxsb2NdIGluaXRXaXRoU3RyaW5nOnJhbmdlLnRleHQoKV0pOworI2VuZGlmIC8vIFBM
QVRGT1JNKElPU01BQykKKyAgICAKICAgICBlZGl0b3Iuc2V0SXNHZXR0aW5nRGljdGlvbmFyeVBv
cHVwSW5mbyhmYWxzZSk7CiAgICAgcmV0dXJuIGRpY3Rpb25hcnlQb3B1cEluZm87CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359219</attachid>
            <date>2019-01-15 16:19:08 -0800</date>
            <delta_ts>2019-01-15 16:41:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193408-20190115161907.patch</filename>
            <type>text/plain</type>
            <size>18967</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5ODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMzMxMzFjMTdmZjNk
MjFjYjk1MDUxMzgxYzAwZDU4YTYwNTg4OC4uMzIxMWU0MjE5M2FkYTUzNmQzYmExYzgwYTNkNzc0
ZDQ5YjQ0NDZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTAxLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVh
bCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNDA4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzMwMDY5OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIGlPU01hYyBhbmQgUmV2
ZWFsIGFyZSBjdXJyZW50bHkgbm90IHRlc3RhYmxlLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciB0aGUgcmV2ZWFsIFNQSSBzcGVjaWZpY2FsbHkgZm9yIGlPU01hYy4KKyAgICAgICAgU2hvdyB0
aGUgY29udHJvbGxlciB3aGVuIGNhbGxlZCwgYW5kIGltcGxlbWVudCB0aGUgZGVsZWdhdGUgdG8g
CisgICAgICAgIGNvcnJlY3RseSByZS1wYWludCB0aGUgY29udGVudCB3aXRoIHRoZSBhdXRvLWdl
bmVyYXRlZCBoaWdobGlnaHQgZnJvbQorICAgICAgICB0aGUgcmV2ZWFsIGZyYW1ld29yay4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAgICAgICogZWRp
dGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tOgorICAgICAgICAoLVtXZWJSZXZlYWxIaWdo
bGlnaHQgaW5pdFdpdGhIaWdobGlnaHRSZWN0OnZpZXc6XSk6CisgICAgICAgICgtW1dlYlJldmVh
bEhpZ2hsaWdodCBzZXRJbWFnZTpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhp
Z2hsaWdodFJlY3RzRm9ySXRlbTpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHN0
YXJ0SGlnaGxpZ2h0aW5nSXRlbTpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhp
Z2hsaWdodEl0ZW06d2l0aFByb2dyZXNzOl0pOgorICAgICAgICAoLVtXZWJSZXZlYWxIaWdobGln
aHQgY29tcGxldGVIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAgICAoLVtXZWJSZXZlYWxIaWdo
bGlnaHQgc3RvcEhpZ2hsaWdodGluZ0l0ZW06XSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hs
aWdodCBoaWdobGlnaHRSYW5nZUNoYW5nZWRGb3JJdGVtOl0pOgorICAgICAgICAoLVtXZWJSZXZl
YWxIaWdobGlnaHQgaGlnaGxpZ2h0aW5nXSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdo
dCBkcmF3SGlnaGxpZ2h0Q29udGVudEZvckl0ZW06Y29udGV4dDpdKToKKyAgICAgICAgKFdlYkNv
cmU6OnNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXApOgorICAgICAgICAqIGVkaXRpbmcvbWFj
L0RpY3Rpb25hcnlMb29rdXAuaDoKKwogMjAxOS0wMS0xMSAgTWlndWVsIEdvbWV6ICA8bWFnb21l
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEdhcmJsZWQgcmVuZGVyaW5nIG9uIFlvdXR1
YmUgd2hpbGUgc2Nyb2xsaW5nIHVuZGVyIFgxMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDVhMTBk
NzQ5MTU5OTA2NjEyOTRlOTIwZDg3ZWFiODEwMDJiMjdlZmIuLmY3MmJjMjdhODE0MjMyN2QxYTdh
YTZlMGVlNmNmZDRjZDRmMDljNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDE5LTAxLTE0ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIFJldmVhbCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDA4CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80NzMwMDY5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAg
ICAgIEFkZCBhZGRpdGlvbmFsIG5lZWRlZCBTUEkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29h
L1JldmVhbFNQSS5oOgorCiAyMDE5LTAxLTEwICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIE92ZXJyaWRlIHRoZSBzZXNzaW9uIGNvbmZpZ3VyYXRpb24gZm9y
IGNvb2tpZUFjY2VwdFBvbGljeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkNTNjYzMzYzY5MjdlNjFhYTRlNjlkYWU5
MGRhODA1MTI1N2RlOTI1Li43NjllZWI5OTc2MjYxZTFkZDQ3NGZlNDE3N2ViMWU4MzMwZTlmYTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTAxLTE0ICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVhbCBzdXBwb3J0IGlu
IGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkzNDA4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzMwMDY5OT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBjYWxscyB0byBEaWN0aW9uYXJ5TG9v
a3VwIGZyb20gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Q
YWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXApOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5nZSk6CisKIDIwMTktMDEtMTEg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cm9k
dWNlIElETCBmaWxlcyBmb3IgcnVudGltZS1lbmFibGVkIFVuZG9NYW5hZ2VyIGFuZCBVbmRvSXRl
bSBKYXZhU2NyaXB0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y29jb2EvUmV2ZWFsU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZl
YWxTUEkuaAppbmRleCA4MmI3YzRhMDkxYmM5ZGRiYzk0NjJiNTg3MTlhYjUzMzkxYjQ3MGY0Li4z
OWRiYTVjN2I2ODkwNWQwYjBiZDAzYjg3YzU5Y2Y3N2M2MGExYzI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaApAQCAtNDQsOSArNDQsOSBAQCBTT0ZU
X0xJTktfQ0xBU1NfT1BUSU9OQUwoUmV2ZWFsQ29yZSwgUlZTZWxlY3Rpb24pCiAjaW1wb3J0IDxS
ZXZlYWwvUlZQcmVzZW50ZXIuaD4KICNpbXBvcnQgPFJldmVhbC9SZXZlYWwuaD4KICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCisjaW1wb3J0IDxSZXZlYWxDb3JlL1JWSXRlbV9Qcml2YXRlLmg+CiAj
aW1wb3J0IDxSZXZlYWxDb3JlL1JWU2VsZWN0aW9uLmg+CiAjaW1wb3J0IDxSZXZlYWxDb3JlL1Jl
dmVhbENvcmUuaD4KLQogI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IGRlZjdkZmI5NWE0M2Uw
YWIyOWRmN2QwMjgwMTYwMTNlNDU2M2IxYjUuLmM0YjhkY2M4NjkxMWEzNzQ2NTg1NzY1ZGVlNTZi
ZWRhNzU5ZjZlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9V
SUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5o
CkBAIC00Nyw5ICs0NywxMCBAQCBXVEZfRVhURVJOX0NfRU5ECiBAaW50ZXJmYWNlIFVJQXBwbGlj
YXRpb24gKCkKICsgKFVJQXBwbGljYXRpb25TY2VuZUNsYXNzaWNNb2RlKV9jbGFzc2ljTW9kZTsK
IC0gKEdTS2V5Ym9hcmRSZWYpX2hhcmR3YXJlS2V5Ym9hcmQ7CistIChDR0Zsb2F0KV9pT1NNYWNT
Y2FsZTsKIEBlbmQKIAotI2Vsc2UKKyNlbHNlIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAK
ICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQppbmRleCA2NzFhYzlhYjMwYTU5ZmRhODk0MWYzODQ1
YzNlYThiYmE5ZTU0ZjIxLi4wNjE3MTc0ZDBlMzA3ZmMyMTcyZWEyZTA5OGQ1ZWU2ODg5OWQ3Mzg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29r
dXAubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3Vw
Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbXBv
cnQgIkZyYW1lLmgiCiAjaW1wb3J0ICJGcmFtZVNlbGVjdGlvbi5oIgorI2ltcG9ydCAiR3JhcGhp
Y3NDb250ZXh0Q0cuaCIKICNpbXBvcnQgIkhUTUxDb252ZXJ0ZXIuaCIKICNpbXBvcnQgIkhpdFRl
c3RSZXN1bHQuaCIKICNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCkBAIC00NSwxNyArNDYsMzAg
QEAKICNpbXBvcnQgIlZpc2libGVQb3NpdGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVNlbGVjdGlv
bi5oIgogI2ltcG9ydCAiVmlzaWJsZVVuaXRzLmgiCisjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVH
cmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvaW9zL1VJS2l0U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29rdXBT
UEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYv
UmVmUHRyLmg+CiAKICNpZiAhUExBVEZPUk0oV0FUQ0gpCi0KICNpbXBvcnQgPFBERktpdC9QREZL
aXQuaD4KLQogI2VuZGlmIC8vICFQTEFURk9STShXQVRDSCkKIAorI2lmIFBMQVRGT1JNKElPU01B
QykKK2V4dGVybiAiQyIgeworI2ltcG9ydCA8VUlLaXRNYWNIZWxwZXIvVUlOU1JldmVhbENvbnRy
b2xsZXIuaD4KK30KK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhVSUtpdE1hY0hlbHBlcikK
K1NPRlRfTElOSyhVSUtpdE1hY0hlbHBlciwgVUlOU1NoYXJlZFJldmVhbENvbnRyb2xsZXIsIGlk
PFVJTlNSZXZlYWxDb250cm9sbGVyPiwgKHZvaWQpLCAoKSkKKworU09GVF9MSU5LX0ZSQU1FV09S
SyhVSUtpdCkKK1NPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlBcHBsaWNhdGlvbikKKworCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TTUFDKQorCiAjaWYgUExBVEZPUk0oTUFDKQogCiBAaW50ZXJmYWNl
IFdlYlJldmVhbEhpZ2hsaWdodCA8UlZQcmVzZW50ZXJIaWdobGlnaHREZWxlZ2F0ZT4gOiBOU09i
amVjdCB7CkBAIC0xNDEsNyArMTU1LDEwOCBAQCAtICh2b2lkKXJldmVhbENvbnRleHQ6KFJWUHJl
c2VudGluZ0NvbnRleHQgKiljb250ZXh0IHN0b3BIaWdobGlnaHRpbmdJdGVtOihSVkl0ZQogCiBA
ZW5kCiAKLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCisjZWxpZiBQTEFURk9STShJT1NNQUMpIC8v
IFBMQVRGT1JNKE1BQykKKworQGludGVyZmFjZSBXZWJSZXZlYWxIaWdobGlnaHQgPFVJUlZQcmVz
ZW50ZXJIaWdobGlnaHREZWxlZ2F0ZT4gOiBOU09iamVjdCB7CitAcHJpdmF0ZQorICAgIFJlZlB0
cjxXZWJDb3JlOjpJbWFnZT4gX2ltYWdlOworICAgIENHUmVjdCBfaGlnaGxpZ2h0UmVjdDsKKyAg
ICBCT09MIF9oaWdobGlnaHRpbmc7CisgICAgVUlWaWV3ICpfdmlldzsKK30KKworLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdodFJlY3Qgdmlldzoo
VUlWaWV3ICopdmlldyBpbWFnZTooUmVmUHRyPFdlYkNvcmU6OkltYWdlPiYmKWltYWdlOworCitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJSZXZlYWxIaWdobGlnaHQKKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdodFJlY3QgdmlldzooVUlW
aWV3ICopdmlldyBpbWFnZTooUmVmUHRyPFdlYkNvcmU6OkltYWdlPiYmKWltYWdlCit7CisgICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisg
ICAgX2hpZ2hsaWdodFJlY3QgPSBoaWdobGlnaHRSZWN0OworICAgIF92aWV3ID0gdmlldzsKKyAg
ICBfaGlnaGxpZ2h0aW5nID0gTk87CisgICAgX2ltYWdlID0gaW1hZ2U7CisgICAgCisgICAgcmV0
dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4m
JilpbWFnZQoreworICAgIF9pbWFnZSA9IFdURk1vdmUoaW1hZ2UpOworfQorCistIChOU0FycmF5
PE5TVmFsdWUgKj4gKiloaWdobGlnaHRSZWN0c0Zvckl0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAg
ICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAgcmV0dXJuIEBbW05TVmFsdWUgdmFsdWVXaXRoQ0dS
ZWN0Ol9oaWdobGlnaHRSZWN0XV07Cit9CisKKy0gKHZvaWQpc3RhcnRIaWdobGlnaHRpbmdJdGVt
OihSVkl0ZW0gKilpdGVtCit7CisgICAgVU5VU0VEX1BBUkFNKGl0ZW0pOworICAgIF9oaWdobGln
aHRpbmcgPSBZRVM7Cit9CisKKy0gKHZvaWQpaGlnaGxpZ2h0SXRlbTooUlZJdGVtICopaXRlbSB3
aXRoUHJvZ3Jlc3M6KENHRmxvYXQpcHJvZ3Jlc3MKK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7
CisgICAgVU5VU0VEX1BBUkFNKHByb2dyZXNzKTsKK30KKworLSAodm9pZCljb21wbGV0ZUhpZ2hs
aWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7Cit9
CisKKy0gKHZvaWQpc3RvcEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBV
TlVTRURfUEFSQU0oaXRlbSk7CisgICAgX2hpZ2hsaWdodGluZyA9IE5POworfQorCistICh2b2lk
KWhpZ2hsaWdodFJhbmdlQ2hhbmdlZEZvckl0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVT
RURfUEFSQU0oaXRlbSk7Cit9CisKKy0gKEJPT0wpaGlnaGxpZ2h0aW5nCit7CisgICAgcmV0dXJu
IF9oaWdobGlnaHRpbmc7Cit9CisKKy0gKHZvaWQpZHJhd0hpZ2hsaWdodENvbnRlbnRGb3JJdGVt
OihSVkl0ZW0gKilpdGVtIGNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0Cit7CisgICAgTlNB
cnJheSA8TlNWYWx1ZSAqPiAqcmVjdHMgPSBbc2VsZiBoaWdobGlnaHRSZWN0c0Zvckl0ZW06aXRl
bV07CisgICAgaWYgKCFyZWN0cy5jb3VudCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIENH
UmVjdCBoaWdobGlnaHRSZWN0ID0gcmVjdHMuZmlyc3RPYmplY3QuQ0dSZWN0VmFsdWU7CisgICAg
Zm9yIChOU1ZhbHVlICpyZWN0IGluIHJlY3RzKQorICAgICAgICBoaWdobGlnaHRSZWN0ID0gQ0dS
ZWN0VW5pb24oaGlnaGxpZ2h0UmVjdCwgcmVjdC5DR1JlY3RWYWx1ZSk7CisgICAgaGlnaGxpZ2h0
UmVjdCA9IFtfdmlldyBjb252ZXJ0UmVjdDpoaWdobGlnaHRSZWN0IGZyb21WaWV3Om5pbF07Cisg
ICAgCisgICAgV2ViQ29yZTo6Q0dDb250ZXh0U3RhdGVTYXZlciBzYXZlU3RhdGUoY29udGV4dCk7
CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gY29udGV4dFRyYW5zZm9ybSA9IENHQ29udGV4dEdldENU
TShjb250ZXh0KTsKKyAgICBDR0Zsb2F0IGJhY2tpbmdTY2FsZSA9IGNvbnRleHRUcmFuc2Zvcm0u
YTsKKyAgICBDR0Zsb2F0IGlPU01hY1NjYWxlRmFjdG9yID0gW2dldFVJQXBwbGljYXRpb25DbGFz
cygpIHNoYXJlZEFwcGxpY2F0aW9uXS5faU9TTWFjU2NhbGU7CisgICAgQ0dBZmZpbmVUcmFuc2Zv
cm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoaU9TTWFjU2NhbGVGYWN0
b3IgKiBiYWNraW5nU2NhbGUsIGlPU01hY1NjYWxlRmFjdG9yICogYmFja2luZ1NjYWxlKTsKKyAg
ICBDR0NvbnRleHRTZXRDVE0oY29udGV4dCwgdHJhbnNmb3JtKTsKKyAgICAKKyAgICBmb3IgKE5T
VmFsdWUgKnYgaW4gcmVjdHMpIHsKKyAgICAgICAgQ0dSZWN0IGltZ1NyY1JlY3QgPSBbX3ZpZXcg
Y29udmVydFJlY3Q6di5DR1JlY3RWYWx1ZSBmcm9tVmlldzpuaWxdOworICAgICAgICBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4gaW1hZ2VSZWYgPSBfaW1hZ2UtPm5hdGl2ZUltYWdlKCk7CisgICAgICAg
IENHUmVjdCBvcmlnaW4gPSBDR1JlY3RNYWtlKGltZ1NyY1JlY3Qub3JpZ2luLnggLSBoaWdobGln
aHRSZWN0Lm9yaWdpbi54LCBpbWdTcmNSZWN0Lm9yaWdpbi55IC0gaGlnaGxpZ2h0UmVjdC5vcmln
aW4ueSwgaGlnaGxpZ2h0UmVjdC5zaXplLndpZHRoLCBoaWdobGlnaHRSZWN0LnNpemUuaGVpZ2h0
KTsKKyAgICAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQsIG9yaWdpbiwgaW1hZ2VSZWYu
Z2V0KCkpOworICAgIH0KK30KKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TTUFDKQog
CiAjZW5kaWYgLy8gRU5BQkxFKFJFVkVBTCkKIApAQCAtMzIxLDcgKzQzNiw3IEBAIHN0ZDo6dHVw
bGU8TlNTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5ICo+IERpY3Rpb25hcnlMb29rdXA6OnN0cmluZ0Zv
clBERlNlbGVjdGlvbihQCiAgICAgCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdBVENIKQogCi1zdGF0
aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxl
cihib29sIGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIsIGNvbnN0IERpY3Rpb25hcnlQb3B1cElu
Zm8mIGRpY3Rpb25hcnlQb3B1cEluZm8sIE5TVmlldyAqdmlldywgY29uc3QgV1RGOjpGdW5jdGlv
bjx2b2lkKFRleHRJbmRpY2F0b3ImKT4mIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFj
aywgY29uc3QgV1RGOjpGdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4mIHJvb3RWaWV3VG9W
aWV3Q29udmVyc2lvbkNhbGxiYWNrLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjbGVhclRleHRJ
bmRpY2F0b3IpCitzdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9yQ3JlYXRlQW5p
bWF0aW9uQ29udHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIsIGNvbnN0IERp
Y3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8sIFJldmVhbFZpZXcgKnZpZXcs
IGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9y
SW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0
UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKICAgICAKQEAgLTM3OSw3ICs0OTQsMjMgQEAgc3RhdGljIFdLUmV2ZWFsQ29udHJv
bGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBjcmVhdGVBbmlt
YXQKICAgICBbcHJlc2VudGVyIHJldmVhbEl0ZW06aXRlbS5nZXQoKSBkb2N1bWVudENvbnRleHQ6
bmlsIHByZXNlbnRpbmdDb250ZXh0OmNvbnRleHQuZ2V0KCkgb3B0aW9uczpuaWxdOwogICAgIHJl
dHVybiBuaWw7CiAgICAgCi0jZWxzZSAvLyBQTEFURk9STShNQUMpCisjZWxpZiBQTEFURk9STShJ
T1NNQUMpCisgICAgCisgICAgVU5VU0VEX1BBUkFNKHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25D
YWxsYmFjayk7CisgICAgVU5VU0VEX1BBUkFNKHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxi
YWNrKTsKKyAgICBVTlVTRURfUEFSQU0oY2xlYXJUZXh0SW5kaWNhdG9yKTsKKyAgICBBU1NFUlRf
VU5VU0VEKGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIsICFjcmVhdGVBbmltYXRpb25Db250cm9s
bGVyKTsKKworICAgIGF1dG8gdGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZShk
aWN0aW9uYXJ5UG9wdXBJbmZvLnRleHRJbmRpY2F0b3IpOworICAgIAorICAgIFJldGFpblB0cjxX
ZWJSZXZlYWxIaWdobGlnaHQ+IHdlYkhpZ2hsaWdodCA9IGFkb3B0TlMoW1tXZWJSZXZlYWxIaWdo
bGlnaHQgYWxsb2NdIGluaXRXaXRoSGlnaGxpZ2h0UmVjdDpbdmlldyBjb252ZXJ0UmVjdDp0ZXh0
SW5kaWNhdG9yLT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkgdG9WaWV3Om5p
bF0gdmlldzp2aWV3IGltYWdlOnRleHRJbmRpY2F0b3ItPmNvbnRlbnRJbWFnZSgpXSk7CisgICAg
CisgICAgUmV0YWluUHRyPFJWSXRlbT4gaXRlbSA9IGFkb3B0TlMoW2FsbG9jUlZJdGVtSW5zdGFu
Y2UoKSBpbml0V2l0aFRleHQ6ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdl
dCgpLnN0cmluZyBzZWxlY3RlZFJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXSk7CisgICAgCisgICAg
W1VJTlNTaGFyZWRSZXZlYWxDb250cm9sbGVyKCkgcmV2ZWFsSXRlbTppdGVtLmdldCgpIGxvY2F0
aW9uSW5XaW5kb3c6ZGljdGlvbmFyeVBvcHVwSW5mby5vcmlnaW4gd2luZG93OnZpZXcud2luZG93
IGhpZ2hsaWdodGVyOihpZDxVSVJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+KSB3ZWJIaWdo
bGlnaHQuZ2V0KCldOworICAgIHJldHVybiBuaWw7CisgICAgCisjZWxzZSAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIAogICAgIFVOVVNFRF9QQVJBTShjcmVhdGVBbmltYXRpb25Db250cm9s
bGVyKTsKICAgICBVTlVTRURfUEFSQU0oZGljdGlvbmFyeVBvcHVwSW5mbyk7CkBAIC0zODksMTMg
KzUyMCwxMyBAQCBzdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9yQ3JlYXRlQW5p
bWF0aW9uQ29udHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdAogICAgIFVOVVNFRF9QQVJBTShjbGVh
clRleHRJbmRpY2F0b3IpOwogICAgIAogICAgIHJldHVybiBuaWw7Ci0jZW5kaWYgLy8gUExBVEZP
Uk0oTUFDKQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgCiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICAKIH0KIAotdm9pZCBEaWN0aW9uYXJ5TG9va3VwOjpz
aG93UG9wdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywg
TlNWaWV3ICp2aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiYg
dGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0aW9uPEZs
b2F0UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2ssIFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikKK3ZvaWQgRGljdGlvbmFy
eUxvb2t1cDo6c2hvd1BvcHVwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQ
b3B1cEluZm8sIFJldmVhbFZpZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0
SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdU
Rjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNp
b25DYWxsYmFjaywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yKQog
ewogICAgIHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihmYWxzZSwgZGljdGlv
bmFyeVBvcHVwSW5mbywgdmlldywgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBy
b290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGTW92ZShjbGVhclRleHRJbmRpY2F0
b3IpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25h
cnlMb29rdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXAu
aAppbmRleCBmOGY3NjFjZGM4MWFlYmQzZGYwODgzN2EzMjMxYzA4ZjM1YTRmZWI5Li4xNjMxOTY3
ZmY5MmFkZjhhODg5NWY3ZmVjNTc4MmQ4YzYxMjNhNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5oCkBAIC0zNCwxMiArMzQsMTUgQEAKICNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogT0JKQ19DTEFTUyBOU1ZpZXc7CitPQkpDX0NMQVNTIFVJ
VmlldzsKIE9CSkNfQ0xBU1MgUERGU2VsZWN0aW9uOwogCiAjaWYgUExBVEZPUk0oTUFDKQogdHlw
ZWRlZiBpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPiBXS1JldmVhbENv
bnRyb2xsZXI7Cit1c2luZyBSZXZlYWxWaWV3ID0gTlNWaWV3OwogI2Vsc2UKIHR5cGVkZWYgaWQg
V0tSZXZlYWxDb250cm9sbGVyOwordXNpbmcgUmV2ZWFsVmlldyA9IFVJVmlldzsKICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU2LDcgKzU5LDcgQEAg
cHVibGljOgogCiAgICAgLy8gRklYTUU6IFNob3VsZCBtb3ZlL3VuaWZ5IGRpY3Rpb25hcnlQb3B1
cEluZm9Gb3JSYW5nZSBoZXJlIHRvby4KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IHNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiwgTlNWaWV3ICosIGNvbnN0IFdU
Rjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0
aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiBy
b290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayA9IG51bGxwdHIsIFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvciA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyB2b2lkIHNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiwgUmV2
ZWFsVmlldyAqLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiYgdGV4
dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0aW9uPEZsb2F0
UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2sgPSBudWxs
cHRyLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjbGVhclRleHRJbmRpY2F0b3IgPSBudWxscHRy
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBoaWRlUG9wdXAoKTsKICAgICAKICNp
ZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMTQ5
NzE0YWIxZDIyNjVhNjgzNGQ1N2VmNDdiMTE2ZWE0ZTI5ZTM1MS4uZWFkOTE1ZjA5NDVkYmRhNWJi
NjY2NDk3ZDUzMmZhOTQwMjIyN2ZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aApAQCAtMzAzLDYgKzMwMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dElu
ZGljYXRvcihSZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0
b3JXaW5kb3dMaWZldGltZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRpY2F0
b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQp
ID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAo
Y29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpID0gMDsKICNlbmRpZgogCiAgICAg
dmlydHVhbCB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYpID0gMDsKQEAgLTMxMiw3ICszMTQsNiBAQCBwdWJsaWM6CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2Vk
KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIHBsdWdpbkhh
c0ZvY3VzQW5kV2luZG93SGFzRm9jdXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyLCBQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBv
cHVwSW5mbyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChXZWJD
b3JlOjpBbHRlcm5hdGl2ZVRleHRUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5k
aW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVy
bmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3ND
b3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4
dCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGRpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKFdl
YkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggODc3Yzgx
MzdmMzMxNjU4MmFjNTQzM2VlZDViMTdiZGFiMjUzOWQ5Zi4uNWRhNmY5OWJmNTI0MDIzMzAzZDg3
MWRhMDdiZjcyZTE2YWZjYjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTEzNCw2ICsxMzQsOCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24m
KSBvdmVycmlkZTsKICAgICB2b2lkIGxheWVyVHJlZUNvbW1pdENvbXBsZXRlKCkgb3ZlcnJpZGU7
CisgICAgICAgIAorICAgIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2Vi
Q29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjb3VsZE5v
dFJlc3RvcmVQYWdlU3RhdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlc3RvcmVQYWdlU3RhdGUo
T3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYsIGRvdWJsZSkgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXgg
N2UwNjNkYTFkMzhjMDVlYTM2ZjIxMDliMjBmZDc0MTRjMjBiNzUzMi4uYjIzN2VmNTA1MmFmMzc1
YzFlYzU2NDdiN2JkYjI4MWUwN2ZhNDhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNTQsNiArNTQsNyBAQAogI2ltcG9ydCAi
V2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1w
b3J0ICJfV0tEb3dubG9hZEludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlM
b29rdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJvbWlzZWRBdHRhY2ht
ZW50SW5mby5oPgpAQCAtNDUzLDYgKzQ1NCwxNSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRh
dGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikKIHsK
IH0KIAordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29u
c3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbykKK3sKKyNpZiBFTkFC
TEUoUkVWRUFMKQorICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9w
dXBJbmZvLCBtX2NvbnRlbnRWaWV3LCBudWxscHRyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGRpY3Rpb25hcnlQb3B1cEluZm8pOworI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCit9CisKIHZv
aWQgUGFnZUNsaWVudEltcGw6OnNldFJlbW90ZUxheWVyVHJlZVJvb3ROb2RlKFJlbW90ZUxheWVy
VHJlZU5vZGUqIHJvb3ROb2RlKQogewogICAgIFttX2NvbnRlbnRWaWV3IF9zZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nUm9vdFZpZXc6cm9vdE5vZGUgPyByb290Tm9kZS0+dWlWaWV3KCkgOiBuaWxd
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5k
ZXggMTFhNzQ2NzM5Zjc2YmY3MjNjM2JhODAxMTZhZGRkZTkzYWI0ODIxMC4uYjliZDcwYzliZWUx
MDY5ZTFiNGYxMjMwOThiOWNhZTEyZDY0ODdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC05ODEsOSArOTgxLDkgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldEZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRleCh1aW50MzJfdCBpbmRleCwg
Ym9vbCBhbGxvd011bHQKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0
Rm9jdXNlZEVsZW1lbnRTZWxlY3RlZEluZGV4KGluZGV4LCBhbGxvd011bHRpcGxlU2VsZWN0aW9u
KSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25h
cnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGlj
dGlvbmFyeVBvcHVwSW5mbykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHBhZ2VDbGll
bnQoKS5kaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChkaWN0aW9uYXJ5UG9wdXBJbmZvKTsKIH0K
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNhdmVQREZUb1RlbXBvcmFyeUZvbGRlckFuZE9wZW5XaXRo
TmF0aXZlQXBwbGljYXRpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQppbmRleCA4Y2U1NjVm
Yjk1NmYzNmNiNzUyZWY4MTFhMTI0NWViNTVkZGNmOWIzLi4zNmM5YjM1MjYxMjg4YmQ1ZTMxNjkx
ZWRmMDFlODk2YTRmYTRjMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCkBAIC0xNzUsNiArMTc1LDEwIEBAIERp
Y3Rpb25hcnlQb3B1cEluZm8gV2ViUGFnZTo6ZGljdGlvbmFyeVBvcHVwSW5mb0ZvclJhbmdlKEZy
YW1lJiBmcmFtZSwgUmFuZ2UmIHJhCiAgICAgZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVk
U3RyaW5nID0gc2NhbGVkTlNBdHRyaWJ1dGVkU3RyaW5nOwogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykKICAgICAKKyNpZiBQTEFURk9STShJT1NNQUMpCisgICAgZGljdGlvbmFyeVBvcHVwSW5mby5h
dHRyaWJ1dGVkU3RyaW5nID0gYWRvcHROUyhbW05TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgYWxs
b2NdIGluaXRXaXRoU3RyaW5nOnJhbmdlLnRleHQoKV0pOworI2VuZGlmIC8vIFBMQVRGT1JNKElP
U01BQykKKyAgICAKICAgICBlZGl0b3Iuc2V0SXNHZXR0aW5nRGljdGlvbmFyeVBvcHVwSW5mbyhm
YWxzZSk7CiAgICAgcmV0dXJuIGRpY3Rpb25hcnlQb3B1cEluZm87CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359223</attachid>
            <date>2019-01-15 16:41:45 -0800</date>
            <delta_ts>2019-01-15 17:19:26 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-193408-20190115164144.patch</filename>
            <type>text/plain</type>
            <size>18901</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTAwZDMxNDVjNzA3ODk3
YjY5MmY1ODBiZTMyNjlhYjZkMTg5ZWQ0OC4uZDhjODk3NWFiNDZkMDEwNDBlYjNkODY2NTgwMTZl
Yzk1MmE4NmQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTAxLTE1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVh
bCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNDA4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzMwMDY5OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIGlPU01hYyBhbmQgUmV2
ZWFsIGFyZSBjdXJyZW50bHkgbm90IHRlc3RhYmxlLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciB0aGUgcmV2ZWFsIFNQSSBzcGVjaWZpY2FsbHkgZm9yIGlPU01hYy4KKyAgICAgICAgU2hvdyB0
aGUgY29udHJvbGxlciB3aGVuIGNhbGxlZCwgYW5kIGltcGxlbWVudCB0aGUgZGVsZWdhdGUgdG8g
CisgICAgICAgIGNvcnJlY3RseSByZS1wYWludCB0aGUgY29udGVudCB3aXRoIHRoZSBhdXRvLWdl
bmVyYXRlZCBoaWdobGlnaHQgZnJvbQorICAgICAgICB0aGUgcmV2ZWFsIGZyYW1ld29yay4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAgICAgICogZWRp
dGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tOgorICAgICAgICAoLVtXZWJSZXZlYWxIaWdo
bGlnaHQgaW5pdFdpdGhIaWdobGlnaHRSZWN0OnZpZXc6XSk6CisgICAgICAgICgtW1dlYlJldmVh
bEhpZ2hsaWdodCBzZXRJbWFnZTpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhp
Z2hsaWdodFJlY3RzRm9ySXRlbTpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IHN0
YXJ0SGlnaGxpZ2h0aW5nSXRlbTpdKToKKyAgICAgICAgKC1bV2ViUmV2ZWFsSGlnaGxpZ2h0IGhp
Z2hsaWdodEl0ZW06d2l0aFByb2dyZXNzOl0pOgorICAgICAgICAoLVtXZWJSZXZlYWxIaWdobGln
aHQgY29tcGxldGVIaWdobGlnaHRpbmdJdGVtOl0pOgorICAgICAgICAoLVtXZWJSZXZlYWxIaWdo
bGlnaHQgc3RvcEhpZ2hsaWdodGluZ0l0ZW06XSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hs
aWdodCBoaWdobGlnaHRSYW5nZUNoYW5nZWRGb3JJdGVtOl0pOgorICAgICAgICAoLVtXZWJSZXZl
YWxIaWdobGlnaHQgaGlnaGxpZ2h0aW5nXSk6CisgICAgICAgICgtW1dlYlJldmVhbEhpZ2hsaWdo
dCBkcmF3SGlnaGxpZ2h0Q29udGVudEZvckl0ZW06Y29udGV4dDpdKToKKyAgICAgICAgKFdlYkNv
cmU6OnNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXApOgorICAgICAgICAqIGVkaXRpbmcvbWFj
L0RpY3Rpb25hcnlMb29rdXAuaDoKKwogMjAxOS0wMS0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxt
bWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtXSExTTF0gSW1wbGVtZW50IHRoZSBsb29w
IGNoZWNrZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDQ1NjBkZDIyMDM0ZDJiY2IzNTYwYTVkNTE2
ZjM4NDkxNTQyNDBjMGEuLjgyNTdkNzYzOGE1ZjZlYjMzZTYwNTRkNzQ3YThlZjJjOTRiNjI4NzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAxLTE1ICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFJldmVhbCBz
dXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkzNDA4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzMwMDY5OT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBhZGRpdGlvbmFsIG5l
ZWRlZCBTUEkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1JldmVhbFNQSS5oOgorCiAyMDE5
LTAxLTE1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IENhbm5vdCB0YWIgb3V0IG9mIFdLV2ViVmlldyBvbiBtYWNPUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZWVjYjRi
ZDk1Yzk2OGZlOTk1MTZmZTkwY2MxMWJmMWQ2ZjcyYmM2Li4zNmUwNmRjYWY1OGVjOTg5NzU0NGZj
YjI2Yzk1NDI5OWUyMjZjOGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTAxLTE1
ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IFJldmVhbCBzdXBwb3J0IGluIGlPU01hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDA4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzMwMDY5
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBjYWxs
cyB0byBEaWN0aW9uYXJ5TG9va3VwIGZyb20gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGlj
dGlvbmFyeUxvb2t1cCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25hcnlM
b29rdXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpY3Rpb25hcnlQb3B1cEluZm9Gb3JSYW5n
ZSk6CisKIDIwMTktMDEtMTUgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbU09VUF0gUmVtb3ZlIHVzYWdlIG9mIE5ldHdvcmtQcm9jZXNzOjpzaW5n
bGV0b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUmV2
ZWFsU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaApp
bmRleCA4MmI3YzRhMDkxYmM5ZGRiYzk0NjJiNTg3MTlhYjUzMzkxYjQ3MGY0Li4zOWRiYTVjN2I2
ODkwNWQwYjBiZDAzYjg3YzU5Y2Y3N2M2MGExYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaApAQCAtNDQsOSArNDQsOSBAQCBTT0ZUX0xJTktfQ0xB
U1NfT1BUSU9OQUwoUmV2ZWFsQ29yZSwgUlZTZWxlY3Rpb24pCiAjaW1wb3J0IDxSZXZlYWwvUlZQ
cmVzZW50ZXIuaD4KICNpbXBvcnQgPFJldmVhbC9SZXZlYWwuaD4KICNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCisjaW1wb3J0IDxSZXZlYWxDb3JlL1JWSXRlbV9Qcml2YXRlLmg+CiAjaW1wb3J0IDxS
ZXZlYWxDb3JlL1JWU2VsZWN0aW9uLmg+CiAjaW1wb3J0IDxSZXZlYWxDb3JlL1JldmVhbENvcmUu
aD4KLQogI2Vsc2UgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IGRlZjdkZmI5NWE0M2UwYWIyOWRmN2Qw
MjgwMTYwMTNlNDU2M2IxYjUuLmM0YjhkY2M4NjkxMWEzNzQ2NTg1NzY1ZGVlNTZiZWRhNzU5ZjZl
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC00Nyw5
ICs0NywxMCBAQCBXVEZfRVhURVJOX0NfRU5ECiBAaW50ZXJmYWNlIFVJQXBwbGljYXRpb24gKCkK
ICsgKFVJQXBwbGljYXRpb25TY2VuZUNsYXNzaWNNb2RlKV9jbGFzc2ljTW9kZTsKIC0gKEdTS2V5
Ym9hcmRSZWYpX2hhcmR3YXJlS2V5Ym9hcmQ7CistIChDR0Zsb2F0KV9pT1NNYWNTY2FsZTsKIEBl
bmQKIAotI2Vsc2UKKyNlbHNlIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNpbXBvcnQg
PFVJS2l0L1VJS2l0Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvRGljdGlvbmFyeUxvb2t1cC5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGlj
dGlvbmFyeUxvb2t1cC5tbQppbmRleCA2NzFhYzlhYjMwYTU5ZmRhODk0MWYzODQ1YzNlYThiYmE5
ZTU0ZjIxLi4wNjE3MTc0ZDBlMzA3ZmMyMTcyZWEyZTA5OGQ1ZWU2ODg5OWQ3Mzg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCkBAIC0z
NSw2ICszNSw3IEBACiAjaW1wb3J0ICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIkZyYW1l
LmgiCiAjaW1wb3J0ICJGcmFtZVNlbGVjdGlvbi5oIgorI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0
Q0cuaCIKICNpbXBvcnQgIkhUTUxDb252ZXJ0ZXIuaCIKICNpbXBvcnQgIkhpdFRlc3RSZXN1bHQu
aCIKICNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCkBAIC00NSwxNyArNDYsMzAgQEAKICNpbXBv
cnQgIlZpc2libGVQb3NpdGlvbi5oIgogI2ltcG9ydCAiVmlzaWJsZVNlbGVjdGlvbi5oIgogI2lt
cG9ydCAiVmlzaWJsZVVuaXRzLmgiCisjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQ
SS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9SZXZlYWxTUEkuaD4KKyNpbXBvcnQgPHBhbC9z
cGkvaW9zL1VJS2l0U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9Mb29rdXBTUEkuaD4KICNp
bXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+
CiAKICNpZiAhUExBVEZPUk0oV0FUQ0gpCi0KICNpbXBvcnQgPFBERktpdC9QREZLaXQuaD4KLQog
I2VuZGlmIC8vICFQTEFURk9STShXQVRDSCkKIAorI2lmIFBMQVRGT1JNKElPU01BQykKK2V4dGVy
biAiQyIgeworI2ltcG9ydCA8VUlLaXRNYWNIZWxwZXIvVUlOU1JldmVhbENvbnRyb2xsZXIuaD4K
K30KK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhVSUtpdE1hY0hlbHBlcikKK1NPRlRfTElO
SyhVSUtpdE1hY0hlbHBlciwgVUlOU1NoYXJlZFJldmVhbENvbnRyb2xsZXIsIGlkPFVJTlNSZXZl
YWxDb250cm9sbGVyPiwgKHZvaWQpLCAoKSkKKworU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkK
K1NPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlBcHBsaWNhdGlvbikKKworCisjZW5kaWYgLy8gUExB
VEZPUk0oSU9TTUFDKQorCiAjaWYgUExBVEZPUk0oTUFDKQogCiBAaW50ZXJmYWNlIFdlYlJldmVh
bEhpZ2hsaWdodCA8UlZQcmVzZW50ZXJIaWdobGlnaHREZWxlZ2F0ZT4gOiBOU09iamVjdCB7CkBA
IC0xNDEsNyArMTU1LDEwOCBAQCAtICh2b2lkKXJldmVhbENvbnRleHQ6KFJWUHJlc2VudGluZ0Nv
bnRleHQgKiljb250ZXh0IHN0b3BIaWdobGlnaHRpbmdJdGVtOihSVkl0ZQogCiBAZW5kCiAKLSNl
bmRpZiAvLyBQTEFURk9STShNQUMpCisjZWxpZiBQTEFURk9STShJT1NNQUMpIC8vIFBMQVRGT1JN
KE1BQykKKworQGludGVyZmFjZSBXZWJSZXZlYWxIaWdobGlnaHQgPFVJUlZQcmVzZW50ZXJIaWdo
bGlnaHREZWxlZ2F0ZT4gOiBOU09iamVjdCB7CitAcHJpdmF0ZQorICAgIFJlZlB0cjxXZWJDb3Jl
OjpJbWFnZT4gX2ltYWdlOworICAgIENHUmVjdCBfaGlnaGxpZ2h0UmVjdDsKKyAgICBCT09MIF9o
aWdobGlnaHRpbmc7CisgICAgVUlWaWV3ICpfdmlldzsKK30KKworLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdodFJlY3QgdmlldzooVUlWaWV3ICop
dmlldyBpbWFnZTooUmVmUHRyPFdlYkNvcmU6OkltYWdlPiYmKWltYWdlOworCitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBXZWJSZXZlYWxIaWdobGlnaHQKKworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoSGlnaGxpZ2h0UmVjdDooTlNSZWN0KWhpZ2hsaWdodFJlY3QgdmlldzooVUlWaWV3ICopdmll
dyBpbWFnZTooUmVmUHRyPFdlYkNvcmU6OkltYWdlPiYmKWltYWdlCit7CisgICAgaWYgKCEoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisgICAgX2hpZ2hs
aWdodFJlY3QgPSBoaWdobGlnaHRSZWN0OworICAgIF92aWV3ID0gdmlldzsKKyAgICBfaGlnaGxp
Z2h0aW5nID0gTk87CisgICAgX2ltYWdlID0gaW1hZ2U7CisgICAgCisgICAgcmV0dXJuIHNlbGY7
Cit9CisKKy0gKHZvaWQpc2V0SW1hZ2U6KFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4mJilpbWFnZQor
eworICAgIF9pbWFnZSA9IFdURk1vdmUoaW1hZ2UpOworfQorCistIChOU0FycmF5PE5TVmFsdWUg
Kj4gKiloaWdobGlnaHRSZWN0c0Zvckl0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURf
UEFSQU0oaXRlbSk7CisgICAgcmV0dXJuIEBbW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Ol9oaWdo
bGlnaHRSZWN0XV07Cit9CisKKy0gKHZvaWQpc3RhcnRIaWdobGlnaHRpbmdJdGVtOihSVkl0ZW0g
KilpdGVtCit7CisgICAgVU5VU0VEX1BBUkFNKGl0ZW0pOworICAgIF9oaWdobGlnaHRpbmcgPSBZ
RVM7Cit9CisKKy0gKHZvaWQpaGlnaGxpZ2h0SXRlbTooUlZJdGVtICopaXRlbSB3aXRoUHJvZ3Jl
c3M6KENHRmxvYXQpcHJvZ3Jlc3MKK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7CisgICAgVU5V
U0VEX1BBUkFNKHByb2dyZXNzKTsKK30KKworLSAodm9pZCljb21wbGV0ZUhpZ2hsaWdodGluZ0l0
ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0oaXRlbSk7Cit9CisKKy0gKHZv
aWQpc3RvcEhpZ2hsaWdodGluZ0l0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFS
QU0oaXRlbSk7CisgICAgX2hpZ2hsaWdodGluZyA9IE5POworfQorCistICh2b2lkKWhpZ2hsaWdo
dFJhbmdlQ2hhbmdlZEZvckl0ZW06KFJWSXRlbSAqKWl0ZW0KK3sKKyAgICBVTlVTRURfUEFSQU0o
aXRlbSk7Cit9CisKKy0gKEJPT0wpaGlnaGxpZ2h0aW5nCit7CisgICAgcmV0dXJuIF9oaWdobGln
aHRpbmc7Cit9CisKKy0gKHZvaWQpZHJhd0hpZ2hsaWdodENvbnRlbnRGb3JJdGVtOihSVkl0ZW0g
KilpdGVtIGNvbnRleHQ6KENHQ29udGV4dFJlZiljb250ZXh0Cit7CisgICAgTlNBcnJheSA8TlNW
YWx1ZSAqPiAqcmVjdHMgPSBbc2VsZiBoaWdobGlnaHRSZWN0c0Zvckl0ZW06aXRlbV07CisgICAg
aWYgKCFyZWN0cy5jb3VudCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIENHUmVjdCBoaWdo
bGlnaHRSZWN0ID0gcmVjdHMuZmlyc3RPYmplY3QuQ0dSZWN0VmFsdWU7CisgICAgZm9yIChOU1Zh
bHVlICpyZWN0IGluIHJlY3RzKQorICAgICAgICBoaWdobGlnaHRSZWN0ID0gQ0dSZWN0VW5pb24o
aGlnaGxpZ2h0UmVjdCwgcmVjdC5DR1JlY3RWYWx1ZSk7CisgICAgaGlnaGxpZ2h0UmVjdCA9IFtf
dmlldyBjb252ZXJ0UmVjdDpoaWdobGlnaHRSZWN0IGZyb21WaWV3Om5pbF07CisgICAgCisgICAg
V2ViQ29yZTo6Q0dDb250ZXh0U3RhdGVTYXZlciBzYXZlU3RhdGUoY29udGV4dCk7CisgICAgQ0dB
ZmZpbmVUcmFuc2Zvcm0gY29udGV4dFRyYW5zZm9ybSA9IENHQ29udGV4dEdldENUTShjb250ZXh0
KTsKKyAgICBDR0Zsb2F0IGJhY2tpbmdTY2FsZSA9IGNvbnRleHRUcmFuc2Zvcm0uYTsKKyAgICBD
R0Zsb2F0IGlPU01hY1NjYWxlRmFjdG9yID0gW2dldFVJQXBwbGljYXRpb25DbGFzcygpIHNoYXJl
ZEFwcGxpY2F0aW9uXS5faU9TTWFjU2NhbGU7CisgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gdHJhbnNm
b3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlU2NhbGUoaU9TTWFjU2NhbGVGYWN0b3IgKiBiYWNr
aW5nU2NhbGUsIGlPU01hY1NjYWxlRmFjdG9yICogYmFja2luZ1NjYWxlKTsKKyAgICBDR0NvbnRl
eHRTZXRDVE0oY29udGV4dCwgdHJhbnNmb3JtKTsKKyAgICAKKyAgICBmb3IgKE5TVmFsdWUgKnYg
aW4gcmVjdHMpIHsKKyAgICAgICAgQ0dSZWN0IGltZ1NyY1JlY3QgPSBbX3ZpZXcgY29udmVydFJl
Y3Q6di5DR1JlY3RWYWx1ZSBmcm9tVmlldzpuaWxdOworICAgICAgICBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gaW1hZ2VSZWYgPSBfaW1hZ2UtPm5hdGl2ZUltYWdlKCk7CisgICAgICAgIENHUmVjdCBv
cmlnaW4gPSBDR1JlY3RNYWtlKGltZ1NyY1JlY3Qub3JpZ2luLnggLSBoaWdobGlnaHRSZWN0Lm9y
aWdpbi54LCBpbWdTcmNSZWN0Lm9yaWdpbi55IC0gaGlnaGxpZ2h0UmVjdC5vcmlnaW4ueSwgaGln
aGxpZ2h0UmVjdC5zaXplLndpZHRoLCBoaWdobGlnaHRSZWN0LnNpemUuaGVpZ2h0KTsKKyAgICAg
ICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQsIG9yaWdpbiwgaW1hZ2VSZWYuZ2V0KCkpOwor
ICAgIH0KK30KKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TTUFDKQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFJFVkVBTCkKIApAQCAtMzIxLDcgKzQzNiw3IEBAIHN0ZDo6dHVwbGU8TlNTdHJp
bmcgKiwgTlNEaWN0aW9uYXJ5ICo+IERpY3Rpb25hcnlMb29rdXA6OnN0cmluZ0ZvclBERlNlbGVj
dGlvbihQCiAgICAgCiAjZW5kaWYgLy8gIVBMQVRGT1JNKFdBVENIKQogCi1zdGF0aWMgV0tSZXZl
YWxDb250cm9sbGVyIHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihib29sIGNy
ZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIsIGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rp
b25hcnlQb3B1cEluZm8sIE5TVmlldyAqdmlldywgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRl
eHRJbmRpY2F0b3ImKT4mIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjaywgY29uc3Qg
V1RGOjpGdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVy
c2lvbkNhbGxiYWNrLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjbGVhclRleHRJbmRpY2F0b3Ip
CitzdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29u
dHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIsIGNvbnN0IERpY3Rpb25hcnlQ
b3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8sIFJldmVhbFZpZXcgKnZpZXcsIGNvbnN0IFdU
Rjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0
aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiBy
b290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
Y2xlYXJUZXh0SW5kaWNhdG9yKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
ICAgICAKQEAgLTM3OSw3ICs0OTQsMjMgQEAgc3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93
UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBjcmVhdGVBbmltYXQKICAgICBb
cHJlc2VudGVyIHJldmVhbEl0ZW06aXRlbS5nZXQoKSBkb2N1bWVudENvbnRleHQ6bmlsIHByZXNl
bnRpbmdDb250ZXh0OmNvbnRleHQuZ2V0KCkgb3B0aW9uczpuaWxdOwogICAgIHJldHVybiBuaWw7
CiAgICAgCi0jZWxzZSAvLyBQTEFURk9STShNQUMpCisjZWxpZiBQTEFURk9STShJT1NNQUMpCisg
ICAgCisgICAgVU5VU0VEX1BBUkFNKHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjayk7
CisgICAgVU5VU0VEX1BBUkFNKHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrKTsKKyAg
ICBVTlVTRURfUEFSQU0oY2xlYXJUZXh0SW5kaWNhdG9yKTsKKyAgICBBU1NFUlRfVU5VU0VEKGNy
ZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIsICFjcmVhdGVBbmltYXRpb25Db250cm9sbGVyKTsKKwor
ICAgIGF1dG8gdGV4dEluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZShkaWN0aW9uYXJ5
UG9wdXBJbmZvLnRleHRJbmRpY2F0b3IpOworICAgIAorICAgIFJldGFpblB0cjxXZWJSZXZlYWxI
aWdobGlnaHQ+IHdlYkhpZ2hsaWdodCA9IGFkb3B0TlMoW1tXZWJSZXZlYWxIaWdobGlnaHQgYWxs
b2NdIGluaXRXaXRoSGlnaGxpZ2h0UmVjdDpbdmlldyBjb252ZXJ0UmVjdDp0ZXh0SW5kaWNhdG9y
LT5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkgdG9WaWV3Om5pbF0gdmlldzp2
aWV3IGltYWdlOnRleHRJbmRpY2F0b3ItPmNvbnRlbnRJbWFnZSgpXSk7CisgICAgCisgICAgUmV0
YWluUHRyPFJWSXRlbT4gaXRlbSA9IGFkb3B0TlMoW2FsbG9jUlZJdGVtSW5zdGFuY2UoKSBpbml0
V2l0aFRleHQ6ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nLmdldCgpLnN0cmlu
ZyBzZWxlY3RlZFJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXSk7CisgICAgCisgICAgW1VJTlNTaGFy
ZWRSZXZlYWxDb250cm9sbGVyKCkgcmV2ZWFsSXRlbTppdGVtLmdldCgpIGxvY2F0aW9uSW5XaW5k
b3c6ZGljdGlvbmFyeVBvcHVwSW5mby5vcmlnaW4gd2luZG93OnZpZXcud2luZG93IGhpZ2hsaWdo
dGVyOihpZDxVSVJWUHJlc2VudGVySGlnaGxpZ2h0RGVsZWdhdGU+KSB3ZWJIaWdobGlnaHQuZ2V0
KCldOworICAgIHJldHVybiBuaWw7CisgICAgCisjZWxzZSAvLyBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIAogICAgIFVOVVNFRF9QQVJBTShjcmVhdGVBbmltYXRpb25Db250cm9sbGVyKTsKICAg
ICBVTlVTRURfUEFSQU0oZGljdGlvbmFyeVBvcHVwSW5mbyk7CkBAIC0zODksMTMgKzUyMCwxMyBA
QCBzdGF0aWMgV0tSZXZlYWxDb250cm9sbGVyIHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29u
dHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdAogICAgIFVOVVNFRF9QQVJBTShjbGVhclRleHRJbmRp
Y2F0b3IpOwogICAgIAogICAgIHJldHVybiBuaWw7Ci0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQor
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgCiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKICAgICAKIH0KIAotdm9pZCBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAo
Y29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgTlNWaWV3ICp2
aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiYgdGV4dEluZGlj
YXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0aW9uPEZsb2F0UmVjdChG
bG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2ssIFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikKK3ZvaWQgRGljdGlvbmFyeUxvb2t1cDo6
c2hvd1BvcHVwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8s
IFJldmVhbFZpZXcgKnZpZXcsIGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9y
Jik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIGNvbnN0IFdURjo6RnVuY3Rp
b248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFj
aywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2xlYXJUZXh0SW5kaWNhdG9yKQogewogICAgIHNo
b3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihmYWxzZSwgZGljdGlvbmFyeVBvcHVw
SW5mbywgdmlldywgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCByb290Vmlld1Rv
Vmlld0NvbnZlcnNpb25DYWxsYmFjaywgV1RGTW92ZShjbGVhclRleHRJbmRpY2F0b3IpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXAu
aCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXAuaAppbmRleCBm
OGY3NjFjZGM4MWFlYmQzZGYwODgzN2EzMjMxYzA4ZjM1YTRmZWI5Li4xNjMxOTY3ZmY5MmFkZjhh
ODg5NWY3ZmVjNTc4MmQ4YzYxMjNhNjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YWMvRGljdGlvbmFyeUxvb2t1cC5oCkBAIC0zNCwxMiArMzQsMTUgQEAKICNpbmNsdWRlIDx3dGYv
RnVuY3Rpb24uaD4KIAogT0JKQ19DTEFTUyBOU1ZpZXc7CitPQkpDX0NMQVNTIFVJVmlldzsKIE9C
SkNfQ0xBU1MgUERGU2VsZWN0aW9uOwogCiAjaWYgUExBVEZPUk0oTUFDKQogdHlwZWRlZiBpZCA8
TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPiBXS1JldmVhbENvbnRyb2xsZXI7
Cit1c2luZyBSZXZlYWxWaWV3ID0gTlNWaWV3OwogI2Vsc2UKIHR5cGVkZWYgaWQgV0tSZXZlYWxD
b250cm9sbGVyOwordXNpbmcgUmV2ZWFsVmlldyA9IFVJVmlldzsKICNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU2LDcgKzU5LDcgQEAgcHVibGljOgog
CiAgICAgLy8gRklYTUU6IFNob3VsZCBtb3ZlL3VuaWZ5IGRpY3Rpb25hcnlQb3B1cEluZm9Gb3JS
YW5nZSBoZXJlIHRvby4KIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNob3dQb3B1
cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiwgTlNWaWV3ICosIGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChUZXh0SW5kaWNhdG9yJik+JiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJh
Y2ssIGNvbnN0IFdURjo6RnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+JiByb290Vmlld1Rv
Vmlld0NvbnZlcnNpb25DYWxsYmFjayA9IG51bGxwdHIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNsZWFyVGV4dEluZGljYXRvciA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyB2b2lkIHNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiwgUmV2ZWFsVmlldyAq
LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiYgdGV4dEluZGljYXRv
ckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0aW9uPEZsb2F0UmVjdChGbG9h
dFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2sgPSBudWxscHRyLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoKT4mJiBjbGVhclRleHRJbmRpY2F0b3IgPSBudWxscHRyKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBoaWRlUG9wdXAoKTsKICAgICAKICNpZiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggYWFhYmNjMjg4YzQ3
ODg5MjAwNzUzMWVmZTQwYTkyMDFlOWVhMWRlYi4uMDA3YjI4MTg0ZjM2YWYyYWJiOTVlMzJmZTUw
ZThmZjkxNWJlZDZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzA0
LDYgKzMwNCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEluZGljYXRvcihS
ZWY8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4sIFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dM
aWZldGltZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpID0gMDsKKyAg
ICAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2Vi
Q29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYpID0gMDsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2
b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYpID0gMDsKQEAgLTMxNSw3ICszMTcsNiBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKHVpbnQ2NF90
IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIHBsdWdpbkhhc0ZvY3VzQW5k
V2luZG93SGFzRm9jdXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBQ
bHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUGVy
Zm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2ViQ29yZTo6RGljdGlvbmFyeVBvcHVwSW5mbyYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpBbHRl
cm5hdGl2ZVRleHRUeXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZS
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVw
bGFjZW1lbnRTdHJpbmdzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9u
UGFuZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dCkgPSAwOwog
ICAgIHZpcnR1YWwgU3RyaW5nIGRpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKFdlYkNvcmU6OlJl
YXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggODc3YzgxMzdmMzMxNjU4
MmFjNTQzM2VlZDViMTdiZGFiMjUzOWQ5Zi4uNWRhNmY5OWJmNTI0MDIzMzAzZDg3MWRhMDdiZjcy
ZTE2YWZjYjUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmgKQEAgLTEzNCw2ICsxMzQsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRD
b21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKSBvdmVycmlk
ZTsKICAgICB2b2lkIGxheWVyVHJlZUNvbW1pdENvbXBsZXRlKCkgb3ZlcnJpZGU7CisgICAgICAg
IAorICAgIHZvaWQgZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgV2ViQ29yZTo6RGlj
dGlvbmFyeVBvcHVwSW5mbyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjb3VsZE5vdFJlc3RvcmVQ
YWdlU3RhdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlc3RvcmVQYWdlU3RhdGUoT3B0aW9uYWw8
V2ViQ29yZTo6RmxvYXRQb2ludD4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYsIGRvdWJsZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggN2UwNjNkYTFk
MzhjMDVlYTM2ZjIxMDliMjBmZDc0MTRjMjBiNzUzMi4uYjIzN2VmNTA1MmFmMzc1YzFlYzU2NDdi
N2JkYjI4MWUwN2ZhNDhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNTQsNiArNTQsNyBAQAogI2ltcG9ydCAiV2ViRWRpdENv
bW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJfV0tE
b3dubG9hZEludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlMb29rdXAuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxh
dGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJvbWlzZWRBdHRhY2htZW50SW5mby5o
PgpAQCAtNDUzLDYgKzQ1NCwxNSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikKIHsKIH0KIAordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlv
bmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbykKK3sKKyNpZiBFTkFCTEUoUkVWRUFM
KQorICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBt
X2NvbnRlbnRWaWV3LCBudWxscHRyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRpY3Rpb25h
cnlQb3B1cEluZm8pOworI2VuZGlmIC8vIEVOQUJMRShSRVZFQUwpCit9CisKIHZvaWQgUGFnZUNs
aWVudEltcGw6OnNldFJlbW90ZUxheWVyVHJlZVJvb3ROb2RlKFJlbW90ZUxheWVyVHJlZU5vZGUq
IHJvb3ROb2RlKQogewogICAgIFttX2NvbnRlbnRWaWV3IF9zZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nUm9vdFZpZXc6cm9vdE5vZGUgPyByb290Tm9kZS0+dWlWaWV3KCkgOiBuaWxdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMTFhNzQ2
NzM5Zjc2YmY3MjNjM2JhODAxMTZhZGRkZTkzYWI0ODIxMC4uYjliZDcwYzliZWUxMDY5ZTFiNGYx
MjMwOThiOWNhZTEyZDY0ODdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tCkBAIC05ODEsOSArOTgxLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldEZvY3VzZWRFbGVtZW50U2VsZWN0ZWRJbmRleCh1aW50MzJfdCBpbmRleCwgYm9vbCBhbGxv
d011bHQKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rm9jdXNlZEVs
ZW1lbnRTZWxlY3RlZEluZGV4KGluZGV4LCBhbGxvd011bHRpcGxlU2VsZWN0aW9uKSwgbV9wYWdl
SUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAo
Y29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9y
bURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBv
cHVwSW5mbykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHBhZ2VDbGllbnQoKS5kaWRQ
ZXJmb3JtRGljdGlvbmFyeUxvb2t1cChkaWN0aW9uYXJ5UG9wdXBJbmZvKTsKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnNhdmVQREZUb1RlbXBvcmFyeUZvbGRlckFuZE9wZW5XaXRoTmF0aXZlQXBw
bGljYXRpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQppbmRleCA4Y2U1NjVmYjk1NmYzNmNi
NzUyZWY4MTFhMTI0NWViNTVkZGNmOWIzLi4zNmM5YjM1MjYxMjg4YmQ1ZTMxNjkxZWRmMDFlODk2
YTRmYTRjMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCkBAIC0xNzUsNiArMTc1LDEwIEBAIERpY3Rpb25hcnlQ
b3B1cEluZm8gV2ViUGFnZTo6ZGljdGlvbmFyeVBvcHVwSW5mb0ZvclJhbmdlKEZyYW1lJiBmcmFt
ZSwgUmFuZ2UmIHJhCiAgICAgZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nID0g
c2NhbGVkTlNBdHRyaWJ1dGVkU3RyaW5nOwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKICAgICAK
KyNpZiBQTEFURk9STShJT1NNQUMpCisgICAgZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVk
U3RyaW5nID0gYWRvcHROUyhbW05TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmcgYWxsb2NdIGluaXRX
aXRoU3RyaW5nOnJhbmdlLnRleHQoKV0pOworI2VuZGlmIC8vIFBMQVRGT1JNKElPU01BQykKKyAg
ICAKICAgICBlZGl0b3Iuc2V0SXNHZXR0aW5nRGljdGlvbmFyeVBvcHVwSW5mbyhmYWxzZSk7CiAg
ICAgcmV0dXJuIGRpY3Rpb25hcnlQb3B1cEluZm87CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>