<?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>151270</bug_id>
          
          <creation_ts>2015-11-13 12:03:58 -0800</creation_ts>
          <short_desc>Add SPI for handling inline link navigation for peek/pop</short_desc>
          <delta_ts>2015-11-16 14:38:55 -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>WebKit API</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <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>1141899</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-11-13 12:03:58 -0800</bug_when>
    <thetext>Add SPI for handling inline link navigation for peek/pop

rdar://problem/22233739</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141914</commentid>
    <comment_count>1</comment_count>
      <attachid>265492</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-11-13 12:59:38 -0800</bug_when>
    <thetext>Created attachment 265492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141916</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-13 13:02:12 -0800</bug_when>
    <thetext>Attachment 265492 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfo.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 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>1141929</commentid>
    <comment_count>3</comment_count>
      <attachid>265492</attachid>
    <who name="">mitz</who>
    <bug_when>2015-11-13 13:33:56 -0800</bug_when>
    <thetext>Comment on attachment 265492
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:40
&gt; +@class _WKPreviewingElementInfo;

“previewing element” sound a little weird, because the element isn’t doing any previewing, it is being previewed perhaps, so maybe _WKPreviewedElementInfo or _WKPreviewableElementInfo fit better.

&gt; Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfo.mm:59
&gt; +    return _URL.get();

Because BOOL is sometimes just an unsigned char, this will return NO if the URL pointer ends in a 0 byte, so you should !! it or explicitly compare to nil.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141942</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-11-13 14:21:19 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 265492 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=265492&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:40
&gt; &gt; +@class _WKPreviewingElementInfo;
&gt; 
&gt; “previewing element” sound a little weird, because the element isn’t doing
&gt; any previewing, it is being previewed perhaps, so maybe
&gt; _WKPreviewedElementInfo or _WKPreviewableElementInfo fit better.
&gt; 

That&apos;s true. I think that _WKPreviewableElementInfo is the most accurate, but it&apos;s a little clumsy, maybe? Maybe it&apos;s fine. _WKPreviewedElementInfo sounds past-tense, so I don&apos;t like it as much. I changed it to _WKPreviewElementInfo for now, but I could be convinced that _WKPreviewableElementInfo is better.

&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfo.mm:59
&gt; &gt; +    return _URL.get();
&gt; 
&gt; Because BOOL is sometimes just an unsigned char, this will return NO if the
&gt; URL pointer ends in a 0 byte, so you should !! it or explicitly compare to
&gt; nil.

Oh, yes, thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141943</commentid>
    <comment_count>5</comment_count>
      <attachid>265500</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-11-13 14:21:37 -0800</bug_when>
    <thetext>Created attachment 265500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142006</commentid>
    <comment_count>6</comment_count>
      <attachid>265523</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-11-13 18:09:48 -0800</bug_when>
    <thetext>Created attachment 265523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142007</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-13 18:11:41 -0800</bug_when>
    <thetext>Attachment 265523 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfoInternal.h:32:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfo.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 10 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>1142068</commentid>
    <comment_count>8</comment_count>
      <attachid>265547</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-11-14 14:21:55 -0800</bug_when>
    <thetext>Created attachment 265547
Patch

Hopefully the Mac bots will be happier with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142070</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-14 14:23:29 -0800</bug_when>
    <thetext>Attachment 265547 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKElementInfoInternal.h:32:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/_WKPreviewElementInfo.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 10 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>1142341</commentid>
    <comment_count>10</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2015-11-16 14:38:55 -0800</bug_when>
    <thetext>Thanks Darin, Anders, and Dan!

http://trac.webkit.org/changeset/192486</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265492</attachid>
            <date>2015-11-13 12:59:38 -0800</date>
            <delta_ts>2015-11-13 14:21:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>21879</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MjQzNykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE1LTExLTEzICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgU1BJIGZvciBoYW5kbGluZyBp
bmxpbmUgbGluayBuYXZpZ2F0aW9uIGZvciBwZWVrL3BvcAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMjcwCisgICAgICAgIC1hbmQgY29ycmVzcG9u
ZGluZy0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjIyMzM3MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUd28gbmV3IFNQSSBtZXRob2RzLiBwcmV2
aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOiBsZXRzIAorICAg
ICAgICBhIGNsaWVudCBwcm92aWRlIGEgVUlWaWV3Q29udHJvbGxlciBmb3IgcGVlay4gSW4gdGhp
cyB2ZXJzaW9uLCByZXR1cm5pbmcgbmlsIAorICAgICAgICB3aWxsIHJldGFpbiBkZWZhdWx0IGJl
aGF2aW9yLiBUaGlzIHdpbGwgYWxsb3cgY2xpZW50cyB0byBpbXBsZW1lbnQgdGhpcyAKKyAgICAg
ICAgbWV0aG9kIHRvIGhhbmRsZSBodHRwIGxpbmsgbmF2aWdhdGlvbiBpbmxpbmUsIGJ1dCBzdGls
bCBvcHQgaW50byBVSUtpdOKAmXMgCisgICAgICAgIGJ1aWx0LWluIERhdGFEZXRlY3RvcnMgYmVo
YXZpb3JzIGZvciBERCBsaW5rcyBvbmNlIHdlIHN0YXJ0IHN1cHBvcnRpbmcgREQgCisgICAgICAg
IGxpbmtzIGluIFdLMi4gUmV0dXJuaW5nIE5TTnVsbCB3aWxsIG1ha2UgdGhlIGVsZW1lbnQgbm90
IHBlZWthYmxlIHJlZ2FyZGxlc3MgCisgICAgICAgIG9mIHdoZXRoZXIgb3Igbm90IHRoZXJlIGFy
ZSBkZWZhdWx0IGJlaGF2aW9ycy4gCisgICAgICAgIGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJv
bGxlcjogaXMgbW9yZSBzdHJhaWdodGZvcndhcmQuIAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorCisgICAgICAgIEFkZGVkIGlzTGluayBhbmQg
VVJMIHRvIF9XS0VsZW1lbnRJbmZvLiBJbnN0ZWFkIG9mIG1ha2luZyBXS0VsZW1lbnRJbmZvIGhh
dmUgCisgICAgICAgIGEgdHlwZSBsaWtlIFdLQWN0aXZhdGVkRWxlbWVudEluZm8sIEkgdGhpbmsg
dGhhdCBXS0VsZW1lbnRJbmZvIHNob3VsZCBqdXN0IAorICAgICAgICBoYXZlIG1ldGhvZHMgdG8g
YW5zd2VyIHdoZXRoZXIgb3Igbm90IGl0IGlzIGEgcGFydGljdWxhciB0eXBlIG9mIGVsZW1lbnQu
IAorICAgICAgICBUaGlzIHdheSB3ZSBkb27igJl0IGhhdmUgdG8gd29ycnkgYWJvdXQgaGF2aW5n
IGEgV0tFbGVtZW50SW5mbyB0aGF0IHJlcHJlc2VudGVkIAorICAgICAgICBib3RoIGEgbGluayBB
TkQgYW4gaW1hZ2UuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5m
by5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8ubW06Cisg
ICAgICAgICgtW19XS0VsZW1lbnRJbmZvIF9pbml0V2l0aFVSTDpdKToKKyAgICAgICAgKC1bX1dL
RWxlbWVudEluZm8gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtfV0tFbGVtZW50SW5mbyBV
UkxdKToKKyAgICAgICAgKC1bX1dLRWxlbWVudEluZm8gaXNMaW5rXSk6CisKKyAgICAgICAgQWRk
ZWQgYSBjb25zdHJ1Y3RvciBmb3IgV0tFbGVtZW50SW5mbyBzbyB0aGF0IEkgY2FuIHN0YXJ0IHVz
aW5nIGl0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm9JbnRl
cm5hbC5oOiBBZGRlZC4KKworICAgICAgICBSaWdodCBub3csIG5vdGhpbmcgZGlmZmVyZW50aWF0
ZXMgYSBfV0tQcmV2aWV3aW5nRWxlbWVudEluZm8gZnJvbSBhIAorICAgICAgICBfV0tFbGVtZW50
SW5mbywgYnV0IHRoYXQgY291bGQgY2hhbmdlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLm1tOiBBZGRlZC4KKworICAgICAg
ICBJbnZva2UgcHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDogZm9yIGFsbCBwb3Rl
bnRpYWxseSBwcmV2aWV3LWFibGUgCisgICAgICAgIGVsZW1lbnRzLCB3aGljaCB3aWxsIGJlIGxp
bWl0ZWQgdG8gbGlua3MgYW5kIGltYWdlcyB3aXRoIHRoZSB3YXkgZXZlcnl0aGluZyAKKyAgICAg
ICAgaXMgaW1wbGVtZW50ZWQgYXQgdGhpcyB0aW1lLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9w
cmVzZW50ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjpdKToKKworICAg
ICAgICBJbnZva2UgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6Y29tbWl0UHJldmlldzpdKToKKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTUtMTEtMTMg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBQcm92aWRlIGEgd2F5IHRvIG92ZXJyaWRlIHRoZSBXS1dlYlZpZXcgcmVtb3RlIGlu
c3BlY3RvciBuYW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNpb24gMTkyMjczKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDEyICszMCwxNCBAQAogI2ltcG9ydCA8V2ViS2l0L1dLU2Vj
dXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYktpdC9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5o
PgogCitAY2xhc3MgVUlQcmV2aWV3QWN0aW9uSXRlbTsKIEBjbGFzcyBVSVNjcm9sbFZpZXc7CiBA
Y2xhc3MgVUlWaWV3Q29udHJvbGxlcjsKIEBjbGFzcyBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZv
OwogQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvOwogQGNsYXNzIF9XS0VsZW1lbnRBY3Rp
b247CiBAY2xhc3MgX1dLRnJhbWVIYW5kbGU7CitAY2xhc3MgX1dLUHJldmlld2luZ0VsZW1lbnRJ
bmZvOwogCiBAcHJvdG9jb2wgV0tVSURlbGVnYXRlUHJpdmF0ZSA8V0tVSURlbGVnYXRlPgogCkBA
IC03Miw2ICs3NCwxMSBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAoVUlFZGdlSW5zZXRzKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZpbmFsT2JzY3VyZWRJbnNldHNGb3JTY3JvbGxW
aWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxv
Y2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9m
ZnNldCBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CiAtIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VS
TCAqKXVybCBkZWZhdWx0QWN0aW9uczooV0tfQVJSQVkoX1dLRWxlbWVudEFjdGlvbiAqKSAqKWFj
dGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8g
V0tfQVZBSUxBQkxFKE5BLCA5XzApOwogLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckFuaW1hdGVkSW1hZ2VB
dFVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KFdLX0FSUkFZKF9XS0VsZW1lbnRBY3Rp
b24gKikgKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVs
ZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdlU2l6ZSBXS19BVkFJTEFCTEUoTkEsIDlf
MCk7CisKKy8vIENsaWVudHMgdGhhdCB3YW50IHRvIG1haW50YWluIGRlZmF1bHQgYmVoYXZpb3Ig
Y2FuIHJldHVybiBuaWwuIFRvIGRpc2FibGUgcHJldmlldyBvbiB0aGlzIGVsZW1lbnQgZW50aXJl
bHksCisvLyByZXR1cm4gTlNOdWxsLiBUbyBkbyBzb21ldGhpbmcgY3VzdG9tLCByZXR1cm4gYSBV
SVZpZXdDb250cm9sbGVyIHdpdGggdGhlIHByZXZpZXdlZCBjb250ZW50LiAKKy0gKFVJVmlld0Nv
bnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3aW5nVmlld0Nv
bnRyb2xsZXJGb3JFbGVtZW50OihfV0tQcmV2aWV3aW5nRWxlbWVudEluZm8gKillbGVtZW50SW5m
byBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxVSVByZXZpZXdBY3Rpb25JdGVtICo+ICopcHJldmll
d0FjdGlvbnMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOihVSVZp
ZXdDb250cm9sbGVyICopcHJldmlld2luZ1ZpZXdDb250cm9sbGVyIFdLX0FWQUlMQUJMRShOQSwg
V0tfSU9TX1RCQSk7CiAjZWxzZQogLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1l
bnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50
SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLRWxlbWVudEluZm8uaAkocmV2aXNpb24gMTkyMjczKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2
ICszMiwxMCBAQCBXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgogV0tfQ0xBU1NfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIFdLX0lPU19UQkEpCiBAaW50ZXJmYWNlIF9XS0VsZW1lbnRJbmZvIDogTlNPYmpl
Y3QgPE5TQ29weWluZz4KIAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlz
TGluazsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqVVJMOworCiBA
ZW5kCiAKIFdLX0FTU1VNRV9OT05OVUxMX0VORApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tCShyZXZpc2lvbiAxOTIy
NzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxNyArMjQsNDEgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiX1dLRWxlbWVudEluZm8uaCIKKyNpbmNsdWRlICJfV0tFbGVt
ZW50SW5mb0ludGVybmFsLmgiCisKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFdL
X0FQSV9FTkFCTEVECiAKLUBpbXBsZW1lbnRhdGlvbiBfV0tFbGVtZW50SW5mbworQGltcGxlbWVu
dGF0aW9uIF9XS0VsZW1lbnRJbmZvICB7CisgICAgUmV0YWluUHRyPE5TVVJMPiBfVVJMOworfQor
CistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVVJMOihOU1VSTCAqKXVybAoreworICAgIGlmICgh
KHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX1VSTCA9
IGFkb3B0TlMoW3VybCBjb3B5XSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KIAogLSAoaWQpY29w
eVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7CiAgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07CiB9
CiAKKy0gKE5TVVJMICopVVJMCit7CisgICAgcmV0dXJuIF9VUkwuZ2V0KCk7Cit9CisKKy0gKEJP
T0wpaXNMaW5rCit7CisgICAgcmV0dXJuIF9VUkwuZ2V0KCk7Cit9CisKIEBlbmQKIAogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJfV0tFbGVtZW50
SW5mby5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBfV0tFbGVtZW50SW5m
byAoKQorCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVVJMOihOU1VSTCAqKXVybDsKKworQGVu
ZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3aW5nRWxlbWVudElu
Zm8uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworI2ltcG9ydCA8V2ViS2l0L19XS0Vs
ZW1lbnRJbmZvLmg+CisKK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK1dLX0NMQVNTX0FWQUlM
QUJMRShOQSwgV0tfSU9TX1RCQSkKK0BpbnRlcmZhY2UgX1dLUHJldmlld2luZ0VsZW1lbnRJbmZv
IDogX1dLRWxlbWVudEluZm8KKworQGVuZAorCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKworI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdp
bmdFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1ByZXZpZXdpbmdFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld2luZ0VsZW1lbnRJbmZv
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIl9XS1ByZXZpZXdpbmdFbGVtZW50SW5mby5oIgorCisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShJ
T1MpCisKK0BpbXBsZW1lbnRhdGlvbiBfV0tQcmV2aWV3aW5nRWxlbWVudEluZm8KKworQGVuZAor
CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAxOTIyNzMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtNTMsOSArNTMsMTEgQEAKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5o
IgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mb0ludGVybmFsLmgiCisjaW1wb3J0ICJfV0tFbGVtZW50SW5mb0ludGVybmFsLmgiCiAj
aW1wb3J0ICJfV0tGb2N1c2VkRWxlbWVudEluZm8uaCIKICNpbXBvcnQgIl9XS0Zvcm1JbnB1dFNl
c3Npb24uaCIKICNpbXBvcnQgIl9XS0lucHV0RGVsZWdhdGUuaCIKKyNpbXBvcnQgIl9XS1ByZXZp
ZXdpbmdFbGVtZW50SW5mby5oIgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250Lmg+CiAjaW1wb3J0
IDxDb3JlVGV4dC9DVEZvbnREZXNjcmlwdG9yLmg+CiAjaW1wb3J0IDxNb2JpbGVDb3JlU2Vydmlj
ZXMvVVRDb3JlVHlwZXMuaD4KQEAgLTM1MDUsNiArMzUwNywyMCBAQCAtIChVSVZpZXdDb250cm9s
bGVyICopX3ByZXNlbnRlZFZpZXdDb250CiAgICAgVVJMIGNvcmVUYXJnZXRVUkwgPSB0YXJnZXRV
Ukw7CiAgICAgYm9vbCBpc1ZhbGlkVVJMRm9ySW1hZ2VQcmV2aWV3ID0gIWNvcmVUYXJnZXRVUkwu
aXNFbXB0eSgpICYmIChXZWJDb3JlOjpwcm90b2NvbElzSW5IVFRQRmFtaWx5KGNvcmVUYXJnZXRV
UkwpIHx8IFdlYkNvcmU6OnByb3RvY29sSXMoY29yZVRhcmdldFVSTCwgImRhdGEiKSk7CiAKKyAg
ICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvID0gYWRvcHRO
UyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0FjdGl2
YXRlZEVsZW1lbnRUeXBlTGluayBVUkw6dGFyZ2V0VVJMIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9y
bWF0aW9uLnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlIHJlY3Q6X3Bvc2l0
aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlLmdl
dCgpXSk7CisKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gYWN0aW9ucyA9IG5pbDsKKyAgICBpZiAo
W19wcmV2aWV3SXRlbUNvbnRyb2xsZXIgdHlwZV0gPT0gVUlQcmV2aWV3SXRlbVR5cGVMaW5rKQor
ICAgICAgICBhY3Rpb25zID0gW19hY3Rpb25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0Zv
ckxpbmtTaGVldDplbGVtZW50SW5mby5nZXQoKV07CisgICAgZWxzZSBpZiAoW19wcmV2aWV3SXRl
bUNvbnRyb2xsZXIgdHlwZV0gPT0gVUlQcmV2aWV3SXRlbVR5cGVJbWFnZSkKKyAgICAgICAgYWN0
aW9ucyA9IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0
OmVsZW1lbnRJbmZvLmdldCgpXTsKKworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1l
bnQ6ZGVmYXVsdEFjdGlvbnM6KV0pIHsKKyAgICAgICAgYXV0byBwcmV2aWV3aW5nRWxlbWVudElu
Zm8gPSBhZG9wdE5TKFtbX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhV
Ukw6dGFyZ2V0VVJMXSk7CisgICAgICAgIGlmIChVSVZpZXdDb250cm9sbGVyICpjb250cm9sbGVy
ID0gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgcHJldmlld2luZ1ZpZXdDb250cm9sbGVy
Rm9yRWxlbWVudDpwcmV2aWV3aW5nRWxlbWVudEluZm8uZ2V0KCkgZGVmYXVsdEFjdGlvbnM6YWN0
aW9ucy5nZXQoKV0pCisgICAgICAgICAgICByZXR1cm4gY29udHJvbGxlcjsKKyAgICB9CisKICAg
ICBpZiAoW19wcmV2aWV3SXRlbUNvbnRyb2xsZXIgdHlwZV0gPT0gVUlQcmV2aWV3SXRlbVR5cGVM
aW5rKSB7CiAgICAgICAgIF9oaWdobGlnaHRMb25nUHJlc3NDYW5DbGljayA9IE5POwogICAgICAg
ICBfcGFnZS0+c3RhcnRJbnRlcmFjdGlvbldpdGhFbGVtZW50QXRQb3NpdGlvbihfcG9zaXRpb25J
bmZvcm1hdGlvbi5wb2ludCk7CkBAIC0zNTE5LDkgKzM1MzUsNiBAQCAtIChVSVZpZXdDb250cm9s
bGVyICopX3ByZXNlbnRlZFZpZXdDb250CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAg
ICAgICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVsZW1lbnRJbmZvID0gYWRv
cHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhUeXBlOl9XS0Fj
dGl2YXRlZEVsZW1lbnRUeXBlTGluayBVUkw6dGFyZ2V0VVJMIGxvY2F0aW9uOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9uLnRpdGxlIHJlY3Q6X3Bv
c2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdl
LmdldCgpXSk7Ci0KLSAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnMgPSBbX2FjdGlv
blNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0OmVsZW1lbnRJbmZvLmdl
dCgpXTsKICAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6cHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOmRlZmF1bHRBY3Rpb25zOmVs
ZW1lbnRJbmZvOildKQogICAgICAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93
ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDp0YXJnZXRVUkwgZGVmYXVsdEFjdGlv
bnM6YWN0aW9ucy5nZXQoKSBlbGVtZW50SW5mbzplbGVtZW50SW5mby5nZXQoKV07CiAKQEAgLTM1
NTksNiArMzU3MiwxMSBAQCAtICh2b2lkKV9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6KFVJUHJldmll
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xs
ZXI6KV0pIHsKKyAgICAgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgY29tbWl0UHJl
dmlld2luZ1ZpZXdDb250cm9sbGVyOnZpZXdDb250cm9sbGVyXTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOildKSB7CiAgICAgICAgIFt1
aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVy
OnZpZXdDb250cm9sbGVyXTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTkyMjcz
KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjI5LDYgKzEyMjksOSBAQAogCQk5MzVFRUJBNDEyNzc2MUQ2MDAz
MzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5MjEyNzc2MTVEMDAzMzIy
QjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggKi87IH07CiAJCTkzOTFG
MkNBMTIxQjY3OUEwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUYyODQxMjFCMzhG
NTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi87IH07CiAJCTkzOTFG
MkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1
MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OworCQk5Mzk1RTY4
QTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4OTFCRjJDMzMyMDBG
NDlCQ0UgLyogX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM5NUU2OEMxQkYyQzM1MjAwRjQ5QkNFIC8q
IF9XS1ByZXZpZXdpbmdFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3
aW5nRWxlbWVudEluZm8ubW0gKi87IH07CisJCTkzOTVFNjhFMUJGNDEwRkQwMEY0OUJDRSAvKiBf
V0tFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9J
bnRlcm5hbC5oICovOyB9OwogCQk5MzlBRTc2NjEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwICovOyB9OwogCQk5MzlGNDAxQzE5RkIwQkJDMDAyQjJCNDIgLyogV0tBY3Rpb25NZW51VHlw
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUY0
MDFCMTlGQjBCQkMwMDJCMkI0MiAvKiBXS0FjdGlvbk1lbnVUeXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzQTg4QjMwMUJDNkU5OTcwMEFC
QTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQTg4QjJFMUJDNkU5OEYwMEFCQTVDMiAvKiBXZWJIaXRU
ZXN0UmVzdWx0RGF0YS5tbSAqLzsgfTsKQEAgLTM0NzEsNiArMzQ3NCw5IEBACiAJCTkzNUVFQjk4
MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAv
KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Mzk1
RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1ByZXZpZXdpbmdFbGVtZW50SW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Mzk1RTY4QjFCRjJDMzUyMDBGNDlCQ0UgLyog
X1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9J
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tFbGVtZW50SW5m
b0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUFFNzY1MTMxNkU5
OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5RjQwMUIxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9u
TWVudVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9uTWVu
dVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4QjJFMUJDNkU5OEYw
MEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHREYXRhLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTM5Niw2ICs1NDAyLDcgQEAKIAkJCQkzNzlBODczQjE4QkJGRjA3
MDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbkludGVybmFsLmggKi8sCiAJCQkJMUE1NzA0RjAx
QkUwMTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLmggKi8sCiAJCQkJMUE1NzA0RUYxQkUw
MTczRjAwODc0QUYxIC8qIF9XS0VsZW1lbnRJbmZvLm1tICovLAorCQkJCTkzOTVFNjhEMUJGNDEw
RkQwMEY0OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMUFEMDFCQzcx
OTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmggKi8sCiAJCQkJ
MUFEMDFCQzYxOTA1RDM3RTAwQzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLm1t
ICovLAogCQkJCTAwNUQxNThFMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCAq
LywKQEAgLTU0MDYsNiArNTQxMyw4IEBACiAJCQkJMzdBNjRFNTQxOEYzOEUzQzAwRUIzMEYxIC8q
IF9XS0lucHV0RGVsZWdhdGUuaCAqLywKIAkJCQkyRDc5MEE5QzFBRDcwNTBEMDBBQjkwQjMgLyog
X1dLTGF5b3V0TW9kZS5oICovLAogCQkJCTkzMjM2MTFEMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tP
dmVybGF5U2Nyb2xsYmFyU3R5bGUuaCAqLywKKwkJCQk5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0Ug
LyogX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLmggKi8sCisJCQkJOTM5NUU2OEIxQkYyQzM1MjAw
RjQ5QkNFIC8qIF9XS1ByZXZpZXdpbmdFbGVtZW50SW5mby5tbSAqLywKIAkJCQkxQTQzRTgyODE4
OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJ
MUE0M0U4MjcxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5t
bSAqLywKIAkJCQk3Qzg5RDJENjFBNkM2QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uSW50ZXJuYWwuaCAqLywKQEAgLTc3MDYsNiArNzcxNSw3IEBACiAJCQkJN0MxQkEz
M0UxQTRBMEU2MDAwNDNFMjQ5IC8qIEFQSURpY3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFGN0QzNkMxMThEQTUxM0YwMEQ5RDY1OSAvKiBBUElEb3dubG9hZENsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTE2QTRBNUQxMjBBMkNDRDAwQzA1QjdGIC8qIEFQSUVycm9yLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5Mzk1RTY4RTFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9J
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDBCOTY2MTYxOEUyNENCQTAwQ0UxRjg4IC8q
IEFQSUZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJERDY3QTJFMUJEODE5NzMwMDUz
QjI1MSAvKiBBUElGaW5kTWF0Y2hlc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdFMjVE
NkUxOEZERTVENjAwNUQzQTAwIC8qIEFQSUZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAt
Nzg4NSw2ICs3ODk1LDcgQEAKIAkJCQkxQUE1ODg5MjExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2Nh
cGVQbHVnaW5TdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNzk4QzdBMTZFNjgxODgwMDI0
MDEzOSAvKiBOZXR3b3JrQmxvYlJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQzNkVD
QzFBMEQwNDBCMDBFQUQyMDQgLyogTmV0d29ya0NhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
Mzk1RTY4QTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNDlENDBENzFBRDNGQjE3MDA2NkI3QjkgLyogTmV0d29ya0NhY2hl
QmxvYlN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODlEMjhBMUEwQTJEQjgwMDc4QzA2
QSAvKiBOZXR3b3JrQ2FjaGVDb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ4OUQyOEMxQTBB
MkRCODAwNzhDMDZBIC8qIE5ldHdvcmtDYWNoZUNvZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC05
ODEyLDYgKzk4MjMsNyBAQAogCQkJCUUxQ0MxQjkxMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludElu
Zm9NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzcxNkE1QTE5NUI5MTA1MDBFRThCMUIgLyog
UHJvY2Vzc0Fzc2VydGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkY5NTM2NDE4RkY1ODND
MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTkz
OTVFNjhDMUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3aW5nRWxlbWVudEluZm8ubW0gaW4g
U291cmNlcyAqLywKIAkJCQkxQUUxMTdGNjExREJCMzA5MDA5ODE2MTUgLyogUHJvY2Vzc0xhdW5j
aGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjFEMTEyRjVGRTYwMDMzN0JBQiAvKiBQ
cm9jZXNzTGF1bmNoZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NkU2N0EyNjE5MTBCOUQ5
MDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265500</attachid>
            <date>2015-11-13 14:21:37 -0800</date>
            <delta_ts>2015-11-13 18:09:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review2.txt</filename>
            <type>text/plain</type>
            <size>22033</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MjQ0MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDE1LTExLTEzICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgU1BJIGZvciBoYW5kbGluZyBp
bmxpbmUgbGluayBuYXZpZ2F0aW9uIGZvciBwZWVrL3BvcAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMjcwCisgICAgICAgIC1hbmQgY29ycmVzcG9u
ZGluZy0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjIyMzM3MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUd28gbmV3IFNQSSBtZXRob2RzLiBwcmV2
aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOiBsZXRzIAorICAg
ICAgICBhIGNsaWVudCBwcm92aWRlIGEgVUlWaWV3Q29udHJvbGxlciBmb3IgcGVlay4gSW4gdGhp
cyB2ZXJzaW9uLCByZXR1cm5pbmcgbmlsIAorICAgICAgICB3aWxsIHJldGFpbiBkZWZhdWx0IGJl
aGF2aW9yLiBUaGlzIHdpbGwgYWxsb3cgY2xpZW50cyB0byBpbXBsZW1lbnQgdGhpcyAKKyAgICAg
ICAgbWV0aG9kIHRvIGhhbmRsZSBodHRwIGxpbmsgbmF2aWdhdGlvbiBpbmxpbmUsIGJ1dCBzdGls
bCBvcHQgaW50byBVSUtpdOKAmXMgCisgICAgICAgIGJ1aWx0LWluIERhdGFEZXRlY3RvcnMgYmVo
YXZpb3JzIGZvciBERCBsaW5rcyBvbmNlIHdlIHN0YXJ0IHN1cHBvcnRpbmcgREQgCisgICAgICAg
IGxpbmtzIGluIFdLMi4gUmV0dXJuaW5nIE5TTnVsbCB3aWxsIG1ha2UgdGhlIGVsZW1lbnQgbm90
IHBlZWthYmxlIHJlZ2FyZGxlc3MgCisgICAgICAgIG9mIHdoZXRoZXIgb3Igbm90IHRoZXJlIGFy
ZSBkZWZhdWx0IGJlaGF2aW9ycy4gCisgICAgICAgIGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJv
bGxlcjogaXMgbW9yZSBzdHJhaWdodGZvcndhcmQuIAorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorCisgICAgICAgIEFkZGVkIGlzTGluayBhbmQg
VVJMIHRvIF9XS0VsZW1lbnRJbmZvLiBJbnN0ZWFkIG9mIG1ha2luZyBXS0VsZW1lbnRJbmZvIGhh
dmUgCisgICAgICAgIGEgdHlwZSBsaWtlIFdLQWN0aXZhdGVkRWxlbWVudEluZm8sIEkgdGhpbmsg
dGhhdCBXS0VsZW1lbnRJbmZvIHNob3VsZCBqdXN0IAorICAgICAgICBoYXZlIG1ldGhvZHMgdG8g
YW5zd2VyIHdoZXRoZXIgb3Igbm90IGl0IGlzIGEgcGFydGljdWxhciB0eXBlIG9mIGVsZW1lbnQu
IAorICAgICAgICBUaGlzIHdheSB3ZSBkb27igJl0IGhhdmUgdG8gd29ycnkgYWJvdXQgaGF2aW5n
IGEgV0tFbGVtZW50SW5mbyB0aGF0IHJlcHJlc2VudGVkIAorICAgICAgICBib3RoIGEgbGluayBB
TkQgYW4gaW1hZ2UuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5m
by5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8ubW06Cisg
ICAgICAgICgtW19XS0VsZW1lbnRJbmZvIF9pbml0V2l0aFVSTDpdKToKKyAgICAgICAgKC1bX1dL
RWxlbWVudEluZm8gY29weVdpdGhab25lOl0pOgorICAgICAgICAoLVtfV0tFbGVtZW50SW5mbyBV
UkxdKToKKyAgICAgICAgKC1bX1dLRWxlbWVudEluZm8gaXNMaW5rXSk6CisKKyAgICAgICAgQWRk
ZWQgYSBjb25zdHJ1Y3RvciBmb3IgV0tFbGVtZW50SW5mbyBzbyB0aGF0IEkgY2FuIHN0YXJ0IHVz
aW5nIGl0LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm9JbnRl
cm5hbC5oOiBBZGRlZC4KKworICAgICAgICBSaWdodCBub3csIG5vdGhpbmcgZGlmZmVyZW50aWF0
ZXMgYSBfV0tQcmV2aWV3aW5nRWxlbWVudEluZm8gZnJvbSBhIAorICAgICAgICBfV0tFbGVtZW50
SW5mbywgYnV0IHRoYXQgY291bGQgY2hhbmdlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvLm1tOiBBZGRlZC4KKworICAgICAg
ICBJbnZva2UgcHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDogZm9yIGFsbCBwb3Rl
bnRpYWxseSBwcmV2aWV3LWFibGUgCisgICAgICAgIGVsZW1lbnRzLCB3aGljaCB3aWxsIGJlIGxp
bWl0ZWQgdG8gbGlua3MgYW5kIGltYWdlcyB3aXRoIHRoZSB3YXkgZXZlcnl0aGluZyAKKyAgICAg
ICAgaXMgaW1wbGVtZW50ZWQgYXQgdGhpcyB0aW1lLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9w
cmVzZW50ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjpdKToKKworICAg
ICAgICBJbnZva2UgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6Y29tbWl0UHJldmlldzpdKToKKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTUtMTEtMTMg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBQcm92aWRlIGEgd2F5IHRvIG92ZXJyaWRlIHRoZSBXS1dlYlZpZXcgcmVtb3RlIGlu
c3BlY3RvciBuYW1lCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNpb24gMTkyNDQyKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDEyICszMCwxNCBAQAogI2ltcG9ydCA8V2ViS2l0L1dLU2Vj
dXJpdHlPcmlnaW4uaD4KICNpbXBvcnQgPFdlYktpdC9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5o
PgogCitAY2xhc3MgVUlQcmV2aWV3QWN0aW9uSXRlbTsKIEBjbGFzcyBVSVNjcm9sbFZpZXc7CiBA
Y2xhc3MgVUlWaWV3Q29udHJvbGxlcjsKIEBjbGFzcyBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZv
OwogQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvOwogQGNsYXNzIF9XS0VsZW1lbnRBY3Rp
b247CiBAY2xhc3MgX1dLRnJhbWVIYW5kbGU7CitAY2xhc3MgX1dLUHJldmlld0VsZW1lbnRJbmZv
OwogCiBAcHJvdG9jb2wgV0tVSURlbGVnYXRlUHJpdmF0ZSA8V0tVSURlbGVnYXRlPgogCkBAIC03
Miw2ICs3NCwxMSBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAoVUlFZGdlSW5zZXRzKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZpbmFsT2JzY3VyZWRJbnNldHNGb3JTY3JvbGxWaWV3
OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxvY2l0
eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9mZnNl
dCBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CiAtIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAq
KXVybCBkZWZhdWx0QWN0aW9uczooV0tfQVJSQVkoX1dLRWxlbWVudEFjdGlvbiAqKSAqKWFjdGlv
bnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tf
QVZBSUxBQkxFKE5BLCA5XzApOwogLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckFuaW1hdGVkSW1hZ2VBdFVS
TDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KFdLX0FSUkFZKF9XS0VsZW1lbnRBY3Rpb24g
KikgKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1l
bnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdlU2l6ZSBXS19BVkFJTEFCTEUoTkEsIDlfMCk7
CisKKy8vIENsaWVudHMgdGhhdCB3YW50IHRvIG1haW50YWluIGRlZmF1bHQgYmVoYXZpb3IgY2Fu
IHJldHVybiBuaWwuIFRvIGRpc2FibGUgcHJldmlldyBvbiB0aGlzIGVsZW1lbnQgZW50aXJlbHks
CisvLyByZXR1cm4gTlNOdWxsLiBUbyBkbyBzb21ldGhpbmcgY3VzdG9tLCByZXR1cm4gYSBVSVZp
ZXdDb250cm9sbGVyIHdpdGggdGhlIHByZXZpZXdlZCBjb250ZW50LiAKKy0gKFVJVmlld0NvbnRy
b2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3aW5nVmlld0NvbnRy
b2xsZXJGb3JFbGVtZW50OihfV0tQcmV2aWV3RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBkZWZh
dWx0QWN0aW9uczooTlNBcnJheTxVSVByZXZpZXdBY3Rpb25JdGVtICo+ICopcHJldmlld0FjdGlv
bnMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250
cm9sbGVyICopcHJldmlld2luZ1ZpZXdDb250cm9sbGVyIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9T
X1RCQSk7CiAjZWxzZQogLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
Y29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKIC0gKE5TTWVu
dSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKilt
ZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJ
bmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBOQSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1l
bnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFbGVtZW50SW5mby5oCShyZXZpc2lvbiAxOTI0NDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDYgKzMyLDEwIEBAIFdLX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBXS19DTEFTU19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkKIEBpbnRlcmZhY2UgX1dLRWxlbWVudEluZm8gOiBOU09i
amVjdCA8TlNDb3B5aW5nPgogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wg
aXNMaW5rOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpVUkw7CisK
IEBlbmQKIAogV0tfQVNTVU1FX05PTk5VTExfRU5ECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDE5
MjQ0MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudElu
Zm8ubW0JKHdvcmtpbmcgY29weSkKQEAgLTIzLDE4ICsyMyw0MiBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJfV0tFbGVtZW50SW5mby5oIgorI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJfV0tFbGVt
ZW50SW5mb0ludGVybmFsLmgiCisKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lmIFdL
X0FQSV9FTkFCTEVECiAKLUBpbXBsZW1lbnRhdGlvbiBfV0tFbGVtZW50SW5mbworQGltcGxlbWVu
dGF0aW9uIF9XS0VsZW1lbnRJbmZvICB7CisgICAgUmV0YWluUHRyPE5TVVJMPiBfVVJMOworfQor
CistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoVVJMOihOU1VSTCAqKXVybAoreworICAgIGlmICgh
KHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX1VSTCA9
IGFkb3B0TlMoW3VybCBjb3B5XSk7CisKKyAgICByZXR1cm4gc2VsZjsKK30KIAogLSAoaWQpY29w
eVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7CiAgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07CiB9
CiAKKy0gKE5TVVJMICopVVJMCit7CisgICAgcmV0dXJuIF9VUkwuZ2V0KCk7Cit9CisKKy0gKEJP
T0wpaXNMaW5rCit7CisgICAgcmV0dXJuIF9VUkwgIT0gbmlsOworfQorCiBAZW5kCiAKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5m
b0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50SW5mb0ludGVybmFsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiX1dLRWxlbWVu
dEluZm8uaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKK0BpbnRlcmZhY2UgX1dLRWxlbWVudElu
Zm8gKCkKKworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFVSTDooTlNVUkwgKil1cmw7CisKK0Bl
bmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
ZXZpZXdFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBXS19BUElfRU5B
QkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCisKKyNpbXBvcnQgPFdlYktpdC9fV0tFbGVtZW50SW5m
by5oPgorCitXS19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitXS19DTEFTU19BVkFJTEFCTEUoTkEs
IFdLX0lPU19UQkEpCitAaW50ZXJmYWNlIF9XS1ByZXZpZXdFbGVtZW50SW5mbyA6IF9XS0VsZW1l
bnRJbmZvCisKK0BlbmQKKworV0tfQVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8u
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQ
cmV2aWV3RWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJfV0tQcmV2aWV3RWxlbWVudEluZm8uaCIKKworI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgor
CisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oSU9TKQorCitAaW1wbGVtZW50YXRpb24g
X1dLUHJldmlld0VsZW1lbnRJbmZvCisKK0BlbmQKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQkocmV2aXNpb24gMTkyNDQyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDkgKzUzLDEx
IEBACiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94
eS5oIgogI2ltcG9ydCAiX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oIgorI2ltcG9y
dCAiX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLRm9jdXNlZEVsZW1lbnRJ
bmZvLmgiCiAjaW1wb3J0ICJfV0tGb3JtSW5wdXRTZXNzaW9uLmgiCiAjaW1wb3J0ICJfV0tJbnB1
dERlbGVnYXRlLmgiCisjaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVudEluZm8uaCIKICNpbXBvcnQg
PENvcmVUZXh0L0NURm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5o
PgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CkBAIC0zNTQ0LDYg
KzM1NDYsMjAgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udAogICAg
IFVSTCBjb3JlVGFyZ2V0VVJMID0gdGFyZ2V0VVJMOwogICAgIGJvb2wgaXNWYWxpZFVSTEZvcklt
YWdlUHJldmlldyA9ICFjb3JlVGFyZ2V0VVJMLmlzRW1wdHkoKSAmJiAoV2ViQ29yZTo6cHJvdG9j
b2xJc0luSFRUUEZhbWlseShjb3JlVGFyZ2V0VVJMKSB8fCBXZWJDb3JlOjpwcm90b2NvbElzKGNv
cmVUYXJnZXRVUkwsICJkYXRhIikpOwogCisgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvPiBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBh
bGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsgVVJMOnRhcmdl
dFVSTCBsb2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi5wb2ludCB0aXRsZTpfcG9zaXRpb25J
bmZvcm1hdGlvbi50aXRsZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpf
cG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZS5nZXQoKV0pOworCisgICAgUmV0YWluUHRyPE5TQXJy
YXk+IGFjdGlvbnMgPSBuaWw7CisgICAgaWYgKFtfcHJldmlld0l0ZW1Db250cm9sbGVyIHR5cGVd
ID09IFVJUHJldmlld0l0ZW1UeXBlTGluaykKKyAgICAgICAgYWN0aW9ucyA9IFtfYWN0aW9uU2hl
ZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCld
OworICAgIGVsc2UgaWYgKFtfcHJldmlld0l0ZW1Db250cm9sbGVyIHR5cGVdID09IFVJUHJldmll
d0l0ZW1UeXBlSW1hZ2UpCisgICAgICAgIGFjdGlvbnMgPSBbX2FjdGlvblNoZWV0QXNzaXN0YW50
IGRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDplbGVtZW50SW5mby5nZXQoKV07CisKKyAgICBp
ZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmV2
aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildKSB7CisgICAg
ICAgIGF1dG8gcHJldmlld0VsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS1ByZXZpZXdFbGVtZW50
SW5mbyBhbGxvY10gX2luaXRXaXRoVVJMOnRhcmdldFVSTF0pOworICAgICAgICBpZiAoVUlWaWV3
Q29udHJvbGxlciAqY29udHJvbGxlciA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHBy
ZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZvLmdldCgp
IGRlZmF1bHRBY3Rpb25zOmFjdGlvbnMuZ2V0KCldKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRy
b2xsZXI7CisgICAgfQorCiAgICAgaWYgKFtfcHJldmlld0l0ZW1Db250cm9sbGVyIHR5cGVdID09
IFVJUHJldmlld0l0ZW1UeXBlTGluaykgewogICAgICAgICBfaGlnaGxpZ2h0TG9uZ1ByZXNzQ2Fu
Q2xpY2sgPSBOTzsKICAgICAgICAgX3BhZ2UtPnN0YXJ0SW50ZXJhY3Rpb25XaXRoRWxlbWVudEF0
UG9zaXRpb24oX3Bvc2l0aW9uSW5mb3JtYXRpb24ucG9pbnQpOwpAQCAtMzU1OCw5ICszNTc0LDYg
QEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udAogICAgICAgICAgICAg
fQogICAgICAgICB9CiAKLSAgICAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
PiBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10g
X2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmsgVVJMOnRhcmdldFVSTCBs
b2NhdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbi5wb2ludCB0aXRsZTpfcG9zaXRpb25JbmZvcm1h
dGlvbi50aXRsZSByZWN0Ol9wb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kcyBpbWFnZTpfcG9zaXRp
b25JbmZvcm1hdGlvbi5pbWFnZS5nZXQoKV0pOwotCi0gICAgICAgIFJldGFpblB0cjxOU0FycmF5
PiBhY3Rpb25zID0gW19hY3Rpb25TaGVldEFzc2lzdGFudCBkZWZhdWx0QWN0aW9uc0ZvckxpbmtT
aGVldDplbGVtZW50SW5mby5nZXQoKV07CiAgICAgICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZpZXdWaWV3Q29udHJvbGxlckZvclVS
TDpkZWZhdWx0QWN0aW9uczplbGVtZW50SW5mbzopXSkKICAgICAgICAgICAgIHJldHVybiBbdWlE
ZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6dGFy
Z2V0VVJMIGRlZmF1bHRBY3Rpb25zOmFjdGlvbnMuZ2V0KCkgZWxlbWVudEluZm86ZWxlbWVudElu
Zm8uZ2V0KCldOwogCkBAIC0zNTk4LDYgKzM2MTEsMTEgQEAgLSAodm9pZClfcHJldmlld0l0ZW1D
b250cm9sbGVyOihVSVByZXZpZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFt1
aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y29tbWl0UHJl
dmlld2luZ1ZpZXdDb250cm9sbGVyOildKSB7CisgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3
Ol93ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjp2aWV3Q29udHJvbGxlcl07
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjb21taXRQcmV2aWV3ZWRWaWV3Q29udHJvbGxl
cjopXSkgewogICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2
aWV3ZWRWaWV3Q29udHJvbGxlcjp2aWV3Q29udHJvbGxlcl07CiAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDE5MjQ0MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTIzMCw2ICsxMjMwLDkgQEAKIAkJ
OTM1RUVCQTQxMjc3NjFENjAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1
RUVCOTIxMjc3NjE1RDAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRl
bS5oICovOyB9OwogCQk5MzkxRjJDQTEyMUI2NzlBMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTFGMjg0MTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Lm1tICovOyB9OwogCQk5MzkxRjJDQjEyMUI2N0FEMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCAqLzsgfTsKKwkJOTM5NUU2OEExQkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50
SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzOTVFNjhDMUJGMkMz
NTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1RTY4QjFCRjJDMzUyMDBGNDlCQ0UgLyog
X1dLUHJldmlld0VsZW1lbnRJbmZvLm1tICovOyB9OworCQk5Mzk1RTY4RTFCRjQxMEZEMDBGNDlC
Q0UgLyogX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2OEQxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1l
bnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5QUU3NjYxMzE2RTk5QzAwQUUwNkE2IC8qIFdl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzlBRTc2NTEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcCAqLzsgfTsKIAkJOTM5RjQwMUMxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9u
TWVudVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzlGNDAxQjE5RkIwQkJDMDAyQjJCNDIgLyogV0tBY3Rpb25NZW51VHlwZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4OEIzMDFCQzZF
OTk3MDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0E4OEIyRTFCQzZFOThGMDBBQkE1QzIgLyog
V2ViSGl0VGVzdFJlc3VsdERhdGEubW0gKi87IH07CkBAIC0zNDczLDYgKzM0NzYsOSBAQAogCQk5
MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxRjI4MzEyMUIzOEY1MDBF
QkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzOTFGMjg0MTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tQcmV2aWV3RWxlbWVudEluZm8uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8q
IF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM5NUU2OEQxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRWxlbWVudEluZm9JbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlBRTc2NTEzMTZFOTlDMDBB
RTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzOUY0MDFCMTlGQjBCQkMwMDJCMkI0MiAvKiBXS0FjdGlvbk1lbnVU
eXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FjdGlvbk1lbnVUeXBl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0E4OEIyRTFCQzZFOThGMDBBQkE1
QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0RGF0YS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTUzOTAsNiArNTM5Niw3IEBACiAJCQkJMzc5QTg3M0IxOEJCRkYwNzAwNTg4
QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5oICovLAogCQkJCTFBNTcwNEYwMUJFMDE3
M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5oICovLAogCQkJCTFBNTcwNEVGMUJFMDE3M0Yw
MDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5tbSAqLywKKwkJCQk5Mzk1RTY4RDFCRjQxMEZEMDBG
NDlCQ0UgLyogX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oICovLAogCQkJCTFBRDAxQkM3MTkwNUQz
N0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5oICovLAogCQkJCTFBRDAx
QkM2MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292ZXJ5QXR0ZW1wdGluZy5tbSAqLywK
IAkJCQkwMDVEMTU4RTE4RTRDNEVCMDA3MzQ2MTkgLyogX1dLRmluZERlbGVnYXRlLmggKi8sCkBA
IC01NDAwLDYgKzU0MDcsOCBAQAogCQkJCTM3QTY0RTU0MThGMzhFM0MwMEVCMzBGMSAvKiBfV0tJ
bnB1dERlbGVnYXRlLmggKi8sCiAJCQkJMkQ3OTBBOUMxQUQ3MDUwRDAwQUI5MEIzIC8qIF9XS0xh
eW91dE1vZGUuaCAqLywKIAkJCQk5MzIzNjExRDFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3Zlcmxh
eVNjcm9sbGJhclN0eWxlLmggKi8sCisJCQkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIF9X
S1ByZXZpZXdFbGVtZW50SW5mby5oICovLAorCQkJCTkzOTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAv
KiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gKi8sCiAJCQkJMUE0M0U4MjgxODhGM0NEQzAwOUU0
RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTFBNDNFODI3MTg4
RjNDREMwMDlFNEQzMCAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gKi8sCiAJCQkJ
N0M4OUQyRDYxQTZDNkJFNjAwM0E1RkRFIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbklu
dGVybmFsLmggKi8sCkBAIC03NzAwLDYgKzc3MDksNyBAQAogCQkJCTdDMUJBMzNFMUE0QTBFNjAw
MDQzRTI0OSAvKiBBUElEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjdEMzZDMTE4
REE1MTNGMDBEOUQ2NTkgLyogQVBJRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNkE0QTVEMTIwQTJDQ0QwMEMwNUI3RiAvKiBBUElFcnJvci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTM5NUU2OEUxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTAwQjk2NjE2MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ2N0EyRTFCRDgxOTczMDA1M0IyNTEgLyogQVBJ
RmluZE1hdGNoZXNDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3RTI1RDZFMThGREU1RDYw
MDVEM0EwMCAvKiBBUElGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTc4ODAsNiArNzg5
MCw3IEBACiAJCQkJMUFBNTg4OTIxMUVFNzA0MDAwNjFCODgyIC8qIE5ldHNjYXBlUGx1Z2luU3Ry
ZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTc5OEM3QTE2RTY4MTg4MDAyNDAxMzkgLyogTmV0
d29ya0Jsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0MzZFQ0MxQTBEMDQwQjAw
RUFEMjA0IC8qIE5ldHdvcmtDYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5NUU2OEExQkYy
QzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTQ5RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFNDg5RDI4QTFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0Nh
Y2hlQ29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODlEMjhDMUEwQTJEQjgwMDc4QzA2QSAv
KiBOZXR3b3JrQ2FjaGVDb2RlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtOTgwNyw2ICs5ODE4LDcg
QEAKIAkJCQlFMUNDMUI5MTEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzc3MTZBNUExOTVCOTEwNTAwRUU4QjFCIC8qIFByb2Nlc3NBc3NlcnRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZGOTUzNjQxOEZGNTgzQzAwMURCMkVGIC8qIFBy
b2Nlc3NBc3NlcnRpb25JT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk5Mzk1RTY4QzFCRjJDMzUy
MDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUFFMTE3RjYxMURCQjMwOTAwOTgxNjE1IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzExMUIxRDExMkY1RkU2MDAzMzdCQUIgLyogUHJvY2Vzc0xhdW5jaGVyTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODZFNjdBMjYxOTEwQjlEOTAwMDA0QUI3IC8qIFByb2Nl
c3NUaHJvdHRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265523</attachid>
            <date>2015-11-13 18:09:48 -0800</date>
            <delta_ts>2015-11-14 14:21:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review3.txt</filename>
            <type>text/plain</type>
            <size>25547</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MjQ1MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE1LTExLTEzICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgU1BJIGZvciBoYW5kbGluZyBp
bmxpbmUgbGluayBuYXZpZ2F0aW9uIGZvciBwZWVrL3BvcAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMjcwCisgICAgICAgIC1hbmQgY29ycmVzcG9u
ZGluZy0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjIyMzM3MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhyZWUgbmV3
IFNQSSBtZXRob2RzLiBJZiBhIGNsaWVudCB3YW50cyB0byBkaXNhYmxlIHByZXZpZXdzIAorICAg
ICAgICBlbnRpcmVseSBmb3IgdGhlIGdpdmVuIGVsZW1lbnQsIHRoZXkgc2hvdWxkIHJldHVybiBO
TyBpbiAKKyAgICAgICAgc2hvdWxkUHJldmlld0VsZW1lbnQ6LiBSZXR1cm5pbmcgTk8gaW4gc2hv
dWxkUHJldmlld0VsZW1lbnQgd2lsbCBwcmV2ZW50IHRoZSAKKyAgICAgICAgb3RoZXIgbWV0aG9k
cyBmcm9tIGJlaW5nIGludm9rZWQuIFRoZSBjbGllbnQgY2FuIHByb3ZpZGUgYSBjdXN0b20gcHJl
dmlldyBieSAKKyAgICAgICAgcmV0dXJuaW5nIHRoZWlyIG93biBVSVZpZXdDb250cm9sbGVyIGZy
b20gCisgICAgICAgIHByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFj
dGlvbnM6LiBSZXR1cm5pbmcgbmlsIHdpbGwgcmVzdWx0IAorICAgICAgICBpbiB0aGUgZGVmYXVs
dCBwcmV2aWV3IGJlaGF2aW9yIGZvciB0aGF0IGVsZW1lbnQuIFRoaXMgd2lsbCBhbGxvdyBjbGll
bnRzIHRvIAorICAgICAgICBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gaGFuZGxlIGh0dHAgbGlu
ayBuYXZpZ2F0aW9uIGlubGluZSwgYnV0IHN0aWxsIG9wdCAKKyAgICAgICAgaW50byBVSUtpdOKA
mXMgYnVpbHQtaW4gRGF0YURldGVjdG9ycyBiZWhhdmlvcnMgZm9yIEREIGxpbmtzIG9uY2Ugd2Ug
c3RhcnQgCisgICAgICAgIHN1cHBvcnRpbmcgREQgbGlua3MgaW4gV0syLiAKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICBBZGRl
ZCBsaW5rVVJMIHRvIF9XS0VsZW1lbnRJbmZvLiBsaW5rVVJMIHdpbGwgYmUgbmlsIGZvciBlbGVt
ZW50cyB0aGF0IGFyZSAKKyAgICAgICAgbm90IGxpbmtzLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRWxlbWVudEluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS0VsZW1lbnRJbmZvLm1tOgorICAgICAgICAoLVtfV0tFbGVtZW50SW5mbyBjb3B5V2l0aFpv
bmU6XSk6CisgICAgICAgICgtW19XS0VsZW1lbnRJbmZvIGxpbmtVUkxdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaDogQWRkZWQuCisKKyAg
ICAgICAgX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvIGluaGVyaXRzIGZyb20gX1dLRWxlbWVudElu
Zm8uIEFkZGVkIGEgY29uc3RydWN0b3IuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcmV2aWV3RWxlbWVudEluZm8uaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW06IEFkZGVkLgorICAgICAgICAoLVtfV0tQcmV2
aWV3RWxlbWVudEluZm8gX2luaXRXaXRoTGlua1VSTDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmg6IEFkZGVkLgorCisgICAg
ICAgIEludm9rZSBzaG91bGRQcmV2aWV3RWxlbWVudDouCisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2ludGVyYWN0aW9uU2hvdWxkQmVnaW5Gcm9tUHJldmlld0l0ZW1Db250cm9sbGVyOmZvclBvc2l0
aW9uOl0pOgorCisgICAgICAgIEludm9rZSBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVt
ZW50OiBmb3IgYWxsIHBvdGVudGlhbGx5IHByZXZpZXctYWJsZSAKKyAgICAgICAgZWxlbWVudHMg
dGhhdCBoYXZlIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMsIHdoaWNoIHdpbGwgYmUgbGltaXRl
ZCB0byBsaW5rcyAKKyAgICAgICAgYXQgdGhpcyB0aW1lLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9wcmVzZW50ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjpdKToK
KworICAgICAgICBJbnZva2UgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6Y29tbWl0UHJldmlldzpd
KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTUt
MTEtMTMgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFRyeSB0byBmaXggdGhlIDMyLWJpdCBidWlsZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJl
dmlzaW9uIDE5MjQ0MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTQgQEAKICNp
bXBvcnQgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8uaD4KIAorQGNsYXNzIFVJUHJldmlld0FjdGlvbkl0ZW07CiBAY2xh
c3MgVUlTY3JvbGxWaWV3OwogQGNsYXNzIFVJVmlld0NvbnRyb2xsZXI7CiBAY2xhc3MgX1dLQ29u
dGV4dE1lbnVFbGVtZW50SW5mbzsKIEBjbGFzcyBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbzsKIEBj
bGFzcyBfV0tFbGVtZW50QWN0aW9uOwogQGNsYXNzIF9XS0ZyYW1lSGFuZGxlOworQGNsYXNzIF9X
S1ByZXZpZXdFbGVtZW50SW5mbzsKIAogQHByb3RvY29sIFdLVUlEZWxlZ2F0ZVByaXZhdGUgPFdL
VUlEZWxlZ2F0ZT4KIApAQCAtNzIsNiArNzQsMTUgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0g
KFVJRWRnZUluc2V0cylfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmaW5hbE9ic2N1cmVk
SW5zZXRzRm9yU2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2Np
dHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAq
KXRhcmdldENvbnRlbnRPZmZzZXQgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwogLSAoVUlWaWV3Q29u
dHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJv
bGxlckZvclVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KFdLX0FSUkFZKF9XS0VsZW1l
bnRBY3Rpb24gKikgKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqKWVsZW1lbnRJbmZvIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKIC0gKFVJVmlld0NvbnRyb2xs
ZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJG
b3JBbmltYXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihXS19BUlJB
WShfV0tFbGVtZW50QWN0aW9uICopICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBpbWFnZVNpemU6KENHU2l6ZSlpbWFnZVNpemUgV0tf
QVZBSUxBQkxFKE5BLCA5XzApOworCisvLyBJZiBhIGNsaWVudCB3YW50cyB0byBkaXNhYmxlIHBy
ZXZpZXdzIGVudGlyZWx5IGZvciB0aGUgZ2l2ZW4gZWxlbWVudCwgdGhleSBzaG91bGQgcmV0dXJu
IE5PIGluCisvLyBzaG91bGRQcmV2aWV3RWxlbWVudC4gUmV0dXJuaW5nIE5PIGluIHNob3VsZFBy
ZXZpZXdFbGVtZW50IHdpbGwgcHJldmVudCB0aGUgb3RoZXIgbWV0aG9kcyBmcm9tIGJlaW5nIGlu
dm9rZWQuCisvLyBUaGUgY2xpZW50IGNhbiBwcm92aWRlIGEgY3VzdG9tIHByZXZpZXcgYnkgcmV0
dXJuaW5nIHRoZWlyIG93biBVSVZpZXdDb250cm9sbGVyIGZyb20KKy8vIHByZXZpZXdpbmdWaWV3
Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6LiBSZXR1cm5pbmcgbmlsIHdpbGwg
cmVzdWx0IGluIHRoZSBkZWZhdWx0IHByZXZpZXcgYmVoYXZpb3IKKy8vIGZvciB0aGF0IGVsZW1l
bnQuCistIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFByZXZpZXdF
bGVtZW50OihfV0tQcmV2aWV3RWxlbWVudEluZm8gKikgZWxlbWVudEluZm87CistIChVSVZpZXdD
b250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld2luZ1ZpZXdD
b250cm9sbGVyRm9yRWxlbWVudDooX1dLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudEluZm8g
ZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8VUlQcmV2aWV3QWN0aW9uSXRlbSAqPiAqKXByZXZpZXdB
Y3Rpb25zIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjooVUlWaWV3
Q29udHJvbGxlciAqKXByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIFdL
X0lPU19UQkEpOwogI2Vsc2UKIC0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51
RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CiAtIChO
U01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51
ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCB1
c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgTkEpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
bGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRWxlbWVudEluZm8uaAkocmV2aXNpb24gMTkyNDQyKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw4IEBAIFdLX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBXS19DTEFTU19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkKIEBpbnRlcmZhY2UgX1dLRWxlbWVudEluZm8gOiBO
U09iamVjdCA8TlNDb3B5aW5nPgogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
VVJMICpsaW5rVVJMOworCiBAZW5kCiAKIFdLX0FTU1VNRV9OT05OVUxMX0VORApJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
Lm1tCShyZXZpc2lvbiAxOTI0NDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0VsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIl9XS0VsZW1lbnRJbmZvLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAK
QEAgLTM1LDYgKzM1LDExIEBAIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQogICAg
IHJldHVybiBbc2VsZiByZXRhaW5dOwogfQogCistIChOU1VSTCAqKWxpbmtVUkwKK3sKKyAgICBy
ZXR1cm4gX2xpbmtVUkwuZ2V0KCk7Cit9CisKIEBlbmQKIAogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJfV0tFbGVtZW50SW5mby5oIgorCisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitAaW50ZXJmYWNl
IF9XS0VsZW1lbnRJbmZvICgpIHsKK0BwYWNrYWdlCisgICAgUmV0YWluUHRyPE5TVVJMPiBfbGlu
a1VSTDsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3
RWxlbWVudEluZm8uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKwor
I2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworI2ltcG9ydCA8V2ViS2l0
L19XS0VsZW1lbnRJbmZvLmg+CisKK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK1dLX0NMQVNT
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKK0BpbnRlcmZhY2UgX1dLUHJldmlld0VsZW1lbnRJ
bmZvIDogX1dLRWxlbWVudEluZm8KKworQGVuZAorCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZp
ZXdFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCisKKyNpbXBv
cnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKKworQGltcGxlbWVudGF0aW9u
IF9XS1ByZXZpZXdFbGVtZW50SW5mbworCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoTGlua1VS
TDooTlNVUkwgKil1cmwKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKworICAgIF9saW5rVVJMID0gYWRvcHROUyhbdXJsIGNvcHldKTsKKwor
ICAgIHJldHVybiBzZWxmOworfQorCitAZW5kCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiX1dLUHJldmll
d0VsZW1lbnRJbmZvLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCitAaW50ZXJmYWNlIF9XS1By
ZXZpZXdFbGVtZW50SW5mbyAoKQorCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoTGlua1VSTDoo
TlNVUkwgKil1cmw7CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMTkyNDQyKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTU2
LDYgKzU2LDcgQEAKICNpbXBvcnQgIl9XS0ZvY3VzZWRFbGVtZW50SW5mby5oIgogI2ltcG9ydCAi
X1dLRm9ybUlucHV0U2Vzc2lvbi5oIgogI2ltcG9ydCAiX1dLSW5wdXREZWxlZ2F0ZS5oIgorI2lt
cG9ydCAiX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgPENvcmVUZXh0
L0NURm9udC5oPgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250RGVzY3JpcHRvci5oPgogI2ltcG9y
dCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CkBAIC0zNDc4LDExICszNDc5LDE2
IEBAIC0gKEJPT0wpX2ludGVyYWN0aW9uU2hvdWxkQmVnaW5Gcm9tUHJldmkKICAgICAKICAgICBT
dHJpbmcgYWJzb2x1dGVMaW5rVVJMID0gX3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsOwogICAgIGlm
IChfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmspIHsKKyAgICAgICAgTlNVUkwgKnRhcmdldFVS
TCA9IFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJs
XTsKKyAgICAgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNf
Y2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFtfd2ViVmlldyBVSURlbGVnYXRlXSk7Cisg
ICAgICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OnNob3VsZFByZXZpZXdFbGVtZW50OildKSB7CisgICAgICAgICAgICBhdXRvIHByZXZpZXdF
bGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tQcmV2aWV3RWxlbWVudEluZm8gYWxsb2NdIF9pbml0
V2l0aExpbmtVUkw6dGFyZ2V0VVJMXSk7CisgICAgICAgICAgICByZXR1cm4gW3VpRGVsZWdhdGUg
X3dlYlZpZXc6X3dlYlZpZXcgc2hvdWxkUHJldmlld0VsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZv
LmdldCgpXTsKKyAgICAgICAgfQogICAgICAgICBpZiAoYWJzb2x1dGVMaW5rVVJMLmlzRW1wdHko
KSkKICAgICAgICAgICAgIHJldHVybiBOTzsKICAgICAgICAgaWYgKFdlYkNvcmU6OnByb3RvY29s
SXNJbkhUVFBGYW1pbHkoYWJzb2x1dGVMaW5rVVJMKSkKICAgICAgICAgICAgIHJldHVybiBZRVM7
Ci0gICAgICAgIE5TVVJMICp0YXJnZXRVUkwgPSBbTlNVUkwgX3dlYl9VUkxXaXRoV1RGU3RyaW5n
Ol9wb3NpdGlvbkluZm9ybWF0aW9uLnVybF07CiAgICAgICAgIGlmIChbW2dldERERGV0ZWN0aW9u
Q29udHJvbGxlckNsYXNzKCkgdGFwQW5kSG9sZFNjaGVtZXNdIGNvbnRhaW5zT2JqZWN0Olt0YXJn
ZXRVUkwgc2NoZW1lXV0pCiAgICAgICAgICAgICByZXR1cm4gWUVTOwogICAgICAgICByZXR1cm4g
Tk87CkBAIC0zNTYxLDYgKzM1NjcsMTIgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50
ZWRWaWV3Q29udAogICAgICAgICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVudEluZm8+IGVs
ZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFsbG9jXSBfaW5p
dFdpdGhUeXBlOl9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluayBVUkw6dGFyZ2V0VVJMIGxvY2F0
aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9ybWF0aW9u
LnRpdGxlIHJlY3Q6X3Bvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbklu
Zm9ybWF0aW9uLmltYWdlLmdldCgpXSk7CiAKICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IGFj
dGlvbnMgPSBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0
OmVsZW1lbnRJbmZvLmdldCgpXTsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxl
bWVudDpkZWZhdWx0QWN0aW9uczopXSkgeworICAgICAgICAgICAgYXV0byBwcmV2aWV3RWxlbWVu
dEluZm8gPSBhZG9wdE5TKFtbX1dLUHJldmlld0VsZW1lbnRJbmZvIGFsbG9jXSBfaW5pdFdpdGhM
aW5rVVJMOnRhcmdldFVSTF0pOworICAgICAgICAgICAgaWYgKFVJVmlld0NvbnRyb2xsZXIgKmNv
bnRyb2xsZXIgPSBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBwcmV2aWV3aW5nVmlld0Nv
bnRyb2xsZXJGb3JFbGVtZW50OnByZXZpZXdFbGVtZW50SW5mby5nZXQoKSBkZWZhdWx0QWN0aW9u
czphY3Rpb25zLmdldCgpXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gY29udHJvbGxlcjsKKyAg
ICAgICAgfQorCiAgICAgICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OnByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDpkZWZhdWx0QWN0aW9u
czplbGVtZW50SW5mbzopXSkKICAgICAgICAgICAgIHJldHVybiBbdWlEZWxlZ2F0ZSBfd2ViVmll
dzpfd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6dGFyZ2V0VVJMIGRlZmF1bHRB
Y3Rpb25zOmFjdGlvbnMuZ2V0KCkgZWxlbWVudEluZm86ZWxlbWVudEluZm8uZ2V0KCldOwogCkBA
IC0zNTk4LDYgKzM2MTAsMTEgQEAgLSAodm9pZClfcHJldmlld0l0ZW1Db250cm9sbGVyOihVSVBy
ZXZpZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y29tbWl0UHJldmlld2luZ1ZpZXdDb250
cm9sbGVyOildKSB7CisgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGNvbW1p
dFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjp2aWV3Q29udHJvbGxlcl07CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlldzpjb21taXRQcmV2aWV3ZWRWaWV3Q29udHJvbGxlcjopXSkgewogICAgICAg
ICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2aWV3ZWRWaWV3Q29udHJv
bGxlcjp2aWV3Q29udHJvbGxlcl07CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE5
MjQ0MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTIyOCw4ICsxMjI4LDEyIEBACiAJCTkzNUVFQkEyMTI3NzYx
RDAwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTAxMjc3NjE1RDAwMzMy
MkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi87IH07CiAJCTkzNUVFQkEz
MTI3NzYxRDMwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTEx
Mjc3NjE1RDAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAg
Ki87IH07CiAJCTkzNUVFQkE0MTI3NzYxRDYwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tG
b3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNUVFQjkyMTI3NzYxNUQwMDMzMjJCOCAvKiBJbmplY3RlZEJ1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uaCAqLzsgfTsKKwkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1By
ZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5MUYyQ0ExMjFCNjc5QTAwRUJGN0U4IC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5tbSAqLzsgfTsKIAkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJGN0U4IC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggKi87IH07CisJCTkzOTVFNjhBMUJGMkMzMzIwMEY0OUJDRSAvKiBf
V0tQcmV2aWV3RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzOTVFNjg5MUJGMkMzMzIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVu
dEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5Mzk1RTY4QzFCRjJDMzUyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2OEIxQkYy
QzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSAqLzsgfTsKKwkJOTM5NUU2
OEUxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTVFNjhEMUJGNDEwRkQwMEY0
OUJDRSAvKiBfV0tFbGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CiAJCTkzOUFFNzY2MTMxNkU5
OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QUU3NjUxMzE2RTk5QzAwQUUwNkE2IC8q
IFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgKi87IH07CiAJCTkzOUY0MDFDMTlGQjBCQkMwMDJC
MkI0MiAvKiBXS0FjdGlvbk1lbnVUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM5RjQwMUIxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVu
dVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTNBODhCMzAxQkM2RTk5NzAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNBODhCMkUxQkM2
RTk4RjAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLm1tICovOyB9OwpAQCAtMzQ3MSw4
ICszNDc1LDEyIEBACiAJCTkzNUVFQjk2MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tG
b3J3YXJkTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVFRUI5NzEy
Nzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRl
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk4MTI3NzYxNkQwMDMz
MjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBfV0tQcmV2aWV3
RWxlbWVudEluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFGMjg0MTIxQjM4RjUw
MEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIF9X
S1ByZXZpZXdFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tQcmV2aWV3RWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5
NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1ByZXZpZXdFbGVtZW50SW5mby5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5NUU2OEQxQkY0MTBGRDAwRjQ5QkNF
IC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzlBRTc2NTEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUY0MDFCMTlGQjBCQkMw
MDJCMkI0MiAvKiBXS0FjdGlvbk1lbnVUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS0FjdGlvbk1lbnVUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0E4OEIyRTFCQzZFOThGMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0RGF0
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzOTAsNiArNTM5OCw3IEBACiAJ
CQkJMzc5QTg3M0IxOEJCRkYwNzAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5o
ICovLAogCQkJCTFBNTcwNEYwMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5oICov
LAogCQkJCTFBNTcwNEVGMUJFMDE3M0YwMDg3NEFGMSAvKiBfV0tFbGVtZW50SW5mby5tbSAqLywK
KwkJCQk5Mzk1RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9JbnRlcm5hbC5o
ICovLAogCQkJCTFBRDAxQkM3MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJlY292ZXJ5QXR0
ZW1wdGluZy5oICovLAogCQkJCTFBRDAxQkM2MTkwNUQzN0UwMEM5QzQ1RiAvKiBfV0tFcnJvclJl
Y292ZXJ5QXR0ZW1wdGluZy5tbSAqLywKIAkJCQkwMDVEMTU4RTE4RTRDNEVCMDA3MzQ2MTkgLyog
X1dLRmluZERlbGVnYXRlLmggKi8sCkBAIC01NDAwLDYgKzU0MDksOSBAQAogCQkJCTM3QTY0RTU0
MThGMzhFM0MwMEVCMzBGMSAvKiBfV0tJbnB1dERlbGVnYXRlLmggKi8sCiAJCQkJMkQ3OTBBOUMx
QUQ3MDUwRDAwQUI5MEIzIC8qIF9XS0xheW91dE1vZGUuaCAqLywKIAkJCQk5MzIzNjExRDFCMDE1
REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggKi8sCisJCQkJOTM5NUU2
ODkxQkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oICovLAorCQkJCTkz
OTVFNjhCMUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gKi8sCisJ
CQkJOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmggKi8sCiAJCQkJMUE0M0U4MjgxODhGM0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oICovLAogCQkJCTFBNDNFODI3MTg4RjNDREMwMDlFNEQzMCAvKiBfV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gKi8sCiAJCQkJN0M4OUQyRDYxQTZDNkJFNjAwM0E1
RkRFIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbkludGVybmFsLmggKi8sCkBAIC03NzAw
LDYgKzc3MTIsNyBAQAogCQkJCTdDMUJBMzNFMUE0QTBFNjAwMDQzRTI0OSAvKiBBUElEaWN0aW9u
YXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRjdEMzZDMTE4REE1MTNGMDBEOUQ2NTkgLyogQVBJ
RG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNkE0QTVEMTIwQTJDQ0QwMEMw
NUI3RiAvKiBBUElFcnJvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5NUU2OEUxQkY0MTBGRDAw
RjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTAw
Qjk2NjE2MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQkyREQ2N0EyRTFCRDgxOTczMDA1M0IyNTEgLyogQVBJRmluZE1hdGNoZXNDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTM3RTI1RDZFMThGREU1RDYwMDVEM0EwMCAvKiBBUElGb3JtQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTc4ODAsNiArNzg5Myw3IEBACiAJCQkJMUFBNTg4OTIx
MUVFNzA0MDAwNjFCODgyIC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFtLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTc5OEM3QTE2RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTQ0MzZFQ0MxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNo
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM5NUU2OEExQkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1By
ZXZpZXdFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5RDQwRDcxQUQzRkIxNzAw
NjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
NDg5RDI4QTFBMEEyREI4MDA3OEMwNkEgLyogTmV0d29ya0NhY2hlQ29kZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU0ODlEMjhDMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2FjaGVDb2RlcnMu
aCBpbiBIZWFkZXJzICovLApAQCAtODIzMyw2ICs4MjQ3LDcgQEAKIAkJCQk5MzlGNDAxQzE5RkIw
QkJDMDAyQjJCNDIgLyogV0tBY3Rpb25NZW51VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
Q0I0RTQ4MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0FjdGlvblNoZWV0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkNCNEU0QTE4QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldEFzc2lzdGFudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIF9XS1ByZXZp
ZXdFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUZBMUVEMzE4RTEw
NjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRERCMzJEMTI0RUMyRTEwMDQ4RDEzQyAvKiBXS0FQSUNhc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMkUzNEU1MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKQEAgLTk4MDcsNiArOTgyMiw3IEBACiAJCQkJRTFDQzFCOTExMkQ3
RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NzE2
QTVBMTk1QjkxMDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg2Rjk1MzY0MThGRjU4M0MwMDFEQjJFRiAvKiBQcm9jZXNzQXNzZXJ0aW9uSU9TLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJOTM5NUU2OEMxQkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZp
ZXdFbGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBRTExN0Y2MTFEQkIzMDkwMDk4
MTYxNSAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMUQx
MTJGNUZFNjAwMzM3QkFCIC8qIFByb2Nlc3NMYXVuY2hlck1hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTg2RTY3QTI2MTkxMEI5RDkwMDAwNEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmNwcCBpbiBT
b3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265547</attachid>
            <date>2015-11-14 14:21:55 -0800</date>
            <delta_ts>2015-11-14 16:37:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-4.txt</filename>
            <type>text/plain</type>
            <size>25567</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MjQ1MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE1LTExLTEzICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgU1BJIGZvciBoYW5kbGluZyBp
bmxpbmUgbGluayBuYXZpZ2F0aW9uIGZvciBwZWVrL3BvcAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMjcwCisgICAgICAgIC1hbmQgY29ycmVzcG9u
ZGluZy0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjIyMzM3MzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgdGhyZWUgbmV3
IFNQSSBtZXRob2RzLiBJZiBhIGNsaWVudCB3YW50cyB0byBkaXNhYmxlIHByZXZpZXdzIAorICAg
ICAgICBlbnRpcmVseSBmb3IgdGhlIGdpdmVuIGVsZW1lbnQsIHRoZXkgc2hvdWxkIHJldHVybiBO
TyBpbiAKKyAgICAgICAgc2hvdWxkUHJldmlld0VsZW1lbnQ6LiBSZXR1cm5pbmcgTk8gaW4gc2hv
dWxkUHJldmlld0VsZW1lbnQgd2lsbCBwcmV2ZW50IHRoZSAKKyAgICAgICAgb3RoZXIgbWV0aG9k
cyBmcm9tIGJlaW5nIGludm9rZWQuIFRoZSBjbGllbnQgY2FuIHByb3ZpZGUgYSBjdXN0b20gcHJl
dmlldyBieSAKKyAgICAgICAgcmV0dXJuaW5nIHRoZWlyIG93biBVSVZpZXdDb250cm9sbGVyIGZy
b20gCisgICAgICAgIHByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFj
dGlvbnM6LiBSZXR1cm5pbmcgbmlsIHdpbGwgcmVzdWx0IAorICAgICAgICBpbiB0aGUgZGVmYXVs
dCBwcmV2aWV3IGJlaGF2aW9yIGZvciB0aGF0IGVsZW1lbnQuIFRoaXMgd2lsbCBhbGxvdyBjbGll
bnRzIHRvIAorICAgICAgICBpbXBsZW1lbnQgdGhpcyBtZXRob2QgdG8gaGFuZGxlIGh0dHAgbGlu
ayBuYXZpZ2F0aW9uIGlubGluZSwgYnV0IHN0aWxsIG9wdCAKKyAgICAgICAgaW50byBVSUtpdOKA
mXMgYnVpbHQtaW4gRGF0YURldGVjdG9ycyBiZWhhdmlvcnMgZm9yIEREIGxpbmtzIG9uY2Ugd2Ug
c3RhcnQgCisgICAgICAgIHN1cHBvcnRpbmcgREQgbGlua3MgaW4gV0syLiAKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICBBZGRl
ZCBsaW5rVVJMIHRvIF9XS0VsZW1lbnRJbmZvLiBsaW5rVVJMIHdpbGwgYmUgbmlsIGZvciBlbGVt
ZW50cyB0aGF0IGFyZSAKKyAgICAgICAgbm90IGxpbmtzLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRWxlbWVudEluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS0VsZW1lbnRJbmZvLm1tOgorICAgICAgICAoLVtfV0tFbGVtZW50SW5mbyBjb3B5V2l0aFpv
bmU6XSk6CisgICAgICAgICgtW19XS0VsZW1lbnRJbmZvIGxpbmtVUkxdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaDogQWRkZWQuCisKKyAg
ICAgICAgX1dLUHJldmlld2luZ0VsZW1lbnRJbmZvIGluaGVyaXRzIGZyb20gX1dLRWxlbWVudElu
Zm8uIEFkZGVkIGEgY29uc3RydWN0b3IuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcmV2aWV3RWxlbWVudEluZm8uaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm8ubW06IEFkZGVkLgorICAgICAgICAoLVtfV0tQcmV2
aWV3RWxlbWVudEluZm8gX2luaXRXaXRoTGlua1VSTDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmg6IEFkZGVkLgorCisgICAg
ICAgIEludm9rZSBzaG91bGRQcmV2aWV3RWxlbWVudDouCisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
X2ludGVyYWN0aW9uU2hvdWxkQmVnaW5Gcm9tUHJldmlld0l0ZW1Db250cm9sbGVyOmZvclBvc2l0
aW9uOl0pOgorCisgICAgICAgIEludm9rZSBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVt
ZW50OiBmb3IgYWxsIHBvdGVudGlhbGx5IHByZXZpZXctYWJsZSAKKyAgICAgICAgZWxlbWVudHMg
dGhhdCBoYXZlIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMsIHdoaWNoIHdpbGwgYmUgbGltaXRl
ZCB0byBsaW5rcyAKKyAgICAgICAgYXQgdGhpcyB0aW1lLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9wcmVzZW50ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjpdKToK
KworICAgICAgICBJbnZva2UgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9wcmV2aWV3SXRlbUNvbnRyb2xsZXI6Y29tbWl0UHJldmlldzpd
KToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTUt
MTEtMTMgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFRyeSB0byBmaXggdGhlIDMyLWJpdCBidWlsZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJl
dmlzaW9uIDE5MjQ0MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTQgQEAKICNp
bXBvcnQgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8uaD4KIAorQGNsYXNzIFVJUHJldmlld0FjdGlvbkl0ZW07CiBAY2xh
c3MgVUlTY3JvbGxWaWV3OwogQGNsYXNzIFVJVmlld0NvbnRyb2xsZXI7CiBAY2xhc3MgX1dLQ29u
dGV4dE1lbnVFbGVtZW50SW5mbzsKIEBjbGFzcyBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbzsKIEBj
bGFzcyBfV0tFbGVtZW50QWN0aW9uOwogQGNsYXNzIF9XS0ZyYW1lSGFuZGxlOworQGNsYXNzIF9X
S1ByZXZpZXdFbGVtZW50SW5mbzsKIAogQHByb3RvY29sIFdLVUlEZWxlZ2F0ZVByaXZhdGUgPFdL
VUlEZWxlZ2F0ZT4KIApAQCAtNzIsNiArNzQsMTUgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0g
KFVJRWRnZUluc2V0cylfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmaW5hbE9ic2N1cmVk
SW5zZXRzRm9yU2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2Np
dHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAq
KXRhcmdldENvbnRlbnRPZmZzZXQgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwogLSAoVUlWaWV3Q29u
dHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJv
bGxlckZvclVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KFdLX0FSUkFZKF9XS0VsZW1l
bnRBY3Rpb24gKikgKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqKWVsZW1lbnRJbmZvIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKIC0gKFVJVmlld0NvbnRyb2xs
ZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJG
b3JBbmltYXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihXS19BUlJB
WShfV0tFbGVtZW50QWN0aW9uICopICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBpbWFnZVNpemU6KENHU2l6ZSlpbWFnZVNpemUgV0tf
QVZBSUxBQkxFKE5BLCA5XzApOworCisvLyBJZiBhIGNsaWVudCB3YW50cyB0byBkaXNhYmxlIHBy
ZXZpZXdzIGVudGlyZWx5IGZvciB0aGUgZ2l2ZW4gZWxlbWVudCwgdGhleSBzaG91bGQgcmV0dXJu
IE5PIGluCisvLyBzaG91bGRQcmV2aWV3RWxlbWVudC4gUmV0dXJuaW5nIE5PIGluIHNob3VsZFBy
ZXZpZXdFbGVtZW50IHdpbGwgcHJldmVudCB0aGUgb3RoZXIgbWV0aG9kcyBmcm9tIGJlaW5nIGlu
dm9rZWQuCisvLyBUaGUgY2xpZW50IGNhbiBwcm92aWRlIGEgY3VzdG9tIHByZXZpZXcgYnkgcmV0
dXJuaW5nIHRoZWlyIG93biBVSVZpZXdDb250cm9sbGVyIGZyb20KKy8vIHByZXZpZXdpbmdWaWV3
Q29udHJvbGxlckZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6LiBSZXR1cm5pbmcgbmlsIHdpbGwg
cmVzdWx0IGluIHRoZSBkZWZhdWx0IHByZXZpZXcgYmVoYXZpb3IKKy8vIGZvciB0aGF0IGVsZW1l
bnQuCistIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFByZXZpZXdF
bGVtZW50OihfV0tQcmV2aWV3RWxlbWVudEluZm8gKikgZWxlbWVudEluZm87CistIChVSVZpZXdD
b250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld2luZ1ZpZXdD
b250cm9sbGVyRm9yRWxlbWVudDooX1dLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudEluZm8g
ZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8VUlQcmV2aWV3QWN0aW9uSXRlbSAqPiAqKXByZXZpZXdB
Y3Rpb25zIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjooVUlWaWV3
Q29udHJvbGxlciAqKXByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIFdL
X0lPU19UQkEpOwogI2Vsc2UKIC0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51
RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CiAtIChO
U01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51
ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCB1
c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgTkEpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tF
bGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRWxlbWVudEluZm8uaAkocmV2aXNpb24gMTkyNDQyKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw4IEBAIFdLX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBXS19DTEFTU19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkKIEBpbnRlcmZhY2UgX1dLRWxlbWVudEluZm8gOiBO
U09iamVjdCA8TlNDb3B5aW5nPgogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
VVJMICpsaW5rVVJMOworCiBAZW5kCiAKIFdLX0FTU1VNRV9OT05OVUxMX0VORApJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50SW5mby5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZv
Lm1tCShyZXZpc2lvbiAxOTI0NDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0VsZW1lbnRJbmZvLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIl9XS0VsZW1lbnRJbmZvLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAK
QEAgLTM1LDYgKzM1LDExIEBAIC0gKGlkKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQogICAg
IHJldHVybiBbc2VsZiByZXRhaW5dOwogfQogCistIChOU1VSTCAqKWxpbmtVUkwKK3sKKyAgICBy
ZXR1cm4gX2xpbmtVUkwuZ2V0KCk7Cit9CisKIEBlbmQKIAogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJfV0tFbGVtZW50SW5mby5oIgorCisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitAaW50ZXJmYWNl
IF9XS0VsZW1lbnRJbmZvICgpIHsKK0BwYWNrYWdlCisgICAgUmV0YWluUHRyPE5TVVJMPiBfbGlu
a1VSTDsKK30KKworQGVuZAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3
RWxlbWVudEluZm8uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKwor
I2lmIFdLX0FQSV9FTkFCTEVEICYmIFRBUkdFVF9PU19JUEhPTkUKKworI2ltcG9ydCA8V2ViS2l0
L19XS0VsZW1lbnRJbmZvLmg+CisKK1dLX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK1dLX0NMQVNT
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKK0BpbnRlcmZhY2UgX1dLUHJldmlld0VsZW1lbnRJ
bmZvIDogX1dLRWxlbWVudEluZm8KKworQGVuZAorCitXS19BU1NVTUVfTk9OTlVMTF9FTkQKKwor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1ByZXZp
ZXdFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1ByZXZpZXdFbGVtZW50SW5mby5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIl9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmgiCisKKyNpbXBv
cnQgIl9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KworI2lmIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykKKworQGltcGxlbWVudGF0aW9u
IF9XS1ByZXZpZXdFbGVtZW50SW5mbworCistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoTGlua1VS
TDooTlNVUkwgKil1cmwKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKworICAgIF9saW5rVVJMID0gYWRvcHROUyhbdXJsIGNvcHldKTsKKwor
ICAgIHJldHVybiBzZWxmOworfQorCitAZW5kCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmll
d0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiX1dLUHJldmll
d0VsZW1lbnRJbmZvLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05F
CisKK0BpbnRlcmZhY2UgX1dLUHJldmlld0VsZW1lbnRJbmZvICgpCisKKy0gKGluc3RhbmNldHlw
ZSlfaW5pdFdpdGhMaW5rVVJMOihOU1VSTCAqKXVybDsKKworQGVuZAorCisjZW5kaWYgLy8gV0tf
QVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAxOTI0NDIpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQko
d29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsNyBAQAogI2ltcG9ydCAiX1dLRm9jdXNlZEVsZW1l
bnRJbmZvLmgiCiAjaW1wb3J0ICJfV0tGb3JtSW5wdXRTZXNzaW9uLmgiCiAjaW1wb3J0ICJfV0tJ
bnB1dERlbGVnYXRlLmgiCisjaW1wb3J0ICJfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5o
IgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250Lmg+CiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZvbnRE
ZXNjcmlwdG9yLmg+CiAjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvVVRDb3JlVHlwZXMuaD4K
QEAgLTM0NzgsMTEgKzM0NzksMTYgQEAgLSAoQk9PTClfaW50ZXJhY3Rpb25TaG91bGRCZWdpbkZy
b21QcmV2aQogICAgIAogICAgIFN0cmluZyBhYnNvbHV0ZUxpbmtVUkwgPSBfcG9zaXRpb25JbmZv
cm1hdGlvbi51cmw7CiAgICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluaykgeworICAg
ICAgICBOU1VSTCAqdGFyZ2V0VVJMID0gW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpfcG9z
aXRpb25JbmZvcm1hdGlvbi51cmxdOworICAgICAgICBpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4g
dWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oW193ZWJW
aWV3IFVJRGVsZWdhdGVdKTsKKyAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvdWxkUHJldmlld0VsZW1lbnQ6KV0pIHsKKyAgICAg
ICAgICAgIGF1dG8gcHJldmlld0VsZW1lbnRJbmZvID0gYWRvcHROUyhbW19XS1ByZXZpZXdFbGVt
ZW50SW5mbyBhbGxvY10gX2luaXRXaXRoTGlua1VSTDp0YXJnZXRVUkxdKTsKKyAgICAgICAgICAg
IHJldHVybiBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBzaG91bGRQcmV2aWV3RWxlbWVu
dDpwcmV2aWV3RWxlbWVudEluZm8uZ2V0KCldOworICAgICAgICB9CiAgICAgICAgIGlmIChhYnNv
bHV0ZUxpbmtVUkwuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIE5POwogICAgICAgICBp
ZiAoV2ViQ29yZTo6cHJvdG9jb2xJc0luSFRUUEZhbWlseShhYnNvbHV0ZUxpbmtVUkwpKQogICAg
ICAgICAgICAgcmV0dXJuIFlFUzsKLSAgICAgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtOU1VSTCBf
d2ViX1VSTFdpdGhXVEZTdHJpbmc6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsXTsKICAgICAgICAg
aWYgKFtbZ2V0REREZXRlY3Rpb25Db250cm9sbGVyQ2xhc3MoKSB0YXBBbmRIb2xkU2NoZW1lc10g
Y29udGFpbnNPYmplY3Q6W3RhcmdldFVSTCBzY2hlbWVdXSkKICAgICAgICAgICAgIHJldHVybiBZ
RVM7CiAgICAgICAgIHJldHVybiBOTzsKQEAgLTM1NjEsNiArMzU2NywxMiBAQCAtIChVSVZpZXdD
b250cm9sbGVyICopX3ByZXNlbnRlZFZpZXdDb250CiAgICAgICAgIFJldGFpblB0cjxfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxl
bWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVMaW5r
IFVSTDp0YXJnZXRVUkwgbG9jYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb24ucG9pbnQgdGl0bGU6
X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5ib3Vu
ZHMgaW1hZ2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCldKTsKIAogICAgICAgICBS
ZXRhaW5QdHI8TlNBcnJheT4gYWN0aW9ucyA9IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVs
dEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxlbWVudEluZm8uZ2V0KCldOworICAgICAgICBpZiAoW3Vp
RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmV2aWV3aW5n
Vmlld0NvbnRyb2xsZXJGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildKSB7CisgICAgICAgICAg
ICBhdXRvIHByZXZpZXdFbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tQcmV2aWV3RWxlbWVudElu
Zm8gYWxsb2NdIF9pbml0V2l0aExpbmtVUkw6dGFyZ2V0VVJMXSk7CisgICAgICAgICAgICBpZiAo
VUlWaWV3Q29udHJvbGxlciAqY29udHJvbGxlciA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJW
aWV3IHByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6cHJldmlld0VsZW1lbnRJbmZv
LmdldCgpIGRlZmF1bHRBY3Rpb25zOmFjdGlvbnMuZ2V0KCldKQorICAgICAgICAgICAgICAgIHJl
dHVybiBjb250cm9sbGVyOworICAgICAgICB9CisKICAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJldmlld1ZpZXdDb250cm9sbGVy
Rm9yVVJMOmRlZmF1bHRBY3Rpb25zOmVsZW1lbnRJbmZvOildKQogICAgICAgICAgICAgcmV0dXJu
IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVS
TDp0YXJnZXRVUkwgZGVmYXVsdEFjdGlvbnM6YWN0aW9ucy5nZXQoKSBlbGVtZW50SW5mbzplbGVt
ZW50SW5mby5nZXQoKV07CiAKQEAgLTM1OTgsNiArMzYxMCwxMSBAQCAtICh2b2lkKV9wcmV2aWV3
SXRlbUNvbnRyb2xsZXI6KFVJUHJldmllCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBp
ZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjb21t
aXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6KV0pIHsKKyAgICAgICAgW3VpRGVsZWdhdGUgX3dl
YlZpZXc6X3dlYlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOnZpZXdDb250cm9s
bGVyXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNvbW1pdFByZXZpZXdlZFZpZXdDb250
cm9sbGVyOildKSB7CiAgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGNvbW1p
dFByZXZpZXdlZFZpZXdDb250cm9sbGVyOnZpZXdDb250cm9sbGVyXTsKICAgICAgICAgcmV0dXJu
OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMTkyNDQyKQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjI4LDggKzEyMjgsMTIg
QEAKIAkJOTM1RUVCQTIxMjc3NjFEMDAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFja0Zvcndh
cmRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzVFRUI5MDEyNzc2MTVEMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Qu
aCAqLzsgfTsKIAkJOTM1RUVCQTMxMjc3NjFEMzAwMzMyMkI4IC8qIEluamVjdGVkQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzVFRUI5MTEyNzc2MTVEMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNr
Rm9yd2FyZExpc3RJdGVtLmNwcCAqLzsgfTsKIAkJOTM1RUVCQTQxMjc3NjFENjAwMzMyMkI4IC8q
IEluamVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTIxMjc3NjE1RDAwMzMyMkI4IC8qIElu
amVjdGVkQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICovOyB9OworCQk5MzkxMDc0RjFCRjZC
QzY1MDA4QzE3QUQgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTEwNzRFMUJGNkJDNjUwMDhD
MTdBRCAvKiBfV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oICovOyB9OwogCQk5MzkxRjJD
QTEyMUI2NzlBMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFGMjg0MTIxQjM4RjUw
MEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovOyB9OwogCQk5MzkxRjJD
QjEyMUI2N0FEMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUYyODMxMjFCMzhGNTAw
RUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgfTsKKwkJOTM5NUU2OEEx
QkYyQzMzMjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5NUU2ODkxQkYyQzMzMjAwRjQ5QkNF
IC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTkzOTVFNjhDMUJGMkMzNTIwMEY0OUJDRSAvKiBfV0tQcmV2
aWV3RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5Mzk1RTY4QjFCRjJDMzUyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZv
Lm1tICovOyB9OworCQk5Mzk1RTY4RTFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9J
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM5NUU2OEQxQkY0MTBGRDAwRjQ5QkNFIC8qIF9XS0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsg
fTsKIAkJOTM5QUU3NjYxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlBRTc2
NTEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCAqLzsgfTsKIAkJ
OTM5RjQwMUMxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVudVR5cGVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlGNDAxQjE5RkIwQkJDMDAy
QjJCNDIgLyogV0tBY3Rpb25NZW51VHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0E4OEIzMDFCQzZFOTk3MDBBQkE1QzIgLyogV2ViSGl0
VGVzdFJlc3VsdERhdGEubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0E4OEIyRTFCQzZFOThGMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEu
bW0gKi87IH07CkBAIC0zNDcxLDggKzM0NzUsMTIgQEAKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMy
MkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzNUVFQjk3MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM1RUVCOTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlz
dEl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM5MTA3NEUxQkY2QkM2NTAw
OEMxN0FEIC8qIF9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Mzk1RTY4OTFC
RjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1ByZXZpZXdFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5Mzk1RTY4QjFCRjJDMzUyMDBGNDlCQ0UgLyogX1dLUHJldmlld0Vs
ZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dL
UHJldmlld0VsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5Mzk1
RTY4RDFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tFbGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBXZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM5RjQwMUIxOUZCMEJCQzAwMkIyQjQyIC8qIFdLQWN0aW9uTWVudVR5cGVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQWN0aW9uTWVudVR5cGVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTg4QjJFMUJDNkU5OEYwMEFCQTVDMiAvKiBXZWJIaXRU
ZXN0UmVzdWx0RGF0YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkhpdFRlc3RSZXN1bHREYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTM5MCw2ICs1Mzk4LDcgQEAKIAkJCQkzNzlBODczQjE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxl
bWVudEFjdGlvbkludGVybmFsLmggKi8sCiAJCQkJMUE1NzA0RjAxQkUwMTczRjAwODc0QUYxIC8q
IF9XS0VsZW1lbnRJbmZvLmggKi8sCiAJCQkJMUE1NzA0RUYxQkUwMTczRjAwODc0QUYxIC8qIF9X
S0VsZW1lbnRJbmZvLm1tICovLAorCQkJCTkzOTVFNjhEMUJGNDEwRkQwMEY0OUJDRSAvKiBfV0tF
bGVtZW50SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMUFEMDFCQzcxOTA1RDM3RTAwQzlDNDVGIC8q
IF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLmggKi8sCiAJCQkJMUFEMDFCQzYxOTA1RDM3RTAw
QzlDNDVGIC8qIF9XS0Vycm9yUmVjb3ZlcnlBdHRlbXB0aW5nLm1tICovLAogCQkJCTAwNUQxNThF
MThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCAqLywKQEAgLTU0MDAsNiArNTQw
OSw5IEBACiAJCQkJMzdBNjRFNTQxOEYzOEUzQzAwRUIzMEYxIC8qIF9XS0lucHV0RGVsZWdhdGUu
aCAqLywKIAkJCQkyRDc5MEE5QzFBRDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oICov
LAogCQkJCTkzMjM2MTFEMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5
bGUuaCAqLywKKwkJCQk5Mzk1RTY4OTFCRjJDMzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1l
bnRJbmZvLmggKi8sCisJCQkJOTM5NUU2OEIxQkYyQzM1MjAwRjQ5QkNFIC8qIF9XS1ByZXZpZXdF
bGVtZW50SW5mby5tbSAqLywKKwkJCQk5MzkxMDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogX1dLUHJl
dmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLywKIAkJCQkxQTQzRTgyODE4OEYzQ0RDMDA5RTRE
MzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggKi8sCiAJCQkJMUE0M0U4MjcxODhG
M0NEQzAwOUU0RDMwIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSAqLywKIAkJCQk3
Qzg5RDJENjFBNkM2QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uSW50
ZXJuYWwuaCAqLywKQEAgLTc3MDAsNiArNzcxMiw3IEBACiAJCQkJN0MxQkEzM0UxQTRBMEU2MDAw
NDNFMjQ5IC8qIEFQSURpY3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGN0QzNkMxMThE
QTUxM0YwMEQ5RDY1OSAvKiBBUElEb3dubG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTE2QTRBNUQxMjBBMkNDRDAwQzA1QjdGIC8qIEFQSUVycm9yLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5Mzk1RTY4RTFCRjQxMEZEMDBGNDlCQ0UgLyogX1dLRWxlbWVudEluZm9JbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDBCOTY2MTYxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJERDY3QTJFMUJEODE5NzMwMDUzQjI1MSAvKiBBUElG
aW5kTWF0Y2hlc0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdFMjVENkUxOEZERTVENjAw
NUQzQTAwIC8qIEFQSUZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtNzg4MCw2ICs3ODkz
LDcgQEAKIAkJCQkxQUE1ODg5MjExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJl
YW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNzk4QzdBMTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3
b3JrQmxvYlJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQzNkVDQzFBMEQwNDBCMDBF
QUQyMDQgLyogTmV0d29ya0NhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5Mzk1RTY4QTFCRjJD
MzMyMDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFNDlENDBENzFBRDNGQjE3MDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUU0ODlEMjhBMUEwQTJEQjgwMDc4QzA2QSAvKiBOZXR3b3JrQ2Fj
aGVDb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ4OUQyOEMxQTBBMkRCODAwNzhDMDZBIC8q
IE5ldHdvcmtDYWNoZUNvZGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC04MjMzLDYgKzgyNDcsNyBA
QAogCQkJCTkzOUY0MDFDMTlGQjBCQkMwMDJCMkI0MiAvKiBXS0FjdGlvbk1lbnVUeXBlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDQjRFNDgxOEJCRTA0NDAwMEZDRkM5IC8qIFdLQWN0aW9uU2hl
ZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQ0I0RTRBMThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0Fj
dGlvblNoZWV0QXNzaXN0YW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzkxMDc0RjFCRjZCQzY1
MDA4QzE3QUQgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCUM1RkExRUQzMThFMTA2MjIwMEIzRjQwMiAvKiBXS0FpclBsYXlSb3V0ZVBpY2tlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEREIzMkQxMjRFQzJFMTAwNDhEMTNDIC8qIFdLQVBJQ2Fz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8qIFdLQXBw
bGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApAQCAtOTgwNyw2ICs5ODIyLDcg
QEAKIAkJCQlFMUNDMUI5MTEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzc3MTZBNUExOTVCOTEwNTAwRUU4QjFCIC8qIFByb2Nlc3NBc3NlcnRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZGOTUzNjQxOEZGNTgzQzAwMURCMkVGIC8qIFBy
b2Nlc3NBc3NlcnRpb25JT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQk5Mzk1RTY4QzFCRjJDMzUy
MDBGNDlCQ0UgLyogX1dLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUFFMTE3RjYxMURCQjMwOTAwOTgxNjE1IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzExMUIxRDExMkY1RkU2MDAzMzdCQUIgLyogUHJvY2Vzc0xhdW5jaGVyTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODZFNjdBMjYxOTEwQjlEOTAwMDA0QUI3IC8qIFByb2Nl
c3NUaHJvdHRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>
<flag name="review"
          id="290590"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>