<?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>41805</bug_id>
          
          <creation_ts>2010-07-07 14:52:02 -0700</creation_ts>
          <short_desc>Web Inspector: Migrate Storage Panel to InspectorFrontend2</short_desc>
          <delta_ts>2010-08-11 09:46:53 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>43482</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>247781</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-07 14:52:02 -0700</bug_when>
    <thetext>Might as well try to add all new interfaces as InspectorFrontend2! This also catches
a few minor idl generator improvements $(FEATURE_DEFINES) for handling compile
time flags in InspectorFrontend2.idl.

I can break this down into separate patches if desired.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247785</commentid>
    <comment_count>1</comment_count>
      <attachid>60784</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-07 15:00:08 -0700</bug_when>
    <thetext>Created attachment 60784
[PATCH] Migrate InspectorApplicationCacheAgent

Please double check the build changes. I am unfamiliar with many of the
build systems, but I think this was rather straightforward.

I think some should already work:

  GNUmakefile.am               has  $(FEATURE_DEFINES)
  WebCore.pri                  has  $${FEATURE_DEFINES_JAVASCRIPT}}
  cmake/WebKitGenerators.cmake has  ${FEATURE_DEFINES_STR}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247803</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-07 15:23:21 -0700</bug_when>
    <thetext>Attachment 60784 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3416358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247804</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-07 15:25:58 -0700</bug_when>
    <thetext>Attachment 60784 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/3362454</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247813</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-07 15:46:52 -0700</bug_when>
    <thetext>The bots failed because this is missing a patch that I haven&apos;t landed yet. There is a lot of activity on the bots right now, and that patch is in the queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247818</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-07 16:00:47 -0700</bug_when>
    <thetext>Attachment 60784 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3365442</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247841</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-07 16:28:11 -0700</bug_when>
    <thetext>Attachment 60784 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3380454</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247870</commentid>
    <comment_count>7</comment_count>
      <attachid>60809</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-07 17:15:12 -0700</bug_when>
    <thetext>Created attachment 60809
[PATCH] Migrate Application Cache

Landed the required part in r62731. So re-uploading this so they
test with a (hopefully) ToT try-bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248014</commentid>
    <comment_count>8</comment_count>
      <attachid>60840</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-07 22:48:56 -0700</bug_when>
    <thetext>Created attachment 60840
[PATCH] Migrate Cookies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248015</commentid>
    <comment_count>9</comment_count>
      <attachid>60841</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-07 22:49:19 -0700</bug_when>
    <thetext>Created attachment 60841
[PATCH] Migrate Databases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248016</commentid>
    <comment_count>10</comment_count>
      <attachid>60842</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-07 22:49:40 -0700</bug_when>
    <thetext>Created attachment 60842
[PATCH] Migrate DOM Storage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248019</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-07 22:52:30 -0700</bug_when>
    <thetext>Miscellaneous minor fixes / improvements:
  - numerous style fixes
  - numerous unnecessary headers
  - addDatabase no longer needs a bool return value, no need to check for an exception
  - addDOMStorage no longer needs a bool return value, ditto
  - added a few &quot;const&quot;s
  - fix DatabaseTableView&apos;s statusbar icon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252867</commentid>
    <comment_count>12</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-17 04:40:43 -0700</bug_when>
    <thetext>Ilya, I can stamp these if you think they are good. Joe, only the first one is for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252984</commentid>
    <comment_count>13</comment_count>
      <attachid>60809</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-18 12:19:20 -0700</bug_when>
    <thetext>Comment on attachment 60809
[PATCH] Migrate Application Cache

Loislo told me you should rebaseline. Sorry about that!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253020</commentid>
    <comment_count>14</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-18 15:31:20 -0700</bug_when>
    <thetext>Yah, I should rebaseline these, there have been a few (minor) collisions but
certainly some file name changes. I&apos;ll try to find some time next week to do
this. When I start it I&apos;ll post a comment so you know its being worked on.
Otherwise, if Loislo comes across this section that is okay too. Be advised
there were a few frontend fixes with these patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>263303</commentid>
    <comment_count>15</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-08-11 09:46:53 -0700</bug_when>
    <thetext>Intent of this bug was handled by bug 43482, bug 43486, and bug 43541.

*** This bug has been marked as a duplicate of bug 43482 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60784</attachid>
            <date>2010-07-07 15:00:08 -0700</date>
            <delta_ts>2010-07-07 17:15:12 -0700</delta_ts>
            <desc>[PATCH] Migrate InspectorApplicationCacheAgent</desc>
            <filename>migrate.patch</filename>
            <type>text/plain</type>
            <size>15061</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODNiZTFiOC4uNmFkOTdhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiw0MCBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1pZ3JhdGUgQXBwbGljYXRp
b25DYWNoZSBTdXBwb3J0IHRvIEluc3BlY3RvckZyb250ZW5kMgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE4MDUKKworICAgICAgICAgIE5vIGNoYW5n
ZSBpbiBmdW5jdGlvbmFsaXR5LCBqdXN0IG1pZ3JhdGluZyB0byB0aGUgZ2VuZXJhdGVkIGludGVy
ZmFjZS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0
Rm9yQXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OmJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRP
YmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGw6CisKKyAgICAgICAgICBNaW5v
ciBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3Iu
cG06IGFsbG93ICJpbnQiIGFzIGEgdHlwZSBpbiB0aGUgaWRsCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvclZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXJyYXk6Omxl
bmd0aCk6IGFkZGVkIGNvbnN0IHdoZW4gZ2V0dGluZyB0aGUgbGVuZ3RoLgorCisgICAgICAgICAg
RW5zdXJlIEZFQVRVUkVfREVGSU5FUyBhcmUgaW5jbHVkZWQgd2hlbiBwcm9jZXNzaW5nIHRoZSBu
ZXcgaWRsCisgICAgICAgICAgZmlsZXMsIHNvIHRoYXQgY29tcGlsZSB0aW1lIGZsYWdzIGNhbiBi
ZSB1c2VkLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cC9XZWJDb3JlLmd5cDoKKworMjAxMC0wNy0wNyAgSm9zZXBoIFBlY29yYXJvICA8am9l
cGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFsbCBSZWZQdHIgYXJndW1lbnRzIGFuZCByZXR1cm4g
dmFsdWVzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIFBhc3NSZWZQdHIgYWNjb3JkaW5nIHRvIGNvbW1v
biBwcmFjdGljZS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQxNzU5CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBhMDBmOTFkLi5iNjJjN2EzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC04NDIsNyArODQyLDcgQEAgSlMlLmggOiAlLmlkbCAkKEpTX0JJTkRJTkdT
X1NDUklQVFMpCiBJTlNQRUNUT1JfR0VORVJBVE9SX1NDUklQVFMgPSAkKEdFTkVSQVRFX1NDUklQ
VFMpIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCiAKIFJlbW90ZSUuaCA6ICUu
aWRsICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTKQotCSQoY2FsbCBnZW5lcmF0b3Jfc2Ny
aXB0LCAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBUUykpIC0tb3V0cHV0RGlyIC4gIC0tZGVm
aW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSW5zcGVjdG9yICQ8CisJJChj
YWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTKSkgLS1v
dXRwdXREaXIgLiAgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lE
TF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgJDwK
IAogLWluY2x1ZGUgJChKU19ET01fSEVBREVSUzouaD0uZGVwKQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3Jl
Lmd5cAppbmRleCBlZGQ4YzhkLi5kZWVjOWJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAg
LTQ4MCw3ICs0ODAsNyBAQAogICAgICAgICAgICAgJy0tJywKICAgICAgICAgICAgICc8QChfaW5w
dXRzKScsCiAgICAgICAgICAgICAnLS0nLAotICAgICAgICAgICAgJy0tZGVmaW5lcycsICdMQU5H
VUFHRV9KQVZBU0NSSVBUJywKKyAgICAgICAgICAgICctLWRlZmluZXMnLCAnPChmZWF0dXJlX2Rl
ZmluZXMpIExBTkdVQUdFX0pBVkFTQ1JJUFQnLAogICAgICAgICAgICAgJy0tcHJlZml4JywgJ1Jl
bW90ZScsCiAgICAgICAgICAgICAnLS1nZW5lcmF0b3InLCAnSW5zcGVjdG9yJywKICAgICAgICAg
ICAgICc8QChnZW5lcmF0b3JfaW5jbHVkZV9kaXJzKScKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0gYi9XZWJDb3JlL2luc3BlY3Rvci9Db2Rl
R2VuZXJhdG9ySW5zcGVjdG9yLnBtCmluZGV4IGY0OWZiMzYuLjg1YmYzNmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQpAQCAtNDQsNiArNDQsMTMgQEAg
JHR5cGVUcmFuc2Zvcm17IlN0cmluZyJ9ID0gewogICAgICJoZWFkZXIiID0+ICJQbGF0Zm9ybVN0
cmluZy5oIiwKICAgICAicHVzaCIgPT4gInB1c2hTdHJpbmciCiB9OworJHR5cGVUcmFuc2Zvcm17
ImludCJ9ID0geworICAgICJwYXJhbSIgPT4gImludCIsCisgICAgInJldFZhbCIgPT4gImludCIs
CisgICAgImZvcndhcmQiID0+ICIiLAorICAgICJoZWFkZXIiID0+ICIiLAorICAgICJwdXNoIiA9
PiAicHVzaE51bWJlciIKK307CiAkdHlwZVRyYW5zZm9ybXsibG9uZyJ9ID0gewogICAgICJwYXJh
bSIgPT4gImxvbmciLAogICAgICJyZXRWYWwiID0+ICJsb25nIiwKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IDg4MjM4
YmUuLjJmZTdmMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtMzQsMTUgKzM0LDE0IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRy
b2xsZXIuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJSZW1vdGVJbnNwZWN0
b3JGcm9udGVuZDIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAi
U2NyaXB0QXJyYXkuaCIKLSNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6Okluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVy
LCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCitJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQ6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0b3JDb250cm9sbGVy
KiBpbnNwZWN0b3JDb250cm9sbGVyLCBJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKQogICAg
IDogbV9pbnNwZWN0b3JDb250cm9sbGVyKGluc3BlY3RvckNvbnRyb2xsZXIpCiAgICAgLCBtX2Zy
b250ZW5kKGZyb250ZW5kKQogewpAQCAtOTAsNyArODksNyBAQCB2b2lkIEluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZXMobG9uZyBjYWxsSWQpCiB7CiAg
ICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gbV9pbnNwZWN0b3JDb250cm9sbGVy
LT5pbnNwZWN0ZWRQYWdlKCktPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIo
KTsKICAgICBpZiAoIWRvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAgIG1fZnJvbnRlbmQtPmRpZEdl
dEFwcGxpY2F0aW9uQ2FjaGVzKGNhbGxJZCwgU2NyaXB0VmFsdWU6OnVuZGVmaW5lZCgpKTsKKyAg
ICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0QXBwbGljYXRpb25DYWNoZXMoY2FsbElkLCBJbnNwZWN0
b3JWYWx1ZTo6bnVsbCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTAxLDcgKzEw
MCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlv
bkNhY2hlcyhsb25nIGNhbGxJZCkKICAgICAgICAgfHwgIWNhY2hlLT5pc0NvbXBsZXRlKCkKICNl
bmRpZgogICAgICAgICApIHsKLSAgICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0QXBwbGljYXRpb25D
YWNoZXMoY2FsbElkLCBTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkKCkpOworICAgICAgICBtX2Zyb250
ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQsIEluc3BlY3RvclZhbHVlOjpudWxs
KCkpOwogICAgICAgICByZXR1cm47ICAgICAgICAKICAgICB9CiAKQEAgLTExMywzNSArMTEyLDM1
IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNh
Y2hlcyhsb25nIGNhbGxJZCkKICAgICBtX2Zyb250ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hl
cyhjYWxsSWQsIGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShyZXNvdXJjZXMsIGluZm8p
KTsKIH0KIAotU2NyaXB0T2JqZWN0IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVp
bGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IFJlc291cmNlSW5mb0xpc3QmIGFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZXMsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvJiBhcHBsaWNh
dGlvbkNhY2hlSW5mbykKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShjb25zdCBS
ZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzLCBjb25zdCBBcHBsaWNh
dGlvbkNhY2hlSW5mbyYgYXBwbGljYXRpb25DYWNoZUluZm8pCiB7Ci0gICAgU2NyaXB0T2JqZWN0
IHZhbHVlID0gbV9mcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgdmFsdWUuc2V0KCJz
aXplIiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9zaXplKTsKLSAgICB2YWx1ZS5zZXQoIm1hbmlm
ZXN0IiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9tYW5pZmVzdC5zdHJpbmcoKSk7Ci0gICAgdmFs
dWUuc2V0KCJsYXN0UGF0aENvbXBvbmVudCIsIGFwcGxpY2F0aW9uQ2FjaGVJbmZvLm1fbWFuaWZl
c3QubGFzdFBhdGhDb21wb25lbnQoKSk7Ci0gICAgdmFsdWUuc2V0KCJjcmVhdGlvblRpbWUiLCBh
cHBsaWNhdGlvbkNhY2hlSW5mby5tX2NyZWF0aW9uVGltZSk7Ci0gICAgdmFsdWUuc2V0KCJ1cGRh
dGVUaW1lIiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV91cGRhdGVUaW1lKTsKLSAgICB2YWx1ZS5z
ZXQoInJlc291cmNlcyIsIGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGFw
cGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMpKTsKLSAgICByZXR1cm4gdmFsdWU7CisgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gdmFsdWUgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
IHZhbHVlLT5zZXROdW1iZXIoInNpemUiLCBhcHBsaWNhdGlvbkNhY2hlSW5mby5tX3NpemUpOwor
ICAgIHZhbHVlLT5zZXRTdHJpbmcoIm1hbmlmZXN0IiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9t
YW5pZmVzdC5zdHJpbmcoKSk7CisgICAgdmFsdWUtPnNldFN0cmluZygibGFzdFBhdGhDb21wb25l
bnQiLCBhcHBsaWNhdGlvbkNhY2hlSW5mby5tX21hbmlmZXN0Lmxhc3RQYXRoQ29tcG9uZW50KCkp
OworICAgIHZhbHVlLT5zZXRTdHJpbmcoImNyZWF0aW9uVGltZSIsIGFwcGxpY2F0aW9uQ2FjaGVJ
bmZvLm1fY3JlYXRpb25UaW1lKTsKKyAgICB2YWx1ZS0+c2V0U3RyaW5nKCJ1cGRhdGVUaW1lIiwg
YXBwbGljYXRpb25DYWNoZUluZm8ubV91cGRhdGVUaW1lKTsKKyAgICB2YWx1ZS0+c2V0KCJyZXNv
dXJjZXMiLCBidWlsZEFycmF5Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlcyhhcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2VzKSk7CisgICAgcmV0dXJuIHZhbHVlLnJlbGVhc2UoKTsKIH0KIAotU2Ny
aXB0QXJyYXkgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZEFycmF5Rm9yQXBw
bGljYXRpb25DYWNoZVJlc291cmNlcyhjb25zdCBSZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2VzKQorUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50OjpidWlsZEFycmF5Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNl
cyhjb25zdCBSZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKQogewot
ICAgIFNjcmlwdEFycmF5IHJlc291cmNlcyA9IG1fZnJvbnRlbmQtPm5ld1NjcmlwdEFycmF5KCk7
CisgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiByZXNvdXJjZXMgPSBJbnNwZWN0b3JBcnJheTo6
Y3JlYXRlKCk7CiAKICAgICBSZXNvdXJjZUluZm9MaXN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBh
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzLmVuZCgpOwogICAgIFJlc291cmNlSW5mb0xpc3Q6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gYXBwbGljYXRpb25DYWNoZVJlc291cmNlcy5iZWdpbigpOwogICAg
IGZvciAoaW50IGkgPSAwOyBpdCAhPSBlbmQ7ICsraXQsIGkrKykKLSAgICAgICAgcmVzb3VyY2Vz
LnNldChpLCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSgqaXQpKTsKKyAg
ICAgICAgcmVzb3VyY2VzLT5wdXNoKGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291
cmNlKCppdCkpOwogCi0gICAgcmV0dXJuIHJlc291cmNlczsKKyAgICByZXR1cm4gcmVzb3VyY2Vz
LnJlbGVhc2UoKTsKIH0KIAotU2NyaXB0T2JqZWN0IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudDo6YnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3Vy
Y2VJbmZvJiByZXNvdXJjZUluZm8pCitQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZShjb25zdCBSZXNvdXJjZUluZm8mIHJlc291cmNlSW5mbykKIHsKLSAgICBTY3JpcHRP
YmplY3QgdmFsdWUgPSBtX2Zyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICB2YWx1ZS5z
ZXQoIm5hbWUiLCByZXNvdXJjZUluZm8ubV9yZXNvdXJjZS5zdHJpbmcoKSk7Ci0gICAgdmFsdWUu
c2V0KCJzaXplIiwgcmVzb3VyY2VJbmZvLm1fc2l6ZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gdmFsdWUgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIHZhbHVlLT5zZXRT
dHJpbmcoIm5hbWUiLCByZXNvdXJjZUluZm8ubV9yZXNvdXJjZS5zdHJpbmcoKSk7CisgICAgdmFs
dWUtPnNldE51bWJlcigic2l6ZSIsIHJlc291cmNlSW5mby5tX3NpemUpOwogCiAgICAgU3RyaW5n
IHR5cGVzOwogICAgIGlmIChyZXNvdXJjZUluZm8ubV9pc01hc3RlcikKQEAgLTE1OSw4ICsxNTgs
OCBAQCBTY3JpcHRPYmplY3QgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9i
amVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdQogICAgIGlmIChyZXNvdXJjZUluZm8ubV9pc0V4
cGxpY2l0KQogICAgICAgICB0eXBlcy5hcHBlbmQoIkV4cGxpY2l0ICIpOwogCi0gICAgdmFsdWUu
c2V0KCJ0eXBlIiwgdHlwZXMpOwotICAgIHJldHVybiB2YWx1ZTsKKyAgICB2YWx1ZS0+c2V0U3Ry
aW5nKCJ0eXBlIiwgdHlwZXMpOworICAgIHJldHVybiB2YWx1ZS5yZWxlYXNlKCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmgKaW5kZXggNzk3NjNmNC4uNzkwZjAwYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKQEAg
LTM1LDExICszNSwxMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBsaWNhdGlv
bkNhY2hlOworY2xhc3MgSW5zcGVjdG9yQXJyYXk7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVy
OwotY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7Citj
bGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgU2Ny
aXB0QXJyYXk7Ci1jbGFzcyBTY3JpcHRPYmplY3Q7CiAKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CkBAIC04MSw3ICs4
MSw3IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgVmVjdG9yPFJlc291cmNlSW5mbz4gUmVzb3Vy
Y2VJbmZvTGlzdDsKIAotICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0
b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpOworICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0b3JDb250
cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5k
KTsKICAgICB+SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkgeyB9CiAKICAgICAvLyBC
YWNrZW5kIHRvIEZyb250ZW5kCkBAIC05MywxNCArOTMsMTQgQEAgcHVibGljOgogICAgIHZvaWQg
Z2V0QXBwbGljYXRpb25DYWNoZXMobG9uZyBjYWxsSWQpOwogCiBwcml2YXRlOgotICAgIFNjcmlw
dE9iamVjdCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgUmVzb3VyY2VJbmZv
TGlzdCYsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvJik7Ci0gICAgU2NyaXB0QXJyYXkgYnVp
bGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3QgUmVzb3VyY2VJbmZvTGlz
dCYpOwotICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZShjb25zdCBSZXNvdXJjZUluZm8mKTsKKyAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IFJlc291cmNlSW5mb0xpc3Qm
LCBjb25zdCBBcHBsaWNhdGlvbkNhY2hlSW5mbyYpOworICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+IGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0IFJlc291
cmNlSW5mb0xpc3QmKTsKKyAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmpl
Y3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VJbmZvJik7CiAKICAg
ICB2b2lkIGZpbGxSZXNvdXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSosIFJlc291cmNlSW5mb0xp
c3QqKTsKIAogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdG9yQ29udHJvbGxlcjsK
LSAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JGcm9udGVu
ZDIqIG1fZnJvbnRlbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGYyMGEzZTkuLmFjMWZiZWYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC00OTAsNiArNDkw
LDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoY29uc3QgU2Ny
aXB0T2JqZWN0JiB3ZWJJbnNwZWN0b3IpCiAgICAgbV9kb21BZ2VudCA9IEluc3BlY3RvckRPTUFn
ZW50OjpjcmVhdGUobV9jc3NTdG9yZS5nZXQoKSwgbV9mcm9udGVuZC5nZXQoKSk7CiAgICAgaWYg
KG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNldEZyb250ZW5k
UHJveHlPYmplY3QobV9mcm9udGVuZDIuZ2V0KCkpOworI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCisgICAgbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQgPSBuZXcgSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50KHRoaXMsIG1fZnJvbnRlbmQyLmdldCgpKTsKKyNlbmRpZgog
CiAgICAgLy8gSW5pdGlhbGl6ZSBXZWIgSW5zcGVjdG9yIHRpdGxlLgogICAgIG1fZnJvbnRlbmQt
Pmluc3BlY3RlZFVSTENoYW5nZWQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVy
KCktPnVybCgpLnN0cmluZygpKTsKQEAgLTUxOSwxMCArNTIyLDYgQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoY29uc3QgU2NyaXB0T2JqZWN0JiB3ZWJJbnNwZWN0
b3IpCiAgICAgaWYgKG1fbm9kZVRvRm9jdXMpCiAgICAgICAgIGZvY3VzTm9kZSgpOwogICAgIHNo
b3dQYW5lbChtX3Nob3dBZnRlclZpc2libGUpOwotCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKLSAgICBtX2FwcGxpY2F0aW9uQ2FjaGVBZ2VudCA9IG5ldyBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQodGhpcywgbV9mcm9udGVuZC5nZXQoKSk7Ci0jZW5kaWYKIH0K
IAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzaG93KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kLmNwcAppbmRleCBkMTZlNDNmLi5jY2Q0ZTZhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCkBAIC04MDgsMzMgKzgwOCw2IEBAIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmQ6OnVwZGF0ZURPTVN0b3JhZ2UobG9uZyBzdG9yYWdlSWQpCiB9CiAjZW5kaWYK
IAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi12b2lkIEluc3BlY3RvckZy
b250ZW5kOjpkaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25nIGNhbGxJZCwgY29uc3QgU2NyaXB0
VmFsdWUmIGFwcGxpY2F0aW9uQ2FjaGVzKQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5j
dGlvbihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQoImRpZEdldEFwcGxpY2F0aW9uQ2FjaGVzIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQoY2FsbElkKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChhcHBsaWNhdGlvbkNh
Y2hlcyk7Ci0gICAgZnVuY3Rpb24uY2FsbCgpOwotfQotCi12b2lkIEluc3BlY3RvckZyb250ZW5k
Ojp1cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKGludCBzdGF0dXMpCi17Ci0gICAgU2NyaXB0
RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAiZGlzcGF0Y2giKTsgCi0gICAg
ZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoInVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMiKTsK
LSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzdGF0dXMpOwotICAgIGZ1bmN0aW9uLmNhbGwo
KTsKLX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6dXBkYXRlTmV0d29ya1N0YXRlKGJvb2wg
aXNOb3dPbmxpbmUpCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5z
cGVjdG9yLCAiZGlzcGF0Y2giKTsgCi0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoInVwZGF0
ZU5ldHdvcmtTdGF0ZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGlzTm93T25saW5l
KTsKLSAgICBmdW5jdGlvbi5jYWxsKCk7Ci19ICAgIAotI2VuZGlmCi0KIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmQ6OmFkZE5vZGVzVG9TZWFyY2hSZXN1bHQoY29uc3QgU2NyaXB0QXJyYXkmIG5vZGVJ
ZHMpCiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAi
ZGlzcGF0Y2giKTsgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCA2N2E5
M2NlLi5iMDEzNjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKQEAgLTEz
NSwxMiArMTM1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHVwZGF0ZURP
TVN0b3JhZ2UobG9uZyBzdG9yYWdlSWQpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQotICAgICAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0
dXMoaW50IHN0YXR1cyk7Ci0gICAgICAgIHZvaWQgdXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgaXNO
b3dPbmxpbmUpOwotICAgICAgICB2b2lkIGRpZEdldEFwcGxpY2F0aW9uQ2FjaGVzKGxvbmcgY2Fs
bElkLCBjb25zdCBTY3JpcHRWYWx1ZSYgYXBwbGljYXRpb25DYWNoZXMpOwotI2VuZGlmCi0KICAg
ICAgICAgdm9pZCBzZXREb2N1bWVudChjb25zdCBTY3JpcHRPYmplY3QmIHJvb3QpOwogICAgICAg
ICB2b2lkIHNldERldGFjaGVkUm9vdChjb25zdCBTY3JpcHRPYmplY3QmIHJvb3QpOwogICAgICAg
ICB2b2lkIHNldENoaWxkTm9kZXMobG9uZyBwYXJlbnRJZCwgY29uc3QgU2NyaXB0QXJyYXkmIG5v
ZGVzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5p
ZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsCmluZGV4IDYxOWIz
YmUuLjFmMzJkNTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kMi5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbApA
QCAtNiw1ICs2LDExIEBAIG1vZHVsZSBXZWJDb3JlIHsKIAogICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9SU5TUEVDVE9SLCBKU10gSW5zcGVjdG9yRnJvbnRlbmQyIHsKICAgICAgICAgdm9pZCBh
ZGRSZWNvcmRUb1RpbWVsaW5lKGluIE9iamVjdCByZWNvcmQpOworCisjaWYgZGVmaW5lZChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0
aW9uQ2FjaGVTdGF0dXMoaW4gaW50IHN0YXR1cyk7CisgICAgICAgIHZvaWQgdXBkYXRlTmV0d29y
a1N0YXRlKGluIGJvb2xlYW4gaXNOb3dPbmxpbmUpOworICAgICAgICB2b2lkIGRpZEdldEFwcGxp
Y2F0aW9uQ2FjaGVzKGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBhcHBsaWNhdGlvbkNhY2hlcyk7
CisjZW5kaWYKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVmFsdWVzLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaAppbmRleCAz
MGJhOTVhLi4wOTQzZjE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JW
YWx1ZXMuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaApAQCAtMTk4
LDcgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1c2hOdW1iZXIoZG91YmxlKTsKICAgICB2
b2lkIHB1c2hTdHJpbmcoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwdXNoKFBhc3NSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+KTsKLSAgICB1bnNpZ25lZCBsZW5ndGgoKSB7IHJldHVybiBtX2RhdGEu
c2l6ZSgpOyB9CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNp
emUoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlSlNPTihWZWN0b3I8VUNoYXI+KiBvdXRw
dXQpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60809</attachid>
            <date>2010-07-07 17:15:12 -0700</date>
            <delta_ts>2010-07-18 12:19:20 -0700</delta_ts>
            <desc>[PATCH] Migrate Application Cache</desc>
            <filename>migrate.patch</filename>
            <type>text/plain</type>
            <size>15061</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODNiZTFiOC4uNmFkOTdhOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiw0MCBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1pZ3JhdGUgQXBwbGljYXRp
b25DYWNoZSBTdXBwb3J0IHRvIEluc3BlY3RvckZyb250ZW5kMgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE4MDUKKworICAgICAgICAgIE5vIGNoYW5n
ZSBpbiBmdW5jdGlvbmFsaXR5LCBqdXN0IG1pZ3JhdGluZyB0byB0aGUgZ2VuZXJhdGVkIGludGVy
ZmFjZS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0
Rm9yQXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OmJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRP
YmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmg6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGw6CisKKyAgICAgICAgICBNaW5v
ciBjaGFuZ2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3Iu
cG06IGFsbG93ICJpbnQiIGFzIGEgdHlwZSBpbiB0aGUgaWRsCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvclZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXJyYXk6Omxl
bmd0aCk6IGFkZGVkIGNvbnN0IHdoZW4gZ2V0dGluZyB0aGUgbGVuZ3RoLgorCisgICAgICAgICAg
RW5zdXJlIEZFQVRVUkVfREVGSU5FUyBhcmUgaW5jbHVkZWQgd2hlbiBwcm9jZXNzaW5nIHRoZSBu
ZXcgaWRsCisgICAgICAgICAgZmlsZXMsIHNvIHRoYXQgY29tcGlsZSB0aW1lIGZsYWdzIGNhbiBi
ZSB1c2VkLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cC9XZWJDb3JlLmd5cDoKKworMjAxMC0wNy0wNyAgSm9zZXBoIFBlY29yYXJvICA8am9l
cGVja0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFsbCBSZWZQdHIgYXJndW1lbnRzIGFuZCByZXR1cm4g
dmFsdWVzIHNob3VsZCBiZSBjaGFuZ2VkIHRvIFBhc3NSZWZQdHIgYWNjb3JkaW5nIHRvIGNvbW1v
biBwcmFjdGljZS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQxNzU5CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBhMDBmOTFkLi5iNjJjN2EzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCkBAIC04NDIsNyArODQyLDcgQEAgSlMlLmggOiAlLmlkbCAkKEpTX0JJTkRJTkdT
X1NDUklQVFMpCiBJTlNQRUNUT1JfR0VORVJBVE9SX1NDUklQVFMgPSAkKEdFTkVSQVRFX1NDUklQ
VFMpIGluc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCiAKIFJlbW90ZSUuaCA6ICUu
aWRsICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTKQotCSQoY2FsbCBnZW5lcmF0b3Jfc2Ny
aXB0LCAkKElOU1BFQ1RPUl9HRU5FUkFUT1JfU0NSSVBUUykpIC0tb3V0cHV0RGlyIC4gIC0tZGVm
aW5lcyAiTEFOR1VBR0VfSkFWQVNDUklQVCIgLS1nZW5lcmF0b3IgSW5zcGVjdG9yICQ8CisJJChj
YWxsIGdlbmVyYXRvcl9zY3JpcHQsICQoSU5TUEVDVE9SX0dFTkVSQVRPUl9TQ1JJUFRTKSkgLS1v
dXRwdXREaXIgLiAgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykgJChBRERJVElPTkFMX0lE
TF9ERUZJTkVTKSBMQU5HVUFHRV9KQVZBU0NSSVBUIiAtLWdlbmVyYXRvciBJbnNwZWN0b3IgJDwK
IAogLWluY2x1ZGUgJChKU19ET01fSEVBREVSUzouaD0uZGVwKQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwIGIvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3Jl
Lmd5cAppbmRleCBlZGQ4YzhkLi5kZWVjOWJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwL1dlYkNvcmUuZ3lwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKQEAg
LTQ4MCw3ICs0ODAsNyBAQAogICAgICAgICAgICAgJy0tJywKICAgICAgICAgICAgICc8QChfaW5w
dXRzKScsCiAgICAgICAgICAgICAnLS0nLAotICAgICAgICAgICAgJy0tZGVmaW5lcycsICdMQU5H
VUFHRV9KQVZBU0NSSVBUJywKKyAgICAgICAgICAgICctLWRlZmluZXMnLCAnPChmZWF0dXJlX2Rl
ZmluZXMpIExBTkdVQUdFX0pBVkFTQ1JJUFQnLAogICAgICAgICAgICAgJy0tcHJlZml4JywgJ1Jl
bW90ZScsCiAgICAgICAgICAgICAnLS1nZW5lcmF0b3InLCAnSW5zcGVjdG9yJywKICAgICAgICAg
ICAgICc8QChnZW5lcmF0b3JfaW5jbHVkZV9kaXJzKScKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0gYi9XZWJDb3JlL2luc3BlY3Rvci9Db2Rl
R2VuZXJhdG9ySW5zcGVjdG9yLnBtCmluZGV4IGY0OWZiMzYuLjg1YmYzNmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQpAQCAtNDQsNiArNDQsMTMgQEAg
JHR5cGVUcmFuc2Zvcm17IlN0cmluZyJ9ID0gewogICAgICJoZWFkZXIiID0+ICJQbGF0Zm9ybVN0
cmluZy5oIiwKICAgICAicHVzaCIgPT4gInB1c2hTdHJpbmciCiB9OworJHR5cGVUcmFuc2Zvcm17
ImludCJ9ID0geworICAgICJwYXJhbSIgPT4gImludCIsCisgICAgInJldFZhbCIgPT4gImludCIs
CisgICAgImZvcndhcmQiID0+ICIiLAorICAgICJoZWFkZXIiID0+ICIiLAorICAgICJwdXNoIiA9
PiAicHVzaE51bWJlciIKK307CiAkdHlwZVRyYW5zZm9ybXsibG9uZyJ9ID0gewogICAgICJwYXJh
bSIgPT4gImxvbmciLAogICAgICJyZXRWYWwiID0+ICJsb25nIiwKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IDg4MjM4
YmUuLjJmZTdmMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50LmNwcApAQCAtMzQsMTUgKzM0LDE0IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRy
b2xsZXIuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJSZW1vdGVJbnNwZWN0
b3JGcm9udGVuZDIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAi
U2NyaXB0QXJyYXkuaCIKLSNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6Okluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVy
LCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCitJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQ6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0b3JDb250cm9sbGVy
KiBpbnNwZWN0b3JDb250cm9sbGVyLCBJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKQogICAg
IDogbV9pbnNwZWN0b3JDb250cm9sbGVyKGluc3BlY3RvckNvbnRyb2xsZXIpCiAgICAgLCBtX2Zy
b250ZW5kKGZyb250ZW5kKQogewpAQCAtOTAsNyArODksNyBAQCB2b2lkIEluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZXMobG9uZyBjYWxsSWQpCiB7CiAg
ICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gbV9pbnNwZWN0b3JDb250cm9sbGVy
LT5pbnNwZWN0ZWRQYWdlKCktPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIo
KTsKICAgICBpZiAoIWRvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAgIG1fZnJvbnRlbmQtPmRpZEdl
dEFwcGxpY2F0aW9uQ2FjaGVzKGNhbGxJZCwgU2NyaXB0VmFsdWU6OnVuZGVmaW5lZCgpKTsKKyAg
ICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0QXBwbGljYXRpb25DYWNoZXMoY2FsbElkLCBJbnNwZWN0
b3JWYWx1ZTo6bnVsbCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTAxLDcgKzEw
MCw3IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlv
bkNhY2hlcyhsb25nIGNhbGxJZCkKICAgICAgICAgfHwgIWNhY2hlLT5pc0NvbXBsZXRlKCkKICNl
bmRpZgogICAgICAgICApIHsKLSAgICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0QXBwbGljYXRpb25D
YWNoZXMoY2FsbElkLCBTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkKCkpOworICAgICAgICBtX2Zyb250
ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQsIEluc3BlY3RvclZhbHVlOjpudWxs
KCkpOwogICAgICAgICByZXR1cm47ICAgICAgICAKICAgICB9CiAKQEAgLTExMywzNSArMTEyLDM1
IEBAIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNh
Y2hlcyhsb25nIGNhbGxJZCkKICAgICBtX2Zyb250ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hl
cyhjYWxsSWQsIGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShyZXNvdXJjZXMsIGluZm8p
KTsKIH0KIAotU2NyaXB0T2JqZWN0IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVp
bGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IFJlc291cmNlSW5mb0xpc3QmIGFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZXMsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvJiBhcHBsaWNh
dGlvbkNhY2hlSW5mbykKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShjb25zdCBS
ZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzLCBjb25zdCBBcHBsaWNh
dGlvbkNhY2hlSW5mbyYgYXBwbGljYXRpb25DYWNoZUluZm8pCiB7Ci0gICAgU2NyaXB0T2JqZWN0
IHZhbHVlID0gbV9mcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgdmFsdWUuc2V0KCJz
aXplIiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9zaXplKTsKLSAgICB2YWx1ZS5zZXQoIm1hbmlm
ZXN0IiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9tYW5pZmVzdC5zdHJpbmcoKSk7Ci0gICAgdmFs
dWUuc2V0KCJsYXN0UGF0aENvbXBvbmVudCIsIGFwcGxpY2F0aW9uQ2FjaGVJbmZvLm1fbWFuaWZl
c3QubGFzdFBhdGhDb21wb25lbnQoKSk7Ci0gICAgdmFsdWUuc2V0KCJjcmVhdGlvblRpbWUiLCBh
cHBsaWNhdGlvbkNhY2hlSW5mby5tX2NyZWF0aW9uVGltZSk7Ci0gICAgdmFsdWUuc2V0KCJ1cGRh
dGVUaW1lIiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV91cGRhdGVUaW1lKTsKLSAgICB2YWx1ZS5z
ZXQoInJlc291cmNlcyIsIGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGFw
cGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMpKTsKLSAgICByZXR1cm4gdmFsdWU7CisgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gdmFsdWUgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
IHZhbHVlLT5zZXROdW1iZXIoInNpemUiLCBhcHBsaWNhdGlvbkNhY2hlSW5mby5tX3NpemUpOwor
ICAgIHZhbHVlLT5zZXRTdHJpbmcoIm1hbmlmZXN0IiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9t
YW5pZmVzdC5zdHJpbmcoKSk7CisgICAgdmFsdWUtPnNldFN0cmluZygibGFzdFBhdGhDb21wb25l
bnQiLCBhcHBsaWNhdGlvbkNhY2hlSW5mby5tX21hbmlmZXN0Lmxhc3RQYXRoQ29tcG9uZW50KCkp
OworICAgIHZhbHVlLT5zZXRTdHJpbmcoImNyZWF0aW9uVGltZSIsIGFwcGxpY2F0aW9uQ2FjaGVJ
bmZvLm1fY3JlYXRpb25UaW1lKTsKKyAgICB2YWx1ZS0+c2V0U3RyaW5nKCJ1cGRhdGVUaW1lIiwg
YXBwbGljYXRpb25DYWNoZUluZm8ubV91cGRhdGVUaW1lKTsKKyAgICB2YWx1ZS0+c2V0KCJyZXNv
dXJjZXMiLCBidWlsZEFycmF5Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlcyhhcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2VzKSk7CisgICAgcmV0dXJuIHZhbHVlLnJlbGVhc2UoKTsKIH0KIAotU2Ny
aXB0QXJyYXkgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZEFycmF5Rm9yQXBw
bGljYXRpb25DYWNoZVJlc291cmNlcyhjb25zdCBSZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2VzKQorUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gSW5zcGVjdG9yQXBw
bGljYXRpb25DYWNoZUFnZW50OjpidWlsZEFycmF5Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNl
cyhjb25zdCBSZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKQogewot
ICAgIFNjcmlwdEFycmF5IHJlc291cmNlcyA9IG1fZnJvbnRlbmQtPm5ld1NjcmlwdEFycmF5KCk7
CisgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiByZXNvdXJjZXMgPSBJbnNwZWN0b3JBcnJheTo6
Y3JlYXRlKCk7CiAKICAgICBSZXNvdXJjZUluZm9MaXN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBh
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzLmVuZCgpOwogICAgIFJlc291cmNlSW5mb0xpc3Q6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gYXBwbGljYXRpb25DYWNoZVJlc291cmNlcy5iZWdpbigpOwogICAg
IGZvciAoaW50IGkgPSAwOyBpdCAhPSBlbmQ7ICsraXQsIGkrKykKLSAgICAgICAgcmVzb3VyY2Vz
LnNldChpLCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSgqaXQpKTsKKyAg
ICAgICAgcmVzb3VyY2VzLT5wdXNoKGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291
cmNlKCppdCkpOwogCi0gICAgcmV0dXJuIHJlc291cmNlczsKKyAgICByZXR1cm4gcmVzb3VyY2Vz
LnJlbGVhc2UoKTsKIH0KIAotU2NyaXB0T2JqZWN0IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudDo6YnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3Vy
Y2VJbmZvJiByZXNvdXJjZUluZm8pCitQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZShjb25zdCBSZXNvdXJjZUluZm8mIHJlc291cmNlSW5mbykKIHsKLSAgICBTY3JpcHRP
YmplY3QgdmFsdWUgPSBtX2Zyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICB2YWx1ZS5z
ZXQoIm5hbWUiLCByZXNvdXJjZUluZm8ubV9yZXNvdXJjZS5zdHJpbmcoKSk7Ci0gICAgdmFsdWUu
c2V0KCJzaXplIiwgcmVzb3VyY2VJbmZvLm1fc2l6ZSk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gdmFsdWUgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIHZhbHVlLT5zZXRT
dHJpbmcoIm5hbWUiLCByZXNvdXJjZUluZm8ubV9yZXNvdXJjZS5zdHJpbmcoKSk7CisgICAgdmFs
dWUtPnNldE51bWJlcigic2l6ZSIsIHJlc291cmNlSW5mby5tX3NpemUpOwogCiAgICAgU3RyaW5n
IHR5cGVzOwogICAgIGlmIChyZXNvdXJjZUluZm8ubV9pc01hc3RlcikKQEAgLTE1OSw4ICsxNTgs
OCBAQCBTY3JpcHRPYmplY3QgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9i
amVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdQogICAgIGlmIChyZXNvdXJjZUluZm8ubV9pc0V4
cGxpY2l0KQogICAgICAgICB0eXBlcy5hcHBlbmQoIkV4cGxpY2l0ICIpOwogCi0gICAgdmFsdWUu
c2V0KCJ0eXBlIiwgdHlwZXMpOwotICAgIHJldHVybiB2YWx1ZTsKKyAgICB2YWx1ZS0+c2V0U3Ry
aW5nKCJ0eXBlIiwgdHlwZXMpOworICAgIHJldHVybiB2YWx1ZS5yZWxlYXNlKCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmgKaW5kZXggNzk3NjNmNC4uNzkwZjAwYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKQEAg
LTM1LDExICszNSwxMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBsaWNhdGlv
bkNhY2hlOworY2xhc3MgSW5zcGVjdG9yQXJyYXk7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVy
OwotY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7Citj
bGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotY2xhc3MgU2Ny
aXB0QXJyYXk7Ci1jbGFzcyBTY3JpcHRPYmplY3Q7CiAKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CkBAIC04MSw3ICs4
MSw3IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgVmVjdG9yPFJlc291cmNlSW5mbz4gUmVzb3Vy
Y2VJbmZvTGlzdDsKIAotICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0
b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpOworICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0b3JDb250
cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5k
KTsKICAgICB+SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkgeyB9CiAKICAgICAvLyBC
YWNrZW5kIHRvIEZyb250ZW5kCkBAIC05MywxNCArOTMsMTQgQEAgcHVibGljOgogICAgIHZvaWQg
Z2V0QXBwbGljYXRpb25DYWNoZXMobG9uZyBjYWxsSWQpOwogCiBwcml2YXRlOgotICAgIFNjcmlw
dE9iamVjdCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgUmVzb3VyY2VJbmZv
TGlzdCYsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvJik7Ci0gICAgU2NyaXB0QXJyYXkgYnVp
bGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3QgUmVzb3VyY2VJbmZvTGlz
dCYpOwotICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZShjb25zdCBSZXNvdXJjZUluZm8mKTsKKyAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IFJlc291cmNlSW5mb0xpc3Qm
LCBjb25zdCBBcHBsaWNhdGlvbkNhY2hlSW5mbyYpOworICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+IGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0IFJlc291
cmNlSW5mb0xpc3QmKTsKKyAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmpl
Y3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VJbmZvJik7CiAKICAg
ICB2b2lkIGZpbGxSZXNvdXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSosIFJlc291cmNlSW5mb0xp
c3QqKTsKIAogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdG9yQ29udHJvbGxlcjsK
LSAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBJbnNwZWN0b3JGcm9udGVu
ZDIqIG1fZnJvbnRlbmQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGYyMGEzZTkuLmFjMWZiZWYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC00OTAsNiArNDkw
LDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoY29uc3QgU2Ny
aXB0T2JqZWN0JiB3ZWJJbnNwZWN0b3IpCiAgICAgbV9kb21BZ2VudCA9IEluc3BlY3RvckRPTUFn
ZW50OjpjcmVhdGUobV9jc3NTdG9yZS5nZXQoKSwgbV9mcm9udGVuZC5nZXQoKSk7CiAgICAgaWYg
KG1fdGltZWxpbmVBZ2VudCkKICAgICAgICAgbV90aW1lbGluZUFnZW50LT5yZXNldEZyb250ZW5k
UHJveHlPYmplY3QobV9mcm9udGVuZDIuZ2V0KCkpOworI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCisgICAgbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQgPSBuZXcgSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50KHRoaXMsIG1fZnJvbnRlbmQyLmdldCgpKTsKKyNlbmRpZgog
CiAgICAgLy8gSW5pdGlhbGl6ZSBXZWIgSW5zcGVjdG9yIHRpdGxlLgogICAgIG1fZnJvbnRlbmQt
Pmluc3BlY3RlZFVSTENoYW5nZWQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVy
KCktPnVybCgpLnN0cmluZygpKTsKQEAgLTUxOSwxMCArNTIyLDYgQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQoY29uc3QgU2NyaXB0T2JqZWN0JiB3ZWJJbnNwZWN0
b3IpCiAgICAgaWYgKG1fbm9kZVRvRm9jdXMpCiAgICAgICAgIGZvY3VzTm9kZSgpOwogICAgIHNo
b3dQYW5lbChtX3Nob3dBZnRlclZpc2libGUpOwotCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKLSAgICBtX2FwcGxpY2F0aW9uQ2FjaGVBZ2VudCA9IG5ldyBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQodGhpcywgbV9mcm9udGVuZC5nZXQoKSk7Ci0jZW5kaWYKIH0K
IAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzaG93KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kLmNwcAppbmRleCBkMTZlNDNmLi5jY2Q0ZTZhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCkBAIC04MDgsMzMgKzgwOCw2IEBAIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmQ6OnVwZGF0ZURPTVN0b3JhZ2UobG9uZyBzdG9yYWdlSWQpCiB9CiAjZW5kaWYK
IAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi12b2lkIEluc3BlY3RvckZy
b250ZW5kOjpkaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25nIGNhbGxJZCwgY29uc3QgU2NyaXB0
VmFsdWUmIGFwcGxpY2F0aW9uQ2FjaGVzKQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5j
dGlvbihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQoImRpZEdldEFwcGxpY2F0aW9uQ2FjaGVzIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQoY2FsbElkKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChhcHBsaWNhdGlvbkNh
Y2hlcyk7Ci0gICAgZnVuY3Rpb24uY2FsbCgpOwotfQotCi12b2lkIEluc3BlY3RvckZyb250ZW5k
Ojp1cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKGludCBzdGF0dXMpCi17Ci0gICAgU2NyaXB0
RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAiZGlzcGF0Y2giKTsgCi0gICAg
ZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoInVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMiKTsK
LSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzdGF0dXMpOwotICAgIGZ1bmN0aW9uLmNhbGwo
KTsKLX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6dXBkYXRlTmV0d29ya1N0YXRlKGJvb2wg
aXNOb3dPbmxpbmUpCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5z
cGVjdG9yLCAiZGlzcGF0Y2giKTsgCi0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoInVwZGF0
ZU5ldHdvcmtTdGF0ZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGlzTm93T25saW5l
KTsKLSAgICBmdW5jdGlvbi5jYWxsKCk7Ci19ICAgIAotI2VuZGlmCi0KIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmQ6OmFkZE5vZGVzVG9TZWFyY2hSZXN1bHQoY29uc3QgU2NyaXB0QXJyYXkmIG5vZGVJ
ZHMpCiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAi
ZGlzcGF0Y2giKTsgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCA2N2E5
M2NlLi5iMDEzNjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKQEAgLTEz
NSwxMiArMTM1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHVwZGF0ZURP
TVN0b3JhZ2UobG9uZyBzdG9yYWdlSWQpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQotICAgICAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0
dXMoaW50IHN0YXR1cyk7Ci0gICAgICAgIHZvaWQgdXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgaXNO
b3dPbmxpbmUpOwotICAgICAgICB2b2lkIGRpZEdldEFwcGxpY2F0aW9uQ2FjaGVzKGxvbmcgY2Fs
bElkLCBjb25zdCBTY3JpcHRWYWx1ZSYgYXBwbGljYXRpb25DYWNoZXMpOwotI2VuZGlmCi0KICAg
ICAgICAgdm9pZCBzZXREb2N1bWVudChjb25zdCBTY3JpcHRPYmplY3QmIHJvb3QpOwogICAgICAg
ICB2b2lkIHNldERldGFjaGVkUm9vdChjb25zdCBTY3JpcHRPYmplY3QmIHJvb3QpOwogICAgICAg
ICB2b2lkIHNldENoaWxkTm9kZXMobG9uZyBwYXJlbnRJZCwgY29uc3QgU2NyaXB0QXJyYXkmIG5v
ZGVzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5p
ZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsCmluZGV4IDYxOWIz
YmUuLjFmMzJkNTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kMi5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbApA
QCAtNiw1ICs2LDExIEBAIG1vZHVsZSBXZWJDb3JlIHsKIAogICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9SU5TUEVDVE9SLCBKU10gSW5zcGVjdG9yRnJvbnRlbmQyIHsKICAgICAgICAgdm9pZCBh
ZGRSZWNvcmRUb1RpbWVsaW5lKGluIE9iamVjdCByZWNvcmQpOworCisjaWYgZGVmaW5lZChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0
aW9uQ2FjaGVTdGF0dXMoaW4gaW50IHN0YXR1cyk7CisgICAgICAgIHZvaWQgdXBkYXRlTmV0d29y
a1N0YXRlKGluIGJvb2xlYW4gaXNOb3dPbmxpbmUpOworICAgICAgICB2b2lkIGRpZEdldEFwcGxp
Y2F0aW9uQ2FjaGVzKGluIGxvbmcgY2FsbElkLCBpbiBWYWx1ZSBhcHBsaWNhdGlvbkNhY2hlcyk7
CisjZW5kaWYKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVmFsdWVzLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaAppbmRleCAz
MGJhOTVhLi4wOTQzZjE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JW
YWx1ZXMuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaApAQCAtMTk4
LDcgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1c2hOdW1iZXIoZG91YmxlKTsKICAgICB2
b2lkIHB1c2hTdHJpbmcoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwdXNoKFBhc3NSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+KTsKLSAgICB1bnNpZ25lZCBsZW5ndGgoKSB7IHJldHVybiBtX2RhdGEu
c2l6ZSgpOyB9CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNp
emUoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlSlNPTihWZWN0b3I8VUNoYXI+KiBvdXRw
dXQpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60840</attachid>
            <date>2010-07-07 22:48:56 -0700</date>
            <delta_ts>2010-07-07 22:50:12 -0700</delta_ts>
            <desc>[PATCH] Migrate Cookies</desc>
            <filename>cookies.patch</filename>
            <type>text/plain</type>
            <size>7227</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODMwZjNhMi4uODhiNTdkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxMC0wNy0wNyAgSm9zZXBoIFBlY29y
YXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1pZ3JhdGUgQ29va2llIFN1cHBvcnQg
dG8gSW5zcGVjdG9yRnJvbnRlbmQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MTgwNQorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gY2hhbmdlIGlu
IGJlaGF2aW9yLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmdldENvb2tpZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6YnVpbGRBcnJheUZvckNvb2tpZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6YnVpbGRPYmplY3RGb3JDb29raWUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbDoK
KworMjAxMC0wNy0wNyAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgorCiAg
ICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IFBhdmVsIEZlbGRtYW4uCiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogQWxsIFJlZlB0ciBhcmd1bWVudHMgYW5kIHJldHVybiB2YWx1ZXMgc2hvdWxkIGJl
IGNoYW5nZWQgdG8gUGFzc1JlZlB0ciBhY2NvcmRpbmcgdG8gY29tbW9uIHByYWN0aWNlLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5jcHAgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcAppbmRleCA1N2VlMTlmLi44NmM1MWQzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kLmNwcApAQCAtNDcsNiArNDcsNyBAQAog
I2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRl
bmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkluc3BlY3Rv
clZhbHVlcy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAj
aW5jbHVkZSAiU2NyaXB0QXJyYXkuaCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKaW5kZXggZjIwYTNlOS4uNzU5NTkyMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTEzMjQsMzYgKzEzMjQsMzYgQEAgdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpnZXRDb29raWVzKGxvbmcgY2FsbElkKQogICAgIH0KIAogICAgIGlmICgh
cmF3Q29va2llc0ltcGxlbWVudGVkKQotICAgICAgICBtX2Zyb250ZW5kLT5kaWRHZXRDb29raWVz
KGNhbGxJZCwgbV9mcm9udGVuZC0+bmV3U2NyaXB0QXJyYXkoKSwgc3RyaW5nQ29va2llc0xpc3Qp
OworICAgICAgICBtX2Zyb250ZW5kMi0+ZGlkR2V0Q29va2llcyhjYWxsSWQsIEluc3BlY3RvckFy
cmF5OjpjcmVhdGUoKSwgc3RyaW5nQ29va2llc0xpc3QpOwogICAgIGVsc2UKLSAgICAgICAgbV9m
cm9udGVuZC0+ZGlkR2V0Q29va2llcyhjYWxsSWQsIGJ1aWxkQXJyYXlGb3JDb29raWVzKHJhd0Nv
b2tpZXNMaXN0KSwgU3RyaW5nKCkpOworICAgICAgICBtX2Zyb250ZW5kMi0+ZGlkR2V0Q29va2ll
cyhjYWxsSWQsIGJ1aWxkQXJyYXlGb3JDb29raWVzKHJhd0Nvb2tpZXNMaXN0KSwgU3RyaW5nKCkp
OwogfQogCi1TY3JpcHRBcnJheSBJbnNwZWN0b3JDb250cm9sbGVyOjpidWlsZEFycmF5Rm9yQ29v
a2llcyhMaXN0SGFzaFNldDxDb29raWU+JiBjb29raWVzTGlzdCkKK1Bhc3NSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+IEluc3BlY3RvckNvbnRyb2xsZXI6OmJ1aWxkQXJyYXlGb3JDb29raWVzKExpc3RI
YXNoU2V0PENvb2tpZT4mIGNvb2tpZXNMaXN0KQogewotICAgIFNjcmlwdEFycmF5IGNvb2tpZXMg
PSBtX2Zyb250ZW5kLT5uZXdTY3JpcHRBcnJheSgpOworICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJh
eT4gY29va2llcyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKIAogICAgIExpc3RIYXNoU2V0
PENvb2tpZT46Oml0ZXJhdG9yIGVuZCA9IGNvb2tpZXNMaXN0LmVuZCgpOwogICAgIExpc3RIYXNo
U2V0PENvb2tpZT46Oml0ZXJhdG9yIGl0ID0gY29va2llc0xpc3QuYmVnaW4oKTsKICAgICBmb3Ig
KGludCBpID0gMDsgaXQgIT0gZW5kOyArK2l0LCBpKyspCi0gICAgICAgIGNvb2tpZXMuc2V0KGks
IGJ1aWxkT2JqZWN0Rm9yQ29va2llKCppdCkpOworICAgICAgICBjb29raWVzLT5wdXNoKGJ1aWxk
T2JqZWN0Rm9yQ29va2llKCppdCkpOwogCi0gICAgcmV0dXJuIGNvb2tpZXM7CisgICAgcmV0dXJu
IGNvb2tpZXMucmVsZWFzZSgpOwogfQogCi1TY3JpcHRPYmplY3QgSW5zcGVjdG9yQ29udHJvbGxl
cjo6YnVpbGRPYmplY3RGb3JDb29raWUoY29uc3QgQ29va2llJiBjb29raWUpCitQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yQ29udHJvbGxlcjo6YnVpbGRPYmplY3RGb3JDb29r
aWUoY29uc3QgQ29va2llJiBjb29raWUpCiB7Ci0gICAgU2NyaXB0T2JqZWN0IHZhbHVlID0gbV9m
cm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAgdmFsdWUuc2V0KCJuYW1lIiwgY29va2ll
Lm5hbWUpOwotICAgIHZhbHVlLnNldCgidmFsdWUiLCBjb29raWUudmFsdWUpOwotICAgIHZhbHVl
LnNldCgiZG9tYWluIiwgY29va2llLmRvbWFpbik7Ci0gICAgdmFsdWUuc2V0KCJwYXRoIiwgY29v
a2llLnBhdGgpOwotICAgIHZhbHVlLnNldCgiZXhwaXJlcyIsIGNvb2tpZS5leHBpcmVzKTsKLSAg
ICB2YWx1ZS5zZXQoInNpemUiLCAoY29va2llLm5hbWUubGVuZ3RoKCkgKyBjb29raWUudmFsdWUu
bGVuZ3RoKCkpKTsKLSAgICB2YWx1ZS5zZXQoImh0dHBPbmx5IiwgY29va2llLmh0dHBPbmx5KTsK
LSAgICB2YWx1ZS5zZXQoInNlY3VyZSIsIGNvb2tpZS5zZWN1cmUpOwotICAgIHZhbHVlLnNldCgi
c2Vzc2lvbiIsIGNvb2tpZS5zZXNzaW9uKTsKLSAgICByZXR1cm4gdmFsdWU7CisgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gdmFsdWUgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
IHZhbHVlLT5zZXRTdHJpbmcoIm5hbWUiLCBjb29raWUubmFtZSk7CisgICAgdmFsdWUtPnNldFN0
cmluZygidmFsdWUiLCBjb29raWUudmFsdWUpOworICAgIHZhbHVlLT5zZXRTdHJpbmcoImRvbWFp
biIsIGNvb2tpZS5kb21haW4pOworICAgIHZhbHVlLT5zZXRTdHJpbmcoInBhdGgiLCBjb29raWUu
cGF0aCk7CisgICAgdmFsdWUtPnNldE51bWJlcigiZXhwaXJlcyIsIGNvb2tpZS5leHBpcmVzKTsK
KyAgICB2YWx1ZS0+c2V0TnVtYmVyKCJzaXplIiwgKGNvb2tpZS5uYW1lLmxlbmd0aCgpICsgY29v
a2llLnZhbHVlLmxlbmd0aCgpKSk7CisgICAgdmFsdWUtPnNldEJvb2woImh0dHBPbmx5IiwgY29v
a2llLmh0dHBPbmx5KTsKKyAgICB2YWx1ZS0+c2V0Qm9vbCgic2VjdXJlIiwgY29va2llLnNlY3Vy
ZSk7CisgICAgdmFsdWUtPnNldEJvb2woInNlc3Npb24iLCBjb29raWUuc2Vzc2lvbik7CisgICAg
cmV0dXJuIHZhbHVlLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpk
ZWxldGVDb29raWUoY29uc3QgU3RyaW5nJiBjb29raWVOYW1lLCBjb25zdCBTdHJpbmcmIGRvbWFp
bikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCAwZTVlMmNmLi5m
N2E3MTAyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC02Myw2
ICs2Myw3IEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBj
bGFzcyBJbmplY3RlZFNjcmlwdDsKIGNsYXNzIEluamVjdGVkU2NyaXB0SG9zdDsKK2NsYXNzIElu
c3BlY3RvckFycmF5OwogY2xhc3MgSW5zcGVjdG9yQmFja2VuZDsKIGNsYXNzIEluc3BlY3RvckNs
aWVudDsKIGNsYXNzIEluc3BlY3RvckNTU1N0b3JlOwpAQCAtNzEsNiArNzIsNyBAQCBjbGFzcyBJ
bnNwZWN0b3JEYXRhYmFzZVJlc291cmNlOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFz
cyBJbnNwZWN0b3JGcm9udGVuZDI7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKK2Ns
YXNzIEluc3BlY3Rvck9iamVjdDsKIGNsYXNzIEluc3BlY3RvclJlc291cmNlOwogY2xhc3MgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDsKIGNsYXNzIEluc3BlY3RvclZhbHVlOwpAQCAtMzEzLDggKzMx
NSw4IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKiBnZXRET01T
dG9yYWdlUmVzb3VyY2VGb3JJZChsb25nIHN0b3JhZ2VJZCk7CiAjZW5kaWYKIAotICAgIFNjcmlw
dE9iamVjdCBidWlsZE9iamVjdEZvckNvb2tpZShjb25zdCBDb29raWUmKTsKLSAgICBTY3JpcHRB
cnJheSBidWlsZEFycmF5Rm9yQ29va2llcyhMaXN0SGFzaFNldDxDb29raWU+Jik7CisgICAgUGFz
c1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gYnVpbGRBcnJheUZvckNvb2tpZXMoTGlzdEhhc2hTZXQ8
Q29va2llPiYpOworICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZv
ckNvb2tpZShjb25zdCBDb29raWUmKTsKIAogICAgIHZvaWQgZm9jdXNOb2RlKCk7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcAppbmRleCBkMTZlNDNmLi5hOTIyMzU3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCkBAIC02OTksMTYgKzY5OSw2
IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZERlc3Ryb3lXb3JrZXIoY29uc3QgSW5zcGVj
dG9yV29ya2VyUmVzb3VyY2UmIHdvcmtlcikKIH0KICNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykK
IAotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6ZGlkR2V0Q29va2llcyhsb25nIGNhbGxJZCwgY29u
c3QgU2NyaXB0QXJyYXkmIGNvb2tpZXMsIGNvbnN0IFN0cmluZyYgY29va2llc1N0cmluZykKLXsK
LSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0b3IsICJkaXNwYXRj
aCIpOyAKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCgiZGlkR2V0Q29va2llcyIpOwotICAg
IGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxJZCk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQoY29va2llcyk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY29va2llc1N0cmlu
Zyk7Ci0gICAgZnVuY3Rpb24uY2FsbCgpOwotfQotCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpk
aWREaXNwYXRjaE9uSW5qZWN0ZWRTY3JpcHQobG9uZyBjYWxsSWQsIFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSogcmVzdWx0LCBib29sIGlzRXhjZXB0aW9uKQogewogICAgIFNjcmlwdEZ1bmN0aW9uQ2Fs
bCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7IApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kLmgKaW5kZXggNjdhOTNjZS4uNmFmMDUwMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZC5oCkBAIC0xNzcsNyArMTc3LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIGRpZERlc3Ryb3lXb3JrZXIoY29uc3QgSW5zcGVjdG9yV29ya2Vy
UmVzb3VyY2UmKTsKICNlbmRpZiAvLyBFTkFCTEUoV09SS0VSKQogCi0gICAgICAgIHZvaWQgZGlk
R2V0Q29va2llcyhsb25nIGNhbGxJZCwgY29uc3QgU2NyaXB0QXJyYXkmIGNvb2tpZXMsIGNvbnN0
IFN0cmluZyYgY29va2llc1N0cmluZyk7CiAgICAgICAgIHZvaWQgZGlkRGlzcGF0Y2hPbkluamVj
dGVkU2NyaXB0KGxvbmcgY2FsbElkLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHJlc3VsdCwgYm9v
bCBpc0V4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBhZGROb2Rlc1RvU2VhcmNoUmVzdWx0KGNv
bnN0IFNjcmlwdEFycmF5JiBub2RlSWRzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kMi5pZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZDIuaWRsCmluZGV4IDYxOWIzYmUuLjE1YjJjYTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmQyLmlkbApAQCAtNiw1ICs2LDcgQEAgbW9kdWxlIFdlYkNvcmUgewogCiAg
ICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1JTlNQRUNUT1IsIEpTXSBJbnNwZWN0b3JGcm9udGVu
ZDIgewogICAgICAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoaW4gT2JqZWN0IHJlY29yZCk7
CisKKyAgICAgICAgdm9pZCBkaWRHZXRDb29raWVzKGluIGxvbmcgY2FsbElkLCBpbiBBcnJheSBj
b29raWVzLCBpbiBTdHJpbmcgY29va2llc1N0cmluZyk7CiAgICAgfTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60841</attachid>
            <date>2010-07-07 22:49:19 -0700</date>
            <delta_ts>2010-07-07 22:49:19 -0700</delta_ts>
            <desc>[PATCH] Migrate Databases</desc>
            <filename>databases.patch</filename>
            <type>text/plain</type>
            <size>14252</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODhiNTdkYS4uNTkwNDAyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzNiBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1pZ3JhdGUgRGF0YWJhc2Ug
U3VwcG9ydCB0byBJbnNwZWN0b3JGcm9udGVuZDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODA1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBj
aGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JCYWNrZW5kOjpnZXREYXRhYmFzZVRh
YmxlTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZDo6aW5zcGVjdG9y
RnJvbnRlbmQyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnBvcHVsYXRlU2NyaXB0T2JqZWN0cyk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRDb21taXRMb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNlbGVjdERhdGFiYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE9wZW5EYXRhYmFzZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZTo6YmluZCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRhdGFiYXNlUmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JEYXRhYmFzZVJlc291cmNlOjpkYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JEYXRhYmFzZVJlc291cmNlOjppZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlVGFibGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRhdGFiYXNlVGFibGVWaWV3LnByb3RvdHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOiBmaXgg
dG8gaW5jbHVkZSB0aGUgYWN0dWFsIGVsZW1lbnQsIG5vdCB0aGUgd3JhcHBlcgorCisyMDEwLTA3
LTA3ICBKb3NlcGggUGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgV2ViIEluc3BlY3RvcjogTWlncmF0
ZSBDb29raWUgU3VwcG9ydCB0byBJbnNwZWN0b3JGcm9udGVuZDIKICAgICAgICAgLS0gbmVlZHMg
YnVnIHVybCAtLQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCmluZGV4IDg2
YzUxZDMuLmU1MTA0ZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJh
Y2tlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuY3BwCkBA
IC0zMiwxMCArMzIsNiBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAotI2lmIEVOQUJMRShE
QVRBQkFTRSkKLSNpbmNsdWRlICJEYXRhYmFzZS5oIgotI2VuZGlmCi0KICNpbmNsdWRlICJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAt
NTAsMTAgKzQ2LDE0IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKLSNpbmNsdWRlICJTY3JpcHRBcnJheS5o
IgorI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvckZyb250ZW5kMi5oIgogI2luY2x1ZGUgIlNjcmlw
dEJyZWFrcG9pbnQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAorI2lm
IEVOQUJMRShEQVRBQkFTRSkKKyNpbmNsdWRlICJEYXRhYmFzZS5oIgorI2VuZGlmCisKICNpZiBF
TkFCTEUoRE9NX1NUT1JBR0UpCiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2VuZGlmCkBAIC01NTcs
MTYgKzU1NywxNiBAQCB2b2lkIEluc3BlY3RvckJhY2tlbmQ6OmRpZEV2YWx1YXRlRm9yVGVzdElu
RnJvbnRlbmQobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgagogI2lmIEVOQUJMRShEQVRBQkFT
RSkKIHZvaWQgSW5zcGVjdG9yQmFja2VuZDo6Z2V0RGF0YWJhc2VUYWJsZU5hbWVzKGxvbmcgY2Fs
bElkLCBsb25nIGRhdGFiYXNlSWQpCiB7Ci0gICAgaWYgKEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCA9IGluc3BlY3RvckZyb250ZW5kKCkpIHsKLSAgICAgICAgU2NyaXB0QXJyYXkgcmVzdWx0
ID0gZnJvbnRlbmQtPm5ld1NjcmlwdEFycmF5KCk7CisgICAgaWYgKEluc3BlY3RvckZyb250ZW5k
MiogZnJvbnRlbmQgPSBpbnNwZWN0b3JGcm9udGVuZDIoKSkgeworICAgICAgICBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+IHJlc3VsdCA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKICAgICAgICAg
RGF0YWJhc2UqIGRhdGFiYXNlID0gbV9pbnNwZWN0b3JDb250cm9sbGVyLT5kYXRhYmFzZUZvcklk
KGRhdGFiYXNlSWQpOwogICAgICAgICBpZiAoZGF0YWJhc2UpIHsKICAgICAgICAgICAgIFZlY3Rv
cjxTdHJpbmc+IHRhYmxlTmFtZXMgPSBkYXRhYmFzZS0+dGFibGVOYW1lcygpOwogICAgICAgICAg
ICAgdW5zaWduZWQgbGVuZ3RoID0gdGFibGVOYW1lcy5zaXplKCk7CiAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgcmVzdWx0
LnNldChpLCB0YWJsZU5hbWVzW2ldKTsKKyAgICAgICAgICAgICAgICByZXN1bHQtPnB1c2hTdHJp
bmcodGFibGVOYW1lc1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgZnJvbnRlbmQtPmRpZEdldERh
dGFiYXNlVGFibGVOYW1lcyhjYWxsSWQsIHJlc3VsdCk7CisgICAgICAgIGZyb250ZW5kLT5kaWRH
ZXREYXRhYmFzZVRhYmxlTmFtZXMoY2FsbElkLCByZXN1bHQucmVsZWFzZSgpKTsKICAgICB9CiB9
CiAjZW5kaWYKQEAgLTYxNCw2ICs2MTQsMTMgQEAgSW5zcGVjdG9yRnJvbnRlbmQqIEluc3BlY3Rv
ckJhY2tlbmQ6Omluc3BlY3RvckZyb250ZW5kKCkKICAgICByZXR1cm4gbV9pbnNwZWN0b3JDb250
cm9sbGVyLT5tX2Zyb250ZW5kLmdldCgpOwogfQogCitJbnNwZWN0b3JGcm9udGVuZDIqIEluc3Bl
Y3RvckJhY2tlbmQ6Omluc3BlY3RvckZyb250ZW5kMigpCit7CisgICAgaWYgKCFtX2luc3BlY3Rv
ckNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2luc3BlY3RvckNv
bnRyb2xsZXItPm1fZnJvbnRlbmQyLmdldCgpOworfQorCiBOb2RlKiBJbnNwZWN0b3JCYWNrZW5k
Ojpub2RlRm9ySWQobG9uZyBub2RlSWQpCiB7CiAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBk
b21BZ2VudCA9IGluc3BlY3RvckRPTUFnZW50KCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kLmgKaW5kZXggNDdjZmRjNy4uM2M1YTRkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQmFja2VuZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJh
Y2tlbmQuaApAQCAtNDIsNiArNDIsNyBAQCBjbGFzcyBEYXRhYmFzZTsKIGNsYXNzIEluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDsKIGNsYXNzIEluc3BlY3RvckRPTUFnZW50OwogY2xhc3Mg
SW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDI7CiBjbGFzcyBOb2Rl
OwogY2xhc3MgU3RvcmFnZTsKIApAQCAtMTc5LDYgKzE4MCw3IEBAIHByaXZhdGU6CiAgICAgSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KiBpbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQoKTsKICNlbmRpZgogICAgIEluc3BlY3RvckZyb250ZW5kKiBpbnNwZWN0b3JGcm9udGVuZCgp
OworICAgIEluc3BlY3RvckZyb250ZW5kMiogaW5zcGVjdG9yRnJvbnRlbmQyKCk7CiAgICAgTm9k
ZSogbm9kZUZvcklkKGxvbmcgbm9kZUlkKTsKIAogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1f
aW5zcGVjdG9yQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKaW5kZXggNzU5NTkyMy4uNjFhNWJjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAKQEAgLTY1MCw3ICs2NTAsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OnBvcHVsYXRlU2NyaXB0T2JqZWN0cygpCiAjaWYgRU5BQkxFKERBVEFCQVNFKQogICAg
IERhdGFiYXNlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBkYXRhYmFzZXNFbmQgPSBtX2RhdGFiYXNl
UmVzb3VyY2VzLmVuZCgpOwogICAgIGZvciAoRGF0YWJhc2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9kYXRhYmFzZVJlc291cmNlcy5iZWdpbigpOyBpdCAhPSBkYXRhYmFzZXNFbmQ7ICsr
aXQpCi0gICAgICAgIGl0LT5zZWNvbmQtPmJpbmQobV9mcm9udGVuZC5nZXQoKSk7CisgICAgICAg
IGl0LT5zZWNvbmQtPmJpbmQobV9mcm9udGVuZDIuZ2V0KCkpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KERPTV9TVE9SQUdFKQogICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGRvbVN0
b3JhZ2VFbmQgPSBtX2RvbVN0b3JhZ2VSZXNvdXJjZXMuZW5kKCk7CkBAIC03NDcsMTAgKzc0Nywx
MCBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlcikKIAogICAgICAgICBtX2Nzc1N0b3JlLT5yZXNldCgpOwogICAgICAgICBtX3Nl
c3Npb25TZXR0aW5ncyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgIGlmICht
X2Zyb250ZW5kKSB7Ci0gICAgICAgICAgICBtX2Zyb250ZW5kLT5yZXNldCgpOworICAgICAgICBp
ZiAobV9mcm9udGVuZCkKICAgICAgICAgICAgIG1fZG9tQWdlbnQtPnJlc2V0KCk7Ci0gICAgICAg
IH0KKyAgICAgICAgaWYgKG1fZnJvbnRlbmQyKQorICAgICAgICAgICAgbV9mcm9udGVuZDItPnJl
c2V0KCk7CiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgICAgIG1fd29ya2Vycy5jbGVhcigpOwog
I2VuZGlmCkBAIC0xMjUxLDEyICsxMjUxLDEyIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlkRGVzdHJveVdvcmtlcihpbnRwdHJfdCBpZCkKICNpZiBFTkFCTEUoREFUQUJBU0UpCiB2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OnNlbGVjdERhdGFiYXNlKERhdGFiYXNlKiBkYXRhYmFzZSkK
IHsKLSAgICBpZiAoIW1fZnJvbnRlbmQpCisgICAgaWYgKCFtX2Zyb250ZW5kMikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgZm9yIChEYXRhYmFzZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBt
X2RhdGFiYXNlUmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IG1fZGF0YWJhc2VSZXNvdXJjZXMuZW5k
KCk7ICsraXQpIHsKICAgICAgICAgaWYgKGl0LT5zZWNvbmQtPmRhdGFiYXNlKCkgPT0gZGF0YWJh
c2UpIHsKLSAgICAgICAgICAgIG1fZnJvbnRlbmQtPnNlbGVjdERhdGFiYXNlKGl0LT5maXJzdCk7
CisgICAgICAgICAgICBtX2Zyb250ZW5kMi0+c2VsZWN0RGF0YWJhc2UoaXQtPmZpcnN0KTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtMTI3NiwxMiArMTI3NiwxMSBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE9wZW5EYXRhYmFzZShEYXRhYmFzZSogZGF0
YWJhc2UsIGNvbnN0IFN0cmluZyYgZG9tYQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8
SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZT4gcmVzb3VyY2UgPSBJbnNwZWN0b3JEYXRhYmFzZVJl
c291cmNlOjpjcmVhdGUoZGF0YWJhc2UsIGRvbWFpbiwgbmFtZSwgdmVyc2lvbik7Ci0KICAgICBt
X2RhdGFiYXNlUmVzb3VyY2VzLnNldChyZXNvdXJjZS0+aWQoKSwgcmVzb3VyY2UpOwogCiAgICAg
Ly8gUmVzb3VyY2VzIGFyZSBvbmx5IGJvdW5kIHdoaWxlIHZpc2libGUuCi0gICAgaWYgKG1fZnJv
bnRlbmQpCi0gICAgICAgIHJlc291cmNlLT5iaW5kKG1fZnJvbnRlbmQuZ2V0KCkpOworICAgIGlm
IChtX2Zyb250ZW5kMikKKyAgICAgICAgcmVzb3VyY2UtPmJpbmQobV9mcm9udGVuZDIuZ2V0KCkp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRh
dGFiYXNlUmVzb3VyY2UuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VS
ZXNvdXJjZS5jcHAKaW5kZXggY2VjMGUyOC4uZmQ5ODdlZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKQEAgLTMyLDExICszMiwxMSBAQAog
I2luY2x1ZGUgIkluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaCIKIAogI2lmIEVOQUJMRShEQVRB
QkFTRSkgJiYgRU5BQkxFKElOU1BFQ1RPUikKKwogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkluc3BlY3Rv
ckZyb250ZW5kLmgiCi0jaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCisjaW5jbHVkZSAiUmVtb3Rl
SW5zcGVjdG9yRnJvbnRlbmQyLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTIsMTggKzUyLDE5IEBAIEluc3BlY3RvckRhdGFiYXNl
UmVzb3VyY2U6Okluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UoRGF0YWJhc2UqIGRhdGFiYXNlLCBj
b25zdCBTCiB7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZTo6YmluZChJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCit2b2lkIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U6
OmJpbmQoSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9udGVuZCkKIHsKICAgICBpZiAobV9zY3JpcHRP
YmplY3RDcmVhdGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBTY3JpcHRPYmplY3QganNvbk9i
amVjdCA9IGZyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKLSAgICBqc29uT2JqZWN0LnNldCgi
aWQiLCBtX2lkKTsKLSAgICBqc29uT2JqZWN0LnNldCgiZG9tYWluIiwgbV9kb21haW4pOwotICAg
IGpzb25PYmplY3Quc2V0KCJuYW1lIiwgbV9uYW1lKTsKLSAgICBqc29uT2JqZWN0LnNldCgidmVy
c2lvbiIsIG1fdmVyc2lvbik7Ci0gICAgaWYgKGZyb250ZW5kLT5hZGREYXRhYmFzZShqc29uT2Jq
ZWN0KSkKLSAgICAgICAgbV9zY3JpcHRPYmplY3RDcmVhdGVkID0gdHJ1ZTsKKyAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBvYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
IG9iamVjdC0+c2V0TnVtYmVyKCJpZCIsIG1faWQpOworICAgIG9iamVjdC0+c2V0U3RyaW5nKCJk
b21haW4iLCBtX2RvbWFpbik7CisgICAgb2JqZWN0LT5zZXRTdHJpbmcoIm5hbWUiLCBtX25hbWUp
OworICAgIG9iamVjdC0+c2V0U3RyaW5nKCJ2ZXJzaW9uIiwgbV92ZXJzaW9uKTsKKyAgICBmcm9u
dGVuZC0+YWRkRGF0YWJhc2Uob2JqZWN0KTsKKworICAgIG1fc2NyaXB0T2JqZWN0Q3JlYXRlZCA9
IHRydWU7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZTo6dW5iaW5kKCkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaAppbmRleCBmODJk
ODk4Li40YzNiNDRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRh
YmFzZVJlc291cmNlLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VS
ZXNvdXJjZS5oCkBAIC0zNCw0MiArMzQsNDAgQEAKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAKICNp
bmNsdWRlICJEYXRhYmFzZS5oIgotI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgotI2luY2x1ZGUg
IlNjcmlwdFN0YXRlLmgiCi0KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0gICAgY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7Ci0gICAgCi0gICAgY2xhc3Mg
SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvckRh
dGFiYXNlUmVzb3VyY2U+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U+IGNyZWF0ZShEYXRhYmFzZSogZGF0YWJhc2UsIGNv
bnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVy
c2lvbikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNwZWN0
b3JEYXRhYmFzZVJlc291cmNlKGRhdGFiYXNlLCBkb21haW4sIG5hbWUsIHZlcnNpb24pKTsKLSAg
ICAgICAgfQogCi0gICAgICAgIHZvaWQgYmluZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQp
OwotICAgICAgICB2b2lkIHVuYmluZCgpOwotICAgICAgICBEYXRhYmFzZSogZGF0YWJhc2UoKSB7
IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9Ci0gICAgICAgIGxvbmcgaWQoKSBjb25zdCB7IHJl
dHVybiBtX2lkOyB9Ci0gICAgcHJpdmF0ZToKLSAgICAgICAgSW5zcGVjdG9yRGF0YWJhc2VSZXNv
dXJjZShEYXRhYmFzZSosIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmVyc2lvbik7Ci0gICAgICAgIAotICAgICAgICBSZWZQdHI8RGF0YWJh
c2U+IG1fZGF0YWJhc2U7Ci0gICAgICAgIGludCBtX2lkOwotICAgICAgICBTdHJpbmcgbV9kb21h
aW47Ci0gICAgICAgIFN0cmluZyBtX25hbWU7Ci0gICAgICAgIFN0cmluZyBtX3ZlcnNpb247Ci0g
ICAgICAgIGJvb2wgbV9zY3JpcHRPYmplY3RDcmVhdGVkOworY2xhc3MgSW5zcGVjdG9yRnJvbnRl
bmQyOworCitjbGFzcyBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlIDogcHVibGljIFJlZkNvdW50
ZWQ8SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U+IGNyZWF0ZShEYXRhYmFzZSogZGF0YWJh
c2UsIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5zcGVjdG9y
RGF0YWJhc2VSZXNvdXJjZShkYXRhYmFzZSwgZG9tYWluLCBuYW1lLCB2ZXJzaW9uKSk7CisgICAg
fQorCisgICAgdm9pZCBiaW5kKEluc3BlY3RvckZyb250ZW5kMiogZnJvbnRlbmQpOworICAgIHZv
aWQgdW5iaW5kKCk7CisgICAgRGF0YWJhc2UqIGRhdGFiYXNlKCkgeyByZXR1cm4gbV9kYXRhYmFz
ZS5nZXQoKTsgfQorICAgIGxvbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKLSAgICAg
ICAgc3RhdGljIGludCBzX25leHRVbnVzZWRJZDsKLSAgICB9OworcHJpdmF0ZToKKyAgICBJbnNw
ZWN0b3JEYXRhYmFzZVJlc291cmNlKERhdGFiYXNlKiwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKKworICAgIFJlZlB0cjxE
YXRhYmFzZT4gbV9kYXRhYmFzZTsKKyAgICBpbnQgbV9pZDsKKyAgICBTdHJpbmcgbV9kb21haW47
CisgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBTdHJpbmcgbV92ZXJzaW9uOworICAgIGJvb2wgbV9z
Y3JpcHRPYmplY3RDcmVhdGVkOworCisgICAgc3RhdGljIGludCBzX25leHRVbnVzZWRJZDsKK307
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRBQkFTRSkK
LQogI2VuZGlmIC8vIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2VfaApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmQuY3BwCmluZGV4IGE5MjIzNTcuLmRjYzlkNzYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcAorKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKQEAgLTIyNiwxMSArMjI2LDYgQEAgdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZDo6cG9wdWxhdGVJbnRlcmZhY2UoKQogICAgIGNhbGxTaW1wbGVGdW5j
dGlvbigicG9wdWxhdGVJbnRlcmZhY2UiKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6
cmVzZXQoKQotewotICAgIGNhbGxTaW1wbGVGdW5jdGlvbigicmVzZXQiKTsKLX0KLQogdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZDo6cmVzZXRQcm9maWxlc1BhbmVsKCkKIHsKICAgICBjYWxsU2ltcGxl
RnVuY3Rpb24oInJlc2V0UHJvZmlsZXNQYW5lbCIpOwpAQCAtNzE0LDM1ICs3MDksNiBAQCB2b2lk
IEluc3BlY3RvckZyb250ZW5kOjpkaWREaXNwYXRjaE9uSW5qZWN0ZWRTY3JpcHQobG9uZyBjYWxs
SWQsIFNlcmlhbGl6ZWRTY3JpcAogICAgIGZ1bmN0aW9uLmNhbGwoKTsKIH0KIAotI2lmIEVOQUJM
RShEQVRBQkFTRSkKLWJvb2wgSW5zcGVjdG9yRnJvbnRlbmQ6OmFkZERhdGFiYXNlKGNvbnN0IFNj
cmlwdE9iamVjdCYgZGJPYmplY3QpCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9u
KG1fd2ViSW5zcGVjdG9yLCAiZGlzcGF0Y2giKTsgCi0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoImFkZERhdGFiYXNlIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZGJPYmplY3Qp
OwotICAgIGJvb2wgaGFkRXhjZXB0aW9uID0gZmFsc2U7Ci0gICAgZnVuY3Rpb24uY2FsbChoYWRF
eGNlcHRpb24pOwotICAgIHJldHVybiAhaGFkRXhjZXB0aW9uOwotfQotCi12b2lkIEluc3BlY3Rv
ckZyb250ZW5kOjpzZWxlY3REYXRhYmFzZShpbnQgZGF0YWJhc2VJZCkKLXsKLSAgICBTY3JpcHRG
dW5jdGlvbkNhbGwgZnVuY3Rpb24obV93ZWJJbnNwZWN0b3IsICJkaXNwYXRjaCIpOyAKLSAgICBm
dW5jdGlvbi5hcHBlbmRBcmd1bWVudCgic2VsZWN0RGF0YWJhc2UiKTsKLSAgICBmdW5jdGlvbi5h
cHBlbmRBcmd1bWVudChkYXRhYmFzZUlkKTsKLSAgICBmdW5jdGlvbi5jYWxsKCk7Ci19Ci0KLXZv
aWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZEdldERhdGFiYXNlVGFibGVOYW1lcyhsb25nIGNhbGxJ
ZCwgY29uc3QgU2NyaXB0QXJyYXkmIHRhYmxlTmFtZXMpCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25D
YWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAiZGlzcGF0Y2giKTsgCi0gICAgZnVuY3Rpb24u
YXBwZW5kQXJndW1lbnQoImRpZEdldERhdGFiYXNlVGFibGVOYW1lcyIpOwotICAgIGZ1bmN0aW9u
LmFwcGVuZEFyZ3VtZW50KGNhbGxJZCk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQodGFi
bGVOYW1lcyk7Ci0gICAgZnVuY3Rpb24uY2FsbCgpOwotfQotI2VuZGlmCi0KICNpZiBFTkFCTEUo
RE9NX1NUT1JBR0UpCiBib29sIEluc3BlY3RvckZyb250ZW5kOjphZGRET01TdG9yYWdlKGNvbnN0
IFNjcmlwdE9iamVjdCYgZG9tU3RvcmFnZU9iaikKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZC5oCmluZGV4IDZhZjA1MDAuLmMwMzBlN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmQuaApAQCAtNzksNyArNzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZvaWQgdXBkYXRlRm9jdXNlZE5vZGUobG9uZyBub2RlSWQpOwogICAgICAgICB2b2lkIHNo
b3dQYW5lbChpbnQgcGFuZWwpOwogICAgICAgICB2b2lkIHBvcHVsYXRlSW50ZXJmYWNlKCk7Ci0g
ICAgICAgIHZvaWQgcmVzZXQoKTsKICAgICAgICAgdm9pZCByZXNldFByb2ZpbGVzUGFuZWwoKTsK
IAogICAgICAgICB2b2lkIGJyaW5nVG9Gcm9udCgpOwpAQCAtMTIwLDEyICsxMTksNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZGlkR2V0UHJvZmlsZShsb25nIGNhbGxJZCwg
Y29uc3QgU2NyaXB0VmFsdWUmIHByb2ZpbGUpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREFUQUJB
U0UpCi0gICAgICAgIGJvb2wgYWRkRGF0YWJhc2UoY29uc3QgU2NyaXB0T2JqZWN0JiBkYk9iaik7
Ci0gICAgICAgIHZvaWQgc2VsZWN0RGF0YWJhc2UoaW50IGRhdGFiYXNlSWQpOwotICAgICAgICB2
b2lkIGRpZEdldERhdGFiYXNlVGFibGVOYW1lcyhsb25nIGNhbGxJZCwgY29uc3QgU2NyaXB0QXJy
YXkmIHRhYmxlTmFtZXMpOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiAgICAg
ICAgIGJvb2wgYWRkRE9NU3RvcmFnZShjb25zdCBTY3JpcHRPYmplY3QmIGRvbVN0b3JhZ2VPYmop
OwogICAgICAgICB2b2lkIHNlbGVjdERPTVN0b3JhZ2UobG9uZyBzdG9yYWdlSWQpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGwKaW5kZXggMTViMmNhMC4uOTkwYzNlZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsCkBAIC01LDggKzUsMTUg
QEAKIG1vZHVsZSBXZWJDb3JlIHsKIAogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9SU5TUEVD
VE9SLCBKU10gSW5zcGVjdG9yRnJvbnRlbmQyIHsKKyAgICAgICAgdm9pZCByZXNldCgpOwogICAg
ICAgICB2b2lkIGFkZFJlY29yZFRvVGltZWxpbmUoaW4gT2JqZWN0IHJlY29yZCk7CiAKICAgICAg
ICAgdm9pZCBkaWRHZXRDb29raWVzKGluIGxvbmcgY2FsbElkLCBpbiBBcnJheSBjb29raWVzLCBp
biBTdHJpbmcgY29va2llc1N0cmluZyk7CisKKyNpZiBkZWZpbmVkKEVOQUJMRV9EQVRBQkFTRSkg
JiYgRU5BQkxFX0RBVEFCQVNFCisgICAgICAgIHZvaWQgYWRkRGF0YWJhc2UoaW4gT2JqZWN0IGRh
dGFiYXNlT2JqZWN0KTsKKyAgICAgICAgdm9pZCBzZWxlY3REYXRhYmFzZShpbiBpbnQgZGF0YWJh
c2VJZCk7CisgICAgICAgIHZvaWQgZGlkR2V0RGF0YWJhc2VUYWJsZU5hbWVzKGluIGxvbmcgY2Fs
bElkLCBpbiBBcnJheSB0YWJsZU5hbWVzKTsKKyNlbmRpZgogICAgIH07CiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VUYWJsZVZpZXcuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VUYWJsZVZpZXcuanMKaW5kZXggY2Q2NmFi
Ny4uMDZhYzJjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFi
YXNlVGFibGVWaWV3LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFz
ZVRhYmxlVmlldy5qcwpAQCAtNDYsNyArNDYsNyBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJs
ZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgZ2V0IHN0YXR1c0Jhckl0ZW1zKCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBbdGhpcy5yZWZyZXNoQnV0dG9uXTsKKyAgICAgICAgcmV0dXJuIFt0aGlz
LnJlZnJlc2hCdXR0b24uZWxlbWVudF07CiAgICAgfSwKIAogICAgIHVwZGF0ZTogZnVuY3Rpb24o
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60842</attachid>
            <date>2010-07-07 22:49:40 -0700</date>
            <delta_ts>2010-07-07 22:49:40 -0700</delta_ts>
            <desc>[PATCH] Migrate DOM Storage</desc>
            <filename>domstorage.patch</filename>
            <type>text/plain</type>
            <size>15305</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTkwNDAyYi4uZjI4MDQ1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzNiBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1pZ3JhdGUgRE9NIFN0b3Jh
Z2UgU3VwcG9ydCB0byBJbnNwZWN0b3JGcm9udGVuZDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODA1CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBu
byBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpwb3B1
bGF0ZVNjcmlwdE9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkVXNlRE9NU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpzZWxlY3RET01TdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6OmdldERPTVN0b3JhZ2VFbnRyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OnNldERPTVN0b3JhZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnRyb2xsZXI6OnJlbW92ZURPTVN0b3JhZ2VJdGVtKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6YmluZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjpjYXN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6aWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjpkb21TdG9yYWdlKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZTo6ZGF0YWJhc2UpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kMi5pZGw6
CisKKzIwMTAtMDctMDcgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBNaWdyYXRlIERhdGFiYXNlIFN1cHBvcnQgdG8gSW5zcGVjdG9yRnJvbnRlbmQyCiAgICAg
ICAgIC0tIG5lZWRzIGJ1ZyB1cmwgLS0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcAppbmRleCA2MWE1YmM5Li41NGY5YmVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNjU1LDcgKzY1NSw3IEBAIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6cG9wdWxhdGVTY3JpcHRPYmplY3RzKCkKICNpZiBFTkFCTEUoRE9NX1NUT1JB
R0UpCiAgICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgZG9tU3RvcmFnZUVuZCA9
IG1fZG9tU3RvcmFnZVJlc291cmNlcy5lbmQoKTsKICAgICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJj
ZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9kb21TdG9yYWdlUmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9
IGRvbVN0b3JhZ2VFbmQ7ICsraXQpCi0gICAgICAgIGl0LT5zZWNvbmQtPmJpbmQobV9mcm9udGVu
ZC5nZXQoKSk7CisgICAgICAgIGl0LT5zZWNvbmQtPmJpbmQobV9mcm9udGVuZDIuZ2V0KCkpOwog
I2VuZGlmCiAjaWYgRU5BQkxFKFdPUktFUlMpCiAgICAgV29ya2Vyc01hcDo6aXRlcmF0b3Igd29y
a2Vyc0VuZCA9IG1fd29ya2Vycy5lbmQoKTsKQEAgLTEzODIsMTQgKzEzODIsMTQgQEAgdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaWRVc2VET01TdG9yYWdlKFN0b3JhZ2VBcmVhKiBzdG9yYWdl
QXJlYSwgYm9vbCBpc0xvY2EKICAgICBtX2RvbVN0b3JhZ2VSZXNvdXJjZXMuc2V0KHJlc291cmNl
LT5pZCgpLCByZXNvdXJjZSk7CiAKICAgICAvLyBSZXNvdXJjZXMgYXJlIG9ubHkgYm91bmQgd2hp
bGUgdmlzaWJsZS4KLSAgICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgcmVzb3VyY2UtPmJpbmQo
bV9mcm9udGVuZC5nZXQoKSk7CisgICAgaWYgKG1fZnJvbnRlbmQyKQorICAgICAgICByZXNvdXJj
ZS0+YmluZChtX2Zyb250ZW5kMi5nZXQoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6c2VsZWN0RE9NU3RvcmFnZShTdG9yYWdlKiBzdG9yYWdlKQogewogICAgIEFTU0VSVChzdG9y
YWdlKTsKLSAgICBpZiAoIW1fZnJvbnRlbmQpCisgICAgaWYgKCFtX2Zyb250ZW5kMikKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgRnJhbWUqIGZyYW1lID0gc3RvcmFnZS0+ZnJhbWUoKTsKQEAgLTE0
MDQsNyArMTQwNCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2VsZWN0RE9NU3RvcmFn
ZShTdG9yYWdlKiBzdG9yYWdlKQogICAgICAgICB9CiAgICAgfQogICAgIGlmIChzdG9yYWdlUmVz
b3VyY2VJZCkKLSAgICAgICAgbV9mcm9udGVuZC0+c2VsZWN0RE9NU3RvcmFnZShzdG9yYWdlUmVz
b3VyY2VJZCk7CisgICAgICAgIG1fZnJvbnRlbmQyLT5zZWxlY3RET01TdG9yYWdlKHN0b3JhZ2VS
ZXNvdXJjZUlkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRET01TdG9yYWdl
RW50cmllcyhsb25nIGNhbGxJZCwgbG9uZyBzdG9yYWdlSWQpCkBAIC0xNDEyLDcgKzE0MTIsNyBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmdldERPTVN0b3JhZ2VFbnRyaWVzKGxvbmcgY2Fs
bElkLCBsb25nIHN0b3JhZ2VJZCkKICAgICBpZiAoIW1fZnJvbnRlbmQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFNjcmlwdEFycmF5IGpzb25BcnJheSA9IG1fZnJvbnRlbmQtPm5ld1NjcmlwdEFy
cmF5KCk7CisgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiB0b3RhbEFycmF5ID0gSW5zcGVjdG9y
QXJyYXk6OmNyZWF0ZSgpOwogICAgIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogc3RvcmFn
ZVJlc291cmNlID0gZ2V0RE9NU3RvcmFnZVJlc291cmNlRm9ySWQoc3RvcmFnZUlkKTsKICAgICBp
ZiAoc3RvcmFnZVJlc291cmNlKSB7CiAgICAgICAgIHN0b3JhZ2VSZXNvdXJjZS0+c3RhcnRSZXBv
cnRpbmdDaGFuZ2VzVG9Gcm9udGVuZCgpOwpAQCAtMTQyMCwxMyArMTQyMCwxMyBAQCB2b2lkIElu
c3BlY3RvckNvbnRyb2xsZXI6OmdldERPTVN0b3JhZ2VFbnRyaWVzKGxvbmcgY2FsbElkLCBsb25n
IHN0b3JhZ2VJZCkKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRvbVN0b3JhZ2Ut
Pmxlbmd0aCgpOyArK2kpIHsKICAgICAgICAgICAgIFN0cmluZyBuYW1lKGRvbVN0b3JhZ2UtPmtl
eShpKSk7CiAgICAgICAgICAgICBTdHJpbmcgdmFsdWUoZG9tU3RvcmFnZS0+Z2V0SXRlbShuYW1l
KSk7Ci0gICAgICAgICAgICBTY3JpcHRBcnJheSBlbnRyeSA9IG1fZnJvbnRlbmQtPm5ld1Njcmlw
dEFycmF5KCk7Ci0gICAgICAgICAgICBlbnRyeS5zZXQoMCwgbmFtZSk7Ci0gICAgICAgICAgICBl
bnRyeS5zZXQoMSwgdmFsdWUpOwotICAgICAgICAgICAganNvbkFycmF5LnNldChpLCBlbnRyeSk7
CisgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGVudHJ5QXJyYXkgPSBJbnNwZWN0
b3JBcnJheTo6Y3JlYXRlKCk7CisgICAgICAgICAgICBlbnRyeUFycmF5LT5wdXNoU3RyaW5nKG5h
bWUpOworICAgICAgICAgICAgZW50cnlBcnJheS0+cHVzaFN0cmluZyh2YWx1ZSk7CisgICAgICAg
ICAgICB0b3RhbEFycmF5LT5wdXNoKGVudHJ5QXJyYXkpOwogICAgICAgICB9CiAgICAgfQotICAg
IG1fZnJvbnRlbmQtPmRpZEdldERPTVN0b3JhZ2VFbnRyaWVzKGNhbGxJZCwganNvbkFycmF5KTsK
KyAgICBtX2Zyb250ZW5kMi0+ZGlkR2V0RE9NU3RvcmFnZUVudHJpZXMoY2FsbElkLCB0b3RhbEFy
cmF5LnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0RE9NU3Rv
cmFnZUl0ZW0obG9uZyBjYWxsSWQsIGxvbmcgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTE0NDEsNyArMTQ0MSw3IEBAIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6c2V0RE9NU3RvcmFnZUl0ZW0obG9uZyBjYWxsSWQsIGxvbmcgc3RvcmFnZUlk
LCBjb25zdCBTCiAgICAgICAgIHN0b3JhZ2VSZXNvdXJjZS0+ZG9tU3RvcmFnZSgpLT5zZXRJdGVt
KGtleSwgdmFsdWUsIGV4Y2VwdGlvbik7CiAgICAgICAgIHN1Y2Nlc3MgPSAhZXhjZXB0aW9uOwog
ICAgIH0KLSAgICBtX2Zyb250ZW5kLT5kaWRTZXRET01TdG9yYWdlSXRlbShjYWxsSWQsIHN1Y2Nl
c3MpOworICAgIG1fZnJvbnRlbmQyLT5kaWRTZXRET01TdG9yYWdlSXRlbShjYWxsSWQsIHN1Y2Nl
c3MpOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlbW92ZURPTVN0b3JhZ2VJdGVt
KGxvbmcgY2FsbElkLCBsb25nIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXkpCkBAIC0xNDU1
LDcgKzE0NTUsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlbW92ZURPTVN0b3JhZ2VJ
dGVtKGxvbmcgY2FsbElkLCBsb25nIHN0b3JhZ2VJZCwgY29ucwogICAgICAgICBzdG9yYWdlUmVz
b3VyY2UtPmRvbVN0b3JhZ2UoKS0+cmVtb3ZlSXRlbShrZXkpOwogICAgICAgICBzdWNjZXNzID0g
dHJ1ZTsKICAgICB9Ci0gICAgbV9mcm9udGVuZC0+ZGlkUmVtb3ZlRE9NU3RvcmFnZUl0ZW0oY2Fs
bElkLCBzdWNjZXNzKTsKKyAgICBtX2Zyb250ZW5kMi0+ZGlkUmVtb3ZlRE9NU3RvcmFnZUl0ZW0o
Y2FsbElkLCBzdWNjZXNzKTsKIH0KIAogSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKiBJbnNw
ZWN0b3JDb250cm9sbGVyOjpnZXRET01TdG9yYWdlUmVzb3VyY2VGb3JJZChsb25nIHN0b3JhZ2VJ
ZCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2Uu
Y3BwCmluZGV4IGFmMDUzMGEuLmEyZjg2YjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcApAQCAtMzgsOCArMzgsOCBAQAogI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCi0jaW5jbHVkZSAiU2NyaXB0T2Jq
ZWN0LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCisjaW5jbHVkZSAiUmVtb3RlSW5z
cGVjdG9yRnJvbnRlbmQyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VFdmVudC5oIgogCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGludCBJ
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6OnNfbmV4dFVudXNlZElkID0gMTsKIAogSW5zcGVj
dG9yRE9NU3RvcmFnZVJlc291cmNlOjpJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UoU3RvcmFn
ZSogZG9tU3RvcmFnZSwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1lKQotICAgIDog
IEV2ZW50TGlzdGVuZXIoSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlVHlwZSkKKyAgICA6IEV2
ZW50TGlzdGVuZXIoSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlVHlwZSkKICAgICAsIG1fZG9t
U3RvcmFnZShkb21TdG9yYWdlKQogICAgICwgbV9pc0xvY2FsU3RvcmFnZShpc0xvY2FsU3RvcmFn
ZSkKICAgICAsIG1fZnJhbWUoZnJhbWUpCkBAIC02NSwxNiArNjUsMTYgQEAgYm9vbCBJbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2U6OmlzU2FtZUhvc3RBbmRUeXBlKEZyYW1lKiBmcmFtZSwgYm9v
bCBpc0xvY2FsU3QKICAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UobV9mcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aG9zdCgpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+aG9zdCgpKSAmJiBtX2lzTG9jYWxTdG9yYWdlID09IGlzTG9jYWxTdG9yYWdl
OwogfQogCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6YmluZChJbnNwZWN0b3JG
cm9udGVuZCogZnJvbnRlbmQpCit2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6Ymlu
ZChJbnNwZWN0b3JGcm9udGVuZDIqIGZyb250ZW5kKQogewogICAgIEFTU0VSVCghbV9mcm9udGVu
ZCk7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOwogCi0gICAgU2NyaXB0T2JqZWN0IGpzb25P
YmplY3QgPSBmcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7Ci0gICAganNvbk9iamVjdC5zZXQo
Imhvc3QiLCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5ob3N0KCkpOwot
ICAgIGpzb25PYmplY3Quc2V0KCJpc0xvY2FsU3RvcmFnZSIsIG1faXNMb2NhbFN0b3JhZ2UpOwot
ICAgIGpzb25PYmplY3Quc2V0KCJpZCIsIG1faWQpOwotICAgIGZyb250ZW5kLT5hZGRET01TdG9y
YWdlKGpzb25PYmplY3QpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG9iamVjdCA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgb2JqZWN0LT5zZXRTdHJpbmcoImhvc3QiLCBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5ob3N0KCkpOworICAgIG9iamVj
dC0+c2V0Qm9vbCgiaXNMb2NhbFN0b3JhZ2UiLCBtX2lzTG9jYWxTdG9yYWdlKTsKKyAgICBvYmpl
Y3QtPnNldE51bWJlcigiaWQiLCBtX2lkKTsKKyAgICBmcm9udGVuZC0+YWRkRE9NU3RvcmFnZShv
YmplY3QucmVsZWFzZSgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6
OnVuYmluZCgpCkBAIC0xMTgsNCArMTE4LDMgQEAgYm9vbCBJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2U6Om9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRE9NX1NUT1JBR0UpICYmIEVOQUJM
RShJTlNQRUNUT1IpCi0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZVJlc291cmNlLmgKaW5kZXggMmIxOGIyNC4uM2M3M2Y3NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgKQEAgLTM0LDU0ICszNCw1MCBAQAog
I2lmIEVOQUJMRShET01fU1RPUkFHRSkKIAogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKLSNp
bmNsdWRlICJTY3JpcHRPYmplY3QuaCIKLSNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogCiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3Mg
U3RvcmFnZTsKLSAgICBjbGFzcyBGcmFtZTsKLSAgICBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsK
LQotICAgIGNsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSA6IHB1YmxpYyBFdmVudExp
c3RlbmVyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rv
ckRPTVN0b3JhZ2VSZXNvdXJjZT4gY3JlYXRlKFN0b3JhZ2UqIGRvbVN0b3JhZ2UsIGJvb2wgaXNM
b2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UoZG9tU3RvcmFnZSwgaXNM
b2NhbFN0b3JhZ2UsIGZyYW1lKSk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RhdGljIGNvbnN0IElu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogY2FzdChjb25zdCBFdmVudExpc3RlbmVyKiBsaXN0
ZW5lcikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGxpc3RlbmVyLT50eXBlKCkgPT0g
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlVHlwZSA/IHN0YXRpY19jYXN0PGNvbnN0IEluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZSo+KGxpc3RlbmVyKSA6IDA7Ci0gICAgICAgIH0KLQotICAg
ICAgICB2b2lkIGJpbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKLSAgICAgICAgdm9p
ZCB1bmJpbmQoKTsKLSAgICAgICAgdm9pZCBzdGFydFJlcG9ydGluZ0NoYW5nZXNUb0Zyb250ZW5k
KCk7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBFdmVudCopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBF
dmVudExpc3RlbmVyJiBsaXN0ZW5lcik7Ci0KLSAgICAgICAgYm9vbCBpc1NhbWVIb3N0QW5kVHlw
ZShGcmFtZSosIGJvb2wgaXNMb2NhbFN0b3JhZ2UpIGNvbnN0OwotICAgICAgICBsb25nIGlkKCkg
Y29uc3QgeyByZXR1cm4gbV9pZDsgfQotICAgICAgICBTdG9yYWdlKiBkb21TdG9yYWdlKCkgY29u
c3QgeyByZXR1cm4gbV9kb21TdG9yYWdlLmdldCgpOyB9Ci0KLSAgICBwcml2YXRlOgotCi0gICAg
ICAgIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZShTdG9yYWdlKiwgYm9vbCBpc0xvY2FsU3Rv
cmFnZSwgRnJhbWUqKTsKLQotICAgICAgICBSZWZQdHI8U3RvcmFnZT4gbV9kb21TdG9yYWdlOwot
ICAgICAgICBib29sIG1faXNMb2NhbFN0b3JhZ2U7Ci0gICAgICAgIFJlZlB0cjxGcmFtZT4gbV9m
cmFtZTsKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7Ci0gICAgICAgIGlu
dCBtX2lkOwotICAgICAgICBib29sIG1fcmVwb3J0aW5nQ2hhbmdlc1RvRnJvbnRlbmQ7Ci0KLSAg
ICAgICAgc3RhdGljIGludCBzX25leHRVbnVzZWRJZDsKLSAgICB9OworY2xhc3MgU3RvcmFnZTsK
K2NsYXNzIEZyYW1lOworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQyOworCitjbGFzcyBJbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2UgOiBwdWJsaWMgRXZlbnRMaXN0ZW5lciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlPiBjcmVhdGUo
U3RvcmFnZSogZG9tU3RvcmFnZSwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1lKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2UoZG9tU3RvcmFnZSwgaXNMb2NhbFN0b3JhZ2UsIGZyYW1lKSk7CisgICAgfQorICAgIHN0
YXRpYyBjb25zdCBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UqIGNhc3QoY29uc3QgRXZlbnRM
aXN0ZW5lciogbGlzdGVuZXIpCisgICAgeworICAgICAgICByZXR1cm4gbGlzdGVuZXItPnR5cGUo
KSA9PSBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VUeXBlID8gc3RhdGljX2Nhc3Q8Y29uc3Qg
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKj4obGlzdGVuZXIpIDogMDsKKyAgICB9CisKKyAg
ICB2b2lkIGJpbmQoSW5zcGVjdG9yRnJvbnRlbmQyKiBmcm9udGVuZCk7CisgICAgdm9pZCB1bmJp
bmQoKTsKKyAgICB2b2lkIHN0YXJ0UmVwb3J0aW5nQ2hhbmdlc1RvRnJvbnRlbmQoKTsKKworICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQq
KTsKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBsaXN0
ZW5lcik7CisKKyAgICBib29sIGlzU2FtZUhvc3RBbmRUeXBlKEZyYW1lKiwgYm9vbCBpc0xvY2Fs
U3RvcmFnZSkgY29uc3Q7CisgICAgbG9uZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KKyAg
ICBTdG9yYWdlKiBkb21TdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gbV9kb21TdG9yYWdlLmdldCgp
OyB9CisKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKFN0b3JhZ2Uq
LCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFtZSopOworCisgICAgUmVmUHRyPFN0b3JhZ2U+IG1f
ZG9tU3RvcmFnZTsKKyAgICBib29sIG1faXNMb2NhbFN0b3JhZ2U7CisgICAgUmVmUHRyPEZyYW1l
PiBtX2ZyYW1lOworICAgIEluc3BlY3RvckZyb250ZW5kMiogbV9mcm9udGVuZDsKKyAgICBpbnQg
bV9pZDsKKyAgICBib29sIG1fcmVwb3J0aW5nQ2hhbmdlc1RvRnJvbnRlbmQ7CisKKyAgICBzdGF0
aWMgaW50IHNfbmV4dFVudXNlZElkOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmgg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmgKaW5kZXggNGMz
YjQ0Yy4uMzRhZjBiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0
YWJhc2VSZXNvdXJjZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNl
UmVzb3VyY2UuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJpbmQoSW5z
cGVjdG9yRnJvbnRlbmQyKiBmcm9udGVuZCk7CiAgICAgdm9pZCB1bmJpbmQoKTsKLSAgICBEYXRh
YmFzZSogZGF0YWJhc2UoKSB7IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9CisgICAgRGF0YWJh
c2UqIGRhdGFiYXNlKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZS5nZXQoKTsgfQogICAgIGxv
bmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKaW5kZXggZGNjOWQ3Ni4uZDE4M2YwYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuY3BwCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmNwcApAQCAtNzA5LDYxICs3MDksNiBAQCB2b2lk
IEluc3BlY3RvckZyb250ZW5kOjpkaWREaXNwYXRjaE9uSW5qZWN0ZWRTY3JpcHQobG9uZyBjYWxs
SWQsIFNlcmlhbGl6ZWRTY3JpcAogICAgIGZ1bmN0aW9uLmNhbGwoKTsKIH0KIAotI2lmIEVOQUJM
RShET01fU1RPUkFHRSkKLWJvb2wgSW5zcGVjdG9yRnJvbnRlbmQ6OmFkZERPTVN0b3JhZ2UoY29u
c3QgU2NyaXB0T2JqZWN0JiBkb21TdG9yYWdlT2JqKQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2Fs
bCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7IAotICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KCJhZGRET01TdG9yYWdlIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoZG9tU3RvcmFnZU9iaik7Ci0gICAgYm9vbCBoYWRFeGNlcHRpb24gPSBmYWxzZTsKLSAgICBm
dW5jdGlvbi5jYWxsKGhhZEV4Y2VwdGlvbik7Ci0gICAgcmV0dXJuICFoYWRFeGNlcHRpb247Ci19
Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OnNlbGVjdERPTVN0b3JhZ2UobG9uZyBzdG9yYWdl
SWQpCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1fd2ViSW5zcGVjdG9yLCAi
ZGlzcGF0Y2giKTsgCi0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoInNlbGVjdERPTVN0b3Jh
Z2UiKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzdG9yYWdlSWQpOwotICAgIGZ1bmN0
aW9uLmNhbGwoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6ZGlkR2V0RE9NU3RvcmFn
ZUVudHJpZXMobG9uZyBjYWxsSWQsIGNvbnN0IFNjcmlwdEFycmF5JiBlbnRyaWVzKQotewotICAg
IFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7
IAotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KCJkaWRHZXRET01TdG9yYWdlRW50cmllcyIp
OwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxJZCk7Ci0gICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQoZW50cmllcyk7Ci0gICAgZnVuY3Rpb24uY2FsbCgpOwotfQotCi12b2lkIElu
c3BlY3RvckZyb250ZW5kOjpkaWRTZXRET01TdG9yYWdlSXRlbShsb25nIGNhbGxJZCwgYm9vbCBz
dWNjZXNzKQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX3dlYkluc3BlY3Rv
ciwgImRpc3BhdGNoIik7IAotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KCJkaWRTZXRET01T
dG9yYWdlSXRlbSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxJZCk7Ci0gICAg
ZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoc3VjY2Vzcyk7Ci0gICAgZnVuY3Rpb24uY2FsbCgpOwot
fQotCi12b2lkIEluc3BlY3RvckZyb250ZW5kOjpkaWRSZW1vdmVET01TdG9yYWdlSXRlbShsb25n
IGNhbGxJZCwgYm9vbCBzdWNjZXNzKQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlv
bihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7IAotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KCJkaWRSZW1vdmVET01TdG9yYWdlSXRlbSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KGNhbGxJZCk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoc3VjY2Vzcyk7Ci0gICAg
ZnVuY3Rpb24uY2FsbCgpOwotfQotCi12b2lkIEluc3BlY3RvckZyb250ZW5kOjp1cGRhdGVET01T
dG9yYWdlKGxvbmcgc3RvcmFnZUlkKQotewotICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlv
bihtX3dlYkluc3BlY3RvciwgImRpc3BhdGNoIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1l
bnQoInVwZGF0ZURPTVN0b3JhZ2UiKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzdG9y
YWdlSWQpOwotICAgIGZ1bmN0aW9uLmNhbGwoKTsKLX0KLSNlbmRpZgotCiAjaWYgRU5BQkxFKE9G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmQ6OmRpZEdldEFw
cGxpY2F0aW9uQ2FjaGVzKGxvbmcgY2FsbElkLCBjb25zdCBTY3JpcHRWYWx1ZSYgYXBwbGljYXRp
b25DYWNoZXMpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCBjMDMw
ZTdiLi4xM2UxNjY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKQEAgLTEx
OSwxNSArMTE5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRpZEdldFBy
b2ZpbGUobG9uZyBjYWxsSWQsIGNvbnN0IFNjcmlwdFZhbHVlJiBwcm9maWxlKTsKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKERPTV9TVE9SQUdFKQotICAgICAgICBib29sIGFkZERPTVN0b3JhZ2UoY29u
c3QgU2NyaXB0T2JqZWN0JiBkb21TdG9yYWdlT2JqKTsKLSAgICAgICAgdm9pZCBzZWxlY3RET01T
dG9yYWdlKGxvbmcgc3RvcmFnZUlkKTsKLSAgICAgICAgdm9pZCBkaWRHZXRET01TdG9yYWdlRW50
cmllcyhsb25nIGNhbGxJZCwgY29uc3QgU2NyaXB0QXJyYXkmIGVudHJpZXMpOwotICAgICAgICB2
b2lkIGRpZFNldERPTVN0b3JhZ2VJdGVtKGxvbmcgY2FsbElkLCBib29sIHN1Y2Nlc3MpOwotICAg
ICAgICB2b2lkIGRpZFJlbW92ZURPTVN0b3JhZ2VJdGVtKGxvbmcgY2FsbElkLCBib29sIHN1Y2Nl
c3MpOwotICAgICAgICB2b2lkIHVwZGF0ZURPTVN0b3JhZ2UobG9uZyBzdG9yYWdlSWQpOwotI2Vu
ZGlmCi0KICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICB2b2lk
IHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoaW50IHN0YXR1cyk7CiAgICAgICAgIHZvaWQg
dXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgaXNOb3dPbmxpbmUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kMi5pZGwKaW5kZXggOTkwYzNlZC4uZTE3MGJiNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQyLmlkbAorKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZDIuaWRsCkBAIC0xNSw1ICsxNSwxNCBAQCBtb2R1bGUg
V2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2VsZWN0RGF0YWJhc2UoaW4gaW50IGRhdGFiYXNlSWQp
OwogICAgICAgICB2b2lkIGRpZEdldERhdGFiYXNlVGFibGVOYW1lcyhpbiBsb25nIGNhbGxJZCwg
aW4gQXJyYXkgdGFibGVOYW1lcyk7CiAjZW5kaWYKKworI2lmIGRlZmluZWQoRU5BQkxFX0RPTV9T
VE9SQUdFKSAmJiBFTkFCTEVfRE9NX1NUT1JBR0UKKyAgICAgICAgdm9pZCBhZGRET01TdG9yYWdl
KGluIE9iamVjdCBkb21TdG9yYWdlT2JqZWN0KTsKKyAgICAgICAgdm9pZCBzZWxlY3RET01TdG9y
YWdlKGluIGxvbmcgc3RvcmFnZUlkKTsKKyAgICAgICAgdm9pZCBkaWRHZXRET01TdG9yYWdlRW50
cmllcyhpbiBsb25nIGNhbGxJZCwgaW4gQXJyYXkgZW50cmllcyk7CisgICAgICAgIHZvaWQgZGlk
U2V0RE9NU3RvcmFnZUl0ZW0oaW4gbG9uZyBjYWxsSWQsIGluIGJvb2xlYW4gc3VjY2Vzcyk7Cisg
ICAgICAgIHZvaWQgZGlkUmVtb3ZlRE9NU3RvcmFnZUl0ZW0oaW4gbG9uZyBjYWxsSWQsIGluIGJv
b2xlYW4gc3VjY2Vzcyk7CisgICAgICAgIHZvaWQgdXBkYXRlRE9NU3RvcmFnZShpbiBsb25nIHN0
b3JhZ2VJZCk7CisjZW5kaWYKICAgICB9OwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>