<?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>119799</bug_id>
          
          <creation_ts>2013-08-14 08:13:54 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add pasteboard client to WKContext</short_desc>
          <delta_ts>2017-03-11 10:45:17 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          
          <blocked>102484</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michal Pakula vel Rutka">mpakulavelrutka</reporter>
          <assigned_to name="Michal Pakula vel Rutka">mpakulavelrutka</assigned_to>
          <cc>abecsi</cc>
    
    <cc>buildbot</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>917120</commentid>
    <comment_count>0</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2013-08-14 08:13:54 -0700</bug_when>
    <thetext>Add pasteboard client to WKContext for ports that want to handle copy and paste operations in UIProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917121</commentid>
    <comment_count>1</comment_count>
      <attachid>208727</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2013-08-14 08:17:39 -0700</bug_when>
    <thetext>Created attachment 208727
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917122</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-14 08:19:45 -0700</bug_when>
    <thetext>Attachment 208727 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/Target.pri&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKContext.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.h&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;]&quot; exit_code: 1
Source/WebKit2/UIProcess/WebContext.h:45:  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>917123</commentid>
    <comment_count>3</comment_count>
      <attachid>208727</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-08-14 08:21:13 -0700</bug_when>
    <thetext>Comment on attachment 208727
patch

Attachment 208727 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1448926</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917124</commentid>
    <comment_count>4</comment_count>
      <attachid>208728</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2013-08-14 08:24:52 -0700</bug_when>
    <thetext>Created attachment 208728
add missing files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917126</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-14 08:26:54 -0700</bug_when>
    <thetext>Attachment 208728 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/Target.pri&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/API/C/WKContext.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPasteboardClient.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPasteboardClient.h&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;]&quot; exit_code: 1
Source/WebKit2/UIProcess/WebPasteboardClient.h:40:  The parameter name &quot;context&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/WebPasteboardClient.h:41:  The parameter name &quot;context&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917127</commentid>
    <comment_count>6</comment_count>
      <attachid>208729</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2013-08-14 08:32:46 -0700</bug_when>
    <thetext>Created attachment 208729
fixed style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917133</commentid>
    <comment_count>7</comment_count>
      <attachid>208729</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-14 08:49:17 -0700</bug_when>
    <thetext>Comment on attachment 208729
fixed style

Attachment 208729 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1451874</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917201</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-08-14 11:18:12 -0700</bug_when>
    <thetext>I don&apos;t think this should go on the WebContext, it seems like it is better suited at the page level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917575</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-15 11:12:49 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I don&apos;t think this should go on the WebContext, it seems like it is better suited at the page level.

Currently many basic pasteboard operations are done in the platform layer where this no concept of page; I’m not sure exactly how the page level exists at the platform layer, although it’s possible there is a platform-level concept that can end up communicating up through the page.

iOS is an exception because pasteboard operations have to go through the frame delegate, and it’s an exception I am trying to fix.

Sam, could you clarify how you would want to see this work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917655</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-08-15 13:07:12 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; I don&apos;t think this should go on the WebContext, it seems like it is better suited at the page level.
&gt; 
&gt; Currently many basic pasteboard operations are done in the platform layer where this no concept of page; I’m not sure exactly how the page level exists at the platform layer, although it’s possible there is a platform-level concept that can end up communicating up through the page.
&gt; 
&gt; iOS is an exception because pasteboard operations have to go through the frame delegate, and it’s an exception I am trying to fix.
&gt; 
&gt; Sam, could you clarify how you would want to see this work?

Oh right, we do pasteboard through PlatformStrategies.  I&apos;m still not sure a client on WebContext makes sense.  Really, there should be no client in the UIProcess, and ports should just implement the necessary functions in WebContext, like the Mac port does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919051</commentid>
    <comment_count>11</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2013-08-20 08:10:08 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; I don&apos;t think this should go on the WebContext, it seems like it is better suited at the page level.
&gt; &gt; 
&gt; &gt; Currently many basic pasteboard operations are done in the platform layer where this no concept of page; I’m not sure exactly how the page level exists at the platform layer, although it’s possible there is a platform-level concept that can end up communicating up through the page.
&gt; &gt; 
&gt; &gt; iOS is an exception because pasteboard operations have to go through the frame delegate, and it’s an exception I am trying to fix.
&gt; &gt; 
&gt; &gt; Sam, could you clarify how you would want to see this work?
&gt; 
&gt; Oh right, we do pasteboard through PlatformStrategies.  I&apos;m still not sure a client on WebContext makes sense.  Really, there should be no client in the UIProcess, and ports should just implement the necessary functions in WebContext, like the Mac port does.

EFL framework&apos;s copy and paste API is located in Elementary (http://docs.enlightenment.org/auto/elementary/group__CopyPaste.html) which is a widget toolkit for creating applications containing UI widgets. We cannot include elementary into WebKit because elementary depends on WebKit via elm_web and elm_web2 widgets (a simple webviews). Second thing is that you can use Elementary copy and paste API, only in Elementary application (sample at the bottom https://trac.enlightenment.org/e/wiki/Elementary).
Because of the conditions above in EFL port pasteboard cannot be done in WebCore like i.e. in GTK+ or Qt ports or in WebProcess like Mac, but copy and paste has to be delegated to Elementary application and the client in UIProcess is needed for implementation in EFL port.

This patch is split from bug 102484 where now the rest of EFL pasteboard implementation is posted. In previous patch I made the WK client EFL-only, while here I made it common as it possibly may be used by Nix port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015070</commentid>
    <comment_count>12</comment_count>
      <attachid>232941</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2014-06-12 03:09:29 -0700</bug_when>
    <thetext>Created attachment 232941
new patch

As WebKit Nix was removed from upstream, new version of a patch introduces pasteboard client used only by EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023654</commentid>
    <comment_count>13</comment_count>
      <attachid>232941</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-07-21 03:36:28 -0700</bug_when>
    <thetext>Comment on attachment 232941
new patch

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

&gt; Source/WebKit2/UIProcess/API/C/efl/WKContextEfl.cpp:43
&gt; +void WKContextSetPasteboardClient(WKContextRef contextRef, const WKContextPasteboardClientBase* wkClient)

When/where is this client called ? I mean EFL needs to register own callbacks by using this function.

&gt; Source/WebKit2/UIProcess/API/C/efl/WKContextEfl.cpp:62
&gt; +        }

Need a new line.

&gt; Source/WebKit2/UIProcess/API/C/efl/WKContextEfl.cpp:70
&gt; +

Unneeded line.

&gt; Source/WebKit2/UIProcess/efl/WebContextEfl.cpp:149
&gt; +    if (!pasteboardClient)

I&apos;m not sure whether we need to check if pasteboardClient is null. I don&apos;t see any code which checks if std::unique_ptr argument is null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023664</commentid>
    <comment_count>14</comment_count>
      <attachid>232941</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2014-07-21 06:48:22 -0700</bug_when>
    <thetext>Comment on attachment 232941
new patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/C/efl/WKContextEfl.cpp:43
&gt;&gt; +void WKContextSetPasteboardClient(WKContextRef contextRef, const WKContextPasteboardClientBase* wkClient)
&gt; 
&gt; When/where is this client called ? I mean EFL needs to register own callbacks by using this function.

The rest of implementation is in bug 120209. WKContextSetPasteboardClient is called when PasteboardClientEfl is created, which happen during constructing Ewk_Context. Callbacks are registered by ewk_context API.

&gt;&gt; Source/WebKit2/UIProcess/efl/WebContextEfl.cpp:149
&gt;&gt; +    if (!pasteboardClient)
&gt; 
&gt; I&apos;m not sure whether we need to check if pasteboardClient is null. I don&apos;t see any code which checks if std::unique_ptr argument is null.

Similar code can be found here: https://trac.webkit.org/browser/trunk/Source/WebKit2/UIProcess/WebContext.cpp#L299. The difference is that setPasteboardClient which is called by WKContextSetPasteboardClient will be used internally and null cannot be passed (bug 120209). I will remove this check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023667</commentid>
    <comment_count>15</comment_count>
      <attachid>235218</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2014-07-21 07:07:47 -0700</bug_when>
    <thetext>Created attachment 235218
fixes after review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024125</commentid>
    <comment_count>16</comment_count>
      <attachid>235218</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-07-22 17:39:48 -0700</bug_when>
    <thetext>Comment on attachment 235218
fixes after review

Can we test this feature using unit test or layout test ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025978</commentid>
    <comment_count>17</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2014-07-31 08:26:27 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 235218 [details])
&gt; Can we test this feature using unit test or layout test ?

Unit test are added for EWK API in bug 120209, layout test will start to pass after all patches will land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066423</commentid>
    <comment_count>18</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-02-03 07:36:22 -0800</bug_when>
    <thetext>Michal, I wonder whether EFL port still needs this patch. If so, please rebase this patch against latest trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172872</commentid>
    <comment_count>19</comment_count>
      <attachid>235218</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2016-03-09 16:35:12 -0800</bug_when>
    <thetext>Comment on attachment 235218
fixes after review

r- because this patch needs to be updated against latest trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1286590</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-03-11 10:45:17 -0800</bug_when>
    <thetext>Closing this bug because the EFL port has been removed from trunk.

If you feel this bug applies to a different upstream WebKit port and was closed in error, please either update the title and reopen the bug, or leave a comment to request this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208727</attachid>
            <date>2013-08-14 08:17:39 -0700</date>
            <delta_ts>2013-08-14 08:24:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>pasteboard-client.diff</filename>
            <type>text/plain</type>
            <size>12128</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggZjg5MzViOS4uODc3NGE5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTMwNSw2ICszMDUsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdy
b3VwLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1dl
YlBhc3RlYm9hcmRDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5jcHAK
ICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMWFkMjdmLi43NmNiODgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTMtMDYtMTQgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxt
LnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgcGFzdGVib2FyZCBjbGll
bnQgdG8gV0tDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTk3OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgcGFzdGVib2FyZCBjbGllbnQgdG8gV0tDb250ZXh0IGZvciBwb3J0cyB0aGF0
IHdhbnQgdG8gZGVsZWdhdGUgY29weSBhbmQgcGFzdGUKKyAgICAgICAgb3BlcmF0aW9ucyBmcm9t
IFdlYlByb2Nlc3MgdG8gVUlQcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0
U2V0UGFzdGVib2FyZENsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6aW5pdGlhbGl6ZVBhc3RlYm9hcmRDbGllbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDEzLTA4LTEyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4ZWQgYW4gb2ZmLWJ5LShzaXplb2YoY2hhciopIC0gMSkgYnVnLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNjI2Y2VkMy4uMDViYjIzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC05NzIsNiArOTcyLDggQEAgd2Via2l0Ml9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkQ2xpZW50LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3Rl
Ym9hcmRDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVu
dC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkK
aW5kZXggZTE1MzhiNy4uZDcxYjhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yNzksNiArMjc5LDcgQEAg
SEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmggXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRDbGllbnQuaCBcCiAgICAgVUlQcm9j
ZXNzL1dlYlBvbGljeUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIFwKQEAgLTYzOCw2ICs2MzksNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBc
CiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZENsaWVudC5jcHAgXAogICAg
IFVJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVy
ZW5jZXMuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IDE2MjlhNTYuLjU4
ZTg4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
CkBAIC0xMDQsNiArMTA0LDExIEBAIHZvaWQgV0tDb250ZXh0U2V0Q29ubmVjdGlvbkNsaWVudChX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgY29uc3QgV0tDb250ZXh0Q29ubmVjCiAgICAgdG9JbXBs
KGNvbnRleHRSZWYpLT5pbml0aWFsaXplQ29ubmVjdGlvbkNsaWVudCh3a0NsaWVudCk7CiB9CiAK
K3ZvaWQgV0tDb250ZXh0U2V0UGFzdGVib2FyZENsaWVudChXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgY29uc3QgV0tDb250ZXh0UGFzdGVib2FyZENsaWVudCogd2tDbGllbnQpCit7CisgICAgdG9J
bXBsKGNvbnRleHRSZWYpLT5pbml0aWFsaXplUGFzdGVib2FyZENsaWVudCh3a0NsaWVudCk7Cit9
CisKIFdLRG93bmxvYWRSZWYgV0tDb250ZXh0RG93bmxvYWRVUkxSZXF1ZXN0KFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmLCBjb25zdCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZikKIHsKICAgICBy
ZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5kb3dubG9hZCgwLCB0b0ltcGwocmVxdWVz
dFJlZiktPnJlc291cmNlUmVxdWVzdCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgKaW5kZXggM2NlNzMxZS4uNjEzNzljYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApAQCAtMTUzLDYgKzE1MywyMCBAQCBlbnVtIHsK
IH07CiB0eXBlZGVmIHVpbnQzMl90IFdLU3RhdGlzdGljc09wdGlvbnM7CiAKKy8vIFBhc3RlYm9h
cmQgQ2xpZW50Cit0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tQYXN0ZWJvYXJkU3RyaW5nRm9yVHlw
ZUNhbGxiYWNrKShXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgcGFzdGVib2FyZFR5
cGUsIFdLU3RyaW5nUmVmIHBhc3RlYm9hcmROYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
K3R5cGVkZWYgdm9pZCAoKldLUGFzdGVib2FyZFNldFN0cmluZ0ZvclR5cGVDYWxsYmFjaykoV0tD
b250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIHN0cmluZywgV0tTdHJpbmdSZWYgcGFzdGVi
b2FyZFR5cGUsIFdLU3RyaW5nUmVmIHBhc3RlYm9hcmROYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKKworc3RydWN0IFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnQgeworICAgIGludCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAg
IGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGll
bnRJbmZvOworICAgIFdLUGFzdGVib2FyZFN0cmluZ0ZvclR5cGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICBzdHJpbmdGb3JUeXBlOworICAgIFdLUGFzdGVib2FyZFNldFN0cmluZ0ZvclR5cGVD
YWxsYmFjayAgICAgICAgICAgICAgICBzZXRTdHJpbmdGb3JUeXBlOworfTsKK3R5cGVkZWYgc3Ry
dWN0IFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnQgV0tDb250ZXh0UGFzdGVib2FyZENsaWVudDsK
KworZW51bSB7IGtXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50Q3VycmVudFZlcnNpb24gPSAwIH07
CisKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS0NvbnRleHRHZXRUeXBlSUQoKTsKIAogV0tfRVhQT1JU
IFdLQ29udGV4dFJlZiBXS0NvbnRleHRDcmVhdGUoKTsKQEAgLTE2Myw2ICsxNzcsNyBAQCBXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChXS0NvbnRleHRSZWYg
Y29udGV4dCwgY29uc3QgV0tDbwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0SGlzdG9yeUNs
aWVudChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgV0tDb250ZXh0SGlzdG9yeUNsaWVudCog
Y2xpZW50KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldERvd25sb2FkQ2xpZW50KFdLQ29u
dGV4dFJlZiBjb250ZXh0LCBjb25zdCBXS0NvbnRleHREb3dubG9hZENsaWVudCogY2xpZW50KTsK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldENvbm5lY3Rpb25DbGllbnQoV0tDb250ZXh0UmVm
IGNvbnRleHQsIGNvbnN0IFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQqIGNsaWVudCk7CitXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRTZXRQYXN0ZWJvYXJkQ2xpZW50KFdLQ29udGV4dFJlZiBjb250
ZXh0LCBjb25zdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50KiBjbGllbnQpOwogCiBXS19FWFBP
UlQgV0tEb3dubG9hZFJlZiBXS0NvbnRleHREb3dubG9hZFVSTFJlcXVlc3QoV0tDb250ZXh0UmVm
IGNvbnRleHQsIGNvbnN0IFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IGJiYzg3YmIuLmUwZTVkYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTI3MCw2ICsyNzAsMTEgQEAgdm9p
ZCBXZWJDb250ZXh0Ojppbml0aWFsaXplRG93bmxvYWRDbGllbnQoY29uc3QgV0tDb250ZXh0RG93
bmxvYWRDbGllbnQqIGNsaWVudCkKICAgICBtX2Rvd25sb2FkQ2xpZW50LmluaXRpYWxpemUoY2xp
ZW50KTsKIH0KIAordm9pZCBXZWJDb250ZXh0Ojppbml0aWFsaXplUGFzdGVib2FyZENsaWVudChj
b25zdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50KiBjbGllbnQpCit7CisgICAgbV9wYXN0ZWJv
YXJkQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKwogdm9pZCBXZWJDb250ZXh0OjpzZXRQ
cm9jZXNzTW9kZWwoUHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbCkKIHsKICAgICAvLyBHdWFyZCBh
Z2FpbnN0IEFQSSBtaXN1c2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRl
eCA0ZTk5NThkLi45YTNiMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgK
QEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViRG93bmxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5Q2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC0xMjIsNiArMTIzLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQoY29uc3QgV0tDb250ZXh0
Q29ubmVjdGlvbkNsaWVudCopOwogICAgIHZvaWQgaW5pdGlhbGl6ZUhpc3RvcnlDbGllbnQoY29u
c3QgV0tDb250ZXh0SGlzdG9yeUNsaWVudCopOwogICAgIHZvaWQgaW5pdGlhbGl6ZURvd25sb2Fk
Q2xpZW50KGNvbnN0IFdLQ29udGV4dERvd25sb2FkQ2xpZW50Kik7CisgICAgdm9pZCBpbml0aWFs
aXplUGFzdGVib2FyZENsaWVudChjb25zdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50Kik7CiAK
ICAgICB2b2lkIHNldFByb2Nlc3NNb2RlbChQcm9jZXNzTW9kZWwpOyAvLyBDYW4gb25seSBiZSBj
YWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gcHJvY2Vzc2VzIHJ1bm5pbmcuCiAgICAgUHJvY2Vzc01v
ZGVsIHByb2Nlc3NNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc01vZGVsOyB9CkBAIC00
MDQsNiArNDA2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudCBt
X2Nvbm5lY3Rpb25DbGllbnQ7CiAgICAgV2ViRG93bmxvYWRDbGllbnQgbV9kb3dubG9hZENsaWVu
dDsKICAgICBXZWJIaXN0b3J5Q2xpZW50IG1faGlzdG9yeUNsaWVudDsKKyAgICBXZWJQYXN0ZWJv
YXJkQ2xpZW50IG1fcGFzdGVib2FyZENsaWVudDsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQogICAgIFBsdWdpbkluZm9TdG9yZSBtX3BsdWdpbkluZm9TdG9yZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YzM4
M2UxLi5lMGQ2MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC00MzIsNiArNDMyLDggQEAKIAkJNTEyOTM1RDgxMjg4RDE5NDAw
QTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRl
eHRNZW51SXRlbS5oICovOyB9OwogCQk1MTI5MzVFMzEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1IC8qIEluamVj
dGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLzsgfTsKIAkJNTEyOTM1RTQxMjg4
RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFMjEyODhE
OTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCAqLzsg
fTsKKwkJNTEyOTM1RTcxMjk4RjE5NDAwQTRCNjk1IC8qIFdlYlBhc3RlYm9hcmRDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTcx
Mjk4RjE5NDAwQTRCNjk1IC8qIFdlYlBhc3RlYm9hcmRDbGllbnQuY3BwICovOyB9OworCQk1MTI5
MzVFODEyOThGMTk0MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTgxMjk4RjE5NDAwQTRC
Njk1IC8qIFdlYlBhc3RlYm9hcmRDbGllbnQuaCAqLzsgfTsKIAkJNTEyQzA2ODgxNjM4RjY3RTAw
QUJCOTExIC8qIEhvc3RSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEyQzA2ODYxNjM4RjY3RTAwQUJCOTExIC8qIEhvc3RSZWNvcmQuY3Bw
ICovOyB9OwogCQk1MTJDMDY4OTE2MzhGNjdFMDBBQkI5MTEgLyogSG9zdFJlY29yZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyQzA2ODcxNjM4RjY3
RTAwQUJCOTExIC8qIEhvc3RSZWNvcmQuaCAqLzsgfTsKIAkJNTEyQzA2OTAxNjM5MEU2OTAwQUJC
OTExIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJDMDY4RjE2MzkwRTY5MDBBQkI5MTEg
LyogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlck1hYy5tbSAqLzsgfTsKQEAgLTE5MDgsNiAr
MTkxMCw4IEBACiAJCTUxMjkzNUQ2MTI4OEQxOTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0
ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUxMTI4OEQ5NzgwMEE0QjY5
NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUUyMTI4OEQ5Nzgw
MEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTI5MzVFNTEyOThGMTk0MDBB
NEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTEyOTM1RTYxMjk4RjE5NDAwQTRCNjk1IC8qIFdlYlBhc3RlYm9hcmRDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUGFzdGVib2FyZENsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJDMDY4NjE2MzhGNjdFMDBBQkI5
MTEgLyogSG9zdFJlY29yZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBIb3N0UmVjb3JkLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0hvc3RSZWNvcmQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTJDMDY4NzE2MzhGNjdFMDBBQkI5MTEgLyog
SG9zdFJlY29yZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBIb3N0UmVjb3Jk
Lmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Ib3N0UmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMkMwNjhGMTYzOTBFNjkwMEFCQjkxMSAvKiBOZXR3b3JrUmVzb3VyY2VM
b2FkU2NoZWR1bGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTMzNjgsNiArMzM3Miw4IEBACiAJCQkJQzA2QzYwOTQxMjRDMTQ0MzAwMDE2
ODJGIC8qIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKIAkJCQlCQzdCNjI1MTEyQTQz
Qzk2MDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwRGF0YS5jcHAgKi8sCiAJCQkJQkM3QjYyNTAxMkE0
M0M5NjAwRDE3NEE0IC8qIFdlYlBhZ2VHcm91cERhdGEuaCAqLywKKwkJCQk1MTI5MzVFNTEyOThG
MTk0MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5jcHAgKi8sCisJCQkJNTEyOTM1RTYx
Mjk4RjE5NDAwQTRCNjk1IC8qIFdlYlBhc3RlYm9hcmRDbGllbnQuaCAqLywKIAkJCQlDMDMzN0RE
QzEyN0E1MjFDMDA4RkY0RjQgLyogV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcCAqLywKIAkJCQlC
QzU3NDRFRDEyNjM4RkIzMDA2RjBGMTIgLyogV2ViUG9wdXBJdGVtLmNwcCAqLywKIAkJCQlCQzU3
NDRFRTEyNjM4RkIzMDA2RjBGMTIgLyogV2ViUG9wdXBJdGVtLmggKi8sCkBAIC01NjQ4LDYgKzU2
NTQsNyBAQAogCQkJCUMwQ0U3MkExMTI0N0U3MUQwMEJDMEVDNCAvKiBXZWJQYWdlTWVzc2FnZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREQxMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdl
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQkQzOTE1MTI1QkIxQTgwMEQyQzI5RiAvKiBX
ZWJQYWdlUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEyOTM1RTgxMjk4RjE5
NDAwQTRCNjk1IC8qIFdlYlBhc3RlYm9hcmRDbGllbnQuaCBpbiBIZWFkZXJzICovCiAJCQkJMUEz
RTczNjExMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFENTkyOUYxNjZFMDYwMDAwRTZCRjAyIC8qIFdlYlBsdWdJbkNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDODcwMkQxMzBCNDlBMjAwMkMxMjU3IC8qIFdlYlBsdWdp
blNpdGVEYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCkBAIC02OTM2LDYgKzY5NDMsNyBAQAog
CQkJCTUxQjMwMDUxMTI1MjlEMEUwMDBCNUNBMCAvKiBXZWJQYWdlUHJveHlDRi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzg1N0U4NzEyQjcxRUJCMDBFREVCMkUgLyogV2ViUGFnZVByb3h5TWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCRDM5MTQxMjVCQjFBODAwRDJDMjlGIC8qIFdlYlBh
Z2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTI5MzVFNzEy
OThGMTk0MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5jcHAgaW4gU291cmNlcyAqLwog
CQkJCTFBM0U3MzYyMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzAzMzdEREQxMjdBNTIxQzAwOEZGNEY0IC8qIFdlYlBsYXRm
b3JtVG91Y2hQb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUQ1OTI5RTE2NkUwNjAwMDBF
NkJGMDIgLyogV2ViUGx1Z0luQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAo=
</data>
<flag name="commit-queue"
          id="230672"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208728</attachid>
            <date>2013-08-14 08:24:52 -0700</date>
            <delta_ts>2013-08-14 08:32:46 -0700</delta_ts>
            <desc>add missing files</desc>
            <filename>pasteboard-client2.diff</filename>
            <type>text/plain</type>
            <size>16801</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggZjg5MzViOS4uODc3NGE5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTMwNSw2ICszMDUsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdy
b3VwLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1dl
YlBhc3RlYm9hcmRDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5jcHAK
ICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMWFkMjdmLi43NmNiODgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTMtMDYtMTQgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxt
LnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgcGFzdGVib2FyZCBjbGll
bnQgdG8gV0tDb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTk3OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgcGFzdGVib2FyZCBjbGllbnQgdG8gV0tDb250ZXh0IGZvciBwb3J0cyB0aGF0
IHdhbnQgdG8gZGVsZWdhdGUgY29weSBhbmQgcGFzdGUKKyAgICAgICAgb3BlcmF0aW9ucyBmcm9t
IFdlYlByb2Nlc3MgdG8gVUlQcm9jZXNzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0
U2V0UGFzdGVib2FyZENsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6aW5pdGlhbGl6ZVBhc3RlYm9hcmRDbGllbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDEzLTA4LTEyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4ZWQgYW4gb2ZmLWJ5LShzaXplb2YoY2hhciopIC0gMSkgYnVnLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNjI2Y2VkMy4uMDViYjIzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC05NzIsNiArOTcyLDggQEAgd2Via2l0Ml9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkQ2xpZW50LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3Rl
Ym9hcmRDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVu
dC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkK
aW5kZXggZTE1MzhiNy4uZDcxYjhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yNzksNiArMjc5LDcgQEAg
SEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmggXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRDbGllbnQuaCBcCiAgICAgVUlQcm9j
ZXNzL1dlYlBvbGljeUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIFwKQEAgLTYzOCw2ICs2MzksNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCBc
CiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZENsaWVudC5jcHAgXAogICAg
IFVJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUHJlZmVy
ZW5jZXMuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IDE2MjlhNTYuLjU4
ZTg4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
CkBAIC0xMDQsNiArMTA0LDExIEBAIHZvaWQgV0tDb250ZXh0U2V0Q29ubmVjdGlvbkNsaWVudChX
S0NvbnRleHRSZWYgY29udGV4dFJlZiwgY29uc3QgV0tDb250ZXh0Q29ubmVjCiAgICAgdG9JbXBs
KGNvbnRleHRSZWYpLT5pbml0aWFsaXplQ29ubmVjdGlvbkNsaWVudCh3a0NsaWVudCk7CiB9CiAK
K3ZvaWQgV0tDb250ZXh0U2V0UGFzdGVib2FyZENsaWVudChXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgY29uc3QgV0tDb250ZXh0UGFzdGVib2FyZENsaWVudCogd2tDbGllbnQpCit7CisgICAgdG9J
bXBsKGNvbnRleHRSZWYpLT5pbml0aWFsaXplUGFzdGVib2FyZENsaWVudCh3a0NsaWVudCk7Cit9
CisKIFdLRG93bmxvYWRSZWYgV0tDb250ZXh0RG93bmxvYWRVUkxSZXF1ZXN0KFdLQ29udGV4dFJl
ZiBjb250ZXh0UmVmLCBjb25zdCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZikKIHsKICAgICBy
ZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5kb3dubG9hZCgwLCB0b0ltcGwocmVxdWVz
dFJlZiktPnJlc291cmNlUmVxdWVzdCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgKaW5kZXggM2NlNzMxZS4uNjEzNzljYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApAQCAtMTUzLDYgKzE1MywyMCBAQCBlbnVtIHsK
IH07CiB0eXBlZGVmIHVpbnQzMl90IFdLU3RhdGlzdGljc09wdGlvbnM7CiAKKy8vIFBhc3RlYm9h
cmQgQ2xpZW50Cit0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tQYXN0ZWJvYXJkU3RyaW5nRm9yVHlw
ZUNhbGxiYWNrKShXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgcGFzdGVib2FyZFR5
cGUsIFdLU3RyaW5nUmVmIHBhc3RlYm9hcmROYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
K3R5cGVkZWYgdm9pZCAoKldLUGFzdGVib2FyZFNldFN0cmluZ0ZvclR5cGVDYWxsYmFjaykoV0tD
b250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIHN0cmluZywgV0tTdHJpbmdSZWYgcGFzdGVi
b2FyZFR5cGUsIFdLU3RyaW5nUmVmIHBhc3RlYm9hcmROYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKKworc3RydWN0IFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnQgeworICAgIGludCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAg
IGNvbnN0IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGll
bnRJbmZvOworICAgIFdLUGFzdGVib2FyZFN0cmluZ0ZvclR5cGVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICBzdHJpbmdGb3JUeXBlOworICAgIFdLUGFzdGVib2FyZFNldFN0cmluZ0ZvclR5cGVD
YWxsYmFjayAgICAgICAgICAgICAgICBzZXRTdHJpbmdGb3JUeXBlOworfTsKK3R5cGVkZWYgc3Ry
dWN0IFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnQgV0tDb250ZXh0UGFzdGVib2FyZENsaWVudDsK
KworZW51bSB7IGtXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50Q3VycmVudFZlcnNpb24gPSAwIH07
CisKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS0NvbnRleHRHZXRUeXBlSUQoKTsKIAogV0tfRVhQT1JU
IFdLQ29udGV4dFJlZiBXS0NvbnRleHRDcmVhdGUoKTsKQEAgLTE2Myw2ICsxNzcsNyBAQCBXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNsaWVudChXS0NvbnRleHRSZWYg
Y29udGV4dCwgY29uc3QgV0tDbwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0SGlzdG9yeUNs
aWVudChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgV0tDb250ZXh0SGlzdG9yeUNsaWVudCog
Y2xpZW50KTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldERvd25sb2FkQ2xpZW50KFdLQ29u
dGV4dFJlZiBjb250ZXh0LCBjb25zdCBXS0NvbnRleHREb3dubG9hZENsaWVudCogY2xpZW50KTsK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldENvbm5lY3Rpb25DbGllbnQoV0tDb250ZXh0UmVm
IGNvbnRleHQsIGNvbnN0IFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQqIGNsaWVudCk7CitXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRTZXRQYXN0ZWJvYXJkQ2xpZW50KFdLQ29udGV4dFJlZiBjb250
ZXh0LCBjb25zdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50KiBjbGllbnQpOwogCiBXS19FWFBP
UlQgV0tEb3dubG9hZFJlZiBXS0NvbnRleHREb3dubG9hZFVSTFJlcXVlc3QoV0tDb250ZXh0UmVm
IGNvbnRleHQsIGNvbnN0IFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IGJiYzg3YmIuLmUwZTVkYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTI3MCw2ICsyNzAsMTEgQEAgdm9p
ZCBXZWJDb250ZXh0Ojppbml0aWFsaXplRG93bmxvYWRDbGllbnQoY29uc3QgV0tDb250ZXh0RG93
bmxvYWRDbGllbnQqIGNsaWVudCkKICAgICBtX2Rvd25sb2FkQ2xpZW50LmluaXRpYWxpemUoY2xp
ZW50KTsKIH0KIAordm9pZCBXZWJDb250ZXh0Ojppbml0aWFsaXplUGFzdGVib2FyZENsaWVudChj
b25zdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50KiBjbGllbnQpCit7CisgICAgbV9wYXN0ZWJv
YXJkQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKwogdm9pZCBXZWJDb250ZXh0OjpzZXRQ
cm9jZXNzTW9kZWwoUHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbCkKIHsKICAgICAvLyBHdWFyZCBh
Z2FpbnN0IEFQSSBtaXN1c2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRl
eCA0ZTk5NThkLi4zNzZhNmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgK
QEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJEb3dubG9hZENsaWVudC5oIgogI2luY2x1ZGUgIldlYkhpc3Rv
cnlDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xMjIsNiArMTIzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
aW5pdGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQoY29uc3QgV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVu
dCopOwogICAgIHZvaWQgaW5pdGlhbGl6ZUhpc3RvcnlDbGllbnQoY29uc3QgV0tDb250ZXh0SGlz
dG9yeUNsaWVudCopOwogICAgIHZvaWQgaW5pdGlhbGl6ZURvd25sb2FkQ2xpZW50KGNvbnN0IFdL
Q29udGV4dERvd25sb2FkQ2xpZW50Kik7CisgICAgdm9pZCBpbml0aWFsaXplUGFzdGVib2FyZENs
aWVudChjb25zdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50Kik7CiAKICAgICB2b2lkIHNldFBy
b2Nlc3NNb2RlbChQcm9jZXNzTW9kZWwpOyAvLyBDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGVy
ZSBhcmUgbm8gcHJvY2Vzc2VzIHJ1bm5pbmcuCiAgICAgUHJvY2Vzc01vZGVsIHByb2Nlc3NNb2Rl
bCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc01vZGVsOyB9CkBAIC00MDQsNiArNDA2LDcgQEAg
cHJpdmF0ZToKICAgICBXZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudCBtX2Nvbm5lY3Rpb25DbGll
bnQ7CiAgICAgV2ViRG93bmxvYWRDbGllbnQgbV9kb3dubG9hZENsaWVudDsKICAgICBXZWJIaXN0
b3J5Q2xpZW50IG1faGlzdG9yeUNsaWVudDsKKyAgICBXZWJQYXN0ZWJvYXJkQ2xpZW50IG1fcGFz
dGVib2FyZENsaWVudDsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFBs
dWdpbkluZm9TdG9yZSBtX3BsdWdpbkluZm9TdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kNWMxZjAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhc3RlYm9hcmRDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUGFzdGVib2FyZENsaWVudC5o
IgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitTdHJp
bmcgV2ViUGFzdGVib2FyZENsaWVudDo6c3RyaW5nRm9yVHlwZShXZWJDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lKQoreworICAgIGlmICghbV9jbGllbnQuc3RyaW5nRm9yVHlwZSkKKyAgICAgICAgcmV0dXJu
IFN0cmluZygpOworCisgICAgcmV0dXJuIHRvV1RGU3RyaW5nKG1fY2xpZW50LnN0cmluZ0ZvclR5
cGUodG9BUEkoY29udGV4dCksIHRvQVBJKHBhc3RlYm9hcmRUeXBlLmltcGwoKSksIHRvQVBJKHBh
c3RlYm9hcmROYW1lLmltcGwoKSksIG1fY2xpZW50LmNsaWVudEluZm8pKTsKK30KKwordm9pZCBX
ZWJQYXN0ZWJvYXJkQ2xpZW50OjpzZXRTdHJpbmdGb3JUeXBlKFdlYkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQoreworICAgIGlmICghbV9jbGllbnQuc2V0U3RyaW5n
Rm9yVHlwZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc2V0U3RyaW5nRm9yVHlw
ZSh0b0FQSShjb250ZXh0KSwgdG9BUEkoc3RyaW5nLmltcGwoKSksIHRvQVBJKHBhc3RlYm9hcmRU
eXBlLmltcGwoKSksIHRvQVBJKHBhc3RlYm9hcmROYW1lLmltcGwoKSksIG1fY2xpZW50LmNsaWVu
dEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFzdGVib2FyZENsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjQ0ZTkyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFzdGVib2FyZENsaWVudC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE
RVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYlBhc3RlYm9hcmRDbGllbnRfaAorI2RlZmluZSBXZWJQYXN0ZWJvYXJkQ2xp
ZW50X2gKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLQ29udGV4dC5oIgor
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJDb250ZXh0OworCitjbGFzcyBXZWJQYXN0ZWJvYXJkQ2xpZW50IDogcHVibGlj
IEFQSUNsaWVudDxXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50LCBrV0tDb250ZXh0UGFzdGVib2Fy
ZENsaWVudEN1cnJlbnRWZXJzaW9uPiB7CitwdWJsaWM6CisgICAgU3RyaW5nIHN0cmluZ0ZvclR5
cGUoV2ViQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CisgICAgdm9pZCBzZXRTdHJpbmdGb3JUeXBlKFdl
YkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOworCit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlBhc3RlYm9hcmRDbGllbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDljMzgz
ZTEuLmUwZDYzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQzMiw2ICs0MzIsOCBAQAogCQk1MTI5MzVEODEyODhEMTk0MDBB
NEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4
dE1lbnVJdGVtLmggKi87IH07CiAJCTUxMjkzNUUzMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovOyB9OwogCQk1MTI5MzVFNDEyODhE
OTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUyMTI4OEQ5
NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovOyB9
OworCQk1MTI5MzVFNzEyOThGMTk0MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFNzEy
OThGMTk0MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5jcHAgKi87IH07CisJCTUxMjkz
NUU4MTI5OEYxOTQwMEE0QjY5NSAvKiBXZWJQYXN0ZWJvYXJkQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFODEyOThGMTk0MDBBNEI2
OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5oICovOyB9OwogCQk1MTJDMDY4ODE2MzhGNjdFMDBB
QkI5MTEgLyogSG9zdFJlY29yZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTJDMDY4NjE2MzhGNjdFMDBBQkI5MTEgLyogSG9zdFJlY29yZC5jcHAg
Ki87IH07CiAJCTUxMkMwNjg5MTYzOEY2N0UwMEFCQjkxMSAvKiBIb3N0UmVjb3JkLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJDMDY4NzE2MzhGNjdF
MDBBQkI5MTEgLyogSG9zdFJlY29yZC5oICovOyB9OwogCQk1MTJDMDY5MDE2MzkwRTY5MDBBQkI5
MTEgLyogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlck1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkMwNjhGMTYzOTBFNjkwMEFCQjkxMSAv
KiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyTWFjLm1tICovOyB9OwpAQCAtMTkwOCw2ICsx
OTEwLDggQEAKIAkJNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRl
bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1
IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTIxMjg4RDk3ODAw
QTRCNjk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMjkzNUU1MTI5OEYxOTQwMEE0
QjY5NSAvKiBXZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlBhc3RlYm9hcmRDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTI5MzVFNjEyOThGMTk0MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYXN0ZWJvYXJkQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkMwNjg2MTYzOEY2N0UwMEFCQjkx
MSAvKiBIb3N0UmVjb3JkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEhvc3RSZWNvcmQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkMwNjg3MTYzOEY2N0UwMEFCQjkxMSAvKiBI
b3N0UmVjb3JkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhvc3RSZWNvcmQu
aDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0hvc3RSZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTEyQzA2OEYxNjM5MEU2OTAwQUJCOTExIC8qIE5ldHdvcmtSZXNvdXJjZUxv
YWRTY2hlZHVsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMzM2OCw2ICszMzcyLDggQEAKIAkJCQlDMDZDNjA5NDEyNEMxNDQzMDAwMTY4
MkYgLyogV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oICovLAogCQkJCUJDN0I2MjUxMTJBNDND
OTYwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXBEYXRhLmNwcCAqLywKIAkJCQlCQzdCNjI1MDEyQTQz
Qzk2MDBEMTc0QTQgLyogV2ViUGFnZUdyb3VwRGF0YS5oICovLAorCQkJCTUxMjkzNUU1MTI5OEYx
OTQwMEE0QjY5NSAvKiBXZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcCAqLywKKwkJCQk1MTI5MzVFNjEy
OThGMTk0MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5oICovLAogCQkJCUMwMzM3RERD
MTI3QTUyMUMwMDhGRjRGNCAvKiBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwICovLAogCQkJCUJD
NTc0NEVEMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uY3BwICovLAogCQkJCUJDNTc0
NEVFMTI2MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uaCAqLywKQEAgLTU2NDgsNiArNTY1
NCw3IEBACiAJCQkJQzBDRTcyQTExMjQ3RTcxRDAwQkMwRUM0IC8qIFdlYlBhZ2VNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJERDExMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlBhZ2VQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCRDM5MTUxMjVCQjFBODAwRDJDMjlGIC8qIFdl
YlBhZ2VQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTI5MzVFODEyOThGMTk0
MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5oIGluIEhlYWRlcnMgKi8KIAkJCQkxQTNF
NzM2MTExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUQ1OTI5RjE2NkUwNjAwMDBFNkJGMDIgLyogV2ViUGx1Z0luQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUM4NzAyRDEzMEI0OUEyMDAyQzEyNTcgLyogV2ViUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTY5MzYsNiArNjk0Myw3IEBACiAJ
CQkJNTFCMzAwNTExMjUyOUQwRTAwMEI1Q0EwIC8qIFdlYlBhZ2VQcm94eUNGLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDODU3RTg3MTJCNzFFQkIwMEVERUIyRSAvKiBXZWJQYWdlUHJveHlNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0JEMzkxNDEyNUJCMUE4MDBEMkMyOUYgLyogV2ViUGFn
ZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMjkzNUU3MTI5
OEYxOTQwMEE0QjY5NSAvKiBXZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovCiAJ
CQkJMUEzRTczNjIxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDMDMzN0RERDEyN0E1MjFDMDA4RkY0RjQgLyogV2ViUGxhdGZv
cm1Ub3VjaFBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRDU5MjlFMTY2RTA2MDAwMEU2
QkYwMiAvKiBXZWJQbHVnSW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208729</attachid>
            <date>2013-08-14 08:32:46 -0700</date>
            <delta_ts>2014-06-12 03:09:29 -0700</delta_ts>
            <desc>fixed style</desc>
            <filename>pasteboard-client3.diff</filename>
            <type>text/plain</type>
            <size>16792</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggZjg5MzViOS4uODc3NGE5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTMwNSw2ICszMDUsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvV2ViUGFnZUdy
b3VwLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL1dl
YlBhc3RlYm9hcmRDbGllbnQuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5jcHAK
ICAgICBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlMWFkMjdmLi4xYTQxYmJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTMtMDg4ODg4ODg4LTE0ICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1
dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIHBhc3RlYm9h
cmQgY2xpZW50IHRvIFdLQ29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTE5Nzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHBhc3RlYm9hcmQgY2xpZW50IHRvIFdLQ29udGV4dCBmb3IgcG9y
dHMgdGhhdCB3YW50IHRvIGRlbGVnYXRlIGNvcHkgYW5kIHBhc3RlCisgICAgICAgIG9wZXJhdGlv
bnMgZnJvbSBXZWJQcm9jZXNzIHRvIFVJUHJvY2Vzcy4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdL
Q29udGV4dFNldFBhc3RlYm9hcmRDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OmluaXRpYWxpemVQYXN0ZWJvYXJkQ2xpZW50KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAxMy0wOC0xMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeGVkIGFuIG9mZi1ieS0oc2l6ZW9mKGNoYXIqKSAtIDEpIGJ1
Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDYyNmNlZDMuLjA1YmIyMzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtOTcyLDYgKzk3Miw4IEBAIHdlYmtpdDJf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBcCiAJU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFzdGVib2FyZENsaWVudC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYXN0ZWJvYXJkQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQb2xp
Y3lDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50
LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQb3B1cE1lbnVQcm94eS5oIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpCmluZGV4IGUxNTM4YjcuLmQ3MWI4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMjc5LDYgKzI3
OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlQ29udGV4dE1lbnVDbGll
bnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oIFwKICAgICBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggXAorICAgIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkQ2xpZW50LmggXAogICAg
IFVJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYlByZWZlcmVu
Y2VzLmggXAogICAgIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBcCkBAIC02MzgsNiArNjM5
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VDb250ZXh0TWVudUNsaWVu
dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuY3BwIFwKICAgICBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRDbGllbnQuY3Bw
IFwKICAgICBVSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dl
YlByZWZlcmVuY2VzLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCAxNjI5
YTU2Li41OGU4ODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcApAQCAtMTA0LDYgKzEwNCwxMSBAQCB2b2lkIFdLQ29udGV4dFNldENvbm5lY3Rpb25D
bGllbnQoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIGNvbnN0IFdLQ29udGV4dENvbm5lYwogICAg
IHRvSW1wbChjb250ZXh0UmVmKS0+aW5pdGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQod2tDbGllbnQp
OwogfQogCit2b2lkIFdLQ29udGV4dFNldFBhc3RlYm9hcmRDbGllbnQoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIGNvbnN0IFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnQqIHdrQ2xpZW50KQorewor
ICAgIHRvSW1wbChjb250ZXh0UmVmKS0+aW5pdGlhbGl6ZVBhc3RlYm9hcmRDbGllbnQod2tDbGll
bnQpOworfQorCiBXS0Rvd25sb2FkUmVmIFdLQ29udGV4dERvd25sb2FkVVJMUmVxdWVzdChXS0Nv
bnRleHRSZWYgY29udGV4dFJlZiwgY29uc3QgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCiB7
CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+ZG93bmxvYWQoMCwgdG9JbXBs
KHJlcXVlc3RSZWYpLT5yZXNvdXJjZVJlcXVlc3QoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5oCmluZGV4IDNjZTczMWUuLjYxMzc5Y2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKQEAgLTE1Myw2ICsxNTMsMjAgQEAg
ZW51bSB7CiB9OwogdHlwZWRlZiB1aW50MzJfdCBXS1N0YXRpc3RpY3NPcHRpb25zOwogCisvLyBQ
YXN0ZWJvYXJkIENsaWVudAordHlwZWRlZiBXS1N0cmluZ1JlZiAoKldLUGFzdGVib2FyZFN0cmlu
Z0ZvclR5cGVDYWxsYmFjaykoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIHBhc3Rl
Ym9hcmRUeXBlLCBXS1N0cmluZ1JlZiBwYXN0ZWJvYXJkTmFtZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1Bhc3RlYm9hcmRTZXRTdHJpbmdGb3JUeXBlQ2FsbGJh
Y2spKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBzdHJpbmcsIFdLU3RyaW5nUmVm
IHBhc3RlYm9hcmRUeXBlLCBXS1N0cmluZ1JlZiBwYXN0ZWJvYXJkTmFtZSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CisKK3N0cnVjdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50IHsKKyAgICBp
bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lv
bjsKKyAgICBjb25zdCB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpZW50SW5mbzsKKyAgICBXS1Bhc3RlYm9hcmRTdHJpbmdGb3JUeXBlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgc3RyaW5nRm9yVHlwZTsKKyAgICBXS1Bhc3RlYm9hcmRTZXRTdHJpbmdG
b3JUeXBlQ2FsbGJhY2sgICAgICAgICAgICAgICAgc2V0U3RyaW5nRm9yVHlwZTsKK307Cit0eXBl
ZGVmIHN0cnVjdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50IFdLQ29udGV4dFBhc3RlYm9hcmRD
bGllbnQ7CisKK2VudW0geyBrV0tDb250ZXh0UGFzdGVib2FyZENsaWVudEN1cnJlbnRWZXJzaW9u
ID0gMCB9OworCiBXS19FWFBPUlQgV0tUeXBlSUQgV0tDb250ZXh0R2V0VHlwZUlEKCk7CiAKIFdL
X0VYUE9SVCBXS0NvbnRleHRSZWYgV0tDb250ZXh0Q3JlYXRlKCk7CkBAIC0xNjMsNiArMTc3LDcg
QEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoV0tDb250
ZXh0UmVmIGNvbnRleHQsIGNvbnN0IFdLQ28KIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEhp
c3RvcnlDbGllbnQoV0tDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IFdLQ29udGV4dEhpc3RvcnlD
bGllbnQqIGNsaWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXREb3dubG9hZENsaWVu
dChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgV0tDb250ZXh0RG93bmxvYWRDbGllbnQqIGNs
aWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRDb25uZWN0aW9uQ2xpZW50KFdLQ29u
dGV4dFJlZiBjb250ZXh0LCBjb25zdCBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50KiBjbGllbnQp
OworV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0UGFzdGVib2FyZENsaWVudChXS0NvbnRleHRS
ZWYgY29udGV4dCwgY29uc3QgV0tDb250ZXh0UGFzdGVib2FyZENsaWVudCogY2xpZW50KTsKIAog
V0tfRVhQT1JUIFdLRG93bmxvYWRSZWYgV0tDb250ZXh0RG93bmxvYWRVUkxSZXF1ZXN0KFdLQ29u
dGV4dFJlZiBjb250ZXh0LCBjb25zdCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCBiYmM4N2JiLi5lMGU1ZGEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC0yNzAsNiArMjcwLDEx
IEBAIHZvaWQgV2ViQ29udGV4dDo6aW5pdGlhbGl6ZURvd25sb2FkQ2xpZW50KGNvbnN0IFdLQ29u
dGV4dERvd25sb2FkQ2xpZW50KiBjbGllbnQpCiAgICAgbV9kb3dubG9hZENsaWVudC5pbml0aWFs
aXplKGNsaWVudCk7CiB9CiAKK3ZvaWQgV2ViQ29udGV4dDo6aW5pdGlhbGl6ZVBhc3RlYm9hcmRD
bGllbnQoY29uc3QgV0tDb250ZXh0UGFzdGVib2FyZENsaWVudCogY2xpZW50KQoreworICAgIG1f
cGFzdGVib2FyZENsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKIHZvaWQgV2ViQ29udGV4
dDo6c2V0UHJvY2Vzc01vZGVsKFByb2Nlc3NNb2RlbCBwcm9jZXNzTW9kZWwpCiB7CiAgICAgLy8g
R3VhcmQgYWdhaW5zdCBBUEkgbWlzdXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmgKaW5kZXggNGU5OTU4ZC4uMzc2YTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5oCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dEluamVjdGVkQnVu
ZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRG93bmxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJX
ZWJIaXN0b3J5Q2xpZW50LmgiCisjaW5jbHVkZSAiV2ViUGFzdGVib2FyZENsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMTIyLDYgKzEyMyw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uQ2xpZW50KGNvbnN0IFdLQ29udGV4dENvbm5lY3Rp
b25DbGllbnQqKTsKICAgICB2b2lkIGluaXRpYWxpemVIaXN0b3J5Q2xpZW50KGNvbnN0IFdLQ29u
dGV4dEhpc3RvcnlDbGllbnQqKTsKICAgICB2b2lkIGluaXRpYWxpemVEb3dubG9hZENsaWVudChj
b25zdCBXS0NvbnRleHREb3dubG9hZENsaWVudCopOworICAgIHZvaWQgaW5pdGlhbGl6ZVBhc3Rl
Ym9hcmRDbGllbnQoY29uc3QgV0tDb250ZXh0UGFzdGVib2FyZENsaWVudCopOwogCiAgICAgdm9p
ZCBzZXRQcm9jZXNzTW9kZWwoUHJvY2Vzc01vZGVsKTsgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIHdo
ZW4gdGhlcmUgYXJlIG5vIHByb2Nlc3NlcyBydW5uaW5nLgogICAgIFByb2Nlc3NNb2RlbCBwcm9j
ZXNzTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NNb2RlbDsgfQpAQCAtNDA0LDYgKzQw
Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQgbV9jb25uZWN0
aW9uQ2xpZW50OwogICAgIFdlYkRvd25sb2FkQ2xpZW50IG1fZG93bmxvYWRDbGllbnQ7CiAgICAg
V2ViSGlzdG9yeUNsaWVudCBtX2hpc3RvcnlDbGllbnQ7CisgICAgV2ViUGFzdGVib2FyZENsaWVu
dCBtX3Bhc3RlYm9hcmRDbGllbnQ7CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkK
ICAgICBQbHVnaW5JbmZvU3RvcmUgbV9wbHVnaW5JbmZvU3RvcmU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZENsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZENsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZDVjMWYwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcApAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRD
bGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworU3RyaW5nIFdlYlBhc3RlYm9hcmRDbGllbnQ6OnN0cmluZ0ZvclR5cGUoV2ViQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnN0cmluZ0ZvclR5cGUpCisgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKKworICAgIHJldHVybiB0b1dURlN0cmluZyhtX2NsaWVudC5zdHJp
bmdGb3JUeXBlKHRvQVBJKGNvbnRleHQpLCB0b0FQSShwYXN0ZWJvYXJkVHlwZS5pbXBsKCkpLCB0
b0FQSShwYXN0ZWJvYXJkTmFtZS5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKSk7Cit9CisK
K3ZvaWQgV2ViUGFzdGVib2FyZENsaWVudDo6c2V0U3RyaW5nRm9yVHlwZShXZWJDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnNl
dFN0cmluZ0ZvclR5cGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LnNldFN0cmlu
Z0ZvclR5cGUodG9BUEkoY29udGV4dCksIHRvQVBJKHN0cmluZy5pbXBsKCkpLCB0b0FQSShwYXN0
ZWJvYXJkVHlwZS5pbXBsKCkpLCB0b0FQSShwYXN0ZWJvYXJkTmFtZS5pbXBsKCkpLCBtX2NsaWVu
dC5jbGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZENsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi43YjNkMWI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRDbGllbnQuaApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJQYXN0ZWJvYXJkQ2xpZW50X2gKKyNkZWZpbmUgV2ViUGFzdGVi
b2FyZENsaWVudF9oCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS0NvbnRl
eHQuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsKKworY2xhc3MgV2ViUGFzdGVib2FyZENsaWVudCA6
IHB1YmxpYyBBUElDbGllbnQ8V0tDb250ZXh0UGFzdGVib2FyZENsaWVudCwga1dLQ29udGV4dFBh
c3RlYm9hcmRDbGllbnRDdXJyZW50VmVyc2lvbj4geworcHVibGljOgorICAgIFN0cmluZyBzdHJp
bmdGb3JUeXBlKFdlYkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKKyAgICB2b2lkIHNldFN0cmluZ0ZvclR5cGUoV2Vi
Q29udGV4dCosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFdlYlBhc3RlYm9hcmRDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDljMzgzZTEuLmUwZDYz
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTQzMiw2ICs0MzIsOCBAQAogCQk1MTI5MzVEODEyODhEMTk0MDBBNEI2OTUgLyog
V2ViQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVt
LmggKi87IH07CiAJCTUxMjkzNUUzMTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBh
Z2VDb250ZXh0TWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovOyB9OwogCQk1MTI5MzVFNDEyODhEOTc4MDBBNEI2
OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUyMTI4OEQ5NzgwMEE0QjY5
NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICovOyB9OworCQk1MTI5
MzVFNzEyOThGMTk0MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFNzEyOThGMTk0MDBB
NEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5jcHAgKi87IH07CisJCTUxMjkzNUU4MTI5OEYx
OTQwMEE0QjY5NSAvKiBXZWJQYXN0ZWJvYXJkQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVFODEyOThGMTk0MDBBNEI2OTUgLyogV2Vi
UGFzdGVib2FyZENsaWVudC5oICovOyB9OwogCQk1MTJDMDY4ODE2MzhGNjdFMDBBQkI5MTEgLyog
SG9zdFJlY29yZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTJDMDY4NjE2MzhGNjdFMDBBQkI5MTEgLyogSG9zdFJlY29yZC5jcHAgKi87IH07CiAJ
CTUxMkMwNjg5MTYzOEY2N0UwMEFCQjkxMSAvKiBIb3N0UmVjb3JkLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTJDMDY4NzE2MzhGNjdFMDBBQkI5MTEg
LyogSG9zdFJlY29yZC5oICovOyB9OwogCQk1MTJDMDY5MDE2MzkwRTY5MDBBQkI5MTEgLyogTmV0
d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMkMwNjhGMTYzOTBFNjkwMEFCQjkxMSAvKiBOZXR3b3Jr
UmVzb3VyY2VMb2FkU2NoZWR1bGVyTWFjLm1tICovOyB9OwpAQCAtMTkwOCw2ICsxOTEwLDggQEAK
IAkJNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRCNjk1IC8qIEluamVj
dGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8q
IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMjkzNUU1MTI5OEYxOTQwMEE0QjY5NSAvKiBX
ZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYlBhc3RlYm9hcmRDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MTI5MzVFNjEyOThGMTk0MDBBNEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYXN0ZWJvYXJkQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMkMwNjg2MTYzOEY2N0UwMEFCQjkxMSAvKiBIb3N0
UmVjb3JkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEhvc3RSZWNv
cmQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMkMwNjg3MTYzOEY2N0UwMEFCQjkxMSAvKiBIb3N0UmVjb3Jk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhvc3RSZWNvcmQuaDsgcGF0aCA9
IE5ldHdvcmtQcm9jZXNzL0hvc3RSZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyQzA2OEYxNjM5MEU2OTAwQUJCOTExIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVs
ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3Jr
UmVzb3VyY2VMb2FkU2NoZWR1bGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzM2OCw2ICszMzcyLDggQEAKIAkJCQlDMDZDNjA5NDEyNEMxNDQzMDAwMTY4MkYgLyogV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oICovLAogCQkJCUJDN0I2MjUxMTJBNDNDOTYwMEQxNzRB
NCAvKiBXZWJQYWdlR3JvdXBEYXRhLmNwcCAqLywKIAkJCQlCQzdCNjI1MDEyQTQzQzk2MDBEMTc0
QTQgLyogV2ViUGFnZUdyb3VwRGF0YS5oICovLAorCQkJCTUxMjkzNUU1MTI5OEYxOTQwMEE0QjY5
NSAvKiBXZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcCAqLywKKwkJCQk1MTI5MzVFNjEyOThGMTk0MDBB
NEI2OTUgLyogV2ViUGFzdGVib2FyZENsaWVudC5oICovLAogCQkJCUMwMzM3RERDMTI3QTUyMUMw
MDhGRjRGNCAvKiBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwICovLAogCQkJCUJDNTc0NEVEMTI2
MzhGQjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uY3BwICovLAogCQkJCUJDNTc0NEVFMTI2MzhG
QjMwMDZGMEYxMiAvKiBXZWJQb3B1cEl0ZW0uaCAqLywKQEAgLTU2NDgsNiArNTY1NCw3IEBACiAJ
CQkJQzBDRTcyQTExMjQ3RTcxRDAwQkMwRUM0IC8qIFdlYlBhZ2VNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwMzJERDExMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlBhZ2VQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNCRDM5MTUxMjVCQjFBODAwRDJDMjlGIC8qIFdlYlBhZ2VQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTI5MzVFODEyOThGMTk0MDBBNEI2OTUg
LyogV2ViUGFzdGVib2FyZENsaWVudC5oIGluIEhlYWRlcnMgKi8KIAkJCQkxQTNFNzM2MTExQ0My
NjU5MDA3QkQ1MzkgLyogV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMUQ1OTI5RjE2NkUwNjAwMDBFNkJGMDIgLyogV2ViUGx1Z0luQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUM4NzAyRDEzMEI0OUEyMDAyQzEyNTcgLyogV2ViUGx1Z2luU2l0ZURhdGFN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTY5MzYsNiArNjk0Myw3IEBACiAJCQkJNTFCMzAw
NTExMjUyOUQwRTAwMEI1Q0EwIC8qIFdlYlBhZ2VQcm94eUNGLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDODU3RTg3MTJCNzFFQkIwMEVERUIyRSAvKiBXZWJQYWdlUHJveHlNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlCQ0JEMzkxNDEyNUJCMUE4MDBEMkMyOUYgLyogV2ViUGFnZVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMjkzNUU3MTI5OEYxOTQwMEE0
QjY5NSAvKiBXZWJQYXN0ZWJvYXJkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovCiAJCQkJMUEzRTcz
NjIxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDMDMzN0RERDEyN0E1MjFDMDA4RkY0RjQgLyogV2ViUGxhdGZvcm1Ub3VjaFBv
aW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRDU5MjlFMTY2RTA2MDAwMEU2QkYwMiAvKiBX
ZWJQbHVnSW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>
<flag name="review"
          id="230674"
          type_id="1"
          status="-"
          setter="sam"
    />
    <flag name="commit-queue"
          id="230678"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232941</attachid>
            <date>2014-06-12 03:09:29 -0700</date>
            <delta_ts>2014-07-21 07:07:47 -0700</delta_ts>
            <desc>new patch</desc>
            <filename>pasteboardclient.diff</filename>
            <type>text/plain</type>
            <size>21320</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYjVkZjc4Li5hNDhmNzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTQtMDYtMTIgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1z
dW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBwYXN0ZWJvYXJkIGNsaWVudCB0byBX
S0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExOTc5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyBhcyB0aGVyZSBpcyBubyBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAg
ICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6IEFkZCBtZXRob2RzIGZvciByZWFk
aW5nIGFuZCB3cml0aW5nIHN0cmluZyB0byBwYXN0ZWJvYXJkIGZvciBFRkwgcG9ydC4KKwogMjAx
NC0wNi0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBVbnN1cHBvcnRlZCBicm93c2VyIGluIHd3dy5pY2xvdWQuY29tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oCmluZGV4IGY1ZTk1NTIuLmVm
MDI2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5o
CkBAIC02OCw2ICs2OCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBsb25nIHNldFBhdGhuYW1l
c0ZvclR5cGUoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRU
eXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCBsb25n
IHNldFN0cmluZ0ZvclR5cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmCisjaWYgUExB
VEZPUk0oRUZMKQorICAgIHZpcnR1YWwgU3RyaW5nIHJlYWRGcm9tUGFzdGVib2FyZChjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRGb3JtYXQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkRm9ybWF0
KSA9IDA7CisjZW5kaWYKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5QYXN0ZWJvYXJkU3RyYXRl
Z3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ZWQzMWNlLi45OWZjZWEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTQtMDYtMTIgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxt
LnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBwYXN0ZWJvYXJk
IGNsaWVudCB0byBXS0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExOTc5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBwYXN0ZWJvYXJkIGNsaWVudCB0byBXS0NvbnRleHQgZm9yIEVGTCBw
b3J0IHRvIGRlbGVnYXRlIGNvcHkgYW5kIHBhc3RlCisgICAgICAgIG9wZXJhdGlvbnMgZnJvbSBX
ZWJQcm9jZXNzIHRvIFVJUHJvY2VzcywgYXMgaXQgaXMgbmVlZGVkIHRvIGludGVncmF0ZSBXZWJL
aXQKKyAgICAgICAgYW5kIEVGTCBwYXN0ZWJvYXJkLgorCisgICAgICAgICogUGxhdGZvcm1FZmwu
Y21ha2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbnRleHRFZmwuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdLQ29udGV4dFNldFBhc3RlYm9hcmRDbGllbnQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb250ZXh0RWZsLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9lZmwvV0tDb250ZXh0UGFzdGVib2FyZENsaWVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9BUElQYXN0ZWJvYXJkQ2xpZW50Lmg6IEFkZGVkLgor
ICAgICAgICAoQVBJOjpQYXN0ZWJvYXJkQ2xpZW50Ojp+UGFzdGVib2FyZENsaWVudCk6CisgICAg
ICAgIChBUEk6OlBhc3RlYm9hcmRDbGllbnQ6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCk6Cisg
ICAgICAgIChBUEk6OlBhc3RlYm9hcmRDbGllbnQ6OndyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGFzdGVib2FyZENs
aWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQubWVzc2FnZXMuaW46CisgICAg
ICAgICogVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6c2V0UGFzdGVib2FyZENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6
OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6
OndyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBs
YXRmb3JtU3RyYXRlZ2llczo6cmVhZEZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwogMjAxNC0w
Ni0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gUmVtb3ZlIHZpZXcgbW9kZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5k
ZXggZDZlZDgzZS4uNWZmNGVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTYxLDYg
KzYxLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9D
L2NhaXJvL1dLSWNvbkRhdGFiYXNlQ2Fpcm8uY3BwCiAKICAgICBVSVByb2Nlc3MvQVBJL0MvZWZs
L1dLQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL0MvZWZs
L1dLQ29udGV4dEVmbC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLRXZlbnRFZmwuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BhZ2VFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL2VmbC9XS1BvcHVwSXRlbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9lZmwvV0tDb250ZXh0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tDb250ZXh0RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40YzFiYTcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL2VmbC9XS0NvbnRleHRFZmwuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgU2Ftc3VuZyBFbGVjdHJvbmljcy4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLQ29udGV4dEVmbC5oIgorCisj
aW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJUGFzdGVib2FyZENsaWVudC5oIgor
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCisjaW5jbHVk
ZSAiV2ViQ29udGV4dC5oIgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENs
aWVudFRyYWl0czxXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYg
c3RkOjp0dXBsZTxXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50VjA+IFZlcnNpb25zOworfTsKK30K
KwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwordm9pZCBXS0NvbnRleHRTZXRQYXN0ZWJvYXJk
Q2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBjb25zdCBXS0NvbnRleHRQYXN0ZWJvYXJk
Q2xpZW50QmFzZSogd2tDbGllbnQpCit7CisgICAgY2xhc3MgUGFzdGVib2FyZENsaWVudCBmaW5h
bCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50QmFzZT4sIHB1
YmxpYyBBUEk6OlBhc3RlYm9hcmRDbGllbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGlj
aXQgUGFzdGVib2FyZENsaWVudChjb25zdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50QmFzZSog
Y2xpZW50KQorICAgICAgICB7CisgICAgICAgICAgICBpbml0aWFsaXplKGNsaWVudCk7CisgICAg
ICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIHJlYWRTdHJpbmdG
cm9tUGFzdGVib2FyZChXZWJDb250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRGb3JtYXQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICghbV9jbGllbnQucmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKQorICAgICAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IHN0cmluZyhBZG9wdFdLLCBtX2NsaWVudC5yZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQo
dG9BUEkoY29udGV4dCksIHRvQVBJKHBhc3RlYm9hcmRUeXBlLmltcGwoKSksIHRvQVBJKHBhc3Rl
Ym9hcmRGb3JtYXQuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSk7CisKKyAgICAg
ICAgICAgIHJldHVybiB0b1dURlN0cmluZyhzdHJpbmcuZ2V0KCkpOworCisgICAgICAgIH0KKyAg
ICAgICAgdmlydHVhbCB2b2lkIHdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFdlYkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZEZvcm1hdCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICghbV9jbGllbnQud3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICBtX2NsaWVudC53cml0ZVN0cmluZ1RvUGFzdGVib2FyZCh0
b0FQSShjb250ZXh0KSwgdG9BUEkocGFzdGVib2FyZFR5cGUuaW1wbCgpKSwgdG9BUEkocGFzdGVi
b2FyZEZvcm1hdC5pbXBsKCkpLCB0b0FQSShzdHJpbmcuaW1wbCgpKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKKyAgICAgICAgfQorCisgICAgfTsKKworICAgIHRvSW1wbChjb250ZXh0UmVm
KS0+c2V0UGFzdGVib2FyZENsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmRDbGllbnQ+
KHdrQ2xpZW50KSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLQ29udGV4dEVmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS0NvbnRleHRFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmJj
MDYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS0NvbnRleHRFZmwuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IFNhbXN1bmcgRWxlY3Ryb25pY3MuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V0tDb250ZXh0RWZsX2gKKyNkZWZpbmUgV0tDb250ZXh0RWZsX2gKKworI2luY2x1ZGUgIldLQ29u
dGV4dFBhc3RlYm9hcmRDbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0U2V0UGFzdGVib2FyZENsaWVudChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qg
V0tDb250ZXh0UGFzdGVib2FyZENsaWVudEJhc2UqIGNsaWVudCk7CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS0NvbnRleHRFZmxfaCAqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbnRleHRQYXN0ZWJvYXJk
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29udGV4dFBh
c3RlYm9hcmRDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTA1
N2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnRfaAorI2RlZmluZSBXS0NvbnRl
eHRQYXN0ZWJvYXJkQ2xpZW50X2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKwordHlw
ZWRlZiBXS1N0cmluZ1JlZiAoKldLQ29udGV4dFJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZENhbGxi
YWNrKShXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgcGFzdGVib2FyZFR5cGUsIFdL
U3RyaW5nUmVmIHBhc3RlYm9hcmRGb3JtYXQsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlw
ZWRlZiB2b2lkICgqV0tDb250ZXh0V3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmRDYWxsYmFjaykoV0tD
b250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIHBhc3RlYm9hcmRUeXBlLCBXS1N0cmluZ1Jl
ZiBwYXN0ZWJvYXJkRm9ybWF0LCBXS1N0cmluZ1JlZiBzdHJpbmcsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOworCit0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50QmFzZSB7
CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKK30g
V0tDb250ZXh0UGFzdGVib2FyZENsaWVudEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdLQ29udGV4
dFBhc3RlYm9hcmRDbGllbnRWMCB7CisgICAgV0tDb250ZXh0UGFzdGVib2FyZENsaWVudEJhc2Ug
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVy
c2lvbiAwLgorICAgIFdLQ29udGV4dFJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkOworICAgIFdL
Q29udGV4dFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQ7Cit9IFdLQ29udGV4dFBhc3RlYm9hcmRD
bGllbnRWMDsKKworI2VuZGlmIC8vIFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvQVBJUGFzdGVib2FyZENsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvQVBJUGFzdGVib2FyZENsaWVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2ZjI4N2IKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9BUElQYXN0ZWJvYXJk
Q2xpZW50LmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1z
dW5nIEVsZWN0cm9uaWNzLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFQSVBhc3Rl
Ym9hcmRDbGllbnRfaAorI2RlZmluZSBBUElQYXN0ZWJvYXJkQ2xpZW50X2gKKworI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkNv
bnRleHQ7Cit9CisKK25hbWVzcGFjZSBBUEkgeworCitjbGFzcyBQYXN0ZWJvYXJkQ2xpZW50IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5QYXN0ZWJvYXJkQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChXZWJLaXQ6OldlYkNvbnRl
eHQqLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJikgeyByZXR1cm4gV1RG
OjpTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgdm9pZCB3cml0ZVN0cmluZ1RvUGFzdGVib2FyZChX
ZWJLaXQ6OldlYkNvbnRleHQqLCBjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5n
JiwgY29uc3QgV1RGOjpTdHJpbmcmKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIEFQSQorCisj
ZW5kaWYgLy8gQVBJUGFzdGVib2FyZENsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAKaW5kZXggNTE4Yjk1Ny4uNjM0YmNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtMTA5LDYgKzEwOSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oRUZMKQorI2lu
Y2x1ZGUgIkFQSVBhc3RlYm9hcmRDbGllbnQuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0yMzIsNyArMjM2LDcgQEAgV2ViQ29u
dGV4dDo6V2ViQ29udGV4dChXZWJDb250ZXh0Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQog
I2VuZGlmCiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIShQTEFURk9STShDT0NPQSkg
fHwgUExBVEZPUk0oRUZMKSkKIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplKCkK
IHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IDdkZjJiNWUuLjM5
Y2ZlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtNjksNiArNjks
OSBAQCBPQkpDX0NMQVNTIE5TU3RyaW5nOwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBEb3dubG9h
ZENsaWVudDsKIGNsYXNzIEhpc3RvcnlDbGllbnQ7CisjaWYgUExBVEZPUk0oRUZMKQorY2xhc3Mg
UGFzdGVib2FyZENsaWVudDsKKyNlbmRpZgogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE0
MSw2ICsxNDQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFsaXplQ29ubmVjdGlvbkNsaWVu
dChjb25zdCBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50QmFzZSopOwogICAgIHZvaWQgc2V0SGlz
dG9yeUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpIaXN0b3J5Q2xpZW50Pik7CiAgICAgdm9p
ZCBzZXREb3dubG9hZENsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpEb3dubG9hZENsaWVudD4p
OworI2lmIFBMQVRGT1JNKEVGTCkKKyAgICB2b2lkIHNldFBhc3RlYm9hcmRDbGllbnQoc3RkOjp1
bmlxdWVfcHRyPEFQSTo6UGFzdGVib2FyZENsaWVudD4pOworI2VuZGlmCiAKICAgICB2b2lkIHNl
dFByb2Nlc3NNb2RlbChQcm9jZXNzTW9kZWwpOyAvLyBDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0
aGVyZSBhcmUgbm8gcHJvY2Vzc2VzIHJ1bm5pbmcuCiAgICAgUHJvY2Vzc01vZGVsIHByb2Nlc3NN
b2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc01vZGVsOyB9CkBAIC0zOTIsNiArMzk4LDEx
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQYXN0ZWJvYXJkQnVmZmVyRm9yVHlwZShjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25z
dCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIHVpbnQ2NF90IHNpemUsIHVpbnQ2NF90JiBuZXdDaGFu
Z2VDb3VudCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKEVGTCkKKyAgICB2b2lkIHJlYWRTdHJp
bmdGcm9tUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmRGb3JtYXQsIFN0cmluZyYpOworICAgIHZvaWQgd3JpdGVTdHJpbmdUb1Bh
c3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkRm9ybWF0LCBjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKENP
Q09BKQogICAgIC8vIEZJWE1FOiBUaGlzIGEgZHVtbXkgbWVzc2FnZSwgdG8gYXZvaWQgYnJlYWtp
bmcgdGhlIGJ1aWxkIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24ndCByZXF1aXJlCiAgICAgLy8gYW55
IHN5bmNocm9ub3VzIG1lc3NhZ2VzLCBhbmQgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiA8cmRhcjov
L3Byb2JsZW0vODc3NTExNT4gaXMgZml4ZWQuCkBAIC00NTgsNiArNDY5LDEwIEBAIHByaXZhdGU6
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6RG93bmxvYWRDbGllbnQ+IG1fZG93bmxvYWRDbGll
bnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6SGlzdG9yeUNsaWVudD4gbV9oaXN0b3J5Q2xp
ZW50OwogCisjaWYgUExBVEZPUk0oRUZMKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxBUEk6OlBhc3Rl
Ym9hcmRDbGllbnQ+IG1fcGFzdGVib2FyZENsaWVudDsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luSW5mb1N0b3JlIG1fcGx1Z2luSW5mb1N0b3Jl
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0Lm1lc3Nh
Z2VzLmluCmluZGV4IDJlNGY0NjIuLjVhYjhjOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0Lm1lc3NhZ2VzLmluCkBAIC01Miw2ICs1MiwxMSBAQCBtZXNzYWdl
cyAtPiBXZWJDb250ZXh0IExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRQYXN0ZWJvYXJkQnVmZmVy
Rm9yVHlwZShTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVpbnQ2NF90IHNpemUpIC0+ICh1aW50
NjRfdCBjaGFuZ2VDb3VudCkKICNlbmRpZgogCisjaWYgUExBVEZPUk0oRUZMKQorICAgIFJlYWRT
dHJpbmdGcm9tUGFzdGVib2FyZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyBwYXN0ZWJv
YXJkRm9ybWF0KSAtPiAoU3RyaW5nIHN0cmluZykKKyAgICBXcml0ZVN0cmluZ1RvUGFzdGVib2Fy
ZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyBwYXN0ZWFib3JkRm9ybWF0LCBTdHJpbmcg
c3RyaW5nKQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IFRo
aXMgYSBkdW1teSBtZXNzYWdlLCB0byBhdm9pZCBicmVha2luZyB0aGUgYnVpbGQgZm9yIHBsYXRm
b3JtcyB0aGF0IGRvbid0IHJlcXVpcmUKICAgICAvLyBhbnkgc3luY2hyb25vdXMgbWVzc2FnZXMs
IGFuZCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS84Nzc1MTE1PiBpcyBm
aXhlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29udGV4
dEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3Bw
CmluZGV4IDM4YzZhZTEuLmFhNmQ1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJDb250ZXh0RWZsLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYkNv
b2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKIAorI2luY2x1ZGUg
IkFQSVBhc3RlYm9hcmRDbGllbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yU2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgpAQCAtODAsNiArODEsMTEgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUluc3BlY3Rv
clNlcnZlcigpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxp
emUoKQoreworICAgIG1fcGFzdGVib2FyZENsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpQ
YXN0ZWJvYXJkQ2xpZW50PigpOworfQorCiBTdHJpbmcgV2ViQ29udGV4dDo6cGxhdGZvcm1EZWZh
dWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFN0cmlu
Zzo6ZnJvbVVURjgoZWZyZWV0X2NhY2hlX2hvbWVfZ2V0KCkpICsgIi9XZWJLaXRFZmwvQXBwbGlj
YXRpb25zIjsKQEAgLTEzOCw0ICsxNDQsMjIgQEAgdm9pZCBXZWJDb250ZXh0OjpzZXRJZ25vcmVU
TFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMpCiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRJZ25vcmVUTFNFcnJvcnMobV9pZ25vcmVUTFNFcnJvcnMp
KTsKIH0KIAordm9pZCBXZWJDb250ZXh0OjpzZXRQYXN0ZWJvYXJkQ2xpZW50KHN0ZDo6dW5pcXVl
X3B0cjxBUEk6OlBhc3RlYm9hcmRDbGllbnQ+IHBhc3RlYm9hcmRDbGllbnQpCit7CisgICAgaWYg
KCFwYXN0ZWJvYXJkQ2xpZW50KQorICAgICAgICBtX3Bhc3RlYm9hcmRDbGllbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPEFQSTo6UGFzdGVib2FyZENsaWVudD4oKTsKKyAgICBlbHNlCisgICAgICAgIG1f
cGFzdGVib2FyZENsaWVudCA9IHN0ZDo6bW92ZShwYXN0ZWJvYXJkQ2xpZW50KTsKK30KKwordm9p
ZCBXZWJDb250ZXh0OjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkRm9ybWF0LCBTdHJpbmcmIHN0cmlu
ZykKK3sKKyAgICBzdHJpbmcgPSBtX3Bhc3RlYm9hcmRDbGllbnQtPnJlYWRTdHJpbmdGcm9tUGFz
dGVib2FyZCh0aGlzLCBwYXN0ZWJvYXJkVHlwZSwgcGFzdGVib2FyZEZvcm1hdCk7Cit9CisKK3Zv
aWQgV2ViQ29udGV4dDo6d3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkRm9ybWF0LCBjb25zdCBTdHJpbmcm
IHN0cmluZykKK3sKKyAgICBtX3Bhc3RlYm9hcmRDbGllbnQtPndyaXRlU3RyaW5nVG9QYXN0ZWJv
YXJkKHRoaXMsIHBhc3RlYm9hcmRUeXBlLCBwYXN0ZWJvYXJkRm9ybWF0LCBzdHJpbmcpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAppbmRleCA3NmFhMmZkLi44YWNiMWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCkBAIC01NzAsNCArNTcwLDIwIEBAIGxvbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
aGFuZ2VDb3VudCgpCiAKICNlbmRpZgogCisjaWYgUExBVEZPUk0oRUZMKQorU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6cmVhZEZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZEZvcm1hdCkKK3sKKyAgICBTdHJpbmcg
dmFsdWU7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYkNvbnRleHQ6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2Fy
ZChwYXN0ZWJvYXJkVHlwZSwgcGFzdGVib2FyZEZvcm1hdCksCisgICAgICAgIE1lc3NhZ2VzOjpX
ZWJDb250ZXh0OjpSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQ6OlJlcGx5KHZhbHVlKSwgMCk7CisK
KyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0
ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkRm9ybWF0KQoreworICAgIFdlYlByb2Nl
c3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YkNvbnRleHQ6OldyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKHBhc3RlYm9hcmRUeXBlLCBwYXN0ZWJv
YXJkRm9ybWF0LCBzdHJpbmcpLCAwKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDMyNDg0MTIuLjY5OTg5ZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtMTE5LDYgKzExOSwxMSBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgbG9uZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShFRkwpCisgICAgdmlydHVhbCBT
dHJpbmcgcmVhZEZyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZEZvcm1hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZEZvcm1hdCkgb3ZlcnJpZGU7CisjZW5kaWYK
KwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIC8vIFdlYkNvcmU6OlBsdWdp
blN0cmF0ZWd5IGltcGxlbWVudGF0aW9uLgogICAgIHZvaWQgcG9wdWxhdGVQbHVnaW5DYWNoZSgp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235218</attachid>
            <date>2014-07-21 07:07:47 -0700</date>
            <delta_ts>2016-03-09 16:35:12 -0800</delta_ts>
            <desc>fixes after review</desc>
            <filename>pasteboardclient2.diff</filename>
            <type>text/plain</type>
            <size>21259</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ODliN2FjLi43YTEyNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTQtMDctMjEgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1z
dW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBwYXN0ZWJvYXJkIGNsaWVudCB0byBX
S0NvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExOTc5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyBhcyB0aGVyZSBpcyBubyBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAg
ICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6IEFkZCBtZXRob2RzIGZvciByZWFk
aW5nIGFuZCB3cml0aW5nIHN0cmluZyB0byBwYXN0ZWJvYXJkIGZvciBFRkwgcG9ydC4KKwogMjAx
NC0wNy0yMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIEdPYmplY3QgRE9NIGJpbmRpbmdzIHRlc3QgcmVzdWx0
cyBhZnRlciByMTcxMjg1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFz
dGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3Ry
YXRlZ3kuaAppbmRleCBmNWU5NTUyLi5lZjAyNjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaApAQCAtNjgsNiArNjgsMTAgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgbG9uZyBzZXRQYXRobmFtZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSkgPSAwOwogICAgIHZpcnR1YWwgbG9uZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpID0gMDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKEVGTCkKKyAgICB2aXJ0dWFsIFN0cmluZyBy
ZWFkRnJvbVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkRm9ybWF0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0
ZWJvYXJkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZEZvcm1hdCkgPSAwOworI2VuZGlmCiBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB+UGFzdGVib2FyZFN0cmF0ZWd5KCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzA0Y2Iw
ZS4uNDFmZDYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA3LTIxICBNaWNo
YcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF1bV0syXSBBZGQgcGFzdGVib2FyZCBjbGllbnQgdG8gV0tDb250ZXh0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk3OTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgcGFzdGVib2FyZCBjbGll
bnQgdG8gV0tDb250ZXh0IGZvciBFRkwgcG9ydCB0byBkZWxlZ2F0ZSBjb3B5IGFuZCBwYXN0ZQor
ICAgICAgICBvcGVyYXRpb25zIGZyb20gV2ViUHJvY2VzcyB0byBVSVByb2Nlc3MsIGFzIGl0IGlz
IG5lZWRlZCB0byBpbnRlZ3JhdGUgV2ViS2l0CisgICAgICAgIGFuZCBFRkwgcGFzdGVib2FyZC4K
KworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9lZmwvV0tDb250ZXh0RWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXS0NvbnRleHRTZXRQYXN0
ZWJvYXJkQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29udGV4dEVm
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29udGV4dFBhc3Rl
Ym9hcmRDbGllbnQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvQVBJUGFz
dGVib2FyZENsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKEFQSTo6UGFzdGVib2FyZENsaWVudDo6
flBhc3RlYm9hcmRDbGllbnQpOgorICAgICAgICAoQVBJOjpQYXN0ZWJvYXJkQ2xpZW50OjpyZWFk
U3RyaW5nRnJvbVBhc3RlYm9hcmQpOgorICAgICAgICAoQVBJOjpQYXN0ZWJvYXJkQ2xpZW50Ojp3
cml0ZVN0cmluZ1RvUGFzdGVib2FyZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbnRleHQ6OnBhc3RlYm9hcmRDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJD
b250ZXh0Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVm
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnNldFBhc3RlYm9hcmRDbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp3cml0ZVN0cmluZ1RvUGFzdGVib2FyZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRGcm9tUGFzdGVi
b2FyZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bh
c3RlYm9hcmQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmg6CisKIDIwMTQtMDctMjAgIEt3YW5nSHl1ayBLaW0gIDxoeXVraS5raW1A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgRml4IHdhcm5pbmdzIGNhdXNlZCBieSB1bnVzZWQgcGFy
YW1ldGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBjODI3Mzg0Li42MGFkMWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNjEsNiArNjEsNyBAQCBsaXN0KEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvY2Fpcm8vV0tJY29uRGF0YWJhc2VD
YWlyby5jcHAKIAogICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb2xvclBpY2tlclJlc3VsdExp
c3RlbmVyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb250ZXh0RWZsLmNwcAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tFdmVudEVmbC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLUGFnZUVmbC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLUG9wdXBJdGVtLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbnRl
eHRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS0NvbnRleHRF
ZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMjlkYjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29udGV4
dEVmbC5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBTYW1z
dW5nIEVsZWN0cm9uaWNzLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV0tDb250ZXh0RWZsLmgiCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIK
KyNpbmNsdWRlICJBUElQYXN0ZWJvYXJkQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisKK25h
bWVzcGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQ29udGV4dFBh
c3RlYm9hcmRDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQ29udGV4dFBh
c3RlYm9hcmRDbGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCit1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OworCit2b2lkIFdLQ29udGV4dFNldFBhc3RlYm9hcmRDbGllbnQoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYsIGNvbnN0IFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnRCYXNlKiB3a0NsaWVudCkK
K3sKKyAgICBjbGFzcyBQYXN0ZWJvYXJkQ2xpZW50IGZpbmFsIDogcHVibGljIEFQSTo6Q2xpZW50
PFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnRCYXNlPiwgcHVibGljIEFQSTo6UGFzdGVib2FyZENs
aWVudCB7CisgICAgcHVibGljOgorICAgICAgICBleHBsaWNpdCBQYXN0ZWJvYXJkQ2xpZW50KGNv
bnN0IFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnRCYXNlKiBjbGllbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGluaXRpYWxpemUoY2xpZW50KTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToK
KyAgICAgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKFdlYkNvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZEZvcm1hdCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5y
ZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQpCisgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygp
OworCisgICAgICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3RyaW5nKEFkb3B0V0ss
IG1fY2xpZW50LnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh0b0FQSShjb250ZXh0KSwgdG9BUEko
cGFzdGVib2FyZFR5cGUuaW1wbCgpKSwgdG9BUEkocGFzdGVib2FyZEZvcm1hdC5pbXBsKCkpLCBt
X2NsaWVudC5iYXNlLmNsaWVudEluZm8pKTsKKworICAgICAgICAgICAgcmV0dXJuIHRvV1RGU3Ry
aW5nKHN0cmluZy5nZXQoKSk7CisKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCB3
cml0ZVN0cmluZ1RvUGFzdGVib2FyZChXZWJDb250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRGb3JtYXQsIGNvbnN0IFN0
cmluZyYgc3RyaW5nKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LndyaXRl
U3RyaW5nVG9QYXN0ZWJvYXJkKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgbV9jbGllbnQud3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQodG9BUEkoY29udGV4dCksIHRvQVBJ
KHBhc3RlYm9hcmRUeXBlLmltcGwoKSksIHRvQVBJKHBhc3RlYm9hcmRGb3JtYXQuaW1wbCgpKSwg
dG9BUEkoc3RyaW5nLmltcGwoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAg
IH0KKyAgICB9OworCisgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5zZXRQYXN0ZWJvYXJkQ2xpZW50
KHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZENsaWVudD4od2tDbGllbnQpKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb250ZXh0RWZsLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29udGV4dEVmbC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2YmMwNjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29udGV4dEVmbC5oCkBAIC0w
LDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAq
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0NvbnRleHRFZmxfaAorI2RlZmlu
ZSBXS0NvbnRleHRFZmxfaAorCisjaW5jbHVkZSAiV0tDb250ZXh0UGFzdGVib2FyZENsaWVudC5o
IgorI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRl
cm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRQYXN0ZWJvYXJk
Q2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xp
ZW50QmFzZSogY2xpZW50KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2Vu
ZGlmIC8qIFdLQ29udGV4dEVmbF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvZWZsL1dLQ29udGV4dFBhc3RlYm9hcmRDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tDb250ZXh0UGFzdGVib2FyZENsaWVudC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1MDU3ZjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLQ29udGV4dFBhc3RlYm9hcmRD
bGllbnQuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1
bmcgRWxlY3Ryb25pY3MuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tDb250ZXh0
UGFzdGVib2FyZENsaWVudF9oCisjZGVmaW5lIFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnRfaAor
CisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCit0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tD
b250ZXh0UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkQ2FsbGJhY2spKFdLQ29udGV4dFJlZiBjb250
ZXh0LCBXS1N0cmluZ1JlZiBwYXN0ZWJvYXJkVHlwZSwgV0tTdHJpbmdSZWYgcGFzdGVib2FyZEZv
cm1hdCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0NvbnRleHRX
cml0ZVN0cmluZ1RvUGFzdGVib2FyZENhbGxiYWNrKShXS0NvbnRleHRSZWYgY29udGV4dCwgV0tT
dHJpbmdSZWYgcGFzdGVib2FyZFR5cGUsIFdLU3RyaW5nUmVmIHBhc3RlYm9hcmRGb3JtYXQsIFdL
U3RyaW5nUmVmIHN0cmluZywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgc3Ry
dWN0IFdLQ29udGV4dFBhc3RlYm9hcmRDbGllbnRCYXNlIHsKKyAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNp
b247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworfSBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xp
ZW50QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tDb250ZXh0UGFzdGVib2FyZENsaWVudFYwIHsK
KyAgICBXS0NvbnRleHRQYXN0ZWJvYXJkQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tDb250ZXh0
UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQ7CisgICAgV0tDb250ZXh0V3JpdGVTdHJpbmdUb1Bh
c3RlYm9hcmRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZVN0cmluZ1Rv
UGFzdGVib2FyZDsKK30gV0tDb250ZXh0UGFzdGVib2FyZENsaWVudFYwOworCisjZW5kaWYgLy8g
V0tDb250ZXh0UGFzdGVib2FyZENsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9BUElQYXN0ZWJvYXJkQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9BUElQYXN0ZWJvYXJkQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZTZmMjg3YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0FQSVBhc3RlYm9hcmRDbGllbnQuaApAQCAtMCwwICsxLDQ3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcgRWxlY3Ryb25pY3MuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQVBJUGFzdGVib2FyZENsaWVudF9oCisjZGVmaW5l
IEFQSVBhc3RlYm9hcmRDbGllbnRfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViQ29udGV4dDsKK30KKworbmFtZXNwYWNl
IEFQSSB7CisKK2NsYXNzIFBhc3RlYm9hcmRDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwg
flBhc3RlYm9hcmRDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgcmVhZFN0
cmluZ0Zyb21QYXN0ZWJvYXJkKFdlYktpdDo6V2ViQ29udGV4dCosIGNvbnN0IFdURjo6U3RyaW5n
JiwgY29uc3QgV1RGOjpTdHJpbmcmKSB7IHJldHVybiBXVEY6OlN0cmluZygpOyB9CisgICAgdmly
dHVhbCB2b2lkIHdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFdlYktpdDo6V2ViQ29udGV4dCosIGNv
bnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYp
IHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBBUElQYXN0ZWJvYXJk
Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCBjODdi
NjRiLi5kZmUzYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBA
IC0xMTAsNiArMTEwLDEwIEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5o
PgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSAiQVBJUGFzdGVib2FyZENs
aWVudC5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTIzNiw3ICsyNDAsNyBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFdlYkNv
bnRleHRDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pCiAjZW5kaWYKIH0KIAotI2lmICFQTEFU
Rk9STShDT0NPQSkKKyNpZiAhKFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShFRkwpKQogdm9p
ZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmgKaW5kZXggZDYwZWRlZS4uMDljMTg5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5oCkBAIC02OSw2ICs2OSw5IEBAIE9CSkNfQ0xBU1MgTlNTdHJp
bmc7CiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIERvd25sb2FkQ2xpZW50OwogY2xhc3MgSGlzdG9y
eUNsaWVudDsKKyNpZiBQTEFURk9STShFRkwpCitjbGFzcyBQYXN0ZWJvYXJkQ2xpZW50OworI2Vu
ZGlmCiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTQxLDYgKzE0NCw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uQ2xpZW50KGNvbnN0IFdLQ29udGV4dENvbm5l
Y3Rpb25DbGllbnRCYXNlKik7CiAgICAgdm9pZCBzZXRIaXN0b3J5Q2xpZW50KHN0ZDo6dW5pcXVl
X3B0cjxBUEk6Okhpc3RvcnlDbGllbnQ+KTsKICAgICB2b2lkIHNldERvd25sb2FkQ2xpZW50KHN0
ZDo6dW5pcXVlX3B0cjxBUEk6OkRvd25sb2FkQ2xpZW50Pik7CisjaWYgUExBVEZPUk0oRUZMKQor
ICAgIHZvaWQgc2V0UGFzdGVib2FyZENsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpQYXN0ZWJv
YXJkQ2xpZW50Pik7CisjZW5kaWYKIAogICAgIHZvaWQgc2V0UHJvY2Vzc01vZGVsKFByb2Nlc3NN
b2RlbCk7IC8vIENhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBwcm9jZXNzZXMg
cnVubmluZy4KICAgICBQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsKCkgY29uc3QgeyByZXR1cm4g
bV9wcm9jZXNzTW9kZWw7IH0KQEAgLTM5Myw2ICszOTksMTEgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxl
JiwgdWludDY0X3Qgc2l6ZSwgdWludDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICNlbmRpZgogCisj
aWYgUExBVEZPUk0oRUZMKQorICAgIHZvaWQgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZEZvcm1hdCwg
U3RyaW5nJik7CisgICAgdm9pZCB3cml0ZVN0cmluZ1RvUGFzdGVib2FyZChjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRGb3JtYXQsIGNvbnN0IFN0
cmluZyYpOworI2VuZGlmCisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gRklYTUU6IFRo
aXMgYSBkdW1teSBtZXNzYWdlLCB0byBhdm9pZCBicmVha2luZyB0aGUgYnVpbGQgZm9yIHBsYXRm
b3JtcyB0aGF0IGRvbid0IHJlcXVpcmUKICAgICAvLyBhbnkgc3luY2hyb25vdXMgbWVzc2FnZXMs
IGFuZCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS84Nzc1MTE1PiBpcyBm
aXhlZC4KQEAgLTQ2NSw2ICs0NzYsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
QVBJOjpEb3dubG9hZENsaWVudD4gbV9kb3dubG9hZENsaWVudDsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8QVBJOjpIaXN0b3J5Q2xpZW50PiBtX2hpc3RvcnlDbGllbnQ7CiAKKyNpZiBQTEFURk9STShF
RkwpCisgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6UGFzdGVib2FyZENsaWVudD4gbV9wYXN0ZWJv
YXJkQ2xpZW50OworI2VuZGlmCisKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAg
ICBQbHVnaW5JbmZvU3RvcmUgbV9wbHVnaW5JbmZvU3RvcmU7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQubWVzc2FnZXMuaW4KaW5kZXggMmU0ZjQ2Mi4u
NWFiOGM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQubWVz
c2FnZXMuaW4KQEAgLTUyLDYgKzUyLDExIEBAIG1lc3NhZ2VzIC0+IFdlYkNvbnRleHQgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFNldFBhc3RlYm9hcmRCdWZmZXJGb3JUeXBlKFN0cmluZyBwYXN0ZWJv
YXJkTmFtZSwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFu
ZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkgLT4gKHVpbnQ2NF90IGNoYW5nZUNvdW50KQogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShFRkwpCisgICAgUmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKFN0
cmluZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHBhc3RlYm9hcmRGb3JtYXQpIC0+IChTdHJpbmcg
c3RyaW5nKQorICAgIFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkVHlw
ZSwgU3RyaW5nIHBhc3RlYWJvcmRGb3JtYXQsIFN0cmluZyBzdHJpbmcpCisjZW5kaWYKKwogI2lm
ICFQTEFURk9STShDT0NPQSkKICAgICAvLyBGSVhNRTogVGhpcyBhIGR1bW15IG1lc3NhZ2UsIHRv
IGF2b2lkIGJyZWFraW5nIHRoZSBidWlsZCBmb3IgcGxhdGZvcm1zIHRoYXQgZG9uJ3QgcmVxdWly
ZQogICAgIC8vIGFueSBzeW5jaHJvbm91cyBtZXNzYWdlcywgYW5kIHNob3VsZCBiZSByZW1vdmVk
IHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzg3NzUxMTU+IGlzIGZpeGVkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9lZmwvV2ViQ29udGV4dEVmbC5jcHAKaW5kZXggM2I2OTc5OS4uZDgxNWE1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJDb250ZXh0RWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3Bw
CkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViQ29udGV4dC5oIgogCisjaW5jbHVkZSAiQVBJUGFzdGVib2FyZENsaWVudC5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC04MCw2ICs4MSwx
MSBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplSW5zcGVjdG9yU2VydmVyKCkKICNlbmRpZgogfQog
Cit2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7CisgICAgbV9wYXN0ZWJv
YXJkQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxBUEk6OlBhc3RlYm9hcmRDbGllbnQ+KCk7Cit9
CisKIFN0cmluZyBXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGly
ZWN0b3J5KCkgY29uc3QKIHsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChlZnJlZXRfY2Fj
aGVfaG9tZV9nZXQoKSkgKyAiL1dlYktpdEVmbC9BcHBsaWNhdGlvbnMiOwpAQCAtMTUwLDQgKzE1
NiwxOSBAQCB2b2lkIFdlYkNvbnRleHQ6OnNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRM
U0Vycm9ycykKICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNl
dElnbm9yZVRMU0Vycm9ycyhtX2lnbm9yZVRMU0Vycm9ycykpOwogfQogCit2b2lkIFdlYkNvbnRl
eHQ6OnNldFBhc3RlYm9hcmRDbGllbnQoc3RkOjp1bmlxdWVfcHRyPEFQSTo6UGFzdGVib2FyZENs
aWVudD4gcGFzdGVib2FyZENsaWVudCkKK3sKKyAgICBtX3Bhc3RlYm9hcmRDbGllbnQgPSBXVEY6
Om1vdmUocGFzdGVib2FyZENsaWVudCk7Cit9CisKK3ZvaWQgV2ViQ29udGV4dDo6cmVhZFN0cmlu
Z0Zyb21QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZEZvcm1hdCwgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgc3RyaW5nID0gbV9w
YXN0ZWJvYXJkQ2xpZW50LT5yZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodGhpcywgcGFzdGVib2Fy
ZFR5cGUsIHBhc3RlYm9hcmRGb3JtYXQpOworfQorCit2b2lkIFdlYkNvbnRleHQ6OndyaXRlU3Ry
aW5nVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZEZvcm1hdCwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgbV9wYXN0
ZWJvYXJkQ2xpZW50LT53cml0ZVN0cmluZ1RvUGFzdGVib2FyZCh0aGlzLCBwYXN0ZWJvYXJkVHlw
ZSwgcGFzdGVib2FyZEZvcm1hdCwgc3RyaW5nKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggNzQyMmM5Zi4uN2MxNjcz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtNTcwLDQgKzU3MCwy
MCBAQCBsb25nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y2hhbmdlQ291bnQoKQogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oQ09DT0EpCiAKKyNpZiBQTEFURk9STShFRkwpCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpyZWFkRnJvbVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkRm9ybWF0KQoreworICAgIFN0cmluZyB2YWx1
ZTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kU3luYyhNZXNzYWdlczo6V2ViQ29udGV4dDo6UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHBh
c3RlYm9hcmRUeXBlLCBwYXN0ZWJvYXJkRm9ybWF0KSwKKyAgICAgICAgTWVzc2FnZXM6OldlYkNv
bnRleHQ6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZDo6UmVwbHkodmFsdWUpLCAwKTsKKworICAg
IHJldHVybiB2YWx1ZTsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRU
eXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRGb3JtYXQpCit7CisgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQ29u
dGV4dDo6V3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQocGFzdGVib2FyZFR5cGUsIHBhc3RlYm9hcmRG
b3JtYXQsIHN0cmluZyksIDApOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggMzI0ODQxMi4uNjk5ODllMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0xMTksNiArMTE5LDExIEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkg
b3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKEVGTCkKKyAgICB2aXJ0dWFsIFN0cmlu
ZyByZWFkRnJvbVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkRm9ybWF0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd3Jp
dGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkRm9ybWF0KSBvdmVycmlkZTsKKyNlbmRpZgorCiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgLy8gV2ViQ29yZTo6UGx1Z2luU3Ry
YXRlZ3kgaW1wbGVtZW50YXRpb24uCiAgICAgdm9pZCBwb3B1bGF0ZVBsdWdpbkNhY2hlKCk7Cg==
</data>
<flag name="review"
          id="259776"
          type_id="1"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
      

    </bug>

</bugzilla>