<?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>136819</bug_id>
          
          <creation_ts>2014-09-15 05:02:39 -0700</creation_ts>
          <short_desc>Move DragController::createFragmentFromDragData implementation to the editor</short_desc>
          <delta_ts>2014-10-04 01:38:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>136802</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035216</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-15 05:02:39 -0700</bug_when>
    <thetext>And use the editor from the DragController instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035219</commentid>
    <comment_count>1</comment_count>
      <attachid>238117</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-15 05:09:06 -0700</bug_when>
    <thetext>Created attachment 238117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035682</commentid>
    <comment_count>2</comment_count>
      <attachid>238239</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-17 00:24:27 -0700</bug_when>
    <thetext>Created attachment 238239
Updated patch

Rebased, it should apply now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035684</commentid>
    <comment_count>3</comment_count>
      <attachid>238240</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-17 01:19:13 -0700</bug_when>
    <thetext>Created attachment 238240
Try to fix windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035689</commentid>
    <comment_count>4</comment_count>
      <attachid>238243</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-17 02:03:10 -0700</bug_when>
    <thetext>Created attachment 238243
Try to fix EFL build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037887</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-29 00:32:29 -0700</bug_when>
    <thetext>Ping :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039219</commentid>
    <comment_count>6</comment_count>
      <attachid>238243</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-10-03 09:05:46 -0700</bug_when>
    <thetext>Comment on attachment 238243
Try to fix EFL build

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

A good step in the right direction. I suspect we can keep refactoring this to make the code even tighter over time.

&gt; Source/WebCore/editing/win/EditorWin.cpp:51
&gt; +template &lt;typename PlatformDragData&gt;
&gt; +static PassRefPtr&lt;DocumentFragment&gt; createFragmentFromPlatformData(PlatformDragData* platformDragData, Frame&amp; frame)

Should take PlatformDragData&amp; instead of PlatformDragData*.

I’m also surprised this needs to be a template. Are all four functions called here really overloaded for two different types!?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039230</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-03 09:18:44 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 238243 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238243&amp;action=review
&gt; 
&gt; A good step in the right direction. I suspect we can keep refactoring this to make the code even tighter over time.

Thanks for the review.

&gt; &gt; Source/WebCore/editing/win/EditorWin.cpp:51
&gt; &gt; +template &lt;typename PlatformDragData&gt;
&gt; &gt; +static PassRefPtr&lt;DocumentFragment&gt; createFragmentFromPlatformData(PlatformDragData* platformDragData, Frame&amp; frame)
&gt; 
&gt; Should take PlatformDragData&amp; instead of PlatformDragData*.

Sure.

&gt; I’m also surprised this needs to be a template. Are all four functions called here really overloaded for two different types!?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039473</commentid>
    <comment_count>8</comment_count>
      <attachid>239271</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-04 00:44:26 -0700</bug_when>
    <thetext>Created attachment 239271
Patch for landing

Not sure the windows changes are correct...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039484</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-10-04 01:38:09 -0700</bug_when>
    <thetext>Committed r174314: &lt;http://trac.webkit.org/changeset/174314&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238117</attachid>
            <date>2014-09-15 05:09:06 -0700</date>
            <delta_ts>2014-09-17 00:24:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-fragment-dnd.diff</filename>
            <type>text/plain</type>
            <size>15711</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYTRmNGQxLi42ZThlNGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDAg
QEAKIDIwMTQtMDktMTUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIE1vdmUgRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZUZyYWdtZW50RnJvbURyYWdE
YXRhIGltcGxlbWVudGF0aW9uIHRvIHRoZSBlZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3Rl
Ym9hcmQoKSBjb21tb24gdG8gYWxsIHBvcnRzIGFuZAorICAgICAgICBhZGQgYSBpbXBsZW1lbnRh
dGlvbiBmb3IgZXZlcnkgcG9ydC4KKworICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOiBBZGQg
bmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2o6IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZCk6IE1vdmUgdG8gRWRpdG9y
V2luLmNwcAorICAgICAgICBzaW5jZSB0aGlzIGlzIG9ubHkgdXNlZCBieSB3aW5kb3dzIHBvcnQu
CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL2VmbC9FZGl0
b3JFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3Rl
Ym9hcmQpOgorICAgICAgICAqIGVkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogZWRp
dGluZy93aW4vRWRpdG9yV2luLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnBhc3RlV2l0aFBhc3RlYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp3ZWJDb250
ZW50RnJvbVBhc3RlYm9hcmQpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YSk6IFVzZSB0aGUg
ZWRpdG9yIGluc3RlYWQgb2YKKyAgICAgICAgY3JlYXRlRnJhZ21lbnRGcm9tRHJhZ0RhdGEoKSB0
aGF0IGhhcyBiZWVuIHJlbW92ZWQuIEFsc28gbWFkZSB0aGlzCisgICAgICAgIG1ldGhvZCBhIHN0
YXRpYyBmdW50aW9uIGFnYWluLgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBwYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHA6IFJlbW92ZSBjcmVhdGVGcmFn
bWVudEZyb21EcmFnRGF0YSgpLgorICAgICAgICAqIHBhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFj
Lm1tOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHA6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OmRyYWdEYXRhTWFwKTogQWRkIGEgZ2V0dGVyIGZvciBtX2RyYWdEYXRhTWFw
CisgICAgICAgIGFzIHJlcXVpcmVkIGJ5IEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0ZWJvYXJk
LgorCisyMDE0LTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KKwogICAgICAgICBbR1RLXSBGaXggbGF5ZXJpbmcgdmlvbGF0aW9ucyBpbiBQYXN0ZWJvYXJk
R3RrCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4
MDIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA0YjZhMWVlLi4zNTVmMTkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTAsNiArMTAsOCBAQCBsaXN0KEFQUEVORCBXZWJD
b3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAg
IGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RXaW4uY3BwCiAKKyAgICBlZGl0
aW5nL3dpbi9FZGl0b3JXaW4uY3BwCisKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50V2luLmNw
cAogCiAgICAgcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA5MTdjNjg4Li43ZjZiNzBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oK
QEAgLTE0OTExLDYgKzE0OTExLDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxlZGl0aW5nXHdpblxFZGl0b3JXaW4uY3BwIi8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxmaWxlYXBpXEFzeW5jRmlsZVN0cmVhbS5jcHAiIC8+CiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VCdXR0b25JbnB1dFR5cGUuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5caHRtbFxCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCIgLz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBkMzE4ZjMyLi4zZGZiYzM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCkBAIC01NjIsMjAgKzU2Miw2IEBAIFN0cmluZyBFZGl0b3I6OnBs
YWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCiAK
ICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhUExB
VEZPUk0oR1RLKQotdm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCog
cGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBt
YWlsQmxvY2txdW90ZUhhbmRsaW5nKQotewotICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxl
Y3RlZFJhbmdlKCk7Ci0gICAgaWYgKCFyYW5nZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYm9v
bCBjaG9zZVBsYWluVGV4dDsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSBwYXN0ZWJvYXJkLT5kb2N1bWVudEZyYWdtZW50KG1fZnJhbWUsICpyYW5nZSwgYWxsb3dQbGFp
blRleHQsIGNob3NlUGxhaW5UZXh0KTsKLSAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0
RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQpKQotICAg
ICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJv
YXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcp
OwotfQotI2VuZGlmCi0KIGJvb2wgRWRpdG9yOjpjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2Fy
ZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQogewogICAgIHJldHVybiBjbGllbnQoKSAmJiBjbGll
bnQoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgJiYgcGFzdGVib2FyZC5jYW5TbWFydFJl
cGxhY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDRiNzE5NWMuLmU4YzkxZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDI2LDYgKzQyNiw4IEBAIHB1YmxpYzoKICAgICBE
ZWxldGVCdXR0b25Db250cm9sbGVyJiBkZWxldGVCdXR0b25Db250cm9sbGVyKCkgY29uc3QgeyBy
ZXR1cm4gKm1fZGVsZXRlQnV0dG9uQ29udHJvbGxlcjsgfQogI2VuZGlmCiAKKyAgICBQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IHdlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJk
JiwgUmFuZ2UmIGNvbnRleHQsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3NlUGxhaW5U
ZXh0KTsKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBS
ZW5kZXJTdHlsZSogc3R5bGVGb3JTZWxlY3Rpb25TdGFydChGcmFtZSogLCBOb2RlICombm9kZVRv
UmVtb3ZlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGluc2VydFBhcmFncmFwaFNlcGFyYXRv
ckluUXVvdGVkQ29udGVudCgpOwpAQCAtNDMzLDcgKzQzNSw2IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBOU0RpY3Rpb25hcnkqIGZvbnRBdHRyaWJ1dGVzRm9yU2VsZWN0aW9uU3RhcnQo
KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RyaW5nU2VsZWN0aW9uRm9yUGFz
dGVib2FyZCgpOwogICAgIFN0cmluZyBzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkV2l0aElt
YWdlQWx0VGV4dCgpOwotICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gd2ViQ29udGVu
dEZyb21QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxvd1Bs
YWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwogI2lmICFQTEFURk9STShJT1MpCiAgICAg
Ym9vbCBjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpOwogICAgIHZvaWQgdGFrZUZp
bmRTdHJpbmdGcm9tU2VsZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2VmbC9FZGl0b3JFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9lZmwvRWRpdG9y
RWZsLmNwcAppbmRleCBhMDQxNjJmLi4wYmVhOGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2VmbC9FZGl0b3JFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
ZWZsL0VkaXRvckVmbC5jcHAKQEAgLTQ3LDQgKzQ3LDkgQEAgdm9pZCBFZGl0b3I6OnBhc3RlV2l0
aFBhc3RlYm9hcmQoUGFzdGVib2FyZCosIGJvb2wsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBF
ZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgUmFuZ2UmLCBib29s
IC8qYWxsb3dQbGFpblRleHQqLywgYm9vbCYgLypjaG9zZVBsYWluVGV4dCovKQoreworICAgIHJl
dHVybiBudWxscHRyOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcAppbmRleCA3NDkxMmVhLi4wZWI5YjdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAKQEAgLTEyOSw0ICsxMjksOSBAQCB2
b2lkIEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVi
b2FyZCkKICAgICBwYXN0ZWJvYXJkLndyaXRlKHBhc3RlYm9hcmRDb250ZW50KTsKIH0KIAorUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFzdGVib2Fy
ZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxvd1BsYWlu
VGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50
RnJvbVBhc3RlYm9hcmREYXRhKHBhc3RlYm9hcmQsIG1fZnJhbWUsIGNvbnRleHQsIGFsbG93UGxh
aW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjVmZWEyYjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRWRpdG9yLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmRVdGlsaXRpZXNXaW4uaCIK
KyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNpbmNsdWRl
ICJ3aW5kb3dzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBFZGl0b3I6OnBhc3Rl
V2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCosIGJvb2wsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcp
Cit7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IHNlbGVjdGVkUmFuZ2UoKTsKKyAgICBpZiAo
IXJhbmdlKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGNob3NlUGxhaW5UZXh0OworICAg
IFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHBhc3RlYm9hcmQtPmRvY3VtZW50
RnJhZ21lbnQobV9mcmFtZSwgKnJhbmdlLCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQp
OworICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFu
Z2UsIEVkaXRvckluc2VydEFjdGlvblBhc3RlZCkpCisgICAgICAgIHBhc3RlQXNGcmFnbWVudChm
cmFnbWVudCwgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9z
ZVBsYWluVGV4dCwgbWFpbEJsb2NrcXVvdGVIYW5kbGluZyk7Cit9CisKK1Bhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gRWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoUGFzdGVib2Fy
ZCYgcGFzdGVib2FyZCwgUmFuZ2UmLCBib29sIC8qYWxsb3dQbGFpblRleHQqLywgYm9vbCYgLypj
aG9zZVBsYWluVGV4dCovKQoreworICAgIENPTVB0cjxJRGF0YU9iamVjdD4gcGxhdGZvcm1EcmFn
RGF0YSA9IHBhc3RlYm9hcmQuZGF0YU9iamVjdCgpOworICAgIGlmIChjb250YWluc0ZpbGVuYW1l
cyhwbGF0Zm9ybURyYWdEYXRhID8gcGxhdGZvcm1EcmFnRGF0YS5nZXQoKSA6ICZwYXN0ZWJvYXJk
LmRyYWdEYXRhTWFwKCkpKSB7CisgICAgICAgIGlmIChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYWdtZW50ID0gZnJhZ21lbnRGcm9tRmlsZW5hbWVzKG1fZnJhbWUuZG9jdW1lbnQoKSwg
cGxhdGZvcm1EcmFnRGF0YSA/IHBsYXRmb3JtRHJhZ0RhdGEuZ2V0KCkgOiAmcGFzdGVib2FyZC5k
cmFnRGF0YU1hcCgpKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAg
ICBpZiAoY29udGFpbnNIVE1MKHBsYXRmb3JtRHJhZ0RhdGEgPyBwbGF0Zm9ybURyYWdEYXRhLmdl
dCgpIDogJnBhc3RlYm9hcmQuZHJhZ0RhdGFNYXAoKSkpIHsKKyAgICAgICAgaWYgKFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBmcmFnbWVudEZyb21IVE1MKG1fZnJhbWUu
ZG9jdW1lbnQoKSwgcGxhdGZvcm1EcmFnRGF0YSA/IHBsYXRmb3JtRHJhZ0RhdGEuZ2V0KCkgOiAm
cGFzdGVib2FyZC5kcmFnRGF0YU1hcCgpKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsK
KyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMjQwNDM4Zi4uZDVkYWYx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTExNCwxMyArMTE0
LDEzIEBAIERyYWdDb250cm9sbGVyOjp+RHJhZ0NvbnRyb2xsZXIoKQogICAgIG1fY2xpZW50LmRy
YWdDb250cm9sbGVyRGVzdHJveWVkKCk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gRHJhZ0NvbnRyb2xsZXI6OmRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEm
IGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiBjb250ZXh0LCBib29sIGFsbG93UGxhaW5U
ZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCkKK3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRhLCBG
cmFtZSYgZnJhbWUsIFJhbmdlJiBjb250ZXh0LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBj
aG9zZVBsYWluVGV4dCkKIHsKICAgICBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOwogCiAgICAgRG9j
dW1lbnQmIGRvY3VtZW50ID0gY29udGV4dC5vd25lckRvY3VtZW50KCk7CiAgICAgaWYgKGRyYWdE
YXRhLmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQoKSkgewotICAgICAgICBpZiAoUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRh
KGRyYWdEYXRhLCBmcmFtZSwgY29udGV4dCwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0
KSkKKyAgICAgICAgaWYgKFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBm
cmFtZS5lZGl0b3IoKS53ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKGRyYWdEYXRhKSwgY29udGV4dCwgYWxsb3dQbGFpblRleHQsIGNob3Nl
UGxhaW5UZXh0KSkKICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKIAogICAgICAgICBpZiAo
ZHJhZ0RhdGEuY29udGFpbnNVUkwoRHJhZ0RhdGE6OkRvTm90Q29udmVydEZpbGVuYW1lcykpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCA3ZWViMTcxLi5kN2IyODcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBAIC0xMTUsMTAgKzExNSw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBjbGVhbnVwQWZ0ZXJTeXN0ZW1EcmFnKCk7
CiAgICAgICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYsIEVs
ZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKIAotICAgICAgICAvLyBG
SVhNRTogTW92ZSBjcmVhdGVGcmFnbWVudEZyb21EcmFnRGF0YSBpbXBsZW1lbnRhdGlvbiB0byB0
aGUgRWRpdG9yIGFuZCBtYWtlIGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEgYSBzdGF0aWMg
ZnVuY3Rpb24gYWdhaW4uCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmLCBGcmFtZSYsIFJhbmdl
JiwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21EcmFn
RGF0YShEcmFnRGF0YSYsIEZyYW1lJiwgUmFuZ2UmLCBib29sIGFsbG93UGxhaW5UZXh0LCBib29s
JiBjaG9zZVBsYWluVGV4dCk7Ci0KICAgICAgICAgUGFnZSYgbV9wYWdlOwogICAgICAgICBEcmFn
Q2xpZW50JiBtX2NsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsv
RHJhZ0NvbnRyb2xsZXJHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRy
b2xsZXJHdGsuY3BwCmluZGV4IDZlZmM2N2EuLjNiYzdjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAKQEAgLTgxLDEyICs4MSw0IEBAIHZvaWQg
RHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImIGRh
dGFUcmFuc2ZlciwgRWxlbWVuCiAgICAgZnJhbWUtPmVkaXRvcigpLndyaXRlSW1hZ2VUb1Bhc3Rl
Ym9hcmQoZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKSwgZWxlbWVudCwgdXJsLCBsYWJlbCk7CiB9
CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZUZy
YWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBkcmFnRGF0YSwgRnJhbWUmIGZyYW1lLCBSYW5n
ZSYsIGJvb2wgLyphbGxvd1BsYWluVGV4dCovLCBib29sJiAvKmNob3NlUGxhaW5UZXh0Ki8pCi17
Ci0gICAgaWYgKCFkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKS0+aGFzTWFya3VwKCkgfHwgIWZyYW1l
LmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGNyZWF0
ZUZyYWdtZW50RnJvbU1hcmt1cCgqZnJhbWUuZG9jdW1lbnQoKSwgZHJhZ0RhdGEucGxhdGZvcm1E
YXRhKCktPm1hcmt1cCgpLCAiIik7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RHJhZ0NvbnRyb2xsZXJNYWMubW0KaW5kZXggOTdhNmFjMy4uMjVkMDgyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KQEAgLTkyLDEyICs5Miw2IEBA
IHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNm
ZXImIGRhdGFUcmFuc2ZlciwgRWxlbWVuCiAgICAgbV9jbGllbnQuZGVjbGFyZUFuZFdyaXRlRHJh
Z0ltYWdlKGRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkubmFtZSgpLCBlbGVtZW50LCB1cmwsIGxh
YmVsLCBlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhKERy
YWdEYXRhJiBkcmFnRGF0YSwgRnJhbWUmIGZyYW1lLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxv
d1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCi17Ci0gICAgUGFzdGVib2FyZCBwYXN0
ZWJvYXJkKGRyYWdEYXRhLnBhc3RlYm9hcmROYW1lKCkpOwotICAgIHJldHVybiBmcmFtZS5lZGl0
b3IoKS53ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQocGFzdGVib2FyZCwgY29udGV4dCwgYWxsb3dQ
bGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
d2luL0RyYWdDb250cm9sbGVyV2luLmNwcAppbmRleCBiMDFkZTg2Li5hMmNjNjZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCkBAIC0yNiwxNCAr
MjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5o
IgogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmgiCiAjaW5jbHVkZSAiRGF0YVRy
YW5zZmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudEZyYWdt
ZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlBh
c3RlYm9hcmQuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNsdWRlICJ3aW5kb3dzLmgiCkBA
IC04NywxOSArODMsNCBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFn
SW1hZ2UoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEVsZW1lbgogICAgIHBhc3RlYm9hcmQu
d3JpdGVNYXJrdXAoY3JlYXRlTWFya3VwKGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBSZXNvbHZl
QWxsVVJMcykpOwogfQogCi1QYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERyYWdDb250cm9s
bGVyOjpjcmVhdGVGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYgZHJhZ0RhdGEsIEZyYW1l
JiBmcmFtZSwgUmFuZ2UmLCBib29sIC8qYWxsb3dQbGFpblRleHQqLywgYm9vbCYgLypjaG9zZVBs
YWluVGV4dCovKQotewotICAgIERyYWdEYXRhUmVmIHBsYXRmb3JtRHJhZ0RhdGEgPSBkcmFnRGF0
YS5wbGF0Zm9ybURhdGEoKTsKLSAgICBpZiAoY29udGFpbnNGaWxlbmFtZXMocGxhdGZvcm1EcmFn
RGF0YSA/IHBsYXRmb3JtRHJhZ0RhdGEgOiAmZHJhZ0RhdGEuZHJhZ0RhdGFNYXAoKSkpIHsKLSAg
ICAgICAgaWYgKFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBmcmFnbWVu
dEZyb21GaWxlbmFtZXMoZnJhbWUuZG9jdW1lbnQoKSwgcGxhdGZvcm1EcmFnRGF0YSA/IHBsYXRm
b3JtRHJhZ0RhdGEgOiAmZHJhZ0RhdGEuZHJhZ0RhdGFNYXAoKSkpCi0gICAgICAgICAgICByZXR1
cm4gZnJhZ21lbnQ7Ci0gICAgfQotCi0gICAgaWYgKGNvbnRhaW5zSFRNTChwbGF0Zm9ybURyYWdE
YXRhID8gcGxhdGZvcm1EcmFnRGF0YSA6ICZkcmFnRGF0YS5kcmFnRGF0YU1hcCgpKSkgewotICAg
ICAgICBpZiAoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGZyYWdtZW50
RnJvbUhUTUwoZnJhbWUuZG9jdW1lbnQoKSwgcGxhdGZvcm1EcmFnRGF0YSA/IHBsYXRmb3JtRHJh
Z0RhdGEgOiAmZHJhZ0RhdGEuZHJhZ0RhdGFNYXAoKSkpCi0gICAgICAgICAgICByZXR1cm4gZnJh
Z21lbnQ7Ci0gICAgfQotICAgIHJldHVybiBudWxscHRyOwotfQotCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggNGFhYTdiZS4uOTQyZjllNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMjAyLDYgKzIwMiw3IEBAIHB1YmxpYzoKICNpZiBQTEFU
Rk9STShXSU4pCiAgICAgQ09NUHRyPElEYXRhT2JqZWN0PiBkYXRhT2JqZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhT2JqZWN0OyB9CiAgICAgdm9pZCBzZXRFeHRlcm5hbERhdGFPYmplY3QoSURh
dGFPYmplY3QqKTsKKyAgICBjb25zdCBEcmFnRGF0YU1hcCYgZHJhZ0RhdGFNYXAoKSBjb25zdCB7
IHJldHVybiBtX2RyYWdEYXRhTWFwOyB9CiAgICAgdm9pZCB3cml0ZVVSTFRvV3JpdGFibGVEYXRh
T2JqZWN0KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpOwogICAgIENPTVB0cjxXQ0RhdGFPYmpl
Y3Q+IHdyaXRhYmxlRGF0YU9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JpdGFibGVEYXRhT2Jq
ZWN0OyB9CiAgICAgdm9pZCB3cml0ZUltYWdlVG9EYXRhT2JqZWN0KEVsZW1lbnQmLCBjb25zdCBV
UkwmKTsgLy8gRklYTUU6IExheWVyaW5nIHZpb2xhdGlvbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238239</attachid>
            <date>2014-09-17 00:24:27 -0700</date>
            <delta_ts>2014-09-17 01:19:13 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-fragment-for-dnd.diff</filename>
            <type>text/plain</type>
            <size>16555</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MWQ4N2E4OS4uYWJjZTA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQx
IEBACiAyMDE0LTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAorICAgICAgICBNb3ZlIERyYWdDb250cm9sbGVyOjpjcmVhdGVGcmFnbWVudEZyb21EcmFn
RGF0YSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgZWRpdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0
ZWJvYXJkKCkgY29tbW9uIHRvIGFsbCBwb3J0cyBhbmQKKyAgICAgICAgYWRkIGEgaW1wbGVtZW50
YXRpb24gZm9yIGV2ZXJ5IHBvcnQuCisKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZTogQWRk
IG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qOiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQpOiBNb3ZlIHRvIEVkaXRv
cldpbi5jcHAKKyAgICAgICAgc2luY2UgdGhpcyBpcyBvbmx5IHVzZWQgYnkgd2luZG93cyBwb3J0
LgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9lZmwvRWRp
dG9yRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0
ZWJvYXJkKToKKyAgICAgICAgKiBlZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQpOgorICAgICAgICAqIGVk
aXRpbmcvd2luL0VkaXRvcldpbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6d2ViQ29u
dGVudEZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEpOiBVc2UgdGhl
IGVkaXRvciBpbnN0ZWFkIG9mCisgICAgICAgIGNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhKCkg
dGhhdCBoYXMgYmVlbiByZW1vdmVkLiBBbHNvIG1hZGUgdGhpcworICAgICAgICBtZXRob2QgYSBz
dGF0aWMgZnVudGlvbiBhZ2Fpbi4KKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmg6Cisg
ICAgICAgICogcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwOiBSZW1vdmUgY3JlYXRlRnJh
Z21lbnRGcm9tRHJhZ0RhdGEoKS4KKyAgICAgICAgKiBwYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0
ay5jcHA6IERpdHRvLgorICAgICAgICAqIHBhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tOiBE
aXR0by4KKyAgICAgICAgKiBwYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHA6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OmRyYWdEYXRhTWFwKTogQWRkIGEgZ2V0dGVyIGZvciBtX2RyYWdEYXRhTWFwCisgICAg
ICAgIGFzIHJlcXVpcmVkIGJ5IEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0ZWJvYXJkIGZvciB3
aW5kb3dzLgorCisyMDE0LTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBGaXggbGF5ZXJpbmcgdmlvbGF0aW9ucyBpbiBQYXN0
ZWJvYXJkR3RrCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzY4MDIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA0YjZhMWVlLi4zNTVmMTkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTAsNiArMTAsOCBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RXaW4uY3BwCiAKKyAg
ICBlZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCisKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50
V2luLmNwcAogCiAgICAgcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA5MTdjNjg4Li43
ZjZiNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKQEAgLTE0OTExLDYgKzE0OTExLDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXHdpblxFZGl0b3JXaW4uY3BwIi8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxmaWxlYXBpXEFzeW5jRmlsZVN0cmVhbS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VCdXR0b25JbnB1dFR5cGUuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCIg
Lz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBiMmU1ZDNhLi41N2Q2YzE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC01NjIsMjAgKzU2Miw2IEBAIFN0cmluZyBFZGl0
b3I6OnBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRQbGFpblRleHQmIHRl
eHQpCiAKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oRUZMKSAm
JiAhUExBVEZPUk0oR1RLKQotdm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVi
b2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5k
bGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQotewotICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2Ug
PSBzZWxlY3RlZFJhbmdlKCk7Ci0gICAgaWYgKCFyYW5nZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBwYXN0ZWJvYXJkLT5kb2N1bWVudEZyYWdtZW50KG1fZnJhbWUsICpyYW5nZSwgYWxs
b3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsKLSAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxk
SW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQp
KQotICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQ
YXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFu
ZGxpbmcpOwotfQotI2VuZGlmCi0KIGJvb2wgRWRpdG9yOjpjYW5TbWFydFJlcGxhY2VXaXRoUGFz
dGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQogewogICAgIHJldHVybiBjbGllbnQoKSAm
JiBjbGllbnQoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgJiYgcGFzdGVib2FyZC5jYW5T
bWFydFJlcGxhY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDRiNzE5NWMuLmU4Yzkx
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDI2LDYgKzQyNiw4IEBAIHB1YmxpYzoK
ICAgICBEZWxldGVCdXR0b25Db250cm9sbGVyJiBkZWxldGVCdXR0b25Db250cm9sbGVyKCkgY29u
c3QgeyByZXR1cm4gKm1fZGVsZXRlQnV0dG9uQ29udHJvbGxlcjsgfQogI2VuZGlmCiAKKyAgICBQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHdlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0
ZWJvYXJkJiwgUmFuZ2UmIGNvbnRleHQsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3Nl
UGxhaW5UZXh0KTsKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZW5kZXJTdHlsZSogc3R5bGVGb3JTZWxlY3Rpb25TdGFydChGcmFtZSogLCBOb2RlICom
bm9kZVRvUmVtb3ZlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGluc2VydFBhcmFncmFwaFNl
cGFyYXRvckluUXVvdGVkQ29udGVudCgpOwpAQCAtNDMzLDcgKzQzNSw2IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBOU0RpY3Rpb25hcnkqIGZvbnRBdHRyaWJ1dGVzRm9yU2VsZWN0aW9u
U3RhcnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RyaW5nU2VsZWN0aW9u
Rm9yUGFzdGVib2FyZCgpOwogICAgIFN0cmluZyBzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJk
V2l0aEltYWdlQWx0VGV4dCgpOwotICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gd2Vi
Q29udGVudEZyb21QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBSYW5nZSYgY29udGV4dCwgYm9vbCBh
bGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwogI2lmICFQTEFURk9STShJT1Mp
CiAgICAgYm9vbCBjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpOwogICAgIHZvaWQg
dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2VmbC9FZGl0b3JFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9lZmwv
RWRpdG9yRWZsLmNwcAppbmRleCBhMDQxNjJmLi4wYmVhOGNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2VmbC9FZGl0b3JFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvZWZsL0VkaXRvckVmbC5jcHAKQEAgLTQ3LDQgKzQ3LDkgQEAgdm9pZCBFZGl0b3I6OnBh
c3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCosIGJvb2wsIE1haWxCbG9ja3F1b3RlSGFuZGxp
bmcpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgUmFuZ2Um
LCBib29sIC8qYWxsb3dQbGFpblRleHQqLywgYm9vbCYgLypjaG9zZVBsYWluVGV4dCovKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcAppbmRleCBjNzcyZWM2Li4xMDFlMGIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAKQEAgLTEyOSw0ICsxMjks
OSBAQCB2b2lkIEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoUGFzdGVib2FyZCYg
cGFzdGVib2FyZCkKICAgICBwYXN0ZWJvYXJkLndyaXRlKHBhc3RlYm9hcmRDb250ZW50KTsKIH0K
IAorUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFz
dGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxv
d1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZy
YWdtZW50RnJvbVBhc3RlYm9hcmREYXRhKHBhc3RlYm9hcmQsIG1fZnJhbWUsIGNvbnRleHQsIGFs
bG93UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ZjkxMTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRWRpdG9yLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmRVdGlsaXRpZXNX
aW4uaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNp
bmNsdWRlICJ3aW5kb3dzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBFZGl0b3I6
OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCosIGJvb2wsIE1haWxCbG9ja3F1b3RlSGFu
ZGxpbmcpCit7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IHNlbGVjdGVkUmFuZ2UoKTsKKyAg
ICBpZiAoIXJhbmdlKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGNob3NlUGxhaW5UZXh0
OworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IHBhc3RlYm9hcmQtPmRv
Y3VtZW50RnJhZ21lbnQobV9mcmFtZSwgKnJhbmdlLCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFp
blRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVu
dCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvblBhc3RlZCkpCisgICAgICAgIHBhc3RlQXNGcmFn
bWVudChmcmFnbWVudCwgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQp
LCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2NrcXVvdGVIYW5kbGluZyk7Cit9CisKK3RlbXBsYXRl
IDx0eXBlbmFtZSBQbGF0Zm9ybURyYWdEYXRhPgorc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tUGxhdGZvcm1EYXRhKFBsYXRmb3JtRHJhZ0RhdGEq
IHBsYXRmb3JtRHJhZ0RhdGEsIEZyYW1lJiBmcmFtZSkKK3sKKyAgICBpZiAoY29udGFpbnNGaWxl
bmFtZXMocGxhdGZvcm1EcmFnRGF0YSkpIHsKKyAgICAgICAgaWYgKFBhc3NSZWZQdHI8RG9jdW1l
bnRGcmFnbWVudD4gZnJhZ21lbnQgPSBmcmFnbWVudEZyb21GaWxlbmFtZXMoZnJhbWUuZG9jdW1l
bnQoKSwgcGxhdGZvcm1EcmFnRGF0YSkpCisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQ7Cisg
ICAgfQorCisgICAgaWYgKGNvbnRhaW5zSFRNTChwbGF0Zm9ybURyYWdEYXRhKSkgeworICAgICAg
ICBpZiAoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGZyYWdtZW50RnJv
bUhUTUwoZnJhbWUuZG9jdW1lbnQoKSwgcGxhdGZvcm1EcmFnRGF0YSkpCisgICAgICAgICAgICBy
ZXR1cm4gZnJhZ21lbnQ7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCitQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0ZWJvYXJkKFBh
c3RlYm9hcmQmIHBhc3RlYm9hcmQsIFJhbmdlJiwgYm9vbCAvKmFsbG93UGxhaW5UZXh0Ki8sIGJv
b2wmIC8qY2hvc2VQbGFpblRleHQqLykKK3sKKyAgICBpZiAoQ09NUHRyPElEYXRhT2JqZWN0PiBw
bGF0Zm9ybURyYWdEYXRhID0gcGFzdGVib2FyZC5kYXRhT2JqZWN0KCkpCisgICAgICAgIHJldHVy
biBjcmVhdGVGcmFnbWVudEZyb21QbGF0Zm9ybURhdGEocGxhdGZvcm1EcmFnRGF0YS5nZXQoKSwg
ZnJhbWUpOworCisgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YSgmcGFz
dGVib2FyZC5kcmFnRGF0YU1hcCgpLCBmcmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMDM0ZGVlZS4uNzUx
Y2Q0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTExNCwxMyAr
MTE0LDEzIEBAIERyYWdDb250cm9sbGVyOjp+RHJhZ0NvbnRyb2xsZXIoKQogICAgIG1fY2xpZW50
LmRyYWdDb250cm9sbGVyRGVzdHJveWVkKCk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gRHJhZ0NvbnRyb2xsZXI6OmRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0Rh
dGEmIGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiBjb250ZXh0LCBib29sIGFsbG93UGxh
aW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCkKK3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRh
LCBGcmFtZSYgZnJhbWUsIFJhbmdlJiBjb250ZXh0LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29s
JiBjaG9zZVBsYWluVGV4dCkKIHsKICAgICBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOwogCiAgICAg
RG9jdW1lbnQmIGRvY3VtZW50ID0gY29udGV4dC5vd25lckRvY3VtZW50KCk7CiAgICAgaWYgKGRy
YWdEYXRhLmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQoKSkgewotICAgICAgICBpZiAoUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbURyYWdE
YXRhKGRyYWdEYXRhLCBmcmFtZSwgY29udGV4dCwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5U
ZXh0KSkKKyAgICAgICAgaWYgKFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSBmcmFtZS5lZGl0b3IoKS53ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKGRyYWdEYXRhKSwgY29udGV4dCwgYWxsb3dQbGFpblRleHQsIGNo
b3NlUGxhaW5UZXh0KSkKICAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKIAogICAgICAgICBp
ZiAoZHJhZ0RhdGEuY29udGFpbnNVUkwoRHJhZ0RhdGE6OkRvTm90Q29udmVydEZpbGVuYW1lcykp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCA3ZWViMTcxLi5kN2IyODcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBAIC0xMTUsMTAgKzExNSw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBjbGVhbnVwQWZ0ZXJTeXN0ZW1EcmFn
KCk7CiAgICAgICAgIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYs
IEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsKTsKIAotICAgICAgICAv
LyBGSVhNRTogTW92ZSBjcmVhdGVGcmFnbWVudEZyb21EcmFnRGF0YSBpbXBsZW1lbnRhdGlvbiB0
byB0aGUgRWRpdG9yIGFuZCBtYWtlIGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEgYSBzdGF0
aWMgZnVuY3Rpb24gYWdhaW4uCi0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmLCBGcmFtZSYsIFJh
bmdlJiwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21E
cmFnRGF0YShEcmFnRGF0YSYsIEZyYW1lJiwgUmFuZ2UmLCBib29sIGFsbG93UGxhaW5UZXh0LCBi
b29sJiBjaG9zZVBsYWluVGV4dCk7Ci0KICAgICAgICAgUGFnZSYgbV9wYWdlOwogICAgICAgICBE
cmFnQ2xpZW50JiBtX2NsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9l
ZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJhZ0Nv
bnRyb2xsZXJFZmwuY3BwCmluZGV4IDM2MTU1NDguLjljNTQwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvZWZsL0RyYWdDb250cm9sbGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2VmbC9EcmFnQ29udHJvbGxlckVmbC5jcHAKQEAgLTczLDkgKzczLDQgQEAgdm9p
ZCBEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYs
IEVsZW1lbnQmLCBjb25zdCBVUkwKIHsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBEcmFnQ29udHJvbGxlcjo6Y3JlYXRlRnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmLCBG
cmFtZSYsIFJhbmdlJiwgYm9vbCAvKmFsbG93UGxhaW5UZXh0Ki8sIGJvb2wmIC8qY2hvc2VQbGFp
blRleHQqLykKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDZlZmM2N2EuLjNiYzdjODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAKQEAg
LTgxLDEyICs4MSw0IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJ
bWFnZShEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRWxlbWVuCiAgICAgZnJhbWUtPmVkaXRv
cigpLndyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKSwgZWxl
bWVudCwgdXJsLCBsYWJlbCk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJh
Z0NvbnRyb2xsZXI6OmNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBkcmFnRGF0
YSwgRnJhbWUmIGZyYW1lLCBSYW5nZSYsIGJvb2wgLyphbGxvd1BsYWluVGV4dCovLCBib29sJiAv
KmNob3NlUGxhaW5UZXh0Ki8pCi17Ci0gICAgaWYgKCFkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKS0+
aGFzTWFya3VwKCkgfHwgIWZyYW1lLmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCi0gICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cCgqZnJhbWUuZG9jdW1lbnQo
KSwgZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCktPm1hcmt1cCgpLCAiIik7Ci19Ci0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KaW5kZXggOTdhNmFjMy4u
MjVkMDgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xs
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMu
bW0KQEAgLTkyLDEyICs5Miw2IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0
ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRWxlbWVuCiAgICAgbV9jbGll
bnQuZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGRhdGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkubmFt
ZSgpLCBlbGVtZW50LCB1cmwsIGxhYmVsLCBlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CiB9
CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZUZy
YWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBkcmFnRGF0YSwgRnJhbWUmIGZyYW1lLCBSYW5n
ZSYgY29udGV4dCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCi17
Ci0gICAgUGFzdGVib2FyZCBwYXN0ZWJvYXJkKGRyYWdEYXRhLnBhc3RlYm9hcmROYW1lKCkpOwot
ICAgIHJldHVybiBmcmFtZS5lZGl0b3IoKS53ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQocGFzdGVi
b2FyZCwgY29udGV4dCwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsKLX0KLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2luLmNwcAppbmRleCBiYjA2
YTQ1Li5hMmNjNjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29u
dHJvbGxlcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xs
ZXJXaW4uY3BwCkBAIC0yNiwxNCArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJEcmFnQ29udHJvbGxlci5oIgogCi0jaW5jbHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzV2lu
LmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNs
dWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKICNp
bmNsdWRlICJ3aW5kb3dzLmgiCkBAIC04NywyNyArODMsNCBAQCB2b2lkIERyYWdDb250cm9sbGVy
OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEVs
ZW1lbgogICAgIHBhc3RlYm9hcmQud3JpdGVNYXJrdXAoY3JlYXRlTWFya3VwKGVsZW1lbnQsIElu
Y2x1ZGVOb2RlLCAwLCBSZXNvbHZlQWxsVVJMcykpOwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
UGxhdGZvcm1EcmFnRGF0YT4KLXN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNy
ZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YShQbGF0Zm9ybURyYWdEYXRhKiBwbGF0Zm9ybURy
YWdEYXRhLCBGcmFtZSYgZnJhbWUpCi17Ci0gICAgaWYgKGNvbnRhaW5zRmlsZW5hbWVzKHBsYXRm
b3JtRHJhZ0RhdGEpKSB7Ci0gICAgICAgIGlmIChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gZnJhZ21lbnRGcm9tRmlsZW5hbWVzKGZyYW1lLmRvY3VtZW50KCksIHBsYXRm
b3JtRHJhZ0RhdGEpKQotICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50OwotICAgIH0KLQotICAg
IGlmIChjb250YWluc0hUTUwocGxhdGZvcm1EcmFnRGF0YSkpIHsKLSAgICAgICAgaWYgKFBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBmcmFnbWVudEZyb21IVE1MKGZyYW1l
LmRvY3VtZW50KCksIHBsYXRmb3JtRHJhZ0RhdGEpKQotICAgICAgICAgICAgcmV0dXJuIGZyYWdt
ZW50OwotICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotUGFzc1JlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBEcmFnQ29udHJvbGxlcjo6Y3JlYXRlRnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJh
Z0RhdGEmIGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiwgYm9vbCAvKmFsbG93UGxhaW5U
ZXh0Ki8sIGJvb2wmIC8qY2hvc2VQbGFpblRleHQqLykKLXsKLSAgICBpZiAoRHJhZ0RhdGFSZWYg
cGxhdGZvcm1EcmFnRGF0YSA9IGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKQotICAgICAgICByZXR1
cm4gY3JlYXRlRnJhZ21lbnRGcm9tUGxhdGZvcm1EYXRhKHBsYXRmb3JtRHJhZ0RhdGEsIGZyYW1l
KTsKLQotICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21QbGF0Zm9ybURhdGEoJmRyYWdEYXRh
LmRyYWdEYXRhTWFwKCksIGZyYW1lKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZC5oCmluZGV4IDRhYWE3YmUuLjk0MmY5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0
ZWJvYXJkLmgKQEAgLTIwMiw2ICsyMDIsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oV0lOKQog
ICAgIENPTVB0cjxJRGF0YU9iamVjdD4gZGF0YU9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YU9iamVjdDsgfQogICAgIHZvaWQgc2V0RXh0ZXJuYWxEYXRhT2JqZWN0KElEYXRhT2JqZWN0Kik7
CisgICAgY29uc3QgRHJhZ0RhdGFNYXAmIGRyYWdEYXRhTWFwKCkgY29uc3QgeyByZXR1cm4gbV9k
cmFnRGF0YU1hcDsgfQogICAgIHZvaWQgd3JpdGVVUkxUb1dyaXRhYmxlRGF0YU9iamVjdChjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmKTsKICAgICBDT01QdHI8V0NEYXRhT2JqZWN0PiB3cml0YWJs
ZURhdGFPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3dyaXRhYmxlRGF0YU9iamVjdDsgfQogICAg
IHZvaWQgd3JpdGVJbWFnZVRvRGF0YU9iamVjdChFbGVtZW50JiwgY29uc3QgVVJMJik7IC8vIEZJ
WE1FOiBMYXllcmluZyB2aW9sYXRpb24uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238240</attachid>
            <date>2014-09-17 01:19:13 -0700</date>
            <delta_ts>2014-09-17 02:03:10 -0700</delta_ts>
            <desc>Try to fix windows build</desc>
            <filename>wcore-fragment-for-dnd2.diff</filename>
            <type>text/plain</type>
            <size>16608</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MWQ4N2E4OS4uYWJjZTA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQx
IEBACiAyMDE0LTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAorICAgICAgICBNb3ZlIERyYWdDb250cm9sbGVyOjpjcmVhdGVGcmFnbWVudEZyb21EcmFn
RGF0YSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgZWRpdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0
ZWJvYXJkKCkgY29tbW9uIHRvIGFsbCBwb3J0cyBhbmQKKyAgICAgICAgYWRkIGEgaW1wbGVtZW50
YXRpb24gZm9yIGV2ZXJ5IHBvcnQuCisKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZTogQWRk
IG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qOiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQpOiBNb3ZlIHRvIEVkaXRv
cldpbi5jcHAKKyAgICAgICAgc2luY2UgdGhpcyBpcyBvbmx5IHVzZWQgYnkgd2luZG93cyBwb3J0
LgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9lZmwvRWRp
dG9yRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0
ZWJvYXJkKToKKyAgICAgICAgKiBlZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQpOgorICAgICAgICAqIGVk
aXRpbmcvd2luL0VkaXRvcldpbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6d2ViQ29u
dGVudEZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEpOiBVc2UgdGhl
IGVkaXRvciBpbnN0ZWFkIG9mCisgICAgICAgIGNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhKCkg
dGhhdCBoYXMgYmVlbiByZW1vdmVkLiBBbHNvIG1hZGUgdGhpcworICAgICAgICBtZXRob2QgYSBz
dGF0aWMgZnVudGlvbiBhZ2Fpbi4KKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmg6Cisg
ICAgICAgICogcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwOiBSZW1vdmUgY3JlYXRlRnJh
Z21lbnRGcm9tRHJhZ0RhdGEoKS4KKyAgICAgICAgKiBwYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0
ay5jcHA6IERpdHRvLgorICAgICAgICAqIHBhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tOiBE
aXR0by4KKyAgICAgICAgKiBwYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHA6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OmRyYWdEYXRhTWFwKTogQWRkIGEgZ2V0dGVyIGZvciBtX2RyYWdEYXRhTWFwCisgICAg
ICAgIGFzIHJlcXVpcmVkIGJ5IEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0ZWJvYXJkIGZvciB3
aW5kb3dzLgorCisyMDE0LTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBGaXggbGF5ZXJpbmcgdmlvbGF0aW9ucyBpbiBQYXN0
ZWJvYXJkR3RrCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzY4MDIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA0YjZhMWVlLi4zNTVmMTkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTAsNiArMTAsOCBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RXaW4uY3BwCiAKKyAg
ICBlZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCisKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50
V2luLmNwcAogCiAgICAgcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA5MTdjNjg4Li43
ZjZiNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKQEAgLTE0OTExLDYgKzE0OTExLDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXHdpblxFZGl0b3JXaW4uY3BwIi8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxmaWxlYXBpXEFzeW5jRmlsZVN0cmVhbS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VCdXR0b25JbnB1dFR5cGUuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCIg
Lz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBiMmU1ZDNhLi41N2Q2YzE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC01NjIsMjAgKzU2Miw2IEBAIFN0cmluZyBFZGl0
b3I6OnBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRQbGFpblRleHQmIHRl
eHQpCiAKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oRUZMKSAm
JiAhUExBVEZPUk0oR1RLKQotdm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVi
b2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5k
bGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQotewotICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2Ug
PSBzZWxlY3RlZFJhbmdlKCk7Ci0gICAgaWYgKCFyYW5nZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBwYXN0ZWJvYXJkLT5kb2N1bWVudEZyYWdtZW50KG1fZnJhbWUsICpyYW5nZSwgYWxs
b3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsKLSAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxk
SW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQp
KQotICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQ
YXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFu
ZGxpbmcpOwotfQotI2VuZGlmCi0KIGJvb2wgRWRpdG9yOjpjYW5TbWFydFJlcGxhY2VXaXRoUGFz
dGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQogewogICAgIHJldHVybiBjbGllbnQoKSAm
JiBjbGllbnQoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgJiYgcGFzdGVib2FyZC5jYW5T
bWFydFJlcGxhY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDRiNzE5NWMuLmU4Yzkx
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDI2LDYgKzQyNiw4IEBAIHB1YmxpYzoK
ICAgICBEZWxldGVCdXR0b25Db250cm9sbGVyJiBkZWxldGVCdXR0b25Db250cm9sbGVyKCkgY29u
c3QgeyByZXR1cm4gKm1fZGVsZXRlQnV0dG9uQ29udHJvbGxlcjsgfQogI2VuZGlmCiAKKyAgICBQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHdlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0
ZWJvYXJkJiwgUmFuZ2UmIGNvbnRleHQsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3Nl
UGxhaW5UZXh0KTsKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZW5kZXJTdHlsZSogc3R5bGVGb3JTZWxlY3Rpb25TdGFydChGcmFtZSogLCBOb2RlICom
bm9kZVRvUmVtb3ZlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGluc2VydFBhcmFncmFwaFNl
cGFyYXRvckluUXVvdGVkQ29udGVudCgpOwpAQCAtNDMzLDcgKzQzNSw2IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBOU0RpY3Rpb25hcnkqIGZvbnRBdHRyaWJ1dGVzRm9yU2VsZWN0aW9u
U3RhcnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RyaW5nU2VsZWN0aW9u
Rm9yUGFzdGVib2FyZCgpOwogICAgIFN0cmluZyBzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJk
V2l0aEltYWdlQWx0VGV4dCgpOwotICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gd2Vi
Q29udGVudEZyb21QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBSYW5nZSYgY29udGV4dCwgYm9vbCBh
bGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwogI2lmICFQTEFURk9STShJT1Mp
CiAgICAgYm9vbCBjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpOwogICAgIHZvaWQg
dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2VmbC9FZGl0b3JFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9lZmwv
RWRpdG9yRWZsLmNwcAppbmRleCBhMDQxNjJmLi4wYmVhOGNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2VmbC9FZGl0b3JFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvZWZsL0VkaXRvckVmbC5jcHAKQEAgLTQ3LDQgKzQ3LDkgQEAgdm9pZCBFZGl0b3I6OnBh
c3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCosIGJvb2wsIE1haWxCbG9ja3F1b3RlSGFuZGxp
bmcpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgUmFuZ2Um
LCBib29sIC8qYWxsb3dQbGFpblRleHQqLywgYm9vbCYgLypjaG9zZVBsYWluVGV4dCovKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcAppbmRleCBjNzcyZWM2Li4xMDFlMGIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAKQEAgLTEyOSw0ICsxMjks
OSBAQCB2b2lkIEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoUGFzdGVib2FyZCYg
cGFzdGVib2FyZCkKICAgICBwYXN0ZWJvYXJkLndyaXRlKHBhc3RlYm9hcmRDb250ZW50KTsKIH0K
IAorUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFz
dGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxv
d1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZy
YWdtZW50RnJvbVBhc3RlYm9hcmREYXRhKHBhc3RlYm9hcmQsIG1fZnJhbWUsIGNvbnRleHQsIGFs
bG93UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxOGI1ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRWRpdG9yLmgiCisKKyNpbmNsdWRlICJDbGlwYm9hcmRVdGlsaXRpZXNX
aW4uaCIKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNp
bmNsdWRlICJ3aW5kb3dzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBFZGl0b3I6
OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1Bs
YWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQor
eworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJhbmdlKCk7CisgICAgaWYgKCFy
YW5nZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKKyAgICBS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBwYXN0ZWJvYXJkLT5kb2N1bWVudEZy
YWdtZW50KG1fZnJhbWUsICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsK
KyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdl
LCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQpKQorICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJh
Z21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQ
bGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgUGxhdGZvcm1EcmFnRGF0YT4KK3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YShQbGF0Zm9ybURyYWdEYXRhKiBwbGF0Zm9y
bURyYWdEYXRhLCBGcmFtZSYgZnJhbWUpCit7CisgICAgaWYgKGNvbnRhaW5zRmlsZW5hbWVzKHBs
YXRmb3JtRHJhZ0RhdGEpKSB7CisgICAgICAgIGlmIChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYWdtZW50ID0gZnJhZ21lbnRGcm9tRmlsZW5hbWVzKGZyYW1lLmRvY3VtZW50KCksIHBs
YXRmb3JtRHJhZ0RhdGEpKQorICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50OworICAgIH0KKwor
ICAgIGlmIChjb250YWluc0hUTUwocGxhdGZvcm1EcmFnRGF0YSkpIHsKKyAgICAgICAgaWYgKFBh
c3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBmcmFnbWVudEZyb21IVE1MKGZy
YW1lLmRvY3VtZW50KCksIHBsYXRmb3JtRHJhZ0RhdGEpKQorICAgICAgICAgICAgcmV0dXJuIGZy
YWdtZW50OworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUGFzc1JlZlB0cjxEb2N1
bWVudEZyYWdtZW50PiBFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJk
JiBwYXN0ZWJvYXJkLCBSYW5nZSYsIGJvb2wgLyphbGxvd1BsYWluVGV4dCovLCBib29sJiAvKmNo
b3NlUGxhaW5UZXh0Ki8pCit7CisgICAgaWYgKENPTVB0cjxJRGF0YU9iamVjdD4gcGxhdGZvcm1E
cmFnRGF0YSA9IHBhc3RlYm9hcmQuZGF0YU9iamVjdCgpKQorICAgICAgICByZXR1cm4gY3JlYXRl
RnJhZ21lbnRGcm9tUGxhdGZvcm1EYXRhKHBsYXRmb3JtRHJhZ0RhdGEuZ2V0KCksIG1fZnJhbWUp
OworCisgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YSgmcGFzdGVib2Fy
ZC5kcmFnRGF0YU1hcCgpLCBtX2ZyYW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCAwMzRkZWVlLi43NTFjZDQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMTE0LDEzICsxMTQs
MTMgQEAgRHJhZ0NvbnRyb2xsZXI6On5EcmFnQ29udHJvbGxlcigpCiAgICAgbV9jbGllbnQuZHJh
Z0NvbnRyb2xsZXJEZXN0cm95ZWQoKTsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBEcmFnQ29udHJvbGxlcjo6ZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYg
ZHJhZ0RhdGEsIEZyYW1lJiBmcmFtZSwgUmFuZ2UmIGNvbnRleHQsIGJvb2wgYWxsb3dQbGFpblRl
eHQsIGJvb2wmIGNob3NlUGxhaW5UZXh0KQorc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYgZHJhZ0RhdGEsIEZy
YW1lJiBmcmFtZSwgUmFuZ2UmIGNvbnRleHQsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNo
b3NlUGxhaW5UZXh0KQogewogICAgIGNob3NlUGxhaW5UZXh0ID0gZmFsc2U7CiAKICAgICBEb2N1
bWVudCYgZG9jdW1lbnQgPSBjb250ZXh0Lm93bmVyRG9jdW1lbnQoKTsKICAgICBpZiAoZHJhZ0Rh
dGEuY29udGFpbnNDb21wYXRpYmxlQ29udGVudCgpKSB7Ci0gICAgICAgIGlmIChQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tRHJhZ0RhdGEo
ZHJhZ0RhdGEsIGZyYW1lLCBjb250ZXh0LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQp
KQorICAgICAgICBpZiAoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGZy
YW1lLmVkaXRvcigpLndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yRHJhZ0FuZERyb3AoZHJhZ0RhdGEpLCBjb250ZXh0LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQ
bGFpblRleHQpKQogICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogCiAgICAgICAgIGlmIChk
cmFnRGF0YS5jb250YWluc1VSTChEcmFnRGF0YTo6RG9Ob3RDb252ZXJ0RmlsZW5hbWVzKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCmluZGV4IDdlZWIxNzEuLmQ3YjI4NzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKQEAgLTExNSwxMCArMTE1LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNsZWFudXBBZnRlclN5c3RlbURyYWcoKTsK
ICAgICAgICAgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0YVRyYW5zZmVyJiwgRWxl
bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwpOwogCi0gICAgICAgIC8vIEZJ
WE1FOiBNb3ZlIGNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhIGltcGxlbWVudGF0aW9uIHRvIHRo
ZSBFZGl0b3IgYW5kIG1ha2UgZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YSBhIHN0YXRpYyBm
dW5jdGlvbiBhZ2Fpbi4KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYsIEZyYW1lJiwgUmFuZ2Um
LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCk7Ci0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbURyYWdE
YXRhKERyYWdEYXRhJiwgRnJhbWUmLCBSYW5nZSYsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wm
IGNob3NlUGxhaW5UZXh0KTsKLQogICAgICAgICBQYWdlJiBtX3BhZ2U7CiAgICAgICAgIERyYWdD
bGllbnQmIG1fY2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9E
cmFnQ29udHJvbGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9EcmFnQ29udHJv
bGxlckVmbC5jcHAKaW5kZXggMzYxNTU0OC4uOWM1NDBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvZWZsL0RyYWdDb250cm9sbGVyRWZsLmNwcApAQCAtNzMsOSArNzMsNCBAQCB2b2lkIERy
YWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0YVRyYW5zZmVyJiwgRWxl
bWVudCYsIGNvbnN0IFVSTAogewogfQogCi1QYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERy
YWdDb250cm9sbGVyOjpjcmVhdGVGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYsIEZyYW1l
JiwgUmFuZ2UmLCBib29sIC8qYWxsb3dQbGFpblRleHQqLywgYm9vbCYgLypjaG9zZVBsYWluVGV4
dCovKQotewotICAgIHJldHVybiBudWxscHRyOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2d0ay9EcmFnQ29udHJvbGxlckd0ay5jcHAKaW5kZXggNmVmYzY3YS4uM2JjN2M4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcApAQCAtODEs
MTIgKzgxLDQgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdl
KERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBFbGVtZW4KICAgICBmcmFtZS0+ZWRpdG9yKCku
d3JpdGVJbWFnZVRvUGFzdGVib2FyZChkYXRhVHJhbnNmZXIucGFzdGVib2FyZCgpLCBlbGVtZW50
LCB1cmwsIGxhYmVsKTsKIH0KIAotUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEcmFnQ29u
dHJvbGxlcjo6Y3JlYXRlRnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRhLCBG
cmFtZSYgZnJhbWUsIFJhbmdlJiwgYm9vbCAvKmFsbG93UGxhaW5UZXh0Ki8sIGJvb2wmIC8qY2hv
c2VQbGFpblRleHQqLykKLXsKLSAgICBpZiAoIWRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpLT5oYXNN
YXJrdXAoKSB8fCAhZnJhbWUuZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKCpmcmFtZS5kb2N1bWVudCgpLCBk
cmFnRGF0YS5wbGF0Zm9ybURhdGEoKS0+bWFya3VwKCksICIiKTsKLX0KLQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9EcmFnQ29udHJvbGxlck1hYy5tbQppbmRleCA5N2E2YWMzLi4yNWQw
ODIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9EcmFnQ29udHJvbGxlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9EcmFnQ29udHJvbGxlck1hYy5tbQpA
QCAtOTIsMTIgKzkyLDYgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdyaXRlRHJh
Z0ltYWdlKERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBFbGVtZW4KICAgICBtX2NsaWVudC5k
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoZGF0YVRyYW5zZmVyLnBhc3RlYm9hcmQoKS5uYW1lKCks
IGVsZW1lbnQsIHVybCwgbGFiZWwsIGVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpKTsKIH0KIAot
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEcmFnQ29udHJvbGxlcjo6Y3JlYXRlRnJhZ21l
bnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiBj
b250ZXh0LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCkKLXsKLSAg
ICBQYXN0ZWJvYXJkIHBhc3RlYm9hcmQoZHJhZ0RhdGEucGFzdGVib2FyZE5hbWUoKSk7Ci0gICAg
cmV0dXJuIGZyYW1lLmVkaXRvcigpLndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChwYXN0ZWJvYXJk
LCBjb250ZXh0LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQpOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCmluZGV4IGJiMDZhNDUu
LmEyY2M2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdDb250cm9s
bGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldp
bi5jcHAKQEAgLTI2LDE0ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkRyYWdDb250cm9sbGVyLmgiCiAKLSNpbmNsdWRlICJDbGlwYm9hcmRVdGlsaXRpZXNXaW4uaCIK
ICNpbmNsdWRlICJEYXRhVHJhbnNmZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgogI2luY2x1ZGUg
IkVsZW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgogI2luY2x1
ZGUgIndpbmRvd3MuaCIKQEAgLTg3LDI3ICs4Myw0IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRl
Y2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRWxlbWVu
CiAgICAgcGFzdGVib2FyZC53cml0ZU1hcmt1cChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5jbHVk
ZU5vZGUsIDAsIFJlc29sdmVBbGxVUkxzKSk7CiB9CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBQbGF0
Zm9ybURyYWdEYXRhPgotc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRl
RnJhZ21lbnRGcm9tUGxhdGZvcm1EYXRhKFBsYXRmb3JtRHJhZ0RhdGEqIHBsYXRmb3JtRHJhZ0Rh
dGEsIEZyYW1lJiBmcmFtZSkKLXsKLSAgICBpZiAoY29udGFpbnNGaWxlbmFtZXMocGxhdGZvcm1E
cmFnRGF0YSkpIHsKLSAgICAgICAgaWYgKFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBmcmFnbWVudEZyb21GaWxlbmFtZXMoZnJhbWUuZG9jdW1lbnQoKSwgcGxhdGZvcm1E
cmFnRGF0YSkpCi0gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQ7Ci0gICAgfQotCi0gICAgaWYg
KGNvbnRhaW5zSFRNTChwbGF0Zm9ybURyYWdEYXRhKSkgewotICAgICAgICBpZiAoUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGZyYWdtZW50RnJvbUhUTUwoZnJhbWUuZG9j
dW1lbnQoKSwgcGxhdGZvcm1EcmFnRGF0YSkpCi0gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQ7
Ci0gICAgfQotICAgIHJldHVybiBudWxscHRyOwotfQotCi1QYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IERyYWdDb250cm9sbGVyOjpjcmVhdGVGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0
YSYgZHJhZ0RhdGEsIEZyYW1lJiBmcmFtZSwgUmFuZ2UmLCBib29sIC8qYWxsb3dQbGFpblRleHQq
LywgYm9vbCYgLypjaG9zZVBsYWluVGV4dCovKQotewotICAgIGlmIChEcmFnRGF0YVJlZiBwbGF0
Zm9ybURyYWdEYXRhID0gZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpCi0gICAgICAgIHJldHVybiBj
cmVhdGVGcmFnbWVudEZyb21QbGF0Zm9ybURhdGEocGxhdGZvcm1EcmFnRGF0YSwgZnJhbWUpOwot
Ci0gICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YSgmZHJhZ0RhdGEuZHJh
Z0RhdGFNYXAoKSwgZnJhbWUpOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJk
LmgKaW5kZXggNGFhYTdiZS4uOTQyZjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmQuaApAQCAtMjAyLDYgKzIwMiw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShXSU4pCiAgICAg
Q09NUHRyPElEYXRhT2JqZWN0PiBkYXRhT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhT2Jq
ZWN0OyB9CiAgICAgdm9pZCBzZXRFeHRlcm5hbERhdGFPYmplY3QoSURhdGFPYmplY3QqKTsKKyAg
ICBjb25zdCBEcmFnRGF0YU1hcCYgZHJhZ0RhdGFNYXAoKSBjb25zdCB7IHJldHVybiBtX2RyYWdE
YXRhTWFwOyB9CiAgICAgdm9pZCB3cml0ZVVSTFRvV3JpdGFibGVEYXRhT2JqZWN0KGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYpOwogICAgIENPTVB0cjxXQ0RhdGFPYmplY3Q+IHdyaXRhYmxlRGF0
YU9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JpdGFibGVEYXRhT2JqZWN0OyB9CiAgICAgdm9p
ZCB3cml0ZUltYWdlVG9EYXRhT2JqZWN0KEVsZW1lbnQmLCBjb25zdCBVUkwmKTsgLy8gRklYTUU6
IExheWVyaW5nIHZpb2xhdGlvbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238243</attachid>
            <date>2014-09-17 02:03:10 -0700</date>
            <delta_ts>2014-10-04 00:44:26 -0700</delta_ts>
            <desc>Try to fix EFL build</desc>
            <filename>wcore-fragment-for-dnd3.diff</filename>
            <type>text/plain</type>
            <size>16810</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MWQ4N2E4OS4uYWJjZTA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQx
IEBACiAyMDE0LTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAorICAgICAgICBNb3ZlIERyYWdDb250cm9sbGVyOjpjcmVhdGVGcmFnbWVudEZyb21EcmFn
RGF0YSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgZWRpdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0
ZWJvYXJkKCkgY29tbW9uIHRvIGFsbCBwb3J0cyBhbmQKKyAgICAgICAgYWRkIGEgaW1wbGVtZW50
YXRpb24gZm9yIGV2ZXJ5IHBvcnQuCisKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZTogQWRk
IG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qOiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQpOiBNb3ZlIHRvIEVkaXRv
cldpbi5jcHAKKyAgICAgICAgc2luY2UgdGhpcyBpcyBvbmx5IHVzZWQgYnkgd2luZG93cyBwb3J0
LgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRpdGluZy9lZmwvRWRp
dG9yRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0
ZWJvYXJkKToKKyAgICAgICAgKiBlZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQpOgorICAgICAgICAqIGVk
aXRpbmcvd2luL0VkaXRvcldpbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6d2ViQ29u
dGVudEZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0RhdGEpOiBVc2UgdGhl
IGVkaXRvciBpbnN0ZWFkIG9mCisgICAgICAgIGNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhKCkg
dGhhdCBoYXMgYmVlbiByZW1vdmVkLiBBbHNvIG1hZGUgdGhpcworICAgICAgICBtZXRob2QgYSBz
dGF0aWMgZnVudGlvbiBhZ2Fpbi4KKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmg6Cisg
ICAgICAgICogcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwOiBSZW1vdmUgY3JlYXRlRnJh
Z21lbnRGcm9tRHJhZ0RhdGEoKS4KKyAgICAgICAgKiBwYWdlL2d0ay9EcmFnQ29udHJvbGxlckd0
ay5jcHA6IERpdHRvLgorICAgICAgICAqIHBhZ2UvbWFjL0RyYWdDb250cm9sbGVyTWFjLm1tOiBE
aXR0by4KKyAgICAgICAgKiBwYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHA6IERpdHRvLgor
ICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OmRyYWdEYXRhTWFwKTogQWRkIGEgZ2V0dGVyIGZvciBtX2RyYWdEYXRhTWFwCisgICAg
ICAgIGFzIHJlcXVpcmVkIGJ5IEVkaXRvcjo6d2ViQ29udGVudEZyb21QYXN0ZWJvYXJkIGZvciB3
aW5kb3dzLgorCisyMDE0LTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KKwogICAgICAgICBbR1RLXSBGaXggbGF5ZXJpbmcgdmlvbGF0aW9ucyBpbiBQYXN0
ZWJvYXJkR3RrCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzY4MDIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCA0YjZhMWVlLi4zNTVmMTkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtMTAsNiArMTAsOCBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIGFjY2Vzc2liaWxpdHkvd2luL0FjY2Vzc2liaWxpdHlPYmplY3RXaW4uY3BwCiAKKyAg
ICBlZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCisKICAgICBodG1sL0hUTUxTZWxlY3RFbGVtZW50
V2luLmNwcAogCiAgICAgcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA5MTdjNjg4Li43
ZjZiNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKQEAgLTE0OTExLDYgKzE0OTExLDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxlZGl0aW5nXHdpblxFZGl0b3JXaW4uY3BwIi8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxmaWxlYXBpXEFzeW5jRmlsZVN0cmVhbS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VCdXR0b25JbnB1dFR5cGUuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caHRtbFxCYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCIg
Lz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCBiMmU1ZDNhLi41N2Q2YzE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC01NjIsMjAgKzU2Miw2IEBAIFN0cmluZyBFZGl0
b3I6OnBsYWluVGV4dEZyb21QYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmRQbGFpblRleHQmIHRl
eHQpCiAKICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oRUZMKSAm
JiAhUExBVEZPUk0oR1RLKQotdm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVi
b2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5k
bGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQotewotICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2Ug
PSBzZWxlY3RlZFJhbmdlKCk7Ci0gICAgaWYgKCFyYW5nZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKLSAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQgPSBwYXN0ZWJvYXJkLT5kb2N1bWVudEZyYWdtZW50KG1fZnJhbWUsICpyYW5nZSwgYWxs
b3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsKLSAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxk
SW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQp
KQotICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQ
YXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFu
ZGxpbmcpOwotfQotI2VuZGlmCi0KIGJvb2wgRWRpdG9yOjpjYW5TbWFydFJlcGxhY2VXaXRoUGFz
dGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkKQogewogICAgIHJldHVybiBjbGllbnQoKSAm
JiBjbGllbnQoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgJiYgcGFzdGVib2FyZC5jYW5T
bWFydFJlcGxhY2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDRiNzE5NWMuLmU4Yzkx
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDI2LDYgKzQyNiw4IEBAIHB1YmxpYzoK
ICAgICBEZWxldGVCdXR0b25Db250cm9sbGVyJiBkZWxldGVCdXR0b25Db250cm9sbGVyKCkgY29u
c3QgeyByZXR1cm4gKm1fZGVsZXRlQnV0dG9uQ29udHJvbGxlcjsgfQogI2VuZGlmCiAKKyAgICBQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IHdlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0
ZWJvYXJkJiwgUmFuZ2UmIGNvbnRleHQsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3Nl
UGxhaW5UZXh0KTsKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZW5kZXJTdHlsZSogc3R5bGVGb3JTZWxlY3Rpb25TdGFydChGcmFtZSogLCBOb2RlICom
bm9kZVRvUmVtb3ZlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGluc2VydFBhcmFncmFwaFNl
cGFyYXRvckluUXVvdGVkQ29udGVudCgpOwpAQCAtNDMzLDcgKzQzNSw2IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBOU0RpY3Rpb25hcnkqIGZvbnRBdHRyaWJ1dGVzRm9yU2VsZWN0aW9u
U3RhcnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RyaW5nU2VsZWN0aW9u
Rm9yUGFzdGVib2FyZCgpOwogICAgIFN0cmluZyBzdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJk
V2l0aEltYWdlQWx0VGV4dCgpOwotICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gd2Vi
Q29udGVudEZyb21QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBSYW5nZSYgY29udGV4dCwgYm9vbCBh
bGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOwogI2lmICFQTEFURk9STShJT1Mp
CiAgICAgYm9vbCBjYW5Db3B5RXhjbHVkaW5nU3RhbmRhbG9uZUltYWdlcygpOwogICAgIHZvaWQg
dGFrZUZpbmRTdHJpbmdGcm9tU2VsZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2VmbC9FZGl0b3JFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9lZmwv
RWRpdG9yRWZsLmNwcAppbmRleCBhMDQxNjJmLi4wNmJkNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL2VmbC9FZGl0b3JFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvZWZsL0VkaXRvckVmbC5jcHAKQEAgLTI3LDggKzI3LDEwIEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50
LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC00Nyw0ICs0OSw5IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9h
cmQqLCBib29sLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nKQogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9yOjp3ZWJDb250ZW50RnJv
bVBhc3RlYm9hcmQoUGFzdGVib2FyZCYsIFJhbmdlJiwgYm9vbCAvKmFsbG93UGxhaW5UZXh0Ki8s
IGJvb2wmIC8qY2hvc2VQbGFpblRleHQqLykKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9ndGsvRWRpdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0
ay5jcHAKaW5kZXggYzc3MmVjNi4uMTAxZTBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0
ay9FZGl0b3JHdGsuY3BwCkBAIC0xMjksNCArMTI5LDkgQEAgdm9pZCBFZGl0b3I6OndyaXRlU2Vs
ZWN0aW9uVG9QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQpCiAgICAgcGFzdGVib2Fy
ZC53cml0ZShwYXN0ZWJvYXJkQ29udGVudCk7CiB9CiAKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gRWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVi
b2FyZCwgUmFuZ2UmIGNvbnRleHQsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3NlUGxh
aW5UZXh0KQoreworICAgIHJldHVybiBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJvYXJkRGF0YShw
YXN0ZWJvYXJkLCBtX2ZyYW1lLCBjb250ZXh0LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRl
eHQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93
aW4vRWRpdG9yV2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MThi
NWZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93aW4vRWRpdG9y
V2luLmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkVkaXRvci5oIgor
CisjaW5jbHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24u
aCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCisjaW5jbHVkZSAid2luZG93cy5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3Rl
Ym9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1haWxCbG9ja3F1b3RlSGFu
ZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKK3sKKyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdl
ID0gc2VsZWN0ZWRSYW5nZSgpOworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CisgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZy
YWdtZW50ID0gcGFzdGVib2FyZC0+ZG9jdW1lbnRGcmFnbWVudChtX2ZyYW1lLCAqcmFuZ2UsIGFs
bG93UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7CisgICAgaWYgKGZyYWdtZW50ICYmIHNob3Vs
ZEluc2VydEZyYWdtZW50KGZyYWdtZW50LCByYW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVk
KSkKKyAgICAgICAgcGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LCBjYW5TbWFydFJlcGxhY2VXaXRo
UGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGNob3NlUGxhaW5UZXh0LCBtYWlsQmxvY2txdW90ZUhh
bmRsaW5nKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFBsYXRmb3JtRHJhZ0RhdGE+CitzdGF0
aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21QbGF0Zm9y
bURhdGEoUGxhdGZvcm1EcmFnRGF0YSogcGxhdGZvcm1EcmFnRGF0YSwgRnJhbWUmIGZyYW1lKQor
eworICAgIGlmIChjb250YWluc0ZpbGVuYW1lcyhwbGF0Zm9ybURyYWdEYXRhKSkgeworICAgICAg
ICBpZiAoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGZyYWdtZW50RnJv
bUZpbGVuYW1lcyhmcmFtZS5kb2N1bWVudCgpLCBwbGF0Zm9ybURyYWdEYXRhKSkKKyAgICAgICAg
ICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisKKyAgICBpZiAoY29udGFpbnNIVE1MKHBsYXRm
b3JtRHJhZ0RhdGEpKSB7CisgICAgICAgIGlmIChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gZnJhZ21lbnRGcm9tSFRNTChmcmFtZS5kb2N1bWVudCgpLCBwbGF0Zm9ybURy
YWdEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9yOjp3ZWJD
b250ZW50RnJvbVBhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCwgUmFuZ2UmLCBib29s
IC8qYWxsb3dQbGFpblRleHQqLywgYm9vbCYgLypjaG9zZVBsYWluVGV4dCovKQoreworICAgIGlm
IChDT01QdHI8SURhdGFPYmplY3Q+IHBsYXRmb3JtRHJhZ0RhdGEgPSBwYXN0ZWJvYXJkLmRhdGFP
YmplY3QoKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YShw
bGF0Zm9ybURyYWdEYXRhLmdldCgpLCBtX2ZyYW1lKTsKKworICAgIHJldHVybiBjcmVhdGVGcmFn
bWVudEZyb21QbGF0Zm9ybURhdGEoJnBhc3RlYm9hcmQuZHJhZ0RhdGFNYXAoKSwgbV9mcmFtZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKaW5kZXggMDM0ZGVlZS4uNzUxY2Q0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKQEAgLTExNCwxMyArMTE0LDEzIEBAIERyYWdDb250cm9sbGVyOjp+RHJh
Z0NvbnRyb2xsZXIoKQogICAgIG1fY2xpZW50LmRyYWdDb250cm9sbGVyRGVzdHJveWVkKCk7CiB9
CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0NvbnRyb2xsZXI6OmRvY3VtZW50
RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUsIFJh
bmdlJiBjb250ZXh0LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCkK
K3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9t
RHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiBjb250ZXh0
LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCkKIHsKICAgICBjaG9z
ZVBsYWluVGV4dCA9IGZhbHNlOwogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gY29udGV4dC5v
d25lckRvY3VtZW50KCk7CiAgICAgaWYgKGRyYWdEYXRhLmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRl
bnQoKSkgewotICAgICAgICBpZiAoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCA9IGNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhKGRyYWdEYXRhLCBmcmFtZSwgY29udGV4dCwg
YWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KSkKKyAgICAgICAgaWYgKFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBmcmFtZS5lZGl0b3IoKS53ZWJDb250ZW50RnJv
bVBhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGRyYWdEYXRhKSwg
Y29udGV4dCwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KSkKICAgICAgICAgICAgIHJl
dHVybiBmcmFnbWVudDsKIAogICAgICAgICBpZiAoZHJhZ0RhdGEuY29udGFpbnNVUkwoRHJhZ0Rh
dGE6OkRvTm90Q29udmVydEZpbGVuYW1lcykpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaAppbmRleCA3ZWViMTcxLi5kN2IyODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5oCkBAIC0xMTUsMTAgKzExNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dm9pZCBjbGVhbnVwQWZ0ZXJTeXN0ZW1EcmFnKCk7CiAgICAgICAgIHZvaWQgZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIGxhYmVsKTsKIAotICAgICAgICAvLyBGSVhNRTogTW92ZSBjcmVhdGVGcmFnbWVudEZy
b21EcmFnRGF0YSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgRWRpdG9yIGFuZCBtYWtlIGRvY3VtZW50
RnJhZ21lbnRGcm9tRHJhZ0RhdGEgYSBzdGF0aWMgZnVuY3Rpb24gYWdhaW4uCi0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJh
Z0RhdGEoRHJhZ0RhdGEmLCBGcmFtZSYsIFJhbmdlJiwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9v
bCYgY2hvc2VQbGFpblRleHQpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYsIEZyYW1lJiwgUmFu
Z2UmLCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCk7Ci0KICAgICAg
ICAgUGFnZSYgbV9wYWdlOwogICAgICAgICBEcmFnQ2xpZW50JiBtX2NsaWVudDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwCmluZGV4IDM2MTU1NDgu
LjljNTQwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0RyYWdDb250cm9s
bGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9EcmFnQ29udHJvbGxlckVm
bC5jcHAKQEAgLTczLDkgKzczLDQgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYsIEVsZW1lbnQmLCBjb25zdCBVUkwKIHsKIH0KIAot
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEcmFnQ29udHJvbGxlcjo6Y3JlYXRlRnJhZ21l
bnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmLCBGcmFtZSYsIFJhbmdlJiwgYm9vbCAvKmFsbG93UGxh
aW5UZXh0Ki8sIGJvb2wmIC8qY2hvc2VQbGFpblRleHQqLykKLXsKLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRy
b2xsZXJHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsu
Y3BwCmluZGV4IDZlZmM2N2EuLjNiYzdjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0
ay9EcmFnQ29udHJvbGxlckd0ay5jcHAKQEAgLTgxLDEyICs4MSw0IEBAIHZvaWQgRHJhZ0NvbnRy
b2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2Zl
ciwgRWxlbWVuCiAgICAgZnJhbWUtPmVkaXRvcigpLndyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoZGF0
YVRyYW5zZmVyLnBhc3RlYm9hcmQoKSwgZWxlbWVudCwgdXJsLCBsYWJlbCk7CiB9CiAKLVBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZUZyYWdtZW50RnJv
bURyYWdEYXRhKERyYWdEYXRhJiBkcmFnRGF0YSwgRnJhbWUmIGZyYW1lLCBSYW5nZSYsIGJvb2wg
LyphbGxvd1BsYWluVGV4dCovLCBib29sJiAvKmNob3NlUGxhaW5UZXh0Ki8pCi17Ci0gICAgaWYg
KCFkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKS0+aGFzTWFya3VwKCkgfHwgIWZyYW1lLmRvY3VtZW50
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50
RnJvbU1hcmt1cCgqZnJhbWUuZG9jdW1lbnQoKSwgZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCktPm1h
cmt1cCgpLCAiIik7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0RyYWdDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRy
b2xsZXJNYWMubW0KaW5kZXggOTdhNmFjMy4uMjVkMDgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KQEAgLTkyLDEyICs5Miw2IEBAIHZvaWQgRHJh
Z0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImIGRhdGFU
cmFuc2ZlciwgRWxlbWVuCiAgICAgbV9jbGllbnQuZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGRh
dGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkubmFtZSgpLCBlbGVtZW50LCB1cmwsIGxhYmVsLCBlbGVt
ZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBk
cmFnRGF0YSwgRnJhbWUmIGZyYW1lLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxvd1BsYWluVGV4
dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCi17Ci0gICAgUGFzdGVib2FyZCBwYXN0ZWJvYXJkKGRy
YWdEYXRhLnBhc3RlYm9hcmROYW1lKCkpOwotICAgIHJldHVybiBmcmFtZS5lZGl0b3IoKS53ZWJD
b250ZW50RnJvbVBhc3RlYm9hcmQocGFzdGVib2FyZCwgY29udGV4dCwgYWxsb3dQbGFpblRleHQs
IGNob3NlUGxhaW5UZXh0KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
d2luL0RyYWdDb250cm9sbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdD
b250cm9sbGVyV2luLmNwcAppbmRleCBiYjA2YTQ1Li5hMmNjNjZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCkBAIC0yNiwxNCArMjYsMTAgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogCi0jaW5j
bHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiRnJh
bWUuaCIKLSNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQu
aCIKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNsdWRlICJ3aW5kb3dzLmgiCkBAIC04NywyNyAr
ODMsNCBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0
YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEVsZW1lbgogICAgIHBhc3RlYm9hcmQud3JpdGVNYXJr
dXAoY3JlYXRlTWFya3VwKGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBSZXNvbHZlQWxsVVJMcykp
OwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgUGxhdGZvcm1EcmFnRGF0YT4KLXN0YXRpYyBQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YShQ
bGF0Zm9ybURyYWdEYXRhKiBwbGF0Zm9ybURyYWdEYXRhLCBGcmFtZSYgZnJhbWUpCi17Ci0gICAg
aWYgKGNvbnRhaW5zRmlsZW5hbWVzKHBsYXRmb3JtRHJhZ0RhdGEpKSB7Ci0gICAgICAgIGlmIChQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZnJhZ21lbnRGcm9tRmlsZW5h
bWVzKGZyYW1lLmRvY3VtZW50KCksIHBsYXRmb3JtRHJhZ0RhdGEpKQotICAgICAgICAgICAgcmV0
dXJuIGZyYWdtZW50OwotICAgIH0KLQotICAgIGlmIChjb250YWluc0hUTUwocGxhdGZvcm1EcmFn
RGF0YSkpIHsKLSAgICAgICAgaWYgKFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21l
bnQgPSBmcmFnbWVudEZyb21IVE1MKGZyYW1lLmRvY3VtZW50KCksIHBsYXRmb3JtRHJhZ0RhdGEp
KQotICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50OwotICAgIH0KLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQotUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEcmFnQ29udHJvbGxlcjo6Y3Jl
YXRlRnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUs
IFJhbmdlJiwgYm9vbCAvKmFsbG93UGxhaW5UZXh0Ki8sIGJvb2wmIC8qY2hvc2VQbGFpblRleHQq
LykKLXsKLSAgICBpZiAoRHJhZ0RhdGFSZWYgcGxhdGZvcm1EcmFnRGF0YSA9IGRyYWdEYXRhLnBs
YXRmb3JtRGF0YSgpKQotICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tUGxhdGZvcm1E
YXRhKHBsYXRmb3JtRHJhZ0RhdGEsIGZyYW1lKTsKLQotICAgIHJldHVybiBjcmVhdGVGcmFnbWVu
dEZyb21QbGF0Zm9ybURhdGEoJmRyYWdEYXRhLmRyYWdEYXRhTWFwKCksIGZyYW1lKTsKLX0KLQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCmluZGV4IDRhYWE3YmUuLjk0MmY5ZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTIwMiw2ICsyMDIsNyBAQCBw
dWJsaWM6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIENPTVB0cjxJRGF0YU9iamVjdD4gZGF0YU9i
amVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YU9iamVjdDsgfQogICAgIHZvaWQgc2V0RXh0ZXJu
YWxEYXRhT2JqZWN0KElEYXRhT2JqZWN0Kik7CisgICAgY29uc3QgRHJhZ0RhdGFNYXAmIGRyYWdE
YXRhTWFwKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnRGF0YU1hcDsgfQogICAgIHZvaWQgd3JpdGVV
UkxUb1dyaXRhYmxlRGF0YU9iamVjdChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKTsKICAgICBD
T01QdHI8V0NEYXRhT2JqZWN0PiB3cml0YWJsZURhdGFPYmplY3QoKSBjb25zdCB7IHJldHVybiBt
X3dyaXRhYmxlRGF0YU9iamVjdDsgfQogICAgIHZvaWQgd3JpdGVJbWFnZVRvRGF0YU9iamVjdChF
bGVtZW50JiwgY29uc3QgVVJMJik7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCg==
</data>
<flag name="review"
          id="263006"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239271</attachid>
            <date>2014-10-04 00:44:26 -0700</date>
            <delta_ts>2014-10-04 00:44:26 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wcore-drag-data-fragment.diff</filename>
            <type>text/plain</type>
            <size>16753</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZTg1ODhmLi40NGFlOWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTQtMTAtMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIE1vdmUgRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZUZyYWdtZW50RnJvbURyYWdE
YXRhIGltcGxlbWVudGF0aW9uIHRvIHRoZSBlZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgxOQorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgIE1ha2UgRWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9h
cmQoKSBjb21tb24gdG8gYWxsIHBvcnRzIGFuZAorICAgICAgICBhZGQgYSBpbXBsZW1lbnRhdGlv
biBmb3IgZXZlcnkgcG9ydC4KKworICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOiBBZGQgbmV3
IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2o6IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZCk6IE1vdmUgdG8gRWRpdG9yV2lu
LmNwcAorICAgICAgICBzaW5jZSB0aGlzIGlzIG9ubHkgdXNlZCBieSB3aW5kb3dzIHBvcnQuCisg
ICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL2VmbC9FZGl0b3JF
ZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9h
cmQpOgorICAgICAgICAqIGVkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZCk6CisgICAgICAgICogZWRpdGlu
Zy93aW4vRWRpdG9yV2luLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBh
c3RlV2l0aFBhc3RlYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjp3ZWJDb250ZW50
RnJvbVBhc3RlYm9hcmQpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6ZG9jdW1lbnRGcmFnbWVudEZyb21EcmFnRGF0YSk6IFVzZSB0aGUgZWRp
dG9yIGluc3RlYWQgb2YKKyAgICAgICAgY3JlYXRlRnJhZ21lbnRGcm9tRHJhZ0RhdGEoKSB0aGF0
IGhhcyBiZWVuIHJlbW92ZWQuIEFsc28gbWFkZSB0aGlzCisgICAgICAgIG1ldGhvZCBhIHN0YXRp
YyBmdW50aW9uIGFnYWluLgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBwYWdlL2VmbC9EcmFnQ29udHJvbGxlckVmbC5jcHA6IFJlbW92ZSBjcmVhdGVGcmFnbWVu
dEZyb21EcmFnRGF0YSgpLgorICAgICAgICAqIHBhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNw
cDogRGl0dG8uCisgICAgICAgICogcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW06IERpdHRv
LgorICAgICAgICAqIHBhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2luLmNwcDogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vUGFzdGVib2FyZC5oOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6ZHJhZ0RhdGFNYXApOiBBZGQgYSBnZXR0ZXIgZm9yIG1fZHJhZ0RhdGFNYXAKKyAgICAgICAg
YXMgcmVxdWlyZWQgYnkgRWRpdG9yOjp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQgZm9yIHdpbmRv
d3MuCisKIDIwMTQtMTAtMDQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtUZXhNYXBdIFJlbW92ZSBRRG9jIGNvbW1lbnRzIGluIEdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IDRiNmExZWUuLjM1NWYx
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC0xMCw2ICsxMCw4IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VS
Q0VTCiAgICAgYWNjZXNzaWJpbGl0eS93aW4vQWNjZXNzaWJpbGl0eU9iamVjdFdpbi5jcHAKIAor
ICAgIGVkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAKKwogICAgIGh0bWwvSFRNTFNlbGVjdEVsZW1l
bnRXaW4uY3BwCiAKICAgICBwYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDRkYTVhYTMu
LmE1MWZiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagpAQCAtMTQ5MjgsNiArMTQ5MjgsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxk
IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4
NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGVkaXRpbmdcd2luXEVkaXRvcldpbi5jcHAiLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGZpbGVhcGlcQXN5bmNGaWxlU3RyZWFtLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGh0bWxcQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxodG1sXEJhc2VDaGVja2FibGVJbnB1dFR5cGUuY3Bw
IiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDVhZjRmZmUuLjRhN2FmZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTU2MCwyMCArNTYwLDYgQEAgU3RyaW5nIEVk
aXRvcjo6cGxhaW5UZXh0RnJvbVBhc3RlYm9hcmQoY29uc3QgUGFzdGVib2FyZFBsYWluVGV4dCYg
dGV4dCkKIAogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShFRkwp
ICYmICFQTEFURk9STShHVEspCi12b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0
ZWJvYXJkKiBwYXN0ZWJvYXJkLCBib29sIGFsbG93UGxhaW5UZXh0LCBNYWlsQmxvY2txdW90ZUhh
bmRsaW5nIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCi17Ci0gICAgUmVmUHRyPFJhbmdlPiByYW5n
ZSA9IHNlbGVjdGVkUmFuZ2UoKTsKLSAgICBpZiAoIXJhbmdlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBib29sIGNob3NlUGxhaW5UZXh0OwotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBm
cmFnbWVudCA9IHBhc3RlYm9hcmQtPmRvY3VtZW50RnJhZ21lbnQobV9mcmFtZSwgKnJhbmdlLCBh
bGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQpOwotICAgIGlmIChmcmFnbWVudCAmJiBzaG91
bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvblBhc3Rl
ZCkpCi0gICAgICAgIHBhc3RlQXNGcmFnbWVudChmcmFnbWVudCwgY2FuU21hcnRSZXBsYWNlV2l0
aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2NrcXVvdGVI
YW5kbGluZyk7Ci19Ci0jZW5kaWYKLQogYm9vbCBFZGl0b3I6OmNhblNtYXJ0UmVwbGFjZVdpdGhQ
YXN0ZWJvYXJkKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQpCiB7CiAgICAgcmV0dXJuIGNsaWVudCgp
ICYmIGNsaWVudCgpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSAmJiBwYXN0ZWJvYXJkLmNh
blNtYXJ0UmVwbGFjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNGI3MTk1Yy4uZThj
OTFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC00MjYsNiArNDI2LDggQEAgcHVibGlj
OgogICAgIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXImIGRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIoKSBj
b25zdCB7IHJldHVybiAqbV9kZWxldGVCdXR0b25Db250cm9sbGVyOyB9CiAjZW5kaWYKIAorICAg
IFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gd2ViQ29udGVudEZyb21QYXN0ZWJvYXJkKFBh
c3RlYm9hcmQmLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hv
c2VQbGFpblRleHQpOworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlbmRlclN0eWxlKiBzdHlsZUZvclNlbGVjdGlvblN0YXJ0KEZyYW1lKiAsIE5vZGUg
KiZub2RlVG9SZW1vdmUpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaW5zZXJ0UGFyYWdyYXBo
U2VwYXJhdG9ySW5RdW90ZWRDb250ZW50KCk7CkBAIC00MzMsNyArNDM1LDYgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIE5TRGljdGlvbmFyeSogZm9udEF0dHJpYnV0ZXNGb3JTZWxlY3Rp
b25TdGFydCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzdHJpbmdTZWxlY3Rp
b25Gb3JQYXN0ZWJvYXJkKCk7CiAgICAgU3RyaW5nIHN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9h
cmRXaXRoSW1hZ2VBbHRUZXh0KCk7Ci0gICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiB3
ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoUGFzdGVib2FyZCYsIFJhbmdlJiBjb250ZXh0LCBib29s
IGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCk7CiAjaWYgIVBMQVRGT1JNKElP
UykKICAgICBib29sIGNhbkNvcHlFeGNsdWRpbmdTdGFuZGFsb25lSW1hZ2VzKCk7CiAgICAgdm9p
ZCB0YWtlRmluZFN0cmluZ0Zyb21TZWxlY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvZWZsL0VkaXRvckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Vm
bC9FZGl0b3JFZmwuY3BwCmluZGV4IGEwNDE2MmYuLjA2YmQ1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvZWZsL0VkaXRvckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9lZmwvRWRpdG9yRWZsLmNwcApAQCAtMjcsOCArMjcsMTAgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKIAorI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21l
bnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTQ3LDQgKzQ5LDkgQEAgdm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVi
b2FyZCosIGJvb2wsIE1haWxCbG9ja3F1b3RlSGFuZGxpbmcpCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAorUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBFZGl0b3I6OndlYkNvbnRlbnRG
cm9tUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgUmFuZ2UmLCBib29sIC8qYWxsb3dQbGFpblRleHQq
LywgYm9vbCYgLypjaG9zZVBsYWluVGV4dCovKQoreworICAgIHJldHVybiBudWxscHRyOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL2d0ay9FZGl0b3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9y
R3RrLmNwcAppbmRleCAwNjQ0Y2ZhLi5lN2RjMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Z3RrL0VkaXRvckd0ay5jcHAKQEAgLTEyOSw0ICsxMjksOSBAQCB2b2lkIEVkaXRvcjo6d3JpdGVT
ZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCkKICAgICBwYXN0ZWJv
YXJkLndyaXRlKHBhc3RlYm9hcmRDb250ZW50KTsKIH0KIAorUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBFZGl0b3I6OndlYkNvbnRlbnRGcm9tUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0
ZWJvYXJkLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQ
bGFpblRleHQpCit7CisgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVBhc3RlYm9hcmREYXRh
KHBhc3RlYm9hcmQsIG1fZnJhbWUsIGNvbnRleHQsIGFsbG93UGxhaW5UZXh0LCBjaG9zZVBsYWlu
VGV4dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L3dpbi9FZGl0b3JXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4
YWQ2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0
b3JXaW4uY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRWRpdG9yLmgi
CisKKyNpbmNsdWRlICJDbGlwYm9hcmRVdGlsaXRpZXNXaW4uaCIKKyNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZVNlbGVjdGlv
bi5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlICJ3aW5kb3dzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFz
dGVib2FyZCogcGFzdGVib2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVI
YW5kbGluZyBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKQoreworICAgIFJlZlB0cjxSYW5nZT4gcmFu
Z2UgPSBzZWxlY3RlZFJhbmdlKCk7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBwYXN0ZWJvYXJkLT5kb2N1bWVudEZyYWdtZW50KG1fZnJhbWUsICpyYW5nZSwg
YWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsKKyAgICBpZiAoZnJhZ21lbnQgJiYgc2hv
dWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0
ZWQpKQorICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdp
dGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hvc2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3Rl
SGFuZGxpbmcpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgUGxhdGZvcm1EcmFnRGF0YT4KK3N0
YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRm
b3JtRGF0YShQbGF0Zm9ybURyYWdEYXRhJiBwbGF0Zm9ybURyYWdEYXRhLCBGcmFtZSYgZnJhbWUp
Cit7CisgICAgaWYgKGNvbnRhaW5zRmlsZW5hbWVzKCZwbGF0Zm9ybURyYWdEYXRhKSkgeworICAg
ICAgICBpZiAoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGZyYWdtZW50
RnJvbUZpbGVuYW1lcyhmcmFtZS5kb2N1bWVudCgpLCAmcGxhdGZvcm1EcmFnRGF0YSkpCisgICAg
ICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CisgICAgfQorCisgICAgaWYgKGNvbnRhaW5zSFRNTCgm
cGxhdGZvcm1EcmFnRGF0YSkpIHsKKyAgICAgICAgaWYgKFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQgPSBmcmFnbWVudEZyb21IVE1MKGZyYW1lLmRvY3VtZW50KCksICZwbGF0
Zm9ybURyYWdEYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFnbWVudDsKKyAgICB9CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRWRpdG9y
Ojp3ZWJDb250ZW50RnJvbVBhc3RlYm9hcmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCwgUmFuZ2Um
LCBib29sIC8qYWxsb3dQbGFpblRleHQqLywgYm9vbCYgLypjaG9zZVBsYWluVGV4dCovKQorewor
ICAgIGlmIChDT01QdHI8SURhdGFPYmplY3Q+IHBsYXRmb3JtRHJhZ0RhdGEgPSBwYXN0ZWJvYXJk
LmRhdGFPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3Jt
RGF0YSgqcGxhdGZvcm1EcmFnRGF0YSwgbV9mcmFtZSk7CisKKyAgICByZXR1cm4gY3JlYXRlRnJh
Z21lbnRGcm9tUGxhdGZvcm1EYXRhKHBhc3RlYm9hcmQuZHJhZ0RhdGFNYXAoKSwgbV9mcmFtZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKaW5kZXggZmI0ZTNlNS4uYjc1N2U4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKQEAgLTExNCwxMyArMTE0LDEzIEBAIERyYWdDb250cm9sbGVyOjp+RHJh
Z0NvbnRyb2xsZXIoKQogICAgIG1fY2xpZW50LmRyYWdDb250cm9sbGVyRGVzdHJveWVkKCk7CiB9
CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0NvbnRyb2xsZXI6OmRvY3VtZW50
RnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUsIFJh
bmdlJiBjb250ZXh0LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCkK
K3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9t
RHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiBjb250ZXh0
LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCkKIHsKICAgICBjaG9z
ZVBsYWluVGV4dCA9IGZhbHNlOwogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gY29udGV4dC5v
d25lckRvY3VtZW50KCk7CiAgICAgaWYgKGRyYWdEYXRhLmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRl
bnQoKSkgewotICAgICAgICBpZiAoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCA9IGNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhKGRyYWdEYXRhLCBmcmFtZSwgY29udGV4dCwg
YWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KSkKKyAgICAgICAgaWYgKFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBmcmFtZS5lZGl0b3IoKS53ZWJDb250ZW50RnJv
bVBhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckRyYWdBbmREcm9wKGRyYWdEYXRhKSwg
Y29udGV4dCwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KSkKICAgICAgICAgICAgIHJl
dHVybiBmcmFnbWVudDsKIAogICAgICAgICBpZiAoZHJhZ0RhdGEuY29udGFpbnNVUkwoRHJhZ0Rh
dGE6OkRvTm90Q29udmVydEZpbGVuYW1lcykpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaAppbmRleCA3ZWViMTcxLi5kN2IyODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5oCkBAIC0xMTUsMTAgKzExNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dm9pZCBjbGVhbnVwQWZ0ZXJTeXN0ZW1EcmFnKCk7CiAgICAgICAgIHZvaWQgZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIGxhYmVsKTsKIAotICAgICAgICAvLyBGSVhNRTogTW92ZSBjcmVhdGVGcmFnbWVudEZy
b21EcmFnRGF0YSBpbXBsZW1lbnRhdGlvbiB0byB0aGUgRWRpdG9yIGFuZCBtYWtlIGRvY3VtZW50
RnJhZ21lbnRGcm9tRHJhZ0RhdGEgYSBzdGF0aWMgZnVuY3Rpb24gYWdhaW4uCi0gICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJh
Z0RhdGEoRHJhZ0RhdGEmLCBGcmFtZSYsIFJhbmdlJiwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9v
bCYgY2hvc2VQbGFpblRleHQpOwotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21EcmFnRGF0YShEcmFnRGF0YSYsIEZyYW1lJiwgUmFu
Z2UmLCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4dCk7Ci0KICAgICAg
ICAgUGFnZSYgbV9wYWdlOwogICAgICAgICBEcmFnQ2xpZW50JiBtX2NsaWVudDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwuY3BwCmluZGV4IDM2MTU1NDgu
LjljNTQwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0RyYWdDb250cm9s
bGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9EcmFnQ29udHJvbGxlckVm
bC5jcHAKQEAgLTczLDkgKzczLDQgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKERhdGFUcmFuc2ZlciYsIEVsZW1lbnQmLCBjb25zdCBVUkwKIHsKIH0KIAot
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEcmFnQ29udHJvbGxlcjo6Y3JlYXRlRnJhZ21l
bnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmLCBGcmFtZSYsIFJhbmdlJiwgYm9vbCAvKmFsbG93UGxh
aW5UZXh0Ki8sIGJvb2wmIC8qY2hvc2VQbGFpblRleHQqLykKLXsKLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRy
b2xsZXJHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsu
Y3BwCmluZGV4IDZlZmM2N2EuLjNiYzdjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0
ay9EcmFnQ29udHJvbGxlckd0ay5jcHAKQEAgLTgxLDEyICs4MSw0IEBAIHZvaWQgRHJhZ0NvbnRy
b2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2Zl
ciwgRWxlbWVuCiAgICAgZnJhbWUtPmVkaXRvcigpLndyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoZGF0
YVRyYW5zZmVyLnBhc3RlYm9hcmQoKSwgZWxlbWVudCwgdXJsLCBsYWJlbCk7CiB9CiAKLVBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZUZyYWdtZW50RnJv
bURyYWdEYXRhKERyYWdEYXRhJiBkcmFnRGF0YSwgRnJhbWUmIGZyYW1lLCBSYW5nZSYsIGJvb2wg
LyphbGxvd1BsYWluVGV4dCovLCBib29sJiAvKmNob3NlUGxhaW5UZXh0Ki8pCi17Ci0gICAgaWYg
KCFkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKS0+aGFzTWFya3VwKCkgfHwgIWZyYW1lLmRvY3VtZW50
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIGNyZWF0ZUZyYWdtZW50
RnJvbU1hcmt1cCgqZnJhbWUuZG9jdW1lbnQoKSwgZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCktPm1h
cmt1cCgpLCAiIik7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0RyYWdDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRy
b2xsZXJNYWMubW0KaW5kZXggOTdhNmFjMy4uMjVkMDgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KQEAgLTkyLDEyICs5Miw2IEBAIHZvaWQgRHJh
Z0NvbnRyb2xsZXI6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShEYXRhVHJhbnNmZXImIGRhdGFU
cmFuc2ZlciwgRWxlbWVuCiAgICAgbV9jbGllbnQuZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGRh
dGFUcmFuc2Zlci5wYXN0ZWJvYXJkKCkubmFtZSgpLCBlbGVtZW50LCB1cmwsIGxhYmVsLCBlbGVt
ZW50LmRvY3VtZW50KCkuZnJhbWUoKSk7CiB9CiAKLVBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVu
dD4gRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZUZyYWdtZW50RnJvbURyYWdEYXRhKERyYWdEYXRhJiBk
cmFnRGF0YSwgRnJhbWUmIGZyYW1lLCBSYW5nZSYgY29udGV4dCwgYm9vbCBhbGxvd1BsYWluVGV4
dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCi17Ci0gICAgUGFzdGVib2FyZCBwYXN0ZWJvYXJkKGRy
YWdEYXRhLnBhc3RlYm9hcmROYW1lKCkpOwotICAgIHJldHVybiBmcmFtZS5lZGl0b3IoKS53ZWJD
b250ZW50RnJvbVBhc3RlYm9hcmQocGFzdGVib2FyZCwgY29udGV4dCwgYWxsb3dQbGFpblRleHQs
IGNob3NlUGxhaW5UZXh0KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
d2luL0RyYWdDb250cm9sbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0RyYWdD
b250cm9sbGVyV2luLmNwcAppbmRleCBiYjA2YTQ1Li5hMmNjNjZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9EcmFnQ29udHJvbGxlcldpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS93aW4vRHJhZ0NvbnRyb2xsZXJXaW4uY3BwCkBAIC0yNiwxNCArMjYsMTAgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogCi0jaW5j
bHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmgiCiAjaW5jbHVkZSAiRGF0YVRyYW5zZmVyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiRnJh
bWUuaCIKLSNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQu
aCIKICNpbmNsdWRlICJtYXJrdXAuaCIKICNpbmNsdWRlICJ3aW5kb3dzLmgiCkBAIC04NywyNyAr
ODMsNCBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRGF0
YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEVsZW1lbgogICAgIHBhc3RlYm9hcmQud3JpdGVNYXJr
dXAoY3JlYXRlTWFya3VwKGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBSZXNvbHZlQWxsVVJMcykp
OwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgUGxhdGZvcm1EcmFnRGF0YT4KLXN0YXRpYyBQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBsYXRmb3JtRGF0YShQ
bGF0Zm9ybURyYWdEYXRhKiBwbGF0Zm9ybURyYWdEYXRhLCBGcmFtZSYgZnJhbWUpCi17Ci0gICAg
aWYgKGNvbnRhaW5zRmlsZW5hbWVzKHBsYXRmb3JtRHJhZ0RhdGEpKSB7Ci0gICAgICAgIGlmIChQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gZnJhZ21lbnRGcm9tRmlsZW5h
bWVzKGZyYW1lLmRvY3VtZW50KCksIHBsYXRmb3JtRHJhZ0RhdGEpKQotICAgICAgICAgICAgcmV0
dXJuIGZyYWdtZW50OwotICAgIH0KLQotICAgIGlmIChjb250YWluc0hUTUwocGxhdGZvcm1EcmFn
RGF0YSkpIHsKLSAgICAgICAgaWYgKFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21l
bnQgPSBmcmFnbWVudEZyb21IVE1MKGZyYW1lLmRvY3VtZW50KCksIHBsYXRmb3JtRHJhZ0RhdGEp
KQotICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50OwotICAgIH0KLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQotUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBEcmFnQ29udHJvbGxlcjo6Y3Jl
YXRlRnJhZ21lbnRGcm9tRHJhZ0RhdGEoRHJhZ0RhdGEmIGRyYWdEYXRhLCBGcmFtZSYgZnJhbWUs
IFJhbmdlJiwgYm9vbCAvKmFsbG93UGxhaW5UZXh0Ki8sIGJvb2wmIC8qY2hvc2VQbGFpblRleHQq
LykKLXsKLSAgICBpZiAoRHJhZ0RhdGFSZWYgcGxhdGZvcm1EcmFnRGF0YSA9IGRyYWdEYXRhLnBs
YXRmb3JtRGF0YSgpKQotICAgICAgICByZXR1cm4gY3JlYXRlRnJhZ21lbnRGcm9tUGxhdGZvcm1E
YXRhKHBsYXRmb3JtRHJhZ0RhdGEsIGZyYW1lKTsKLQotICAgIHJldHVybiBjcmVhdGVGcmFnbWVu
dEZyb21QbGF0Zm9ybURhdGEoJmRyYWdEYXRhLmRyYWdEYXRhTWFwKCksIGZyYW1lKTsKLX0KLQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCmluZGV4IDRhYWE3YmUuLjk0MmY5ZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTIwMiw2ICsyMDIsNyBAQCBw
dWJsaWM6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIENPTVB0cjxJRGF0YU9iamVjdD4gZGF0YU9i
amVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YU9iamVjdDsgfQogICAgIHZvaWQgc2V0RXh0ZXJu
YWxEYXRhT2JqZWN0KElEYXRhT2JqZWN0Kik7CisgICAgY29uc3QgRHJhZ0RhdGFNYXAmIGRyYWdE
YXRhTWFwKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnRGF0YU1hcDsgfQogICAgIHZvaWQgd3JpdGVV
UkxUb1dyaXRhYmxlRGF0YU9iamVjdChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKTsKICAgICBD
T01QdHI8V0NEYXRhT2JqZWN0PiB3cml0YWJsZURhdGFPYmplY3QoKSBjb25zdCB7IHJldHVybiBt
X3dyaXRhYmxlRGF0YU9iamVjdDsgfQogICAgIHZvaWQgd3JpdGVJbWFnZVRvRGF0YU9iamVjdChF
bGVtZW50JiwgY29uc3QgVVJMJik7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>