<?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>135038</bug_id>
          
          <creation_ts>2014-07-17 18:42:23 -0700</creation_ts>
          <short_desc>Don&apos;t create new UIWindow for video fullscreen.</short_desc>
          <delta_ts>2014-07-25 16:38:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1023171</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-17 18:42:23 -0700</bug_when>
    <thetext>Don&apos;t create new UIWindow for video fullscreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023172</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-17 18:43:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/16655188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023174</commentid>
    <comment_count>2</comment_count>
      <attachid>235108</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-17 18:55:26 -0700</bug_when>
    <thetext>Created attachment 235108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023205</commentid>
    <comment_count>3</comment_count>
      <attachid>235108</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-07-17 22:50:04 -0700</bug_when>
    <thetext>Comment on attachment 235108
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:743
&gt; +    assert([parentLayer.delegate isKindOfClass:[getUIViewClass() class]]);

Won&apos;t this assert in a release build? Do we really want to crash, wouldn&apos;t logging and returning be sufficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023606</commentid>
    <comment_count>4</comment_count>
      <attachid>235108</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-20 20:49:12 -0700</bug_when>
    <thetext>Comment on attachment 235108
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.h:38
&gt; +- (void)enterFullscreen:(WAKWindow *)window;

Instead of a WAKWindow, I suggest passing a UIView here. Or at least the layer object. It’d be nice to reduce the use of WAKWindow rather than increasing it over time. I’d like to remove the WAK stuff eventually.

&gt;&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:743
&gt;&gt; +    assert([parentLayer.delegate isKindOfClass:[getUIViewClass() class]]);
&gt; 
&gt; Won&apos;t this assert in a release build? Do we really want to crash, wouldn&apos;t logging and returning be sufficient?

If we want a WebKit assert, for debug builds only, then we should use ASSERT rather than assert.

But I agree that just doing an early return might be a better alternative.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:751
&gt; +        UIView* parentView = (UIView *)parentLayer.delegate;

Formatting mistake here; it should be UIView *parentView.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:863
&gt; +    __block RefPtr&lt;WebVideoFullscreenInterfaceAVKit&gt; protect(this);

This idiom seems a bit peculiar. I think a brief “why” comment explaining why it’s helpful to protect until we are done exiting would be worthwhile.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:867
&gt; +        [m_playerViewController exitFullScreenWithCompletionHandler:^(BOOL, NSError*)
&gt; +        {

The { should be on the line above with the ^ to follow our standard formatting for blocks, as in the outer block.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:868
&gt; +            protect.clear();

The idiom is now:

    protect = nullptr;

I think we are going to deprecate the clear function, in fact.

&gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm:57
&gt; +    return toElement(node)-&gt;clientRect();

Please rename this function since we’re changing what it does. Just doing the mechanical thing and renaming it to clientRectForNode would be sufficient for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023869</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-21 19:54:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 235108 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235108&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:743
&gt; &gt; +    assert([parentLayer.delegate isKindOfClass:[getUIViewClass() class]]);
&gt; 
&gt; Won&apos;t this assert in a release build? Do we really want to crash, wouldn&apos;t logging and returning be sufficient?

Changed the function to take a UIView, so this is no longer necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023870</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-21 19:58:13 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 235108 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235108&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.h:38
&gt; &gt; +- (void)enterFullscreen:(WAKWindow *)window;
&gt; 
&gt; Instead of a WAKWindow, I suggest passing a UIView here. Or at least the layer object. It’d be nice to reduce the use of WAKWindow rather than increasing it over time. I’d like to remove the WAK stuff eventually.

UIView it is. This simplifies things a bit.

&gt; 
&gt; &gt;&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:743
&gt; &gt;&gt; +    assert([parentLayer.delegate isKindOfClass:[getUIViewClass() class]]);
&gt; &gt; 
&gt; &gt; Won&apos;t this assert in a release build? Do we really want to crash, wouldn&apos;t logging and returning be sufficient?
&gt; 
&gt; If we want a WebKit assert, for debug builds only, then we should use ASSERT rather than assert.
&gt; 
&gt; But I agree that just doing an early return might be a better alternative.

I changed the function to take a UIView, so this isn&apos;t necessary.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:751
&gt; &gt; +        UIView* parentView = (UIView *)parentLayer.delegate;
&gt; 
&gt; Formatting mistake here; it should be UIView *parentView.

Fixed.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:863
&gt; &gt; +    __block RefPtr&lt;WebVideoFullscreenInterfaceAVKit&gt; protect(this);
&gt; 
&gt; This idiom seems a bit peculiar. I think a brief “why” comment explaining why it’s helpful to protect until we are done exiting would be worthwhile.

It is used throughout the file. I&apos;ll comment this case.
// Retain this to extend object life until async block completes.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:867
&gt; &gt; +        [m_playerViewController exitFullScreenWithCompletionHandler:^(BOOL, NSError*)
&gt; &gt; +        {
&gt; 
&gt; The { should be on the line above with the ^ to follow our standard formatting for blocks, as in the outer block.

I&apos;ll make the change. For some reason style check has been getting confused and insisting I put in on the following line. I&apos;ll also fix the other occurrence of this.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:868
&gt; &gt; +            protect.clear();
&gt; 
&gt; The idiom is now:
&gt; 
&gt;     protect = nullptr;
&gt; 
&gt; I think we are going to deprecate the clear function, in fact.
&gt; 

Updated all instances of .clear(); in the file.

&gt; &gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm:57
&gt; &gt; +    return toElement(node)-&gt;clientRect();
&gt; 
&gt; Please rename this function since we’re changing what it does. Just doing the mechanical thing and renaming it to clientRectForNode would be sufficient for now.

Renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023871</commentid>
    <comment_count>7</comment_count>
      <attachid>235266</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-21 20:17:01 -0700</bug_when>
    <thetext>Created attachment 235266
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023872</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-21 20:20:15 -0700</bug_when>
    <thetext>Attachment 235266 did not pass style-queue:


ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:810:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:866:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023973</commentid>
    <comment_count>9</comment_count>
      <attachid>235266</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-22 10:19:41 -0700</bug_when>
    <thetext>Comment on attachment 235266
Patch for landing.

Clearing flags on attachment: 235266

Committed r171345: &lt;http://trac.webkit.org/changeset/171345&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235108</attachid>
            <date>2014-07-17 18:55:26 -0700</date>
            <delta_ts>2014-07-20 20:49:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135038-20140717185510.patch</filename>
            <type>text/plain</type>
            <size>15270</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUwZDNhZWM5MmUwN2Y0
MDRiZTMwODM1YjUzOWNkZmNmZDQ2Zjc1YS4uYTM0M2YzYjY2YzUzN2E3Mzg4MDUxZWY1ZDFlYjkw
MzhlMDAyNzUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTA3LTE3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBjcmVhdGUgbmV3
IFVJV2luZG93IGZvciB2aWRlbyBmdWxsc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lmg6IHVzZSBXQUtXaW5k
b3cgaW5zdGVhZCBvZiBVSVNjcmVlbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjpdKTp1c2UgV0FLV2luZG93LCBwcm92aWRlIHBh
cmVudCBsYXllci4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQuaDogcmVtb3ZlIFVJV2luZG93LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbTogCisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuKTogZGl0dG8gCisgICAgICAg
IChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4pOiBk
aXR0bworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmludmFsaWRh
dGUpOiBkaXR0bworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJl
cXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4pOiBkaXR0bworCiAyMDE0LTA3LTE0ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBa
ZXJvIHNpemVkIGNvbXBvc2l0aW5nIGNvbnRhaW5lcidzIGNvbnRlbnQgcG9zaXRpb25lZCBvZmYg
Ynkgb25lIGRldmljZSBwaXhlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxZWFjZjBjNGI1ZTU5MWQ1
NTM2NDMwMDExMjRjNDVkYTk0YzFiYzRjLi4yNTVkNTQ4ODk4ZTU0ZmViMmRkOThmYjQ0OTNhZjQy
YjMzODBhMWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDctMTcg
IEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IGNyZWF0
ZSBuZXcgVUlXaW5kb3cgZm9yIHZpZGVvIGZ1bGxzY3JlZW4uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUwMzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIFdBS1dpbmRvdyB0byBXZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dlYlZpZXcgX2VudGVyRnVsbHNjcmVlbkZvck5vZGU6XSk6IHBhc3MgV0FLV2lu
ZG93IGluc3RlYWQgb2YgbmlsCisKIDIwMTQtMDctMTQgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNA
YWRvYmUuY29tPgogCiAgICAgICAgIFtGZWF0dXJlIFF1ZXJpZXNdIEVuYWJsZSBGZWF0dXJlIFF1
ZXJpZXMgb24gTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjNmNWE5MzE1ODc0MTJiOWMwZDc0MTY2OWYxNzJj
OGIwNTJkOTE3ZS4uMjBiYzZkOWUyZWY5MjNmOTgwYjQwY2RjMDY5M2Q5MmMzYzgyMDkzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTA3LTE3ICBKZXJlbXkgSm9uZXMgIDxqZXJl
bXlqQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBjcmVhdGUgbmV3IFVJV2luZG93IGZvciB2
aWRlbyBmdWxsc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM1MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIHJvb3QgbGF5ZXIgdG8gcGFyZW50IGZ1bGxzY3JlZW4gaW50ZXJmYWNlLgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0
dXBGdWxsc2NyZWVuV2l0aElEKTogcGFzcyBwYXJlbnQgbGF5ZXIKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0Ojpz
Y3JlZW5SZWN0Rm9yTm9kZSk6IFVzZSBjbGllbnQgcmVjdCBpbnN0ZWFkIG9mIHNjcmVlbiByZWN0
LgorCiAyMDE0LTA3LTE0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXSBEb24ndCBwcm9ncmVzc2l2ZWx5IHJlLXJlbmRlciB0aWxlcyB3aGlsZSBwaW5j
aC16b29taW5nIHVuZGVyIG1lbW9yeSBwcmVzc3VyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
NDdjOWI0OGI2MjgwNDZhMTg3Zjg2NGJmNTk0YjA3Mjk0ZTA1MGRjYy4uOWM0YWU1ZjJlZDA2ZGY4
YWQ2NGFjNzQzZDE5OTU2ZmU3YWIyYTAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM0Mzcs
NyArMzQzNyw3IEBAIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQxMXNldER1cmF0aW9uRWQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQxNGV4aXRGdWxsc2NyZWVuRU5TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMzJXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE0c2V0Q3VycmVudFRpbWVFZGQKIF9fWk43V2Vi
Q29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkV2
Ci1fX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVzZXR1cEZ1
bGxzY3JlZW5FUjdDQUxheWVyTlNfN0ludFJlY3RFCitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0MTVzZXR1cEZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0ludFJl
Y3RFUFMxXwogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE3
Y2xlYW51cEZ1bGxzY3JlZW5FdgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDE3c2V0U2Vla2FibGVSYW5nZXNFUktOU18xMFRpbWVSYW5nZXNFCiBfX1pON1dl
YkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MThzZXRWaWRlb0RpbWVuc2lv
bnNFYmZmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0LmgKaW5kZXggYTY4Y2NjYWNmN2FhZmI1
M2ZmNTgzNmM2MDFmYTgxYzBlODRhOGY4Yi4uYWFjMjUyNGFjMDAxODcyYWE2NWQzMTY2ZWM3Njg0
ODE4OGVlNzQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaApAQCAtMzAsMTIgKzMw
LDEyIEBACiAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogCi1PQkpDX0NM
QVNTIFVJU2NyZWVuOworT0JKQ19DTEFTUyBXQUtXaW5kb3c7CiAKIEBpbnRlcmZhY2UgV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlciA6IE5TT2JqZWN0CiAtICh2b2lkKXNldE1lZGlhRWxlbWVu
dDooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCopbWVkaWFFbGVtZW50OwogLSAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudCopbWVkaWFFbGVtZW50OwotLSAodm9pZCllbnRlckZ1bGxzY3JlZW46
KFVJU2NyZWVuICopc2NyZWVuOworLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFdBS1dpbmRvdyAq
KXdpbmRvdzsKIC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW47CiAtICh2b2lkKXJlcXVlc3RIaWRlQW5k
RXhpdEZ1bGxzY3JlZW47CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQppbmRl
eCBkZTdhNmEyOTgzNmQ1Y2NmYmVlNTVjYWY2YjE1OGMzMGFkMzRmZTk1Li45YmU2YjY2OGZmMWU2
MjQ1M2E1ZGQ1MmE5Y2ZlOWZiOTcwNTg1ZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZL
aXQubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmgiCiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dC5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1dBS1dpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkUnVuLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTAsOSArNTEsOSBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotLSAodm9pZCllbnRlckZ1bGxz
Y3JlZW46KFVJU2NyZWVuICopc2NyZWVuCistICh2b2lkKWVudGVyRnVsbHNjcmVlbjooV0FLV2lu
ZG93ICopd2FrV2luZG93CiB7Ci0gICAgVU5VU0VEX1BBUkFNKHNjcmVlbik7CisgICAgVU5VU0VE
X1BBUkFNKHdha1dpbmRvdyk7CiB9CiAKIC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW4KQEAgLTExNCwx
MSArMTE1LDEwIEBAIHB1YmxpYzoKICAgICByZXR1cm4gX21lZGlhRWxlbWVudC5nZXQoKTsKIH0K
IAotLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KFVJU2NyZWVuICopc2NyZWVuCistICh2b2lkKWVu
dGVyRnVsbHNjcmVlbjooV0FLV2luZG93ICopd2FrV2luZG93CiB7CiAgICAgW3NlbGYgcmV0YWlu
XTsgLy8gQmFsYW5jZWQgYnkgLXJlbGVhc2UgaW4gZGlkRXhpdEZ1bGxzY3JlZW46CiAgICAgCi0g
ICAgVU5VU0VEX1BBUkFNKHNjcmVlbik7CiAgICAgX2ludGVyZmFjZSA9IGFkb3B0UmVmKG5ldyBX
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdCk7CiAgICAgX2ludGVyZmFjZS0+c2V0V2Vi
VmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIoJl9jaGFuZ2VPYnNlcnZlcik7CiAgICAgX21v
ZGVsID0gYWRvcHRSZWYobmV3IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50KTsK
QEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgX2ludGVyZmFjZS0+c2V0V2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWwoX21vZGVsLmdldCgpKTsKICAgICBfbW9kZWwtPnNldE1lZGlhRWxlbWVu
dChfbWVkaWFFbGVtZW50LmdldCgpKTsKICAgICBfdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSBbQ0FM
YXllciBsYXllcl07Ci0gICAgX2ludGVyZmFjZS0+c2V0dXBGdWxsc2NyZWVuKCpfdmlkZW9GdWxs
c2NyZWVuTGF5ZXIuZ2V0KCksIF9tZWRpYUVsZW1lbnQtPnNjcmVlblJlY3QoKSk7CisgICAgX2lu
dGVyZmFjZS0+c2V0dXBGdWxsc2NyZWVuKCpfdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCksIF9t
ZWRpYUVsZW1lbnQtPnNjcmVlblJlY3QoKSwgW3dha1dpbmRvdyBob3N0TGF5ZXJdKTsKIH0KIAog
LSAodm9pZClleGl0RnVsbHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCAx
MGYzZDA3NTc5Y2JiNDRjMmE3NmMyYmZlYTYzY2ExNDUzZmQ4OTc0Li5jYjk0NTE0ZjhjYjNmYjNh
NDU1ZjY0ZDY3MTg3MTg3M2VlNTllYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApA
QCAtNjIsNyArNjIsNiBAQCBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdAog
ICAgIFJldGFpblB0cjxXZWJBVlBsYXllckNvbnRyb2xsZXI+IG1fcGxheWVyQ29udHJvbGxlcjsK
ICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJWaWV3Q29udHJvbGxlcj4gbV9wbGF5ZXJWaWV3Q29udHJv
bGxlcjsKICAgICBSZXRhaW5QdHI8VUlWaWV3Q29udHJvbGxlcj4gbV92aWV3Q29udHJvbGxlcjsK
LSAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IG1fd2luZG93OwogICAgIFJldGFpblB0cjxDQUxheWVy
PiBtX3ZpZGVvTGF5ZXI7CiAgICAgUmV0YWluUHRyPFdlYkFWVmlkZW9MYXllcj4gbV92aWRlb0xh
eWVyQ29udGFpbmVyOwogICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBtX3ZpZGVvRnVsbHNj
cmVlbk1vZGVsOwpAQCAtODcsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlv
bnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYWxQbGF5YmFja1RhcmdldFR5
cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYsIFdlYkNvcmU6OkludFJlY3QgaW5p
dGlhbFJlY3QpOworICAgIHZpcnR1YWwgdm9pZCBzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXll
ciYsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIFBsYXRmb3JtTGF5ZXIqKTsKICAgICB2
aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxs
c2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgY2xl
YW51cEZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBlYmIw
MTQxZTljM2VhNGRmOWM4Y2UzYjBmZWE4ZDFlOWE4ZjdlNjZmLi41YzU0MDUzMDZkZjMxN2FlMzhm
YjM0YzYwZTg0MTZjNjA3MzBkMDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBA
IC03MzcsMTcgKzczNywyMiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYQogICAgIH0pOwogfQog
Ci12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4o
UGxhdGZvcm1MYXllciYgdmlkZW9MYXllciwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCkK
K3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbihQ
bGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyLCBXZWJDb3JlOjpJbnRSZWN0IGluaXRpYWxSZWN0LCBQ
bGF0Zm9ybUxheWVyKiBwYXJlbnRMYXllcikKIHsKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKKyAgICBhc3NlcnQoW3Bh
cmVudExheWVyLmRlbGVnYXRlIGlzS2luZE9mQ2xhc3M6W2dldFVJVmlld0NsYXNzKCkgY2xhc3Nd
XSk7CiAgICAgCiAgICAgbV92aWRlb0xheWVyID0gJnZpZGVvTGF5ZXI7CiAgICAgCiAgICAgZGlz
cGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLQogICAgICAgICBbQ0FU
cmFuc2FjdGlvbiBiZWdpbl07CiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rp
b25zOllFU107CiAKKyAgICAgICAgVUlWaWV3KiBwYXJlbnRWaWV3ID0gKFVJVmlldyAqKXBhcmVu
dExheWVyLmRlbGVnYXRlOworICAgICAgICBtX3ZpZXdDb250cm9sbGVyID0gYWRvcHROUyhbW2dl
dFVJVmlld0NvbnRyb2xsZXJDbGFzcygpIGFsbG9jXSBpbml0XSk7CisgICAgICAgIFttX3ZpZXdD
b250cm9sbGVyLmdldCgpLnZpZXcgc2V0RnJhbWU6cGFyZW50Vmlldy5ib3VuZHNdOworICAgICAg
ICBbcGFyZW50VmlldyBhZGRTdWJ2aWV3Om1fdmlld0NvbnRyb2xsZXIuZ2V0KCkudmlld107Cisg
ICAgICAgIAogICAgICAgICBbbV92aWRlb0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAg
ICAgICAgCiAgICAgICAgIG1fdmlkZW9MYXllckNvbnRhaW5lciA9IFtXZWJBVlZpZGVvTGF5ZXIg
dmlkZW9MYXllcl07CkBAIC03NjMsMTYgKzc2OCwxMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXll
cgogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJDb250cm9sbGVyOihB
VlBsYXllckNvbnRyb2xsZXIgKilwbGF5ZXJDb250cm9sbGVyKCldOwogICAgICAgICBbbV9wbGF5
ZXJWaWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpwbGF5ZXJDb250cm9sbGVyKCldOwogICAgICAg
ICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOm1fcGxheWVy
Vmlld0NvbnRyb2xsZXIuZ2V0KCldOwotICAgICAgICAKLSAgICAgICAgbV92aWV3Q29udHJvbGxl
ciA9IGFkb3B0TlMoW1tnZXRVSVZpZXdDb250cm9sbGVyQ2xhc3MoKSBhbGxvY10gaW5pdF0pOwot
Ci0gICAgICAgIG1fd2luZG93ID0gYWRvcHROUyhbW2dldFVJV2luZG93Q2xhc3MoKSBhbGxvY10g
aW5pdFdpdGhGcmFtZTpbW2dldFVJU2NyZWVuQ2xhc3MoKSBtYWluU2NyZWVuXSBib3VuZHNdXSk7
Ci0gICAgICAgIFttX3dpbmRvdyBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29sb3JDbGFzcygp
IGNsZWFyQ29sb3JdXTsKLSAgICAgICAgW21fd2luZG93IHNldFJvb3RWaWV3Q29udHJvbGxlcjpt
X3ZpZXdDb250cm9sbGVyLmdldCgpXTsKLSAgICAgICAgW21fd2luZG93IG1ha2VLZXlBbmRWaXNp
YmxlXTsKIAogICAgICAgICBbbV92aWV3Q29udHJvbGxlciBhZGRDaGlsZFZpZXdDb250cm9sbGVy
Om1fcGxheWVyVmlld0NvbnRyb2xsZXIuZ2V0KCldOwogICAgICAgICBbW21fdmlld0NvbnRyb2xs
ZXIgdmlld10gYWRkU3VidmlldzpbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XV07CisKICAg
ICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBpbml0aWFsUmVjdDsK
ICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgZGlkTW92ZVRvUGFyZW50Vmlld0NvbnRy
b2xsZXI6bV92aWV3Q29udHJvbGxlci5nZXQoKV07CiAgICAgICAgIFtbbV9wbGF5ZXJWaWV3Q29u
dHJvbGxlciB2aWV3XSBsYXlvdXRJZk5lZWRlZF07CkBAIC04MjgsMTggKzgyNywxNiBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbigpCiAg
ICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3Rl
Y3QodGhpcyk7CiAgICAgCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgXnsKLSAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOwotICAgICAgICBbbV93
aW5kb3cgc2V0Um9vdFZpZXdDb250cm9sbGVyOm5pbF07CiAgICAgICAgIFttX3BsYXllclZpZXdD
b250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CiAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9s
bGVyIHNldFBsYXllckNvbnRyb2xsZXI6bmlsXTsKICAgICAgICAgbV9wbGF5ZXJWaWV3Q29udHJv
bGxlciA9IG5pbDsKLSAgICAgICAgbV92aWV3Q29udHJvbGxlciA9IG5pbDsKLSAgICAgICAgbV93
aW5kb3cgPSBuaWw7CiAgICAgICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJd
OwogICAgICAgICBtX3ZpZGVvTGF5ZXIgPSBuaWw7CiAgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250
YWluZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwogICAgICAgICBbbV92aWRlb0xheWVyQ29udGFp
bmVyIHNldFBsYXllclZpZXdDb250cm9sbGVyOm5pbF07CiAgICAgICAgIG1fdmlkZW9MYXllckNv
bnRhaW5lciA9IG5pbDsKKyAgICAgICAgW21fdmlld0NvbnRyb2xsZXIuZ2V0KCkudmlldyByZW1v
dmVGcm9tU3VwZXJ2aWV3XTsKKyAgICAgICAgbV92aWV3Q29udHJvbGxlciA9IG5pbDsKICAgICAg
ICAgCiAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlcikKICAgICAgICAgICAg
IG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLT5kaWRDbGVhbnVwRnVsbHNjcmVlbigpOwpAQCAt
ODUwLDIyICs4NDcsMjggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6
Y2xlYW51cEZ1bGxzY3JlZW4oKQogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6aW52YWxpZGF0ZSgpCiB7CiAgICAgbV9wbGF5ZXJDb250cm9sbGVyLmNsZWFyKCk7Ci0gICAg
W21fd2luZG93IHNldEhpZGRlbjpZRVNdOwotICAgIFttX3dpbmRvdyBzZXRSb290Vmlld0NvbnRy
b2xsZXI6bmlsXTsKICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpuaWxd
OwogICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFBsYXllckNvbnRyb2xsZXI6bmlsXTsK
ICAgICBtX3BsYXllclZpZXdDb250cm9sbGVyID0gbmlsOwotICAgIG1fdmlld0NvbnRyb2xsZXIg
PSBuaWw7Ci0gICAgbV93aW5kb3cgPSBuaWw7CiAgICAgW21fdmlkZW9MYXllciByZW1vdmVGcm9t
U3VwZXJsYXllcl07CiAgICAgbV92aWRlb0xheWVyID0gbmlsOwogICAgIFttX3ZpZGVvTGF5ZXJD
b250YWluZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwogICAgIG1fdmlkZW9MYXllckNvbnRhaW5l
ciA9IG5pbDsKKyAgICBbbV92aWV3Q29udHJvbGxlci5nZXQoKS52aWV3IHJlbW92ZUZyb21TdXBl
cnZpZXddOworICAgIG1fdmlld0NvbnRyb2xsZXIgPSBuaWw7CiB9CiAKIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4oKQog
ewotICAgIFttX3dpbmRvdyBzZXRIaWRkZW46WUVTXTsKKyAgICBfX2Jsb2NrIFJlZlB0cjxXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKKworICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgIFttX3BsYXll
clZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVuV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9P
TCwgTlNFcnJvciopCisgICAgICAgIHsKKyAgICAgICAgICAgIHByb3RlY3QuY2xlYXIoKTsKKyAg
ICAgICAgfV07CisgICAgfSk7CisKICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKICAg
ICAgICAgbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMTRmMDc3YmYyNzdlMjM4Y2M5
ZjU4NTczMGExNmQ1YzJkMDNmMTJjMC4uNGE2ZmU1YzgxZDEwYjliNmQ4NDlmMTg0MWE3MjZiNWYz
NWRmMjYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODQyNiw3ICs4
NDI2LDcgQEAgYm9vbCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQogICAgICAg
ICBfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIgPSBbW1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXIgYWxsb2NdIGluaXRdOwogICAgICAgICBbX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250
cm9sbGVyIHNldE1lZGlhRWxlbWVudDp2aWRlb0VsZW1lbnRdOwogI2lmIFBMQVRGT1JNKElPUykK
LSAgICAgICAgW19wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxzY3JlZW46
bmlsXTsKKyAgICAgICAgW19wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxz
Y3JlZW46W3NlbGYgd2luZG93XV07CiAjZWxzZQogICAgICAgICBbX3ByaXZhdGUtPmZ1bGxzY3Jl
ZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjpbW3NlbGYgd2luZG93XSBzY3JlZW5dXTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCA3NTM3MjQ4YmNkMjAzZDk2Y2Vk
ZjAwMTVlMjI5OTQzN2JhZTkwNTk5Li4yNTEwZTkwMjcyMTA4MzM4NDBlZWYyY2ZjOTZlYzczYmUz
ZDlmNjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMjgsMTEgKzI4LDEzIEBA
CiAKICNpZiBQTEFURk9STShJT1MpCiAKKyNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlIDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KKyNpbmNsdWRlIDxVSUtpdC9V
SUtpdC5oPgogI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVGltZVJhbmdlcy5oPgogCkBAIC03NSw3ICs3Nyw4IEBAIHZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9M
YXllcklECiB7CiAgICAgQVNTRVJUKHZpZGVvTGF5ZXJJRCk7CiAgICAgbV9sYXllckhvc3QgPSBX
S01ha2VSZW5kZXJMYXllcih2aWRlb0xheWVySUQpOwotICAgIHNldHVwRnVsbHNjcmVlbigqbV9s
YXllckhvc3QuZ2V0KCksIGluaXRpYWxSZWN0KTsKKyAgICBQbGF0Zm9ybUxheWVyKiBwYXJlbnQg
PSBbdG9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KG1fcGFnZS0+ZHJhd2luZ0FyZWEo
KSktPnJlbW90ZUxheWVyVHJlZUhvc3QoKS5yb290TGF5ZXIoKSBsYXllcl07CisgICAgc2V0dXBG
dWxsc2NyZWVuKCptX2xheWVySG9zdC5nZXQoKSwgaW5pdGlhbFJlY3QsIHBhcmVudCk7CiB9CiAg
ICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0U2Vla2FibGVSYW5n
ZXNWZWN0b3IoVmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+JiByYW5nZXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tbQppbmRleCBlMGQzM2NiNGJlZjdmNjVjZDU2ZGQxMDZhNDlhMWIzNzc1YTRm
YjkzLi4wMTYyYzAzZDE4ZjRkMTRlYWUzYjdiYWE4MmY1YzIyNTA5MTZmYzliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW0KQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIEludFJlY3Qgc2NyZWVuUmVjdEZv
ck5vZGUoTm9kZSogbm9kZSkKICAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzRWxlbWVudE5vZGUo
KSkKICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIAotICAgIHJldHVybiB0b0VsZW1lbnQobm9k
ZSktPnNjcmVlblJlY3QoKTsKKyAgICByZXR1cm4gdG9FbGVtZW50KG5vZGUpLT5jbGllbnRSZWN0
KCk7CiB9CiAKIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcj4gV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFBhc3NSZWZQdHI8V2ViUGFnZT4gcGFnZSkK
</data>
<flag name="review"
          id="259656"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235266</attachid>
            <date>2014-07-21 20:17:01 -0700</date>
            <delta_ts>2014-07-22 10:19:41 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-135038-20140721201646.patch</filename>
            <type>text/plain</type>
            <size>20481</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2ZTlmZmNjNjAzZjIx
OGMyYWViZTM5YjRkZDJjNjZmMmI5ODg4NC4uNTdiMTAxOWExZDg0NDMzOTAzNzFlNmUwOWVhOGJl
MDI3NmUxMGUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTA3LTE3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBjcmVhdGUgbmV3
IFVJV2luZG93IGZvciB2aWRlbyBmdWxsc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lmg6IHVzZSBVSVZpZXcgaW5z
dGVhZCBvZiBVSVNjcmVlbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyIGVudGVyRnVsbHNjcmVlbjpdKTogcHJvdmlkZSBwYXJlbnQgVUlWaWV3LgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOiByZW1v
dmUgVUlXaW5kb3cuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lm1tOiAKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpzZXR1cEZ1bGxzY3JlZW4pOiBkaXR0byAKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpjbGVhbnVwRnVsbHNjcmVlbik6IGRpdHRvCisgICAgICAgIChXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSk6IGRpdHRvCisgICAgICAg
IChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6cmVxdWVzdEhpZGVBbmRFeGl0RnVs
bHNjcmVlbik6IGRpdHRvCisKIDIwMTQtMDctMjEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW01TRV0gWW91VHViZSB2aWRlbyBkZWNvZGUgZXJyb3Igd2hlbiB2
YXJpYW50LXN3aXRjaGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDI4OTg4MjY3ZjNhYjUwM2M2Yjhl
ZGJlYTU4YmY3ODc5YzBiMzI3YjAuLjcyOTEwZmRjMmRkM2E5NmUxZmRhMTIyYWRlYWIzYWVjYWNh
ZjliZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wNy0xNyAgSmVy
ZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3QgY3JlYXRlIG5l
dyBVSVdpbmRvdyBmb3IgdmlkZW8gZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgIFByb3ZpZGUgVUlWaWV3IHRvIFdlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXIKKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V2ViVmlldyBfZW50ZXJGdWxsc2NyZWVuRm9yTm9kZTpdKTogcGFzcyBVSVZpZXcgaW5zdGVhZCBv
ZiBuaWwKKwogMjAxNC0wNy0yMSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJjYjRkYWZjNzUzYjUzZDE2YjJjZmM5M2Iz
NGJhOGNmMjU3MGFkYTIuLmMwMjRiNjY1NDQxODExN2U0ZTU4NmUzNTMzMTJhODM1OTM4NTZiZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wNy0xNyAgSmVyZW15IEpvbmVzICA8
amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgRG9uJ3QgY3JlYXRlIG5ldyBVSVdpbmRvdyBm
b3IgdmlkZW8gZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNTAzOAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgor
CisgICAgICAgIFVzZSByb290IFVJVmlldyB0byBwYXJlbnQgZnVsbHNjcmVlbiBpbnRlcmZhY2Uu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpz
ZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOiBwYXNzIHBhcmVudCBVSVZpZXcKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0
OjpzY3JlZW5SZWN0Rm9yTm9kZSk6IFVzZSBjbGllbnQgcmVjdCBpbnN0ZWFkIG9mIHNjcmVlbiBy
ZWN0LgorCiAyMDE0LTA3LTIxICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXSBIYW5kbGUgUXVpY2tMb29rIFJlc291cmNlTG9hZGVycyBpbiB0aGUgd2ViIHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNDkwYzQ5ZjlmODc2ZDQ5NDg4MDBkMDQxZTlk
MjZmMzliZWNkMzE4Yy4uMGEyNzhjY2I5NjBkYTBhMGQyNmMxYWQ5ODQ1Zjk2ODE2N2Q1NjI4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTM0NDEsNyArMzQ0MSw3IEBAIF9fWk43V2ViQ29yZTMy
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxMXNldER1cmF0aW9uRWQKIF9fWk43V2Vi
Q29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxNGV4aXRGdWxsc2NyZWVuRU5T
XzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDE0c2V0Q3VycmVudFRpbWVFZGQKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQxNWVudGVyRnVsbHNjcmVlbkV2Ci1fX1pON1dlYkNvcmUzMldlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0MTVzZXR1cEZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0ludFJl
Y3RFCitfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MTVzZXR1
cEZ1bGxzY3JlZW5FUjdDQUxheWVyTlNfN0ludFJlY3RFUDZVSVZpZXcKIF9fWk43V2ViQ29yZTMy
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN2NsZWFudXBGdWxsc2NyZWVuRXYKIF9f
Wk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQxN3NldFNlZWthYmxl
UmFuZ2VzRVJLTlNfMTBUaW1lUmFuZ2VzRQogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDE4c2V0VmlkZW9EaW1lbnNpb25zRWJmZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktp
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJBVktpdC5oCmluZGV4IGE2OGNjY2FjZjdhYWZiNTNmZjU4MzZjNjAxZmE4MWMwZTg0YThm
OGIuLjU5YzkyYzQxMzE2N2EyZTlhZDBiZGUxZGI5YjRhZWQ0MjNkM2E5NzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckFWS2l0LmgKQEAgLTMwLDEyICszMCwxMiBAQAogCiAjaW1wb3J0IDxXZWJD
b3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KIAotT0JKQ19DTEFTUyBVSVNjcmVlbjsKK09CSkNfQ0xB
U1MgVUlWaWV3OwogCiBAaW50ZXJmYWNlIFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgOiBO
U09iamVjdAogLSAodm9pZClzZXRNZWRpYUVsZW1lbnQ6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQqKW1lZGlhRWxlbWVudDsKIC0gKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQqKW1lZGlhRWxl
bWVudDsKLS0gKHZvaWQpZW50ZXJGdWxsc2NyZWVuOihVSVNjcmVlbiAqKXNjcmVlbjsKKy0gKHZv
aWQpZW50ZXJGdWxsc2NyZWVuOihVSVZpZXcgKil2aWV3OwogLSAodm9pZClleGl0RnVsbHNjcmVl
bjsKIC0gKHZvaWQpcmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbjsKIEBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IGNlZjZiYTMzNzBlZjQwMGM4OTdhZDJlZjgxMzEx
NGYwNzY1OWVmZmYuLjczOTMwMzUxYzJjMjhlMmUzYzM2ZTlmY2FlMDVjYmRlYzNkY2YwYTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtNTAsOSArNTAsOSBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotLSAodm9pZCllbnRl
ckZ1bGxzY3JlZW46KFVJU2NyZWVuICopc2NyZWVuCistICh2b2lkKWVudGVyRnVsbHNjcmVlbjoo
VUlWaWV3ICopdmlldwogewotICAgIFVOVVNFRF9QQVJBTShzY3JlZW4pOworICAgIFVOVVNFRF9Q
QVJBTSh2aWV3KTsKIH0KIAogLSAodm9pZClleGl0RnVsbHNjcmVlbgpAQCAtMTE0LDExICsxMTQs
MTAgQEAgcHVibGljOgogICAgIHJldHVybiBfbWVkaWFFbGVtZW50LmdldCgpOwogfQogCi0tICh2
b2lkKWVudGVyRnVsbHNjcmVlbjooVUlTY3JlZW4gKilzY3JlZW4KKy0gKHZvaWQpZW50ZXJGdWxs
c2NyZWVuOihVSVZpZXcgKil2aWV3CiB7CiAgICAgW3NlbGYgcmV0YWluXTsgLy8gQmFsYW5jZWQg
YnkgLXJlbGVhc2UgaW4gZGlkRXhpdEZ1bGxzY3JlZW46CiAgICAgCi0gICAgVU5VU0VEX1BBUkFN
KHNjcmVlbik7CiAgICAgX2ludGVyZmFjZSA9IGFkb3B0UmVmKG5ldyBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdCk7CiAgICAgX2ludGVyZmFjZS0+c2V0V2ViVmlkZW9GdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIoJl9jaGFuZ2VPYnNlcnZlcik7CiAgICAgX21vZGVsID0gYWRvcHRSZWYo
bmV3IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50KTsKQEAgLTEyNiw3ICsxMjUs
NyBAQCBwdWJsaWM6CiAgICAgX2ludGVyZmFjZS0+c2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwo
X21vZGVsLmdldCgpKTsKICAgICBfbW9kZWwtPnNldE1lZGlhRWxlbWVudChfbWVkaWFFbGVtZW50
LmdldCgpKTsKICAgICBfdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSBbQ0FMYXllciBsYXllcl07Ci0g
ICAgX2ludGVyZmFjZS0+c2V0dXBGdWxsc2NyZWVuKCpfdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0
KCksIF9tZWRpYUVsZW1lbnQtPnNjcmVlblJlY3QoKSk7CisgICAgX2ludGVyZmFjZS0+c2V0dXBG
dWxsc2NyZWVuKCpfdmlkZW9GdWxsc2NyZWVuTGF5ZXIuZ2V0KCksIF9tZWRpYUVsZW1lbnQtPnNj
cmVlblJlY3QoKSwgdmlldyk7CiB9CiAKIC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0LmgKaW5kZXggMzM5ZmNhYTdjNzA0MjRiNjA1NmQ5NzQzYmNkNjhmZDli
ODBmZTg1My4uMTZmNDI4ZGQ4YjIxMWE4MDg2YzhhYjI0OTA0ZjE5OWJmNzlkMmIyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTQwLDYgKzQwLDcgQEAgT0JKQ19DTEFTUyBXZWJB
VlBsYXllckNvbnRyb2xsZXI7CiBPQkpDX0NMQVNTIEFWUGxheWVyVmlld0NvbnRyb2xsZXI7CiBP
QkpDX0NMQVNTIFVJVmlld0NvbnRyb2xsZXI7CiBPQkpDX0NMQVNTIFVJV2luZG93OworT0JKQ19D
TEFTUyBVSVZpZXc7CiBPQkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NMQVNTIFdlYkFWVmlkZW9M
YXllcjsKIApAQCAtNjIsNyArNjMsNiBAQCBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdAogICAgIFJldGFpblB0cjxXZWJBVlBsYXllckNvbnRyb2xsZXI+IG1fcGxheWVyQ29u
dHJvbGxlcjsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJWaWV3Q29udHJvbGxlcj4gbV9wbGF5ZXJW
aWV3Q29udHJvbGxlcjsKICAgICBSZXRhaW5QdHI8VUlWaWV3Q29udHJvbGxlcj4gbV92aWV3Q29u
dHJvbGxlcjsKLSAgICBSZXRhaW5QdHI8VUlXaW5kb3c+IG1fd2luZG93OwogICAgIFJldGFpblB0
cjxDQUxheWVyPiBtX3ZpZGVvTGF5ZXI7CiAgICAgUmV0YWluUHRyPFdlYkFWVmlkZW9MYXllcj4g
bV92aWRlb0xheWVyQ29udGFpbmVyOwogICAgIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsKiBtX3Zp
ZGVvRnVsbHNjcmVlbk1vZGVsOwpAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYWxQbGF5YmFj
a1RhcmdldFR5cGUsIFN0cmluZyBsb2NhbGl6ZWREZXZpY2VOYW1lKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYsIFdlYkNvcmU6Oklu
dFJlY3QgaW5pdGlhbFJlY3QpOworICAgIHZpcnR1YWwgdm9pZCBzZXR1cEZ1bGxzY3JlZW4oUGxh
dGZvcm1MYXllciYsIFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIFVJVmlldyAqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRG
dWxsc2NyZWVuKFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYW51cEZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBi
YmJmNWY1YTljZDI3ZTUwNjg4OTQxNGY1Yzg3MzQ5M2MxMWJkZGViLi5iNWFjYmZmNTg5Yjk0Mzhl
NGY2YzE5YTVkNDg2MmViZmY2MmQ5YjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1t
CkBAIC02MDUsNyArNjA1LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6c2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQogICAgICAgICBwbGF5ZXJDb250cm9sbGVy
Lm1pblRpbWUgPSAwOwogICAgICAgICBwbGF5ZXJDb250cm9sbGVyLnN0YXR1cyA9IEFWUGxheWVy
Q29udHJvbGxlclN0YXR1c1JlYWR5VG9QbGF5OwogICAgICAgICAKLSAgICAgICAgcHJvdGVjdC5j
bGVhcigpOworICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKICAgICB9KTsKIH0KIApAQCAtNjE5
LDcgKzYxOSw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldEN1
cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlCiAgICAgICAgICAgICBhbmNob3JU
aW1lU3RhbXA6YW5jaG9yVGltZVN0YW1wIHJhdGU6MF07CiAgICAgICAgIHBsYXllckNvbnRyb2xs
ZXIoKS50aW1pbmcgPSB0aW1pbmc7CiAgICAgICAgIAotICAgICAgICBwcm90ZWN0LmNsZWFyKCk7
CisgICAgICAgIHByb3RlY3QgPSBudWxscHRyOwogICAgIH0pOwogfQogCkBAIC02MzAsNyArNjMw
LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0UmF0ZShib29s
IGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXQKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICBwbGF5ZXJDb250cm9sbGVyKCkucmF0ZSA9
IGlzUGxheWluZyA/IHBsYXliYWNrUmF0ZSA6IDAuOwogICAgICAgICAKLSAgICAgICAgcHJvdGVj
dC5jbGVhcigpOworICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKICAgICB9KTsKIH0KIApAQCAt
NjQyLDcgKzY0Miw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNl
dFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3CiAgICAgICAgIHBsYXllckNv
bnRyb2xsZXIoKS5oYXNFbmFibGVkVmlkZW8gPSBoYXNWaWRlbzsKICAgICAgICAgcGxheWVyQ29u
dHJvbGxlcigpLmNvbnRlbnREaW1lbnNpb25zID0gQ0dTaXplTWFrZSh3aWR0aCwgaGVpZ2h0KTsK
ICAgICAgICAgCi0gICAgICAgIHByb3RlY3QuY2xlYXIoKTsKKyAgICAgICAgcHJvdGVjdCA9IG51
bGxwdHI7CiAgICAgfSk7CiB9CiAKQEAgLTY2NCw3ICs2NjQsNyBAQCB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRTZWVrYWJsZVJhbmdlcyhjb25zdCBUaW1lUmFuZ2Vz
JiB0aW1lUgogICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57
CiAgICAgICAgIHBsYXllckNvbnRyb2xsZXIoKS5zZWVrYWJsZVRpbWVSYW5nZXMgPSBzZWVrYWJs
ZVJhbmdlczsKICAgICAgICAgCi0gICAgICAgIHByb3RlY3QuY2xlYXIoKTsKKyAgICAgICAgcHJv
dGVjdCA9IG51bGxwdHI7CiAgICAgfSk7CiB9CiAKQEAgLTY5NCw3ICs2OTQsNyBAQCB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0
aW9ucyhjb25zdCBWZWN0bwogICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IHdlYk9wdGlvbnMu
Y291bnQpCiAgICAgICAgICAgICBwbGF5ZXJDb250cm9sbGVyKCkuY3VycmVudEF1ZGlvTWVkaWFT
ZWxlY3Rpb25PcHRpb24gPSB3ZWJPcHRpb25zWyhzaXplX3Qpc2VsZWN0ZWRJbmRleF07CiAgICAg
ICAgIAotICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CisgICAgICAgIHByb3RlY3QgPSBudWxscHRy
OwogICAgIH0pOwogfQogCkBAIC03MDgsNyArNzA4LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBW
ZWMKICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCB3ZWJPcHRpb25zLmNvdW50KQogICAgICAg
ICAgICAgcGxheWVyQ29udHJvbGxlcigpLmN1cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRp
b24gPSB3ZWJPcHRpb25zWyhzaXplX3Qpc2VsZWN0ZWRJbmRleF07CiAgICAgICAgIAotICAgICAg
ICBwcm90ZWN0LmNsZWFyKCk7CisgICAgICAgIHByb3RlY3QgPSBudWxscHRyOwogICAgIH0pOwog
fQogCkBAIC03MjgsMTEgKzcyOCwxMSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpzZXRFeHRlcm5hbFBsYXliYWNrKGJvb2wgZW5hYmxlZCwgRXh0ZXJuYQogICAgICAg
ICBwbGF5ZXJDb250cm9sbGVyKCkuZXh0ZXJuYWxQbGF5YmFja0FjdGl2ZSA9IGVuYWJsZWQ7CiAg
ICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIuZ2V0KCkgc2V0SGlkZGVuOmVuYWJsZWRdOwog
ICAgICAgICAKLSAgICAgICAgcHJvdGVjdC5jbGVhcigpOworICAgICAgICBwcm90ZWN0ID0gbnVs
bHB0cjsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dDo6c2V0dXBGdWxsc2NyZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIsIFdlYkNvcmU6Oklu
dFJlY3QgaW5pdGlhbFJlY3QpCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllciwgV2ViQ29yZTo6SW50
UmVjdCBpbml0aWFsUmVjdCwgVUlWaWV3KiBwYXJlbnRWaWV3KQogewogICAgIF9fYmxvY2sgUmVm
UHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBwcm90ZWN0KHRoaXMpOwogICAg
IApAQCAtNzQzLDYgKzc0MywxMCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllcgogICAgICAgICBb
Q0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVB
Y3Rpb25zOllFU107CiAKKyAgICAgICAgbV92aWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tnZXRV
SVZpZXdDb250cm9sbGVyQ2xhc3MoKSBhbGxvY10gaW5pdF0pOworICAgICAgICBbW21fdmlld0Nv
bnRyb2xsZXIgdmlld10gc2V0RnJhbWU6cGFyZW50Vmlldy5ib3VuZHNdOworICAgICAgICBbcGFy
ZW50VmlldyBhZGRTdWJ2aWV3OlttX3ZpZXdDb250cm9sbGVyIHZpZXddXTsKKyAgICAgICAgCiAg
ICAgICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwogICAgICAgICAKICAg
ICAgICAgbV92aWRlb0xheWVyQ29udGFpbmVyID0gW1dlYkFWVmlkZW9MYXllciB2aWRlb0xheWVy
XTsKQEAgLTc1OCwxOSArNzYyLDExIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ6OnNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyCiAgICAgICAg
IFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldFBsYXllckNvbnRyb2xsZXI6KEFWUGxheWVyQ29u
dHJvbGxlciAqKXBsYXllckNvbnRyb2xsZXIoKV07CiAgICAgICAgIFttX3BsYXllclZpZXdDb250
cm9sbGVyIHNldERlbGVnYXRlOnBsYXllckNvbnRyb2xsZXIoKV07CiAgICAgICAgIFttX3ZpZGVv
TGF5ZXJDb250YWluZXIgc2V0UGxheWVyVmlld0NvbnRyb2xsZXI6bV9wbGF5ZXJWaWV3Q29udHJv
bGxlci5nZXQoKV07Ci0gICAgICAgIAotICAgICAgICBtX3ZpZXdDb250cm9sbGVyID0gYWRvcHRO
UyhbW2dldFVJVmlld0NvbnRyb2xsZXJDbGFzcygpIGFsbG9jXSBpbml0XSk7Ci0KLSAgICAgICAg
bV93aW5kb3cgPSBhZG9wdE5TKFtbZ2V0VUlXaW5kb3dDbGFzcygpIGFsbG9jXSBpbml0V2l0aEZy
YW1lOltbZ2V0VUlTY3JlZW5DbGFzcygpIG1haW5TY3JlZW5dIGJvdW5kc11dKTsKLSAgICAgICAg
W21fd2luZG93IHNldEJhY2tncm91bmRDb2xvcjpbZ2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xv
cl1dOwotICAgICAgICBbbV93aW5kb3cgc2V0Um9vdFZpZXdDb250cm9sbGVyOm1fdmlld0NvbnRy
b2xsZXIuZ2V0KCldOwotICAgICAgICBbbV93aW5kb3cgbWFrZUtleUFuZFZpc2libGVdOwogCiAg
ICAgICAgIFttX3ZpZXdDb250cm9sbGVyIGFkZENoaWxkVmlld0NvbnRyb2xsZXI6bV9wbGF5ZXJW
aWV3Q29udHJvbGxlci5nZXQoKV07CiAgICAgICAgIFtbbV92aWV3Q29udHJvbGxlciB2aWV3XSBh
ZGRTdWJ2aWV3OlttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddXTsKICAgICAgICAgW21fcGxh
eWVyVmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBpbml0aWFsUmVjdDsKICAgICAgICAgW1tt
X3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEJhY2tncm91bmRDb2xvcjpbZ2V0VUlDb2xv
ckNsYXNzKCkgY2xlYXJDb2xvcl1dOwotICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBk
aWRNb3ZlVG9QYXJlbnRWaWV3Q29udHJvbGxlcjptX3ZpZXdDb250cm9sbGVyLmdldCgpXTsKICAg
ICAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIGxheW91dElmTmVlZGVkXTsKIAog
ICAgICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwpAQCAtNzc5LDcgKzc3NSw3IEBAIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbihQbGF0Zm9y
bUxheWVyJiB2aWRlb0xheWVyCiAgICAgICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXIpCiAgICAgICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZFNl
dHVwRnVsbHNjcmVlbigpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBwcm90ZWN0LmNsZWFy
KCk7CisgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKICAgICAgICAgfSk7CiAgICAgfSk7
CiB9CkBAIC03OTQsNyArNzkwLDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdDo6ZW50ZXJGdWxsc2NyZWVuKCkKICAgICAgICAgICAgIFttX3BsYXllclZpZXdDb250cm9s
bGVyIHNldFNob3dzUGxheWJhY2tDb250cm9sczpZRVNdOwogICAgICAgICAgICAgaWYgKG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyKQogICAgICAgICAgICAgICAgIG1fZnVsbHNjcmVlbkNoYW5n
ZU9ic2VydmVyLT5kaWRFbnRlckZ1bGxzY3JlZW4oKTsKLSAgICAgICAgICAgIHByb3RlY3QuY2xl
YXIoKTsKKyAgICAgICAgICAgIHByb3RlY3QgPSBudWxscHRyOwogICAgICAgICB9XTsKICAgICB9
KTsKIH0KQEAgLTgwMyw3ICs3OTksNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjpleGl0RnVsbHNjcmVlbihXZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdAogewogICAg
IF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0PiBwcm90ZWN0
KHRoaXMpOwogICAgIAotICAgIG1fcGxheWVyQ29udHJvbGxlci5jbGVhcigpOworICAgIG1fcGxh
eWVyQ29udHJvbGxlciA9IG5pbDsKICAgICAKICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRT
aG93c1BsYXliYWNrQ29udHJvbHM6Tk9dOwpAQCAtODExLDU5ICs4MDcsNjcgQEAgdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZXhpdEZ1bGxzY3JlZW4oV2ViQ29yZTo6SW50
UmVjdCBmaW5hbFJlY3QKICAgICAgICAgaWYgKFttX3ZpZGVvTGF5ZXJDb250YWluZXIgdmlkZW9M
YXllckdyYXZpdHldICE9IEFWVmlkZW9MYXllckdyYXZpdHlSZXNpemVBc3BlY3QpCiAgICAgICAg
ICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldFZpZGVvTGF5ZXJHcmF2aXR5OkFWVmlkZW9M
YXllckdyYXZpdHlSZXNpemVBc3BlY3RdOwogICAgICAgICBbW21fcGxheWVyVmlld0NvbnRyb2xs
ZXIgdmlld10gbGF5b3V0SWZOZWVkZWRdOwotICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxl
ciBleGl0RnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJyb3IqKQot
ICAgICAgICB7CisgICAgICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIGV4aXRGdWxsU2NyZWVu
V2l0aENvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCwgTlNFcnJvciopIHsKICAgICAgICAgICAgIFtb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSBzZXRCYWNrZ3JvdW5kQ29sb3I6W2dldFVJQ29s
b3JDbGFzcygpIGNsZWFyQ29sb3JdXTsKICAgICAgICAgICAgIGlmIChtX2Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlcikKICAgICAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+
ZGlkRXhpdEZ1bGxzY3JlZW4oKTsKLSAgICAgICAgICAgIHByb3RlY3QuY2xlYXIoKTsKKyAgICAg
ICAgICAgIHByb3RlY3QgPSBudWxscHRyOwogICAgICAgICB9XTsKICAgICB9KTsKIH0KIAogdm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6Y2xlYW51cEZ1bGxzY3JlZW4oKQog
eworICAgIC8vIFJldGFpbiB0aGlzIHRvIGV4dGVuZCBvYmplY3QgbGlmZSB1bnRpbCBhc3luYyBi
bG9jayBjb21wbGV0ZXMuCiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7CiAgICAgCiAgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAgICAgICAgW21fd2luZG93IHNldEhpZGRlbjpZ
RVNdOwotICAgICAgICBbbV93aW5kb3cgc2V0Um9vdFZpZXdDb250cm9sbGVyOm5pbF07CiAgICAg
ICAgIFttX3BsYXllclZpZXdDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CisgICAgICAgIFtb
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKyAgICAg
ICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgcmVtb3ZlRnJvbVBhcmVudFZpZXdDb250cm9sbGVy
XTsKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0UGxheWVyQ29udHJvbGxlcjpu
aWxdOwogICAgICAgICBtX3BsYXllclZpZXdDb250cm9sbGVyID0gbmlsOwotICAgICAgICBtX3Zp
ZXdDb250cm9sbGVyID0gbmlsOwotICAgICAgICBtX3dpbmRvdyA9IG5pbDsKICAgICAgICAgW21f
dmlkZW9MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CiAgICAgICAgIG1fdmlkZW9MYXllciA9
IG5pbDsKICAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciByZW1vdmVGcm9tU3VwZXJsYXll
cl07CiAgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0UGxheWVyVmlld0NvbnRyb2xs
ZXI6bmlsXTsKICAgICAgICAgbV92aWRlb0xheWVyQ29udGFpbmVyID0gbmlsOworICAgICAgICBb
W21fdmlld0NvbnRyb2xsZXIgdmlld10gcmVtb3ZlRnJvbVN1cGVydmlld107CisgICAgICAgIG1f
dmlld0NvbnRyb2xsZXIgPSBuaWw7CiAgICAgICAgIAogICAgICAgICBpZiAobV9mdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXIpCiAgICAgICAgICAgICBtX2Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci0+
ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKLSAgICAgICAgcHJvdGVjdC5jbGVhcigpOworICAgICAg
ICBwcm90ZWN0ID0gbnVsbHB0cjsKICAgICB9KTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgbV9wbGF5ZXJDb250cm9sbGVy
LmNsZWFyKCk7Ci0gICAgW21fd2luZG93IHNldEhpZGRlbjpZRVNdOwotICAgIFttX3dpbmRvdyBz
ZXRSb290Vmlld0NvbnRyb2xsZXI6bmlsXTsKKyAgICBtX3BsYXllckNvbnRyb2xsZXIgPSBuaWw7
CiAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBbW21f
cGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10gcmVtb3ZlRnJvbVN1cGVydmlld107CisgICAgW21f
cGxheWVyVmlld0NvbnRyb2xsZXIgcmVtb3ZlRnJvbVBhcmVudFZpZXdDb250cm9sbGVyXTsKICAg
ICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBzZXRQbGF5ZXJDb250cm9sbGVyOm5pbF07CiAgICAg
bV9wbGF5ZXJWaWV3Q29udHJvbGxlciA9IG5pbDsKLSAgICBtX3ZpZXdDb250cm9sbGVyID0gbmls
OwotICAgIG1fd2luZG93ID0gbmlsOwogICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1cGVy
bGF5ZXJdOwogICAgIG1fdmlkZW9MYXllciA9IG5pbDsKICAgICBbbV92aWRlb0xheWVyQ29udGFp
bmVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNl
dFBsYXllclZpZXdDb250cm9sbGVyOm5pbF07CiAgICAgbV92aWRlb0xheWVyQ29udGFpbmVyID0g
bmlsOworICAgIFtbbV92aWV3Q29udHJvbGxlciB2aWV3XSByZW1vdmVGcm9tU3VwZXJ2aWV3XTsK
KyAgICBtX3ZpZXdDb250cm9sbGVyID0gbmlsOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpyZXF1ZXN0SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkKIHsKLSAgICBb
bV93aW5kb3cgc2V0SGlkZGVuOllFU107CisgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7CisKKyAgICBkaXNwYXRjaF9hc3lu
YyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeworICAgICAgICBbbV9wbGF5ZXJWaWV3Q29u
dHJvbGxlciBleGl0RnVsbFNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wsIE5TRXJy
b3IqKSB7CisgICAgICAgICAgICBwcm90ZWN0ID0gbnVsbHB0cjsKKyAgICAgICAgfV07CisgICAg
fSk7CisKICAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5Nb2RlbCkKICAgICAgICAgbV92aWRlb0Z1
bGxzY3JlZW5Nb2RlbC0+cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMTRmMDc3YmYyNzdlMjM4Y2M5ZjU4NTczMGExNmQ1YzJk
MDNmMTJjMC4uMzljZThkMzdlODM0NTU5MjRiMTdhMmIwNjAzNmQ3Y2RlYmQwMzA2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODQyNiw3ICs4NDI2LDcgQEAgYm9vbCBM
YXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQogICAgICAgICBfcHJpdmF0ZS0+ZnVs
bHNjcmVlbkNvbnRyb2xsZXIgPSBbW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgYWxsb2Nd
IGluaXRdOwogICAgICAgICBbX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyIHNldE1lZGlh
RWxlbWVudDp2aWRlb0VsZW1lbnRdOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgW19wcml2
YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxzY3JlZW46bmlsXTsKKyAgICAgICAg
W19wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxzY3JlZW46KFVJVmlldyAq
KVtbW3NlbGYgd2luZG93XSBob3N0TGF5ZXJdIGRlbGVnYXRlXV07CiAjZWxzZQogICAgICAgICBb
X3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbHNjcmVlbjpbW3NlbGYgd2lu
ZG93XSBzY3JlZW5dXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCA0
OWFiN2ExMzIyZmM2ODBlM2M0OTIzODQxNWRlZDNjMzQ0MzU1ZmFkLi41N2RiOTIwMWY1YzcyZGJh
NThiYTZjMzRlN2I4NzkwMTQwYTRjNjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogCisjaW5jbHVkZSAiUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJNZXNzYWdlcy5oIgpAQCAtNzUsNyArNzYsOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKHVpbnQzMl90IHZpZGVvTGF5
ZXJJRAogewogICAgIEFTU0VSVCh2aWRlb0xheWVySUQpOwogICAgIG1fbGF5ZXJIb3N0ID0gV0tN
YWtlUmVuZGVyTGF5ZXIodmlkZW9MYXllcklEKTsKLSAgICBzZXR1cEZ1bGxzY3JlZW4oKm1fbGF5
ZXJIb3N0LmdldCgpLCBpbml0aWFsUmVjdCk7CisgICAgVUlWaWV3ICpwYXJlbnRWaWV3ID0gdG9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KG1fcGFnZS0+ZHJhd2luZ0FyZWEoKSktPnJl
bW90ZUxheWVyVHJlZUhvc3QoKS5yb290TGF5ZXIoKTsKKyAgICBzZXR1cEZ1bGxzY3JlZW4oKm1f
bGF5ZXJIb3N0LmdldCgpLCBpbml0aWFsUmVjdCwgcGFyZW50Vmlldyk7CiB9CiAgICAgCiB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0U2Vla2FibGVSYW5nZXNWZWN0b3Io
VmVjdG9yPHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+JiByYW5nZXMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbQppbmRleCA1NWZkYTBmMGRhODc4ZGNhNDBmNzQ3Y2I2YWQ0OTI5NmExNzJiMTNmLi42MWJj
ODY0OTAzZjgwNzFiM2YwYTU5YTk0NTNhOWI0ZDUyNThmOTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0KQEAgLTUwLDEyICs1MCwxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLXN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RGb3JOb2RlKE5vZGUqIG5v
ZGUpCitzdGF0aWMgSW50UmVjdCBjbGllbnRSZWN0Rm9yTm9kZShOb2RlKiBub2RlKQogewogICAg
IGlmICghbm9kZSB8fCAhbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm4gSW50
UmVjdCgpOwogCi0gICAgcmV0dXJuIHRvRWxlbWVudChub2RlKS0+c2NyZWVuUmVjdCgpOworICAg
IHJldHVybiB0b0VsZW1lbnQobm9kZSktPmNsaWVudFJlY3QoKTsKIH0KIAogUGFzc1JlZlB0cjxX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpjcmVh
dGUoUGFzc1JlZlB0cjxXZWJQYWdlPiBwYWdlKQpAQCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyRnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkK
IAogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dCA9IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0
ZUZvckV4dGVybmFsSG9zdGluZ1Byb2Nlc3MoKTsKICAgICAKLSAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0dXBGdWxsc2NyZWVuV2l0
aElEKG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+Y29udGV4dElEKCksIHNjcmVlblJlY3RGb3JOb2Rl
KG5vZGUpKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldHVwRnVsbHNjcmVlbldpdGhJRChtX2xh
eWVySG9zdGluZ0NvbnRleHQtPmNvbnRleHRJRCgpLCBjbGllbnRSZWN0Rm9yTm9kZShub2RlKSks
IG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OmV4aXRGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQpAQCAtMTA5LDcgKzEwOSw3IEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUq
IG5vZGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1faXNBbmltYXRpbmcgPSB0cnVlOwotICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpF
eGl0RnVsbHNjcmVlbihzY3JlZW5SZWN0Rm9yTm9kZShub2RlKSksIG1fcGFnZS0+cGFnZUlEKCkp
OworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpFeGl0RnVsbHNjcmVlbihjbGllbnRSZWN0Rm9yTm9kZShub2RlKSksIG1fcGFnZS0+cGFn
ZUlEKCkpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldER1cmF0aW9u
KGRvdWJsZSBkdXJhdGlvbikK
</data>

          </attachment>
      

    </bug>

</bugzilla>