<?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>111784</bug_id>
          
          <creation_ts>2013-03-07 15:34:58 -0800</creation_ts>
          <short_desc>Inspector: activate/deactivate IndexedDB transactions when inspecting IDB</short_desc>
          <delta_ts>2013-03-11 11:30:15 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>101618</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>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>adamk</cc>
    
    <cc>dgrogan</cc>
    
    <cc>jsbell</cc>
    
    <cc>vsevik</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>850542</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-07 15:34:58 -0800</bug_when>
    <thetext>Inspector: activate/deactivate IndexedDB transactions when inspecting IDB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850549</commentid>
    <comment_count>1</comment_count>
      <attachid>192098</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-07 15:39:13 -0800</bug_when>
    <thetext>Created attachment 192098
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850572</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-07 15:51:29 -0800</bug_when>
    <thetext>vsevik: This may not be an ideal place for this, but it works great.

abarth@ - any insight here? Basically we have V8RecursionScope (which requires ScriptExecutionContext) which does some IDB-specific work, in addition to delivering MutationObserver changes. 

CC&apos;ing adamk@ in case he has any ideas here since I don&apos;t know what MutationObserver is supposed to do with inspector mutation changes and he may want that.

I tried to put the V8RecursionScope outside of InspectorIndexedDBAgent itself (it probably belongs somewhere around InspectorController::dispatchFromFrontEnd() but there&apos;s no easily-accessible ScriptExecutionContext at that level) and that means it has to go somewhere in the code generator for InspectorBackendDispatcherImpl::dispatch()

In addition, this adds additional V8-specific code to Inspector, also probably not ideal. (JSC has a similar problem across the codebase being addressed in bug 106732, but not for this particular issue in the inspector) we could put something in WebCore, but it would be Yet Another Scoping object. 

So a totally different alternative would be to replicate the one line of V8RecursionScope that we need:

    IDBPendingTransactionMonitor::deactivateNewTransactions();

inside InspectorIDBAgent - less v8 specific, but I&apos;m concerned that any future changes to V8RecursionScope will be missed, and that does seem like the place that we&apos;re trying to deliver microtask-based events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850573</commentid>
    <comment_count>3</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-07 15:52:04 -0800</bug_when>
    <thetext>hmm.. autocomplete. adding abarth@ - see my previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850580</commentid>
    <comment_count>4</comment_count>
      <attachid>192098</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-07 16:04:07 -0800</bug_when>
    <thetext>Comment on attachment 192098
Patch

This seems odd.  I don&apos;t understand why this would be needed.  We&apos;re not spinning a nested event loop, are we?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850586</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2013-03-07 16:10:38 -0800</bug_when>
    <thetext>V8RecursionScope is just semantically wrong here: it&apos;s supposed to be counting script invocations (which is what defines a microtask); I take it from the fact that adding this scope was necessary that no script ran

 Note that MutationObservers have a separate mechanism for firing when no script has run: see http://trac.webkit.org/browser/trunk/Source/WebKit/chromium/src/WebKit.cpp#L78

But that doesn&apos;t really help address your cross-platform problem, as other platforms haven&apos;t added support for this end-of-task hook (as evidenced by the fact that bug 78290 is still open).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850630</commentid>
    <comment_count>6</comment_count>
      <attachid>192098</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-07 16:46:32 -0800</bug_when>
    <thetext>Comment on attachment 192098
Patch

yeah I&apos;m now reasonably convinced that V8RecursionScope is the wrong thing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850663</commentid>
    <comment_count>7</comment_count>
      <attachid>192114</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-07 17:03:38 -0800</bug_when>
    <thetext>Created attachment 192114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850665</commentid>
    <comment_count>8</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-07 17:03:58 -0800</bug_when>
    <thetext>ok, back to IDB-specific code. 

abarth@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850672</commentid>
    <comment_count>9</comment_count>
      <attachid>192114</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-07 17:08:21 -0800</bug_when>
    <thetext>Comment on attachment 192114
Patch

I don&apos;t really understand what this patch is doing.  Should we have a test for this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850691</commentid>
    <comment_count>10</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-07 17:27:56 -0800</bug_when>
    <thetext>abarth@ sorry. I can ask vsevik if there is a reasonable way to test this stuff.

Whats basically happening is that we&apos;re calling into IDB from C++, bypassing V8 altogether. IDB&apos;s transaction state management (part of the stuff that auto-commits after a microtask) relies on the transaction being inactive as IDB starts to process them. Normally this happens as soon as you leave v8:

basically:
- script (V8) calls into IDB API - objects must be in an &apos;active&apos; state during the script.
- script finishes, tells IDB to deactivate objects
- IDB starts processing transactions, &apos;activating&apos; them as necessary. 

That 3rd step has a lot of ASSERTions around making sure that the transactions really are inactive, otherwise something has gone horribly wrong.

This bug makes it so that the inspector can call into IDB and the behavior stays the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852318</commentid>
    <comment_count>11</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-03-11 08:12:05 -0700</bug_when>
    <thetext>I assume this is the same issue as https://bugs.webkit.org/show_bug.cgi?id=101618 ?
If so, it is already (implicitly) covered with tests, we just need to adjust the expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852472</commentid>
    <comment_count>12</comment_count>
      <attachid>192509</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-11 11:00:13 -0700</bug_when>
    <thetext>Created attachment 192509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852475</commentid>
    <comment_count>13</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-11 11:03:07 -0700</bug_when>
    <thetext>abarth@ - And here is a patch with a Layout Test. I&apos;m following the existing patterns in the inspector of firing an event (the inspector has its own event-dispatching system) 

The test now selects (see &apos;objectStoreElement.select()&apos;) the objectStore, which is the user interaction that will cause IndexedDB to fire an assertion.

I&apos;m working on a whole series of features to the inspector, so I have actual, new tests coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852508</commentid>
    <comment_count>14</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-11 11:30:00 -0700</bug_when>
    <thetext>vsevik@ - I&apos;d say this is kind of a dupe yes - but it is not implicitly covered by tests - database-data.html does not test this a best as I can tell.

*** This bug has been marked as a duplicate of bug 101618 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192098</attachid>
            <date>2013-03-07 15:39:13 -0800</date>
            <delta_ts>2013-03-07 17:03:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111784-20130307153517.patch</filename>
            <type>text/plain</type>
            <size>2212</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGYzZTA0NzcyYzM0NDVh
YmFlYmIxYzQxYThiNjkyNDFhZjFkZTczMS4uODA5YjExYWU5MGUzYmEzOGZhZmU0MGEwM2Q4NDEx
ZTQ2MzJmMjBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAzLTA3ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnNwZWN0b3I6IGFj
dGl2YXRlL2RlYWN0aXZhdGUgSW5kZXhlZERCIHRyYW5zYWN0aW9ucyB3aGVuIGluc3BlY3Rpbmcg
SURCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE3
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
VjhSZWN1cnNpb25TY29wZSBpcyB0aGUgbWVhbnMgYnkgd2hpY2ggdGhlIHJlZ3VsYXIgZXZlbnQg
bG9vcAorICAgICAgICBhY3RpdmF0ZXMvZGVhY3RpdmF0ZXMgSURCIHRyYW5zYWN0aW9ucyBiZXR3
ZWVuIG1pY3JvdGFza3MuIFRoaXMKKyAgICAgICAgbWFrZXMgc3VyZSB0aGF0IGFueSBvcGVyYXRp
b25zIHBlcmZvcm1lZCBvbiBJbmRleGVkREIgaGF2ZQorICAgICAgICBzdWNoIGEgc2NvcGUsIHN1
Y2ggdGhhdCB0cmFuc2FjdGlvbnMgY2FuIGNvbW1pdCBjb3JyZWN0bHkuLgorCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorCiAyMDEzLTAzLTA1ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBidWlsZGZpeCBhZnRlciByMTQ0Nzg3LiBBZGQgbWlzc2luZyBV
U0UoR1JBUEhJQ1NfU1VSRkFDRSkgZ3VhcmRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggNTdjNjcyMWIxMmFhNWFi
MzkzZTk3N2Q2MzU5ZGI4ZTg2NTQ5ZWU4Yi4uZjExYjc3NmZlOWFkY2E2YzI0NGVkZjc4NGYwMjNk
MWZiNDJhYzYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC02NCw2ICs2NCw5IEBACiAjaW5jbHVkZSAiSW5zcGVj
dG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCisjaWYgVVNFKFY4KQorI2luY2x1ZGUgIlY4UmVjdXJzaW9uU2Nv
cGUuaCIKKyNlbmRpZgogCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC0xNjgsNyArMTcx
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gdGhpcyA9PSAmb3RoZXI7CiAgICAgfQogCi0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVu
dCogZXZlbnQpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV2ZW50KiBldmVudCkgT1ZFUlJJREUKICAgICB7CiAg
ICAgICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQpIHsK
ICAgICAgICAgICAgIG1fZXhlY3V0YWJsZVdpdGhEYXRhYmFzZS0+cmVxdWVzdENhbGxiYWNrKCkt
PnNlbmRGYWlsdXJlKCJVbmV4cGVjdGVkIGV2ZW50IHR5cGUuIik7CkBAIC0xODcsNiArMTkwLDkg
QEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyNpZiBVU0UoVjgp
CisgICAgICAgIFY4UmVjdXJzaW9uU2NvcGUgaW5uZXJTY29wZShjb250ZXh0KTsKKyNlbmRpZgog
ICAgICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNlID0gcmVxdWVzdFJlc3VsdC0+
aWRiRGF0YWJhc2UoKTsKICAgICAgICAgbV9leGVjdXRhYmxlV2l0aERhdGFiYXNlLT5leGVjdXRl
KGlkYkRhdGFiYXNlKTsKICAgICAgICAgaWRiRGF0YWJhc2UtPmNsb3NlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192114</attachid>
            <date>2013-03-07 17:03:38 -0800</date>
            <delta_ts>2013-03-11 11:00:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111784-20130307165941.patch</filename>
            <type>text/plain</type>
            <size>1747</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGYzZTA0NzcyYzM0NDVh
YmFlYmIxYzQxYThiNjkyNDFhZjFkZTczMS4uMzRmMjk1MWIyMzZlZTYxYjg0MjE3OTA3ZTFlOWFl
M2ZlM2MxYzE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAzLTA3ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnNwZWN0b3I6IGFj
dGl2YXRlL2RlYWN0aXZhdGUgSW5kZXhlZERCIHRyYW5zYWN0aW9ucyB3aGVuIGluc3BlY3Rpbmcg
SURCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE3
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWFj
dGl2YXRlIHRyYW5zYWN0aW9ucyBjcmVhdGVkIGJ5IHRoZSBpbnNwZWN0b3IsIGJlZm9yZQorICAg
ICAgICB0aGV5IGFyZSByZWFjdGl2YXRlZCBieSBJbmRleGVkREIuIFRoaXMgcHV0cyB0cmFuc2Fj
dGlvbnMKKyAgICAgICAgaW4gYW4gaWRlbnRpY2FsIHN0YXRlIGFzIHdoZW4gdGhleSBhcmUgY3Jl
YXRlZCBieSBzY3JpcHRzLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWRE
QkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEzLTAzLTA1ICBDc2FiYSBPc3p0
cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZGZp
eCBhZnRlciByMTQ0Nzg3LiBBZGQgbWlzc2luZyBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkgZ3VhcmRz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWRE
QkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJB
Z2VudC5jcHAKaW5kZXggNTdjNjcyMWIxMmFhNWFiMzkzZTk3N2Q2MzU5ZGI4ZTg2NTQ5ZWU4Yi4u
NjcwNjIwOGMxMzJjY2RmNDNkMTY2NDY1NmI3NDdmNjhkZDYxYTEzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC01
NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKICNpbmNsdWRlICJJREJPYmpl
Y3RTdG9yZS5oIgogI2luY2x1ZGUgIklEQk9wZW5EQlJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJQ
ZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHQuaCIKQEAg
LTE4OSw2ICsxOTAsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgUmVmUHRyPElEQkRhdGFiYXNlPiBp
ZGJEYXRhYmFzZSA9IHJlcXVlc3RSZXN1bHQtPmlkYkRhdGFiYXNlKCk7CiAgICAgICAgIG1fZXhl
Y3V0YWJsZVdpdGhEYXRhYmFzZS0+ZXhlY3V0ZShpZGJEYXRhYmFzZSk7CisgICAgICAgIElEQlBl
bmRpbmdUcmFuc2FjdGlvbk1vbml0b3I6OmRlYWN0aXZhdGVOZXdUcmFuc2FjdGlvbnMoKTsKICAg
ICAgICAgaWRiRGF0YWJhc2UtPmNsb3NlKCk7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192509</attachid>
            <date>2013-03-11 11:00:13 -0700</date>
            <delta_ts>2013-03-11 11:30:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111784-20130311105613.patch</filename>
            <type>text/plain</type>
            <size>9436</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBkNjM0MGRhZGJiOTc2
OTZkMDJlMjYxYmZlOWU4ZjVjNzc3YjM3Ni4uZTFjNjkyMzlkMjA0ZjU0MDAxZDkzMjY2NzA1NTc3
YTVkYTlkZWJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTExICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnNwZWN0b3I6IGFj
dGl2YXRlL2RlYWN0aXZhdGUgSW5kZXhlZERCIHRyYW5zYWN0aW9ucyB3aGVuIGluc3BlY3Rpbmcg
SURCCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE3
ODQKKworICAgICAgICBEZWFjdGl2YXRlIHRyYW5zYWN0aW9ucyBjcmVhdGVkIGJ5IHRoZSBpbnNw
ZWN0b3IsIGJlZm9yZQorICAgICAgICB0aGV5IGFyZSByZWFjdGl2YXRlZCBieSBJbmRleGVkREIu
IFRoaXMgcHV0cyB0cmFuc2FjdGlvbnMKKyAgICAgICAgaW4gYW4gaWRlbnRpY2FsIHN0YXRlIGFz
IHdoZW4gdGhleSBhcmUgY3JlYXRlZCBieSBzY3JpcHRzLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IE1vZGlmaWVkIGh0dHAvdGVzdHMvaW5z
cGVjdG9yL2luZGV4ZWRkYi9yZXNvdXJjZXMtcGFuZWwuaHRtbCAKKyAgICAgICAgdG8gc2VsZWN0
IGFuZCBvYmplY3Qgc3RvcmUgYW5kIHdhaXQgZm9yIGl0IHRvIGxvYWQuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOiBNYWtlIHRyYW5zYWN0aW9ucyBp
bmFjdGl2ZSB1cG9uIGxlYXZpbmcgdGhlIGluc3BlY3RvciBjb2RlLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbmRleGVkREJNb2RlbC5qczogQWRk
IG5ldyBldmVudCB0eXBlLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnBy
b3RvdHlwZS5sb2FkZWRDYWxsYmFjayk6IERpc3BhdGNoIGFuIGV2ZW50IHdoZW5ldmVyIHRoZSBj
dXJzb3IgaGFzIGZpbmlzaGVkIGxvYWRpbmcuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmRleGVkREJUcmVl
RWxlbWVudC5wcm90b3R5cGUuZmluZERhdGFiYXNlVHJlZUVsZW1lbnQpOiBSZW5hbWVkIGZyb20g
X2lkYkRhdGFiYXNlVHJlZUVsZW1lbnQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSURCRGF0YWJh
c2VUcmVlRWxlbWVudC5wcm90b3R5cGUuZmluZE9iamVjdFN0b3JlVHJlZUVsZW1lbnQpOiBOZXcg
dG8gZXhwb3NlIGZpbmRpbmcgb2JqZWN0U3RvcmVzIHRyZWUgbm9kZXMgYnkgbmFtZS4KKwogMjAx
My0wMy0xMCAgTWF0dCBGYWxrZW5oYWdlbiAgPGZhbGtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgSW1wbGVtZW50IGluZXJ0IHN1YnRyZWVzIG5lZWRlZCBmb3IgbW9kYWwgPGRpYWxvZz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
Y3BwCmluZGV4IDU3YzY3MjFiMTJhYTVhYjM5M2U5NzdkNjM1OWRiOGU4NjU0OWVlOGIuLjY3MDYy
MDhjMTMyY2NkZjQzZDE2NjQ2NTZiNzQ3ZjY4ZGQ2MWExM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNTUsNiAr
NTUsNyBAQAogI2luY2x1ZGUgIklEQk1ldGFkYXRhLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3Rv
cmUuaCIKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCUGVuZGlu
Z1RyYW5zYWN0aW9uTW9uaXRvci5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRl
ICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCkBAIC0xODks
NiArMTkwLDcgQEAgcHVibGljOgogCiAgICAgICAgIFJlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0
YWJhc2UgPSByZXF1ZXN0UmVzdWx0LT5pZGJEYXRhYmFzZSgpOwogICAgICAgICBtX2V4ZWN1dGFi
bGVXaXRoRGF0YWJhc2UtPmV4ZWN1dGUoaWRiRGF0YWJhc2UpOworICAgICAgICBJREJQZW5kaW5n
VHJhbnNhY3Rpb25Nb25pdG9yOjpkZWFjdGl2YXRlTmV3VHJhbnNhY3Rpb25zKCk7CiAgICAgICAg
IGlkYkRhdGFiYXNlLT5jbG9zZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmRleGVkREJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSW5kZXhlZERCTW9kZWwuanMKaW5kZXggYTUyNTdhMjRiY2Jj
MzhkYjQ4ZjQ3MjYyOWJmMzBiMTNiMTA5NmFjNC4uZDdjZWQ1MTYyNjgyNDlkMjI0OTFjMDg0NzJl
Zjk0ZTRjMmNmYzE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9JbmRleGVkREJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0luZGV4ZWREQk1vZGVsLmpzCkBAIC0xMzUsNyArMTM1LDggQEAgV2ViSW5zcGVjdG9y
LkluZGV4ZWREQk1vZGVsLmtleVBhdGhTdHJpbmdGcm9tSURCS2V5UGF0aCA9IGZ1bmN0aW9uKGlk
YktleVBhdGgpCiBXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRXZlbnRUeXBlcyA9IHsKICAg
ICBEYXRhYmFzZUFkZGVkOiAiRGF0YWJhc2VBZGRlZCIsCiAgICAgRGF0YWJhc2VSZW1vdmVkOiAi
RGF0YWJhc2VSZW1vdmVkIiwKLSAgICBEYXRhYmFzZUxvYWRlZDogIkRhdGFiYXNlTG9hZGVkIgor
ICAgIERhdGFiYXNlTG9hZGVkOiAiRGF0YWJhc2VMb2FkZWQiLAorICAgIE9iamVjdFN0b3JlRGF0
YUxvYWRlZDogIk9iamVjdFN0b3JlRGF0YUxvYWRlZCIsCiB9CiAKIFdlYkluc3BlY3Rvci5JbmRl
eGVkREJNb2RlbC5wcm90b3R5cGUgPSB7CkBAIC0yODksNyArMjkwLDcgQEAgV2ViSW5zcGVjdG9y
LkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghdGhpcy5fZGF0
YWJhc2VOYW1lc0J5U2VjdXJpdHlPcmlnaW5bZGF0YWJhc2VJZC5zZWN1cml0eU9yaWdpbl0pCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdmFyIGRhdGFiYXNlTW9kZWwgPSBu
ZXcgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLkRhdGFiYXNlKGRhdGFiYXNlSWQsIGRhdGFi
YXNlV2l0aE9iamVjdFN0b3Jlcy52ZXJzaW9uLCBkYXRhYmFzZVdpdGhPYmplY3RTdG9yZXMuaW50
VmVyc2lvbik7Ci0gICAgICAgICAgICB0aGlzLl9kYXRhYmFzZXMucHV0KGRhdGFiYXNlSWQsIGRh
dGFiYXNlTW9kZWwpOyAKKyAgICAgICAgICAgIHRoaXMuX2RhdGFiYXNlcy5wdXQoZGF0YWJhc2VJ
ZCwgZGF0YWJhc2VNb2RlbCk7CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFi
YXNlV2l0aE9iamVjdFN0b3Jlcy5vYmplY3RTdG9yZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAg
ICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYXRhYmFzZVdpdGhPYmplY3RTdG9yZXMub2JqZWN0
U3RvcmVzW2ldOwogICAgICAgICAgICAgICAgIHZhciBvYmplY3RTdG9yZUlEQktleVBhdGggPSBX
ZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuaWRiS2V5UGF0aEZyb21LZXlQYXRoKG9iamVjdFN0
b3JlLmtleVBhdGgpOwpAQCAtMzE5LDcgKzMyMCwxNCBAQCBXZWJJbnNwZWN0b3IuSW5kZXhlZERC
TW9kZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIGxvYWRPYmplY3RTdG9yZURhdGE6IGZ1
bmN0aW9uKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlTmFtZSwgaWRiS2V5UmFuZ2UsIHNraXBDb3Vu
dCwgcGFnZVNpemUsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVxdWVzdERhdGEo
ZGF0YWJhc2VJZCwgZGF0YWJhc2VJZC5uYW1lLCBvYmplY3RTdG9yZU5hbWUsICIiLCBpZGJLZXlS
YW5nZSwgc2tpcENvdW50LCBwYWdlU2l6ZSwgY2FsbGJhY2spOworICAgICAgICB2YXIgZGF0YWJh
c2VNb2RlbCA9IHRoaXMuX2RhdGFiYXNlcy5nZXQoZGF0YWJhc2VJZCk7CisgICAgICAgIHZhciBv
YmplY3RTdG9yZU1vZGVsID0gZGF0YWJhc2VNb2RlbC5vYmplY3RTdG9yZXNbb2JqZWN0U3RvcmVO
YW1lXTsKKworICAgICAgICBmdW5jdGlvbiBsb2FkZWRDYWxsYmFjayhlbnRyaWVzLCBoYXNNb3Jl
KSB7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuSW5kZXhlZERCTW9kZWwuRXZlbnRUeXBlcy5PYmplY3RTdG9yZURhdGFMb2FkZWQsIG9iamVj
dFN0b3JlTW9kZWwpOworICAgICAgICAgICAgY2FsbGJhY2soZW50cmllcywgaGFzTW9yZSk7Cisg
ICAgICAgIH0KKyAgICAgICAgdGhpcy5fcmVxdWVzdERhdGEoZGF0YWJhc2VJZCwgZGF0YWJhc2VJ
ZC5uYW1lLCBvYmplY3RTdG9yZU5hbWUsICIiLCBpZGJLZXlSYW5nZSwgc2tpcENvdW50LCBwYWdl
U2l6ZSwgbG9hZGVkQ2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAt
MzU5LDkgKzM2NywxMCBAQCBXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkluZGV4ZWREQkFnZW50IGVycm9yOiAi
ICsgZXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIAorCiAgICAgICAgICAgICBpZiAoIXRoaXMuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5
T3JpZ2luW2RhdGFiYXNlSWQuc2VjdXJpdHlPcmlnaW5dKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKKwogICAgICAgICAgICAgdmFyIGVudHJpZXMgPSBbXTsKICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgZGF0YUVudHJpZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2
YXIga2V5ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChkYXRhRW50cmll
c1tpXS5rZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VzUGFuZWwuanMKaW5kZXggODgwNjI2OWNjODlkMmMxNTViYWYzYWNlNmFhMDQ0MmJm
ODA0OGM2OC4uYTdjZjc0ZTdhNTczMGFiMTUyOWFlYzY2YjA2ODBhN2Q1OTBiZmJmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVs
LmpzCkBAIC0xNDg2LDcgKzE0ODYsNyBAQCBXZWJJbnNwZWN0b3IuSW5kZXhlZERCVHJlZUVsZW1l
bnQucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGRhdGFiYXNlSWQgPSAvKiogQHR5
cGUge1dlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5EYXRhYmFzZUlkfSAqLyAoZXZlbnQuZGF0
YSk7CiAKLSAgICAgICAgdmFyIGlkYkRhdGFiYXNlVHJlZUVsZW1lbnQgPSB0aGlzLl9pZGJEYXRh
YmFzZVRyZWVFbGVtZW50KGRhdGFiYXNlSWQpCisgICAgICAgIHZhciBpZGJEYXRhYmFzZVRyZWVF
bGVtZW50ID0gdGhpcy5maW5kRGF0YWJhc2VUcmVlRWxlbWVudChkYXRhYmFzZUlkKTsKICAgICAg
ICAgaWYgKCFpZGJEYXRhYmFzZVRyZWVFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC0xNTAyLDcgKzE1MDIsNyBAQCBXZWJJbnNwZWN0b3IuSW5kZXhlZERCVHJlZUVsZW1lbnQucHJv
dG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGRhdGFiYXNlID0gLyoqIEB0eXBlIHtXZWJJ
bnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRGF0YWJhc2V9ICovIChldmVudC5kYXRhKTsKIAotICAg
ICAgICB2YXIgaWRiRGF0YWJhc2VUcmVlRWxlbWVudCA9IHRoaXMuX2lkYkRhdGFiYXNlVHJlZUVs
ZW1lbnQoZGF0YWJhc2UuZGF0YWJhc2VJZCkKKyAgICAgICAgdmFyIGlkYkRhdGFiYXNlVHJlZUVs
ZW1lbnQgPSB0aGlzLmZpbmREYXRhYmFzZVRyZWVFbGVtZW50KGRhdGFiYXNlLmRhdGFiYXNlSWQp
OwogICAgICAgICBpZiAoIWlkYkRhdGFiYXNlVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1
cm47CiAKQEAgLTE1MTMsNyArMTUxMyw3IEBAIFdlYkluc3BlY3Rvci5JbmRleGVkREJUcmVlRWxl
bWVudC5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuSW5kZXhlZERC
TW9kZWwuRGF0YWJhc2VJZH0gZGF0YWJhc2VJZAogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rv
ci5JREJEYXRhYmFzZVRyZWVFbGVtZW50fQogICAgICAqLwotICAgIF9pZGJEYXRhYmFzZVRyZWVF
bGVtZW50OiBmdW5jdGlvbihkYXRhYmFzZUlkKQorICAgIGZpbmREYXRhYmFzZVRyZWVFbGVtZW50
OiBmdW5jdGlvbihkYXRhYmFzZUlkKQogICAgIHsKICAgICAgICAgdmFyIGluZGV4ID0gLTE7CiAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5faWRiRGF0YWJhc2VUcmVlRWxlbWVudHMu
bGVuZ3RoOyArK2kpIHsKQEAgLTE2NDEsNiArMTY0MSwxMyBAQCBXZWJJbnNwZWN0b3IuSURCRGF0
YWJhc2VUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAq
IEBwYXJtYSB7c3RyaW5nfSBvYmplY3RTdG9yZU5hbWUKKyAgICAgKi8KKyAgICBmaW5kT2JqZWN0
U3RvcmVUcmVlRWxlbWVudDogZnVuY3Rpb24ob2JqZWN0U3RvcmVOYW1lKSB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9pZGJPYmplY3RTdG9yZVRyZWVFbGVtZW50c1tvYmplY3RTdG9yZU5hbWVdOwor
ICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5JbmRleGVkREJN
b2RlbC5EYXRhYmFzZX0gZGF0YWJhc2UKICAgICAgKi8KICAgICB1cGRhdGU6IGZ1bmN0aW9uKGRh
dGFiYXNlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGVmYmE5MjYyZTg3OGJjYzQ4OGQyODgwMTc4MjdiNGMyM2Y1YTY5MDUu
LmUzODk3NTI4YjgxZjZiMzNiYmYyOThhYjQxMGUwNjNmNGVlMWQ0OTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxMy0wMy0xMSAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgSW5zcGVjdG9yOiBhY3RpdmF0ZS9kZWFjdGl2YXRlIEluZGV4ZWREQiB0cmFu
c2FjdGlvbnMgd2hlbiBpbnNwZWN0aW5nIElEQgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNzg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvcmVz
b3VyY2VzLXBhbmVsLmh0bWw6IEFmdGVyIHRoZSBvYmplY3RTdG9yZSBpcyBjcmVhdGVkLCBzZWxl
Y3QgaXQgdG8gdGVzdCBsb2FkaW5nLgorCiAyMDEzLTAzLTEwICBNYXR0IEZhbGtlbmhhZ2VuICA8
ZmFsa2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgaW5lcnQgc3VidHJlZXMg
bmVlZGVkIGZvciBtb2RhbCA8ZGlhbG9nPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL3Jlc291cmNlcy1wYW5lbC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL3Jlc291cmNlcy1wYW5lbC5odG1sCmlu
ZGV4IGE1NjcxNTFlYjdjZTFiYmMzY2I3ZTg1OWI3NmE3YzBlMGJkMjNhZmMuLmU4NDYzZjYxODQy
MzZlNWUxZjk4OTVlMDA2Yzk0OWE4N2U5MzZkZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9yZXNvdXJjZXMtcGFuZWwuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvcmVzb3VyY2VzLXBhbmVs
Lmh0bWwKQEAgLTgxLDEwICs4MSwyMSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuaW5kZXhlZERCTGlzdFRyZWVFbGVtZW50LnJlZnJlc2hJ
bmRleGVkREIoKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBkYXRhYmFzZUxvYWRlZCgpCisgICAg
ZnVuY3Rpb24gZGF0YWJhc2VMb2FkZWQoZXZlbnQpCiAgICAgewogICAgICAgICBpbmRleGVkREJN
b2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5FdmVu
dFR5cGVzLkRhdGFiYXNlTG9hZGVkLCBkYXRhYmFzZUxvYWRlZCk7CiAgICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcEluZGV4ZWREQlRyZWUoKTsKKyAgICAgICAgdmFyIGRhdGFiYXNlID0gLyoqIEB0
eXBlIHtXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwuRGF0YWJhc2V9ICovIChldmVudC5kYXRh
KTsKKyAgICAgICAgdmFyIGluZGV4ZWREQlRyZWUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291
cmNlcy5pbmRleGVkREJMaXN0VHJlZUVsZW1lbnQ7CisgICAgICAgIHZhciBkYXRhYmFzZVRyZWVF
bGVtZW50ID0gaW5kZXhlZERCVHJlZS5maW5kRGF0YWJhc2VUcmVlRWxlbWVudChkYXRhYmFzZS5k
YXRhYmFzZUlkKTsKKyAgICAgICAgdmFyIG9iamVjdFN0b3JlRWxlbWVudCA9IGRhdGFiYXNlVHJl
ZUVsZW1lbnQuZmluZE9iamVjdFN0b3JlVHJlZUVsZW1lbnQob2JqZWN0U3RvcmVOYW1lKTsKKyAg
ICAgICAgb2JqZWN0U3RvcmVFbGVtZW50LnNlbGVjdCgpOworCisgICAgICAgIGluZGV4ZWREQk1v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLkV2ZW50VHlw
ZXMuT2JqZWN0U3RvcmVEYXRhTG9hZGVkLCBvYmplY3RTdG9yZURhdGFMb2FkZWQpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIG9iamVjdFN0b3JlRGF0YUxvYWRlZChvYmplY3RTdG9yZU1vZGVsKSB7
CisgICAgICAgIGluZGV4ZWREQk1vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkluZGV4ZWREQk1vZGVsLkV2ZW50VHlwZXMuT2JqZWN0U3RvcmVEYXRhTG9hZGVkKTsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5hdmlnYXRlZCB0byBhbm90aGVyIHNlY3VyaXR5
IG9yaWdpbi4iKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5uYXZpZ2F0ZSh3aXRob3V0SW5kZXhl
ZERCVVJMLCBuYXZpZ2F0ZWRBd2F5KTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>