<?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>137792</bug_id>
          
          <creation_ts>2014-10-16 14:50:29 -0700</creation_ts>
          <short_desc>[iOS] Capture WKActionSheetAssistant&apos;s interaction with WKContentView in a @protocol</short_desc>
          <delta_ts>2014-11-04 13:44:05 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>enrica</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1042204</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-16 14:50:29 -0700</bug_when>
    <thetext>[iOS] Capture WKActionSheetAssistant&apos;s interaction with WKContentView in a @protocol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042206</commentid>
    <comment_count>1</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-16 14:51:01 -0700</bug_when>
    <thetext>rdar://problem/18334903</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042207</commentid>
    <comment_count>2</comment_count>
      <attachid>239975</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-16 14:52:30 -0700</bug_when>
    <thetext>Created attachment 239975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042208</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-16 14:55:15 -0700</bug_when>
    <thetext>Attachment 239975 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementAction.mm:94:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementAction.mm:100:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementAction.mm:106:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementAction.mm:112:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 9 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>1042610</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-18 10:05:54 -0700</bug_when>
    <thetext>The gtk-wk2 failure was due to the EWS bot running out of disk space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042704</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-19 17:24:33 -0700</bug_when>
    <thetext>An alternate approach I considered here was to have WKContentView conform to WKWebViewContentProvider and then have WKActionSheetAssistant take an id&lt;WKActionSheetAssistant&gt;. Unfortunately, the amount of refactoring needed to make WKContentView conform to WKWebViewContentProvider exceeded what was necessary for this patch (unless I just added stubs to WKContentView, which didn&apos;t seem right).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042705</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-19 17:26:21 -0700</bug_when>
    <thetext>s/id&lt;WKActionSheetAssistant&gt;/id&lt;WKWebViewContentProvider&gt;/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042746</commentid>
    <comment_count>7</comment_count>
      <attachid>239975</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-10-20 00:26:46 -0700</bug_when>
    <thetext>Comment on attachment 239975
Patch

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

&gt; Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.mm:202
&gt; +    _interactionSheet = adoptNS([WKActionSheet new]);

new :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1042833</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-10-20 09:28:14 -0700</bug_when>
    <thetext>Committed r174885: &lt;http://trac.webkit.org/changeset/174885&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046093</commentid>
    <comment_count>9</comment_count>
      <attachid>239975</attachid>
    <who name="">mitz</who>
    <bug_when>2014-11-04 09:36:43 -0800</bug_when>
    <thetext>Comment on attachment 239975
Patch

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

&gt; Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.h:52
&gt; +@protocol WKActionSheetAssistantDelegate
&gt; +@required
&gt; +@property (nonatomic, readonly) const WebKit::InteractionInformationAtPosition&amp; positionInformation;
&gt; +- (void)updatePositionInformation;
&gt; +- (void)performAction:(WebKit::SheetAction)action;
&gt; +- (void)openElementAtLocation:(CGPoint)location;
&gt; +- (RetainPtr&lt;NSArray&gt;)actionsForElement:(_WKActivatedElementInfo *)element defaultActions:(RetainPtr&lt;NSArray&gt;)defaultActions;
&gt; +- (void)startInteractionWithElement:(_WKActivatedElementInfo *)element;
&gt; +- (void)stopInteraction;
&gt; +@end

All methods in a delegate protocol must have one parameter which is the delegating object (in this case, the WKActionSheetAssistant). None of these do!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046099</commentid>
    <comment_count>10</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-11-04 09:50:51 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; All methods in a delegate protocol must have one parameter which is the
&gt; delegating object (in this case, the WKActionSheetAssistant).

Oops, this may read differently than intended. Instead of “have one parameter” I should have said “include one parameter”, or simply “include the delegating object as one of the parameters”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046140</commentid>
    <comment_count>11</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-11-04 12:22:29 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046141</commentid>
    <comment_count>12</comment_count>
      <attachid>240941</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-11-04 12:22:30 -0800</bug_when>
    <thetext>Created attachment 240941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046142</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-04 12:24:44 -0800</bug_when>
    <thetext>Attachment 240941 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementAction.mm:94:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementAction.mm:100:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementAction.mm:106:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementAction.mm:112:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 6 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>1046159</commentid>
    <comment_count>14</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-11-04 13:44:05 -0800</bug_when>
    <thetext>Committed r175577: &lt;http://trac.webkit.org/changeset/175577&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239975</attachid>
            <date>2014-10-16 14:52:30 -0700</date>
            <delta_ts>2014-11-04 12:22:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137792-20141016145235.patch</filename>
            <type>text/plain</type>
            <size>25550</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0NzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOGI1MjQzNjQ2N2ZkZDc2
MjdhODRlNTM2MzBjMDZmMDMzY2MyZGIzMS4uOTI0ZWFhZGVhZDQ1NWNhMmE1OTYwNTgxNjBiZmYy
ZDA4ZWQxZWQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE0LTEwLTE2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYXB0dXJlIFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnQncyBpbnRlcmFjdGlvbiB3aXRoIFdLQ29udGVudFZpZXcgaW4gYSBA
cHJvdG9jb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNzc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdLUERGVmlldyB3b3VsZCBsaWtlIHRvIHVzZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50IHRvIHNo
b3cgYW4gYWN0aW9uIHNoZWV0IHdoZW4gbG9uZy1wcmVzc2luZyBhIGxpbmssIGJ1dCBpdAorICAg
ICAgICBjYW4ndCBzbyBsb25nIGFzIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaXMgdGlnaHRseSBj
b3VwbGVkIHRvIFdLQ29udGVudFZpZXcuIFJlc29sdmUgdGhpcyBieSBmYWN0b3JpbmcKKyAgICAg
ICAgV0tBY3Rpb25TaGVldEFzc2lzdGFudCdzIGludGVyYWN0aW9uIHdpdGggV0tDb250ZW50Vmll
dyBpbnRvIGEgbmV3IHByb3RvY29sIGNhbGxlZAorICAgICAgICBXS0FjdGlvblNoZWV0QXNzaXN0
YW50RGVsZWdhdGUgYW5kIGhhdmluZyBXS0NvbnRlbnRWaWV3IGNvbmZvcm0gdG8gdGhpcyBwcm90
b2NvbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5t
bToKKyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBlbGVtZW50QWN0aW9uV2l0aFRpdGxlOmFj
dGlvbkhhbmRsZXI6XSk6IENoYW5nZWQgaW5zdGFuY2VzIG9mIFdLQ29udGVudFZpZXcgKiB0byBp
ZCA8V0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlPi4KKyAgICAgICAgKCtbX1dLRWxlbWVu
dEFjdGlvbiBlbGVtZW50QWN0aW9uV2l0aFR5cGU6Y3VzdG9tVGl0bGU6XSk6IERpdHRvLgorICAg
ICAgICAoLVtfV0tFbGVtZW50QWN0aW9uIF9ydW5BY3Rpb25XaXRoRWxlbWVudEluZm86ZGVsZWdh
dGU6XSk6IERpdHRvLgorICAgICAgICAoY29weUVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAo
c2F2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKC1bX1dLRWxlbWVudEFjdGlvbiBfcnVuQWN0
aW9uV2l0aEVsZW1lbnRJbmZvOnZpZXc6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uSW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQWN0aW9uU2hlZXQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXQubW06CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXQgaW5pdF0pOiBSZW5hbWVkIGZyb20g
aW5pdFdpdGhWaWV3OiBzaW5jZSBXS0FjdGlvblNoZWV0IG5vIGxvbmdlciBuZWVkcyB0byBrbm93
IGFib3V0IGEgdmlldy4KKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldCBfZGlkUm90YXRlQW5kTGF5
b3V0XSk6IENhbGxlZCAtW1dLQWN0aW9uU2hlZXREZWxlZ2F0ZSB1cGRhdGVQb3NpdGlvbkluZm9y
bWF0aW9uXS4KKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldCBpbml0V2l0aFZpZXc6XSk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgorICAgICAg
ICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGRlbGVnYXRlXSk6IEFkZGVkIGEgZ2V0dGVyIGZv
ciB0aGUgZGVsZWdhdGUgcHJvcGVydHkuCisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQgc2V0RGVsZWdhdGU6XSk6IEFkZGVkIGEgc2V0dGVyIGZvciB0aGUgZGVsZWdhdGUgcHJvcGVy
dHkuCisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaW5pdFdpdGhWaWV3Ol0pOiBD
aGFuZ2VkIGFyZ3VtZW50IHR5cGUgZnJvbSBXS0NvbnRlbnRWaWV3ICogdG8gVUlWaWV3ICouCisg
ICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaW5pdGlhbFByZXNlbnRhdGlvblJlY3RJ
bkhvc3RWaWV3Rm9yU2hlZXRdKTogUmV0dXJuZWQgQ0dSZWN0WmVybyBpZiB0aGVyZSBpcyBubyBk
ZWxlZ2F0ZS4KKyAgICAgICAgT3RoZXJ3aXNlLCByZXRyaWV2ZWQgcG9zaXRpb25JbmZvcm1hdGlv
biBmcm9tIHRoZSBkZWxlZ2F0ZS4KKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBw
cmVzZW50YXRpb25SZWN0SW5Ib3N0Vmlld0ZvclNoZWV0XSk6IERpdHRvLgorICAgICAgICAoLVtX
S0FjdGlvblNoZWV0QXNzaXN0YW50IHVwZGF0ZVBvc2l0aW9uSW5mb3JtYXRpb25dKTogQ2FsbGVk
IC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlIHVwZGF0ZVBvc2l0aW9uSW5mb3JtYXRp
b25dLgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IF9jcmVhdGVTaGVldFdpdGhF
bGVtZW50QWN0aW9uczpzaG93TGlua1RpdGxlOl0pOiBSZXR1cm5lZCBlYXJseSBpZiB0aGVyZSBp
cyBubyBkZWxlZ2F0ZS4KKyAgICAgICAgT3RoZXJ3aXNlLCByZXRyaWV2ZWQgcG9zaXRpb25JbmZv
cm1hdGlvbiBmcm9tIHRoZSBkZWxlZ2F0ZS4KKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lz
dGFudCBzaG93SW1hZ2VTaGVldF0pOiBEaXR0by4KKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFz
c2lzdGFudCBzaG93TGlua1NoZWV0XSk6IERpdHRvLgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0
QXNzaXN0YW50IHNob3dEYXRhRGV0ZWN0b3JzU2hlZXRdKTogRGl0dG8uCisgICAgICAgICgtW1dL
QWN0aW9uU2hlZXRBc3Npc3RhbnQgY2xlYW51cFNoZWV0XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBz
ZXR1cEludGVyYWN0aW9uXSk6IEluc3RhbGxlZCBzZWxmIGFzIFdLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQncyBkZWxlZ2F0ZS4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB1cGRhdGVQb3NpdGlvbklu
Zm9ybWF0aW9uXSk6IFJlbmFtZWQgZnJvbSBfdXBkYXRlUG9zaXRpb25JbmZvcm1hdGlvbi4KKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBwZXJmb3JtQWN0aW9uOl0pOiBSZW5hbWVkIGZyb20gX3Bl
cmZvcm1BY3Rpb246LgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IG9wZW5FbGVtZW50QXRMb2Nh
dGlvbjpdKTogQ2FsbGVkIF9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOi4KKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBhY3Rpb25zRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9uczpdKTogQ2FsbGVkIEFQ
STo6VUlDbGllbnQ6OmFjdGlvbnNGb3JFbGVtZW50KCkuCisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgc3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50Ol0pOiBDYWxsZWQgV2ViUGFnZVByb3h5Ojpz
dGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnRBdFBvc2l0aW9uKCkuCisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgc3RvcEludGVyYWN0aW9uXSk6IENhbGxlZCBXZWJQYWdlUHJveHk6OnN0b3BJbnRl
cmFjdGlvbigpLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF91cGRhdGVQb3NpdGlvbkluZm9y
bWF0aW9uXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3BlcmZvcm1BY3Rp
b246XSk6IERlbGV0ZWQuCisKIDIwMTQtMTAtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgaXM8PigpIC8gZG93bmNhc3Q8PigpIGZvciBSZW5kZXJJbWFn
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVt
ZW50QWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVt
ZW50QWN0aW9uLm1tCmluZGV4IDM3YzVmYzFlMTQ2OGRhMDIyODNjY2MwZGQzYTU2YzMyMTU3OTdl
ODcuLjgwNjE2NTAyZDQ0M2Q4ZjQ1OGE0Mjk2YmNhOWUwZGZjYjMwYmQzZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24u
bW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpZiBQTEFURk9STShJT1MpCiAKICNpbXBvcnQgIkdlc3R1
cmVUeXBlcy5oIgorI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIgogI2ltcG9ydCAi
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgiCiAjaW1wb3J0ICJfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0IDxTYWZhcmlTZXJ2aWNlcy9TU1JlYWRpbmdMaXN0Lmg+
CkBAIC00Miw3ICs0Myw3IEBACiBTT0ZUX0xJTktfRlJBTUVXT1JLKFNhZmFyaVNlcnZpY2VzKTsK
IFNPRlRfTElOS19DTEFTUyhTYWZhcmlTZXJ2aWNlcywgU1NSZWFkaW5nTGlzdCk7CiAKLXR5cGVk
ZWYgdm9pZCAoXldLRWxlbWVudEFjdGlvbkhhbmRsZXJJbnRlcm5hbCkoV0tDb250ZW50VmlldyAq
LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKTsKK3R5cGVkZWYgdm9pZCAoXldLRWxlbWVudEFj
dGlvbkhhbmRsZXJJbnRlcm5hbCkoaWQgPFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZT4s
IF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopOwogCiBAaW1wbGVtZW50YXRpb24gX1dLRWxlbWVu
dEFjdGlvbiAgewogICAgIFJldGFpblB0cjxOU1N0cmluZz4gX3RpdGxlOwpAQCAtNzEsMjAgKzcy
LDEwIEBAIC0gKHZvaWQpZGVhbGxvYwogCiArIChpbnN0YW5jZXR5cGUpZWxlbWVudEFjdGlvbldp
dGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSBhY3Rpb25IYW5kbGVyOihXS0VsZW1lbnRBY3Rpb25I
YW5kbGVyKWhhbmRsZXIKIHsKLSAgICByZXR1cm4gW1tbc2VsZiBhbGxvY10gX2luaXRXaXRoVGl0
bGU6dGl0bGUgYWN0aW9uSGFuZGxlcjpeKFdLQ29udGVudFZpZXcgKnZpZXcsIF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICphY3Rpb25JbmZvKSB7IGhhbmRsZXIoYWN0aW9uSW5mbyk7IH0KKyAgICBy
ZXR1cm4gW1tbc2VsZiBhbGxvY10gX2luaXRXaXRoVGl0bGU6dGl0bGUgYWN0aW9uSGFuZGxlcjpe
KGlkIDxXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGU+LCBfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqYWN0aW9uSW5mbykgeyBoYW5kbGVyKGFjdGlvbkluZm8pOyB9CiAgICAgICAgdHlwZTpf
V0tFbGVtZW50QWN0aW9uVHlwZUN1c3RvbV0gYXV0b3JlbGVhc2VdOwogfQogCi1zdGF0aWMgdm9p
ZCBjb3B5RWxlbWVudChXS0NvbnRlbnRWaWV3ICp2aWV3KQotewotICAgIFt2aWV3IF9wZXJmb3Jt
QWN0aW9uOldlYktpdDo6U2hlZXRBY3Rpb246OkNvcHldOwotfQotCi1zdGF0aWMgdm9pZCBzYXZl
SW1hZ2UoV0tDb250ZW50VmlldyAqdmlldykKLXsKLSAgICBbdmlldyBfcGVyZm9ybUFjdGlvbjpX
ZWJLaXQ6OlNoZWV0QWN0aW9uOjpTYXZlSW1hZ2VdOwotfQotCiBzdGF0aWMgdm9pZCBhZGRUb1Jl
YWRpbmdMaXN0KE5TVVJMICp0YXJnZXRVUkwsIE5TU3RyaW5nICp0aXRsZSkKIHsKICAgICBpZiAo
IXRpdGxlIHx8IFt0aXRsZSBsZW5ndGhdID09IDApCkBAIC0xMDAsMjUgKzkxLDI1IEBAICsgKGlu
c3RhbmNldHlwZSllbGVtZW50QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5
cGUgY3VzdG9tVGl0bGU6KE5TCiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBfV0tFbGVt
ZW50QWN0aW9uVHlwZUNvcHk6CiAgICAgICAgIHRpdGxlID0gV0VCX1VJX1NUUklOR19LRVkoIkNv
cHkiLCAiQ29weSBBY3Rpb25TaGVldCBMaW5rIiwgIlRpdGxlIGZvciBDb3B5IExpbmsgb3IgSW1h
Z2UgYWN0aW9uIGJ1dHRvbiIpOwotICAgICAgICBoYW5kbGVyID0gXihXS0NvbnRlbnRWaWV3ICp2
aWV3LCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykgewotICAgICAgICAgICAg
Y29weUVsZW1lbnQodmlldyk7CisgICAgICAgIGhhbmRsZXIgPSBeKGlkIDxXS0FjdGlvblNoZWV0
QXNzaXN0YW50RGVsZWdhdGU+IGRlbGVnYXRlLCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0
aW9uSW5mbykgeworICAgICAgICAgICAgW2RlbGVnYXRlIHBlcmZvcm1BY3Rpb246V2ViS2l0OjpT
aGVldEFjdGlvbjo6Q29weV07CiAgICAgICAgIH07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
X1dLRWxlbWVudEFjdGlvblR5cGVPcGVuOgogICAgICAgICB0aXRsZSA9IFdFQl9VSV9TVFJJTkdf
S0VZKCJPcGVuIiwgIk9wZW4gQWN0aW9uU2hlZXQgTGluayIsICJUaXRsZSBmb3IgT3BlbiBMaW5r
IGFjdGlvbiBidXR0b24iKTsKLSAgICAgICAgaGFuZGxlciA9IF4oV0tDb250ZW50VmlldyAqdmll
dywgX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmFjdGlvbkluZm8pIHsKLSAgICAgICAgICAgIFt2
aWV3IF9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOmFjdGlvbkluZm8uX2ludGVyYWN0aW9uTG9jYXRp
b25dOworICAgICAgICBoYW5kbGVyID0gXihpZCA8V0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVn
YXRlPiBkZWxlZ2F0ZSwgX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmFjdGlvbkluZm8pIHsKKyAg
ICAgICAgICAgIFtkZWxlZ2F0ZSBvcGVuRWxlbWVudEF0TG9jYXRpb246YWN0aW9uSW5mby5faW50
ZXJhY3Rpb25Mb2NhdGlvbl07CiAgICAgICAgIH07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
X1dLRWxlbWVudEFjdGlvblR5cGVTYXZlSW1hZ2U6CiAgICAgICAgIHRpdGxlID0gV0VCX1VJX1NU
UklOR19LRVkoIlNhdmUgSW1hZ2UiLCAiU2F2ZSBJbWFnZSIsICJUaXRsZSBmb3IgU2F2ZSBJbWFn
ZSBhY3Rpb24gYnV0dG9uIik7Ci0gICAgICAgIGhhbmRsZXIgPSBeKFdLQ29udGVudFZpZXcgKnZp
ZXcsIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rpb25JbmZvKSB7Ci0gICAgICAgICAgICBz
YXZlSW1hZ2Uodmlldyk7CisgICAgICAgIGhhbmRsZXIgPSBeKGlkIDxXS0FjdGlvblNoZWV0QXNz
aXN0YW50RGVsZWdhdGU+IGRlbGVnYXRlLCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9u
SW5mbykgeworICAgICAgICAgICAgW2RlbGVnYXRlIHBlcmZvcm1BY3Rpb246V2ViS2l0OjpTaGVl
dEFjdGlvbjo6U2F2ZUltYWdlXTsKICAgICAgICAgfTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBfV0tFbGVtZW50QWN0aW9uVHlwZUFkZFRvUmVhZGluZ0xpc3Q6CiAgICAgICAgIHRpdGxlID0g
V0VCX1VJX1NUUklORygiQWRkIHRvIFJlYWRpbmcgTGlzdCIsICJUaXRsZSBmb3IgQWRkIHRvIFJl
YWRpbmcgTGlzdCBhY3Rpb24gYnV0dG9uIik7Ci0gICAgICAgIGhhbmRsZXIgPSBeKFdLQ29udGVu
dFZpZXcgKnZpZXcsIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rpb25JbmZvKSB7CisgICAg
ICAgIGhhbmRsZXIgPSBeKGlkIDxXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGU+LCBfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykgewogICAgICAgICAgICAgYWRkVG9SZWFk
aW5nTGlzdChhY3Rpb25JbmZvLlVSTCwgYWN0aW9uSW5mby50aXRsZSk7CiAgICAgICAgIH07CiAg
ICAgICAgIGJyZWFrOwpAQCAtMTQwLDkgKzEzMSw5IEBAIC0gKE5TU3RyaW5nICopdGl0bGUKICAg
ICByZXR1cm4gX3RpdGxlLmdldCgpOwogfQogCi0tICh2b2lkKV9ydW5BY3Rpb25XaXRoRWxlbWVu
dEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopaW5mbyB2aWV3OihXS0NvbnRlbnRWaWV3
ICopdmlldworLSAodm9pZClfcnVuQWN0aW9uV2l0aEVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqKWluZm8gZGVsZWdhdGU6KGlkIDxXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVs
ZWdhdGU+KWRlbGVnYXRlCiB7Ci0gICAgX2FjdGlvbkhhbmRsZXIodmlldywgaW5mbyk7CisgICAg
X2FjdGlvbkhhbmRsZXIoZGVsZWdhdGUsIGluZm8pOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb25JbnRlcm5h
bC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9u
SW50ZXJuYWwuaAppbmRleCA1MWY1MzUxMzM5MTJiMjY3NjExNmUwZDZmYTk2NWZlYjJiMTE5YjA4
Li4zOGFhOGQyZmI2YTZiYmMzMjI0Njg3YzhhNDQ1ZDlhZGRjOTdlMzliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb25JbnRlcm5h
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFj
dGlvbkludGVybmFsLmgKQEAgLTMwLDEwICszMCwxMSBAQAogI2lmIFBMQVRGT1JNKElPUykKIAog
QGNsYXNzIFdLQ29udGVudFZpZXc7CitAcHJvdG9jb2wgV0tBY3Rpb25TaGVldEFzc2lzdGFudERl
bGVnYXRlOwogCiBAaW50ZXJmYWNlIF9XS0VsZW1lbnRBY3Rpb24gKCkKIAotLSAodm9pZClfcnVu
QWN0aW9uV2l0aEVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWluZm8gdmll
dzooV0tDb250ZW50VmlldyAqKXZpZXc7CistICh2b2lkKV9ydW5BY3Rpb25XaXRoRWxlbWVudElu
Zm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopaW5mbyBkZWxlZ2F0ZTooaWQgPFdLQWN0aW9u
U2hlZXRBc3Npc3RhbnREZWxlZ2F0ZT4pZGVsZWdhdGU7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQuaAppbmRleCAxMjQ5ZjJhM2Y4OTc3MzFi
ODA1ZjIzZDZjMmQyMDc3ODdjOTJlYjVjLi4xYTJjMDdiNDY5N2QwYjI5MzM4YjIyNzRiMjg2Y2Ux
ZTVkZTc4MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0
aW9uU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hl
ZXQuaApAQCAtMzUsNyArMzUsNiBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBp
ZCA8V0tBY3Rpb25TaGVldERlbGVnYXRlPiBzaGVldERlbGVnYXRlOwogQHByb3BlcnR5IChub25h
dG9taWMpIFVJUG9wb3ZlckFycm93RGlyZWN0aW9uIGFycm93RGlyZWN0aW9uczsKLS0gKGlkKWlu
aXRXaXRoVmlldzooV0tDb250ZW50VmlldyAqKXZpZXc7CiAtICh2b2lkKWRvbmVXaXRoU2hlZXQ7
CiAtIChCT09MKXByZXNlbnRTaGVldDsKIC0gKEJPT0wpcHJlc2VudFNoZWV0RnJvbVJlY3Q6KENH
UmVjdClwcmVzZW50YXRpb25SZWN0OwpAQCAtNDcsNiArNDYsNyBAQAogLSAoVUlWaWV3ICopaG9z
dFZpZXdGb3JTaGVldDsKIC0gKENHUmVjdClpbml0aWFsUHJlc2VudGF0aW9uUmVjdEluSG9zdFZp
ZXdGb3JTaGVldDsKIC0gKENHUmVjdClwcmVzZW50YXRpb25SZWN0SW5Ib3N0Vmlld0ZvclNoZWV0
OworLSAodm9pZCl1cGRhdGVQb3NpdGlvbkluZm9ybWF0aW9uOwogQGVuZAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0FjdGlvblNoZWV0Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNo
ZWV0Lm1tCmluZGV4IGJkOGI3YjZlZGIwMTg5NjQzYWE3NjczOGQ1NWFmNjJmZDRlZmJkOWMuLmJj
NWY1Yjc3ODNmYmExYTcwZDNkOTU0ODYxYzkzOGI0MmM2OTVlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQubW0KQEAgLTI4LDEzICsyOCwxMiBAQAog
CiAjaWYgUExBVEZPUk0oSU9TKQogCi0jaW1wb3J0ICJXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aCIKICNpbXBvcnQgPFVJS2l0L1VJQWxlcnRDb250cm9sbGVyX1ByaXZhdGUuaD4KICNpbXBvcnQg
PFVJS2l0L1VJV2luZG93X1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAog
QGltcGxlbWVudGF0aW9uIFdLQWN0aW9uU2hlZXQgewogICAgIGlkIDxXS0FjdGlvblNoZWV0RGVs
ZWdhdGU+IF9zaGVldERlbGVnYXRlOwotICAgIFdLQ29udGVudFZpZXcgKl92aWV3OwogICAgIFVJ
UG9wb3ZlckFycm93RGlyZWN0aW9uIF9hcnJvd0RpcmVjdGlvbnM7CiAgICAgQk9PTCBfaXNSb3Rh
dGluZzsKICAgICBCT09MIF9yZWFkeVRvUHJlc2VudEFmdGVyUm90YXRpb247CkBAIC00MywxNCAr
NDIsMTMgQEAgQGltcGxlbWVudGF0aW9uIFdLQWN0aW9uU2hlZXQgewogICAgIFJldGFpblB0cjxp
ZCA8VUlQb3BvdmVyUHJlc2VudGF0aW9uQ29udHJvbGxlckRlbGVnYXRlPj4gX3BvcG92ZXJQcmVz
ZW50YXRpb25Db250cm9sbGVyRGVsZWdhdGVXaGlsZVJvdGF0aW5nOwogfQogCi0tIChpZClpbml0
V2l0aFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3CistIChpZClpbml0CiB7CiAgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAg
ICBfYXJyb3dEaXJlY3Rpb25zID0gVUlQb3BvdmVyQXJyb3dEaXJlY3Rpb25Bbnk7Ci0gICAgX3Zp
ZXcgPSB2aWV3OwogCiAgICAgaWYgKFVJX1VTRVJfSU5URVJGQUNFX0lESU9NKCkgIT0gVUlVc2Vy
SW50ZXJmYWNlSWRpb21QaG9uZSkgewogICAgICAgICAvLyBPbmx5IGlQYWRzIHN1cHBvcnQgcG9w
b3ZlcnMgdGhhdCByb3RhdGUuIFVJQWN0aW9uU2hlZXRzIGFjdHVhbGx5IGJsb2NrIHJvdGF0aW9u
IG9uIGlQaG9uZS9pUG9kIFRvdWNoCkBAIC0yMTMsNyArMjExLDcgQEAgLSAodm9pZClfZGlkUm90
YXRlQW5kTGF5b3V0CiB7CiAgICAgX2lzUm90YXRpbmcgPSBOTzsKICAgICBfcmVhZHlUb1ByZXNl
bnRBZnRlclJvdGF0aW9uID0gWUVTOwotICAgIFtfdmlldyBfdXBkYXRlUG9zaXRpb25JbmZvcm1h
dGlvbl07CisgICAgW19zaGVldERlbGVnYXRlIHVwZGF0ZVBvc2l0aW9uSW5mb3JtYXRpb25dOwog
ICAgIFtzZWxmIHVwZGF0ZVNoZWV0UG9zaXRpb25dOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCmluZGV4IDBlNGE5
OWFiM2E0OTZmZGQxOTUzZjc0MzUzNjRiZWZiZWJmOWY2MGQuLjQyNmRjNmE4MGQ2MzdjNzdjOGQ3
NTM1NmJkNjAwNDBjMTEwYWQyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCkBAIC0yNSwyMyArMjUsMzUgQEAKIAog
I2lmIFBMQVRGT1JNKElPUykKIAorI2ltcG9ydCAiR2VzdHVyZVR5cGVzLmgiCiAjaW1wb3J0ICJX
S0FjdGlvblNoZWV0LmgiCi0KKyNpbXBvcnQgIldLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmgiCiAj
aW1wb3J0IDxEYXRhRGV0ZWN0b3JzVUkvREREZXRlY3Rpb25Db250cm9sbGVyLmg+CiAjaW1wb3J0
IDxVSUtpdC9VSVBvcG92ZXJDb250cm9sbGVyLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tEZWNsYXJh
dGlvblNwZWNpZmllcnMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotQHByb3RvY29s
IFdLQWN0aW9uU2hlZXREZWxlZ2F0ZTsKLUBjbGFzcyBXS0NvbnRlbnRWaWV3OwotCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKK3N0cnVjdCBJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbjsKIH0KIAotQGludGVyZmFjZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50
IDogTlNPYmplY3QgPFdLQWN0aW9uU2hlZXREZWxlZ2F0ZSwgREREZXRlY3Rpb25Db250cm9sbGVy
SW50ZXJhY3Rpb25EZWxlZ2F0ZT4KK0Bwcm90b2NvbCBXS0FjdGlvblNoZWV0RGVsZWdhdGU7CitA
Y2xhc3MgX1dLQWN0aXZhdGVkRWxlbWVudEluZm87CisKK0Bwcm90b2NvbCBXS0FjdGlvblNoZWV0
QXNzaXN0YW50RGVsZWdhdGUKK0ByZXF1aXJlZAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJiBwb3Np
dGlvbkluZm9ybWF0aW9uOworLSAodm9pZCl1cGRhdGVQb3NpdGlvbkluZm9ybWF0aW9uOworLSAo
dm9pZClwZXJmb3JtQWN0aW9uOihXZWJLaXQ6OlNoZWV0QWN0aW9uKWFjdGlvbjsKKy0gKHZvaWQp
b3BlbkVsZW1lbnRBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOworLSAoUmV0YWluUHRyPE5T
QXJyYXk+KWFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1l
bnQgZGVmYXVsdEFjdGlvbnM6KFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uczsKKy0g
KHZvaWQpc3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqKWVsZW1lbnQ7CistICh2b2lkKXN0b3BJbnRlcmFjdGlvbjsKK0BlbmQKIAotLSAoaWQpaW5p
dFdpdGhWaWV3OihXS0NvbnRlbnRWaWV3ICopdmlldzsKK0BpbnRlcmZhY2UgV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCA6IE5TT2JqZWN0IDxXS0FjdGlvblNoZWV0RGVsZWdhdGUsIERERGV0ZWN0aW9u
Q29udHJvbGxlckludGVyYWN0aW9uRGVsZWdhdGU+CitAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vh
aykgaWQgPFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZT4gZGVsZWdhdGU7CistIChpZClp
bml0V2l0aFZpZXc6KFVJVmlldyAqKXZpZXc7CiAtICh2b2lkKXNob3dMaW5rU2hlZXQ7CiAtICh2
b2lkKXNob3dJbWFnZVNoZWV0OwogLSAodm9pZClzaG93RGF0YURldGVjdG9yc1NoZWV0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0
YW50Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0
YW50Lm1tCmluZGV4IDVjOWI0YzNiNTcyNTgxOTdjMWI5YzEzNTllMzMzYzVhNzM5ZDY4NmEuLjU0
NTZhOGNlMWRiNzQ4ZjBiM2IzYTgzYTMyM2Y5ODY4YjYyZDAxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KQEAg
LTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkFQSVVJQ2xpZW50LmgiCiAjaW1wb3J0ICJXS0FjdGlv
blNoZWV0LmgiCiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCIKKyNpbXBvcnQg
IldlYWtPYmpDUHRyLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIl9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0VsZW1lbnRBY3Rpb25J
bnRlcm5hbC5oIgpAQCAtNjUsMTIgKzY2LDIzIEBAIEBlbmQKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKIEBpbXBsZW1lbnRhdGlvbiBXS0FjdGlvblNoZWV0QXNzaXN0YW50IHsKKyAgICBXZWFr
T2JqQ1B0cjxpZCA8V0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlPj4gX2RlbGVnYXRlOwog
ICAgIFJldGFpblB0cjxXS0FjdGlvblNoZWV0PiBfaW50ZXJhY3Rpb25TaGVldDsKICAgICBSZXRh
aW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IF9lbGVtZW50SW5mbzsKLSAgICBXS0NvbnRl
bnRWaWV3ICpfdmlldzsKKyAgICBVSVZpZXcgKl92aWV3OwogfQogCi0tIChpZClpbml0V2l0aFZp
ZXc6KFdLQ29udGVudFZpZXcgKil2aWV3CistIChpZCA8V0tBY3Rpb25TaGVldEFzc2lzdGFudERl
bGVnYXRlPilkZWxlZ2F0ZQoreworICAgIHJldHVybiBfZGVsZWdhdGUuZ2V0QXV0b3JlbGVhc2Vk
KCk7Cit9CisKKy0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkIDxXS0FjdGlvblNoZWV0QXNzaXN0YW50
RGVsZWdhdGU+KWRlbGVnYXRlCit7CisgICAgX2RlbGVnYXRlID0gZGVsZWdhdGU7Cit9CisKKy0g
KGlkKWluaXRXaXRoVmlldzooVUlWaWV3ICopdmlldwogewogICAgIF92aWV3ID0gdmlldzsKICAg
ICByZXR1cm4gc2VsZjsKQEAgLTEyMSwyMSArMTMzLDI1IEBAIC0gKFVJVmlldyAqKWhvc3RWaWV3
Rm9yU2hlZXQKIC0gKENHUmVjdClpbml0aWFsUHJlc2VudGF0aW9uUmVjdEluSG9zdFZpZXdGb3JT
aGVldAogewogICAgIFVJVmlldyAqdmlldyA9IFtzZWxmIHN1cGVydmlld0ZvclNoZWV0XTsKLSAg
ICBpZiAoIXZpZXcpCisgICAgYXV0byBkZWxlZ2F0ZSA9IF9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBp
ZiAoIXZpZXcgfHwgIWRlbGVnYXRlKQogICAgICAgICByZXR1cm4gQ0dSZWN0WmVybzsKIAotICAg
IHJldHVybiBbc2VsZiBfcHJlc2VudGF0aW9uUmVjdEZvclNoZWV0R2l2ZW5Qb2ludDpfdmlldy5w
b3NpdGlvbkluZm9ybWF0aW9uLnBvaW50IGluSG9zdFZpZXc6dmlld107CisgICAgcmV0dXJuIFtz
ZWxmIF9wcmVzZW50YXRpb25SZWN0Rm9yU2hlZXRHaXZlblBvaW50OltkZWxlZ2F0ZSBwb3NpdGlv
bkluZm9ybWF0aW9uXS5wb2ludCBpbkhvc3RWaWV3OnZpZXddOwogCiB9CiAKIC0gKENHUmVjdClw
cmVzZW50YXRpb25SZWN0SW5Ib3N0Vmlld0ZvclNoZWV0CiB7CiAgICAgVUlWaWV3ICp2aWV3ID0g
W3NlbGYgc3VwZXJ2aWV3Rm9yU2hlZXRdOwotICAgIGlmICghdmlldykKKyAgICBhdXRvIGRlbGVn
YXRlID0gX2RlbGVnYXRlLmdldCgpOworICAgIGlmICghdmlldyB8fCAhZGVsZWdhdGUpCiAgICAg
ICAgIHJldHVybiBDR1JlY3RaZXJvOwogCi0gICAgQ0dSZWN0IGJvdW5kaW5nUmVjdCA9IF92aWV3
LnBvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzOwotICAgIENHUG9pbnQgZnJvbVBvaW50ID0gX3Zp
ZXcucG9zaXRpb25JbmZvcm1hdGlvbi5wb2ludDsKKyAgICBjb25zdCBhdXRvJiBwb3NpdGlvbklu
Zm9ybWF0aW9uID0gW2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25dOworCisgICAgQ0dSZWN0
IGJvdW5kaW5nUmVjdCA9IHBvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzOworICAgIENHUG9pbnQg
ZnJvbVBvaW50ID0gcG9zaXRpb25JbmZvcm1hdGlvbi5wb2ludDsKIAogICAgIC8vIEZJWE1FOiBX
ZSBtdXN0IGFkanVzdCBvdXIgcHJlc2VudGF0aW9uIHBvaW50IHRvIHRha2UgaW50byBhY2NvdW50
IGEgY2hhbmdlIGluIGRvY3VtZW50IHNjYWxlLgogCkBAIC0xNDYsNiArMTYyLDExIEBAIC0gKENH
UmVjdClwcmVzZW50YXRpb25SZWN0SW5Ib3N0Vmlld0ZvclNoZWV0CiAgICAgcmV0dXJuIFtzZWxm
IF9wcmVzZW50YXRpb25SZWN0Rm9yU2hlZXRHaXZlblBvaW50OmZyb21Qb2ludCBpbkhvc3RWaWV3
OnZpZXddOwogfQogCistICh2b2lkKXVwZGF0ZVBvc2l0aW9uSW5mb3JtYXRpb24KK3sKKyAgICBb
X2RlbGVnYXRlLmdldCgpIHVwZGF0ZVBvc2l0aW9uSW5mb3JtYXRpb25dOworfQorCiAtIChCT09M
KXByZXNlbnRTaGVldAogewogICAgIC8vIENhbGN1bGF0ZSB0aGUgcHJlc2VudGF0aW9uIHJlY3Qg
anVzdCBiZWZvcmUgc2hvd2luZy4KQEAgLTE2NywxMyArMTg4LDE4IEBAIC0gKHZvaWQpdXBkYXRl
U2hlZXRQb3NpdGlvbgogLSAodm9pZClfY3JlYXRlU2hlZXRXaXRoRWxlbWVudEFjdGlvbnM6KE5T
QXJyYXkgKilhY3Rpb25zIHNob3dMaW5rVGl0bGU6KEJPT0wpc2hvd0xpbmtUaXRsZQogewogICAg
IEFTU0VSVCghX2ludGVyYWN0aW9uU2hlZXQpOworICAgIGF1dG8gZGVsZWdhdGUgPSBfZGVsZWdh
dGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29u
c3QgYXV0byYgcG9zaXRpb25JbmZvcm1hdGlvbiA9IFtkZWxlZ2F0ZSBwb3NpdGlvbkluZm9ybWF0
aW9uXTsKIAotICAgIE5TVVJMICp0YXJnZXRVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpfdmll
dy5wb3NpdGlvbkluZm9ybWF0aW9uLnVybF07CisgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtOU1VS
TCBVUkxXaXRoU3RyaW5nOnBvc2l0aW9uSW5mb3JtYXRpb24udXJsXTsKICAgICBOU1N0cmluZyAq
dXJsU2NoZW1lID0gW3RhcmdldFVSTCBzY2hlbWVdOwogICAgIEJPT0wgaXNKYXZhU2NyaXB0VVJM
ID0gW3VybFNjaGVtZSBsZW5ndGhdICYmIFt1cmxTY2hlbWUgY2FzZUluc2Vuc2l0aXZlQ29tcGFy
ZTpAImphdmFzY3JpcHQiXSA9PSBOU09yZGVyZWRTYW1lOwogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgY2hlY2sgaWYgSmF2YXNjcmlwdCBpcyBlbmFibGVkIGluIHRoZSBwcmVmZXJlbmNlcy4KIAot
ICAgIF9pbnRlcmFjdGlvblNoZWV0ID0gYWRvcHROUyhbW1dLQWN0aW9uU2hlZXQgYWxsb2NdIGlu
aXRXaXRoVmlldzpfdmlld10pOworICAgIF9pbnRlcmFjdGlvblNoZWV0ID0gYWRvcHROUyhbV0tB
Y3Rpb25TaGVldCBuZXddKTsKICAgICBfaW50ZXJhY3Rpb25TaGVldC5nZXQoKS5zaGVldERlbGVn
YXRlID0gc2VsZjsKICAgICBfaW50ZXJhY3Rpb25TaGVldC5nZXQoKS5wcmVmZXJyZWRTdHlsZSA9
IFVJQWxlcnRDb250cm9sbGVyU3R5bGVBY3Rpb25TaGVldDsKIApAQCAtMTg3LDcgKzIxMyw3IEBA
IC0gKHZvaWQpX2NyZWF0ZVNoZWV0V2l0aEVsZW1lbnRBY3Rpb25zOihOU0FycmF5ICopYWN0aW9u
cyBzaG93TGlua1RpdGxlOihCT09MKXNoCiAgICAgICAgICAgICB0aXRsZUlzVVJMID0gWUVTOwog
ICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIHRpdGxlU3RyaW5nID0gX3ZpZXcucG9zaXRp
b25JbmZvcm1hdGlvbi50aXRsZTsKKyAgICAgICAgdGl0bGVTdHJpbmcgPSBwb3NpdGlvbkluZm9y
bWF0aW9uLnRpdGxlOwogCiAgICAgaWYgKFt0aXRsZVN0cmluZyBsZW5ndGhdKSB7CiAgICAgICAg
IFtfaW50ZXJhY3Rpb25TaGVldCBzZXRUaXRsZTp0aXRsZVN0cmluZ107CkBAIC0xOTksNyArMjI1
LDcgQEAgLSAodm9pZClfY3JlYXRlU2hlZXRXaXRoRWxlbWVudEFjdGlvbnM6KE5TQXJyYXkgKilh
Y3Rpb25zIHNob3dMaW5rVGl0bGU6KEJPT0wpc2gKIAogICAgIGZvciAoX1dLRWxlbWVudEFjdGlv
biAqYWN0aW9uIGluIGFjdGlvbnMpIHsKICAgICAgICAgW19pbnRlcmFjdGlvblNoZWV0IF9hZGRB
Y3Rpb25XaXRoVGl0bGU6W2FjdGlvbiB0aXRsZV0gc3R5bGU6VUlBbGVydEFjdGlvblN0eWxlRGVm
YXVsdCBoYW5kbGVyOl57Ci0gICAgICAgICAgICBbYWN0aW9uIF9ydW5BY3Rpb25XaXRoRWxlbWVu
dEluZm86X2VsZW1lbnRJbmZvLmdldCgpIHZpZXc6X3ZpZXddOworICAgICAgICAgICAgW2FjdGlv
biBfcnVuQWN0aW9uV2l0aEVsZW1lbnRJbmZvOl9lbGVtZW50SW5mby5nZXQoKSBkZWxlZ2F0ZTpk
ZWxlZ2F0ZS5nZXQoKV07CiAgICAgICAgICAgICBbc2VsZiBjbGVhbnVwU2hlZXRdOwogICAgICAg
ICB9IHNob3VsZERpc21pc3NIYW5kbGVyOl57CiAgICAgICAgICAgICByZXR1cm4gKEJPT0wpKCFh
Y3Rpb24uZGlzbWlzc2FsSGFuZGxlciB8fCBhY3Rpb24uZGlzbWlzc2FsSGFuZGxlcigpKTsKQEAg
LTIxMSw3ICsyMzcsNyBAQCAtICh2b2lkKV9jcmVhdGVTaGVldFdpdGhFbGVtZW50QWN0aW9uczoo
TlNBcnJheSAqKWFjdGlvbnMgc2hvd0xpbmtUaXRsZTooQk9PTClzaAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyOl4oVUlBbGVy
dEFjdGlvbiAqYWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbc2VsZiBjbGVhbnVwU2hlZXRdOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XV07Ci0gICAgX3Zp
ZXcucGFnZS0+c3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50QXRQb3NpdGlvbihfdmlldy5wb3Np
dGlvbkluZm9ybWF0aW9uLnBvaW50KTsKKyAgICBbZGVsZWdhdGUgc3RhcnRJbnRlcmFjdGlvbldp
dGhFbGVtZW50Ol9lbGVtZW50SW5mby5nZXQoKV07CiB9CiAKIC0gKHZvaWQpc2hvd0ltYWdlU2hl
ZXQKQEAgLTIxOSw3ICsyNDUsMTEgQEAgLSAodm9pZClzaG93SW1hZ2VTaGVldAogICAgIEFTU0VS
VCghX2ludGVyYWN0aW9uU2hlZXQpOwogICAgIEFTU0VSVCghX2VsZW1lbnRJbmZvKTsKIAotICAg
IGNvbnN0IGF1dG8mIHBvc2l0aW9uSW5mb3JtYXRpb24gPSBfdmlldy5wb3NpdGlvbkluZm9ybWF0
aW9uOworICAgIGF1dG8gZGVsZWdhdGUgPSBfZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxl
Z2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgYXV0byYgcG9zaXRpb25JbmZvcm1h
dGlvbiA9IFtkZWxlZ2F0ZSBwb3NpdGlvbkluZm9ybWF0aW9uXTsKIAogICAgIE5TVVJMICp0YXJn
ZXRVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpwb3NpdGlvbkluZm9ybWF0aW9uLnVybF07CiAg
ICAgYXV0byBkZWZhdWx0QWN0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdF0pOwpAQCAtMjM1LDcgKzI2NSw3IEBAIC0gKHZvaWQpc2hvd0ltYWdlU2hlZXQKICAgICBh
dXRvIGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9j
XSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlSW1hZ2UKICAgICAgICAgVVJM
OnRhcmdldFVSTCBsb2NhdGlvbjpwb3NpdGlvbkluZm9ybWF0aW9uLnBvaW50IHRpdGxlOnBvc2l0
aW9uSW5mb3JtYXRpb24udGl0bGUgcmVjdDpwb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFn
ZTpwb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlLmdldCgpXSk7CiAKLSAgICBSZXRhaW5QdHI8TlNB
cnJheT4gYWN0aW9ucyA9IF92aWV3LnBhZ2UtPnVpQ2xpZW50KCkuYWN0aW9uc0ZvckVsZW1lbnQo
ZWxlbWVudEluZm8uZ2V0KCksIFdURjo6bW92ZShkZWZhdWx0QWN0aW9ucykpOworICAgIFJldGFp
blB0cjxOU0FycmF5PiBhY3Rpb25zID0gW2RlbGVnYXRlIGFjdGlvbnNGb3JFbGVtZW50OmVsZW1l
bnRJbmZvLmdldCgpIGRlZmF1bHRBY3Rpb25zOldURjo6bW92ZShkZWZhdWx0QWN0aW9ucyldOwog
CiAgICAgaWYgKCFbYWN0aW9ucyBjb3VudF0pCiAgICAgICAgIHJldHVybjsKQEAgLTI1NSw3ICsy
ODUsMTEgQEAgLSAodm9pZClzaG93TGlua1NoZWV0CiAgICAgQVNTRVJUKCFfaW50ZXJhY3Rpb25T
aGVldCk7CiAgICAgQVNTRVJUKCFfZWxlbWVudEluZm8pOwogCi0gICAgY29uc3QgYXV0byYgcG9z
aXRpb25JbmZvcm1hdGlvbiA9IF92aWV3LnBvc2l0aW9uSW5mb3JtYXRpb247CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IF9kZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIWRlbGVnYXRlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBjb25zdCBhdXRvJiBwb3NpdGlvbkluZm9ybWF0aW9uID0gW2RlbGVnYXRl
IHBvc2l0aW9uSW5mb3JtYXRpb25dOwogCiAgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtOU1VSTCBV
UkxXaXRoU3RyaW5nOnBvc2l0aW9uSW5mb3JtYXRpb24udXJsXTsKICAgICBpZiAoIXRhcmdldFVS
TCkKQEAgLTI3MSw3ICszMDUsNyBAQCAtICh2b2lkKXNob3dMaW5rU2hlZXQKICAgICBSZXRhaW5Q
dHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1l
bnRUeXBlTGluawogICAgICAgICBVUkw6dGFyZ2V0VVJMIGxvY2F0aW9uOnBvc2l0aW9uSW5mb3Jt
YXRpb24ucG9pbnQgdGl0bGU6cG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSByZWN0OnBvc2l0aW9u
SW5mb3JtYXRpb24uYm91bmRzIGltYWdlOnBvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCld
KTsKIAotICAgIFJldGFpblB0cjxOU0FycmF5PiBhY3Rpb25zID0gX3ZpZXcucGFnZS0+dWlDbGll
bnQoKS5hY3Rpb25zRm9yRWxlbWVudChlbGVtZW50SW5mby5nZXQoKSwgV1RGOjptb3ZlKGRlZmF1
bHRBY3Rpb25zKSk7CisgICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnMgPSBbZGVsZWdhdGUg
YWN0aW9uc0ZvckVsZW1lbnQ6ZWxlbWVudEluZm8uZ2V0KCkgZGVmYXVsdEFjdGlvbnM6V1RGOjpt
b3ZlKGRlZmF1bHRBY3Rpb25zKV07CiAKICAgICBpZiAoIVthY3Rpb25zIGNvdW50XSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjg5LDcgKzMyMywxMiBAQCAtICh2b2lkKXNob3dMaW5rU2hlZXQKIC0g
KHZvaWQpc2hvd0RhdGFEZXRlY3RvcnNTaGVldAogewogICAgIEFTU0VSVCghX2ludGVyYWN0aW9u
U2hlZXQpOwotICAgIE5TVVJMICp0YXJnZXRVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpfdmll
dy5wb3NpdGlvbkluZm9ybWF0aW9uLnVybF07CisKKyAgICBhdXRvIGRlbGVnYXRlID0gX2RlbGVn
YXRlLmdldCgpOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIE5T
VVJMICp0YXJnZXRVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpbZGVsZWdhdGUgcG9zaXRpb25J
bmZvcm1hdGlvbl0udXJsXTsKICAgICBpZiAoIXRhcmdldFVSTCkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0zMjcsNyArMzY2LDcgQEAgLSAodm9pZClzaG93RGF0YURldGVjdG9yc1NoZWV0CiAKIC0g
KHZvaWQpY2xlYW51cFNoZWV0CiB7Ci0gICAgX3ZpZXcucGFnZS0+c3RvcEludGVyYWN0aW9uKCk7
CisgICAgW19kZWxlZ2F0ZS5nZXQoKSBzdG9wSW50ZXJhY3Rpb25dOwogCiAgICAgW19pbnRlcmFj
dGlvblNoZWV0IGRvbmVXaXRoU2hlZXRdOwogICAgIFtfaW50ZXJhY3Rpb25TaGVldCBzZXRTaGVl
dERlbGVnYXRlOm5pbF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBjOTYzMmI3ZjM4ZmYwOTdiMjhmNzU1
MjdjZWRiMDdlY2JlZGFkMzA1Li45MzNhMDQ1OGIwZWYyNzE5MWY2MDE0ZDRiNTRlMGQ2ZDgyMDky
M2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTMwLDEwICszMCwxMSBAQAogI2ltcG9ydCAiQXNzaXN0
ZWROb2RlSW5mb3JtYXRpb24uaCIKICNpbXBvcnQgIkdlc3R1cmVUeXBlcy5oIgogI2ltcG9ydCAi
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKLSNpbXBvcnQgIldLU3ludGhldGlj
Q2xpY2tUYXBHZXN0dXJlUmVjb2duaXplci5oIgorI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lz
dGFudC5oIgogI2ltcG9ydCAiV0tBaXJQbGF5Um91dGVQaWNrZXIuaCIKICNpbXBvcnQgIldLRmls
ZVVwbG9hZFBhbmVsLmgiCiAjaW1wb3J0ICJXS0Zvcm1QZXJpcGhlcmFsLmgiCisjaW1wb3J0ICJX
S1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgPFVJS2l0L1VJ
VGV4dElucHV0X1ByaXZhdGUuaD4KICNpbXBvcnQgPFVJS2l0L1VJVmlldy5oPgogI2ltcG9ydCA8
VUlLaXQvVUlXS1NlbGVjdGlvbkFzc2lzdGFudC5oPgpAQCAtMTQ1LDcgKzE0Niw3IEBAIHN0cnVj
dCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAKIEBlbmQKIAotQGludGVyZmFjZSBXS0NvbnRlbnRW
aWV3IChXS0ludGVyYWN0aW9uKSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlLCBVSVdlYlRv
dWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSwgVUlUZXh0SW5wdXRQcml2YXRlLCBV
SVdlYkZvcm1BY2Nlc3NvcnlEZWxlZ2F0ZSwgVUlXS0ludGVyYWN0aW9uVmlld1Byb3RvY29sLCBX
S0ZpbGVVcGxvYWRQYW5lbERlbGVnYXRlPgorQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS0lu
dGVyYWN0aW9uKSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlLCBVSVdlYlRvdWNoRXZlbnRz
R2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSwgVUlUZXh0SW5wdXRQcml2YXRlLCBVSVdlYkZvcm1B
Y2Nlc3NvcnlEZWxlZ2F0ZSwgVUlXS0ludGVyYWN0aW9uVmlld1Byb3RvY29sLCBXS0ZpbGVVcGxv
YWRQYW5lbERlbGVnYXRlLCBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGU+CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dQb2ludCBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlv
bjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc0VkaXRhYmxlOwpAQCAt
MTcwLDggKzE3MSw2IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAtIChCT09MKV9p
bnRlcnByZXRLZXlFdmVudDooV2ViSU9TRXZlbnQgKil0aGVFdmVudCBpc0NoYXJFdmVudDooQk9P
TClpc0NoYXJFdmVudDsKIC0gKHZvaWQpX3Bvc2l0aW9uSW5mb3JtYXRpb25EaWRDaGFuZ2U6KGNv
bnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm87CiAtICh2
b2lkKV9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOwotLSAodm9pZClf
dXBkYXRlUG9zaXRpb25JbmZvcm1hdGlvbjsKLS0gKHZvaWQpX3BlcmZvcm1BY3Rpb246KFdlYktp
dDo6U2hlZXRBY3Rpb24pYWN0aW9uOwogLSAodm9pZClfd2lsbFN0YXJ0U2Nyb2xsaW5nT3Jab29t
aW5nOwogLSAodm9pZClfZGlkU2Nyb2xsOwogLSAodm9pZClfZGlkRW5kU2Nyb2xsaW5nT3Jab29t
aW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAxYjYwYTNmZDBhYjdmOGQ1OWE5ZDNiMDFjNzg2MmNk
N2Y4MTNmZjU2Li41MzMzMzM4ZGE2NWYxNmJhZDQ0ZjNiYjU3Njk5OGY5NDgxNWUxMjEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogCisj
aW1wb3J0ICJBUElVSUNsaWVudC5oIgogI2ltcG9ydCAiRWRpdGluZ1JhbmdlLmgiCiAjaW1wb3J0
ICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJUb3VjaEV2ZW50
LmgiCkBAIC0yNzAsNiArMjcxLDcgQEAgLSAodm9pZClzZXR1cEludGVyYWN0aW9uCiAgICAgW3Nl
bGYgdXNlU2VsZWN0aW9uQXNzaXN0YW50V2l0aE1vZGU6dG9VSVdlYlNlbGVjdGlvbk1vZGUoW1tf
d2ViVmlldyBjb25maWd1cmF0aW9uXSBzZWxlY3Rpb25HcmFudWxhcml0eV0pXTsKICAgICAKICAg
ICBfYWN0aW9uU2hlZXRBc3Npc3RhbnQgPSBhZG9wdE5TKFtbV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCBhbGxvY10gaW5pdFdpdGhWaWV3OnNlbGZdKTsKKyAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50
IHNldERlbGVnYXRlOnNlbGZdOwogICAgIF9zbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyID0g
c3RkOjptYWtlX3VuaXF1ZTxTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyPihzZWxmKTsKIH0K
IApAQCAtODA0LDEyICs4MDYsNiBAQCAtICh2b2lkKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25J
c1VwVG9EYXRlOihDR1BvaW50KXBvaW50CiAgICAgfQogfQogCi0tICh2b2lkKV91cGRhdGVQb3Np
dGlvbkluZm9ybWF0aW9uCi17Ci0gICAgX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiA9IE5P
OwotICAgIF9wYWdlLT5yZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihfcG9zaXRpb25JbmZvcm1h
dGlvbi5wb2ludCk7Ci19Ci0KIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjoo
VUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAgQ0dQb2ludCBw
b2ludCA9IFtnZXN0dXJlUmVjb2duaXplciBsb2NhdGlvbkluVmlldzpzZWxmXTsKQEAgLTEzNzAs
MTEgKzEzNjYsNiBAQCAtICh2b2lkKV9yZXNldFNob3dpbmdUZXh0U3R5bGU6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCiAgICAgW190ZXh0U2VsZWN0aW9uQXNzaXN0YW50IGhpZGVUZXh0
U3R5bGVPcHRpb25zXTsKIH0KIAotLSAodm9pZClfcGVyZm9ybUFjdGlvbjooU2hlZXRBY3Rpb24p
YWN0aW9uCi17Ci0gICAgX3BhZ2UtPnBlcmZvcm1BY3Rpb25PbkVsZW1lbnQoKHVpbnQzMl90KWFj
dGlvbik7Ci19Ci0KIC0gKHZvaWQpY29weTooaWQpc2VuZGVyCiB7CiAgICAgX3BhZ2UtPmV4ZWN1
dGVFZGl0Q29tbWFuZChBU0NJSUxpdGVyYWwoImNvcHkiKSk7CkBAIC0yNjk1LDYgKzI2ODYsMzkg
QEAgLSAoQk9PTClpc0FueVRvdWNoT3ZlckFjdGl2ZUFyZWE6KE5TU2V0ICopdG91Y2hlcwogICAg
IHJldHVybiBZRVM7CiB9CiAKKyNwcmFnbWEgbWFyayAtIEltcGxlbWVudGF0aW9uIG9mIFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZS4KKworLSAodm9pZCl1cGRhdGVQb3NpdGlvbkluZm9y
bWF0aW9uCit7CisgICAgX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiA9IE5POworICAgIF9w
YWdlLT5yZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihfcG9zaXRpb25JbmZvcm1hdGlvbi5wb2lu
dCk7Cit9CisKKy0gKHZvaWQpcGVyZm9ybUFjdGlvbjooV2ViS2l0OjpTaGVldEFjdGlvbilhY3Rp
b24KK3sKKyAgICBfcGFnZS0+cGVyZm9ybUFjdGlvbk9uRWxlbWVudCgodWludDMyX3QpYWN0aW9u
KTsKK30KKworLSAodm9pZClvcGVuRWxlbWVudEF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24K
K3sKKyAgICBbc2VsZiBfYXR0ZW1wdENsaWNrQXRMb2NhdGlvbjpsb2NhdGlvbl07Cit9CisKKy0g
KFJldGFpblB0cjxOU0FycmF5PilhY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8gKillbGVtZW50IGRlZmF1bHRBY3Rpb25zOihSZXRhaW5QdHI8TlNBcnJheT4pZGVmYXVs
dEFjdGlvbnMKK3sKKyAgICByZXR1cm4gX3BhZ2UtPnVpQ2xpZW50KCkuYWN0aW9uc0ZvckVsZW1l
bnQoZWxlbWVudCwgV1RGOjptb3ZlKGRlZmF1bHRBY3Rpb25zKSk7Cit9CisKKy0gKHZvaWQpc3Rh
cnRJbnRlcmFjdGlvbldpdGhFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1l
bnQKK3sKKyAgICBfcGFnZS0+c3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50QXRQb3NpdGlvbihf
cG9zaXRpb25JbmZvcm1hdGlvbi5wb2ludCk7Cit9CisKKy0gKHZvaWQpc3RvcEludGVyYWN0aW9u
Cit7CisgICAgX3BhZ2UtPnN0b3BJbnRlcmFjdGlvbigpOworfQorCiBAZW5kCiAKIC8vIFVJVGV4
dFJhbmdlLCBVSVRleHRQb3NpdGlvbiBhbmQgVUlUZXh0U2VsZWN0aW9uUmVjdCBpbXBsZW1lbnRh
dGlvbnMgZm9yIFdLMgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240941</attachid>
            <date>2014-11-04 12:22:30 -0800</date>
            <delta_ts>2014-11-04 13:01:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137792-20141104122240.patch</filename>
            <type>text/plain</type>
            <size>16757</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjJlZjM3NzcxNjUwOGQ3
MmQ0ZWFmMjU5MjBjZDliNDg4YjFjMGJkMS4uMjA5ZDZmYWE5MWZiOTlmYmQ4YTlhZWMyN2I2OTA2
MWQ5MWZlZDBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE0LTExLTA0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBbaU9TXSBJbmNsdWRlIGEgV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCBwYXJhbWV0ZXIgaW4gV0tBY3Rpb25TaGVldEFzc2lzdGFudERl
bGVnYXRlIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNzc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tOgorICAgICAg
ICAoK1tfV0tFbGVtZW50QWN0aW9uIGVsZW1lbnRBY3Rpb25XaXRoVGl0bGU6YWN0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKCtbX1dLRWxlbWVudEFjdGlvbiBlbGVtZW50QWN0aW9uV2l0aFR5cGU6
Y3VzdG9tVGl0bGU6XSk6CisgICAgICAgICgtW19XS0VsZW1lbnRBY3Rpb24gX3J1bkFjdGlvbldp
dGhFbGVtZW50SW5mbzpmb3JBY3Rpb25TaGVldEFzc2lzdGFudDpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCBpbml0aWFsUHJlc2VudGF0aW9uUmVjdEluSG9zdFZpZXdGb3JTaGVldF0pOgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHByZXNlbnRhdGlvblJlY3RJbkhvc3RW
aWV3Rm9yU2hlZXRdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCB1cGRhdGVQ
b3NpdGlvbkluZm9ybWF0aW9uXSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
X2NyZWF0ZVNoZWV0V2l0aEVsZW1lbnRBY3Rpb25zOnNob3dMaW5rVGl0bGU6XSk6CisgICAgICAg
ICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0ltYWdlU2hlZXRdKToKKyAgICAgICAgKC1b
V0tBY3Rpb25TaGVldEFzc2lzdGFudCBzaG93TGlua1NoZWV0XSk6CisgICAgICAgICgtW1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgc2hvd0RhdGFEZXRlY3RvcnNTaGVldF0pOgorICAgICAgICAoLVtX
S0FjdGlvblNoZWV0QXNzaXN0YW50IGNsZWFudXBTaGVldF0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyB1cGRhdGVQb3NpdGlvbkluZm9ybWF0aW9uRm9yQWN0aW9uU2hl
ZXRBc3Npc3RhbnQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6cGVyZm9ybUFjdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBhY3Rpb25T
aGVldEFzc2lzdGFudDpvcGVuRWxlbWVudEF0TG9jYXRpb246XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6ZGVjaWRlQWN0aW9uc0ZvckVsZW1lbnQ6ZGVm
YXVsdEFjdGlvbnM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6d2lsbFN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudDpdKToKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudERpZFN0b3BJbnRlcmFjdGlvbjpdKToKKwor
MjAxNC0xMS0wNCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKICAgICAgICAgRml4
IHRoZSBpT1MgYnVpbGQgYWZ0ZXIgcjE3NTU0OS4KIAogICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5tbQppbmRleCA4MDYxNjUwMmQ0NDNkOGY0
NThhNDI5NmJjYTllMGRmY2IzMGJkM2VkLi44NjJlNzZkOTM3YWM4MWYzNmEwMmIzNDM1NjQzMGY0
ZmM5YmZmMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0VsZW1lbnRBY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50QWN0aW9uLm1tCkBAIC00Myw3ICs0Myw3IEBACiBTT0ZUX0xJTktfRlJB
TUVXT1JLKFNhZmFyaVNlcnZpY2VzKTsKIFNPRlRfTElOS19DTEFTUyhTYWZhcmlTZXJ2aWNlcywg
U1NSZWFkaW5nTGlzdCk7CiAKLXR5cGVkZWYgdm9pZCAoXldLRWxlbWVudEFjdGlvbkhhbmRsZXJJ
bnRlcm5hbCkoaWQgPFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZT4sIF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICopOwordHlwZWRlZiB2b2lkICheV0tFbGVtZW50QWN0aW9uSGFuZGxlcklu
dGVybmFsKShXS0FjdGlvblNoZWV0QXNzaXN0YW50ICosIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
ICopOwogCiBAaW1wbGVtZW50YXRpb24gX1dLRWxlbWVudEFjdGlvbiAgewogICAgIFJldGFpblB0
cjxOU1N0cmluZz4gX3RpdGxlOwpAQCAtNzIsNyArNzIsNyBAQCAtICh2b2lkKWRlYWxsb2MKIAog
KyAoaW5zdGFuY2V0eXBlKWVsZW1lbnRBY3Rpb25XaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUg
YWN0aW9uSGFuZGxlcjooV0tFbGVtZW50QWN0aW9uSGFuZGxlciloYW5kbGVyCiB7Ci0gICAgcmV0
dXJuIFtbW3NlbGYgYWxsb2NdIF9pbml0V2l0aFRpdGxlOnRpdGxlIGFjdGlvbkhhbmRsZXI6Xihp
ZCA8V0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlPiwgX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8gKmFjdGlvbkluZm8pIHsgaGFuZGxlcihhY3Rpb25JbmZvKTsgfQorICAgIHJldHVybiBbW1tz
ZWxmIGFsbG9jXSBfaW5pdFdpdGhUaXRsZTp0aXRsZSBhY3Rpb25IYW5kbGVyOl4oV0tBY3Rpb25T
aGVldEFzc2lzdGFudCAqLCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykgeyBo
YW5kbGVyKGFjdGlvbkluZm8pOyB9CiAgICAgICAgdHlwZTpfV0tFbGVtZW50QWN0aW9uVHlwZUN1
c3RvbV0gYXV0b3JlbGVhc2VdOwogfQogCkBAIC05MSwyNSArOTEsMjUgQEAgKyAoaW5zdGFuY2V0
eXBlKWVsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBjdXN0
b21UaXRsZTooTlMKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIF9XS0VsZW1lbnRBY3Rp
b25UeXBlQ29weToKICAgICAgICAgdGl0bGUgPSBXRUJfVUlfU1RSSU5HX0tFWSgiQ29weSIsICJD
b3B5IEFjdGlvblNoZWV0IExpbmsiLCAiVGl0bGUgZm9yIENvcHkgTGluayBvciBJbWFnZSBhY3Rp
b24gYnV0dG9uIik7Ci0gICAgICAgIGhhbmRsZXIgPSBeKGlkIDxXS0FjdGlvblNoZWV0QXNzaXN0
YW50RGVsZWdhdGU+IGRlbGVnYXRlLCBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5m
bykgewotICAgICAgICAgICAgW2RlbGVnYXRlIHBlcmZvcm1BY3Rpb246V2ViS2l0OjpTaGVldEFj
dGlvbjo6Q29weV07CisgICAgICAgIGhhbmRsZXIgPSBeKFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
KmFzc2lzdGFudCwgX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmFjdGlvbkluZm8pIHsKKyAgICAg
ICAgICAgIFthc3Npc3RhbnQuZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6YXNzaXN0YW50
IHBlcmZvcm1BY3Rpb246V2ViS2l0OjpTaGVldEFjdGlvbjo6Q29weV07CiAgICAgICAgIH07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuOgogICAgICAg
ICB0aXRsZSA9IFdFQl9VSV9TVFJJTkdfS0VZKCJPcGVuIiwgIk9wZW4gQWN0aW9uU2hlZXQgTGlu
ayIsICJUaXRsZSBmb3IgT3BlbiBMaW5rIGFjdGlvbiBidXR0b24iKTsKLSAgICAgICAgaGFuZGxl
ciA9IF4oaWQgPFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZT4gZGVsZWdhdGUsIF9XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvICphY3Rpb25JbmZvKSB7Ci0gICAgICAgICAgICBbZGVsZWdhdGUg
b3BlbkVsZW1lbnRBdExvY2F0aW9uOmFjdGlvbkluZm8uX2ludGVyYWN0aW9uTG9jYXRpb25dOwor
ICAgICAgICBoYW5kbGVyID0gXihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICphc3Npc3RhbnQsIF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICphY3Rpb25JbmZvKSB7CisgICAgICAgICAgICBbYXNzaXN0
YW50LmRlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OmFzc2lzdGFudCBvcGVuRWxlbWVudEF0
TG9jYXRpb246YWN0aW9uSW5mby5faW50ZXJhY3Rpb25Mb2NhdGlvbl07CiAgICAgICAgIH07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVTYXZlSW1hZ2U6CiAg
ICAgICAgIHRpdGxlID0gV0VCX1VJX1NUUklOR19LRVkoIlNhdmUgSW1hZ2UiLCAiU2F2ZSBJbWFn
ZSIsICJUaXRsZSBmb3IgU2F2ZSBJbWFnZSBhY3Rpb24gYnV0dG9uIik7Ci0gICAgICAgIGhhbmRs
ZXIgPSBeKGlkIDxXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGU+IGRlbGVnYXRlLCBfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykgewotICAgICAgICAgICAgW2RlbGVnYXRl
IHBlcmZvcm1BY3Rpb246V2ViS2l0OjpTaGVldEFjdGlvbjo6U2F2ZUltYWdlXTsKKyAgICAgICAg
aGFuZGxlciA9IF4oV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqYXNzaXN0YW50LCBfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbyAqYWN0aW9uSW5mbykgeworICAgICAgICAgICAgW2Fzc2lzdGFudC5kZWxl
Z2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDphc3Npc3RhbnQgcGVyZm9ybUFjdGlvbjpXZWJLaXQ6
OlNoZWV0QWN0aW9uOjpTYXZlSW1hZ2VdOwogICAgICAgICB9OwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIF9XS0VsZW1lbnRBY3Rpb25UeXBlQWRkVG9SZWFkaW5nTGlzdDoKICAgICAgICAgdGl0
bGUgPSBXRUJfVUlfU1RSSU5HKCJBZGQgdG8gUmVhZGluZyBMaXN0IiwgIlRpdGxlIGZvciBBZGQg
dG8gUmVhZGluZyBMaXN0IGFjdGlvbiBidXR0b24iKTsKLSAgICAgICAgaGFuZGxlciA9IF4oaWQg
PFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZT4sIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
ICphY3Rpb25JbmZvKSB7CisgICAgICAgIGhhbmRsZXIgPSBeKFdLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQgKiwgX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmFjdGlvbkluZm8pIHsKICAgICAgICAgICAg
IGFkZFRvUmVhZGluZ0xpc3QoYWN0aW9uSW5mby5VUkwsIGFjdGlvbkluZm8udGl0bGUpOwogICAg
ICAgICB9OwogICAgICAgICBicmVhazsKQEAgLTEzMSw5ICsxMzEsOSBAQCAtIChOU1N0cmluZyAq
KXRpdGxlCiAgICAgcmV0dXJuIF90aXRsZS5nZXQoKTsKIH0KIAotLSAodm9pZClfcnVuQWN0aW9u
V2l0aEVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWluZm8gZGVsZWdhdGU6
KGlkIDxXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGU+KWRlbGVnYXRlCistICh2b2lkKV9y
dW5BY3Rpb25XaXRoRWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopaW5mbyBm
b3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dAogewotICAgIF9hY3Rpb25IYW5kbGVyKGRlbGVnYXRlLCBpbmZvKTsKKyAgICBfYWN0aW9uSGFu
ZGxlcihhc3Npc3RhbnQsIGluZm8pOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uSW50ZXJuYWwu
aAppbmRleCAzOGFhOGQyZmI2YTZiYmMzMjI0Njg3YzhhNDQ1ZDlhZGRjOTdlMzliLi44MmJiZGQx
ZjljZjJjMzNmNTQwYmViNmI5NmY4ZTIxMzIwNjY5ODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbkludGVy
bmFsLmgKQEAgLTI5LDEyICsyOSwxMiBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogCitAY2xhc3Mg
V0tBY3Rpb25TaGVldEFzc2lzdGFudDsKIEBjbGFzcyBXS0NvbnRlbnRWaWV3OwotQHByb3RvY29s
IFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZTsKIAogQGludGVyZmFjZSBfV0tFbGVtZW50
QWN0aW9uICgpCiAKLS0gKHZvaWQpX3J1bkFjdGlvbldpdGhFbGVtZW50SW5mbzooX1dLQWN0aXZh
dGVkRWxlbWVudEluZm8gKilpbmZvIGRlbGVnYXRlOihpZCA8V0tBY3Rpb25TaGVldEFzc2lzdGFu
dERlbGVnYXRlPilkZWxlZ2F0ZTsKKy0gKHZvaWQpX3J1bkFjdGlvbldpdGhFbGVtZW50SW5mbzoo
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKilpbmZvIGZvckFjdGlvblNoZWV0QXNzaXN0YW50OihX
S0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OwogCiBAZW5kCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKaW5k
ZXggMGEwNDZmMGQxMjYyOTJkYWI0MGYzYTkxNzJiYzg1YTU1OTRlZGQ2My4uZTI1Y2MzNmZlNWEx
NmJmZjQxZDZkOTYxNTY3ZmJkZmE0ZTIwYjJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKQEAgLTM2LDE4ICszNiwx
OSBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb247CiB9CiAKLUBwcm90b2NvbCBXS0FjdGlvblNoZWV0RGVsZWdhdGU7CitAY2xhc3Mg
V0tBY3Rpb25TaGVldEFzc2lzdGFudDsKIEBjbGFzcyBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbzsK
K0Bwcm90b2NvbCBXS0FjdGlvblNoZWV0RGVsZWdhdGU7CiAKIEBwcm90b2NvbCBXS0FjdGlvblNo
ZWV0QXNzaXN0YW50RGVsZWdhdGUKIEByZXF1aXJlZAotQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJiBw
b3NpdGlvbkluZm9ybWF0aW9uOwotLSAodm9pZCl1cGRhdGVQb3NpdGlvbkluZm9ybWF0aW9uOwot
LSAodm9pZClwZXJmb3JtQWN0aW9uOihXZWJLaXQ6OlNoZWV0QWN0aW9uKWFjdGlvbjsKLS0gKHZv
aWQpb3BlbkVsZW1lbnRBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOwotLSAoUmV0YWluUHRy
PE5TQXJyYXk+KWFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVs
ZW1lbnQgZGVmYXVsdEFjdGlvbnM6KFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uczsK
LS0gKHZvaWQpc3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqKWVsZW1lbnQ7Ci0tICh2b2lkKXN0b3BJbnRlcmFjdGlvbjsKKy0gKGNvbnN0IFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKXBvc2l0aW9uSW5mb3JtYXRpb25G
b3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dDsKKy0gKHZvaWQpdXBkYXRlUG9zaXRpb25JbmZvcm1hdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0
YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OworLSAodm9pZClhY3Rpb25T
aGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBwZXJmb3Jt
QWN0aW9uOihXZWJLaXQ6OlNoZWV0QWN0aW9uKWFjdGlvbjsKKy0gKHZvaWQpYWN0aW9uU2hlZXRB
c3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgb3BlbkVsZW1lbnRB
dExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOworLSAoUmV0YWluUHRyPE5TQXJyYXk+KWFjdGlv
blNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IGRlY2lk
ZUFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgZGVm
YXVsdEFjdGlvbnM6KFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uczsKKy0gKHZvaWQp
YWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQg
d2lsbFN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8g
KillbGVtZW50OworLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudERpZFN0b3BJbnRlcmFjdGlv
bjooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKIEBlbmQKIAogQGludGVyZmFj
ZSBXS0FjdGlvblNoZWV0QXNzaXN0YW50IDogTlNPYmplY3QgPFdLQWN0aW9uU2hlZXREZWxlZ2F0
ZSwgREREZXRlY3Rpb25Db250cm9sbGVySW50ZXJhY3Rpb25EZWxlZ2F0ZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQpp
bmRleCA0MzBjMjE0ZDMxYzg2YmI3MWMzMzBiNDA3ZTczZjFhNjkyMjliNzhjLi4xNzk3MjQzOThh
OTRlODY0YmQ0Nzk2YThmYmUzNmIyNTAwNTVkOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCkBAIC0xMzcsOCAr
MTM3LDcgQEAgLSAoQ0dSZWN0KWluaXRpYWxQcmVzZW50YXRpb25SZWN0SW5Ib3N0Vmlld0ZvclNo
ZWV0CiAgICAgaWYgKCF2aWV3IHx8ICFkZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuIENHUmVjdFpl
cm87CiAKLSAgICByZXR1cm4gW3NlbGYgX3ByZXNlbnRhdGlvblJlY3RGb3JTaGVldEdpdmVuUG9p
bnQ6W2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25dLnBvaW50IGluSG9zdFZpZXc6dmlld107
Ci0KKyAgICByZXR1cm4gW3NlbGYgX3ByZXNlbnRhdGlvblJlY3RGb3JTaGVldEdpdmVuUG9pbnQ6
W2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxm
XS5wb2ludCBpbkhvc3RWaWV3OnZpZXddOwogfQogCiAtIChDR1JlY3QpcHJlc2VudGF0aW9uUmVj
dEluSG9zdFZpZXdGb3JTaGVldApAQCAtMTQ4LDcgKzE0Nyw3IEBAIC0gKENHUmVjdClwcmVzZW50
YXRpb25SZWN0SW5Ib3N0Vmlld0ZvclNoZWV0CiAgICAgaWYgKCF2aWV3IHx8ICFkZWxlZ2F0ZSkK
ICAgICAgICAgcmV0dXJuIENHUmVjdFplcm87CiAKLSAgICBjb25zdCBhdXRvJiBwb3NpdGlvbklu
Zm9ybWF0aW9uID0gW2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25dOworICAgIGNvbnN0IGF1
dG8mIHBvc2l0aW9uSW5mb3JtYXRpb24gPSBbZGVsZWdhdGUgcG9zaXRpb25JbmZvcm1hdGlvbkZv
ckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOwogCiAgICAgQ0dSZWN0IGJvdW5kaW5nUmVjdCA9
IHBvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzOwogICAgIENHUG9pbnQgZnJvbVBvaW50ID0gcG9z
aXRpb25JbmZvcm1hdGlvbi5wb2ludDsKQEAgLTE2NCw3ICsxNjMsNyBAQCAtIChDR1JlY3QpcHJl
c2VudGF0aW9uUmVjdEluSG9zdFZpZXdGb3JTaGVldAogCiAtICh2b2lkKXVwZGF0ZVBvc2l0aW9u
SW5mb3JtYXRpb24KIHsKLSAgICBbX2RlbGVnYXRlLmdldCgpIHVwZGF0ZVBvc2l0aW9uSW5mb3Jt
YXRpb25dOworICAgIFtfZGVsZWdhdGUuZ2V0KCkgdXBkYXRlUG9zaXRpb25JbmZvcm1hdGlvbkZv
ckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOwogfQogCiAtIChCT09MKXByZXNlbnRTaGVldApA
QCAtMTkyLDcgKzE5MSw3IEBAIC0gKHZvaWQpX2NyZWF0ZVNoZWV0V2l0aEVsZW1lbnRBY3Rpb25z
OihOU0FycmF5ICopYWN0aW9ucyBzaG93TGlua1RpdGxlOihCT09MKXNoCiAgICAgaWYgKCFkZWxl
Z2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc3QgYXV0byYgcG9zaXRpb25JbmZvcm1h
dGlvbiA9IFtkZWxlZ2F0ZSBwb3NpdGlvbkluZm9ybWF0aW9uXTsKKyAgICBjb25zdCBhdXRvJiBw
b3NpdGlvbkluZm9ybWF0aW9uID0gW2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JBY3Rp
b25TaGVldEFzc2lzdGFudDpzZWxmXTsKIAogICAgIE5TVVJMICp0YXJnZXRVUkwgPSBbTlNVUkwg
VVJMV2l0aFN0cmluZzpwb3NpdGlvbkluZm9ybWF0aW9uLnVybF07CiAgICAgTlNTdHJpbmcgKnVy
bFNjaGVtZSA9IFt0YXJnZXRVUkwgc2NoZW1lXTsKQEAgLTIyNSw3ICsyMjQsNyBAQCAtICh2b2lk
KV9jcmVhdGVTaGVldFdpdGhFbGVtZW50QWN0aW9uczooTlNBcnJheSAqKWFjdGlvbnMgc2hvd0xp
bmtUaXRsZTooQk9PTClzaAogCiAgICAgZm9yIChfV0tFbGVtZW50QWN0aW9uICphY3Rpb24gaW4g
YWN0aW9ucykgewogICAgICAgICBbX2ludGVyYWN0aW9uU2hlZXQgX2FkZEFjdGlvbldpdGhUaXRs
ZTpbYWN0aW9uIHRpdGxlXSBzdHlsZTpVSUFsZXJ0QWN0aW9uU3R5bGVEZWZhdWx0IGhhbmRsZXI6
XnsKLSAgICAgICAgICAgIFthY3Rpb24gX3J1bkFjdGlvbldpdGhFbGVtZW50SW5mbzpfZWxlbWVu
dEluZm8uZ2V0KCkgZGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgICAgICAgICAgW2FjdGlv
biBfcnVuQWN0aW9uV2l0aEVsZW1lbnRJbmZvOl9lbGVtZW50SW5mby5nZXQoKSBmb3JBY3Rpb25T
aGVldEFzc2lzdGFudDpzZWxmXTsKICAgICAgICAgICAgIFtzZWxmIGNsZWFudXBTaGVldF07CiAg
ICAgICAgIH0gc2hvdWxkRGlzbWlzc0hhbmRsZXI6XnsKICAgICAgICAgICAgIHJldHVybiAoQk9P
TCkoIWFjdGlvbi5kaXNtaXNzYWxIYW5kbGVyIHx8IGFjdGlvbi5kaXNtaXNzYWxIYW5kbGVyKCkp
OwpAQCAtMjM3LDcgKzIzNiw3IEBAIC0gKHZvaWQpX2NyZWF0ZVNoZWV0V2l0aEVsZW1lbnRBY3Rp
b25zOihOU0FycmF5ICopYWN0aW9ucyBzaG93TGlua1RpdGxlOihCT09MKXNoCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXI6XihV
SUFsZXJ0QWN0aW9uICphY3Rpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmIGNsZWFudXBTaGVldF07CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXTsKLSAg
ICBbZGVsZWdhdGUgc3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50Ol9lbGVtZW50SW5mby5nZXQo
KV07CisgICAgW2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgd2lsbFN0YXJ0SW50
ZXJhY3Rpb25XaXRoRWxlbWVudDpfZWxlbWVudEluZm8uZ2V0KCldOwogfQogCiAtICh2b2lkKXNo
b3dJbWFnZVNoZWV0CkBAIC0yNDksNyArMjQ4LDcgQEAgLSAodm9pZClzaG93SW1hZ2VTaGVldAog
ICAgIGlmICghZGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IGF1dG8mIHBv
c2l0aW9uSW5mb3JtYXRpb24gPSBbZGVsZWdhdGUgcG9zaXRpb25JbmZvcm1hdGlvbl07CisgICAg
Y29uc3QgYXV0byYgcG9zaXRpb25JbmZvcm1hdGlvbiA9IFtkZWxlZ2F0ZSBwb3NpdGlvbkluZm9y
bWF0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl07CiAKICAgICBOU1VSTCAqdGFyZ2V0
VVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6cG9zaXRpb25JbmZvcm1hdGlvbi51cmxdOwogICAg
IGF1dG8gZGVmYXVsdEFjdGlvbnMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRdKTsKQEAgLTI2NSw3ICsyNjQsNyBAQCAtICh2b2lkKXNob3dJbWFnZVNoZWV0CiAgICAgYXV0
byBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10g
X2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlCiAgICAgICAgIFVSTDp0
YXJnZXRVUkwgbG9jYXRpb246cG9zaXRpb25JbmZvcm1hdGlvbi5wb2ludCB0aXRsZTpwb3NpdGlv
bkluZm9ybWF0aW9uLnRpdGxlIHJlY3Q6cG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6
cG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZS5nZXQoKV0pOwogCi0gICAgUmV0YWluUHRyPE5TQXJy
YXk+IGFjdGlvbnMgPSBbZGVsZWdhdGUgYWN0aW9uc0ZvckVsZW1lbnQ6ZWxlbWVudEluZm8uZ2V0
KCkgZGVmYXVsdEFjdGlvbnM6V1RGOjptb3ZlKGRlZmF1bHRBY3Rpb25zKV07CisgICAgUmV0YWlu
UHRyPE5TQXJyYXk+IGFjdGlvbnMgPSBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2Vs
ZiBkZWNpZGVBY3Rpb25zRm9yRWxlbWVudDplbGVtZW50SW5mby5nZXQoKSBkZWZhdWx0QWN0aW9u
czpXVEY6Om1vdmUoZGVmYXVsdEFjdGlvbnMpXTsKIAogICAgIGlmICghW2FjdGlvbnMgY291bnRd
KQogICAgICAgICByZXR1cm47CkBAIC0yODksNyArMjg4LDcgQEAgLSAodm9pZClzaG93TGlua1No
ZWV0CiAgICAgaWYgKCFkZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc3QgYXV0
byYgcG9zaXRpb25JbmZvcm1hdGlvbiA9IFtkZWxlZ2F0ZSBwb3NpdGlvbkluZm9ybWF0aW9uXTsK
KyAgICBjb25zdCBhdXRvJiBwb3NpdGlvbkluZm9ybWF0aW9uID0gW2RlbGVnYXRlIHBvc2l0aW9u
SW5mb3JtYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmXTsKIAogICAgIE5TVVJMICp0
YXJnZXRVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpwb3NpdGlvbkluZm9ybWF0aW9uLnVybF07
CiAgICAgaWYgKCF0YXJnZXRVUkwpCkBAIC0zMDUsNyArMzA0LDcgQEAgLSAodm9pZClzaG93TGlu
a1NoZWV0CiAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvPiBlbGVtZW50SW5m
byA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlw
ZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsKICAgICAgICAgVVJMOnRhcmdldFVSTCBsb2Nh
dGlvbjpwb3NpdGlvbkluZm9ybWF0aW9uLnBvaW50IHRpdGxlOnBvc2l0aW9uSW5mb3JtYXRpb24u
dGl0bGUgcmVjdDpwb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpwb3NpdGlvbkluZm9y
bWF0aW9uLmltYWdlLmdldCgpXSk7CiAKLSAgICBSZXRhaW5QdHI8TlNBcnJheT4gYWN0aW9ucyA9
IFtkZWxlZ2F0ZSBhY3Rpb25zRm9yRWxlbWVudDplbGVtZW50SW5mby5nZXQoKSBkZWZhdWx0QWN0
aW9uczpXVEY6Om1vdmUoZGVmYXVsdEFjdGlvbnMpXTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4g
YWN0aW9ucyA9IFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGRlY2lkZUFjdGlv
bnNGb3JFbGVtZW50OmVsZW1lbnRJbmZvLmdldCgpIGRlZmF1bHRBY3Rpb25zOldURjo6bW92ZShk
ZWZhdWx0QWN0aW9ucyldOwogCiAgICAgaWYgKCFbYWN0aW9ucyBjb3VudF0pCiAgICAgICAgIHJl
dHVybjsKQEAgLTMyOCw3ICszMjcsNyBAQCAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzU2hlZXQK
ICAgICBpZiAoIWRlbGVnYXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBOU1VSTCAqdGFyZ2V0
VVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6W2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25d
LnVybF07CisgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOltkZWxl
Z2F0ZSBwb3NpdGlvbkluZm9ybWF0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl0udXJs
XTsKICAgICBpZiAoIXRhcmdldFVSTCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0zNjYsNyArMzY1
LDcgQEAgLSAodm9pZClzaG93RGF0YURldGVjdG9yc1NoZWV0CiAKIC0gKHZvaWQpY2xlYW51cFNo
ZWV0CiB7Ci0gICAgW19kZWxlZ2F0ZS5nZXQoKSBzdG9wSW50ZXJhY3Rpb25dOworICAgIFtfZGVs
ZWdhdGUuZ2V0KCkgYWN0aW9uU2hlZXRBc3Npc3RhbnREaWRTdG9wSW50ZXJhY3Rpb246c2VsZl07
CiAKICAgICBbX2ludGVyYWN0aW9uU2hlZXQgZG9uZVdpdGhTaGVldF07CiAgICAgW19pbnRlcmFj
dGlvblNoZWV0IHNldFNoZWV0RGVsZWdhdGU6bmlsXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNTMz
MzMzOGRhNjVmMTZiYWQ0NGYzYmI1NzY5OThmOTQ4MTVlMTIxMi4uMjIwNzE4ZmE4MjVkZjhiMmI2
MDQ1NWVmYzIzZjVlZjllOTNlZjE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTI2ODgsMzMgKzI2
ODgsMzggQEAgLSAoQk9PTClpc0FueVRvdWNoT3ZlckFjdGl2ZUFyZWE6KE5TU2V0ICopdG91Y2hl
cwogCiAjcHJhZ21hIG1hcmsgLSBJbXBsZW1lbnRhdGlvbiBvZiBXS0FjdGlvblNoZWV0QXNzaXN0
YW50RGVsZWdhdGUuCiAKLS0gKHZvaWQpdXBkYXRlUG9zaXRpb25JbmZvcm1hdGlvbgorLSAoY29u
c3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpcG9zaXRpb25JbmZv
cm1hdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICop
YXNzaXN0YW50Cit7CisgICAgcmV0dXJuIF9wb3NpdGlvbkluZm9ybWF0aW9uOworfQorCistICh2
b2lkKXVwZGF0ZVBvc2l0aW9uSW5mb3JtYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudAogewogICAgIF9oYXNWYWxpZFBvc2l0aW9u
SW5mb3JtYXRpb24gPSBOTzsKICAgICBfcGFnZS0+cmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb24o
X3Bvc2l0aW9uSW5mb3JtYXRpb24ucG9pbnQpOwogfQogCi0tICh2b2lkKXBlcmZvcm1BY3Rpb246
KFdlYktpdDo6U2hlZXRBY3Rpb24pYWN0aW9uCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50
OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHBlcmZvcm1BY3Rpb246KFdlYktp
dDo6U2hlZXRBY3Rpb24pYWN0aW9uCiB7CiAgICAgX3BhZ2UtPnBlcmZvcm1BY3Rpb25PbkVsZW1l
bnQoKHVpbnQzMl90KWFjdGlvbik7CiB9CiAKLS0gKHZvaWQpb3BlbkVsZW1lbnRBdExvY2F0aW9u
OihDR1BvaW50KWxvY2F0aW9uCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlv
blNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IG9wZW5FbGVtZW50QXRMb2NhdGlvbjooQ0dQb2lu
dClsb2NhdGlvbgogewogICAgIFtzZWxmIF9hdHRlbXB0Q2xpY2tBdExvY2F0aW9uOmxvY2F0aW9u
XTsKIH0KIAotLSAoUmV0YWluUHRyPE5TQXJyYXk+KWFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlvbnM6KFJldGFpblB0cjxOU0Fy
cmF5PilkZWZhdWx0QWN0aW9ucworLSAoUmV0YWluUHRyPE5TQXJyYXk+KWFjdGlvblNoZWV0QXNz
aXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IGRlY2lkZUFjdGlvbnNG
b3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlv
bnM6KFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9ucwogewogICAgIHJldHVybiBfcGFn
ZS0+dWlDbGllbnQoKS5hY3Rpb25zRm9yRWxlbWVudChlbGVtZW50LCBXVEY6Om1vdmUoZGVmYXVs
dEFjdGlvbnMpKTsKIH0KIAotLSAodm9pZClzdGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnQ6KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudAorLSAodm9pZClhY3Rpb25TaGVldEFzc2lz
dGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCB3aWxsU3RhcnRJbnRlcmFj
dGlvbldpdGhFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQKIHsKICAg
ICBfcGFnZS0+c3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50QXRQb3NpdGlvbihfcG9zaXRpb25J
bmZvcm1hdGlvbi5wb2ludCk7CiB9CiAKLS0gKHZvaWQpc3RvcEludGVyYWN0aW9uCistICh2b2lk
KWFjdGlvblNoZWV0QXNzaXN0YW50RGlkU3RvcEludGVyYWN0aW9uOihXS0FjdGlvblNoZWV0QXNz
aXN0YW50ICopYXNzaXN0YW50CiB7CiAgICAgX3BhZ2UtPnN0b3BJbnRlcmFjdGlvbigpOwogfQo=
</data>
<flag name="review"
          id="265740"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>