Thanks Bastian -- let me know if you have any questions while working thru
the code.

On Mon, Feb 28, 2011 at 1:24 PM, Bastian Hofmann
<[email protected]>wrote:

> Ok found the error, the php shindig automatically adds some core features
> as a dependency to every feature but the ones beginning with "core", "glob"
> and "shindig.auth". I didn't see this before because I just dumped the
> resolved dependencies.
> I will look how this is handled in the Java version and refactor it
> accordingly.
>
> Thanks
>
> -- Bastian
>
> 2011/2/28 John Hjelmstad <[email protected]>
>
> Hi Bastian:
>>
>> Odd, feature=taming doesn't appear to depend on anything for me:
>>
>> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/taming/feature.xml
>>
>> Can you point out the loop you're seeing?
>>
>> Thx,
>> John
>>
>> On Mon, Feb 28, 2011 at 6:18 AM, Bastian Hofmann <
>> [email protected]> wrote:
>>
>>> Hi,
>>>
>>> since this commit the PHP version produces the following error:
>>>
>>> "Sorting feature dependence failed: it contains ring!"
>>>
>>> because some features now depend on the taiming feature while the taiming
>>> feature seems to depend on these features in return.
>>>
>>> Is dependency resolving implemented differently in Java and why do we
>>> have
>>> such a dependency circle now?
>>>
>>> -- Bastian
>>>
>>> 2011/2/26 <[email protected]>
>>>
>>> > Author: mhermanto
>>> > Date: Sat Feb 26 02:24:21 2011
>>> > New Revision: 1074780
>>> >
>>> > URL: http://svn.apache.org/viewvc?rev=1074780&view=rev
>>> > Log:
>>> > Globalize/feature caja/tamings variables.
>>> > http://codereview.appspot.com/4187052/
>>> >
>>> > Modified:
>>> >
>>> >
>>>  
>>> shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/feature.xml
>>> >
>>> >
>>>  shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/taming.js
>>> >
>>> >
>>>  shindig/trunk/extras/src/main/javascript/features-extras/wave/feature.xml
>>> >
>>>  shindig/trunk/extras/src/main/javascript/features-extras/wave/taming.js
>>> >    shindig/trunk/features/src/main/javascript/features/caja/feature.xml
>>> >    shindig/trunk/features/src/main/javascript/features/caja/taming.js
>>> >
>>> >
>>>  
>>> shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/feature.xml
>>> >
>>> >
>>>  
>>> shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/taming.js
>>> >    shindig/trunk/features/src/main/javascript/features/
>>> core.io/feature.xml
>>> >    shindig/trunk/features/src/main/javascript/features/
>>> core.io/taming.js
>>> >
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/core.json/feature.xml
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/core.json/taming.js
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/core.log/feature.xml
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/core.log/taming.js
>>> >
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/core.prefs/feature.xml
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/core.prefs/taming.js
>>> >
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/core.util/feature.xml
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/core.util/taming.js
>>> >
>>> >
>>>  
>>> shindig/trunk/features/src/main/javascript/features/dynamic-height/feature.xml
>>> >
>>> >
>>>  
>>> shindig/trunk/features/src/main/javascript/features/dynamic-height/taming.js
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/flash/feature.xml
>>> >    shindig/trunk/features/src/main/javascript/features/flash/taming.js
>>> >
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/minimessage/feature.xml
>>> >
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/minimessage/taming.js
>>> >
>>> >
>>>  
>>> shindig/trunk/features/src/main/javascript/features/opensocial-data-context/feature.xml
>>> >
>>> >
>>>  
>>> shindig/trunk/features/src/main/javascript/features/opensocial-data-context/taming.js
>>> >
>>> >
>>>  
>>> shindig/trunk/features/src/main/javascript/features/opensocial-reference/feature.xml
>>> >
>>> >
>>>  
>>> shindig/trunk/features/src/main/javascript/features/opensocial-reference/taming.js
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/osapi/feature.xml
>>> >    shindig/trunk/features/src/main/javascript/features/osapi/taming.js
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/pubsub/feature.xml
>>> >    shindig/trunk/features/src/main/javascript/features/pubsub/taming.js
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/settitle/feature.xml
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/settitle/taming.js
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/skins/feature.xml
>>> >    shindig/trunk/features/src/main/javascript/features/skins/taming.js
>>> >    shindig/trunk/features/src/main/javascript/features/tabs/feature.xml
>>> >    shindig/trunk/features/src/main/javascript/features/tabs/taming.js
>>> >    shindig/trunk/features/src/main/javascript/features/taming/taming.js
>>> >
>>>  shindig/trunk/features/src/main/javascript/features/views/feature.xml
>>> >    shindig/trunk/features/src/main/javascript/features/views/taming.js
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@ specific language governing permissions
>>> >  <feature>
>>> >   <name>pubsub-2</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>org.openajax.hub-2.0.5</dependency>
>>> >   <gadget>
>>> >     <script src="pubsub-2.js"/>
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/taming.js
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/extras/src/main/javascript/features-extras/pubsub-2/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -22,7 +22,6 @@
>>> >  * Tame and expose core gadgets.pubsub.* API to cajoled gadgets
>>> >  */
>>> >  // XXX not sure what to do here
>>> > -//var tamings___ = tamings___ || [];
>>> >  //tamings___.push(function(imports) {
>>> >  //  caja___.whitelistFuncs([
>>> >  //    [gadgets.pubsub, 'publish'],
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/extras/src/main/javascript/features-extras/wave/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/javascript/features-extras/wave/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/extras/src/main/javascript/features-extras/wave/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/extras/src/main/javascript/features-extras/wave/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -20,6 +20,7 @@ specific language governing permissions
>>> >   <name>wave</name>
>>> >   <dependency>dynamic-height</dependency>
>>> >   <dependency>locked-domain</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>rpc</dependency>
>>> >   <gadget>
>>> >     <script src="base.js"/>
>>> >
>>> > Modified:
>>> > shindig/trunk/extras/src/main/javascript/features-extras/wave/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/extras/src/main/javascript/features-extras/wave/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/extras/src/main/javascript/features-extras/wave/taming.js
>>> > (original)
>>> > +++
>>> shindig/trunk/extras/src/main/javascript/features-extras/wave/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,9 +19,6 @@
>>> >  * @fileoverview  Tame and expose wave.* API to cajoled gadgets.
>>> >  */
>>> >
>>> > -var tamings___ = tamings___ || [];
>>> > -var caja___;
>>> > -var ___;
>>> >  tamings___.push(function(imports) {
>>> >   // wave.Mode is an object literal that holds only constants
>>> >   ___.grantRead(wave, 'Mode');
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/caja/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/caja/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/caja/feature.xml
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/caja/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -21,6 +21,7 @@ The javascript referenced here should be
>>> >  <feature>
>>> >   <name>caja</name>
>>> >   <dependency>core.io</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <gadget>
>>> >     <script src="res://com/google/caja/plugin/domita-minified.js"/>
>>> >     <script src="caja.js"/>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/caja/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/caja/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > --- shindig/trunk/features/src/main/javascript/features/caja/taming.js
>>> > (original)
>>> > +++ shindig/trunk/features/src/main/javascript/features/caja/taming.js
>>> Sat
>>> > Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,7 @@
>>> >  * This file tames the APIs that are exposed to a gadget.
>>> >  */
>>> >
>>> > -var caja___ = (function() {
>>> > +caja___ = (function() {
>>> >   // URI policy: Rewrites all uris in a cajoled gadget
>>> >   var uriCallback = {
>>> >     rewrite: function rewrite(uri, mimeTypes) {
>>> > @@ -108,7 +108,6 @@ var caja___ = (function() {
>>> >  })();
>>> >
>>> >  // Expose alert and console.log to cajoled programs
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   imports.outers.alert = function(msg) { alert(msg); };
>>> >   ___.grantFunc(imports.outers, 'alert');
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -18,6 +18,7 @@ specific language governing permissions
>>> >  -->
>>> >  <feature>
>>> >   <name>com.google.gadgets.analytics</name>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>core.legacy</dependency>
>>> >   <gadget>
>>> >     <script inline="true" src="http://www.google.com/ig/lib/libga.js
>>> "/>
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/taming.js
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/com.google.gadgets.analytics/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose Google Analytics API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistCtors([
>>> >     [gadgets, 'analytics', Object]
>>> >
>>> > Modified: shindig/trunk/features/src/main/javascript/features/
>>> > core.io/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.io/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > --- shindig/trunk/features/src/main/javascript/features/
>>> > core.io/feature.xml (original)
>>> > +++ shindig/trunk/features/src/main/javascript/features/
>>> > core.io/feature.xml Sat Feb 26 02:24:21 2011
>>> > @@ -29,6 +29,7 @@
>>> >  -->
>>> >   <name>core.io</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>shindig.auth</dependency>
>>> >   <dependency>core.config</dependency>
>>> >   <dependency>core.json</dependency>
>>> >
>>> > Modified: shindig/trunk/features/src/main/javascript/features/
>>> > core.io/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.io/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > --- shindig/trunk/features/src/main/javascript/features/
>>> core.io/taming.js(original)
>>> > +++ shindig/trunk/features/src/main/javascript/features/
>>> core.io/taming.jsSat Feb 26 02:24:21 2011
>>>
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.io.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistFuncs([
>>> >     [gadgets.io, 'encodeValues'],
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.json/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.json/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.json/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.json/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@
>>> >  <feature>
>>> >   <name>core.json</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <gadget>
>>> >     <script src="json-native.js"/>
>>> >     <script src="json-jsimpl.js"/>
>>> > @@ -34,7 +35,6 @@
>>> >     <script src="json-native.js"/>
>>> >     <script src="json-jsimpl.js"/>
>>> >     <script src="json-flatten.js"/>
>>> > -    <script src="taming.js"/>
>>> >     <apis>
>>> >       <exports type="js">gadgets.json.flatten</exports>
>>> >       <exports type="js">gadgets.json.parse</exports>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/core.json/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.json/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/core.json/taming.js
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/core.json/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   ___.tamesTo(gadgets.json.stringify, safeJSON.stringify);
>>> >   ___.tamesTo(gadgets.json.parse, safeJSON.parse);
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.log/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.log/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.log/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.log/feature.xml Sat
>>> > Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@
>>> >  <feature>
>>> >   <name>core.log</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <gadget>
>>> >     <script src="log.js"/>
>>> >     <script src="taming.js"/>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/core.log/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.log/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/core.log/taming.js
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/core.log/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   ___.grantRead(gadgets.log, 'INFO');
>>> >   ___.grantRead(gadgets.log, 'WARNING');
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.prefs/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.prefs/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.prefs/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.prefs/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@
>>> >  <feature>
>>> >   <name>core.prefs</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>core.util</dependency>
>>> >   <gadget>
>>> >     <script src="prefs.js"/>
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.prefs/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.prefs/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.prefs/taming.js
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.prefs/taming.js Sat
>>> > Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistCtors([
>>> >     [gadgets, 'Prefs', Object]
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.util/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.util/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.util/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/core.util/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@
>>> >  <feature>
>>> >   <name>core.util</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>core.config</dependency>
>>> >   <dependency>core.util.urlparams</dependency>
>>> >   <gadget>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/core.util/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/core.util/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/core.util/taming.js
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/core.util/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistFuncs([
>>> >     [gadgets.util, 'escapeString'],
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/dynamic-height/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/dynamic-height/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/dynamic-height/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/dynamic-height/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@ specific language governing permissions
>>> >  <feature>
>>> >   <name>dynamic-height</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>dynamic-height.height</dependency>
>>> >   <dependency>dynamic-height.util</dependency>
>>> >   <dependency>rpc</dependency>
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/dynamic-height/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/dynamic-height/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/dynamic-height/taming.js
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/dynamic-height/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.window.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistFuncs([
>>> >     [gadgets.window, 'adjustHeight'],
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/flash/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/flash/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/flash/feature.xml
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/flash/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@ specific language governing permissions
>>> >  <feature>
>>> >   <name>flash</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>core.io</dependency>
>>> >   <gadget>
>>> >     <script src="flash.js"/>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/flash/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/flash/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > --- shindig/trunk/features/src/main/javascript/features/flash/taming.js
>>> > (original)
>>> > +++ shindig/trunk/features/src/main/javascript/features/flash/taming.js
>>> Sat
>>> > Feb 26 02:24:21 2011
>>> > @@ -21,8 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.flash.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> > -var bridge___;
>>> >
>>> >  tamings___.push(function(imports) {
>>> >   ___.tamesTo(gadgets.flash.embedFlash, (function() {
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/minimessage/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/minimessage/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/minimessage/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/minimessage/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@ specific language governing permissions
>>> >  <feature>
>>> >   <name>minimessage</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>core.config</dependency>
>>> >   <gadget>
>>> >     <script src="minimessage.js"/>
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/minimessage/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/minimessage/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/minimessage/taming.js
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/minimessage/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -22,7 +22,6 @@
>>> >  * Tame and expose gadgets.MiniMessage.* API to cajoled gadgets
>>> >  */
>>> >
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistCtors([
>>> >     [gadgets, 'MiniMessage', Object]
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-data-context/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/opensocial-data-context/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-data-context/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-data-context/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@
>>> >  -->
>>> >  <feature>
>>> >   <name>opensocial-data-context</name>
>>> > +  <dependency>taming</dependency>
>>> >   <gadget>
>>> >     <script src="datacontext.js"></script>
>>> >     <script src="taming.js"></script>
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-data-context/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/opensocial-data-context/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-data-context/taming.js
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-data-context/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose the opensocial.data.DataContext API to cajoled
>>> gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistFuncs([
>>> >     [opensocial.data, 'getDataContext'],
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-reference/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/opensocial-reference/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-reference/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-reference/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@
>>> >  -->
>>> >  <feature>
>>> >   <name>opensocial-reference</name>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>core.util</dependency>
>>> >   <gadget>
>>> >     <script src="opensocial.js"/>
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-reference/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/opensocial-reference/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-reference/taming.js
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/opensocial-reference/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose opensocial.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   ___.grantRead(opensocial, 'CreateActivityPriority');
>>> >   ___.grantRead(opensocial, 'EscapeType');
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/osapi/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/osapi/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/osapi/feature.xml
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/osapi/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -20,6 +20,7 @@
>>> >  <feature>
>>> >   <name>osapi</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>shindig.auth</dependency>
>>> >   <dependency>core.config</dependency>
>>> >   <dependency>core.io</dependency>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/osapi/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/osapi/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > --- shindig/trunk/features/src/main/javascript/features/osapi/taming.js
>>> > (original)
>>> > +++ shindig/trunk/features/src/main/javascript/features/osapi/taming.js
>>> Sat
>>> > Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core osapi.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >
>>> >   ___.tamesTo(osapi.newBatch, ___.markFuncFreeze(function() {
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/pubsub/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/pubsub/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/pubsub/feature.xml
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/pubsub/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@ specific language governing permissions
>>> >  <feature>
>>> >   <name>pubsub</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>rpc</dependency>
>>> >   <gadget>
>>> >     <script src="pubsub.js"/>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/pubsub/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/pubsub/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/pubsub/taming.js
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/pubsub/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.pubsub.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistFuncs([
>>> >     [gadgets.pubsub, 'publish'],
>>> >
>>> > Modified:
>>> >
>>> shindig/trunk/features/src/main/javascript/features/settitle/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/settitle/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> >
>>> shindig/trunk/features/src/main/javascript/features/settitle/feature.xml
>>> > (original)
>>> > +++
>>> >
>>> shindig/trunk/features/src/main/javascript/features/settitle/feature.xml Sat
>>> > Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@ specific language governing permissions
>>> >  <feature>
>>> >   <name>settitle</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>rpc</dependency>
>>> >   <gadget>
>>> >     <script src="settitle.js"/>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/settitle/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/settitle/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/settitle/taming.js
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/settitle/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -22,7 +22,6 @@
>>> >  * Tame and expose gadgets.window.setTitle to cajoled gadgets
>>> >  */
>>> >
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistFuncs([
>>> >     [gadgets.window, 'setTitle']
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/skins/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/skins/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/skins/feature.xml
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/skins/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@ specific language governing permissions
>>> >  <feature>
>>> >   <name>skins</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>core.config</dependency>
>>> >   <dependency>core.util</dependency>
>>> >   <gadget>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/skins/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/skins/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > --- shindig/trunk/features/src/main/javascript/features/skins/taming.js
>>> > (original)
>>> > +++ shindig/trunk/features/src/main/javascript/features/skins/taming.js
>>> Sat
>>> > Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.skin.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistFuncs([
>>> >     [gadgets.skins, 'getProperty']
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/tabs/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/tabs/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/tabs/feature.xml
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/tabs/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -19,6 +19,7 @@ specific language governing permissions
>>> >  <feature>
>>> >   <name>tabs</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>core.prefs</dependency>
>>> >   <dependency>core.config</dependency>
>>> >   <gadget>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/tabs/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/tabs/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > --- shindig/trunk/features/src/main/javascript/features/tabs/taming.js
>>> > (original)
>>> > +++ shindig/trunk/features/src/main/javascript/features/tabs/taming.js
>>> Sat
>>> > Feb 26 02:24:21 2011
>>> > @@ -22,7 +22,6 @@
>>> >  * Tame and expose gadgets.Tabs and gadgets.TabSet API to cajoled
>>> gadgets
>>> >  */
>>> >
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistMeths([
>>> >     [gadgets.Tab, 'getCallback'],
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/taming/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/taming/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/taming/taming.js
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/taming/taming.js
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -20,16 +20,28 @@
>>> >  * @namespace The global safeJSON namespace
>>> >  * @type {Object}
>>> >  */
>>> > -var safeJSON = safeJSON || {};
>>> > +var safeJSON = window['safeJSON'];
>>> >
>>> >  /**
>>> >  * @namespace The global tamings___ namespace
>>> >  * @type {Array.<Function>}
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> > +var tamings___ = window['tamings___'] || [];
>>> > +
>>> > +/**
>>> > + * @namespace The global bridge___ namespace
>>> > + * @type {Object}
>>> > + */
>>> > +var bridge___;
>>> > +
>>> > +/**
>>> > + * @namespace The global caja___ namespace
>>> > + * @type {Object}
>>> > + */
>>> > +var caja = window['caja___'];
>>> >
>>> >  /**
>>> >  * @namespace The global ___ namespace
>>> >  * @type {Object}
>>> >  */
>>> > -var ___ = ___ || {};
>>> > +var ___ = window['___'];
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/views/feature.xml
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/views/feature.xml?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > ---
>>> shindig/trunk/features/src/main/javascript/features/views/feature.xml
>>> > (original)
>>> > +++
>>> shindig/trunk/features/src/main/javascript/features/views/feature.xml
>>> > Sat Feb 26 02:24:21 2011
>>> > @@ -25,6 +25,7 @@ A map of view names to view attributes.
>>> >  -->
>>> >   <name>views</name>
>>> >   <dependency>globals</dependency>
>>> > +  <dependency>taming</dependency>
>>> >   <dependency>core.config</dependency>
>>> >   <dependency>core.json</dependency>
>>> >   <dependency>core.util</dependency>
>>> >
>>> > Modified:
>>> > shindig/trunk/features/src/main/javascript/features/views/taming.js
>>> > URL:
>>> >
>>> http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/views/taming.js?rev=1074780&r1=1074779&r2=1074780&view=diff
>>> >
>>> >
>>> ==============================================================================
>>> > --- shindig/trunk/features/src/main/javascript/features/views/taming.js
>>> > (original)
>>> > +++ shindig/trunk/features/src/main/javascript/features/views/taming.js
>>> Sat
>>> > Feb 26 02:24:21 2011
>>> > @@ -21,7 +21,6 @@
>>> >  * @class
>>> >  * Tame and expose core gadgets.views.* API to cajoled gadgets
>>> >  */
>>> > -var tamings___ = tamings___ || [];
>>> >  tamings___.push(function(imports) {
>>> >   caja___.whitelistCtors([
>>> >     [gadgets.views, 'View', Object]
>>> >
>>> >
>>> >
>>>
>>
>>
>

Reply via email to