From 40616a17eab9daea73e17485a8ec3ae5755424eb Mon Sep 17 00:00:00 2001
From: Andrey Gershun
Date: Thu, 2 Apr 2015 18:47:50 +0300
Subject: [PATCH 1/6] Attach database with parameters for SQLite
---
CHANGELOG.md | 3 +++
alasql.js | 26 +++++++++++++++++---------
alasql.js.map | 2 +-
alasql.min.js | 4 ++--
console/alasql.min.js | 4 ++--
dist/alasql.js | 26 +++++++++++++++++---------
dist/alasql.js.map | 2 +-
dist/alasql.min.js | 4 ++--
src/76usedatabase.js | 4 ++--
src/90websql.js | 2 +-
src/91indexeddb.js | 2 +-
src/92localstorage.js | 2 +-
src/93sqlite.js | 14 +++++++++++---
src/94filestorage.js | 2 +-
14 files changed, 62 insertions(+), 35 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5fee3e0be1..39edc6d08d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# Changelog
+### 0.0.44 "Roma" (02.04.2015 - ...04.2015)
+* Added params to SQLite attached database: alasql('ATTACH SQLITE DATABASE a(?)',[event],cb);
+
### 0.0.43 "The Wall" (25.03.2015 - 01.04.2015)
* Created "develop" branch for git-flow
* Fixed GREATEST and LEAST() bugs
diff --git a/alasql.js b/alasql.js
index c0929abecb..28f0075073 100755
--- a/alasql.js
+++ b/alasql.js
@@ -9552,7 +9552,7 @@ yy.AttachDatabase.prototype.toString = function() {
if(args) {
s += '(';
if(args.length>0) {
- s += args.map(function(arg){ return arg.toJavaScript(); }).join(', ');
+ s += args.map(function(arg){ return arg.toString(); }).join(', ');
}
s += ')';
}
@@ -9566,7 +9566,7 @@ yy.AttachDatabase.prototype.execute = function (databaseid, params, cb) {
if(!alasql.engines[this.engineid]) {
throw new Error('Engine "'+this.engineid+'" is not defined.');
};
- var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, this.args, cb);
+ var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, this.args, params, cb);
return res;
};
@@ -11253,7 +11253,7 @@ WEBSQL.dropDatabase = function(databaseid){
throw new Error('This is impossible to drop WebSQL database.');
};
-WEBSQL.attachDatabase = function(databaseid, dbid, cb){
+WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb){
var res = 1;
if(alasql.databases[dbid]) {
throw new Error('Unable to attach database as "'+dbid+'" because it already exists');
@@ -11333,7 +11333,7 @@ IDB.dropDatabase = function(ixdbid, ifexists, cb){
};
};
-IDB.attachDatabase = function(ixdbid, dbid, args, cb) {
+IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) {
var request1 = indexedDB.webkitGetDatabaseNames();
request1.onsuccess = function(event) {
var dblist = event.target.result;
@@ -11723,7 +11723,7 @@ LS.dropDatabase = function(lsdbid, ifexists, cb){
};
-LS.attachDatabase = function(lsdbid, dbid, args, cb){
+LS.attachDatabase = function(lsdbid, dbid, args, params, cb){
var res = 1;
if(alasql.databases[dbid]) {
throw new Error('Unable to attach database as "'+dbid+'" because it already exists');
@@ -11902,14 +11902,22 @@ SQLITE.dropDatabase = function(databaseid){
throw new Error('This is impossible to drop SQLite database. Detach it.');
};
-SQLITE.attachDatabase = function(sqldbid, dbid, args, cb){
+SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb){
var res = 1;
if(alasql.databases[dbid]) {
throw new Error('Unable to attach database as "'+dbid+'" because it already exists');
};
- if(args[0] && args[0] instanceof yy.StringValue) {
- alasql.utils.loadBinaryFile(args[0].value,true,function(data){
+
+ if(args[0] && (args[0] instanceof yy.StringValue)
+ || (args[0] instanceof yy.ParamValue)) {
+
+ if(args[0] instanceof yy.StringValue) {
+ var value = args[0].value;
+ } else if(args[0] instanceof yy.ParamValue) {
+ var value = params[args[0].param];
+ }
+ alasql.utils.loadBinaryFile(value,true,function(data){
var db = new alasql.Database(dbid || sqldbid);
db.engineid = "SQLITE";
db.sqldbid = sqldbid;
@@ -12067,7 +12075,7 @@ FS.dropDatabase = function(fsdbid, ifexists, cb){
};
-FS.attachDatabase = function(fsdbid, dbid, args, cb){
+FS.attachDatabase = function(fsdbid, dbid, args, params, cb){
// console.log(arguments);
var res = 1;
if(alasql.databases[dbid]) {
diff --git a/alasql.js.map b/alasql.js.map
index c656032ccc..9a432b2ecf 100755
--- a/alasql.js.map
+++ b/alasql.js.map
@@ -75,5 +75,5 @@
"src/99worker.js"
],
"names": [],
- "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrmEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1sBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5pBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpSA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"
+ "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrmEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1sBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5pBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpSA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"
}
\ No newline at end of file
diff --git a/alasql.min.js b/alasql.min.js
index e7f03d56e9..69de515ef3 100644
--- a/alasql.min.js
+++ b/alasql.min.js
@@ -4,5 +4,5 @@ break;case 262:case 536:case 537:this.$=$$[$0-1];this.$.push($$[$0]);break;case
}};var Database=alasql.Database=function(databaseid){var self=this;if(self===alasql){if(databaseid){self=alasql.databases[databaseid];if(!self){throw new Error('Database "'+databaseid+'" not found')}}else{self=alasql.databases.alasql}}if(!databaseid){databaseid="db"+alasql.databasenum++}self.databaseid=databaseid;alasql.databases[databaseid]=self;self.tables={};self.views={};self.indices={};self.resetSqlCache();self.dbversion=0;return self};Database.prototype.resetSqlCache=function(){this.sqlCache={};this.sqlCacheSize=0};Database.prototype.exec=function(sql,params,cb){return alasql.dexec(this.databaseid,sql,params,cb)};Database.prototype.transaction=function(cb){var tx=new alasql.Transaction(this.databaseid);var res=cb(tx);return res};var Transaction=alasql.Transaction=function(databaseid){this.transactionid=Date.now();this.databaseid=databaseid;this.commited=false;this.dbversion=alasql.databases[databaseid].dbversion;this.bank=JSON.stringify(alasql.databases[databaseid]);return this};Transaction.prototype.commit=function(){this.commited=true;alasql.databases[this.databaseid].dbversion=Date.now();delete this.bank};Transaction.prototype.rollback=function(){if(!this.commited){alasql.databases[this.databaseid]=JSON.parse(this.bank);delete this.bank}else{throw new Error("Transaction already commited")}};Transaction.prototype.exec=function(sql,params,cb){return alasql.dexec(this.databaseid,sql,params,cb)};Transaction.prototype.executeSQL=Transaction.prototype.exec;var Table=alasql.Table=function(params){this.columns=[];this.xcolumns={};this.data=[];this.inddefs={};this.indices={};this.uniqs={};this.uniqdefs={};extend(this,params)};Table.prototype.indexColumns=function(){var self=this;self.xcolumns={};self.columns.forEach(function(col){self.xcolumns[col.columnid]=col})};var View=alasql.View=function(params){this.columns=[];this.xcolumns={};this.query=[];extend(this,params)};var Query=alasql.Query=function(params){this.alasql=alasql;this.columns=[];this.xcolumns={};this.selectGroup=[];this.groupColumns={};extend(this,params)};var Recordset=alasql.Recordset=function(params){extend(this,params)};var yy=parser.yy={};yy.extend=extend;yy.casesensitive=alasql.options.casesensitive;var Base=yy.Base=function(params){return yy.extend(this,params)};Base.prototype.toString=function(){};Base.prototype.toType=function(){};Base.prototype.toJavaScript=function(){};Base.prototype.compile=returnUndefined;Base.prototype.exec=function(){};Base.prototype.compile=returnUndefined;Base.prototype.exec=function(){};yy.Statements=function(params){return yy.extend(this,params)};yy.Statements.prototype.toString=function(){return this.statements.map(function(st){return st.toString()}).join(";"+NL())};yy.Statements.prototype.compile=function(db){var statements=this.statements.map(function(st){return st.compile(db)});if(statements.length==1){return statements[0]}else{return function(params,cb){var res=statements.map(function(st){return st(params)});if(cb)cb(res);return res}}};function queryfn(query,oldscope,cb,A,B){var ms;query.sourceslen=query.sources.length;var slen=query.sourceslen;query.query=query;query.A=A;query.B=B;query.cb=cb;query.oldscope=oldscope;if(query.queriesfn){query.sourceslen+=query.queriesfn.length;slen+=query.queriesfn.length;query.queriesdata=[];query.queriesfn.forEach(function(q,idx){q.query.params=query.params;if(false){queryfn(q.query,query.oldscope,queryfn2,-idx-1,query)}else{queryfn2([],-idx-1,query)}})}var scope;if(!oldscope)scope={};else scope=cloneDeep(oldscope);query.scope=scope;var result;query.sources.forEach(function(source,idx){source.query=query;var rs=source.datafn(query,query.params,queryfn2,idx,alasql);if(typeof rs!=undefined){if((query.intofn||query.intoallfn)&&rs instanceof Array)rs=rs.length;result=rs}source.queriesdata=query.queriesdata});if(slen==0)result=queryfn3(query);return result}function queryfn2(data,idx,query){if(idx>=0){var source=query.sources[idx];source.data=data;if(typeof source.data=="function"){source.getfn=source.data;source.dontcache=source.getfn.dontcache;if(source.joinmode=="OUTER"||source.joinmode=="RIGHT"||source.joinmode=="ANTI"){source.dontcache=false}source.data={}}}else{query.queriesdata[-idx-1]=flatArray(data)}query.sourceslen--;if(query.sourceslen>0)return;return queryfn3(query)}function queryfn3(query){var scope=query.scope;preIndex(query);query.data=[];query.xgroups={};query.groups=[];var h=0;doJoin(query,scope,h);if(query.groupfn){query.data=[];if(query.groups.length==0){var g={};if(query.selectGroup.length>0){query.selectGroup.forEach(function(sg){if(sg.aggregatorid=="COUNT"||sg.aggregatorid=="SUM"){g[sg.nick]=0}else{g[sg.nick]=undefined}})}query.groups=[g]}for(var i=0,ilen=query.groups.length;i0){for(var i=0,ilen=query.data.length;i0&&source.optimization=="ix"&&source.onleftfn&&source.onrightfn){if(source.databaseid&&alasql.databases[source.databaseid].tables[source.tableid]){if(!alasql.databases[source.databaseid].tables[source.tableid].indices)query.database.tables[source.tableid].indices={};var ixx=alasql.databases[source.databaseid].tables[source.tableid].indices[hash(source.onrightfns+"`"+source.srcwherefns)];if(!alasql.databases[source.databaseid].tables[source.tableid].dirty&&ixx){source.ix=ixx}}if(!source.ix){source.ix={};var scope={};var i=0;var ilen=source.data.length;var dataw;while((dataw=source.data[i])||source.getfn&&(dataw=source.getfn(i))||i=query.sources.length){if(query.wherefn(scope,query.params,alasql)){if(query.groupfn){query.groupfn(scope,query.params,query.alasql)}else{query.data.push(query.selectfn(scope,query.params,alasql))}}}else if(query.sources[h].applyselect){var source=query.sources[h];source.applyselect(query.params,function(data){if(data.length>0){for(var i=0;i0){s+=NL()+ID()+K("GROUP BY")+" "+this.group.map(function(grp){return grp.toString()}).join(", ")}if(this.having)s+=NL()+ID()+K("HAVING")+" "+this.having.toString();if(this.order&&this.order.length>0){s+=NL()+ID()+K("ORDER BY")+" "+this.order.map(function(ord){return ord.toString()}).join(", ")}if(this.limit)s+=NL()+ID()+K("LIMIT")+" "+this.limit.value;if(this.offset)s+=NL()+ID()+K("OFFSET")+" "+this.offset.value;if(this.union)s+=NL()+K("UNION")+NL()+this.union.toString();if(this.unionall)s+=NL()+K("UNION ALL")+NL()+this.unionall.toString();if(this.except)s+=NL()+K("EXCEPT")+NL()+this.except.toString();if(this.intersect)s+=NL()+K("INTERSECT")+NL()+this.intersect.toString();return s};yy.Select.prototype.toJavaScript=function(context,tableid,defcols){var s="alasql.utils.flatArray(this.queriesfn["+(this.queriesidx-1)+"](this.params,null,p))[0]";return s};yy.Select.prototype.compile=function(databaseid){var db=alasql.databases[databaseid];var query=new Query;query.removeKeys=[];query.explain=this.explain;query.explaination=[];query.explid=1;query.modifier=this.modifier;query.database=db;this.compileWhereExists(query);this.compileQueries(query);query.defcols=this.compileDefCols(query,databaseid);query.fromfn=this.compileFrom(query);if(this.joins)this.compileJoins(query);this.compileSelectGroup0(query);if(this.group||query.selectGroup.length>0){query.selectgfns=this.compileSelectGroup1(query)}else{query.selectfns=this.compileSelect1(query)}if(this.where)this.compileWhereJoins(query);query.wherefn=this.compileWhere(query);if(this.group||query.selectGroup.length>0)query.groupfn=this.compileGroup(query);if(this.having)query.havingfn=this.compileHaving(query);if(this.group||query.selectGroup.length>0){query.selectgfn=this.compileSelectGroup2(query)}else{query.selectfn=this.compileSelect2(query)}query.distinct=this.distinct;if(this.order)query.orderfn=this.compileOrder(query);if(this.top){query.limit=this.top.value}else if(this.limit){query.limit=this.limit.value;if(this.offset){query.offset=this.offset.value}}query.percent=this.percent;if(this.union){query.unionfn=this.union.compile(databaseid);if(this.union.order){query.orderfn=this.union.compileOrder(query)}else{query.orderfn=null}}else if(this.unionall){query.unionallfn=this.unionall.compile(databaseid);if(this.unionall.order){query.orderfn=this.unionall.compileOrder(query)}else{query.orderfn=null}}else if(this.except){query.exceptfn=this.except.compile(databaseid);if(this.except.order){query.orderfn=this.except.compileOrder(query)}else{query.orderfn=null}}else if(this.intersect){query.intersectfn=this.intersect.compile(databaseid);if(this.intersect.order){query.intersectfn=this.intersect.compileOrder(query)}else{query.orderfn=null}}if(this.into){if(this.into instanceof yy.Table){if(alasql.options.autocommit&&alasql.databases[this.into.databaseid||databaseid].engineid){query.intoallfns='return alasql.engines["'+alasql.databases[this.into.databaseid||databaseid].engineid+'"]'+'.intoTable("'+(this.into.databaseid||databaseid)+'","'+this.into.tableid+'",this.data, columns, cb);'}else{query.intofns="alasql.databases['"+(this.into.databaseid||databaseid)+"'].tables"+"['"+this.into.tableid+"'].data.push(r);"}}else if(this.into instanceof yy.VarValue){query.intoallfns='alasql.vars["'+this.into.variable+'"]=this.data;res=1;if(cb)res=cb(res);return res;'}else if(this.into instanceof yy.FuncValue){var qs="alasql.into['"+this.into.funcid.toUpperCase()+"'](";if(this.into.args&&this.into.args.length>0){qs+=this.into.args[0].toJavaScript()+",";if(this.into.args.length>1){qs+=this.into.args[1].toJavaScript()+","}else{qs+="null,"}}else{qs+="null, null,"}query.intoallfns=qs+"this.data,columns,cb)"}else if(this.into instanceof yy.ParamValue){query.intofns="params['"+this.into.param+"'].push(r)"}if(query.intofns){query.intofn=new Function("r,i,params,alasql",query.intofns)}if(query.intoallfns){query.intoallfn=new Function("columns,cb,alasql",query.intoallfns)}}var statement=function(params,cb,oldscope){query.params=params;var res1=queryfn(query,oldscope,function(res){var res2=modify(query,res);if(cb)cb(res2);return res2});return res1};statement.query=query;return statement};function modify(query,res){if(query.modifier=="VALUE"){if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];res=res[0][key]}else{res=undefined}}if(query.modifier=="ROW"){if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];var a=[];for(var key in res[0]){a.push(res[0][key])}res=a}else{res=undefined}}if(query.modifier=="COLUMN"){var ar=[];if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];for(var i=0,ilen=res.length;i0){key=query.columns[0].columnid;val=query.columns[1].columnid}else{var okeys=Object.keys(res[0]);key=okeys[0];val=okeys[1]}for(var i=0,ilen=res.length;i0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];var s="";for(var i=0,ilen=res.length;i0){if(tq.args[0]){s+=tq.args[0].toJavaScript("query.oldscope")+","}else{s+="null,"}if(tq.args[1]){s+=tq.args[1].toJavaScript("query.oldscope")+","}else{s+="null,"}}else{s+="null,null,"}s+="cb,idx,query";s+=");/*if(cb)res=cb(res,idx,query);*/return res";source.datafn=new Function("query, params, cb, idx, alasql",s)}else if(tq instanceof yy.FromData){source.datafn=function(query,params,cb,idx,alasql){var res=tq.data;if(cb)res=cb(res,idx,query);return res}}else{throw new Error("Wrong table at FROM")}query.sources.push(source)});query.defaultTableid=query.sources[0].alias};alasql.prepareFromData=function(data,array){var res=data;if(typeof data=="string"){res=data.split(/\r?\n/);if(array){for(var i=0,ilen=res.length;i0){if(jn.args[0]){s+=jn.args[0].toJavaScript("query.oldscope")+","}else{s+="null,"}if(jn.args[1]){s+=jn.args[1].toJavaScript("query.oldscope")+","}else{s+="null,"}}else{s+="null,null,"}s+="cb,idx,query";s+=");/*if(cb)res=cb(res,idx,query);*/return res";source.datafn=new Function("query, params, cb, idx, alasql",s);query.aliases[source.alias]={type:"funcvalue"}}var alias=source.alias;if(jn.natural){if(jn.using||jn.on){throw new Error("NATURAL JOIN cannot have USING or ON clauses")}else{if(query.sources.length>0){var prevSource=query.sources[query.sources.length-1];var prevTable=alasql.databases[prevSource.databaseid].tables[prevSource.tableid];var table=alasql.databases[source.databaseid].tables[source.tableid];if(prevTable&&table){var c1=prevTable.columns.map(function(col){return col.columnid});var c2=table.columns.map(function(col){return col.columnid});jn.using=arrayIntersect(c1,c2).map(function(colid){return{columnid:colid}})}else{throw new Error("In this version of Alasql NATURAL JOIN "+"works for tables with predefined columns only")}}}}if(jn.using){var prevSource=query.sources[query.sources.length-1];source.onleftfns=jn.using.map(function(col){return"p['"+(prevSource.alias||prevSource.tableid)+"']['"+col.columnid+"']"}).join('+"`"+');source.onleftfn=new Function("p,params,alasql","return "+source.onleftfns);source.onrightfns=jn.using.map(function(col){return"p['"+(source.alias||source.tableid)+"']['"+col.columnid+"']"}).join('+"`"+');source.onrightfn=new Function("p,params,alasql","return "+source.onrightfns);source.optimization="ix"}else if(jn.on){if(jn.on instanceof yy.Op&&jn.on.op=="="&&!jn.on.allsome){source.optimization="ix";var lefts="";var rights="";var middles="";var middlef=false;var ls=jn.on.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=jn.on.right.toJavaScript("p",query.defaultTableid,query.defcols);if(ls.indexOf("p['"+alias+"']")>-1&&!(rs.indexOf("p['"+alias+"']")>-1)){if((ls.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){rights=ls}else{middlef=true}}else if(!(ls.indexOf("p['"+alias+"']")>-1)&&rs.indexOf("p['"+alias+"']")>-1){if((rs.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){lefts=ls}else{middlef=true}}else{middlef=true}if(rs.indexOf("p['"+alias+"']")>-1&&!(ls.indexOf("p['"+alias+"']")>-1)){if((rs.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){rights=rs}else{middlef=true}}else if(!(rs.indexOf("p['"+alias+"']")>-1)&&ls.indexOf("p['"+alias+"']")>-1){if((ls.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){lefts=rs}else{middlef=true}}else{middlef=true}if(middlef){rights="";lefts="";middles=jn.on.toJavaScript("p",query.defaultTableid,query.defcols);source.optimization="no"}source.onleftfns=lefts;source.onrightfns=rights;source.onmiddlefns=middles||"true";source.onleftfn=new Function("p,params,alasql","return "+source.onleftfns);source.onrightfn=new Function("p,params,alasql","return "+source.onrightfns);source.onmiddlefn=new Function("p,params,alasql","return "+source.onmiddlefns)}else{source.optimization="no";source.onmiddlefns=jn.on.toJavaScript("p",query.defaultTableid,query.defcols);source.onmiddlefn=new Function("p,params,alasql","return "+jn.on.toJavaScript("p",query.defaultTableid,query.defcols))}}query.sources.push(source)}})};yy.Select.prototype.compileWhere=function(query){if(this.where){if(typeof this.where=="function"){return this.where}else{s=this.where.toJavaScript("p",query.defaultTableid,query.defcols);query.wherefns=s;return new Function("p,params,alasql","return "+s)}}else return function(){return true}};yy.Select.prototype.compileWhereJoins=function(query){return;optimizeWhereJoin(query,this.where.expression);query.sources.forEach(function(source){if(source.srcwherefns){source.srcwherefn=new Function("p,params,alasql","return "+source.srcwherefns)}if(source.wxleftfns){source.wxleftfn=new Function("p,params,alasql","return "+source.wxleftfns)}if(source.wxrightfns){source.wxrightfn=new Function("p,params,alasql","return "+source.wxrightfns)}})};function optimizeWhereJoin(query,ast){if(!ast)return false;if(!(ast instanceof yy.Op))return;if(ast.op!="="&&ast.op!="AND")return;if(ast.allsome)return;var s=ast.toJavaScript("p",query.defaultTableid,query.defcols);var fsrc=[];query.sources.forEach(function(source,idx){if(source.tableid){if(s.indexOf("p['"+source.alias+"']")>-1)fsrc.push(source)}});if(fsrc.length==0){return}else if(fsrc.length==1){if(!(s.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+fsrc[0].alias+"']"})){return}var src=fsrc[0];src.srcwherefns=src.srcwherefns?src.srcwherefns+"&&"+s:s;if(ast instanceof yy.Op&&(ast.op=="="&&!ast.allsome)){if(ast.left instanceof yy.Column){var ls=ast.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=ast.right.toJavaScript("p",query.defaultTableid,query.defcols);if(rs.indexOf("p['"+fsrc[0].alias+"']")==-1){fsrc[0].wxleftfns=ls;fsrc[0].wxrightfns=rs}}if(ast.right instanceof yy.Column){var ls=ast.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=ast.right.toJavaScript("p",query.defaultTableid,query.defcols);if(ls.indexOf("p['"+fsrc[0].alias+"']")==-1){fsrc[0].wxleftfns=rs;fsrc[0].wxrightfns=ls}}}ast.reduced=true;return}else{if(ast.op="AND"){optimizeWhereJoin(query,ast.left);optimizeWhereJoin(query,ast.right)}}}yy.Select.prototype.compileGroup=function(query){var self=this;var tableid=query.sources[0].alias;var defcols=query.defcols;var allgroup=[[]];if(this.group){allgroup=decartes(this.group,query)
}var allgroups=[];allgroup.forEach(function(a){allgroups=arrayUnion(allgroups,a)});query.allgroups=allgroups;if(false){allgroups.forEach(function(col2){if(query.selectColumns[colid]){}else{var tmpid="default";if(query.sources.length>0)tmpid=query.sources[0].alias;if(Object.keys(query.selectColumns).length!=0)query.removeKeys.push(colid);query.selectfns+="r['"+escapeq(colid)+"']="+new yy.Column({columnid:colid}).toJavaScript("p",tmpid)+";"}})}var s="";allgroup.forEach(function(agroup){s+="var g=this.xgroups[";var rg=agroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];if(columnid=="")return"1";else return coljs});if(rg.length==0)rg=["''"];s+=rg.join('+"`"+');s+="];if(!g) {this.groups.push((g=this.xgroups[";s+=rg.join('+"`"+');s+="] = {";s+=agroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];if(columnid=="")return"";else return"'"+columnid+"':"+coljs+","}).join("");var neggroup=arrayDiff(allgroups,agroup);s+=neggroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];return"'"+columnid+"':null,"}).join("");var aft="";s+=query.selectGroup.map(function(col,idx){var colexp=col.expression.toJavaScript("p",tableid,defcols);var colas=col.nick;if(col instanceof yy.AggrValue){if(col.distinct){aft+=",g['$$_VALUES_"+colas+"']={},g['$$_VALUES_"+colas+"']["+colexp+"]=true"}if(col.aggregatorid=="SUM"||col.aggregatorid=="MIN"||col.aggregatorid=="MAX"||col.aggregatorid=="FIRST"||col.aggregatorid=="LAST"){return"'"+colas+"':"+colexp+","}else if(col.aggregatorid=="ARRAY"){return"'"+colas+"':["+colexp+"],"}else if(col.aggregatorid=="COUNT"){if(col.expression.columnid=="*"){return"'"+colas+"':1,"}else{return"'"+colas+"':(typeof "+colexp+' != "undefined")?1:0,'}}else if(col.aggregatorid=="AVG"){query.removeKeys.push("_SUM_"+colas);query.removeKeys.push("_COUNT_"+colas);return"'"+colas+"':"+colexp+",'_SUM_"+colas+"':"+colexp+",'_COUNT_"+colas+"':1,"}else if(col.aggregatorid=="AGGR"){aft+=",g['"+colas+"']="+col.expression.toJavaScript("g",-1);return""}else if(col.aggregatorid=="REDUCE"){return"'"+colas+"':alasql.aggr['"+col.funcid+"']("+colexp+"),"}return""}else return""}).join("");s+="}"+aft+",g));} else {";s+=query.selectGroup.map(function(col,idx){var colas=col.nick;var colexp=col.expression.toJavaScript("p",tableid,defcols);if(col instanceof yy.AggrValue){if(col.distinct){var pre="if(typeof "+colexp+'!="undefined" && (!g[\'$$_VALUES_'+colas+"']["+colexp+"])) {";var post="g['$$_VALUES_"+colas+"']["+colexp+"]=true;}"}else{var pre="",post=""}if(col.aggregatorid=="SUM"){return pre+"g['"+colas+"']+="+colexp+";"+post}else if(col.aggregatorid=="COUNT"){if(col.expression.columnid=="*")return pre+"g['"+colas+"']++;"+post;else{return pre+"if(typeof "+colexp+'!="undefined") g[\''+colas+"']++;"+post}}else if(col.aggregatorid=="ARRAY"){return pre+"g['"+colas+"'].push("+colexp+");"+post}else if(col.aggregatorid=="MIN"){return pre+"g['"+colas+"']=Math.min(g['"+colas+"'],"+colexp+");"+post}else if(col.aggregatorid=="MAX"){return pre+"g['"+colas+"']=Math.max(g['"+colas+"'],"+colexp+");"+post}else if(col.aggregatorid=="FIRST"){return""}else if(col.aggregatorid=="LAST"){return pre+"g['"+colas+"']="+colexp+";"+post}else if(col.aggregatorid=="AVG"){return pre+"g['_SUM_"+colas+"']+="+colexp+";"+"g['_COUNT_"+colas+"']++;"+"g['"+colas+"']=g['_SUM_"+colas+"']/g['_COUNT_"+colas+"'];"+post}else if(col.aggregatorid=="AGGR"){return pre+"g['"+colas+"']="+col.expression.toJavaScript("g",-1)+";"+post}else if(col.aggregatorid=="REDUCE"){return pre+"g['"+colas+"']=alasql.aggr."+col.funcid+"("+colexp+",g['"+colas+"']);"+post}return""}else return""}).join("");s+="}"});return new Function("p,params,alasql",s)};function compileSelectStar(query,alias){var s="",sp="",ss=[];if(query.aliases[alias].tableid){var columns=alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns}if(columns&&columns.length>0){columns.forEach(function(tcol){ss.push("'"+tcol.columnid+"':p['"+alias+"']['"+tcol.columnid+"']");query.selectColumns[escapeq(tcol.columnid)]=true;var coldef={columnid:tcol.columnid,dbtypeid:tcol.dbtypeid,dbsize:tcol.dbsize,dbprecision:tcol.dbprecision,dbenum:tcol.dbenum};query.columns.push(coldef);query.xcolumns[coldef.columnid]=coldef})}else{sp+='var w=p["'+alias+'"];for(var k in w){r[k]=w[k]};';query.dirtyColumns=true}return{s:ss.join(","),sp:sp}}yy.Select.prototype.compileSelect1=function(query){var self=this;query.columns=[];query.xcolumns={};query.selectColumns={};query.dirtyColumns=false;var s="var r={";var sp="";var ss=[];this.columns.forEach(function(col){if(col instanceof yy.Column){if(col.columnid=="*"){if(col.func){sp+="r=params['"+col.param+"'](p['"+query.sources[0].alias+"'],p,params,alasql);"}else if(col.tableid){var ret=compileSelectStar(query,col.tableid);if(ret.s)ss=ss.concat(ret.s);sp+=ret.sp}else{for(var alias in query.aliases){var ret=compileSelectStar(query,alias);if(ret.s)ss=ss.concat(ret.s);sp+=ret.sp}}}else{var tbid=col.tableid;var dbid=col.databaseid||query.sources[0].databaseid||query.database.databaseid;if(!tbid)tbid=query.defcols[col.columnid];if(!tbid)tbid=query.defaultTableid;if(col.columnid!="_"){ss.push("'"+escapeq(col.as||col.columnid)+"':p['"+tbid+"']['"+col.columnid+"']")}else{ss.push("'"+escapeq(col.as||col.columnid)+"':p['"+tbid+"']")}query.selectColumns[escapeq(col.as||col.columnid)]=true;if(query.aliases[tbid]&&query.aliases[tbid].type=="table"){if(!alasql.databases[dbid].tables[query.aliases[tbid].tableid]){throw new Error("Table '"+tbid+"' does not exists in database")}var columns=alasql.databases[dbid].tables[query.aliases[tbid].tableid].columns;var xcolumns=alasql.databases[dbid].tables[query.aliases[tbid].tableid].xcolumns;if(xcolumns&&columns.length>0){var tcol=xcolumns[col.columnid];var coldef={columnid:col.as||col.columnid,dbtypeid:tcol.dbtypeid,dbsize:tcol.dbsize,dbpecision:tcol.dbprecision,dbenum:tcol.dbenum};query.columns.push(coldef);query.xcolumns[coldef.columnid]=coldef}else{query.dirtyColumns=true}}else{}}}else if(col instanceof yy.AggrValue){if(!self.group){self.group=[""]}if(!col.as)col.as=escapeq(col.toString());if(col.aggregatorid=="SUM"||col.aggregatorid=="MAX"||col.aggregatorid=="MIN"||col.aggregatorid=="FIRST"||col.aggregatorid=="LAST"||col.aggregatorid=="AVG"||col.aggregatorid=="ARRAY"||col.aggregatorid=="REDUCE"){ss.push("'"+escapeq(col.as)+"':"+col.expression.toJavaScript("p",query.defaultTableid,query.defcols))}else if(col.aggregatorid=="COUNT"){ss.push("'"+escapeq(col.as)+"':1")}query.selectColumns[col.aggregatorid+"("+escapeq(col.expression.toString())+")"]=thtd}else{ss.push("'"+escapeq(col.as||col.columnid||col.toString())+"':"+col.toJavaScript("p",query.defaultTableid,query.defcols));query.selectColumns[escapeq(col.as||col.columnid||col.toString())]=true}});s+=ss.join(",")+"};"+sp;return s};yy.Select.prototype.compileSelect2=function(query){var s=query.selectfns;return new Function("p,params,alasql",s+"return r")};yy.Select.prototype.compileSelectGroup0=function(query){var self=this;self.columns.forEach(function(col,idx){if(col instanceof yy.Column&&col.columnid=="*"){}else{var colas;if(col instanceof yy.Column){colas=escapeq(col.columnid)}else{colas=escapeq(col.toString())}for(var i=0;irb)return 1;if(ra==rb)return 0;return-1}}var s="";var sk="";this.order.forEach(function(ord,idx){var dg="";if(ord.expression instanceof yy.NumValue){ord.expression=self.columns[ord.expression.value-1]}if(ord.expression instanceof yy.Column){var columnid=ord.expression.columnid;if(query.xcolumns[columnid]){var dbtypeid=query.xcolumns[columnid].dbtypeid;if(dbtypeid=="DATE"||dbtypeid=="DATETIME")dg=".valueOf()"}else{if(alasql.options.valueof)dg=".valueOf()"}if(ord.nocase)dg+=".toUpperCase()";s+="if(a['"+columnid+"']"+dg+(ord.direction=="ASC"?">":"<")+"b['"+columnid+"']"+dg+")return 1;";s+="if(a['"+columnid+"']"+dg+"==b['"+columnid+"']"+dg+"){"}else{dg=".valueOf()";if(ord.nocase)dg+=".toUpperCase()";s+="if("+ord.toJavaScript("a","")+dg+(ord.direction=="ASC"?">":"<")+ord.toJavaScript("b","")+dg+")return 1;";s+="if("+ord.toJavaScript("a","")+dg+"=="+ord.toJavaScript("b","")+dg+"){"}sk+="}"});s+="return 0;";s+=sk+"return -1";query.orderfns=s;return new Function("a,b",s)}};var rollup=function(a,query){var rr=[];var mask=0;var glen=a.length;for(var g=0;g"){var s=this.left.toString()+"->";if(typeof this.right!="string"&&typeof this.right!="number")s+="(";s+=this.right.toString();if(typeof this.right!="string"&&typeof this.right!="number")s+=")";return s}return this.left.toString()+" "+P(this.op)+" "+(this.allsome?this.allsome+" ":"")+this.right.toString()};yy.Op.prototype.findAggregator=function(query){if(this.left&&this.left.findAggregator)this.left.findAggregator(query);if(this.right&&this.right.findAggregator&&!this.allsome){this.right.findAggregator(query)}};yy.Op.prototype.toType=function(tableid){if(["-","*","/","%","^"].indexOf(this.op)>-1)return"number";if(this.op=="+"){if(this.left.toType(tableid)=="string"||this.right.toType(tableid)=="string")return"string";if(this.left.toType(tableid)=="number"||this.right.toType(tableid)=="number")return"number"}if(["AND","OR","NOT","=","==","===","!=","!==","!===",">",">=","<","<=","IN","NOT IN","LIKE","NOT LIKE"].indexOf(this.op)>-1)return"boolean";if(this.op=="BETWEEN"||this.op=="NOT BETWEEN"||this.op=="IS NULL"||this.op=="IS NOT NULL")return"boolean";if(this.allsome)return"boolean";if(!this.op)return this.left.toType();return"unknown"};yy.Op.prototype.toJavaScript=function(context,tableid,defcols){var op=this.op;if(this.op=="=")op="===";else if(this.op=="<>")op="!=";else if(this.op=="OR")op="||";if(this.op=="->"){if(typeof this.right=="string"){return this.left.toJavaScript(context,tableid,defcols)+'["'+this.right+'"]'}else if(typeof this.right=="number"){return this.left.toJavaScript(context,tableid,defcols)+"["+this.right+"]"}else if(this.right instanceof yy.FuncValue){ss=[];if(!this.right.args||this.right.args.length==0){}else{var ss=this.right.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)})}return this.left.toJavaScript(context,tableid,defcols)+"['"+this.right.funcid+"']("+ss.join(",")+")"}else{return this.left.toJavaScript(context,tableid,defcols)+"["+this.right.toJavaScript(context,tableid,defcols)+"]"}}if(this.op=="IS"){return"((typeof "+this.left.toJavaScript(context,tableid,defcols)+"=='undefined') == "+"(typeof "+this.right.toJavaScript(context,tableid,defcols)+"=='undefined'))"}if(this.op=="=="){return"alasql.utils.deepEqual("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+")"}if(this.op=="==="){return"(("+this.left.toJavaScript(context,tableid,defcols)+").valueOf()===("+this.right.toJavaScript(context,tableid,defcols)+".valueOf()))"}if(this.op=="!==="){return"!(("+this.left.toJavaScript(context,tableid,defcols)+").valueOf()===("+this.right.toJavaScript(context,tableid,defcols)+".valueOf()))"}if(this.op=="!=="){return"(!alasql.utils.deepEqual("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+"))"}if(this.op=="LIKE"){var s="("+this.left.toJavaScript(context,tableid,defcols)+"+'')"+".toUpperCase().match(new RegExp('^'+("+this.right.toJavaScript(context,tableid,defcols)+").replace(/\\%/g,'.*').toUpperCase()+'$','g'))";return s}if(this.op=="NOT LIKE"){var s="!(("+this.left.toJavaScript(context,tableid,defcols)+"+'')"+".toUpperCase().match(new RegExp('^'+("+this.right.toJavaScript(context,tableid,defcols)+").replace(/\\%/g,'.*').toUpperCase()+'$','g')))";return s}if(this.op=="BETWEEN"){if(this.right instanceof yy.Op&&this.right.op=="AND"){return"(("+this.right.left.toJavaScript(context,tableid,defcols)+"<="+this.left.toJavaScript(context,tableid,defcols)+")&&"+"("+this.left.toJavaScript(context,tableid,defcols)+"<="+this.right.right.toJavaScript(context,tableid,defcols)+"))"}else{throw new Error("Wrong BETWEEN operator without AND part")}}if(this.op=="NOT BETWEEN"){if(this.right instanceof yy.Op&&this.right.op=="AND"){return"!(("+this.right.left.toJavaScript(context,tableid,defcols)+"<="+this.left.toJavaScript(context,tableid,defcols)+")&&"+"("+this.left.toJavaScript(context,tableid,defcols)+"<="+this.right.right.toJavaScript(context,tableid,defcols)+"))"}else{throw new Error("Wrong NOT BETWEEN operator without AND part")}}if(this.op=="IN"){if(this.right instanceof yy.Select){var s="(";s+="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}else if(this.right instanceof Array){var s="(["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}else{var s="("+this.right.toJavaScript(context,tableid,defcols)+".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}}if(this.op=="NOT IN"){if(this.right instanceof yy.Select){var s="(";s+="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")<0)";return s}else if(this.right instanceof Array){var s="(["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")<0)";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.allsome=="ALL"){if(this.right instanceof yy.Select){var s="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".every(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else if(this.right instanceof Array){var s="["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].every(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.allsome=="SOME"||this.allsome=="ANY"){if(this.right instanceof yy.Select){var s="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".some(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else if(this.right instanceof Array){var s="["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].some(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.op=="AND"){if(this.left.reduced){if(this.right.reduced){return"true"}else{return this.right.toJavaScript(context,tableid,defcols)}}else if(this.right.reduced){return this.left.toJavaScript(context,tableid,defcols)}op="&&"}if(this.op=="^"){return"Math.pow("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+")"}return"("+this.left.toJavaScript(context,tableid,defcols)+op+this.right.toJavaScript(context,tableid,defcols)+")"};yy.VarValue=function(params){return yy.extend(this,params)};yy.VarValue.prototype.toString=function(){return"@"+L(this.variable)};yy.VarValue.prototype.toType=function(){return"unknown"};yy.VarValue.prototype.toJavaScript=function(){return"alasql.vars['"+this.variable+"']"};yy.NumValue=function(params){return yy.extend(this,params)};yy.NumValue.prototype.toString=function(){return N(this.value.toString())};yy.NumValue.prototype.toType=function(){return"number"};yy.NumValue.prototype.toJavaScript=function(){return""+this.value};yy.StringValue=function(params){return yy.extend(this,params)};yy.StringValue.prototype.toString=function(){return"'"+S(this.value.toString())+"'"};yy.StringValue.prototype.toType=function(){return"string"};yy.StringValue.prototype.toJavaScript=function(){return"'"+escapeq(this.value)+"'"};yy.LogicValue=function(params){return yy.extend(this,params)};yy.LogicValue.prototype.toString=function(){return this.value?"TRUE":"FALSE"};yy.LogicValue.prototype.toType=function(){return"boolean"};yy.LogicValue.prototype.toJavaScript=function(){return this.value?"true":"false"};yy.NullValue=function(params){return yy.extend(this,params)};yy.NullValue.prototype.toString=function(){return"NULL"};yy.NullValue.prototype.toJavaScript=function(){return"undefined"};yy.ParamValue=function(params){return yy.extend(this,params)};yy.ParamValue.prototype.toString=function(){return"$"+this.param};yy.ParamValue.prototype.toJavaScript=function(){if(typeof this.param=="string")return"params['"+this.param+"']";else return"params["+this.param+"]"};yy.UniOp=function(params){return yy.extend(this,params)};yy.UniOp.prototype.toString=function(){if(this.op=="-")return this.op+this.right.toString();if(this.op=="+")return this.op+this.right.toString();if(this.op=="NOT")return this.op+"("+this.right.toString()+")";else if(this.op==null)return"("+this.right.toString()+")"};yy.UniOp.prototype.findAggregator=function(query){if(this.right.findAggregator)this.right.findAggregator(query)};yy.UniOp.prototype.toType=function(tableid){if(this.op=="-")return"number";if(this.op=="+")return"number";if(this.op=="NOT")return"boolean"};yy.UniOp.prototype.toJavaScript=function(context,tableid,defcols){if(this.op=="-")return"(-("+this.right.toJavaScript(context,tableid,defcols)+"))";if(this.op=="+")return"("+this.right.toJavaScript(context,tableid,defcols)+")";if(this.op=="NOT")return"!("+this.right.toJavaScript(context,tableid,defcols)+")";else if(this.op==null)return"("+this.right.toJavaScript(context,tableid,defcols)+")"};yy.Column=function(params){return yy.extend(this,params)};yy.Column.prototype.toString=function(){var s;if(this.columnid==+this.columnid){s="["+this.columnid+"]"}else{s=this.columnid}if(this.tableid){if(+this.columnid==this.columnid){s=this.tableid+s}else{s=this.tableid+"."+s}if(this.databaseid){s=this.databaseid+"."+s}}return s};yy.Column.prototype.toJavaScript=function(context,tableid,defcols){var s="";if(!this.tableid&&tableid==""&&!defcols){if(this.columnid!="_"){s=context+"['"+this.columnid+"']"}else{if(context=="g"){s="g['_']"}else{s=context}}}else{if(context=="g"){s="g['"+this.nick+"']"}else if(this.tableid){if(this.columnid!="_"){s=context+"['"+this.tableid+"']['"+this.columnid+"']"}else{if(context=="g"){s="g['_']"}else{s=context+"['"+this.tableid+"']"}}}else if(defcols){var tbid=defcols[this.columnid];if(tbid=="-"){throw new Error('Cannot resolve column "'+this.columnid+'" because it exists in two source tables')}else if(tbid){if(this.columnid!="_"){s=context+"['"+tbid+"']['"+this.columnid+"']"}else{s=context+"['"+tbid+"']"}}else{if(this.columnid!="_"){s=context+"['"+(this.tableid||tableid)+"']['"+this.columnid+"']"}else{s=context+"['"+(this.tableid||tableid)+"']"}}}else if(tableid==-1){s=context+"['"+this.columnid+"']"}else{if(this.columnid!="_"){s=context+"['"+(this.tableid||tableid)+"']['"+this.columnid+"']"}else{s=context+"['"+(this.tableid||tableid)+"']"}}}return s};yy.AggrValue=function(params){return yy.extend(this,params)};yy.AggrValue.prototype.toString=function(){var s="";if(this.aggregatorid=="REDUCE")s+=L(this.funcid)+"(";else s+=this.aggregatorid+"(";if(this.distinct)s+=K("DISTINCT")+" ";if(this.expression)s+=this.expression.toString();s+=")";if(this.over)s+=" "+this.over.toString();return s};yy.AggrValue.prototype.findAggregator=function(query){var colas=escapeq(this.toString())+":"+query.selectGroup.length;var found=false;if(!found){if(!this.nick){this.nick=colas;var found=false;for(var i=0;i-1)return"number";if(["ARRAY"].indexOf(this.aggregatorid)>-1)return"array";if(["FIRST","LAST"].indexOf(this.aggregatorid)>-1)return this.expression.toType()};yy.AggrValue.prototype.toJavaScript=function(context,tableid,defcols){var colas=this.nick;if(typeof colas=="undefined")colas=this.toString();return"g['"+colas+"']"};yy.OrderExpression=function(params){return yy.extend(this,params)};yy.OrderExpression.prototype.toString=function(){var s=this.expression.toString();if(this.order)s+=" "+this.order.toString();if(this.nocase)s+=" "+K("COLLATE")+" "+K("NOCASE");return s};yy.GroupExpression=function(params){return yy.extend(this,params)};yy.GroupExpression.prototype.toString=function(){return this.type+"("+this.group.toString()+")"};yy.ColumnDef=function(params){return yy.extend(this,params)};yy.ColumnDef.prototype.toString=function(){var s=this.columnid;if(this.dbtypeid)s+=" "+this.dbtypeid;if(this.dbsize){s+="("+this.dbsize;if(this.dbprecision)s+=","+this.dbprecision;s+=")"}if(this.primarykey)s+=" PRIMARY KEY";if(this.notnull)s+=" NOT NULL";return s};yy.FromData=function(params){return yy.extend(this,params)};yy.FromData.prototype.toString=function(){if(this.data)return K("DATA")+"("+(Math.random()*1e16|0)+")";else return"?"};yy.FromData.prototype.toJavaScript=function(){};yy.Select.prototype.exec=function(params,cb){if(this.preparams)params=this.preparams.concat(params);var databaseid=alasql.useid;db=alasql.databases[databaseid];var sql=this.toString();var hh=hash(sql);var statement=this.compile(databaseid);if(!statement)return;statement.sql=sql;statement.dbversion=db.dbversion;if(db.sqlCacheSize>alasql.MAXSQLCACHESIZE){db.resetSqlCache()}db.sqlCacheSize++;db.sqlCache[hh]=statement;var res=alasql.res=statement(params,cb);return res};yy.Select.prototype.Select=function(){var self=this;var agrs=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}self.columns=[];args.forEach(function(arg){if(typeof arg=="string"){self.columns.push(new yy.Column({columnid:arg}))}else if(typeof arg=="function"){var pari=0;if(self.preparams){pari=self.preparams.length}else{self.preparams=[]}self.preparams.push(arg);self.columns.push(new yy.Column({columnid:"*",func:arg,param:pari}))}else{}});return self};yy.Select.prototype.From=function(tableid){var self=this;if(!self.from)self.from=[];if(tableid instanceof Array){var pari=0;if(self.preparams){pari=self.preparams.length}else{self.preparams=[]}self.preparams.push(tableid);self.from.push(new yy.ParamValue({param:pari}))}else if(typeof tableid=="string"){self.from.push(new yy.Table({tableid:tableid}))}else{throw new Error("Unknown arguments in From() function")}return self};yy.Select.prototype.OrderBy=function(){var self=this;var agrs=[];self.order=[];if(arguments.length==0){args=["_"]}else if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}if(args.length>0){args.forEach(function(arg){var expr=new yy.Column({columnid:arg});if(typeof arg=="function"){expr=arg}self.order.push(new yy.OrderExpression({expression:expr,direction:"ASC"}))})}return self};yy.Select.prototype.Top=function(topnum){var self=this;self.top=new yy.NumValue({value:topnum});return self};yy.Select.prototype.GroupBy=function(){var self=this;var agrs=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]
}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}self.group=[];args.forEach(function(arg){var expr=new yy.Column({columnid:arg});self.group.push(expr)});return self};yy.Select.prototype.Where=function(expr){var self=this;if(typeof expr=="function"){self.where=expr}return self};yy.FuncValue=function(params){return yy.extend(this,params)};yy.FuncValue.prototype.toString=function(){var s="";if(alasql.fn[this.funcid])s+=this.funcid;else if(alasql.aggr[this.funcid])s+=this.funcid;else if(alasql.stdlib[this.funcid.toUpperCase()]||alasql.stdfn[this.funcid.toUpperCase()])s+=this.funcid.toUpperCase();s+="(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toString()}).join(",")}s+=")";if(this.as)s+=" AS "+this.as.toString();return s};yy.FuncValue.prototype.findAggregator=function(query){if(this.args&&this.args.length>0){this.args.forEach(function(arg){if(arg.findAggregator)arg.findAggregator(query)})}};yy.FuncValue.prototype.toJavaScript=function(context,tableid,defcols){var s="";var funcid=this.funcid;if(alasql.fn[funcid]){if(this.newid)s+="new ";s+="alasql.fn."+this.funcid+"(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)}).join(",")}s+=")"}else if(alasql.stdlib[funcid.toUpperCase()]){if(this.args&&this.args.length>0){s+=alasql.stdlib[funcid.toUpperCase()].apply(this,this.args.map(function(arg){return arg.toJavaScript(context,tableid)}))}else{s+=alasql.stdlib[funcid.toUpperCase()]()}}else if(alasql.stdfn[funcid.toUpperCase()]){if(this.newid)s+="new ";s+="alasql.stdfn."+this.funcid.toUpperCase()+"(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)}).join(",")}s+=")"}else{}return s};var stdlib=alasql.stdlib={};var stdfn=alasql.stdfn={};stdlib.ABS=function(a){return"Math.abs("+a+")"};stdlib.CLONEDEEP=function(a){return"alasql.utils.cloneDeep("+a+")"};stdlib.IIF=function(a,b,c){if(arguments.length==3){return"(("+a+")?("+b+"):("+c+"))"}else{throw new Error("Number of arguments of IFF is not equals to 3")}};stdlib.IFNULL=function(a,b){return"("+a+"||"+b+")"};stdlib.INSTR=function(s,p){return"(("+s+").indexOf("+p+")+1)"};stdlib.LEN=stdlib.LENGTH=function(s){return"("+s+'+"").length'};stdlib.LOWER=stdlib.LCASE=function(s){return"("+s+").toLowerCase()"};stdlib.GREATEST=function(){return"Math.max("+Array.prototype.join.call(arguments,",")+")"};stdlib.LEAST=function(){return"Math.min("+Array.prototype.join.call(arguments,",")+")"};stdlib.MID=function(a,b,c){if(arguments.length==2)return"("+a+").substr("+b+"-1)";else if(arguments.length==3)return"("+a+").substr("+b+"-1,"+c+")"};stdlib.NULLIF=function(a,b){return"("+a+"=="+b+"?null:"+a+")"};stdlib.POWER=function(a,b){return"Math.pow("+a+","+b+")"};stdlib.RANDOM=function(r){if(arguments.length==0){return"Math.random()"}else{return"(Math.random()*("+r+")|0)"}};stdlib.ROUND=function(s,d){if(arguments.length==2){return"Math.round("+s+"*Math.pow(10,"+d+"))/Math.pow(10,"+d+")"}else{return"Math.round("+s+")"}};stdlib.SQRT=function(s){return"Math.sqrt("+s+")"};stdlib.TRIM=function(s){return s+".trim()"};stdlib.UPPER=stdlib.UCASE=function(s){return"("+s+").toUpperCase()"};alasql.aggr.GROUP_CONCAT=function(v,s){if(typeof s=="undefined")return v;else return s+","+v};yy.CaseValue=function(params){return yy.extend(this,params)};yy.CaseValue.prototype.toString=function(){var s="CASE ";if(this.expression)s+=this.expression.toString();if(this.whens){s+=this.whens.map(function(w){return" WHEN "+w.when.toString()+" THEN "+w.then.toString()}).join()}s+=" END";return s};yy.CaseValue.prototype.findAggregator=function(query){if(this.expression&&this.expression.findAggregator)this.expression.findAggregator(query);if(this.whens&&this.whens.length>0){this.whens.forEach(function(w){if(w.when.findAggregator)w.when.findAggregator(query);if(w.then.findAggregator)w.then.findAggregator(query)})}};yy.CaseValue.prototype.toJavaScript=function(context,tableid,defcols){var s="(function("+context+",params,alasql){var r;";if(this.expression){s+="v="+this.expression.toJavaScript(context,tableid,defcols)+";";s+=(this.whens||[]).map(function(w){return" if(v=="+w.when.toJavaScript(context,tableid,defcols)+") {r="+w.then.toJavaScript(context,tableid,defcols)+"}"}).join(" else ");if(this.elses)s+=" else {r="+this.elses.toJavaScript(context,tableid,defcols)+"}"}else{s+=(this.whens||[]).map(function(w){return" if("+w.when.toJavaScript(context,tableid,defcols)+") {r="+w.then.toJavaScript(context,tableid,defcols)+"}"}).join(" else ");if(this.elses)s+=" else {r="+this.elses.toJavaScript(context,tableid,defcols)+"}"}s+="return r;})("+context+",params,alasql)";return s};yy.Json=function(params){return yy.extend(this,params)};yy.Json.prototype.toString=function(){var s="@";s+=JSONtoString(this.value);s+="";return s};var JSONtoString=alasql.utils.JSONtoString=function(obj){var s="";if(typeof obj=="string")s='"'+obj+'"';else if(typeof obj=="number")s=obj;else if(typeof obj=="boolean")s=obj;else if(typeof obj=="object"){if(obj instanceof Array){s+="["+obj.map(function(b){return JSONtoString(b)}).join(",")+"]"}else if(!obj.toJavaScript||obj instanceof yy.Json){s="{";var ss=[];for(var k in obj){var s1="";if(typeof k=="string")s1+='"'+k+'"';else if(typeof k=="number")s1+=k;else if(typeof k=="boolean")s1+=k;else{throw new Error("THis is not ES6... no expressions on left side yet")}s1+=":"+JSONtoString(obj[k]);ss.push(s1)}s+=ss.join(",")+"}"}else if(obj.toString){s=obj.toString()}else{throw new Error("1Can not show JSON object "+JSON.stringify(obj))}}else{throw new Error("2Can not show JSON object "+JSON.stringify(obj))}return s};function JSONtoJavaScript(obj,context,tableid,defcols){var s="";if(typeof obj=="string")s='"'+obj+'"';else if(typeof obj=="number")s="("+obj+")";else if(typeof obj=="boolean")s=obj;else if(typeof obj=="object"){if(obj instanceof Array){s+="["+obj.map(function(b){return JSONtoJavaScript(b,context,tableid,defcols)}).join(",")+"]"}else if(!obj.toJavaScript||obj instanceof yy.Json){s="{";var ss=[];for(var k in obj){var s1="";if(typeof k=="string")s1+='"'+k+'"';else if(typeof k=="number")s1+=k;else if(typeof k=="boolean")s1+=k;else{throw new Error("THis is not ES6... no expressions on left side yet")}s1+=":"+JSONtoJavaScript(obj[k],context,tableid,defcols);ss.push(s1)}s+=ss.join(",")+"}"}else if(obj.toJavaScript){s=obj.toJavaScript(context,tableid,defcols)}else{throw new Error("1Can not parse JSON object "+JSON.stringify(obj))}}else{throw new Error("2Can not parse JSON object "+JSON.stringify(obj))}return s}yy.Json.prototype.toJavaScript=function(context,tableid,defcols){return JSONtoJavaScript(this.value,context,tableid,defcols)};yy.Convert=function(params){return yy.extend(this,params)};yy.Convert.prototype.toString=function(){var s="CONVERT(";s+=this.dbtypeid;if(typeof this.dbsize!="undefined"){s+="("+this.dbsize;if(this.dbprecision)s+=","+dbprecision;s+=")"}s+=","+this.expression.toString();if(this.style)s+=","+this.style;s+=")";return s};yy.Convert.prototype.toJavaScript=function(context,tableid,defcols){return"alasql.stdfn.CONVERT("+this.expression.toJavaScript(context,tableid,defcols)+',{dbtypeid:"'+this.dbtypeid+'",dbsize:'+this.dbsize+",style:"+this.style+"})";throw new Error("There is not such type conversion for "+this.toString())};alasql.stdfn.CONVERT=function(value,args){var val=value;if(args.style){var t;if(/\d{8}/.test(val))t=new Date(+val.substr(0,4),+val.substr(4,2)-1,+val.substr(6,2));else t=new Date(val);if(args.style==1){val=("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)+"/"+("0"+t.getYear()).substr(-2)}else if(args.style==2){val=("0"+t.getYear()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getDate()).substr(-2)}else if(args.style==3){val=("0"+t.getDate()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getYear()).substr(-2)}else if(args.style==4){val=("0"+t.getDate()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getYear()).substr(-2)}else if(args.style==5){val=("0"+t.getDate()).substr(-2)+"-"+("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getYear()).substr(-2)}else if(args.style==6){val=("0"+t.getDate()).substr(-2)+" "+t.toString().substr(4,3).toLowerCase()+" "+("0"+t.getYear()).substr(-2)}else if(args.style==7){val=t.toString().substr(4,3)+" "+("0"+t.getDate()).substr(-2)+","+("0"+t.getYear()).substr(-2)}else if(args.style==8){val=("0"+t.getHours()).substr(-2)+":"+("0"+(t.getMinutes()+1)).substr(-2)+":"+("0"+t.getSeconds()).substr(-2)}else if(args.style==10){val=("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getDate()).substr(-2)+"-"+("0"+t.getYear()).substr(-2)}else if(args.style==11){val=("0"+t.getYear()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)}else if(args.style==12){val=("0"+t.getYear()).substr(-2)+("0"+(t.getMonth()+1)).substr(-2)+("0"+t.getDate()).substr(-2)}else if(args.style==101){val=("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)+"/"+t.getFullYear()}else if(args.style==102){val=t.getFullYear()+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getDate()).substr(-2)}else if(args.style==103){val=("0"+t.getDate()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+t.getFullYear()}else if(args.style==104){val=("0"+t.getDate()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+t.getFullYear()}else if(args.style==105){val=("0"+t.getDate()).substr(-2)+"-"+("0"+(t.getMonth()+1)).substr(-2)+"-"+t.getFullYear()}else if(args.style==106){val=("0"+t.getDate()).substr(-2)+" "+t.toString().substr(4,3).toLowerCase()+" "+t.getFullYear()}else if(args.style==107){val=t.toString().substr(4,3)+" "+("0"+t.getDate()).substr(-2)+","+t.getFullYear()}else if(args.style==108){val=("0"+t.getHours()).substr(-2)+":"+("0"+(t.getMinutes()+1)).substr(-2)+":"+("0"+t.getSeconds()).substr(-2)}else if(args.style==110){val=("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getDate()).substr(-2)+"-"+t.getFullYear()}else if(args.style==111){val=t.getFullYear()+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)}else if(args.style==112){val=t.getFullYear()+("0"+(t.getMonth()+1)).substr(-2)+("0"+t.getDate()).substr(-2)}else{throw new Error("The CONVERT style "+args.style+" is not realized yet.")}}if(args.dbtypeid=="Date"){return new Date(val)}else if(args.dbtypeid.toUpperCase()=="DATE"){var d=new Date(val);var s=d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);return s}else if(args.dbtypeid=="DATETIME"){var d=new Date(val);var s=d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);s+=" "+("0"+d.getHours()).substr(-2)+":"+("0"+d.getMinutes()).substr(-2)+":"+("0"+d.getSeconds()).substr(-2);s+="."+("00"+d.getMilliseconds()).substr(-3);return s}else if(args.dbtypeid.toUpperCase()=="STRING"){return""+val}else if(args.dbtypeid.toUpperCase()=="NUMBER"||args.dbtypeid=="FLOAT"){return+val}else if(args.dbtypeid.toUpperCase()=="MONEY"){var m=+val;return(m|0)+m*100%100/100}else if(args.dbtypeid.toUpperCase()=="BOOLEAN"){return!!val}else if(args.dbtypeid.toUpperCase()=="INT"){return val|0}else if(args.dbtypeid.toUpperCase()=="VARCHAR"||args.dbtypeid=="NVARCHAR"){if(args.dbsize)return(""+val).substr(0,args.dbsize);else return""+val}else if(args.dbtypeid.toUpperCase()=="CHAR"||args.dbtypeid=="NCHAR"){return(val+new Array(args.dbsize+1).join(" ")).substr(0,args.dbsize)}};yy.ColumnDef=function(params){return yy.extend(this,params)};yy.ColumnDef.prototype.toString=function(){var s=this.columnid;if(this.dbtypeid)s+=" "+this.dbtypeid;if(this.dbsize){s+="("+this.dbsize;if(this.dbprecision)s+=","+this.dbprecision;s+=")"}if(this.primarykey)s+=" PRIMARY KEY";if(this.notnull)s+=" NOT NULL";return s};yy.CreateTable=function(params){return yy.extend(this,params)};yy.CreateTable.prototype.toString=function(){var s=K("CREATE");if(this.temporary)s+=" "+K("TEMPORARY");if(this.view)s+=" "+K("VIEW");else s+=" "+K("TABLE");if(this.ifnotexists)s+=" "+K("IF")+" "+K("NOT")+" "+K("EXISTS");s+=" "+this.table.toString();if(this.viewcolumns){s+="("+this.viewcolumns.map(function(vcol){return vcol.toString()}).join(",")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);else{var ss=this.columns.map(function(col){return col.toString()});s+=" ("+NL()+ID()+ss.join(","+NL()+ID())+")"}if(this.view&&this.select){s+=" AS "+this.select.toString()}return s};yy.CreateTable.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.table.databaseid||databaseid];var tableid=this.table.tableid;if(!tableid){throw new Error("Table name is not defined")}var columns=this.columns;var constraints=this.constraints||[];if(this.ifnotexists&&db.tables[tableid])return 0;if(db.tables[tableid]){throw new Error("Can not create table '"+tableid+"', because it already exists in the database '"+db.databaseid+"'")}var table=db.tables[tableid]=new alasql.Table;var ss=[];if(this.columns){this.columns.forEach(function(col){var dbtypeid=col.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();var newcol={columnid:col.columnid,dbtypeid:dbtypeid};if(col.default){ss.push("'"+col.columnid+"':"+col.default.toJavaScript())}table.columns.push(newcol);table.xcolumns[newcol.columnid]=newcol;if(col.primarykey){var pk=table.pk={};pk.columns=[col.columnid];pk.onrightfns="r['"+col.columnid+"']";pk.onrightfn=new Function("r","return "+pk.onrightfns);pk.hh=hash(pk.onrightfns);table.indices[pk.hh]={}}})}table.defaultfns=ss.join(",");constraints.forEach(function(con){if(con.type=="PRIMARY KEY"){if(table.pk){throw new Error("Primary key already exists")}var pk=table.pk={};pk.columns=con.columns;pk.onrightfns=pk.columns.map(function(columnid){return"r['"+columnid+"']"}).join("+'`'+");pk.onrightfn=new Function("r","return "+pk.onrightfns);pk.hh=hash(pk.onrightfns);table.indices[pk.hh]={}}});if(this.view&&this.viewcolumns){var self=this;this.viewcolumns.forEach(function(vcol,idx){self.select.columns[idx].as=vcol.columnid})}if(db.engineid){return alasql.engines[db.engineid].createTable(this.table.databaseid||databaseid,tableid,this.ifnotexists,cb)}table.insert=function(r){if(this.pk){var pk=this.pk;var addr=pk.onrightfn(r);if(typeof this.indices[pk.hh][addr]!="undefined"){throw new Error("Cannot insert record, because it already exists in primary key")}else{table.data.push(r);this.indices[pk.hh][addr]=r}}else{table.data.push(r)}};table.delete=function(i){if(this.pk){var r=this.data[i];var pk=this.pk;var addr=pk.onrightfn(r);if(typeof this.indices[pk.hh][addr]=="undefined"){throw new Error("Something wrong with index on table")}else{this.indices[pk.hh][addr]=undefined}}};table.deleteall=function(){this.data.length=0;if(this.pk){this.indices[this.pk.hh]={}}};table.update=function(assignfn,i,params){if(this.pk){var r=this.data[i];var pk=this.pk;var addr=pk.onrightfn(r,params);if(typeof this.indices[pk.hh][addr]=="undefined"){throw new Error("Something wrong with index on table")}else{this.indices[pk.hh][addr]=undefined;assignfn(r,params,alasql);var newaddr=pk.onrightfn(r);if(typeof this.indices[pk.hh][newaddr]!="undefined"){throw new Error("Record already exists")}else{this.indices[pk.hh][newaddr]=r}}}else{assignfn(this.data[i],params,alasql)}};if(this.view&&this.select){table.view=true;table.select=this.select.compile(this.table.databaseid||databaseid)}if(cb)cb(1);return 1};alasql.fn.Date=Object;alasql.fn.Date=Date;alasql.fn.Number=Number;alasql.fn.String=String;alasql.fn.Boolean=Boolean;stdfn.EXTEND=alasql.utils.extend;stdfn.CHAR=String.fromCharCode.bind(String);stdfn.ASCII=function(a){return a.charCodeAt(0)};stdfn.COALESCE=function(){for(var i=0;i0){for(var i=0,ilen=table.data.length;i0){for(var i=0,ilen=table.data.length;i=0){q+="+"+values[idx].toJavaScript()}else if(alasql.fn[table.xcolumns[col.columnid].dbtypeid]){q+="(new "+table.xcolumns[col.columnid].dbtypeid+"(";q+=values[idx].toJavaScript();q+="))"}else{q+=values[idx].toJavaScript()}}else{q+=values[idx].toJavaScript()}ss.push(q)})}else{if(values instanceof Array&&table.columns&&table.columns.length>0){table.columns.forEach(function(col,idx){var q="'"+col.columnid+"':";if(["INT","FLOAT","NUMBER","MONEY"].indexOf(col.dbtypeid)>=0){q+="+"+values[idx].toJavaScript()}else if(alasql.fn[col.dbtypeid]){q+="(new "+col.dbtypeid+"(";q+=values[idx].toJavaScript();q+="))"}else{q+=values[idx].toJavaScript()}ss.push(q)})}else{sw=JSONtoJavaScript(values)}}if(db.tables[tableid].defaultfns)ss.unshift(db.tables[tableid].defaultfns);if(sw){s+="a="+sw+";"}else{s+="a={"+ss.join(",")+"};"}if(db.tables[tableid].insert){s+="alasql.databases['"+databaseid+"'].tables['"+tableid+"'].insert(a);"}else{s+="aa.push(a);"}});s33=s3+s;if(db.tables[tableid].insert){}else{s+="alasql.databases['"+databaseid+"'].tables['"+tableid+"'].data="+"alasql.databases['"+databaseid+"'].tables['"+tableid+"'].data.concat(aa);"}s+="return "+self.values.length;var insertfn=new Function("db, params, alasql",s3+s)}else if(this.select){selectfn=this.select.compile(databaseid);if(db.engineid&&alasql.engines[db.engineid].intoTable){var statement=function(params,cb){var aa=selectfn(params);var res=alasql.engines[db.engineid].intoTable(db.databaseid,tableid,aa,null,cb);return res};return statement}else{var insertfn=function(db,params,alasql){var res=selectfn(params);db.tables[tableid].data=db.tables[tableid].data.concat(res);return res.length}}}else if(this.default){var insertfns="db.tables['"+tableid+"'].data.push({"+table.defaultfns+"});return 1;";var insertfn=new Function("db,params,alasql",insertfns)}else{throw new Error("Wrong INSERT parameters")}if(db.engineid&&alasql.engines[db.engineid].intoTable&&alasql.options.autocommit){var statement=function(params,cb){var aa=new Function("db,params",s33+"return aa;")(db,params);var res=alasql.engines[db.engineid].intoTable(db.databaseid,tableid,aa,null,cb);return res}}else{var statement=function(params,cb){var db=alasql.databases[databaseid];if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var res=insertfn(db,params,alasql);if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].saveTableData(databaseid,tableid)}if(cb)cb(res);return res}}return statement};yy.Insert.prototype.execute=function(databaseid,params,cb){return this.compile(databaseid)(params,cb)};yy.Delete=function(params){return yy.extend(this,params)};yy.Delete.prototype.toString=function(){var s="DELETE FROM "+this.table.toString();if(this.where)s+=" WHERE "+this.where.toString();return s};yy.Delete.prototype.compile=function(databaseid){databaseid=this.table.databaseid||databaseid;var tableid=this.table.tableid;var statement;var db=alasql.databases[databaseid];if(this.where){wherefn=new Function("r,params","return ("+this.where.toJavaScript("r","")+")");statement=function(params,cb){if(db.engineid&&alasql.engines[db.engineid].deleteFromTable){return alasql.engines[db.engineid].deleteFromTable(databaseid,tableid,wherefn,params,cb)}if(alasql.options.autocommit&&db.engineid&&db.engineid=="LOCALSTORAGE"){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var table=db.tables[tableid];var orignum=table.data.length;var newtable=[];for(var i=0,ilen=table.data.length;i0){s+="("+this.args.map(function(arg){return arg.toString()}).join(", ")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.CreateDatabase.prototype.execute=function(databaseid,params,cb){var args;if(this.args&&this.args.length>0){args=this.args.map(function(arg){return new Function("params","return "+arg.toJavaScript())(params)})}if(this.engineid){var res=alasql.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,cb);return res}else{var dbid=this.databaseid;if(alasql.databases[dbid]){throw new Error("Database '"+dbid+"' already exists")}var a=new alasql.Database(dbid);var res=1;if(cb)return cb(res);return res}};yy.AttachDatabase=function(params){return yy.extend(this,params)};yy.AttachDatabase.prototype.toString=function(){var s=K("ATTACH");if(this.engineid)s+=" "+L(this.engineid);s+=" "+K("DATABASE")+" "+L(this.databaseid);if(args){s+="(";if(args.length>0){s+=args.map(function(arg){return arg.toJavaScript()}).join(", ")}s+=")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.AttachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.engines[this.engineid]){throw new Error('Engine "'+this.engineid+'" is not defined.')}var res=alasql.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,cb);return res};yy.DetachDatabase=function(params){return yy.extend(this,params)};yy.DetachDatabase.prototype.toString=function(){var s=K("DETACH");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DetachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.databases[this.databaseid].engineid){throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.')}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.UseDatabase=function(params){return yy.extend(this,params)};yy.UseDatabase.prototype.toString=function(){return K("USE")+" "+K("DATABASE")+" "+L(this.databaseid)};yy.UseDatabase.prototype.execute=function(databaseid,params,cb){var dbid=this.databaseid;if(!alasql.databases[dbid]){throw new Error("Database '"+dbid+"' does not exist")}alasql.use(dbid);var res=1;if(cb)cb(res);return res};yy.DropDatabase=function(params){return yy.extend(this,params)};yy.DropDatabase.prototype.toString=function(){var s=K("DROP");if(this.ifexists)s+=" "+K("IF")+" "+K("EXISTS");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DropDatabase.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,cb)}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{if(alasql.databases[dbid].engineid){throw new Error("Cannot drop database '"+dbid+"', because it is attached. Detach it.")}delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.Declare=function(params){return yy.extend(this,params)};yy.Declare.prototype.toString=function(){var s=K("DECLARE")+" ";if(this.declares&&this.declares.length>0){s=this.declares.map(function(declare){var s="";s+="@"+L(declare.variable)+" ";s+=declare.dbtypeid;if(this.dbsize)s+="("+N(this.dbsize);if(this.dbprecision)s+=","+N(this.dbprecision);s+=")";if(declare.expression)s+=" = "+declare.expression.toString();return s}).join(",")}return s};yy.Declare.prototype.execute=function(databaseid,params,cb){var res=1;if(this.declares&&this.declares.length>0){this.declares.map(function(declare){var dbtypeid=declare.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();alasql.declares[declare.variable]={dbtypeid:dbtypeid,dbsize:declare.dbsize,dbprecision:declare.dbprecision};if(declare.expression){alasql.vars[declare.variable]=new Function("params,alasql","return "+declare.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[declare.variable]){alasql.vars[declare.variable]=alasql.stdfn.CONVERT(alasql.vars[declare.variable],alasql.declares[declare.variable])}}})}if(cb)res=cb(res);return res};yy.ShowDatabases=function(params){return yy.extend(this,params)};yy.ShowDatabases.prototype.toString=function(){var s=K("SHOW")+" "+K("DATABASES");if(this.like)s+="LIKE "+this.like.toString();return s};yy.ShowDatabases.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].showDatabases(this.like,cb)}else{var self=this;var res=[];for(dbid in alasql.databases){res.push({databaseid:dbid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.databaseid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res}};yy.ShowTables=function(params){return yy.extend(this,params)};yy.ShowTables.prototype.toString=function(){var s=K("SHOW")+" "+K("TABLES");if(this.databaseid)s+=" FROM "+this.databaseid;if(this.like)s+=" "+K("LIKE")+" "+this.like.toString();return s};yy.ShowTables.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.databaseid||databaseid];var self=this;var res=[];for(tableid in db.tables){res.push({tableid:tableid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.tableid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res};yy.ShowColumns=function(params){return yy.extend(this,params)};yy.ShowColumns.prototype.toString=function(){var s=K("SHOW")+" "+K("COLUMNS");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowColumns.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table&&table.columns){var res=table.columns.map(function(col){return{columnid:col.columnid,dbtypeid:col.dbtypeid,dbsize:col.dbsize}});return res}else{return[]}};yy.ShowIndex=function(params){return yy.extend(this,params)};yy.ShowIndex.prototype.toString=function(){var s=K("SHOW")+" "+K("INDEX");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowIndex.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;var res=[];if(table&&table.indices){for(var ind in table.indices){res.push({hh:ind,len:Object.keys(table.indices[ind]).length})}}return res};yy.ShowCreateTable=function(params){return yy.extend(this,params)};yy.ShowCreateTable.prototype.toString=function(){var s=K("SHOW")+" "+K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid);if(this.databaseid)s+=" "+K("FROM")+" "+L(this.databaseid);return s};yy.ShowCreateTable.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table){var s=K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid)+" (";var ss=[];if(table.columns){table.columns.forEach(function(col){var a=L(col.columnid)+" "+K(col.dbtypeid);if(col.dbsize)a+="("+N(col.dbsize)+")";if(col.primarykey)a+=" "+K("PRIMARY")+" "+K("KEY");ss.push(a)});s+=ss.join(", ")}s+=")";return s}else{throw new Error('There is no such table "'+this.table.tableid+'"')}};yy.SetVariable=function(params){return yy.extend(this,params)};yy.SetVariable.prototype.toString=function(){var s=K("SET")+" ";if(typeof this.value!="undefined")s+=K(this.variable.toUpperCase())+" "+(this.value?"ON":"OFF");if(this.expression)s+="@"+L(this.variable)+" = "+this.expression.toString();return s};yy.SetVariable.prototype.execute=function(databaseid,params,cb){if(typeof this.value!="undefined"){var val=this.value;if(val=="ON")val=true;else if(val=="OFF")val=false;alasql.options[this.variable]=val}else if(this.expression){var res=new Function("params,alasql","return "+this.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[this.variable]){res=alasql.stdfn.CONVERT(res,alasql.declares[this.variable])}if(this.props&&this.props.length>0){var fs="alasql.vars['"+this.variable+"']";fs+=this.props.map(function(prop){if(typeof prop=="string"){return"['"+prop+"']"}else if(typeof prop=="number"){return"["+prop+"]"}else{return"["+prop.toJavaScript()+"]"}}).join();new Function("value,alasql",fs+"=value")(res,alasql)}else{alasql.vars[this.variable]=res}}var res=1;if(cb)res=cb(res);return res};alasql.test=function(name,times,fn){if(arguments.length==0){alasql.log(alasql.con.results);return}else if(arguments.length==1){var tm=Date.now();fn();alasql.con.log(Date.now()-tm);return}if(arguments.length==2){fn=times;times=1}var tm=Date.now();for(var i=0;i",sql);if(res instanceof Array){if(console.table){console.table(res)}else{console.log(JSONtoString(res))}}else{console.log(JSONtoString(res))}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}var s="";if(typeof sql=="string"&&alasql.options.logprompt){s+=""+alasql.pretty(sql)+"
"}if(res instanceof Array){if(res.length==0){s+="[ ]
"}else if(typeof res[0]!="object"||res[0]instanceof Array){for(var i=0,ilen=res.length;i"+loghtml(res[i])+"
"}}else{s+=loghtml(res)}}else{s+=loghtml(res)}el.innerHTML+=s}};alasql.clear=function(){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.clear){console.clear()}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML=""}};alasql.write=function(s){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.log){console.log(s)}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML+=s}};function loghtml(res){var s="";if(typeof res=="undefined"){s+="undefined"}else if(res instanceof Array){s+="";s+="";var cols=[];for(colid in res[0]){cols.push(colid)}s+="#";cols.forEach(function(colid){s+=" | "+colid});for(var i=0,ilen=res.length;i"+(i+1);cols.forEach(function(colid){s+=" | ";if(+res[i][colid]==+res[i][colid]){s+=' ';if(typeof res[i][colid]=="undefined")s+="NULL";else s+=res[i][colid];s+=" "}else{if(typeof res[i][colid]=="undefined"){s+="NULL"}else if(typeof res[i][colid]=="string"){s+=res[i][colid]}else s+=JSONtoString(res[i][colid])}})}s+=" | |
---|
"}else{s+=""+JSONtoString(res)+"
"}return s}function scrollTo(element,to,duration){if(duration<=0)return;var difference=to-element.scrollTop;var perTick=difference/duration*10;setTimeout(function(){if(element.scrollTop==to)return;element.scrollTop=element.scrollTop+perTick;scrollTo(element,to,duration-10)},10)}alasql.prompt=function(el,useidel,firstsql){if(typeof exports=="object"){throw new Error("The functionality of prompt is not realized for Node.js")}var prompti=0;if(typeof el=="string")el=document.getElementById(el);if(typeof useidel=="string")useidel=document.getElementById(useidel);useidel.textContent=alasql.useid;if(firstsql){alasql.prompthistory.push(firstsql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(firstsql);alasql.write(''+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+sql+"
");alasql.write(''+err+"
")}}var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500);el.onkeydown=function(event){if(event.which==13){var sql=el.value;var olduseid=alasql.useid;el.value="";alasql.prompthistory.push(sql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(sql);alasql.write('
'+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+alasql.pretty(sql,false)+"
");alasql.write(''+err+"
")}el.focus();useidel.textContent=alasql.useid;var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500)}else if(event.which==38){prompti--;if(prompti<0)prompti=0;if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}else if(event.which==40){prompti++;if(prompti>=alasql.prompthistory.length){prompti=alasql.prompthistory.length;el.value=""}else if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}}};yy.BeginTransaction=function(params){return yy.extend(this,params)};yy.BeginTransaction.prototype.toString=function(){return K("BEGIN")+" "+K("TRANSACTION")};yy.BeginTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid,cb)}else{}if(cb)cb(res);return res};yy.CommitTransaction=function(params){return yy.extend(this,params)};yy.CommitTransaction.prototype.toString=function(){return K("COMMIT")+" "+K("TRANSACTION")};yy.CommitTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid,cb)}else{}if(cb)cb(res);return res};yy.RollbackTransaction=function(params){return yy.extend(this,params)};yy.RollbackTransaction.prototype.toString=function(){return K("ROLLBACK")+" "+K("TRANSACTION")};yy.RollbackTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid,cb)}else{}if(cb)cb(res);return res};alasql.into.SQL=function(filename,opts,data,columns,cb){var res;if(typeof filename=="object"){opts=filename;filename=""}var opt={};alasql.utils.extend(opt,opts);if(typeof opt.tableid=="undefined"){throw new Error("Table for INSERT TO is not defined.")}var s="";if(columns.length==0){if(typeof data[0]=="object"){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}else{}}for(var i=0,ilen=data.length;i0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var res=data.length;var s="";if(data.length>0){var key=columns[0].columnid;s+=data.map(function(d){return d[key]}).join("\n")}alasql.utils.saveFile(filename,s);if(cb)res=cb(res);return res};alasql.into.TAB=alasql.into.TSV=function(filename,opts,data,columns,cb){var opt={};alasql.utils.extend(opt,opts);opt.separator=" ";return alasql.into.CSV(filename,opt,data,columns,cb)};alasql.into.CSV=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var opt={};opt.separator=",";opt.quote='"';alasql.utils.extend(opt,opts);var res=data.length;var s="";if(opt.headers){s+=columns.map(function(col){return col.columnid}).join(opt.separator)+"\n"}data.forEach(function(d,idx){s+=columns.map(function(col){var s=d[col.columnid];s=(s+"").replace(new RegExp("\\"+opt.quote,"g"),'""');if((s+"").indexOf(opt.separator)>-1||(s+"").indexOf(opt.quote)>-1)s=opt.quote+s+opt.quote;return s}).join(opt.separator)+"\n"});if(filename){alasql.utils.saveFile(filename,s)}else{console.log(s)}if(cb)res=cb(res);return res};alasql.into.XLSX=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof exports=="object"){var XLSX=require("xlsx")}else{var XLSX=window.XLSX}var opt={sheetid:"Sheet1",headers:true};alasql.utils.extend(opt,opts);var res=data.length;var wb={SheetNames:[],Sheets:{}};if(opt.sourcefilename){alasql.utils.loadBinaryFile(opt.sourcefilename,!!cb,function(data){wb=XLSX.read(data,{type:"binary"});doExport()})}else{doExport()}function doExport(){var cells={};if(wb.SheetNames.indexOf(opt.sheetid)>-1){cells=wb.Sheets[opt.sheetid]}else{wb.SheetNames.push(opt.sheetid);wb.Sheets[opt.sheetid]={};cells=wb.Sheets[opt.sheetid]}var range="A1";if(opt.range)range=opt.range;var col0=alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);var row0=+range.match(/[0-9]+/)[0]-1;if(wb.Sheets[opt.sheetid]["!ref"]){var rangem=wb.Sheets[opt.sheetid]["!ref"];var colm=alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);var rowm=+rangem.match(/[0-9]+/)[0]-1}else{var colm=1,rowm=1}var colmax=Math.max(col0+columns.length,colm);var rowmax=Math.max(row0+data.length+2,rowm);var i=row0+1;wb.Sheets[opt.sheetid]["!ref"]="A1:"+alasql.utils.xlsnc(colmax)+rowmax;if(opt.headers){columns.forEach(function(col,idx){cells[alasql.utils.xlsnc(col0+idx)+""+i]={v:col.columnid}});i++}for(var j=0;j=N)return EOF;if(eol)return eol=false,EOL;var j=I;if(text.charCodeAt(j)===quoteCode){var i=j;while(i++http://github/agershun/alasq for more information'}];yy.Help.prototype.execute=function(databaseid,params,cb){var ss=[];if(!this.subject){ss=helpdocs}else{ss.push('See also http://github/agershun/alasq for more information')}if(cb)ss=cb(ss);return ss};yy.Print=function(params){return yy.extend(this,params)};yy.Print.prototype.toString=function(){var s=K("PRINT");if(this.statement)s+=" "+this.statement.toString();return s};yy.Print.prototype.execute=function(databaseid,params,cb){var res,s;if(this.statement){s=this.statement.execute(databaseid,params)}else{s=""}s=JSONtoString(s);console.log(s);if(cb)res=cb(res);return res};yy.Source=function(params){return yy.extend(this,params)};yy.Source.prototype.toString=function(){var s=K("SOURCE");if(this.url)s+=" "+S("'"+this.url+"'");return s};yy.Source.prototype.execute=function(databaseid,params,cb){var res;loadFile(this.url,!!cb,function(data){res=alasql(data);if(cb)res=cb(res);return res},function(err){throw err});return res};yy.Require=function(params){return yy.extend(this,params)};yy.Require.prototype.toString=function(){var s=K("REQUIRE");if(this.paths&&this.paths.length>0){s+=this.paths.map(function(path){return path.toString()}).join(",")}return s};yy.Require.prototype.execute=function(databaseid,params,cb){var self=this;var res=0;var ss="";if(this.paths.length>0){this.paths.forEach(function(path){loadFile(path.value,!!cb,function(data){res++;ss+=data;if(res0){res=res.filter(function(d){return d.databaseid.match(relike)})}}if(cb)cb(res);return res};LS.createTable=function(databaseid,tableid,ifnotexists,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var tb=LS.get(lsdbid+"."+tableid);var res=1;if(tb&&!ifnotexists){throw new Error('Table "'+tableid+'" alsready exists in localStorage database "'+lsdbid+'"')}var lsdb=LS.get(lsdbid);var table=alasql.databases[databaseid].tables[tableid];lsdb.tables[tableid]={columns:table.columns};LS.set(lsdbid,lsdb);LS.set(lsdbid+"."+tableid,[]);if(cb)cb(res);return res};LS.dropTable=function(databaseid,tableid,ifexists,cb){var res=1;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(!ifexists&&!lsdb.tables[tableid]){throw new Error('Cannot drop table "'+tableid+'" in localStorage, because it does not exist')}delete lsdb.tables[tableid];LS.set(lsdbid,lsdb);localStorage.removeItem(lsdbid+"."+tableid);if(cb)cb(res);return res};LS.fromTable=function(databaseid,tableid,cb,idx,query){var lsdbid=alasql.databases[databaseid].lsdbid;var res=LS.get(lsdbid+"."+tableid);if(cb)res=cb(res,idx,query);return res};LS.intoTable=function(databaseid,tableid,value,columns,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var res=value.length;var tb=LS.get(lsdbid+"."+tableid);if(!tb)tb=[];tb=tb.concat(value);LS.set(lsdbid+"."+tableid,tb);if(cb)cb(res);return res};LS.loadTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;db.tables[tableid].data=LS.get(lsdbid+"."+tableid)};LS.saveTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;LS.set(lsdbid+"."+tableid,db.tables[tableid].data);db.tables[tableid].data=null};LS.commit=function(databaseid,cb){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb={databaseid:lsdbid,tables:{}};if(db.tables){for(var tbid in db.tables){lsdb.tables[tbid]={columns:db.tables[tbid].columns};LS.set(lsdbid+"."+tbid,db.tables[tbid].data)}}LS.set(lsdbid,lsdb);return 1};LS.begin=LS.commit;LS.rollback=function(databaseid,cb){var db=alasql.databases[databaseid];db.dbversion++;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(lsdb.tables){for(var tbid in lsdb.tables){var tb=new alasql.Table({columns:db.tables[tbid].columns});extend(tb,lsdb.tables[tbid]);lsdb.tables[tbid]=tb;if(!alasql.options.autocommit){lsdb.tables[tbid].data=LS.get(db.lsdbid+"."+tbid)}lsdb.tables[tbid].indexColumns()}}delete alasql.databases[databaseid];alasql.databases[databaseid]=new alasql.Database(databaseid);extend(alasql.databases[databaseid],lsdb);alasql.databases[databaseid].databaseid=databaseid;alasql.databases[databaseid].engineid="LOCALSTORAGE"};var SQLITE=alasql.engines.SQLITE=function(){};SQLITE.createDatabase=function(wdbid,args,ifnotexists,dbid,cb){throw new Error("Connot create SQLITE database in memory. Attach it.")};SQLITE.dropDatabase=function(databaseid){throw new Error("This is impossible to drop SQLite database. Detach it.")};SQLITE.attachDatabase=function(sqldbid,dbid,args,cb){var res=1;if(alasql.databases[dbid]){throw new Error('Unable to attach database as "'+dbid+'" because it already exists')}if(args[0]&&args[0]instanceof yy.StringValue){alasql.utils.loadBinaryFile(args[0].value,true,function(data){var db=new alasql.Database(dbid||sqldbid);db.engineid="SQLITE";db.sqldbid=sqldbid;var sqldb=db.sqldb=new SQL.Database(data);db.tables=[];var tables=sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;tables.forEach(function(tbl){db.tables[tbl[1]]={};var columns=db.tables[tbl[1]].columns=[];var ast=alasql.parse(tbl[4]);var coldefs=ast.statements[0].columns;if(coldefs&&coldefs.length>0){coldefs.forEach(function(cd){columns.push(cd)})}});cb(1)},function(err){throw new Error('Cannot open SQLite database file "'+args[0].value+'"')});return res}else{throw new Error("Cannot attach SQLite database without a file")}return res};SQLITE.fromTable=function(databaseid,tableid,cb,idx,query){var data=alasql.databases[databaseid].sqldb.exec("SELECT * FROM "+tableid);var columns=query.sources[idx].columns=[];if(data[0].columns.length>0){data[0].columns.forEach(function(columnid){columns.push({columnid:columnid})})}var res=[];if(data[0].values.length>0){data[0].values.forEach(function(d){var r={};columns.forEach(function(col,idx){r[col.columnid]=d[idx]});res.push(r)})}if(cb)cb(res,idx,query)};SQLITE.intoTable=function(databaseid,tableid,value,columns,cb){var sqldb=alasql.databases[databaseid].sqldb;for(var i=0,ilen=value.length;i1){var sql="REQUIRE "+paths.map(function(p){return'"'+p+'"'}).join(",");alasql(sql,[],cb)}}else if(path===false){delete alasql.webworker;return}}}
\ No newline at end of file
+if(db.engineid&&alasql.engines[db.engineid].updateTable){return alasql.engines[db.engineid].updateTable(databaseid,tableid,assignfn,wherefn,params,cb)}if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var table=db.tables[tableid];if(!table){throw new Error("Table '"+tableid+"' not exists")}var numrows=0;for(var i=0,ilen=table.data.length;i0){s+="("+this.args.map(function(arg){return arg.toString()}).join(", ")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.CreateDatabase.prototype.execute=function(databaseid,params,cb){var args;if(this.args&&this.args.length>0){args=this.args.map(function(arg){return new Function("params","return "+arg.toJavaScript())(params)})}if(this.engineid){var res=alasql.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,cb);return res}else{var dbid=this.databaseid;if(alasql.databases[dbid]){throw new Error("Database '"+dbid+"' already exists")}var a=new alasql.Database(dbid);var res=1;if(cb)return cb(res);return res}};yy.AttachDatabase=function(params){return yy.extend(this,params)};yy.AttachDatabase.prototype.toString=function(){var s=K("ATTACH");if(this.engineid)s+=" "+L(this.engineid);s+=" "+K("DATABASE")+" "+L(this.databaseid);if(args){s+="(";if(args.length>0){s+=args.map(function(arg){return arg.toString()}).join(", ")}s+=")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.AttachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.engines[this.engineid]){throw new Error('Engine "'+this.engineid+'" is not defined.')}var res=alasql.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,params,cb);return res};yy.DetachDatabase=function(params){return yy.extend(this,params)};yy.DetachDatabase.prototype.toString=function(){var s=K("DETACH");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DetachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.databases[this.databaseid].engineid){throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.')}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.UseDatabase=function(params){return yy.extend(this,params)};yy.UseDatabase.prototype.toString=function(){return K("USE")+" "+K("DATABASE")+" "+L(this.databaseid)};yy.UseDatabase.prototype.execute=function(databaseid,params,cb){var dbid=this.databaseid;if(!alasql.databases[dbid]){throw new Error("Database '"+dbid+"' does not exist")}alasql.use(dbid);var res=1;if(cb)cb(res);return res};yy.DropDatabase=function(params){return yy.extend(this,params)};yy.DropDatabase.prototype.toString=function(){var s=K("DROP");if(this.ifexists)s+=" "+K("IF")+" "+K("EXISTS");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DropDatabase.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,cb)}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{if(alasql.databases[dbid].engineid){throw new Error("Cannot drop database '"+dbid+"', because it is attached. Detach it.")}delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.Declare=function(params){return yy.extend(this,params)};yy.Declare.prototype.toString=function(){var s=K("DECLARE")+" ";if(this.declares&&this.declares.length>0){s=this.declares.map(function(declare){var s="";s+="@"+L(declare.variable)+" ";s+=declare.dbtypeid;if(this.dbsize)s+="("+N(this.dbsize);if(this.dbprecision)s+=","+N(this.dbprecision);s+=")";if(declare.expression)s+=" = "+declare.expression.toString();return s}).join(",")}return s};yy.Declare.prototype.execute=function(databaseid,params,cb){var res=1;if(this.declares&&this.declares.length>0){this.declares.map(function(declare){var dbtypeid=declare.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();alasql.declares[declare.variable]={dbtypeid:dbtypeid,dbsize:declare.dbsize,dbprecision:declare.dbprecision};if(declare.expression){alasql.vars[declare.variable]=new Function("params,alasql","return "+declare.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[declare.variable]){alasql.vars[declare.variable]=alasql.stdfn.CONVERT(alasql.vars[declare.variable],alasql.declares[declare.variable])}}})}if(cb)res=cb(res);return res};yy.ShowDatabases=function(params){return yy.extend(this,params)};yy.ShowDatabases.prototype.toString=function(){var s=K("SHOW")+" "+K("DATABASES");if(this.like)s+="LIKE "+this.like.toString();return s};yy.ShowDatabases.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].showDatabases(this.like,cb)}else{var self=this;var res=[];for(dbid in alasql.databases){res.push({databaseid:dbid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.databaseid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res}};yy.ShowTables=function(params){return yy.extend(this,params)};yy.ShowTables.prototype.toString=function(){var s=K("SHOW")+" "+K("TABLES");if(this.databaseid)s+=" FROM "+this.databaseid;if(this.like)s+=" "+K("LIKE")+" "+this.like.toString();return s};yy.ShowTables.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.databaseid||databaseid];var self=this;var res=[];for(tableid in db.tables){res.push({tableid:tableid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.tableid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res};yy.ShowColumns=function(params){return yy.extend(this,params)};yy.ShowColumns.prototype.toString=function(){var s=K("SHOW")+" "+K("COLUMNS");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowColumns.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table&&table.columns){var res=table.columns.map(function(col){return{columnid:col.columnid,dbtypeid:col.dbtypeid,dbsize:col.dbsize}});return res}else{return[]}};yy.ShowIndex=function(params){return yy.extend(this,params)};yy.ShowIndex.prototype.toString=function(){var s=K("SHOW")+" "+K("INDEX");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowIndex.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;var res=[];if(table&&table.indices){for(var ind in table.indices){res.push({hh:ind,len:Object.keys(table.indices[ind]).length})}}return res};yy.ShowCreateTable=function(params){return yy.extend(this,params)};yy.ShowCreateTable.prototype.toString=function(){var s=K("SHOW")+" "+K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid);if(this.databaseid)s+=" "+K("FROM")+" "+L(this.databaseid);return s};yy.ShowCreateTable.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table){var s=K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid)+" (";var ss=[];if(table.columns){table.columns.forEach(function(col){var a=L(col.columnid)+" "+K(col.dbtypeid);if(col.dbsize)a+="("+N(col.dbsize)+")";if(col.primarykey)a+=" "+K("PRIMARY")+" "+K("KEY");ss.push(a)});s+=ss.join(", ")}s+=")";return s}else{throw new Error('There is no such table "'+this.table.tableid+'"')}};yy.SetVariable=function(params){return yy.extend(this,params)};yy.SetVariable.prototype.toString=function(){var s=K("SET")+" ";if(typeof this.value!="undefined")s+=K(this.variable.toUpperCase())+" "+(this.value?"ON":"OFF");if(this.expression)s+="@"+L(this.variable)+" = "+this.expression.toString();return s};yy.SetVariable.prototype.execute=function(databaseid,params,cb){if(typeof this.value!="undefined"){var val=this.value;if(val=="ON")val=true;else if(val=="OFF")val=false;alasql.options[this.variable]=val}else if(this.expression){var res=new Function("params,alasql","return "+this.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[this.variable]){res=alasql.stdfn.CONVERT(res,alasql.declares[this.variable])}if(this.props&&this.props.length>0){var fs="alasql.vars['"+this.variable+"']";fs+=this.props.map(function(prop){if(typeof prop=="string"){return"['"+prop+"']"}else if(typeof prop=="number"){return"["+prop+"]"}else{return"["+prop.toJavaScript()+"]"}}).join();new Function("value,alasql",fs+"=value")(res,alasql)}else{alasql.vars[this.variable]=res}}var res=1;if(cb)res=cb(res);return res};alasql.test=function(name,times,fn){if(arguments.length==0){alasql.log(alasql.con.results);return}else if(arguments.length==1){var tm=Date.now();fn();alasql.con.log(Date.now()-tm);return}if(arguments.length==2){fn=times;times=1}var tm=Date.now();for(var i=0;i",sql);if(res instanceof Array){if(console.table){console.table(res)}else{console.log(JSONtoString(res))}}else{console.log(JSONtoString(res))}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}var s="";if(typeof sql=="string"&&alasql.options.logprompt){s+=""+alasql.pretty(sql)+"
"}if(res instanceof Array){if(res.length==0){s+="[ ]
"}else if(typeof res[0]!="object"||res[0]instanceof Array){for(var i=0,ilen=res.length;i"+loghtml(res[i])+"
"}}else{s+=loghtml(res)}}else{s+=loghtml(res)}el.innerHTML+=s}};alasql.clear=function(){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.clear){console.clear()}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML=""}};alasql.write=function(s){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.log){console.log(s)}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML+=s}};function loghtml(res){var s="";if(typeof res=="undefined"){s+="undefined"}else if(res instanceof Array){s+="";s+="";var cols=[];for(colid in res[0]){cols.push(colid)}s+="#";cols.forEach(function(colid){s+=" | "+colid});for(var i=0,ilen=res.length;i"+(i+1);cols.forEach(function(colid){s+=" | ";if(+res[i][colid]==+res[i][colid]){s+=' ';if(typeof res[i][colid]=="undefined")s+="NULL";else s+=res[i][colid];s+=" "}else{if(typeof res[i][colid]=="undefined"){s+="NULL"}else if(typeof res[i][colid]=="string"){s+=res[i][colid]}else s+=JSONtoString(res[i][colid])}})}s+=" | |
---|
"}else{s+=""+JSONtoString(res)+"
"}return s}function scrollTo(element,to,duration){if(duration<=0)return;var difference=to-element.scrollTop;var perTick=difference/duration*10;setTimeout(function(){if(element.scrollTop==to)return;element.scrollTop=element.scrollTop+perTick;scrollTo(element,to,duration-10)},10)}alasql.prompt=function(el,useidel,firstsql){if(typeof exports=="object"){throw new Error("The functionality of prompt is not realized for Node.js")}var prompti=0;if(typeof el=="string")el=document.getElementById(el);if(typeof useidel=="string")useidel=document.getElementById(useidel);useidel.textContent=alasql.useid;if(firstsql){alasql.prompthistory.push(firstsql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(firstsql);alasql.write(''+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+sql+"
");alasql.write(''+err+"
")}}var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500);el.onkeydown=function(event){if(event.which==13){var sql=el.value;var olduseid=alasql.useid;el.value="";alasql.prompthistory.push(sql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(sql);alasql.write('
'+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+alasql.pretty(sql,false)+"
");alasql.write(''+err+"
")}el.focus();useidel.textContent=alasql.useid;var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500)}else if(event.which==38){prompti--;if(prompti<0)prompti=0;if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}else if(event.which==40){prompti++;if(prompti>=alasql.prompthistory.length){prompti=alasql.prompthistory.length;el.value=""}else if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}}};yy.BeginTransaction=function(params){return yy.extend(this,params)};yy.BeginTransaction.prototype.toString=function(){return K("BEGIN")+" "+K("TRANSACTION")};yy.BeginTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid,cb)}else{}if(cb)cb(res);return res};yy.CommitTransaction=function(params){return yy.extend(this,params)};yy.CommitTransaction.prototype.toString=function(){return K("COMMIT")+" "+K("TRANSACTION")};yy.CommitTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid,cb)}else{}if(cb)cb(res);return res};yy.RollbackTransaction=function(params){return yy.extend(this,params)};yy.RollbackTransaction.prototype.toString=function(){return K("ROLLBACK")+" "+K("TRANSACTION")};yy.RollbackTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid,cb)}else{}if(cb)cb(res);return res};alasql.into.SQL=function(filename,opts,data,columns,cb){var res;if(typeof filename=="object"){opts=filename;filename=""}var opt={};alasql.utils.extend(opt,opts);if(typeof opt.tableid=="undefined"){throw new Error("Table for INSERT TO is not defined.")}var s="";if(columns.length==0){if(typeof data[0]=="object"){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}else{}}for(var i=0,ilen=data.length;i0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var res=data.length;var s="";if(data.length>0){var key=columns[0].columnid;s+=data.map(function(d){return d[key]}).join("\n")}alasql.utils.saveFile(filename,s);if(cb)res=cb(res);return res};alasql.into.TAB=alasql.into.TSV=function(filename,opts,data,columns,cb){var opt={};alasql.utils.extend(opt,opts);opt.separator=" ";return alasql.into.CSV(filename,opt,data,columns,cb)};alasql.into.CSV=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var opt={};opt.separator=",";opt.quote='"';alasql.utils.extend(opt,opts);var res=data.length;var s="";if(opt.headers){s+=columns.map(function(col){return col.columnid}).join(opt.separator)+"\n"}data.forEach(function(d,idx){s+=columns.map(function(col){var s=d[col.columnid];s=(s+"").replace(new RegExp("\\"+opt.quote,"g"),'""');if((s+"").indexOf(opt.separator)>-1||(s+"").indexOf(opt.quote)>-1)s=opt.quote+s+opt.quote;return s}).join(opt.separator)+"\n"});if(filename){alasql.utils.saveFile(filename,s)}else{console.log(s)}if(cb)res=cb(res);return res};alasql.into.XLSX=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof exports=="object"){var XLSX=require("xlsx")}else{var XLSX=window.XLSX}var opt={sheetid:"Sheet1",headers:true};alasql.utils.extend(opt,opts);var res=data.length;var wb={SheetNames:[],Sheets:{}};if(opt.sourcefilename){alasql.utils.loadBinaryFile(opt.sourcefilename,!!cb,function(data){wb=XLSX.read(data,{type:"binary"});doExport()})}else{doExport()}function doExport(){var cells={};if(wb.SheetNames.indexOf(opt.sheetid)>-1){cells=wb.Sheets[opt.sheetid]}else{wb.SheetNames.push(opt.sheetid);wb.Sheets[opt.sheetid]={};cells=wb.Sheets[opt.sheetid]}var range="A1";if(opt.range)range=opt.range;var col0=alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);var row0=+range.match(/[0-9]+/)[0]-1;if(wb.Sheets[opt.sheetid]["!ref"]){var rangem=wb.Sheets[opt.sheetid]["!ref"];var colm=alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);var rowm=+rangem.match(/[0-9]+/)[0]-1}else{var colm=1,rowm=1}var colmax=Math.max(col0+columns.length,colm);var rowmax=Math.max(row0+data.length+2,rowm);var i=row0+1;wb.Sheets[opt.sheetid]["!ref"]="A1:"+alasql.utils.xlsnc(colmax)+rowmax;if(opt.headers){columns.forEach(function(col,idx){cells[alasql.utils.xlsnc(col0+idx)+""+i]={v:col.columnid}});i++}for(var j=0;j=N)return EOF;if(eol)return eol=false,EOL;var j=I;if(text.charCodeAt(j)===quoteCode){var i=j;while(i++http://github/agershun/alasq for more information'}];yy.Help.prototype.execute=function(databaseid,params,cb){var ss=[];if(!this.subject){ss=helpdocs}else{ss.push('See also http://github/agershun/alasq for more information')}if(cb)ss=cb(ss);return ss};yy.Print=function(params){return yy.extend(this,params)};yy.Print.prototype.toString=function(){var s=K("PRINT");if(this.statement)s+=" "+this.statement.toString();return s};yy.Print.prototype.execute=function(databaseid,params,cb){var res,s;if(this.statement){s=this.statement.execute(databaseid,params)}else{s=""}s=JSONtoString(s);console.log(s);if(cb)res=cb(res);return res};yy.Source=function(params){return yy.extend(this,params)};yy.Source.prototype.toString=function(){var s=K("SOURCE");if(this.url)s+=" "+S("'"+this.url+"'");return s};yy.Source.prototype.execute=function(databaseid,params,cb){var res;loadFile(this.url,!!cb,function(data){res=alasql(data);if(cb)res=cb(res);return res},function(err){throw err});return res};yy.Require=function(params){return yy.extend(this,params)};yy.Require.prototype.toString=function(){var s=K("REQUIRE");if(this.paths&&this.paths.length>0){s+=this.paths.map(function(path){return path.toString()}).join(",")}return s};yy.Require.prototype.execute=function(databaseid,params,cb){var self=this;var res=0;var ss="";if(this.paths.length>0){this.paths.forEach(function(path){loadFile(path.value,!!cb,function(data){res++;ss+=data;if(res0){res=res.filter(function(d){return d.databaseid.match(relike)})}}if(cb)cb(res);return res};LS.createTable=function(databaseid,tableid,ifnotexists,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var tb=LS.get(lsdbid+"."+tableid);var res=1;if(tb&&!ifnotexists){throw new Error('Table "'+tableid+'" alsready exists in localStorage database "'+lsdbid+'"')}var lsdb=LS.get(lsdbid);var table=alasql.databases[databaseid].tables[tableid];lsdb.tables[tableid]={columns:table.columns};LS.set(lsdbid,lsdb);LS.set(lsdbid+"."+tableid,[]);if(cb)cb(res);return res};LS.dropTable=function(databaseid,tableid,ifexists,cb){var res=1;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(!ifexists&&!lsdb.tables[tableid]){throw new Error('Cannot drop table "'+tableid+'" in localStorage, because it does not exist')}delete lsdb.tables[tableid];LS.set(lsdbid,lsdb);localStorage.removeItem(lsdbid+"."+tableid);if(cb)cb(res);return res};LS.fromTable=function(databaseid,tableid,cb,idx,query){var lsdbid=alasql.databases[databaseid].lsdbid;var res=LS.get(lsdbid+"."+tableid);if(cb)res=cb(res,idx,query);return res};LS.intoTable=function(databaseid,tableid,value,columns,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var res=value.length;var tb=LS.get(lsdbid+"."+tableid);if(!tb)tb=[];tb=tb.concat(value);LS.set(lsdbid+"."+tableid,tb);if(cb)cb(res);return res};LS.loadTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;db.tables[tableid].data=LS.get(lsdbid+"."+tableid)};LS.saveTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;LS.set(lsdbid+"."+tableid,db.tables[tableid].data);db.tables[tableid].data=null};LS.commit=function(databaseid,cb){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb={databaseid:lsdbid,tables:{}};if(db.tables){for(var tbid in db.tables){lsdb.tables[tbid]={columns:db.tables[tbid].columns};LS.set(lsdbid+"."+tbid,db.tables[tbid].data)}}LS.set(lsdbid,lsdb);return 1};LS.begin=LS.commit;LS.rollback=function(databaseid,cb){var db=alasql.databases[databaseid];db.dbversion++;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(lsdb.tables){for(var tbid in lsdb.tables){var tb=new alasql.Table({columns:db.tables[tbid].columns});extend(tb,lsdb.tables[tbid]);lsdb.tables[tbid]=tb;if(!alasql.options.autocommit){lsdb.tables[tbid].data=LS.get(db.lsdbid+"."+tbid)}lsdb.tables[tbid].indexColumns()}}delete alasql.databases[databaseid];alasql.databases[databaseid]=new alasql.Database(databaseid);extend(alasql.databases[databaseid],lsdb);alasql.databases[databaseid].databaseid=databaseid;alasql.databases[databaseid].engineid="LOCALSTORAGE"};var SQLITE=alasql.engines.SQLITE=function(){};SQLITE.createDatabase=function(wdbid,args,ifnotexists,dbid,cb){throw new Error("Connot create SQLITE database in memory. Attach it.")};SQLITE.dropDatabase=function(databaseid){throw new Error("This is impossible to drop SQLite database. Detach it.")};SQLITE.attachDatabase=function(sqldbid,dbid,args,params,cb){var res=1;if(alasql.databases[dbid]){throw new Error('Unable to attach database as "'+dbid+'" because it already exists')}if(args[0]&&args[0]instanceof yy.StringValue||args[0]instanceof yy.ParamValue){if(args[0]instanceof yy.StringValue){var value=args[0].value}else if(args[0]instanceof yy.ParamValue){var value=params[args[0].param]}alasql.utils.loadBinaryFile(value,true,function(data){var db=new alasql.Database(dbid||sqldbid);db.engineid="SQLITE";db.sqldbid=sqldbid;var sqldb=db.sqldb=new SQL.Database(data);db.tables=[];var tables=sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;tables.forEach(function(tbl){db.tables[tbl[1]]={};var columns=db.tables[tbl[1]].columns=[];var ast=alasql.parse(tbl[4]);var coldefs=ast.statements[0].columns;if(coldefs&&coldefs.length>0){coldefs.forEach(function(cd){columns.push(cd)})}});cb(1)},function(err){throw new Error('Cannot open SQLite database file "'+args[0].value+'"')});return res}else{throw new Error("Cannot attach SQLite database without a file")}return res};SQLITE.fromTable=function(databaseid,tableid,cb,idx,query){var data=alasql.databases[databaseid].sqldb.exec("SELECT * FROM "+tableid);var columns=query.sources[idx].columns=[];if(data[0].columns.length>0){data[0].columns.forEach(function(columnid){columns.push({columnid:columnid})})}var res=[];if(data[0].values.length>0){data[0].values.forEach(function(d){var r={};columns.forEach(function(col,idx){r[col.columnid]=d[idx]});res.push(r)})}if(cb)cb(res,idx,query)};SQLITE.intoTable=function(databaseid,tableid,value,columns,cb){var sqldb=alasql.databases[databaseid].sqldb;for(var i=0,ilen=value.length;i1){var sql="REQUIRE "+paths.map(function(p){return'"'+p+'"'}).join(",");alasql(sql,[],cb)}}else if(path===false){delete alasql.webworker;return}}}
\ No newline at end of file
diff --git a/console/alasql.min.js b/console/alasql.min.js
index e7f03d56e9..69de515ef3 100644
--- a/console/alasql.min.js
+++ b/console/alasql.min.js
@@ -4,5 +4,5 @@ break;case 262:case 536:case 537:this.$=$$[$0-1];this.$.push($$[$0]);break;case
}};var Database=alasql.Database=function(databaseid){var self=this;if(self===alasql){if(databaseid){self=alasql.databases[databaseid];if(!self){throw new Error('Database "'+databaseid+'" not found')}}else{self=alasql.databases.alasql}}if(!databaseid){databaseid="db"+alasql.databasenum++}self.databaseid=databaseid;alasql.databases[databaseid]=self;self.tables={};self.views={};self.indices={};self.resetSqlCache();self.dbversion=0;return self};Database.prototype.resetSqlCache=function(){this.sqlCache={};this.sqlCacheSize=0};Database.prototype.exec=function(sql,params,cb){return alasql.dexec(this.databaseid,sql,params,cb)};Database.prototype.transaction=function(cb){var tx=new alasql.Transaction(this.databaseid);var res=cb(tx);return res};var Transaction=alasql.Transaction=function(databaseid){this.transactionid=Date.now();this.databaseid=databaseid;this.commited=false;this.dbversion=alasql.databases[databaseid].dbversion;this.bank=JSON.stringify(alasql.databases[databaseid]);return this};Transaction.prototype.commit=function(){this.commited=true;alasql.databases[this.databaseid].dbversion=Date.now();delete this.bank};Transaction.prototype.rollback=function(){if(!this.commited){alasql.databases[this.databaseid]=JSON.parse(this.bank);delete this.bank}else{throw new Error("Transaction already commited")}};Transaction.prototype.exec=function(sql,params,cb){return alasql.dexec(this.databaseid,sql,params,cb)};Transaction.prototype.executeSQL=Transaction.prototype.exec;var Table=alasql.Table=function(params){this.columns=[];this.xcolumns={};this.data=[];this.inddefs={};this.indices={};this.uniqs={};this.uniqdefs={};extend(this,params)};Table.prototype.indexColumns=function(){var self=this;self.xcolumns={};self.columns.forEach(function(col){self.xcolumns[col.columnid]=col})};var View=alasql.View=function(params){this.columns=[];this.xcolumns={};this.query=[];extend(this,params)};var Query=alasql.Query=function(params){this.alasql=alasql;this.columns=[];this.xcolumns={};this.selectGroup=[];this.groupColumns={};extend(this,params)};var Recordset=alasql.Recordset=function(params){extend(this,params)};var yy=parser.yy={};yy.extend=extend;yy.casesensitive=alasql.options.casesensitive;var Base=yy.Base=function(params){return yy.extend(this,params)};Base.prototype.toString=function(){};Base.prototype.toType=function(){};Base.prototype.toJavaScript=function(){};Base.prototype.compile=returnUndefined;Base.prototype.exec=function(){};Base.prototype.compile=returnUndefined;Base.prototype.exec=function(){};yy.Statements=function(params){return yy.extend(this,params)};yy.Statements.prototype.toString=function(){return this.statements.map(function(st){return st.toString()}).join(";"+NL())};yy.Statements.prototype.compile=function(db){var statements=this.statements.map(function(st){return st.compile(db)});if(statements.length==1){return statements[0]}else{return function(params,cb){var res=statements.map(function(st){return st(params)});if(cb)cb(res);return res}}};function queryfn(query,oldscope,cb,A,B){var ms;query.sourceslen=query.sources.length;var slen=query.sourceslen;query.query=query;query.A=A;query.B=B;query.cb=cb;query.oldscope=oldscope;if(query.queriesfn){query.sourceslen+=query.queriesfn.length;slen+=query.queriesfn.length;query.queriesdata=[];query.queriesfn.forEach(function(q,idx){q.query.params=query.params;if(false){queryfn(q.query,query.oldscope,queryfn2,-idx-1,query)}else{queryfn2([],-idx-1,query)}})}var scope;if(!oldscope)scope={};else scope=cloneDeep(oldscope);query.scope=scope;var result;query.sources.forEach(function(source,idx){source.query=query;var rs=source.datafn(query,query.params,queryfn2,idx,alasql);if(typeof rs!=undefined){if((query.intofn||query.intoallfn)&&rs instanceof Array)rs=rs.length;result=rs}source.queriesdata=query.queriesdata});if(slen==0)result=queryfn3(query);return result}function queryfn2(data,idx,query){if(idx>=0){var source=query.sources[idx];source.data=data;if(typeof source.data=="function"){source.getfn=source.data;source.dontcache=source.getfn.dontcache;if(source.joinmode=="OUTER"||source.joinmode=="RIGHT"||source.joinmode=="ANTI"){source.dontcache=false}source.data={}}}else{query.queriesdata[-idx-1]=flatArray(data)}query.sourceslen--;if(query.sourceslen>0)return;return queryfn3(query)}function queryfn3(query){var scope=query.scope;preIndex(query);query.data=[];query.xgroups={};query.groups=[];var h=0;doJoin(query,scope,h);if(query.groupfn){query.data=[];if(query.groups.length==0){var g={};if(query.selectGroup.length>0){query.selectGroup.forEach(function(sg){if(sg.aggregatorid=="COUNT"||sg.aggregatorid=="SUM"){g[sg.nick]=0}else{g[sg.nick]=undefined}})}query.groups=[g]}for(var i=0,ilen=query.groups.length;i0){for(var i=0,ilen=query.data.length;i0&&source.optimization=="ix"&&source.onleftfn&&source.onrightfn){if(source.databaseid&&alasql.databases[source.databaseid].tables[source.tableid]){if(!alasql.databases[source.databaseid].tables[source.tableid].indices)query.database.tables[source.tableid].indices={};var ixx=alasql.databases[source.databaseid].tables[source.tableid].indices[hash(source.onrightfns+"`"+source.srcwherefns)];if(!alasql.databases[source.databaseid].tables[source.tableid].dirty&&ixx){source.ix=ixx}}if(!source.ix){source.ix={};var scope={};var i=0;var ilen=source.data.length;var dataw;while((dataw=source.data[i])||source.getfn&&(dataw=source.getfn(i))||i=query.sources.length){if(query.wherefn(scope,query.params,alasql)){if(query.groupfn){query.groupfn(scope,query.params,query.alasql)}else{query.data.push(query.selectfn(scope,query.params,alasql))}}}else if(query.sources[h].applyselect){var source=query.sources[h];source.applyselect(query.params,function(data){if(data.length>0){for(var i=0;i0){s+=NL()+ID()+K("GROUP BY")+" "+this.group.map(function(grp){return grp.toString()}).join(", ")}if(this.having)s+=NL()+ID()+K("HAVING")+" "+this.having.toString();if(this.order&&this.order.length>0){s+=NL()+ID()+K("ORDER BY")+" "+this.order.map(function(ord){return ord.toString()}).join(", ")}if(this.limit)s+=NL()+ID()+K("LIMIT")+" "+this.limit.value;if(this.offset)s+=NL()+ID()+K("OFFSET")+" "+this.offset.value;if(this.union)s+=NL()+K("UNION")+NL()+this.union.toString();if(this.unionall)s+=NL()+K("UNION ALL")+NL()+this.unionall.toString();if(this.except)s+=NL()+K("EXCEPT")+NL()+this.except.toString();if(this.intersect)s+=NL()+K("INTERSECT")+NL()+this.intersect.toString();return s};yy.Select.prototype.toJavaScript=function(context,tableid,defcols){var s="alasql.utils.flatArray(this.queriesfn["+(this.queriesidx-1)+"](this.params,null,p))[0]";return s};yy.Select.prototype.compile=function(databaseid){var db=alasql.databases[databaseid];var query=new Query;query.removeKeys=[];query.explain=this.explain;query.explaination=[];query.explid=1;query.modifier=this.modifier;query.database=db;this.compileWhereExists(query);this.compileQueries(query);query.defcols=this.compileDefCols(query,databaseid);query.fromfn=this.compileFrom(query);if(this.joins)this.compileJoins(query);this.compileSelectGroup0(query);if(this.group||query.selectGroup.length>0){query.selectgfns=this.compileSelectGroup1(query)}else{query.selectfns=this.compileSelect1(query)}if(this.where)this.compileWhereJoins(query);query.wherefn=this.compileWhere(query);if(this.group||query.selectGroup.length>0)query.groupfn=this.compileGroup(query);if(this.having)query.havingfn=this.compileHaving(query);if(this.group||query.selectGroup.length>0){query.selectgfn=this.compileSelectGroup2(query)}else{query.selectfn=this.compileSelect2(query)}query.distinct=this.distinct;if(this.order)query.orderfn=this.compileOrder(query);if(this.top){query.limit=this.top.value}else if(this.limit){query.limit=this.limit.value;if(this.offset){query.offset=this.offset.value}}query.percent=this.percent;if(this.union){query.unionfn=this.union.compile(databaseid);if(this.union.order){query.orderfn=this.union.compileOrder(query)}else{query.orderfn=null}}else if(this.unionall){query.unionallfn=this.unionall.compile(databaseid);if(this.unionall.order){query.orderfn=this.unionall.compileOrder(query)}else{query.orderfn=null}}else if(this.except){query.exceptfn=this.except.compile(databaseid);if(this.except.order){query.orderfn=this.except.compileOrder(query)}else{query.orderfn=null}}else if(this.intersect){query.intersectfn=this.intersect.compile(databaseid);if(this.intersect.order){query.intersectfn=this.intersect.compileOrder(query)}else{query.orderfn=null}}if(this.into){if(this.into instanceof yy.Table){if(alasql.options.autocommit&&alasql.databases[this.into.databaseid||databaseid].engineid){query.intoallfns='return alasql.engines["'+alasql.databases[this.into.databaseid||databaseid].engineid+'"]'+'.intoTable("'+(this.into.databaseid||databaseid)+'","'+this.into.tableid+'",this.data, columns, cb);'}else{query.intofns="alasql.databases['"+(this.into.databaseid||databaseid)+"'].tables"+"['"+this.into.tableid+"'].data.push(r);"}}else if(this.into instanceof yy.VarValue){query.intoallfns='alasql.vars["'+this.into.variable+'"]=this.data;res=1;if(cb)res=cb(res);return res;'}else if(this.into instanceof yy.FuncValue){var qs="alasql.into['"+this.into.funcid.toUpperCase()+"'](";if(this.into.args&&this.into.args.length>0){qs+=this.into.args[0].toJavaScript()+",";if(this.into.args.length>1){qs+=this.into.args[1].toJavaScript()+","}else{qs+="null,"}}else{qs+="null, null,"}query.intoallfns=qs+"this.data,columns,cb)"}else if(this.into instanceof yy.ParamValue){query.intofns="params['"+this.into.param+"'].push(r)"}if(query.intofns){query.intofn=new Function("r,i,params,alasql",query.intofns)}if(query.intoallfns){query.intoallfn=new Function("columns,cb,alasql",query.intoallfns)}}var statement=function(params,cb,oldscope){query.params=params;var res1=queryfn(query,oldscope,function(res){var res2=modify(query,res);if(cb)cb(res2);return res2});return res1};statement.query=query;return statement};function modify(query,res){if(query.modifier=="VALUE"){if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];res=res[0][key]}else{res=undefined}}if(query.modifier=="ROW"){if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];var a=[];for(var key in res[0]){a.push(res[0][key])}res=a}else{res=undefined}}if(query.modifier=="COLUMN"){var ar=[];if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];for(var i=0,ilen=res.length;i0){key=query.columns[0].columnid;val=query.columns[1].columnid}else{var okeys=Object.keys(res[0]);key=okeys[0];val=okeys[1]}for(var i=0,ilen=res.length;i0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];var s="";for(var i=0,ilen=res.length;i0){if(tq.args[0]){s+=tq.args[0].toJavaScript("query.oldscope")+","}else{s+="null,"}if(tq.args[1]){s+=tq.args[1].toJavaScript("query.oldscope")+","}else{s+="null,"}}else{s+="null,null,"}s+="cb,idx,query";s+=");/*if(cb)res=cb(res,idx,query);*/return res";source.datafn=new Function("query, params, cb, idx, alasql",s)}else if(tq instanceof yy.FromData){source.datafn=function(query,params,cb,idx,alasql){var res=tq.data;if(cb)res=cb(res,idx,query);return res}}else{throw new Error("Wrong table at FROM")}query.sources.push(source)});query.defaultTableid=query.sources[0].alias};alasql.prepareFromData=function(data,array){var res=data;if(typeof data=="string"){res=data.split(/\r?\n/);if(array){for(var i=0,ilen=res.length;i0){if(jn.args[0]){s+=jn.args[0].toJavaScript("query.oldscope")+","}else{s+="null,"}if(jn.args[1]){s+=jn.args[1].toJavaScript("query.oldscope")+","}else{s+="null,"}}else{s+="null,null,"}s+="cb,idx,query";s+=");/*if(cb)res=cb(res,idx,query);*/return res";source.datafn=new Function("query, params, cb, idx, alasql",s);query.aliases[source.alias]={type:"funcvalue"}}var alias=source.alias;if(jn.natural){if(jn.using||jn.on){throw new Error("NATURAL JOIN cannot have USING or ON clauses")}else{if(query.sources.length>0){var prevSource=query.sources[query.sources.length-1];var prevTable=alasql.databases[prevSource.databaseid].tables[prevSource.tableid];var table=alasql.databases[source.databaseid].tables[source.tableid];if(prevTable&&table){var c1=prevTable.columns.map(function(col){return col.columnid});var c2=table.columns.map(function(col){return col.columnid});jn.using=arrayIntersect(c1,c2).map(function(colid){return{columnid:colid}})}else{throw new Error("In this version of Alasql NATURAL JOIN "+"works for tables with predefined columns only")}}}}if(jn.using){var prevSource=query.sources[query.sources.length-1];source.onleftfns=jn.using.map(function(col){return"p['"+(prevSource.alias||prevSource.tableid)+"']['"+col.columnid+"']"}).join('+"`"+');source.onleftfn=new Function("p,params,alasql","return "+source.onleftfns);source.onrightfns=jn.using.map(function(col){return"p['"+(source.alias||source.tableid)+"']['"+col.columnid+"']"}).join('+"`"+');source.onrightfn=new Function("p,params,alasql","return "+source.onrightfns);source.optimization="ix"}else if(jn.on){if(jn.on instanceof yy.Op&&jn.on.op=="="&&!jn.on.allsome){source.optimization="ix";var lefts="";var rights="";var middles="";var middlef=false;var ls=jn.on.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=jn.on.right.toJavaScript("p",query.defaultTableid,query.defcols);if(ls.indexOf("p['"+alias+"']")>-1&&!(rs.indexOf("p['"+alias+"']")>-1)){if((ls.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){rights=ls}else{middlef=true}}else if(!(ls.indexOf("p['"+alias+"']")>-1)&&rs.indexOf("p['"+alias+"']")>-1){if((rs.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){lefts=ls}else{middlef=true}}else{middlef=true}if(rs.indexOf("p['"+alias+"']")>-1&&!(ls.indexOf("p['"+alias+"']")>-1)){if((rs.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){rights=rs}else{middlef=true}}else if(!(rs.indexOf("p['"+alias+"']")>-1)&&ls.indexOf("p['"+alias+"']")>-1){if((ls.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){lefts=rs}else{middlef=true}}else{middlef=true}if(middlef){rights="";lefts="";middles=jn.on.toJavaScript("p",query.defaultTableid,query.defcols);source.optimization="no"}source.onleftfns=lefts;source.onrightfns=rights;source.onmiddlefns=middles||"true";source.onleftfn=new Function("p,params,alasql","return "+source.onleftfns);source.onrightfn=new Function("p,params,alasql","return "+source.onrightfns);source.onmiddlefn=new Function("p,params,alasql","return "+source.onmiddlefns)}else{source.optimization="no";source.onmiddlefns=jn.on.toJavaScript("p",query.defaultTableid,query.defcols);source.onmiddlefn=new Function("p,params,alasql","return "+jn.on.toJavaScript("p",query.defaultTableid,query.defcols))}}query.sources.push(source)}})};yy.Select.prototype.compileWhere=function(query){if(this.where){if(typeof this.where=="function"){return this.where}else{s=this.where.toJavaScript("p",query.defaultTableid,query.defcols);query.wherefns=s;return new Function("p,params,alasql","return "+s)}}else return function(){return true}};yy.Select.prototype.compileWhereJoins=function(query){return;optimizeWhereJoin(query,this.where.expression);query.sources.forEach(function(source){if(source.srcwherefns){source.srcwherefn=new Function("p,params,alasql","return "+source.srcwherefns)}if(source.wxleftfns){source.wxleftfn=new Function("p,params,alasql","return "+source.wxleftfns)}if(source.wxrightfns){source.wxrightfn=new Function("p,params,alasql","return "+source.wxrightfns)}})};function optimizeWhereJoin(query,ast){if(!ast)return false;if(!(ast instanceof yy.Op))return;if(ast.op!="="&&ast.op!="AND")return;if(ast.allsome)return;var s=ast.toJavaScript("p",query.defaultTableid,query.defcols);var fsrc=[];query.sources.forEach(function(source,idx){if(source.tableid){if(s.indexOf("p['"+source.alias+"']")>-1)fsrc.push(source)}});if(fsrc.length==0){return}else if(fsrc.length==1){if(!(s.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+fsrc[0].alias+"']"})){return}var src=fsrc[0];src.srcwherefns=src.srcwherefns?src.srcwherefns+"&&"+s:s;if(ast instanceof yy.Op&&(ast.op=="="&&!ast.allsome)){if(ast.left instanceof yy.Column){var ls=ast.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=ast.right.toJavaScript("p",query.defaultTableid,query.defcols);if(rs.indexOf("p['"+fsrc[0].alias+"']")==-1){fsrc[0].wxleftfns=ls;fsrc[0].wxrightfns=rs}}if(ast.right instanceof yy.Column){var ls=ast.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=ast.right.toJavaScript("p",query.defaultTableid,query.defcols);if(ls.indexOf("p['"+fsrc[0].alias+"']")==-1){fsrc[0].wxleftfns=rs;fsrc[0].wxrightfns=ls}}}ast.reduced=true;return}else{if(ast.op="AND"){optimizeWhereJoin(query,ast.left);optimizeWhereJoin(query,ast.right)}}}yy.Select.prototype.compileGroup=function(query){var self=this;var tableid=query.sources[0].alias;var defcols=query.defcols;var allgroup=[[]];if(this.group){allgroup=decartes(this.group,query)
}var allgroups=[];allgroup.forEach(function(a){allgroups=arrayUnion(allgroups,a)});query.allgroups=allgroups;if(false){allgroups.forEach(function(col2){if(query.selectColumns[colid]){}else{var tmpid="default";if(query.sources.length>0)tmpid=query.sources[0].alias;if(Object.keys(query.selectColumns).length!=0)query.removeKeys.push(colid);query.selectfns+="r['"+escapeq(colid)+"']="+new yy.Column({columnid:colid}).toJavaScript("p",tmpid)+";"}})}var s="";allgroup.forEach(function(agroup){s+="var g=this.xgroups[";var rg=agroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];if(columnid=="")return"1";else return coljs});if(rg.length==0)rg=["''"];s+=rg.join('+"`"+');s+="];if(!g) {this.groups.push((g=this.xgroups[";s+=rg.join('+"`"+');s+="] = {";s+=agroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];if(columnid=="")return"";else return"'"+columnid+"':"+coljs+","}).join("");var neggroup=arrayDiff(allgroups,agroup);s+=neggroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];return"'"+columnid+"':null,"}).join("");var aft="";s+=query.selectGroup.map(function(col,idx){var colexp=col.expression.toJavaScript("p",tableid,defcols);var colas=col.nick;if(col instanceof yy.AggrValue){if(col.distinct){aft+=",g['$$_VALUES_"+colas+"']={},g['$$_VALUES_"+colas+"']["+colexp+"]=true"}if(col.aggregatorid=="SUM"||col.aggregatorid=="MIN"||col.aggregatorid=="MAX"||col.aggregatorid=="FIRST"||col.aggregatorid=="LAST"){return"'"+colas+"':"+colexp+","}else if(col.aggregatorid=="ARRAY"){return"'"+colas+"':["+colexp+"],"}else if(col.aggregatorid=="COUNT"){if(col.expression.columnid=="*"){return"'"+colas+"':1,"}else{return"'"+colas+"':(typeof "+colexp+' != "undefined")?1:0,'}}else if(col.aggregatorid=="AVG"){query.removeKeys.push("_SUM_"+colas);query.removeKeys.push("_COUNT_"+colas);return"'"+colas+"':"+colexp+",'_SUM_"+colas+"':"+colexp+",'_COUNT_"+colas+"':1,"}else if(col.aggregatorid=="AGGR"){aft+=",g['"+colas+"']="+col.expression.toJavaScript("g",-1);return""}else if(col.aggregatorid=="REDUCE"){return"'"+colas+"':alasql.aggr['"+col.funcid+"']("+colexp+"),"}return""}else return""}).join("");s+="}"+aft+",g));} else {";s+=query.selectGroup.map(function(col,idx){var colas=col.nick;var colexp=col.expression.toJavaScript("p",tableid,defcols);if(col instanceof yy.AggrValue){if(col.distinct){var pre="if(typeof "+colexp+'!="undefined" && (!g[\'$$_VALUES_'+colas+"']["+colexp+"])) {";var post="g['$$_VALUES_"+colas+"']["+colexp+"]=true;}"}else{var pre="",post=""}if(col.aggregatorid=="SUM"){return pre+"g['"+colas+"']+="+colexp+";"+post}else if(col.aggregatorid=="COUNT"){if(col.expression.columnid=="*")return pre+"g['"+colas+"']++;"+post;else{return pre+"if(typeof "+colexp+'!="undefined") g[\''+colas+"']++;"+post}}else if(col.aggregatorid=="ARRAY"){return pre+"g['"+colas+"'].push("+colexp+");"+post}else if(col.aggregatorid=="MIN"){return pre+"g['"+colas+"']=Math.min(g['"+colas+"'],"+colexp+");"+post}else if(col.aggregatorid=="MAX"){return pre+"g['"+colas+"']=Math.max(g['"+colas+"'],"+colexp+");"+post}else if(col.aggregatorid=="FIRST"){return""}else if(col.aggregatorid=="LAST"){return pre+"g['"+colas+"']="+colexp+";"+post}else if(col.aggregatorid=="AVG"){return pre+"g['_SUM_"+colas+"']+="+colexp+";"+"g['_COUNT_"+colas+"']++;"+"g['"+colas+"']=g['_SUM_"+colas+"']/g['_COUNT_"+colas+"'];"+post}else if(col.aggregatorid=="AGGR"){return pre+"g['"+colas+"']="+col.expression.toJavaScript("g",-1)+";"+post}else if(col.aggregatorid=="REDUCE"){return pre+"g['"+colas+"']=alasql.aggr."+col.funcid+"("+colexp+",g['"+colas+"']);"+post}return""}else return""}).join("");s+="}"});return new Function("p,params,alasql",s)};function compileSelectStar(query,alias){var s="",sp="",ss=[];if(query.aliases[alias].tableid){var columns=alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns}if(columns&&columns.length>0){columns.forEach(function(tcol){ss.push("'"+tcol.columnid+"':p['"+alias+"']['"+tcol.columnid+"']");query.selectColumns[escapeq(tcol.columnid)]=true;var coldef={columnid:tcol.columnid,dbtypeid:tcol.dbtypeid,dbsize:tcol.dbsize,dbprecision:tcol.dbprecision,dbenum:tcol.dbenum};query.columns.push(coldef);query.xcolumns[coldef.columnid]=coldef})}else{sp+='var w=p["'+alias+'"];for(var k in w){r[k]=w[k]};';query.dirtyColumns=true}return{s:ss.join(","),sp:sp}}yy.Select.prototype.compileSelect1=function(query){var self=this;query.columns=[];query.xcolumns={};query.selectColumns={};query.dirtyColumns=false;var s="var r={";var sp="";var ss=[];this.columns.forEach(function(col){if(col instanceof yy.Column){if(col.columnid=="*"){if(col.func){sp+="r=params['"+col.param+"'](p['"+query.sources[0].alias+"'],p,params,alasql);"}else if(col.tableid){var ret=compileSelectStar(query,col.tableid);if(ret.s)ss=ss.concat(ret.s);sp+=ret.sp}else{for(var alias in query.aliases){var ret=compileSelectStar(query,alias);if(ret.s)ss=ss.concat(ret.s);sp+=ret.sp}}}else{var tbid=col.tableid;var dbid=col.databaseid||query.sources[0].databaseid||query.database.databaseid;if(!tbid)tbid=query.defcols[col.columnid];if(!tbid)tbid=query.defaultTableid;if(col.columnid!="_"){ss.push("'"+escapeq(col.as||col.columnid)+"':p['"+tbid+"']['"+col.columnid+"']")}else{ss.push("'"+escapeq(col.as||col.columnid)+"':p['"+tbid+"']")}query.selectColumns[escapeq(col.as||col.columnid)]=true;if(query.aliases[tbid]&&query.aliases[tbid].type=="table"){if(!alasql.databases[dbid].tables[query.aliases[tbid].tableid]){throw new Error("Table '"+tbid+"' does not exists in database")}var columns=alasql.databases[dbid].tables[query.aliases[tbid].tableid].columns;var xcolumns=alasql.databases[dbid].tables[query.aliases[tbid].tableid].xcolumns;if(xcolumns&&columns.length>0){var tcol=xcolumns[col.columnid];var coldef={columnid:col.as||col.columnid,dbtypeid:tcol.dbtypeid,dbsize:tcol.dbsize,dbpecision:tcol.dbprecision,dbenum:tcol.dbenum};query.columns.push(coldef);query.xcolumns[coldef.columnid]=coldef}else{query.dirtyColumns=true}}else{}}}else if(col instanceof yy.AggrValue){if(!self.group){self.group=[""]}if(!col.as)col.as=escapeq(col.toString());if(col.aggregatorid=="SUM"||col.aggregatorid=="MAX"||col.aggregatorid=="MIN"||col.aggregatorid=="FIRST"||col.aggregatorid=="LAST"||col.aggregatorid=="AVG"||col.aggregatorid=="ARRAY"||col.aggregatorid=="REDUCE"){ss.push("'"+escapeq(col.as)+"':"+col.expression.toJavaScript("p",query.defaultTableid,query.defcols))}else if(col.aggregatorid=="COUNT"){ss.push("'"+escapeq(col.as)+"':1")}query.selectColumns[col.aggregatorid+"("+escapeq(col.expression.toString())+")"]=thtd}else{ss.push("'"+escapeq(col.as||col.columnid||col.toString())+"':"+col.toJavaScript("p",query.defaultTableid,query.defcols));query.selectColumns[escapeq(col.as||col.columnid||col.toString())]=true}});s+=ss.join(",")+"};"+sp;return s};yy.Select.prototype.compileSelect2=function(query){var s=query.selectfns;return new Function("p,params,alasql",s+"return r")};yy.Select.prototype.compileSelectGroup0=function(query){var self=this;self.columns.forEach(function(col,idx){if(col instanceof yy.Column&&col.columnid=="*"){}else{var colas;if(col instanceof yy.Column){colas=escapeq(col.columnid)}else{colas=escapeq(col.toString())}for(var i=0;irb)return 1;if(ra==rb)return 0;return-1}}var s="";var sk="";this.order.forEach(function(ord,idx){var dg="";if(ord.expression instanceof yy.NumValue){ord.expression=self.columns[ord.expression.value-1]}if(ord.expression instanceof yy.Column){var columnid=ord.expression.columnid;if(query.xcolumns[columnid]){var dbtypeid=query.xcolumns[columnid].dbtypeid;if(dbtypeid=="DATE"||dbtypeid=="DATETIME")dg=".valueOf()"}else{if(alasql.options.valueof)dg=".valueOf()"}if(ord.nocase)dg+=".toUpperCase()";s+="if(a['"+columnid+"']"+dg+(ord.direction=="ASC"?">":"<")+"b['"+columnid+"']"+dg+")return 1;";s+="if(a['"+columnid+"']"+dg+"==b['"+columnid+"']"+dg+"){"}else{dg=".valueOf()";if(ord.nocase)dg+=".toUpperCase()";s+="if("+ord.toJavaScript("a","")+dg+(ord.direction=="ASC"?">":"<")+ord.toJavaScript("b","")+dg+")return 1;";s+="if("+ord.toJavaScript("a","")+dg+"=="+ord.toJavaScript("b","")+dg+"){"}sk+="}"});s+="return 0;";s+=sk+"return -1";query.orderfns=s;return new Function("a,b",s)}};var rollup=function(a,query){var rr=[];var mask=0;var glen=a.length;for(var g=0;g"){var s=this.left.toString()+"->";if(typeof this.right!="string"&&typeof this.right!="number")s+="(";s+=this.right.toString();if(typeof this.right!="string"&&typeof this.right!="number")s+=")";return s}return this.left.toString()+" "+P(this.op)+" "+(this.allsome?this.allsome+" ":"")+this.right.toString()};yy.Op.prototype.findAggregator=function(query){if(this.left&&this.left.findAggregator)this.left.findAggregator(query);if(this.right&&this.right.findAggregator&&!this.allsome){this.right.findAggregator(query)}};yy.Op.prototype.toType=function(tableid){if(["-","*","/","%","^"].indexOf(this.op)>-1)return"number";if(this.op=="+"){if(this.left.toType(tableid)=="string"||this.right.toType(tableid)=="string")return"string";if(this.left.toType(tableid)=="number"||this.right.toType(tableid)=="number")return"number"}if(["AND","OR","NOT","=","==","===","!=","!==","!===",">",">=","<","<=","IN","NOT IN","LIKE","NOT LIKE"].indexOf(this.op)>-1)return"boolean";if(this.op=="BETWEEN"||this.op=="NOT BETWEEN"||this.op=="IS NULL"||this.op=="IS NOT NULL")return"boolean";if(this.allsome)return"boolean";if(!this.op)return this.left.toType();return"unknown"};yy.Op.prototype.toJavaScript=function(context,tableid,defcols){var op=this.op;if(this.op=="=")op="===";else if(this.op=="<>")op="!=";else if(this.op=="OR")op="||";if(this.op=="->"){if(typeof this.right=="string"){return this.left.toJavaScript(context,tableid,defcols)+'["'+this.right+'"]'}else if(typeof this.right=="number"){return this.left.toJavaScript(context,tableid,defcols)+"["+this.right+"]"}else if(this.right instanceof yy.FuncValue){ss=[];if(!this.right.args||this.right.args.length==0){}else{var ss=this.right.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)})}return this.left.toJavaScript(context,tableid,defcols)+"['"+this.right.funcid+"']("+ss.join(",")+")"}else{return this.left.toJavaScript(context,tableid,defcols)+"["+this.right.toJavaScript(context,tableid,defcols)+"]"}}if(this.op=="IS"){return"((typeof "+this.left.toJavaScript(context,tableid,defcols)+"=='undefined') == "+"(typeof "+this.right.toJavaScript(context,tableid,defcols)+"=='undefined'))"}if(this.op=="=="){return"alasql.utils.deepEqual("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+")"}if(this.op=="==="){return"(("+this.left.toJavaScript(context,tableid,defcols)+").valueOf()===("+this.right.toJavaScript(context,tableid,defcols)+".valueOf()))"}if(this.op=="!==="){return"!(("+this.left.toJavaScript(context,tableid,defcols)+").valueOf()===("+this.right.toJavaScript(context,tableid,defcols)+".valueOf()))"}if(this.op=="!=="){return"(!alasql.utils.deepEqual("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+"))"}if(this.op=="LIKE"){var s="("+this.left.toJavaScript(context,tableid,defcols)+"+'')"+".toUpperCase().match(new RegExp('^'+("+this.right.toJavaScript(context,tableid,defcols)+").replace(/\\%/g,'.*').toUpperCase()+'$','g'))";return s}if(this.op=="NOT LIKE"){var s="!(("+this.left.toJavaScript(context,tableid,defcols)+"+'')"+".toUpperCase().match(new RegExp('^'+("+this.right.toJavaScript(context,tableid,defcols)+").replace(/\\%/g,'.*').toUpperCase()+'$','g')))";return s}if(this.op=="BETWEEN"){if(this.right instanceof yy.Op&&this.right.op=="AND"){return"(("+this.right.left.toJavaScript(context,tableid,defcols)+"<="+this.left.toJavaScript(context,tableid,defcols)+")&&"+"("+this.left.toJavaScript(context,tableid,defcols)+"<="+this.right.right.toJavaScript(context,tableid,defcols)+"))"}else{throw new Error("Wrong BETWEEN operator without AND part")}}if(this.op=="NOT BETWEEN"){if(this.right instanceof yy.Op&&this.right.op=="AND"){return"!(("+this.right.left.toJavaScript(context,tableid,defcols)+"<="+this.left.toJavaScript(context,tableid,defcols)+")&&"+"("+this.left.toJavaScript(context,tableid,defcols)+"<="+this.right.right.toJavaScript(context,tableid,defcols)+"))"}else{throw new Error("Wrong NOT BETWEEN operator without AND part")}}if(this.op=="IN"){if(this.right instanceof yy.Select){var s="(";s+="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}else if(this.right instanceof Array){var s="(["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}else{var s="("+this.right.toJavaScript(context,tableid,defcols)+".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}}if(this.op=="NOT IN"){if(this.right instanceof yy.Select){var s="(";s+="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")<0)";return s}else if(this.right instanceof Array){var s="(["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")<0)";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.allsome=="ALL"){if(this.right instanceof yy.Select){var s="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".every(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else if(this.right instanceof Array){var s="["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].every(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.allsome=="SOME"||this.allsome=="ANY"){if(this.right instanceof yy.Select){var s="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".some(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else if(this.right instanceof Array){var s="["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].some(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.op=="AND"){if(this.left.reduced){if(this.right.reduced){return"true"}else{return this.right.toJavaScript(context,tableid,defcols)}}else if(this.right.reduced){return this.left.toJavaScript(context,tableid,defcols)}op="&&"}if(this.op=="^"){return"Math.pow("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+")"}return"("+this.left.toJavaScript(context,tableid,defcols)+op+this.right.toJavaScript(context,tableid,defcols)+")"};yy.VarValue=function(params){return yy.extend(this,params)};yy.VarValue.prototype.toString=function(){return"@"+L(this.variable)};yy.VarValue.prototype.toType=function(){return"unknown"};yy.VarValue.prototype.toJavaScript=function(){return"alasql.vars['"+this.variable+"']"};yy.NumValue=function(params){return yy.extend(this,params)};yy.NumValue.prototype.toString=function(){return N(this.value.toString())};yy.NumValue.prototype.toType=function(){return"number"};yy.NumValue.prototype.toJavaScript=function(){return""+this.value};yy.StringValue=function(params){return yy.extend(this,params)};yy.StringValue.prototype.toString=function(){return"'"+S(this.value.toString())+"'"};yy.StringValue.prototype.toType=function(){return"string"};yy.StringValue.prototype.toJavaScript=function(){return"'"+escapeq(this.value)+"'"};yy.LogicValue=function(params){return yy.extend(this,params)};yy.LogicValue.prototype.toString=function(){return this.value?"TRUE":"FALSE"};yy.LogicValue.prototype.toType=function(){return"boolean"};yy.LogicValue.prototype.toJavaScript=function(){return this.value?"true":"false"};yy.NullValue=function(params){return yy.extend(this,params)};yy.NullValue.prototype.toString=function(){return"NULL"};yy.NullValue.prototype.toJavaScript=function(){return"undefined"};yy.ParamValue=function(params){return yy.extend(this,params)};yy.ParamValue.prototype.toString=function(){return"$"+this.param};yy.ParamValue.prototype.toJavaScript=function(){if(typeof this.param=="string")return"params['"+this.param+"']";else return"params["+this.param+"]"};yy.UniOp=function(params){return yy.extend(this,params)};yy.UniOp.prototype.toString=function(){if(this.op=="-")return this.op+this.right.toString();if(this.op=="+")return this.op+this.right.toString();if(this.op=="NOT")return this.op+"("+this.right.toString()+")";else if(this.op==null)return"("+this.right.toString()+")"};yy.UniOp.prototype.findAggregator=function(query){if(this.right.findAggregator)this.right.findAggregator(query)};yy.UniOp.prototype.toType=function(tableid){if(this.op=="-")return"number";if(this.op=="+")return"number";if(this.op=="NOT")return"boolean"};yy.UniOp.prototype.toJavaScript=function(context,tableid,defcols){if(this.op=="-")return"(-("+this.right.toJavaScript(context,tableid,defcols)+"))";if(this.op=="+")return"("+this.right.toJavaScript(context,tableid,defcols)+")";if(this.op=="NOT")return"!("+this.right.toJavaScript(context,tableid,defcols)+")";else if(this.op==null)return"("+this.right.toJavaScript(context,tableid,defcols)+")"};yy.Column=function(params){return yy.extend(this,params)};yy.Column.prototype.toString=function(){var s;if(this.columnid==+this.columnid){s="["+this.columnid+"]"}else{s=this.columnid}if(this.tableid){if(+this.columnid==this.columnid){s=this.tableid+s}else{s=this.tableid+"."+s}if(this.databaseid){s=this.databaseid+"."+s}}return s};yy.Column.prototype.toJavaScript=function(context,tableid,defcols){var s="";if(!this.tableid&&tableid==""&&!defcols){if(this.columnid!="_"){s=context+"['"+this.columnid+"']"}else{if(context=="g"){s="g['_']"}else{s=context}}}else{if(context=="g"){s="g['"+this.nick+"']"}else if(this.tableid){if(this.columnid!="_"){s=context+"['"+this.tableid+"']['"+this.columnid+"']"}else{if(context=="g"){s="g['_']"}else{s=context+"['"+this.tableid+"']"}}}else if(defcols){var tbid=defcols[this.columnid];if(tbid=="-"){throw new Error('Cannot resolve column "'+this.columnid+'" because it exists in two source tables')}else if(tbid){if(this.columnid!="_"){s=context+"['"+tbid+"']['"+this.columnid+"']"}else{s=context+"['"+tbid+"']"}}else{if(this.columnid!="_"){s=context+"['"+(this.tableid||tableid)+"']['"+this.columnid+"']"}else{s=context+"['"+(this.tableid||tableid)+"']"}}}else if(tableid==-1){s=context+"['"+this.columnid+"']"}else{if(this.columnid!="_"){s=context+"['"+(this.tableid||tableid)+"']['"+this.columnid+"']"}else{s=context+"['"+(this.tableid||tableid)+"']"}}}return s};yy.AggrValue=function(params){return yy.extend(this,params)};yy.AggrValue.prototype.toString=function(){var s="";if(this.aggregatorid=="REDUCE")s+=L(this.funcid)+"(";else s+=this.aggregatorid+"(";if(this.distinct)s+=K("DISTINCT")+" ";if(this.expression)s+=this.expression.toString();s+=")";if(this.over)s+=" "+this.over.toString();return s};yy.AggrValue.prototype.findAggregator=function(query){var colas=escapeq(this.toString())+":"+query.selectGroup.length;var found=false;if(!found){if(!this.nick){this.nick=colas;var found=false;for(var i=0;i-1)return"number";if(["ARRAY"].indexOf(this.aggregatorid)>-1)return"array";if(["FIRST","LAST"].indexOf(this.aggregatorid)>-1)return this.expression.toType()};yy.AggrValue.prototype.toJavaScript=function(context,tableid,defcols){var colas=this.nick;if(typeof colas=="undefined")colas=this.toString();return"g['"+colas+"']"};yy.OrderExpression=function(params){return yy.extend(this,params)};yy.OrderExpression.prototype.toString=function(){var s=this.expression.toString();if(this.order)s+=" "+this.order.toString();if(this.nocase)s+=" "+K("COLLATE")+" "+K("NOCASE");return s};yy.GroupExpression=function(params){return yy.extend(this,params)};yy.GroupExpression.prototype.toString=function(){return this.type+"("+this.group.toString()+")"};yy.ColumnDef=function(params){return yy.extend(this,params)};yy.ColumnDef.prototype.toString=function(){var s=this.columnid;if(this.dbtypeid)s+=" "+this.dbtypeid;if(this.dbsize){s+="("+this.dbsize;if(this.dbprecision)s+=","+this.dbprecision;s+=")"}if(this.primarykey)s+=" PRIMARY KEY";if(this.notnull)s+=" NOT NULL";return s};yy.FromData=function(params){return yy.extend(this,params)};yy.FromData.prototype.toString=function(){if(this.data)return K("DATA")+"("+(Math.random()*1e16|0)+")";else return"?"};yy.FromData.prototype.toJavaScript=function(){};yy.Select.prototype.exec=function(params,cb){if(this.preparams)params=this.preparams.concat(params);var databaseid=alasql.useid;db=alasql.databases[databaseid];var sql=this.toString();var hh=hash(sql);var statement=this.compile(databaseid);if(!statement)return;statement.sql=sql;statement.dbversion=db.dbversion;if(db.sqlCacheSize>alasql.MAXSQLCACHESIZE){db.resetSqlCache()}db.sqlCacheSize++;db.sqlCache[hh]=statement;var res=alasql.res=statement(params,cb);return res};yy.Select.prototype.Select=function(){var self=this;var agrs=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}self.columns=[];args.forEach(function(arg){if(typeof arg=="string"){self.columns.push(new yy.Column({columnid:arg}))}else if(typeof arg=="function"){var pari=0;if(self.preparams){pari=self.preparams.length}else{self.preparams=[]}self.preparams.push(arg);self.columns.push(new yy.Column({columnid:"*",func:arg,param:pari}))}else{}});return self};yy.Select.prototype.From=function(tableid){var self=this;if(!self.from)self.from=[];if(tableid instanceof Array){var pari=0;if(self.preparams){pari=self.preparams.length}else{self.preparams=[]}self.preparams.push(tableid);self.from.push(new yy.ParamValue({param:pari}))}else if(typeof tableid=="string"){self.from.push(new yy.Table({tableid:tableid}))}else{throw new Error("Unknown arguments in From() function")}return self};yy.Select.prototype.OrderBy=function(){var self=this;var agrs=[];self.order=[];if(arguments.length==0){args=["_"]}else if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}if(args.length>0){args.forEach(function(arg){var expr=new yy.Column({columnid:arg});if(typeof arg=="function"){expr=arg}self.order.push(new yy.OrderExpression({expression:expr,direction:"ASC"}))})}return self};yy.Select.prototype.Top=function(topnum){var self=this;self.top=new yy.NumValue({value:topnum});return self};yy.Select.prototype.GroupBy=function(){var self=this;var agrs=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]
}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}self.group=[];args.forEach(function(arg){var expr=new yy.Column({columnid:arg});self.group.push(expr)});return self};yy.Select.prototype.Where=function(expr){var self=this;if(typeof expr=="function"){self.where=expr}return self};yy.FuncValue=function(params){return yy.extend(this,params)};yy.FuncValue.prototype.toString=function(){var s="";if(alasql.fn[this.funcid])s+=this.funcid;else if(alasql.aggr[this.funcid])s+=this.funcid;else if(alasql.stdlib[this.funcid.toUpperCase()]||alasql.stdfn[this.funcid.toUpperCase()])s+=this.funcid.toUpperCase();s+="(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toString()}).join(",")}s+=")";if(this.as)s+=" AS "+this.as.toString();return s};yy.FuncValue.prototype.findAggregator=function(query){if(this.args&&this.args.length>0){this.args.forEach(function(arg){if(arg.findAggregator)arg.findAggregator(query)})}};yy.FuncValue.prototype.toJavaScript=function(context,tableid,defcols){var s="";var funcid=this.funcid;if(alasql.fn[funcid]){if(this.newid)s+="new ";s+="alasql.fn."+this.funcid+"(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)}).join(",")}s+=")"}else if(alasql.stdlib[funcid.toUpperCase()]){if(this.args&&this.args.length>0){s+=alasql.stdlib[funcid.toUpperCase()].apply(this,this.args.map(function(arg){return arg.toJavaScript(context,tableid)}))}else{s+=alasql.stdlib[funcid.toUpperCase()]()}}else if(alasql.stdfn[funcid.toUpperCase()]){if(this.newid)s+="new ";s+="alasql.stdfn."+this.funcid.toUpperCase()+"(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)}).join(",")}s+=")"}else{}return s};var stdlib=alasql.stdlib={};var stdfn=alasql.stdfn={};stdlib.ABS=function(a){return"Math.abs("+a+")"};stdlib.CLONEDEEP=function(a){return"alasql.utils.cloneDeep("+a+")"};stdlib.IIF=function(a,b,c){if(arguments.length==3){return"(("+a+")?("+b+"):("+c+"))"}else{throw new Error("Number of arguments of IFF is not equals to 3")}};stdlib.IFNULL=function(a,b){return"("+a+"||"+b+")"};stdlib.INSTR=function(s,p){return"(("+s+").indexOf("+p+")+1)"};stdlib.LEN=stdlib.LENGTH=function(s){return"("+s+'+"").length'};stdlib.LOWER=stdlib.LCASE=function(s){return"("+s+").toLowerCase()"};stdlib.GREATEST=function(){return"Math.max("+Array.prototype.join.call(arguments,",")+")"};stdlib.LEAST=function(){return"Math.min("+Array.prototype.join.call(arguments,",")+")"};stdlib.MID=function(a,b,c){if(arguments.length==2)return"("+a+").substr("+b+"-1)";else if(arguments.length==3)return"("+a+").substr("+b+"-1,"+c+")"};stdlib.NULLIF=function(a,b){return"("+a+"=="+b+"?null:"+a+")"};stdlib.POWER=function(a,b){return"Math.pow("+a+","+b+")"};stdlib.RANDOM=function(r){if(arguments.length==0){return"Math.random()"}else{return"(Math.random()*("+r+")|0)"}};stdlib.ROUND=function(s,d){if(arguments.length==2){return"Math.round("+s+"*Math.pow(10,"+d+"))/Math.pow(10,"+d+")"}else{return"Math.round("+s+")"}};stdlib.SQRT=function(s){return"Math.sqrt("+s+")"};stdlib.TRIM=function(s){return s+".trim()"};stdlib.UPPER=stdlib.UCASE=function(s){return"("+s+").toUpperCase()"};alasql.aggr.GROUP_CONCAT=function(v,s){if(typeof s=="undefined")return v;else return s+","+v};yy.CaseValue=function(params){return yy.extend(this,params)};yy.CaseValue.prototype.toString=function(){var s="CASE ";if(this.expression)s+=this.expression.toString();if(this.whens){s+=this.whens.map(function(w){return" WHEN "+w.when.toString()+" THEN "+w.then.toString()}).join()}s+=" END";return s};yy.CaseValue.prototype.findAggregator=function(query){if(this.expression&&this.expression.findAggregator)this.expression.findAggregator(query);if(this.whens&&this.whens.length>0){this.whens.forEach(function(w){if(w.when.findAggregator)w.when.findAggregator(query);if(w.then.findAggregator)w.then.findAggregator(query)})}};yy.CaseValue.prototype.toJavaScript=function(context,tableid,defcols){var s="(function("+context+",params,alasql){var r;";if(this.expression){s+="v="+this.expression.toJavaScript(context,tableid,defcols)+";";s+=(this.whens||[]).map(function(w){return" if(v=="+w.when.toJavaScript(context,tableid,defcols)+") {r="+w.then.toJavaScript(context,tableid,defcols)+"}"}).join(" else ");if(this.elses)s+=" else {r="+this.elses.toJavaScript(context,tableid,defcols)+"}"}else{s+=(this.whens||[]).map(function(w){return" if("+w.when.toJavaScript(context,tableid,defcols)+") {r="+w.then.toJavaScript(context,tableid,defcols)+"}"}).join(" else ");if(this.elses)s+=" else {r="+this.elses.toJavaScript(context,tableid,defcols)+"}"}s+="return r;})("+context+",params,alasql)";return s};yy.Json=function(params){return yy.extend(this,params)};yy.Json.prototype.toString=function(){var s="@";s+=JSONtoString(this.value);s+="";return s};var JSONtoString=alasql.utils.JSONtoString=function(obj){var s="";if(typeof obj=="string")s='"'+obj+'"';else if(typeof obj=="number")s=obj;else if(typeof obj=="boolean")s=obj;else if(typeof obj=="object"){if(obj instanceof Array){s+="["+obj.map(function(b){return JSONtoString(b)}).join(",")+"]"}else if(!obj.toJavaScript||obj instanceof yy.Json){s="{";var ss=[];for(var k in obj){var s1="";if(typeof k=="string")s1+='"'+k+'"';else if(typeof k=="number")s1+=k;else if(typeof k=="boolean")s1+=k;else{throw new Error("THis is not ES6... no expressions on left side yet")}s1+=":"+JSONtoString(obj[k]);ss.push(s1)}s+=ss.join(",")+"}"}else if(obj.toString){s=obj.toString()}else{throw new Error("1Can not show JSON object "+JSON.stringify(obj))}}else{throw new Error("2Can not show JSON object "+JSON.stringify(obj))}return s};function JSONtoJavaScript(obj,context,tableid,defcols){var s="";if(typeof obj=="string")s='"'+obj+'"';else if(typeof obj=="number")s="("+obj+")";else if(typeof obj=="boolean")s=obj;else if(typeof obj=="object"){if(obj instanceof Array){s+="["+obj.map(function(b){return JSONtoJavaScript(b,context,tableid,defcols)}).join(",")+"]"}else if(!obj.toJavaScript||obj instanceof yy.Json){s="{";var ss=[];for(var k in obj){var s1="";if(typeof k=="string")s1+='"'+k+'"';else if(typeof k=="number")s1+=k;else if(typeof k=="boolean")s1+=k;else{throw new Error("THis is not ES6... no expressions on left side yet")}s1+=":"+JSONtoJavaScript(obj[k],context,tableid,defcols);ss.push(s1)}s+=ss.join(",")+"}"}else if(obj.toJavaScript){s=obj.toJavaScript(context,tableid,defcols)}else{throw new Error("1Can not parse JSON object "+JSON.stringify(obj))}}else{throw new Error("2Can not parse JSON object "+JSON.stringify(obj))}return s}yy.Json.prototype.toJavaScript=function(context,tableid,defcols){return JSONtoJavaScript(this.value,context,tableid,defcols)};yy.Convert=function(params){return yy.extend(this,params)};yy.Convert.prototype.toString=function(){var s="CONVERT(";s+=this.dbtypeid;if(typeof this.dbsize!="undefined"){s+="("+this.dbsize;if(this.dbprecision)s+=","+dbprecision;s+=")"}s+=","+this.expression.toString();if(this.style)s+=","+this.style;s+=")";return s};yy.Convert.prototype.toJavaScript=function(context,tableid,defcols){return"alasql.stdfn.CONVERT("+this.expression.toJavaScript(context,tableid,defcols)+',{dbtypeid:"'+this.dbtypeid+'",dbsize:'+this.dbsize+",style:"+this.style+"})";throw new Error("There is not such type conversion for "+this.toString())};alasql.stdfn.CONVERT=function(value,args){var val=value;if(args.style){var t;if(/\d{8}/.test(val))t=new Date(+val.substr(0,4),+val.substr(4,2)-1,+val.substr(6,2));else t=new Date(val);if(args.style==1){val=("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)+"/"+("0"+t.getYear()).substr(-2)}else if(args.style==2){val=("0"+t.getYear()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getDate()).substr(-2)}else if(args.style==3){val=("0"+t.getDate()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getYear()).substr(-2)}else if(args.style==4){val=("0"+t.getDate()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getYear()).substr(-2)}else if(args.style==5){val=("0"+t.getDate()).substr(-2)+"-"+("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getYear()).substr(-2)}else if(args.style==6){val=("0"+t.getDate()).substr(-2)+" "+t.toString().substr(4,3).toLowerCase()+" "+("0"+t.getYear()).substr(-2)}else if(args.style==7){val=t.toString().substr(4,3)+" "+("0"+t.getDate()).substr(-2)+","+("0"+t.getYear()).substr(-2)}else if(args.style==8){val=("0"+t.getHours()).substr(-2)+":"+("0"+(t.getMinutes()+1)).substr(-2)+":"+("0"+t.getSeconds()).substr(-2)}else if(args.style==10){val=("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getDate()).substr(-2)+"-"+("0"+t.getYear()).substr(-2)}else if(args.style==11){val=("0"+t.getYear()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)}else if(args.style==12){val=("0"+t.getYear()).substr(-2)+("0"+(t.getMonth()+1)).substr(-2)+("0"+t.getDate()).substr(-2)}else if(args.style==101){val=("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)+"/"+t.getFullYear()}else if(args.style==102){val=t.getFullYear()+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getDate()).substr(-2)}else if(args.style==103){val=("0"+t.getDate()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+t.getFullYear()}else if(args.style==104){val=("0"+t.getDate()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+t.getFullYear()}else if(args.style==105){val=("0"+t.getDate()).substr(-2)+"-"+("0"+(t.getMonth()+1)).substr(-2)+"-"+t.getFullYear()}else if(args.style==106){val=("0"+t.getDate()).substr(-2)+" "+t.toString().substr(4,3).toLowerCase()+" "+t.getFullYear()}else if(args.style==107){val=t.toString().substr(4,3)+" "+("0"+t.getDate()).substr(-2)+","+t.getFullYear()}else if(args.style==108){val=("0"+t.getHours()).substr(-2)+":"+("0"+(t.getMinutes()+1)).substr(-2)+":"+("0"+t.getSeconds()).substr(-2)}else if(args.style==110){val=("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getDate()).substr(-2)+"-"+t.getFullYear()}else if(args.style==111){val=t.getFullYear()+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)}else if(args.style==112){val=t.getFullYear()+("0"+(t.getMonth()+1)).substr(-2)+("0"+t.getDate()).substr(-2)}else{throw new Error("The CONVERT style "+args.style+" is not realized yet.")}}if(args.dbtypeid=="Date"){return new Date(val)}else if(args.dbtypeid.toUpperCase()=="DATE"){var d=new Date(val);var s=d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);return s}else if(args.dbtypeid=="DATETIME"){var d=new Date(val);var s=d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);s+=" "+("0"+d.getHours()).substr(-2)+":"+("0"+d.getMinutes()).substr(-2)+":"+("0"+d.getSeconds()).substr(-2);s+="."+("00"+d.getMilliseconds()).substr(-3);return s}else if(args.dbtypeid.toUpperCase()=="STRING"){return""+val}else if(args.dbtypeid.toUpperCase()=="NUMBER"||args.dbtypeid=="FLOAT"){return+val}else if(args.dbtypeid.toUpperCase()=="MONEY"){var m=+val;return(m|0)+m*100%100/100}else if(args.dbtypeid.toUpperCase()=="BOOLEAN"){return!!val}else if(args.dbtypeid.toUpperCase()=="INT"){return val|0}else if(args.dbtypeid.toUpperCase()=="VARCHAR"||args.dbtypeid=="NVARCHAR"){if(args.dbsize)return(""+val).substr(0,args.dbsize);else return""+val}else if(args.dbtypeid.toUpperCase()=="CHAR"||args.dbtypeid=="NCHAR"){return(val+new Array(args.dbsize+1).join(" ")).substr(0,args.dbsize)}};yy.ColumnDef=function(params){return yy.extend(this,params)};yy.ColumnDef.prototype.toString=function(){var s=this.columnid;if(this.dbtypeid)s+=" "+this.dbtypeid;if(this.dbsize){s+="("+this.dbsize;if(this.dbprecision)s+=","+this.dbprecision;s+=")"}if(this.primarykey)s+=" PRIMARY KEY";if(this.notnull)s+=" NOT NULL";return s};yy.CreateTable=function(params){return yy.extend(this,params)};yy.CreateTable.prototype.toString=function(){var s=K("CREATE");if(this.temporary)s+=" "+K("TEMPORARY");if(this.view)s+=" "+K("VIEW");else s+=" "+K("TABLE");if(this.ifnotexists)s+=" "+K("IF")+" "+K("NOT")+" "+K("EXISTS");s+=" "+this.table.toString();if(this.viewcolumns){s+="("+this.viewcolumns.map(function(vcol){return vcol.toString()}).join(",")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);else{var ss=this.columns.map(function(col){return col.toString()});s+=" ("+NL()+ID()+ss.join(","+NL()+ID())+")"}if(this.view&&this.select){s+=" AS "+this.select.toString()}return s};yy.CreateTable.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.table.databaseid||databaseid];var tableid=this.table.tableid;if(!tableid){throw new Error("Table name is not defined")}var columns=this.columns;var constraints=this.constraints||[];if(this.ifnotexists&&db.tables[tableid])return 0;if(db.tables[tableid]){throw new Error("Can not create table '"+tableid+"', because it already exists in the database '"+db.databaseid+"'")}var table=db.tables[tableid]=new alasql.Table;var ss=[];if(this.columns){this.columns.forEach(function(col){var dbtypeid=col.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();var newcol={columnid:col.columnid,dbtypeid:dbtypeid};if(col.default){ss.push("'"+col.columnid+"':"+col.default.toJavaScript())}table.columns.push(newcol);table.xcolumns[newcol.columnid]=newcol;if(col.primarykey){var pk=table.pk={};pk.columns=[col.columnid];pk.onrightfns="r['"+col.columnid+"']";pk.onrightfn=new Function("r","return "+pk.onrightfns);pk.hh=hash(pk.onrightfns);table.indices[pk.hh]={}}})}table.defaultfns=ss.join(",");constraints.forEach(function(con){if(con.type=="PRIMARY KEY"){if(table.pk){throw new Error("Primary key already exists")}var pk=table.pk={};pk.columns=con.columns;pk.onrightfns=pk.columns.map(function(columnid){return"r['"+columnid+"']"}).join("+'`'+");pk.onrightfn=new Function("r","return "+pk.onrightfns);pk.hh=hash(pk.onrightfns);table.indices[pk.hh]={}}});if(this.view&&this.viewcolumns){var self=this;this.viewcolumns.forEach(function(vcol,idx){self.select.columns[idx].as=vcol.columnid})}if(db.engineid){return alasql.engines[db.engineid].createTable(this.table.databaseid||databaseid,tableid,this.ifnotexists,cb)}table.insert=function(r){if(this.pk){var pk=this.pk;var addr=pk.onrightfn(r);if(typeof this.indices[pk.hh][addr]!="undefined"){throw new Error("Cannot insert record, because it already exists in primary key")}else{table.data.push(r);this.indices[pk.hh][addr]=r}}else{table.data.push(r)}};table.delete=function(i){if(this.pk){var r=this.data[i];var pk=this.pk;var addr=pk.onrightfn(r);if(typeof this.indices[pk.hh][addr]=="undefined"){throw new Error("Something wrong with index on table")}else{this.indices[pk.hh][addr]=undefined}}};table.deleteall=function(){this.data.length=0;if(this.pk){this.indices[this.pk.hh]={}}};table.update=function(assignfn,i,params){if(this.pk){var r=this.data[i];var pk=this.pk;var addr=pk.onrightfn(r,params);if(typeof this.indices[pk.hh][addr]=="undefined"){throw new Error("Something wrong with index on table")}else{this.indices[pk.hh][addr]=undefined;assignfn(r,params,alasql);var newaddr=pk.onrightfn(r);if(typeof this.indices[pk.hh][newaddr]!="undefined"){throw new Error("Record already exists")}else{this.indices[pk.hh][newaddr]=r}}}else{assignfn(this.data[i],params,alasql)}};if(this.view&&this.select){table.view=true;table.select=this.select.compile(this.table.databaseid||databaseid)}if(cb)cb(1);return 1};alasql.fn.Date=Object;alasql.fn.Date=Date;alasql.fn.Number=Number;alasql.fn.String=String;alasql.fn.Boolean=Boolean;stdfn.EXTEND=alasql.utils.extend;stdfn.CHAR=String.fromCharCode.bind(String);stdfn.ASCII=function(a){return a.charCodeAt(0)};stdfn.COALESCE=function(){for(var i=0;i0){for(var i=0,ilen=table.data.length;i0){for(var i=0,ilen=table.data.length;i=0){q+="+"+values[idx].toJavaScript()}else if(alasql.fn[table.xcolumns[col.columnid].dbtypeid]){q+="(new "+table.xcolumns[col.columnid].dbtypeid+"(";q+=values[idx].toJavaScript();q+="))"}else{q+=values[idx].toJavaScript()}}else{q+=values[idx].toJavaScript()}ss.push(q)})}else{if(values instanceof Array&&table.columns&&table.columns.length>0){table.columns.forEach(function(col,idx){var q="'"+col.columnid+"':";if(["INT","FLOAT","NUMBER","MONEY"].indexOf(col.dbtypeid)>=0){q+="+"+values[idx].toJavaScript()}else if(alasql.fn[col.dbtypeid]){q+="(new "+col.dbtypeid+"(";q+=values[idx].toJavaScript();q+="))"}else{q+=values[idx].toJavaScript()}ss.push(q)})}else{sw=JSONtoJavaScript(values)}}if(db.tables[tableid].defaultfns)ss.unshift(db.tables[tableid].defaultfns);if(sw){s+="a="+sw+";"}else{s+="a={"+ss.join(",")+"};"}if(db.tables[tableid].insert){s+="alasql.databases['"+databaseid+"'].tables['"+tableid+"'].insert(a);"}else{s+="aa.push(a);"}});s33=s3+s;if(db.tables[tableid].insert){}else{s+="alasql.databases['"+databaseid+"'].tables['"+tableid+"'].data="+"alasql.databases['"+databaseid+"'].tables['"+tableid+"'].data.concat(aa);"}s+="return "+self.values.length;var insertfn=new Function("db, params, alasql",s3+s)}else if(this.select){selectfn=this.select.compile(databaseid);if(db.engineid&&alasql.engines[db.engineid].intoTable){var statement=function(params,cb){var aa=selectfn(params);var res=alasql.engines[db.engineid].intoTable(db.databaseid,tableid,aa,null,cb);return res};return statement}else{var insertfn=function(db,params,alasql){var res=selectfn(params);db.tables[tableid].data=db.tables[tableid].data.concat(res);return res.length}}}else if(this.default){var insertfns="db.tables['"+tableid+"'].data.push({"+table.defaultfns+"});return 1;";var insertfn=new Function("db,params,alasql",insertfns)}else{throw new Error("Wrong INSERT parameters")}if(db.engineid&&alasql.engines[db.engineid].intoTable&&alasql.options.autocommit){var statement=function(params,cb){var aa=new Function("db,params",s33+"return aa;")(db,params);var res=alasql.engines[db.engineid].intoTable(db.databaseid,tableid,aa,null,cb);return res}}else{var statement=function(params,cb){var db=alasql.databases[databaseid];if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var res=insertfn(db,params,alasql);if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].saveTableData(databaseid,tableid)}if(cb)cb(res);return res}}return statement};yy.Insert.prototype.execute=function(databaseid,params,cb){return this.compile(databaseid)(params,cb)};yy.Delete=function(params){return yy.extend(this,params)};yy.Delete.prototype.toString=function(){var s="DELETE FROM "+this.table.toString();if(this.where)s+=" WHERE "+this.where.toString();return s};yy.Delete.prototype.compile=function(databaseid){databaseid=this.table.databaseid||databaseid;var tableid=this.table.tableid;var statement;var db=alasql.databases[databaseid];if(this.where){wherefn=new Function("r,params","return ("+this.where.toJavaScript("r","")+")");statement=function(params,cb){if(db.engineid&&alasql.engines[db.engineid].deleteFromTable){return alasql.engines[db.engineid].deleteFromTable(databaseid,tableid,wherefn,params,cb)}if(alasql.options.autocommit&&db.engineid&&db.engineid=="LOCALSTORAGE"){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var table=db.tables[tableid];var orignum=table.data.length;var newtable=[];for(var i=0,ilen=table.data.length;i0){s+="("+this.args.map(function(arg){return arg.toString()}).join(", ")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.CreateDatabase.prototype.execute=function(databaseid,params,cb){var args;if(this.args&&this.args.length>0){args=this.args.map(function(arg){return new Function("params","return "+arg.toJavaScript())(params)})}if(this.engineid){var res=alasql.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,cb);return res}else{var dbid=this.databaseid;if(alasql.databases[dbid]){throw new Error("Database '"+dbid+"' already exists")}var a=new alasql.Database(dbid);var res=1;if(cb)return cb(res);return res}};yy.AttachDatabase=function(params){return yy.extend(this,params)};yy.AttachDatabase.prototype.toString=function(){var s=K("ATTACH");if(this.engineid)s+=" "+L(this.engineid);s+=" "+K("DATABASE")+" "+L(this.databaseid);if(args){s+="(";if(args.length>0){s+=args.map(function(arg){return arg.toJavaScript()}).join(", ")}s+=")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.AttachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.engines[this.engineid]){throw new Error('Engine "'+this.engineid+'" is not defined.')}var res=alasql.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,cb);return res};yy.DetachDatabase=function(params){return yy.extend(this,params)};yy.DetachDatabase.prototype.toString=function(){var s=K("DETACH");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DetachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.databases[this.databaseid].engineid){throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.')}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.UseDatabase=function(params){return yy.extend(this,params)};yy.UseDatabase.prototype.toString=function(){return K("USE")+" "+K("DATABASE")+" "+L(this.databaseid)};yy.UseDatabase.prototype.execute=function(databaseid,params,cb){var dbid=this.databaseid;if(!alasql.databases[dbid]){throw new Error("Database '"+dbid+"' does not exist")}alasql.use(dbid);var res=1;if(cb)cb(res);return res};yy.DropDatabase=function(params){return yy.extend(this,params)};yy.DropDatabase.prototype.toString=function(){var s=K("DROP");if(this.ifexists)s+=" "+K("IF")+" "+K("EXISTS");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DropDatabase.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,cb)}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{if(alasql.databases[dbid].engineid){throw new Error("Cannot drop database '"+dbid+"', because it is attached. Detach it.")}delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.Declare=function(params){return yy.extend(this,params)};yy.Declare.prototype.toString=function(){var s=K("DECLARE")+" ";if(this.declares&&this.declares.length>0){s=this.declares.map(function(declare){var s="";s+="@"+L(declare.variable)+" ";s+=declare.dbtypeid;if(this.dbsize)s+="("+N(this.dbsize);if(this.dbprecision)s+=","+N(this.dbprecision);s+=")";if(declare.expression)s+=" = "+declare.expression.toString();return s}).join(",")}return s};yy.Declare.prototype.execute=function(databaseid,params,cb){var res=1;if(this.declares&&this.declares.length>0){this.declares.map(function(declare){var dbtypeid=declare.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();alasql.declares[declare.variable]={dbtypeid:dbtypeid,dbsize:declare.dbsize,dbprecision:declare.dbprecision};if(declare.expression){alasql.vars[declare.variable]=new Function("params,alasql","return "+declare.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[declare.variable]){alasql.vars[declare.variable]=alasql.stdfn.CONVERT(alasql.vars[declare.variable],alasql.declares[declare.variable])}}})}if(cb)res=cb(res);return res};yy.ShowDatabases=function(params){return yy.extend(this,params)};yy.ShowDatabases.prototype.toString=function(){var s=K("SHOW")+" "+K("DATABASES");if(this.like)s+="LIKE "+this.like.toString();return s};yy.ShowDatabases.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].showDatabases(this.like,cb)}else{var self=this;var res=[];for(dbid in alasql.databases){res.push({databaseid:dbid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.databaseid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res}};yy.ShowTables=function(params){return yy.extend(this,params)};yy.ShowTables.prototype.toString=function(){var s=K("SHOW")+" "+K("TABLES");if(this.databaseid)s+=" FROM "+this.databaseid;if(this.like)s+=" "+K("LIKE")+" "+this.like.toString();return s};yy.ShowTables.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.databaseid||databaseid];var self=this;var res=[];for(tableid in db.tables){res.push({tableid:tableid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.tableid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res};yy.ShowColumns=function(params){return yy.extend(this,params)};yy.ShowColumns.prototype.toString=function(){var s=K("SHOW")+" "+K("COLUMNS");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowColumns.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table&&table.columns){var res=table.columns.map(function(col){return{columnid:col.columnid,dbtypeid:col.dbtypeid,dbsize:col.dbsize}});return res}else{return[]}};yy.ShowIndex=function(params){return yy.extend(this,params)};yy.ShowIndex.prototype.toString=function(){var s=K("SHOW")+" "+K("INDEX");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowIndex.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;var res=[];if(table&&table.indices){for(var ind in table.indices){res.push({hh:ind,len:Object.keys(table.indices[ind]).length})}}return res};yy.ShowCreateTable=function(params){return yy.extend(this,params)};yy.ShowCreateTable.prototype.toString=function(){var s=K("SHOW")+" "+K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid);if(this.databaseid)s+=" "+K("FROM")+" "+L(this.databaseid);return s};yy.ShowCreateTable.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table){var s=K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid)+" (";var ss=[];if(table.columns){table.columns.forEach(function(col){var a=L(col.columnid)+" "+K(col.dbtypeid);if(col.dbsize)a+="("+N(col.dbsize)+")";if(col.primarykey)a+=" "+K("PRIMARY")+" "+K("KEY");ss.push(a)});s+=ss.join(", ")}s+=")";return s}else{throw new Error('There is no such table "'+this.table.tableid+'"')}};yy.SetVariable=function(params){return yy.extend(this,params)};yy.SetVariable.prototype.toString=function(){var s=K("SET")+" ";if(typeof this.value!="undefined")s+=K(this.variable.toUpperCase())+" "+(this.value?"ON":"OFF");if(this.expression)s+="@"+L(this.variable)+" = "+this.expression.toString();return s};yy.SetVariable.prototype.execute=function(databaseid,params,cb){if(typeof this.value!="undefined"){var val=this.value;if(val=="ON")val=true;else if(val=="OFF")val=false;alasql.options[this.variable]=val}else if(this.expression){var res=new Function("params,alasql","return "+this.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[this.variable]){res=alasql.stdfn.CONVERT(res,alasql.declares[this.variable])}if(this.props&&this.props.length>0){var fs="alasql.vars['"+this.variable+"']";fs+=this.props.map(function(prop){if(typeof prop=="string"){return"['"+prop+"']"}else if(typeof prop=="number"){return"["+prop+"]"}else{return"["+prop.toJavaScript()+"]"}}).join();new Function("value,alasql",fs+"=value")(res,alasql)}else{alasql.vars[this.variable]=res}}var res=1;if(cb)res=cb(res);return res};alasql.test=function(name,times,fn){if(arguments.length==0){alasql.log(alasql.con.results);return}else if(arguments.length==1){var tm=Date.now();fn();alasql.con.log(Date.now()-tm);return}if(arguments.length==2){fn=times;times=1}var tm=Date.now();for(var i=0;i",sql);if(res instanceof Array){if(console.table){console.table(res)}else{console.log(JSONtoString(res))}}else{console.log(JSONtoString(res))}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}var s="";if(typeof sql=="string"&&alasql.options.logprompt){s+=""+alasql.pretty(sql)+"
"}if(res instanceof Array){if(res.length==0){s+="[ ]
"}else if(typeof res[0]!="object"||res[0]instanceof Array){for(var i=0,ilen=res.length;i"+loghtml(res[i])+"
"}}else{s+=loghtml(res)}}else{s+=loghtml(res)}el.innerHTML+=s}};alasql.clear=function(){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.clear){console.clear()}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML=""}};alasql.write=function(s){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.log){console.log(s)}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML+=s}};function loghtml(res){var s="";if(typeof res=="undefined"){s+="undefined"}else if(res instanceof Array){s+="";s+="";var cols=[];for(colid in res[0]){cols.push(colid)}s+="#";cols.forEach(function(colid){s+=" | "+colid});for(var i=0,ilen=res.length;i"+(i+1);cols.forEach(function(colid){s+=" | ";if(+res[i][colid]==+res[i][colid]){s+=' ';if(typeof res[i][colid]=="undefined")s+="NULL";else s+=res[i][colid];s+=" "}else{if(typeof res[i][colid]=="undefined"){s+="NULL"}else if(typeof res[i][colid]=="string"){s+=res[i][colid]}else s+=JSONtoString(res[i][colid])}})}s+=" | |
---|
"}else{s+=""+JSONtoString(res)+"
"}return s}function scrollTo(element,to,duration){if(duration<=0)return;var difference=to-element.scrollTop;var perTick=difference/duration*10;setTimeout(function(){if(element.scrollTop==to)return;element.scrollTop=element.scrollTop+perTick;scrollTo(element,to,duration-10)},10)}alasql.prompt=function(el,useidel,firstsql){if(typeof exports=="object"){throw new Error("The functionality of prompt is not realized for Node.js")}var prompti=0;if(typeof el=="string")el=document.getElementById(el);if(typeof useidel=="string")useidel=document.getElementById(useidel);useidel.textContent=alasql.useid;if(firstsql){alasql.prompthistory.push(firstsql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(firstsql);alasql.write(''+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+sql+"
");alasql.write(''+err+"
")}}var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500);el.onkeydown=function(event){if(event.which==13){var sql=el.value;var olduseid=alasql.useid;el.value="";alasql.prompthistory.push(sql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(sql);alasql.write('
'+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+alasql.pretty(sql,false)+"
");alasql.write(''+err+"
")}el.focus();useidel.textContent=alasql.useid;var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500)}else if(event.which==38){prompti--;if(prompti<0)prompti=0;if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}else if(event.which==40){prompti++;if(prompti>=alasql.prompthistory.length){prompti=alasql.prompthistory.length;el.value=""}else if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}}};yy.BeginTransaction=function(params){return yy.extend(this,params)};yy.BeginTransaction.prototype.toString=function(){return K("BEGIN")+" "+K("TRANSACTION")};yy.BeginTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid,cb)}else{}if(cb)cb(res);return res};yy.CommitTransaction=function(params){return yy.extend(this,params)};yy.CommitTransaction.prototype.toString=function(){return K("COMMIT")+" "+K("TRANSACTION")};yy.CommitTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid,cb)}else{}if(cb)cb(res);return res};yy.RollbackTransaction=function(params){return yy.extend(this,params)};yy.RollbackTransaction.prototype.toString=function(){return K("ROLLBACK")+" "+K("TRANSACTION")};yy.RollbackTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid,cb)}else{}if(cb)cb(res);return res};alasql.into.SQL=function(filename,opts,data,columns,cb){var res;if(typeof filename=="object"){opts=filename;filename=""}var opt={};alasql.utils.extend(opt,opts);if(typeof opt.tableid=="undefined"){throw new Error("Table for INSERT TO is not defined.")}var s="";if(columns.length==0){if(typeof data[0]=="object"){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}else{}}for(var i=0,ilen=data.length;i0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var res=data.length;var s="";if(data.length>0){var key=columns[0].columnid;s+=data.map(function(d){return d[key]}).join("\n")}alasql.utils.saveFile(filename,s);if(cb)res=cb(res);return res};alasql.into.TAB=alasql.into.TSV=function(filename,opts,data,columns,cb){var opt={};alasql.utils.extend(opt,opts);opt.separator=" ";return alasql.into.CSV(filename,opt,data,columns,cb)};alasql.into.CSV=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var opt={};opt.separator=",";opt.quote='"';alasql.utils.extend(opt,opts);var res=data.length;var s="";if(opt.headers){s+=columns.map(function(col){return col.columnid}).join(opt.separator)+"\n"}data.forEach(function(d,idx){s+=columns.map(function(col){var s=d[col.columnid];s=(s+"").replace(new RegExp("\\"+opt.quote,"g"),'""');if((s+"").indexOf(opt.separator)>-1||(s+"").indexOf(opt.quote)>-1)s=opt.quote+s+opt.quote;return s}).join(opt.separator)+"\n"});if(filename){alasql.utils.saveFile(filename,s)}else{console.log(s)}if(cb)res=cb(res);return res};alasql.into.XLSX=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof exports=="object"){var XLSX=require("xlsx")}else{var XLSX=window.XLSX}var opt={sheetid:"Sheet1",headers:true};alasql.utils.extend(opt,opts);var res=data.length;var wb={SheetNames:[],Sheets:{}};if(opt.sourcefilename){alasql.utils.loadBinaryFile(opt.sourcefilename,!!cb,function(data){wb=XLSX.read(data,{type:"binary"});doExport()})}else{doExport()}function doExport(){var cells={};if(wb.SheetNames.indexOf(opt.sheetid)>-1){cells=wb.Sheets[opt.sheetid]}else{wb.SheetNames.push(opt.sheetid);wb.Sheets[opt.sheetid]={};cells=wb.Sheets[opt.sheetid]}var range="A1";if(opt.range)range=opt.range;var col0=alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);var row0=+range.match(/[0-9]+/)[0]-1;if(wb.Sheets[opt.sheetid]["!ref"]){var rangem=wb.Sheets[opt.sheetid]["!ref"];var colm=alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);var rowm=+rangem.match(/[0-9]+/)[0]-1}else{var colm=1,rowm=1}var colmax=Math.max(col0+columns.length,colm);var rowmax=Math.max(row0+data.length+2,rowm);var i=row0+1;wb.Sheets[opt.sheetid]["!ref"]="A1:"+alasql.utils.xlsnc(colmax)+rowmax;if(opt.headers){columns.forEach(function(col,idx){cells[alasql.utils.xlsnc(col0+idx)+""+i]={v:col.columnid}});i++}for(var j=0;j=N)return EOF;if(eol)return eol=false,EOL;var j=I;if(text.charCodeAt(j)===quoteCode){var i=j;while(i++http://github/agershun/alasq for more information'}];yy.Help.prototype.execute=function(databaseid,params,cb){var ss=[];if(!this.subject){ss=helpdocs}else{ss.push('See also http://github/agershun/alasq for more information')}if(cb)ss=cb(ss);return ss};yy.Print=function(params){return yy.extend(this,params)};yy.Print.prototype.toString=function(){var s=K("PRINT");if(this.statement)s+=" "+this.statement.toString();return s};yy.Print.prototype.execute=function(databaseid,params,cb){var res,s;if(this.statement){s=this.statement.execute(databaseid,params)}else{s=""}s=JSONtoString(s);console.log(s);if(cb)res=cb(res);return res};yy.Source=function(params){return yy.extend(this,params)};yy.Source.prototype.toString=function(){var s=K("SOURCE");if(this.url)s+=" "+S("'"+this.url+"'");return s};yy.Source.prototype.execute=function(databaseid,params,cb){var res;loadFile(this.url,!!cb,function(data){res=alasql(data);if(cb)res=cb(res);return res},function(err){throw err});return res};yy.Require=function(params){return yy.extend(this,params)};yy.Require.prototype.toString=function(){var s=K("REQUIRE");if(this.paths&&this.paths.length>0){s+=this.paths.map(function(path){return path.toString()}).join(",")}return s};yy.Require.prototype.execute=function(databaseid,params,cb){var self=this;var res=0;var ss="";if(this.paths.length>0){this.paths.forEach(function(path){loadFile(path.value,!!cb,function(data){res++;ss+=data;if(res0){res=res.filter(function(d){return d.databaseid.match(relike)})}}if(cb)cb(res);return res};LS.createTable=function(databaseid,tableid,ifnotexists,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var tb=LS.get(lsdbid+"."+tableid);var res=1;if(tb&&!ifnotexists){throw new Error('Table "'+tableid+'" alsready exists in localStorage database "'+lsdbid+'"')}var lsdb=LS.get(lsdbid);var table=alasql.databases[databaseid].tables[tableid];lsdb.tables[tableid]={columns:table.columns};LS.set(lsdbid,lsdb);LS.set(lsdbid+"."+tableid,[]);if(cb)cb(res);return res};LS.dropTable=function(databaseid,tableid,ifexists,cb){var res=1;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(!ifexists&&!lsdb.tables[tableid]){throw new Error('Cannot drop table "'+tableid+'" in localStorage, because it does not exist')}delete lsdb.tables[tableid];LS.set(lsdbid,lsdb);localStorage.removeItem(lsdbid+"."+tableid);if(cb)cb(res);return res};LS.fromTable=function(databaseid,tableid,cb,idx,query){var lsdbid=alasql.databases[databaseid].lsdbid;var res=LS.get(lsdbid+"."+tableid);if(cb)res=cb(res,idx,query);return res};LS.intoTable=function(databaseid,tableid,value,columns,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var res=value.length;var tb=LS.get(lsdbid+"."+tableid);if(!tb)tb=[];tb=tb.concat(value);LS.set(lsdbid+"."+tableid,tb);if(cb)cb(res);return res};LS.loadTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;db.tables[tableid].data=LS.get(lsdbid+"."+tableid)};LS.saveTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;LS.set(lsdbid+"."+tableid,db.tables[tableid].data);db.tables[tableid].data=null};LS.commit=function(databaseid,cb){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb={databaseid:lsdbid,tables:{}};if(db.tables){for(var tbid in db.tables){lsdb.tables[tbid]={columns:db.tables[tbid].columns};LS.set(lsdbid+"."+tbid,db.tables[tbid].data)}}LS.set(lsdbid,lsdb);return 1};LS.begin=LS.commit;LS.rollback=function(databaseid,cb){var db=alasql.databases[databaseid];db.dbversion++;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(lsdb.tables){for(var tbid in lsdb.tables){var tb=new alasql.Table({columns:db.tables[tbid].columns});extend(tb,lsdb.tables[tbid]);lsdb.tables[tbid]=tb;if(!alasql.options.autocommit){lsdb.tables[tbid].data=LS.get(db.lsdbid+"."+tbid)}lsdb.tables[tbid].indexColumns()}}delete alasql.databases[databaseid];alasql.databases[databaseid]=new alasql.Database(databaseid);extend(alasql.databases[databaseid],lsdb);alasql.databases[databaseid].databaseid=databaseid;alasql.databases[databaseid].engineid="LOCALSTORAGE"};var SQLITE=alasql.engines.SQLITE=function(){};SQLITE.createDatabase=function(wdbid,args,ifnotexists,dbid,cb){throw new Error("Connot create SQLITE database in memory. Attach it.")};SQLITE.dropDatabase=function(databaseid){throw new Error("This is impossible to drop SQLite database. Detach it.")};SQLITE.attachDatabase=function(sqldbid,dbid,args,cb){var res=1;if(alasql.databases[dbid]){throw new Error('Unable to attach database as "'+dbid+'" because it already exists')}if(args[0]&&args[0]instanceof yy.StringValue){alasql.utils.loadBinaryFile(args[0].value,true,function(data){var db=new alasql.Database(dbid||sqldbid);db.engineid="SQLITE";db.sqldbid=sqldbid;var sqldb=db.sqldb=new SQL.Database(data);db.tables=[];var tables=sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;tables.forEach(function(tbl){db.tables[tbl[1]]={};var columns=db.tables[tbl[1]].columns=[];var ast=alasql.parse(tbl[4]);var coldefs=ast.statements[0].columns;if(coldefs&&coldefs.length>0){coldefs.forEach(function(cd){columns.push(cd)})}});cb(1)},function(err){throw new Error('Cannot open SQLite database file "'+args[0].value+'"')});return res}else{throw new Error("Cannot attach SQLite database without a file")}return res};SQLITE.fromTable=function(databaseid,tableid,cb,idx,query){var data=alasql.databases[databaseid].sqldb.exec("SELECT * FROM "+tableid);var columns=query.sources[idx].columns=[];if(data[0].columns.length>0){data[0].columns.forEach(function(columnid){columns.push({columnid:columnid})})}var res=[];if(data[0].values.length>0){data[0].values.forEach(function(d){var r={};columns.forEach(function(col,idx){r[col.columnid]=d[idx]});res.push(r)})}if(cb)cb(res,idx,query)};SQLITE.intoTable=function(databaseid,tableid,value,columns,cb){var sqldb=alasql.databases[databaseid].sqldb;for(var i=0,ilen=value.length;i1){var sql="REQUIRE "+paths.map(function(p){return'"'+p+'"'}).join(",");alasql(sql,[],cb)}}else if(path===false){delete alasql.webworker;return}}}
\ No newline at end of file
+if(db.engineid&&alasql.engines[db.engineid].updateTable){return alasql.engines[db.engineid].updateTable(databaseid,tableid,assignfn,wherefn,params,cb)}if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var table=db.tables[tableid];if(!table){throw new Error("Table '"+tableid+"' not exists")}var numrows=0;for(var i=0,ilen=table.data.length;i0){s+="("+this.args.map(function(arg){return arg.toString()}).join(", ")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.CreateDatabase.prototype.execute=function(databaseid,params,cb){var args;if(this.args&&this.args.length>0){args=this.args.map(function(arg){return new Function("params","return "+arg.toJavaScript())(params)})}if(this.engineid){var res=alasql.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,cb);return res}else{var dbid=this.databaseid;if(alasql.databases[dbid]){throw new Error("Database '"+dbid+"' already exists")}var a=new alasql.Database(dbid);var res=1;if(cb)return cb(res);return res}};yy.AttachDatabase=function(params){return yy.extend(this,params)};yy.AttachDatabase.prototype.toString=function(){var s=K("ATTACH");if(this.engineid)s+=" "+L(this.engineid);s+=" "+K("DATABASE")+" "+L(this.databaseid);if(args){s+="(";if(args.length>0){s+=args.map(function(arg){return arg.toString()}).join(", ")}s+=")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.AttachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.engines[this.engineid]){throw new Error('Engine "'+this.engineid+'" is not defined.')}var res=alasql.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,params,cb);return res};yy.DetachDatabase=function(params){return yy.extend(this,params)};yy.DetachDatabase.prototype.toString=function(){var s=K("DETACH");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DetachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.databases[this.databaseid].engineid){throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.')}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.UseDatabase=function(params){return yy.extend(this,params)};yy.UseDatabase.prototype.toString=function(){return K("USE")+" "+K("DATABASE")+" "+L(this.databaseid)};yy.UseDatabase.prototype.execute=function(databaseid,params,cb){var dbid=this.databaseid;if(!alasql.databases[dbid]){throw new Error("Database '"+dbid+"' does not exist")}alasql.use(dbid);var res=1;if(cb)cb(res);return res};yy.DropDatabase=function(params){return yy.extend(this,params)};yy.DropDatabase.prototype.toString=function(){var s=K("DROP");if(this.ifexists)s+=" "+K("IF")+" "+K("EXISTS");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DropDatabase.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,cb)}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{if(alasql.databases[dbid].engineid){throw new Error("Cannot drop database '"+dbid+"', because it is attached. Detach it.")}delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.Declare=function(params){return yy.extend(this,params)};yy.Declare.prototype.toString=function(){var s=K("DECLARE")+" ";if(this.declares&&this.declares.length>0){s=this.declares.map(function(declare){var s="";s+="@"+L(declare.variable)+" ";s+=declare.dbtypeid;if(this.dbsize)s+="("+N(this.dbsize);if(this.dbprecision)s+=","+N(this.dbprecision);s+=")";if(declare.expression)s+=" = "+declare.expression.toString();return s}).join(",")}return s};yy.Declare.prototype.execute=function(databaseid,params,cb){var res=1;if(this.declares&&this.declares.length>0){this.declares.map(function(declare){var dbtypeid=declare.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();alasql.declares[declare.variable]={dbtypeid:dbtypeid,dbsize:declare.dbsize,dbprecision:declare.dbprecision};if(declare.expression){alasql.vars[declare.variable]=new Function("params,alasql","return "+declare.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[declare.variable]){alasql.vars[declare.variable]=alasql.stdfn.CONVERT(alasql.vars[declare.variable],alasql.declares[declare.variable])}}})}if(cb)res=cb(res);return res};yy.ShowDatabases=function(params){return yy.extend(this,params)};yy.ShowDatabases.prototype.toString=function(){var s=K("SHOW")+" "+K("DATABASES");if(this.like)s+="LIKE "+this.like.toString();return s};yy.ShowDatabases.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].showDatabases(this.like,cb)}else{var self=this;var res=[];for(dbid in alasql.databases){res.push({databaseid:dbid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.databaseid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res}};yy.ShowTables=function(params){return yy.extend(this,params)};yy.ShowTables.prototype.toString=function(){var s=K("SHOW")+" "+K("TABLES");if(this.databaseid)s+=" FROM "+this.databaseid;if(this.like)s+=" "+K("LIKE")+" "+this.like.toString();return s};yy.ShowTables.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.databaseid||databaseid];var self=this;var res=[];for(tableid in db.tables){res.push({tableid:tableid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.tableid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res};yy.ShowColumns=function(params){return yy.extend(this,params)};yy.ShowColumns.prototype.toString=function(){var s=K("SHOW")+" "+K("COLUMNS");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowColumns.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table&&table.columns){var res=table.columns.map(function(col){return{columnid:col.columnid,dbtypeid:col.dbtypeid,dbsize:col.dbsize}});return res}else{return[]}};yy.ShowIndex=function(params){return yy.extend(this,params)};yy.ShowIndex.prototype.toString=function(){var s=K("SHOW")+" "+K("INDEX");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowIndex.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;var res=[];if(table&&table.indices){for(var ind in table.indices){res.push({hh:ind,len:Object.keys(table.indices[ind]).length})}}return res};yy.ShowCreateTable=function(params){return yy.extend(this,params)};yy.ShowCreateTable.prototype.toString=function(){var s=K("SHOW")+" "+K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid);if(this.databaseid)s+=" "+K("FROM")+" "+L(this.databaseid);return s};yy.ShowCreateTable.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table){var s=K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid)+" (";var ss=[];if(table.columns){table.columns.forEach(function(col){var a=L(col.columnid)+" "+K(col.dbtypeid);if(col.dbsize)a+="("+N(col.dbsize)+")";if(col.primarykey)a+=" "+K("PRIMARY")+" "+K("KEY");ss.push(a)});s+=ss.join(", ")}s+=")";return s}else{throw new Error('There is no such table "'+this.table.tableid+'"')}};yy.SetVariable=function(params){return yy.extend(this,params)};yy.SetVariable.prototype.toString=function(){var s=K("SET")+" ";if(typeof this.value!="undefined")s+=K(this.variable.toUpperCase())+" "+(this.value?"ON":"OFF");if(this.expression)s+="@"+L(this.variable)+" = "+this.expression.toString();return s};yy.SetVariable.prototype.execute=function(databaseid,params,cb){if(typeof this.value!="undefined"){var val=this.value;if(val=="ON")val=true;else if(val=="OFF")val=false;alasql.options[this.variable]=val}else if(this.expression){var res=new Function("params,alasql","return "+this.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[this.variable]){res=alasql.stdfn.CONVERT(res,alasql.declares[this.variable])}if(this.props&&this.props.length>0){var fs="alasql.vars['"+this.variable+"']";fs+=this.props.map(function(prop){if(typeof prop=="string"){return"['"+prop+"']"}else if(typeof prop=="number"){return"["+prop+"]"}else{return"["+prop.toJavaScript()+"]"}}).join();new Function("value,alasql",fs+"=value")(res,alasql)}else{alasql.vars[this.variable]=res}}var res=1;if(cb)res=cb(res);return res};alasql.test=function(name,times,fn){if(arguments.length==0){alasql.log(alasql.con.results);return}else if(arguments.length==1){var tm=Date.now();fn();alasql.con.log(Date.now()-tm);return}if(arguments.length==2){fn=times;times=1}var tm=Date.now();for(var i=0;i",sql);if(res instanceof Array){if(console.table){console.table(res)}else{console.log(JSONtoString(res))}}else{console.log(JSONtoString(res))}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}var s="";if(typeof sql=="string"&&alasql.options.logprompt){s+=""+alasql.pretty(sql)+"
"}if(res instanceof Array){if(res.length==0){s+="[ ]
"}else if(typeof res[0]!="object"||res[0]instanceof Array){for(var i=0,ilen=res.length;i"+loghtml(res[i])+"
"}}else{s+=loghtml(res)}}else{s+=loghtml(res)}el.innerHTML+=s}};alasql.clear=function(){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.clear){console.clear()}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML=""}};alasql.write=function(s){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.log){console.log(s)}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML+=s}};function loghtml(res){var s="";if(typeof res=="undefined"){s+="undefined"}else if(res instanceof Array){s+="";s+="";var cols=[];for(colid in res[0]){cols.push(colid)}s+="#";cols.forEach(function(colid){s+=" | "+colid});for(var i=0,ilen=res.length;i"+(i+1);cols.forEach(function(colid){s+=" | ";if(+res[i][colid]==+res[i][colid]){s+=' ';if(typeof res[i][colid]=="undefined")s+="NULL";else s+=res[i][colid];s+=" "}else{if(typeof res[i][colid]=="undefined"){s+="NULL"}else if(typeof res[i][colid]=="string"){s+=res[i][colid]}else s+=JSONtoString(res[i][colid])}})}s+=" | |
---|
"}else{s+=""+JSONtoString(res)+"
"}return s}function scrollTo(element,to,duration){if(duration<=0)return;var difference=to-element.scrollTop;var perTick=difference/duration*10;setTimeout(function(){if(element.scrollTop==to)return;element.scrollTop=element.scrollTop+perTick;scrollTo(element,to,duration-10)},10)}alasql.prompt=function(el,useidel,firstsql){if(typeof exports=="object"){throw new Error("The functionality of prompt is not realized for Node.js")}var prompti=0;if(typeof el=="string")el=document.getElementById(el);if(typeof useidel=="string")useidel=document.getElementById(useidel);useidel.textContent=alasql.useid;if(firstsql){alasql.prompthistory.push(firstsql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(firstsql);alasql.write(''+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+sql+"
");alasql.write(''+err+"
")}}var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500);el.onkeydown=function(event){if(event.which==13){var sql=el.value;var olduseid=alasql.useid;el.value="";alasql.prompthistory.push(sql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(sql);alasql.write('
'+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+alasql.pretty(sql,false)+"
");alasql.write(''+err+"
")}el.focus();useidel.textContent=alasql.useid;var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500)}else if(event.which==38){prompti--;if(prompti<0)prompti=0;if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}else if(event.which==40){prompti++;if(prompti>=alasql.prompthistory.length){prompti=alasql.prompthistory.length;el.value=""}else if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}}};yy.BeginTransaction=function(params){return yy.extend(this,params)};yy.BeginTransaction.prototype.toString=function(){return K("BEGIN")+" "+K("TRANSACTION")};yy.BeginTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid,cb)}else{}if(cb)cb(res);return res};yy.CommitTransaction=function(params){return yy.extend(this,params)};yy.CommitTransaction.prototype.toString=function(){return K("COMMIT")+" "+K("TRANSACTION")};yy.CommitTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid,cb)}else{}if(cb)cb(res);return res};yy.RollbackTransaction=function(params){return yy.extend(this,params)};yy.RollbackTransaction.prototype.toString=function(){return K("ROLLBACK")+" "+K("TRANSACTION")};yy.RollbackTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid,cb)}else{}if(cb)cb(res);return res};alasql.into.SQL=function(filename,opts,data,columns,cb){var res;if(typeof filename=="object"){opts=filename;filename=""}var opt={};alasql.utils.extend(opt,opts);if(typeof opt.tableid=="undefined"){throw new Error("Table for INSERT TO is not defined.")}var s="";if(columns.length==0){if(typeof data[0]=="object"){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}else{}}for(var i=0,ilen=data.length;i0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var res=data.length;var s="";if(data.length>0){var key=columns[0].columnid;s+=data.map(function(d){return d[key]}).join("\n")}alasql.utils.saveFile(filename,s);if(cb)res=cb(res);return res};alasql.into.TAB=alasql.into.TSV=function(filename,opts,data,columns,cb){var opt={};alasql.utils.extend(opt,opts);opt.separator=" ";return alasql.into.CSV(filename,opt,data,columns,cb)};alasql.into.CSV=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var opt={};opt.separator=",";opt.quote='"';alasql.utils.extend(opt,opts);var res=data.length;var s="";if(opt.headers){s+=columns.map(function(col){return col.columnid}).join(opt.separator)+"\n"}data.forEach(function(d,idx){s+=columns.map(function(col){var s=d[col.columnid];s=(s+"").replace(new RegExp("\\"+opt.quote,"g"),'""');if((s+"").indexOf(opt.separator)>-1||(s+"").indexOf(opt.quote)>-1)s=opt.quote+s+opt.quote;return s}).join(opt.separator)+"\n"});if(filename){alasql.utils.saveFile(filename,s)}else{console.log(s)}if(cb)res=cb(res);return res};alasql.into.XLSX=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof exports=="object"){var XLSX=require("xlsx")}else{var XLSX=window.XLSX}var opt={sheetid:"Sheet1",headers:true};alasql.utils.extend(opt,opts);var res=data.length;var wb={SheetNames:[],Sheets:{}};if(opt.sourcefilename){alasql.utils.loadBinaryFile(opt.sourcefilename,!!cb,function(data){wb=XLSX.read(data,{type:"binary"});doExport()})}else{doExport()}function doExport(){var cells={};if(wb.SheetNames.indexOf(opt.sheetid)>-1){cells=wb.Sheets[opt.sheetid]}else{wb.SheetNames.push(opt.sheetid);wb.Sheets[opt.sheetid]={};cells=wb.Sheets[opt.sheetid]}var range="A1";if(opt.range)range=opt.range;var col0=alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);var row0=+range.match(/[0-9]+/)[0]-1;if(wb.Sheets[opt.sheetid]["!ref"]){var rangem=wb.Sheets[opt.sheetid]["!ref"];var colm=alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);var rowm=+rangem.match(/[0-9]+/)[0]-1}else{var colm=1,rowm=1}var colmax=Math.max(col0+columns.length,colm);var rowmax=Math.max(row0+data.length+2,rowm);var i=row0+1;wb.Sheets[opt.sheetid]["!ref"]="A1:"+alasql.utils.xlsnc(colmax)+rowmax;if(opt.headers){columns.forEach(function(col,idx){cells[alasql.utils.xlsnc(col0+idx)+""+i]={v:col.columnid}});i++}for(var j=0;j=N)return EOF;if(eol)return eol=false,EOL;var j=I;if(text.charCodeAt(j)===quoteCode){var i=j;while(i++http://github/agershun/alasq for more information'}];yy.Help.prototype.execute=function(databaseid,params,cb){var ss=[];if(!this.subject){ss=helpdocs}else{ss.push('See also http://github/agershun/alasq for more information')}if(cb)ss=cb(ss);return ss};yy.Print=function(params){return yy.extend(this,params)};yy.Print.prototype.toString=function(){var s=K("PRINT");if(this.statement)s+=" "+this.statement.toString();return s};yy.Print.prototype.execute=function(databaseid,params,cb){var res,s;if(this.statement){s=this.statement.execute(databaseid,params)}else{s=""}s=JSONtoString(s);console.log(s);if(cb)res=cb(res);return res};yy.Source=function(params){return yy.extend(this,params)};yy.Source.prototype.toString=function(){var s=K("SOURCE");if(this.url)s+=" "+S("'"+this.url+"'");return s};yy.Source.prototype.execute=function(databaseid,params,cb){var res;loadFile(this.url,!!cb,function(data){res=alasql(data);if(cb)res=cb(res);return res},function(err){throw err});return res};yy.Require=function(params){return yy.extend(this,params)};yy.Require.prototype.toString=function(){var s=K("REQUIRE");if(this.paths&&this.paths.length>0){s+=this.paths.map(function(path){return path.toString()}).join(",")}return s};yy.Require.prototype.execute=function(databaseid,params,cb){var self=this;var res=0;var ss="";if(this.paths.length>0){this.paths.forEach(function(path){loadFile(path.value,!!cb,function(data){res++;ss+=data;if(res0){res=res.filter(function(d){return d.databaseid.match(relike)})}}if(cb)cb(res);return res};LS.createTable=function(databaseid,tableid,ifnotexists,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var tb=LS.get(lsdbid+"."+tableid);var res=1;if(tb&&!ifnotexists){throw new Error('Table "'+tableid+'" alsready exists in localStorage database "'+lsdbid+'"')}var lsdb=LS.get(lsdbid);var table=alasql.databases[databaseid].tables[tableid];lsdb.tables[tableid]={columns:table.columns};LS.set(lsdbid,lsdb);LS.set(lsdbid+"."+tableid,[]);if(cb)cb(res);return res};LS.dropTable=function(databaseid,tableid,ifexists,cb){var res=1;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(!ifexists&&!lsdb.tables[tableid]){throw new Error('Cannot drop table "'+tableid+'" in localStorage, because it does not exist')}delete lsdb.tables[tableid];LS.set(lsdbid,lsdb);localStorage.removeItem(lsdbid+"."+tableid);if(cb)cb(res);return res};LS.fromTable=function(databaseid,tableid,cb,idx,query){var lsdbid=alasql.databases[databaseid].lsdbid;var res=LS.get(lsdbid+"."+tableid);if(cb)res=cb(res,idx,query);return res};LS.intoTable=function(databaseid,tableid,value,columns,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var res=value.length;var tb=LS.get(lsdbid+"."+tableid);if(!tb)tb=[];tb=tb.concat(value);LS.set(lsdbid+"."+tableid,tb);if(cb)cb(res);return res};LS.loadTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;db.tables[tableid].data=LS.get(lsdbid+"."+tableid)};LS.saveTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;LS.set(lsdbid+"."+tableid,db.tables[tableid].data);db.tables[tableid].data=null};LS.commit=function(databaseid,cb){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb={databaseid:lsdbid,tables:{}};if(db.tables){for(var tbid in db.tables){lsdb.tables[tbid]={columns:db.tables[tbid].columns};LS.set(lsdbid+"."+tbid,db.tables[tbid].data)}}LS.set(lsdbid,lsdb);return 1};LS.begin=LS.commit;LS.rollback=function(databaseid,cb){var db=alasql.databases[databaseid];db.dbversion++;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(lsdb.tables){for(var tbid in lsdb.tables){var tb=new alasql.Table({columns:db.tables[tbid].columns});extend(tb,lsdb.tables[tbid]);lsdb.tables[tbid]=tb;if(!alasql.options.autocommit){lsdb.tables[tbid].data=LS.get(db.lsdbid+"."+tbid)}lsdb.tables[tbid].indexColumns()}}delete alasql.databases[databaseid];alasql.databases[databaseid]=new alasql.Database(databaseid);extend(alasql.databases[databaseid],lsdb);alasql.databases[databaseid].databaseid=databaseid;alasql.databases[databaseid].engineid="LOCALSTORAGE"};var SQLITE=alasql.engines.SQLITE=function(){};SQLITE.createDatabase=function(wdbid,args,ifnotexists,dbid,cb){throw new Error("Connot create SQLITE database in memory. Attach it.")};SQLITE.dropDatabase=function(databaseid){throw new Error("This is impossible to drop SQLite database. Detach it.")};SQLITE.attachDatabase=function(sqldbid,dbid,args,params,cb){var res=1;if(alasql.databases[dbid]){throw new Error('Unable to attach database as "'+dbid+'" because it already exists')}if(args[0]&&args[0]instanceof yy.StringValue||args[0]instanceof yy.ParamValue){if(args[0]instanceof yy.StringValue){var value=args[0].value}else if(args[0]instanceof yy.ParamValue){var value=params[args[0].param]}alasql.utils.loadBinaryFile(value,true,function(data){var db=new alasql.Database(dbid||sqldbid);db.engineid="SQLITE";db.sqldbid=sqldbid;var sqldb=db.sqldb=new SQL.Database(data);db.tables=[];var tables=sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;tables.forEach(function(tbl){db.tables[tbl[1]]={};var columns=db.tables[tbl[1]].columns=[];var ast=alasql.parse(tbl[4]);var coldefs=ast.statements[0].columns;if(coldefs&&coldefs.length>0){coldefs.forEach(function(cd){columns.push(cd)})}});cb(1)},function(err){throw new Error('Cannot open SQLite database file "'+args[0].value+'"')});return res}else{throw new Error("Cannot attach SQLite database without a file")}return res};SQLITE.fromTable=function(databaseid,tableid,cb,idx,query){var data=alasql.databases[databaseid].sqldb.exec("SELECT * FROM "+tableid);var columns=query.sources[idx].columns=[];if(data[0].columns.length>0){data[0].columns.forEach(function(columnid){columns.push({columnid:columnid})})}var res=[];if(data[0].values.length>0){data[0].values.forEach(function(d){var r={};columns.forEach(function(col,idx){r[col.columnid]=d[idx]});res.push(r)})}if(cb)cb(res,idx,query)};SQLITE.intoTable=function(databaseid,tableid,value,columns,cb){var sqldb=alasql.databases[databaseid].sqldb;for(var i=0,ilen=value.length;i1){var sql="REQUIRE "+paths.map(function(p){return'"'+p+'"'}).join(",");alasql(sql,[],cb)}}else if(path===false){delete alasql.webworker;return}}}
\ No newline at end of file
diff --git a/dist/alasql.js b/dist/alasql.js
index c0929abecb..28f0075073 100755
--- a/dist/alasql.js
+++ b/dist/alasql.js
@@ -9552,7 +9552,7 @@ yy.AttachDatabase.prototype.toString = function() {
if(args) {
s += '(';
if(args.length>0) {
- s += args.map(function(arg){ return arg.toJavaScript(); }).join(', ');
+ s += args.map(function(arg){ return arg.toString(); }).join(', ');
}
s += ')';
}
@@ -9566,7 +9566,7 @@ yy.AttachDatabase.prototype.execute = function (databaseid, params, cb) {
if(!alasql.engines[this.engineid]) {
throw new Error('Engine "'+this.engineid+'" is not defined.');
};
- var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, this.args, cb);
+ var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, this.args, params, cb);
return res;
};
@@ -11253,7 +11253,7 @@ WEBSQL.dropDatabase = function(databaseid){
throw new Error('This is impossible to drop WebSQL database.');
};
-WEBSQL.attachDatabase = function(databaseid, dbid, cb){
+WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb){
var res = 1;
if(alasql.databases[dbid]) {
throw new Error('Unable to attach database as "'+dbid+'" because it already exists');
@@ -11333,7 +11333,7 @@ IDB.dropDatabase = function(ixdbid, ifexists, cb){
};
};
-IDB.attachDatabase = function(ixdbid, dbid, args, cb) {
+IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) {
var request1 = indexedDB.webkitGetDatabaseNames();
request1.onsuccess = function(event) {
var dblist = event.target.result;
@@ -11723,7 +11723,7 @@ LS.dropDatabase = function(lsdbid, ifexists, cb){
};
-LS.attachDatabase = function(lsdbid, dbid, args, cb){
+LS.attachDatabase = function(lsdbid, dbid, args, params, cb){
var res = 1;
if(alasql.databases[dbid]) {
throw new Error('Unable to attach database as "'+dbid+'" because it already exists');
@@ -11902,14 +11902,22 @@ SQLITE.dropDatabase = function(databaseid){
throw new Error('This is impossible to drop SQLite database. Detach it.');
};
-SQLITE.attachDatabase = function(sqldbid, dbid, args, cb){
+SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb){
var res = 1;
if(alasql.databases[dbid]) {
throw new Error('Unable to attach database as "'+dbid+'" because it already exists');
};
- if(args[0] && args[0] instanceof yy.StringValue) {
- alasql.utils.loadBinaryFile(args[0].value,true,function(data){
+
+ if(args[0] && (args[0] instanceof yy.StringValue)
+ || (args[0] instanceof yy.ParamValue)) {
+
+ if(args[0] instanceof yy.StringValue) {
+ var value = args[0].value;
+ } else if(args[0] instanceof yy.ParamValue) {
+ var value = params[args[0].param];
+ }
+ alasql.utils.loadBinaryFile(value,true,function(data){
var db = new alasql.Database(dbid || sqldbid);
db.engineid = "SQLITE";
db.sqldbid = sqldbid;
@@ -12067,7 +12075,7 @@ FS.dropDatabase = function(fsdbid, ifexists, cb){
};
-FS.attachDatabase = function(fsdbid, dbid, args, cb){
+FS.attachDatabase = function(fsdbid, dbid, args, params, cb){
// console.log(arguments);
var res = 1;
if(alasql.databases[dbid]) {
diff --git a/dist/alasql.js.map b/dist/alasql.js.map
index c656032ccc..9a432b2ecf 100755
--- a/dist/alasql.js.map
+++ b/dist/alasql.js.map
@@ -75,5 +75,5 @@
"src/99worker.js"
],
"names": [],
- "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrmEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1sBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5pBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpSA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"
+ "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrmEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1sBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5pBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpSA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"
}
\ No newline at end of file
diff --git a/dist/alasql.min.js b/dist/alasql.min.js
index e7f03d56e9..69de515ef3 100644
--- a/dist/alasql.min.js
+++ b/dist/alasql.min.js
@@ -4,5 +4,5 @@ break;case 262:case 536:case 537:this.$=$$[$0-1];this.$.push($$[$0]);break;case
}};var Database=alasql.Database=function(databaseid){var self=this;if(self===alasql){if(databaseid){self=alasql.databases[databaseid];if(!self){throw new Error('Database "'+databaseid+'" not found')}}else{self=alasql.databases.alasql}}if(!databaseid){databaseid="db"+alasql.databasenum++}self.databaseid=databaseid;alasql.databases[databaseid]=self;self.tables={};self.views={};self.indices={};self.resetSqlCache();self.dbversion=0;return self};Database.prototype.resetSqlCache=function(){this.sqlCache={};this.sqlCacheSize=0};Database.prototype.exec=function(sql,params,cb){return alasql.dexec(this.databaseid,sql,params,cb)};Database.prototype.transaction=function(cb){var tx=new alasql.Transaction(this.databaseid);var res=cb(tx);return res};var Transaction=alasql.Transaction=function(databaseid){this.transactionid=Date.now();this.databaseid=databaseid;this.commited=false;this.dbversion=alasql.databases[databaseid].dbversion;this.bank=JSON.stringify(alasql.databases[databaseid]);return this};Transaction.prototype.commit=function(){this.commited=true;alasql.databases[this.databaseid].dbversion=Date.now();delete this.bank};Transaction.prototype.rollback=function(){if(!this.commited){alasql.databases[this.databaseid]=JSON.parse(this.bank);delete this.bank}else{throw new Error("Transaction already commited")}};Transaction.prototype.exec=function(sql,params,cb){return alasql.dexec(this.databaseid,sql,params,cb)};Transaction.prototype.executeSQL=Transaction.prototype.exec;var Table=alasql.Table=function(params){this.columns=[];this.xcolumns={};this.data=[];this.inddefs={};this.indices={};this.uniqs={};this.uniqdefs={};extend(this,params)};Table.prototype.indexColumns=function(){var self=this;self.xcolumns={};self.columns.forEach(function(col){self.xcolumns[col.columnid]=col})};var View=alasql.View=function(params){this.columns=[];this.xcolumns={};this.query=[];extend(this,params)};var Query=alasql.Query=function(params){this.alasql=alasql;this.columns=[];this.xcolumns={};this.selectGroup=[];this.groupColumns={};extend(this,params)};var Recordset=alasql.Recordset=function(params){extend(this,params)};var yy=parser.yy={};yy.extend=extend;yy.casesensitive=alasql.options.casesensitive;var Base=yy.Base=function(params){return yy.extend(this,params)};Base.prototype.toString=function(){};Base.prototype.toType=function(){};Base.prototype.toJavaScript=function(){};Base.prototype.compile=returnUndefined;Base.prototype.exec=function(){};Base.prototype.compile=returnUndefined;Base.prototype.exec=function(){};yy.Statements=function(params){return yy.extend(this,params)};yy.Statements.prototype.toString=function(){return this.statements.map(function(st){return st.toString()}).join(";"+NL())};yy.Statements.prototype.compile=function(db){var statements=this.statements.map(function(st){return st.compile(db)});if(statements.length==1){return statements[0]}else{return function(params,cb){var res=statements.map(function(st){return st(params)});if(cb)cb(res);return res}}};function queryfn(query,oldscope,cb,A,B){var ms;query.sourceslen=query.sources.length;var slen=query.sourceslen;query.query=query;query.A=A;query.B=B;query.cb=cb;query.oldscope=oldscope;if(query.queriesfn){query.sourceslen+=query.queriesfn.length;slen+=query.queriesfn.length;query.queriesdata=[];query.queriesfn.forEach(function(q,idx){q.query.params=query.params;if(false){queryfn(q.query,query.oldscope,queryfn2,-idx-1,query)}else{queryfn2([],-idx-1,query)}})}var scope;if(!oldscope)scope={};else scope=cloneDeep(oldscope);query.scope=scope;var result;query.sources.forEach(function(source,idx){source.query=query;var rs=source.datafn(query,query.params,queryfn2,idx,alasql);if(typeof rs!=undefined){if((query.intofn||query.intoallfn)&&rs instanceof Array)rs=rs.length;result=rs}source.queriesdata=query.queriesdata});if(slen==0)result=queryfn3(query);return result}function queryfn2(data,idx,query){if(idx>=0){var source=query.sources[idx];source.data=data;if(typeof source.data=="function"){source.getfn=source.data;source.dontcache=source.getfn.dontcache;if(source.joinmode=="OUTER"||source.joinmode=="RIGHT"||source.joinmode=="ANTI"){source.dontcache=false}source.data={}}}else{query.queriesdata[-idx-1]=flatArray(data)}query.sourceslen--;if(query.sourceslen>0)return;return queryfn3(query)}function queryfn3(query){var scope=query.scope;preIndex(query);query.data=[];query.xgroups={};query.groups=[];var h=0;doJoin(query,scope,h);if(query.groupfn){query.data=[];if(query.groups.length==0){var g={};if(query.selectGroup.length>0){query.selectGroup.forEach(function(sg){if(sg.aggregatorid=="COUNT"||sg.aggregatorid=="SUM"){g[sg.nick]=0}else{g[sg.nick]=undefined}})}query.groups=[g]}for(var i=0,ilen=query.groups.length;i0){for(var i=0,ilen=query.data.length;i0&&source.optimization=="ix"&&source.onleftfn&&source.onrightfn){if(source.databaseid&&alasql.databases[source.databaseid].tables[source.tableid]){if(!alasql.databases[source.databaseid].tables[source.tableid].indices)query.database.tables[source.tableid].indices={};var ixx=alasql.databases[source.databaseid].tables[source.tableid].indices[hash(source.onrightfns+"`"+source.srcwherefns)];if(!alasql.databases[source.databaseid].tables[source.tableid].dirty&&ixx){source.ix=ixx}}if(!source.ix){source.ix={};var scope={};var i=0;var ilen=source.data.length;var dataw;while((dataw=source.data[i])||source.getfn&&(dataw=source.getfn(i))||i=query.sources.length){if(query.wherefn(scope,query.params,alasql)){if(query.groupfn){query.groupfn(scope,query.params,query.alasql)}else{query.data.push(query.selectfn(scope,query.params,alasql))}}}else if(query.sources[h].applyselect){var source=query.sources[h];source.applyselect(query.params,function(data){if(data.length>0){for(var i=0;i0){s+=NL()+ID()+K("GROUP BY")+" "+this.group.map(function(grp){return grp.toString()}).join(", ")}if(this.having)s+=NL()+ID()+K("HAVING")+" "+this.having.toString();if(this.order&&this.order.length>0){s+=NL()+ID()+K("ORDER BY")+" "+this.order.map(function(ord){return ord.toString()}).join(", ")}if(this.limit)s+=NL()+ID()+K("LIMIT")+" "+this.limit.value;if(this.offset)s+=NL()+ID()+K("OFFSET")+" "+this.offset.value;if(this.union)s+=NL()+K("UNION")+NL()+this.union.toString();if(this.unionall)s+=NL()+K("UNION ALL")+NL()+this.unionall.toString();if(this.except)s+=NL()+K("EXCEPT")+NL()+this.except.toString();if(this.intersect)s+=NL()+K("INTERSECT")+NL()+this.intersect.toString();return s};yy.Select.prototype.toJavaScript=function(context,tableid,defcols){var s="alasql.utils.flatArray(this.queriesfn["+(this.queriesidx-1)+"](this.params,null,p))[0]";return s};yy.Select.prototype.compile=function(databaseid){var db=alasql.databases[databaseid];var query=new Query;query.removeKeys=[];query.explain=this.explain;query.explaination=[];query.explid=1;query.modifier=this.modifier;query.database=db;this.compileWhereExists(query);this.compileQueries(query);query.defcols=this.compileDefCols(query,databaseid);query.fromfn=this.compileFrom(query);if(this.joins)this.compileJoins(query);this.compileSelectGroup0(query);if(this.group||query.selectGroup.length>0){query.selectgfns=this.compileSelectGroup1(query)}else{query.selectfns=this.compileSelect1(query)}if(this.where)this.compileWhereJoins(query);query.wherefn=this.compileWhere(query);if(this.group||query.selectGroup.length>0)query.groupfn=this.compileGroup(query);if(this.having)query.havingfn=this.compileHaving(query);if(this.group||query.selectGroup.length>0){query.selectgfn=this.compileSelectGroup2(query)}else{query.selectfn=this.compileSelect2(query)}query.distinct=this.distinct;if(this.order)query.orderfn=this.compileOrder(query);if(this.top){query.limit=this.top.value}else if(this.limit){query.limit=this.limit.value;if(this.offset){query.offset=this.offset.value}}query.percent=this.percent;if(this.union){query.unionfn=this.union.compile(databaseid);if(this.union.order){query.orderfn=this.union.compileOrder(query)}else{query.orderfn=null}}else if(this.unionall){query.unionallfn=this.unionall.compile(databaseid);if(this.unionall.order){query.orderfn=this.unionall.compileOrder(query)}else{query.orderfn=null}}else if(this.except){query.exceptfn=this.except.compile(databaseid);if(this.except.order){query.orderfn=this.except.compileOrder(query)}else{query.orderfn=null}}else if(this.intersect){query.intersectfn=this.intersect.compile(databaseid);if(this.intersect.order){query.intersectfn=this.intersect.compileOrder(query)}else{query.orderfn=null}}if(this.into){if(this.into instanceof yy.Table){if(alasql.options.autocommit&&alasql.databases[this.into.databaseid||databaseid].engineid){query.intoallfns='return alasql.engines["'+alasql.databases[this.into.databaseid||databaseid].engineid+'"]'+'.intoTable("'+(this.into.databaseid||databaseid)+'","'+this.into.tableid+'",this.data, columns, cb);'}else{query.intofns="alasql.databases['"+(this.into.databaseid||databaseid)+"'].tables"+"['"+this.into.tableid+"'].data.push(r);"}}else if(this.into instanceof yy.VarValue){query.intoallfns='alasql.vars["'+this.into.variable+'"]=this.data;res=1;if(cb)res=cb(res);return res;'}else if(this.into instanceof yy.FuncValue){var qs="alasql.into['"+this.into.funcid.toUpperCase()+"'](";if(this.into.args&&this.into.args.length>0){qs+=this.into.args[0].toJavaScript()+",";if(this.into.args.length>1){qs+=this.into.args[1].toJavaScript()+","}else{qs+="null,"}}else{qs+="null, null,"}query.intoallfns=qs+"this.data,columns,cb)"}else if(this.into instanceof yy.ParamValue){query.intofns="params['"+this.into.param+"'].push(r)"}if(query.intofns){query.intofn=new Function("r,i,params,alasql",query.intofns)}if(query.intoallfns){query.intoallfn=new Function("columns,cb,alasql",query.intoallfns)}}var statement=function(params,cb,oldscope){query.params=params;var res1=queryfn(query,oldscope,function(res){var res2=modify(query,res);if(cb)cb(res2);return res2});return res1};statement.query=query;return statement};function modify(query,res){if(query.modifier=="VALUE"){if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];res=res[0][key]}else{res=undefined}}if(query.modifier=="ROW"){if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];var a=[];for(var key in res[0]){a.push(res[0][key])}res=a}else{res=undefined}}if(query.modifier=="COLUMN"){var ar=[];if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];for(var i=0,ilen=res.length;i0){key=query.columns[0].columnid;val=query.columns[1].columnid}else{var okeys=Object.keys(res[0]);key=okeys[0];val=okeys[1]}for(var i=0,ilen=res.length;i0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];var s="";for(var i=0,ilen=res.length;i0){if(tq.args[0]){s+=tq.args[0].toJavaScript("query.oldscope")+","}else{s+="null,"}if(tq.args[1]){s+=tq.args[1].toJavaScript("query.oldscope")+","}else{s+="null,"}}else{s+="null,null,"}s+="cb,idx,query";s+=");/*if(cb)res=cb(res,idx,query);*/return res";source.datafn=new Function("query, params, cb, idx, alasql",s)}else if(tq instanceof yy.FromData){source.datafn=function(query,params,cb,idx,alasql){var res=tq.data;if(cb)res=cb(res,idx,query);return res}}else{throw new Error("Wrong table at FROM")}query.sources.push(source)});query.defaultTableid=query.sources[0].alias};alasql.prepareFromData=function(data,array){var res=data;if(typeof data=="string"){res=data.split(/\r?\n/);if(array){for(var i=0,ilen=res.length;i0){if(jn.args[0]){s+=jn.args[0].toJavaScript("query.oldscope")+","}else{s+="null,"}if(jn.args[1]){s+=jn.args[1].toJavaScript("query.oldscope")+","}else{s+="null,"}}else{s+="null,null,"}s+="cb,idx,query";s+=");/*if(cb)res=cb(res,idx,query);*/return res";source.datafn=new Function("query, params, cb, idx, alasql",s);query.aliases[source.alias]={type:"funcvalue"}}var alias=source.alias;if(jn.natural){if(jn.using||jn.on){throw new Error("NATURAL JOIN cannot have USING or ON clauses")}else{if(query.sources.length>0){var prevSource=query.sources[query.sources.length-1];var prevTable=alasql.databases[prevSource.databaseid].tables[prevSource.tableid];var table=alasql.databases[source.databaseid].tables[source.tableid];if(prevTable&&table){var c1=prevTable.columns.map(function(col){return col.columnid});var c2=table.columns.map(function(col){return col.columnid});jn.using=arrayIntersect(c1,c2).map(function(colid){return{columnid:colid}})}else{throw new Error("In this version of Alasql NATURAL JOIN "+"works for tables with predefined columns only")}}}}if(jn.using){var prevSource=query.sources[query.sources.length-1];source.onleftfns=jn.using.map(function(col){return"p['"+(prevSource.alias||prevSource.tableid)+"']['"+col.columnid+"']"}).join('+"`"+');source.onleftfn=new Function("p,params,alasql","return "+source.onleftfns);source.onrightfns=jn.using.map(function(col){return"p['"+(source.alias||source.tableid)+"']['"+col.columnid+"']"}).join('+"`"+');source.onrightfn=new Function("p,params,alasql","return "+source.onrightfns);source.optimization="ix"}else if(jn.on){if(jn.on instanceof yy.Op&&jn.on.op=="="&&!jn.on.allsome){source.optimization="ix";var lefts="";var rights="";var middles="";var middlef=false;var ls=jn.on.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=jn.on.right.toJavaScript("p",query.defaultTableid,query.defcols);if(ls.indexOf("p['"+alias+"']")>-1&&!(rs.indexOf("p['"+alias+"']")>-1)){if((ls.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){rights=ls}else{middlef=true}}else if(!(ls.indexOf("p['"+alias+"']")>-1)&&rs.indexOf("p['"+alias+"']")>-1){if((rs.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){lefts=ls}else{middlef=true}}else{middlef=true}if(rs.indexOf("p['"+alias+"']")>-1&&!(ls.indexOf("p['"+alias+"']")>-1)){if((rs.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){rights=rs}else{middlef=true}}else if(!(rs.indexOf("p['"+alias+"']")>-1)&&ls.indexOf("p['"+alias+"']")>-1){if((ls.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){lefts=rs}else{middlef=true}}else{middlef=true}if(middlef){rights="";lefts="";middles=jn.on.toJavaScript("p",query.defaultTableid,query.defcols);source.optimization="no"}source.onleftfns=lefts;source.onrightfns=rights;source.onmiddlefns=middles||"true";source.onleftfn=new Function("p,params,alasql","return "+source.onleftfns);source.onrightfn=new Function("p,params,alasql","return "+source.onrightfns);source.onmiddlefn=new Function("p,params,alasql","return "+source.onmiddlefns)}else{source.optimization="no";source.onmiddlefns=jn.on.toJavaScript("p",query.defaultTableid,query.defcols);source.onmiddlefn=new Function("p,params,alasql","return "+jn.on.toJavaScript("p",query.defaultTableid,query.defcols))}}query.sources.push(source)}})};yy.Select.prototype.compileWhere=function(query){if(this.where){if(typeof this.where=="function"){return this.where}else{s=this.where.toJavaScript("p",query.defaultTableid,query.defcols);query.wherefns=s;return new Function("p,params,alasql","return "+s)}}else return function(){return true}};yy.Select.prototype.compileWhereJoins=function(query){return;optimizeWhereJoin(query,this.where.expression);query.sources.forEach(function(source){if(source.srcwherefns){source.srcwherefn=new Function("p,params,alasql","return "+source.srcwherefns)}if(source.wxleftfns){source.wxleftfn=new Function("p,params,alasql","return "+source.wxleftfns)}if(source.wxrightfns){source.wxrightfn=new Function("p,params,alasql","return "+source.wxrightfns)}})};function optimizeWhereJoin(query,ast){if(!ast)return false;if(!(ast instanceof yy.Op))return;if(ast.op!="="&&ast.op!="AND")return;if(ast.allsome)return;var s=ast.toJavaScript("p",query.defaultTableid,query.defcols);var fsrc=[];query.sources.forEach(function(source,idx){if(source.tableid){if(s.indexOf("p['"+source.alias+"']")>-1)fsrc.push(source)}});if(fsrc.length==0){return}else if(fsrc.length==1){if(!(s.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+fsrc[0].alias+"']"})){return}var src=fsrc[0];src.srcwherefns=src.srcwherefns?src.srcwherefns+"&&"+s:s;if(ast instanceof yy.Op&&(ast.op=="="&&!ast.allsome)){if(ast.left instanceof yy.Column){var ls=ast.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=ast.right.toJavaScript("p",query.defaultTableid,query.defcols);if(rs.indexOf("p['"+fsrc[0].alias+"']")==-1){fsrc[0].wxleftfns=ls;fsrc[0].wxrightfns=rs}}if(ast.right instanceof yy.Column){var ls=ast.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=ast.right.toJavaScript("p",query.defaultTableid,query.defcols);if(ls.indexOf("p['"+fsrc[0].alias+"']")==-1){fsrc[0].wxleftfns=rs;fsrc[0].wxrightfns=ls}}}ast.reduced=true;return}else{if(ast.op="AND"){optimizeWhereJoin(query,ast.left);optimizeWhereJoin(query,ast.right)}}}yy.Select.prototype.compileGroup=function(query){var self=this;var tableid=query.sources[0].alias;var defcols=query.defcols;var allgroup=[[]];if(this.group){allgroup=decartes(this.group,query)
}var allgroups=[];allgroup.forEach(function(a){allgroups=arrayUnion(allgroups,a)});query.allgroups=allgroups;if(false){allgroups.forEach(function(col2){if(query.selectColumns[colid]){}else{var tmpid="default";if(query.sources.length>0)tmpid=query.sources[0].alias;if(Object.keys(query.selectColumns).length!=0)query.removeKeys.push(colid);query.selectfns+="r['"+escapeq(colid)+"']="+new yy.Column({columnid:colid}).toJavaScript("p",tmpid)+";"}})}var s="";allgroup.forEach(function(agroup){s+="var g=this.xgroups[";var rg=agroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];if(columnid=="")return"1";else return coljs});if(rg.length==0)rg=["''"];s+=rg.join('+"`"+');s+="];if(!g) {this.groups.push((g=this.xgroups[";s+=rg.join('+"`"+');s+="] = {";s+=agroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];if(columnid=="")return"";else return"'"+columnid+"':"+coljs+","}).join("");var neggroup=arrayDiff(allgroups,agroup);s+=neggroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];return"'"+columnid+"':null,"}).join("");var aft="";s+=query.selectGroup.map(function(col,idx){var colexp=col.expression.toJavaScript("p",tableid,defcols);var colas=col.nick;if(col instanceof yy.AggrValue){if(col.distinct){aft+=",g['$$_VALUES_"+colas+"']={},g['$$_VALUES_"+colas+"']["+colexp+"]=true"}if(col.aggregatorid=="SUM"||col.aggregatorid=="MIN"||col.aggregatorid=="MAX"||col.aggregatorid=="FIRST"||col.aggregatorid=="LAST"){return"'"+colas+"':"+colexp+","}else if(col.aggregatorid=="ARRAY"){return"'"+colas+"':["+colexp+"],"}else if(col.aggregatorid=="COUNT"){if(col.expression.columnid=="*"){return"'"+colas+"':1,"}else{return"'"+colas+"':(typeof "+colexp+' != "undefined")?1:0,'}}else if(col.aggregatorid=="AVG"){query.removeKeys.push("_SUM_"+colas);query.removeKeys.push("_COUNT_"+colas);return"'"+colas+"':"+colexp+",'_SUM_"+colas+"':"+colexp+",'_COUNT_"+colas+"':1,"}else if(col.aggregatorid=="AGGR"){aft+=",g['"+colas+"']="+col.expression.toJavaScript("g",-1);return""}else if(col.aggregatorid=="REDUCE"){return"'"+colas+"':alasql.aggr['"+col.funcid+"']("+colexp+"),"}return""}else return""}).join("");s+="}"+aft+",g));} else {";s+=query.selectGroup.map(function(col,idx){var colas=col.nick;var colexp=col.expression.toJavaScript("p",tableid,defcols);if(col instanceof yy.AggrValue){if(col.distinct){var pre="if(typeof "+colexp+'!="undefined" && (!g[\'$$_VALUES_'+colas+"']["+colexp+"])) {";var post="g['$$_VALUES_"+colas+"']["+colexp+"]=true;}"}else{var pre="",post=""}if(col.aggregatorid=="SUM"){return pre+"g['"+colas+"']+="+colexp+";"+post}else if(col.aggregatorid=="COUNT"){if(col.expression.columnid=="*")return pre+"g['"+colas+"']++;"+post;else{return pre+"if(typeof "+colexp+'!="undefined") g[\''+colas+"']++;"+post}}else if(col.aggregatorid=="ARRAY"){return pre+"g['"+colas+"'].push("+colexp+");"+post}else if(col.aggregatorid=="MIN"){return pre+"g['"+colas+"']=Math.min(g['"+colas+"'],"+colexp+");"+post}else if(col.aggregatorid=="MAX"){return pre+"g['"+colas+"']=Math.max(g['"+colas+"'],"+colexp+");"+post}else if(col.aggregatorid=="FIRST"){return""}else if(col.aggregatorid=="LAST"){return pre+"g['"+colas+"']="+colexp+";"+post}else if(col.aggregatorid=="AVG"){return pre+"g['_SUM_"+colas+"']+="+colexp+";"+"g['_COUNT_"+colas+"']++;"+"g['"+colas+"']=g['_SUM_"+colas+"']/g['_COUNT_"+colas+"'];"+post}else if(col.aggregatorid=="AGGR"){return pre+"g['"+colas+"']="+col.expression.toJavaScript("g",-1)+";"+post}else if(col.aggregatorid=="REDUCE"){return pre+"g['"+colas+"']=alasql.aggr."+col.funcid+"("+colexp+",g['"+colas+"']);"+post}return""}else return""}).join("");s+="}"});return new Function("p,params,alasql",s)};function compileSelectStar(query,alias){var s="",sp="",ss=[];if(query.aliases[alias].tableid){var columns=alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns}if(columns&&columns.length>0){columns.forEach(function(tcol){ss.push("'"+tcol.columnid+"':p['"+alias+"']['"+tcol.columnid+"']");query.selectColumns[escapeq(tcol.columnid)]=true;var coldef={columnid:tcol.columnid,dbtypeid:tcol.dbtypeid,dbsize:tcol.dbsize,dbprecision:tcol.dbprecision,dbenum:tcol.dbenum};query.columns.push(coldef);query.xcolumns[coldef.columnid]=coldef})}else{sp+='var w=p["'+alias+'"];for(var k in w){r[k]=w[k]};';query.dirtyColumns=true}return{s:ss.join(","),sp:sp}}yy.Select.prototype.compileSelect1=function(query){var self=this;query.columns=[];query.xcolumns={};query.selectColumns={};query.dirtyColumns=false;var s="var r={";var sp="";var ss=[];this.columns.forEach(function(col){if(col instanceof yy.Column){if(col.columnid=="*"){if(col.func){sp+="r=params['"+col.param+"'](p['"+query.sources[0].alias+"'],p,params,alasql);"}else if(col.tableid){var ret=compileSelectStar(query,col.tableid);if(ret.s)ss=ss.concat(ret.s);sp+=ret.sp}else{for(var alias in query.aliases){var ret=compileSelectStar(query,alias);if(ret.s)ss=ss.concat(ret.s);sp+=ret.sp}}}else{var tbid=col.tableid;var dbid=col.databaseid||query.sources[0].databaseid||query.database.databaseid;if(!tbid)tbid=query.defcols[col.columnid];if(!tbid)tbid=query.defaultTableid;if(col.columnid!="_"){ss.push("'"+escapeq(col.as||col.columnid)+"':p['"+tbid+"']['"+col.columnid+"']")}else{ss.push("'"+escapeq(col.as||col.columnid)+"':p['"+tbid+"']")}query.selectColumns[escapeq(col.as||col.columnid)]=true;if(query.aliases[tbid]&&query.aliases[tbid].type=="table"){if(!alasql.databases[dbid].tables[query.aliases[tbid].tableid]){throw new Error("Table '"+tbid+"' does not exists in database")}var columns=alasql.databases[dbid].tables[query.aliases[tbid].tableid].columns;var xcolumns=alasql.databases[dbid].tables[query.aliases[tbid].tableid].xcolumns;if(xcolumns&&columns.length>0){var tcol=xcolumns[col.columnid];var coldef={columnid:col.as||col.columnid,dbtypeid:tcol.dbtypeid,dbsize:tcol.dbsize,dbpecision:tcol.dbprecision,dbenum:tcol.dbenum};query.columns.push(coldef);query.xcolumns[coldef.columnid]=coldef}else{query.dirtyColumns=true}}else{}}}else if(col instanceof yy.AggrValue){if(!self.group){self.group=[""]}if(!col.as)col.as=escapeq(col.toString());if(col.aggregatorid=="SUM"||col.aggregatorid=="MAX"||col.aggregatorid=="MIN"||col.aggregatorid=="FIRST"||col.aggregatorid=="LAST"||col.aggregatorid=="AVG"||col.aggregatorid=="ARRAY"||col.aggregatorid=="REDUCE"){ss.push("'"+escapeq(col.as)+"':"+col.expression.toJavaScript("p",query.defaultTableid,query.defcols))}else if(col.aggregatorid=="COUNT"){ss.push("'"+escapeq(col.as)+"':1")}query.selectColumns[col.aggregatorid+"("+escapeq(col.expression.toString())+")"]=thtd}else{ss.push("'"+escapeq(col.as||col.columnid||col.toString())+"':"+col.toJavaScript("p",query.defaultTableid,query.defcols));query.selectColumns[escapeq(col.as||col.columnid||col.toString())]=true}});s+=ss.join(",")+"};"+sp;return s};yy.Select.prototype.compileSelect2=function(query){var s=query.selectfns;return new Function("p,params,alasql",s+"return r")};yy.Select.prototype.compileSelectGroup0=function(query){var self=this;self.columns.forEach(function(col,idx){if(col instanceof yy.Column&&col.columnid=="*"){}else{var colas;if(col instanceof yy.Column){colas=escapeq(col.columnid)}else{colas=escapeq(col.toString())}for(var i=0;irb)return 1;if(ra==rb)return 0;return-1}}var s="";var sk="";this.order.forEach(function(ord,idx){var dg="";if(ord.expression instanceof yy.NumValue){ord.expression=self.columns[ord.expression.value-1]}if(ord.expression instanceof yy.Column){var columnid=ord.expression.columnid;if(query.xcolumns[columnid]){var dbtypeid=query.xcolumns[columnid].dbtypeid;if(dbtypeid=="DATE"||dbtypeid=="DATETIME")dg=".valueOf()"}else{if(alasql.options.valueof)dg=".valueOf()"}if(ord.nocase)dg+=".toUpperCase()";s+="if(a['"+columnid+"']"+dg+(ord.direction=="ASC"?">":"<")+"b['"+columnid+"']"+dg+")return 1;";s+="if(a['"+columnid+"']"+dg+"==b['"+columnid+"']"+dg+"){"}else{dg=".valueOf()";if(ord.nocase)dg+=".toUpperCase()";s+="if("+ord.toJavaScript("a","")+dg+(ord.direction=="ASC"?">":"<")+ord.toJavaScript("b","")+dg+")return 1;";s+="if("+ord.toJavaScript("a","")+dg+"=="+ord.toJavaScript("b","")+dg+"){"}sk+="}"});s+="return 0;";s+=sk+"return -1";query.orderfns=s;return new Function("a,b",s)}};var rollup=function(a,query){var rr=[];var mask=0;var glen=a.length;for(var g=0;g"){var s=this.left.toString()+"->";if(typeof this.right!="string"&&typeof this.right!="number")s+="(";s+=this.right.toString();if(typeof this.right!="string"&&typeof this.right!="number")s+=")";return s}return this.left.toString()+" "+P(this.op)+" "+(this.allsome?this.allsome+" ":"")+this.right.toString()};yy.Op.prototype.findAggregator=function(query){if(this.left&&this.left.findAggregator)this.left.findAggregator(query);if(this.right&&this.right.findAggregator&&!this.allsome){this.right.findAggregator(query)}};yy.Op.prototype.toType=function(tableid){if(["-","*","/","%","^"].indexOf(this.op)>-1)return"number";if(this.op=="+"){if(this.left.toType(tableid)=="string"||this.right.toType(tableid)=="string")return"string";if(this.left.toType(tableid)=="number"||this.right.toType(tableid)=="number")return"number"}if(["AND","OR","NOT","=","==","===","!=","!==","!===",">",">=","<","<=","IN","NOT IN","LIKE","NOT LIKE"].indexOf(this.op)>-1)return"boolean";if(this.op=="BETWEEN"||this.op=="NOT BETWEEN"||this.op=="IS NULL"||this.op=="IS NOT NULL")return"boolean";if(this.allsome)return"boolean";if(!this.op)return this.left.toType();return"unknown"};yy.Op.prototype.toJavaScript=function(context,tableid,defcols){var op=this.op;if(this.op=="=")op="===";else if(this.op=="<>")op="!=";else if(this.op=="OR")op="||";if(this.op=="->"){if(typeof this.right=="string"){return this.left.toJavaScript(context,tableid,defcols)+'["'+this.right+'"]'}else if(typeof this.right=="number"){return this.left.toJavaScript(context,tableid,defcols)+"["+this.right+"]"}else if(this.right instanceof yy.FuncValue){ss=[];if(!this.right.args||this.right.args.length==0){}else{var ss=this.right.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)})}return this.left.toJavaScript(context,tableid,defcols)+"['"+this.right.funcid+"']("+ss.join(",")+")"}else{return this.left.toJavaScript(context,tableid,defcols)+"["+this.right.toJavaScript(context,tableid,defcols)+"]"}}if(this.op=="IS"){return"((typeof "+this.left.toJavaScript(context,tableid,defcols)+"=='undefined') == "+"(typeof "+this.right.toJavaScript(context,tableid,defcols)+"=='undefined'))"}if(this.op=="=="){return"alasql.utils.deepEqual("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+")"}if(this.op=="==="){return"(("+this.left.toJavaScript(context,tableid,defcols)+").valueOf()===("+this.right.toJavaScript(context,tableid,defcols)+".valueOf()))"}if(this.op=="!==="){return"!(("+this.left.toJavaScript(context,tableid,defcols)+").valueOf()===("+this.right.toJavaScript(context,tableid,defcols)+".valueOf()))"}if(this.op=="!=="){return"(!alasql.utils.deepEqual("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+"))"}if(this.op=="LIKE"){var s="("+this.left.toJavaScript(context,tableid,defcols)+"+'')"+".toUpperCase().match(new RegExp('^'+("+this.right.toJavaScript(context,tableid,defcols)+").replace(/\\%/g,'.*').toUpperCase()+'$','g'))";return s}if(this.op=="NOT LIKE"){var s="!(("+this.left.toJavaScript(context,tableid,defcols)+"+'')"+".toUpperCase().match(new RegExp('^'+("+this.right.toJavaScript(context,tableid,defcols)+").replace(/\\%/g,'.*').toUpperCase()+'$','g')))";return s}if(this.op=="BETWEEN"){if(this.right instanceof yy.Op&&this.right.op=="AND"){return"(("+this.right.left.toJavaScript(context,tableid,defcols)+"<="+this.left.toJavaScript(context,tableid,defcols)+")&&"+"("+this.left.toJavaScript(context,tableid,defcols)+"<="+this.right.right.toJavaScript(context,tableid,defcols)+"))"}else{throw new Error("Wrong BETWEEN operator without AND part")}}if(this.op=="NOT BETWEEN"){if(this.right instanceof yy.Op&&this.right.op=="AND"){return"!(("+this.right.left.toJavaScript(context,tableid,defcols)+"<="+this.left.toJavaScript(context,tableid,defcols)+")&&"+"("+this.left.toJavaScript(context,tableid,defcols)+"<="+this.right.right.toJavaScript(context,tableid,defcols)+"))"}else{throw new Error("Wrong NOT BETWEEN operator without AND part")}}if(this.op=="IN"){if(this.right instanceof yy.Select){var s="(";s+="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}else if(this.right instanceof Array){var s="(["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}else{var s="("+this.right.toJavaScript(context,tableid,defcols)+".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}}if(this.op=="NOT IN"){if(this.right instanceof yy.Select){var s="(";s+="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")<0)";return s}else if(this.right instanceof Array){var s="(["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")<0)";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.allsome=="ALL"){if(this.right instanceof yy.Select){var s="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".every(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else if(this.right instanceof Array){var s="["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].every(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.allsome=="SOME"||this.allsome=="ANY"){if(this.right instanceof yy.Select){var s="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".some(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else if(this.right instanceof Array){var s="["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].some(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.op=="AND"){if(this.left.reduced){if(this.right.reduced){return"true"}else{return this.right.toJavaScript(context,tableid,defcols)}}else if(this.right.reduced){return this.left.toJavaScript(context,tableid,defcols)}op="&&"}if(this.op=="^"){return"Math.pow("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+")"}return"("+this.left.toJavaScript(context,tableid,defcols)+op+this.right.toJavaScript(context,tableid,defcols)+")"};yy.VarValue=function(params){return yy.extend(this,params)};yy.VarValue.prototype.toString=function(){return"@"+L(this.variable)};yy.VarValue.prototype.toType=function(){return"unknown"};yy.VarValue.prototype.toJavaScript=function(){return"alasql.vars['"+this.variable+"']"};yy.NumValue=function(params){return yy.extend(this,params)};yy.NumValue.prototype.toString=function(){return N(this.value.toString())};yy.NumValue.prototype.toType=function(){return"number"};yy.NumValue.prototype.toJavaScript=function(){return""+this.value};yy.StringValue=function(params){return yy.extend(this,params)};yy.StringValue.prototype.toString=function(){return"'"+S(this.value.toString())+"'"};yy.StringValue.prototype.toType=function(){return"string"};yy.StringValue.prototype.toJavaScript=function(){return"'"+escapeq(this.value)+"'"};yy.LogicValue=function(params){return yy.extend(this,params)};yy.LogicValue.prototype.toString=function(){return this.value?"TRUE":"FALSE"};yy.LogicValue.prototype.toType=function(){return"boolean"};yy.LogicValue.prototype.toJavaScript=function(){return this.value?"true":"false"};yy.NullValue=function(params){return yy.extend(this,params)};yy.NullValue.prototype.toString=function(){return"NULL"};yy.NullValue.prototype.toJavaScript=function(){return"undefined"};yy.ParamValue=function(params){return yy.extend(this,params)};yy.ParamValue.prototype.toString=function(){return"$"+this.param};yy.ParamValue.prototype.toJavaScript=function(){if(typeof this.param=="string")return"params['"+this.param+"']";else return"params["+this.param+"]"};yy.UniOp=function(params){return yy.extend(this,params)};yy.UniOp.prototype.toString=function(){if(this.op=="-")return this.op+this.right.toString();if(this.op=="+")return this.op+this.right.toString();if(this.op=="NOT")return this.op+"("+this.right.toString()+")";else if(this.op==null)return"("+this.right.toString()+")"};yy.UniOp.prototype.findAggregator=function(query){if(this.right.findAggregator)this.right.findAggregator(query)};yy.UniOp.prototype.toType=function(tableid){if(this.op=="-")return"number";if(this.op=="+")return"number";if(this.op=="NOT")return"boolean"};yy.UniOp.prototype.toJavaScript=function(context,tableid,defcols){if(this.op=="-")return"(-("+this.right.toJavaScript(context,tableid,defcols)+"))";if(this.op=="+")return"("+this.right.toJavaScript(context,tableid,defcols)+")";if(this.op=="NOT")return"!("+this.right.toJavaScript(context,tableid,defcols)+")";else if(this.op==null)return"("+this.right.toJavaScript(context,tableid,defcols)+")"};yy.Column=function(params){return yy.extend(this,params)};yy.Column.prototype.toString=function(){var s;if(this.columnid==+this.columnid){s="["+this.columnid+"]"}else{s=this.columnid}if(this.tableid){if(+this.columnid==this.columnid){s=this.tableid+s}else{s=this.tableid+"."+s}if(this.databaseid){s=this.databaseid+"."+s}}return s};yy.Column.prototype.toJavaScript=function(context,tableid,defcols){var s="";if(!this.tableid&&tableid==""&&!defcols){if(this.columnid!="_"){s=context+"['"+this.columnid+"']"}else{if(context=="g"){s="g['_']"}else{s=context}}}else{if(context=="g"){s="g['"+this.nick+"']"}else if(this.tableid){if(this.columnid!="_"){s=context+"['"+this.tableid+"']['"+this.columnid+"']"}else{if(context=="g"){s="g['_']"}else{s=context+"['"+this.tableid+"']"}}}else if(defcols){var tbid=defcols[this.columnid];if(tbid=="-"){throw new Error('Cannot resolve column "'+this.columnid+'" because it exists in two source tables')}else if(tbid){if(this.columnid!="_"){s=context+"['"+tbid+"']['"+this.columnid+"']"}else{s=context+"['"+tbid+"']"}}else{if(this.columnid!="_"){s=context+"['"+(this.tableid||tableid)+"']['"+this.columnid+"']"}else{s=context+"['"+(this.tableid||tableid)+"']"}}}else if(tableid==-1){s=context+"['"+this.columnid+"']"}else{if(this.columnid!="_"){s=context+"['"+(this.tableid||tableid)+"']['"+this.columnid+"']"}else{s=context+"['"+(this.tableid||tableid)+"']"}}}return s};yy.AggrValue=function(params){return yy.extend(this,params)};yy.AggrValue.prototype.toString=function(){var s="";if(this.aggregatorid=="REDUCE")s+=L(this.funcid)+"(";else s+=this.aggregatorid+"(";if(this.distinct)s+=K("DISTINCT")+" ";if(this.expression)s+=this.expression.toString();s+=")";if(this.over)s+=" "+this.over.toString();return s};yy.AggrValue.prototype.findAggregator=function(query){var colas=escapeq(this.toString())+":"+query.selectGroup.length;var found=false;if(!found){if(!this.nick){this.nick=colas;var found=false;for(var i=0;i-1)return"number";if(["ARRAY"].indexOf(this.aggregatorid)>-1)return"array";if(["FIRST","LAST"].indexOf(this.aggregatorid)>-1)return this.expression.toType()};yy.AggrValue.prototype.toJavaScript=function(context,tableid,defcols){var colas=this.nick;if(typeof colas=="undefined")colas=this.toString();return"g['"+colas+"']"};yy.OrderExpression=function(params){return yy.extend(this,params)};yy.OrderExpression.prototype.toString=function(){var s=this.expression.toString();if(this.order)s+=" "+this.order.toString();if(this.nocase)s+=" "+K("COLLATE")+" "+K("NOCASE");return s};yy.GroupExpression=function(params){return yy.extend(this,params)};yy.GroupExpression.prototype.toString=function(){return this.type+"("+this.group.toString()+")"};yy.ColumnDef=function(params){return yy.extend(this,params)};yy.ColumnDef.prototype.toString=function(){var s=this.columnid;if(this.dbtypeid)s+=" "+this.dbtypeid;if(this.dbsize){s+="("+this.dbsize;if(this.dbprecision)s+=","+this.dbprecision;s+=")"}if(this.primarykey)s+=" PRIMARY KEY";if(this.notnull)s+=" NOT NULL";return s};yy.FromData=function(params){return yy.extend(this,params)};yy.FromData.prototype.toString=function(){if(this.data)return K("DATA")+"("+(Math.random()*1e16|0)+")";else return"?"};yy.FromData.prototype.toJavaScript=function(){};yy.Select.prototype.exec=function(params,cb){if(this.preparams)params=this.preparams.concat(params);var databaseid=alasql.useid;db=alasql.databases[databaseid];var sql=this.toString();var hh=hash(sql);var statement=this.compile(databaseid);if(!statement)return;statement.sql=sql;statement.dbversion=db.dbversion;if(db.sqlCacheSize>alasql.MAXSQLCACHESIZE){db.resetSqlCache()}db.sqlCacheSize++;db.sqlCache[hh]=statement;var res=alasql.res=statement(params,cb);return res};yy.Select.prototype.Select=function(){var self=this;var agrs=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}self.columns=[];args.forEach(function(arg){if(typeof arg=="string"){self.columns.push(new yy.Column({columnid:arg}))}else if(typeof arg=="function"){var pari=0;if(self.preparams){pari=self.preparams.length}else{self.preparams=[]}self.preparams.push(arg);self.columns.push(new yy.Column({columnid:"*",func:arg,param:pari}))}else{}});return self};yy.Select.prototype.From=function(tableid){var self=this;if(!self.from)self.from=[];if(tableid instanceof Array){var pari=0;if(self.preparams){pari=self.preparams.length}else{self.preparams=[]}self.preparams.push(tableid);self.from.push(new yy.ParamValue({param:pari}))}else if(typeof tableid=="string"){self.from.push(new yy.Table({tableid:tableid}))}else{throw new Error("Unknown arguments in From() function")}return self};yy.Select.prototype.OrderBy=function(){var self=this;var agrs=[];self.order=[];if(arguments.length==0){args=["_"]}else if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}if(args.length>0){args.forEach(function(arg){var expr=new yy.Column({columnid:arg});if(typeof arg=="function"){expr=arg}self.order.push(new yy.OrderExpression({expression:expr,direction:"ASC"}))})}return self};yy.Select.prototype.Top=function(topnum){var self=this;self.top=new yy.NumValue({value:topnum});return self};yy.Select.prototype.GroupBy=function(){var self=this;var agrs=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]
}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}self.group=[];args.forEach(function(arg){var expr=new yy.Column({columnid:arg});self.group.push(expr)});return self};yy.Select.prototype.Where=function(expr){var self=this;if(typeof expr=="function"){self.where=expr}return self};yy.FuncValue=function(params){return yy.extend(this,params)};yy.FuncValue.prototype.toString=function(){var s="";if(alasql.fn[this.funcid])s+=this.funcid;else if(alasql.aggr[this.funcid])s+=this.funcid;else if(alasql.stdlib[this.funcid.toUpperCase()]||alasql.stdfn[this.funcid.toUpperCase()])s+=this.funcid.toUpperCase();s+="(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toString()}).join(",")}s+=")";if(this.as)s+=" AS "+this.as.toString();return s};yy.FuncValue.prototype.findAggregator=function(query){if(this.args&&this.args.length>0){this.args.forEach(function(arg){if(arg.findAggregator)arg.findAggregator(query)})}};yy.FuncValue.prototype.toJavaScript=function(context,tableid,defcols){var s="";var funcid=this.funcid;if(alasql.fn[funcid]){if(this.newid)s+="new ";s+="alasql.fn."+this.funcid+"(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)}).join(",")}s+=")"}else if(alasql.stdlib[funcid.toUpperCase()]){if(this.args&&this.args.length>0){s+=alasql.stdlib[funcid.toUpperCase()].apply(this,this.args.map(function(arg){return arg.toJavaScript(context,tableid)}))}else{s+=alasql.stdlib[funcid.toUpperCase()]()}}else if(alasql.stdfn[funcid.toUpperCase()]){if(this.newid)s+="new ";s+="alasql.stdfn."+this.funcid.toUpperCase()+"(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)}).join(",")}s+=")"}else{}return s};var stdlib=alasql.stdlib={};var stdfn=alasql.stdfn={};stdlib.ABS=function(a){return"Math.abs("+a+")"};stdlib.CLONEDEEP=function(a){return"alasql.utils.cloneDeep("+a+")"};stdlib.IIF=function(a,b,c){if(arguments.length==3){return"(("+a+")?("+b+"):("+c+"))"}else{throw new Error("Number of arguments of IFF is not equals to 3")}};stdlib.IFNULL=function(a,b){return"("+a+"||"+b+")"};stdlib.INSTR=function(s,p){return"(("+s+").indexOf("+p+")+1)"};stdlib.LEN=stdlib.LENGTH=function(s){return"("+s+'+"").length'};stdlib.LOWER=stdlib.LCASE=function(s){return"("+s+").toLowerCase()"};stdlib.GREATEST=function(){return"Math.max("+Array.prototype.join.call(arguments,",")+")"};stdlib.LEAST=function(){return"Math.min("+Array.prototype.join.call(arguments,",")+")"};stdlib.MID=function(a,b,c){if(arguments.length==2)return"("+a+").substr("+b+"-1)";else if(arguments.length==3)return"("+a+").substr("+b+"-1,"+c+")"};stdlib.NULLIF=function(a,b){return"("+a+"=="+b+"?null:"+a+")"};stdlib.POWER=function(a,b){return"Math.pow("+a+","+b+")"};stdlib.RANDOM=function(r){if(arguments.length==0){return"Math.random()"}else{return"(Math.random()*("+r+")|0)"}};stdlib.ROUND=function(s,d){if(arguments.length==2){return"Math.round("+s+"*Math.pow(10,"+d+"))/Math.pow(10,"+d+")"}else{return"Math.round("+s+")"}};stdlib.SQRT=function(s){return"Math.sqrt("+s+")"};stdlib.TRIM=function(s){return s+".trim()"};stdlib.UPPER=stdlib.UCASE=function(s){return"("+s+").toUpperCase()"};alasql.aggr.GROUP_CONCAT=function(v,s){if(typeof s=="undefined")return v;else return s+","+v};yy.CaseValue=function(params){return yy.extend(this,params)};yy.CaseValue.prototype.toString=function(){var s="CASE ";if(this.expression)s+=this.expression.toString();if(this.whens){s+=this.whens.map(function(w){return" WHEN "+w.when.toString()+" THEN "+w.then.toString()}).join()}s+=" END";return s};yy.CaseValue.prototype.findAggregator=function(query){if(this.expression&&this.expression.findAggregator)this.expression.findAggregator(query);if(this.whens&&this.whens.length>0){this.whens.forEach(function(w){if(w.when.findAggregator)w.when.findAggregator(query);if(w.then.findAggregator)w.then.findAggregator(query)})}};yy.CaseValue.prototype.toJavaScript=function(context,tableid,defcols){var s="(function("+context+",params,alasql){var r;";if(this.expression){s+="v="+this.expression.toJavaScript(context,tableid,defcols)+";";s+=(this.whens||[]).map(function(w){return" if(v=="+w.when.toJavaScript(context,tableid,defcols)+") {r="+w.then.toJavaScript(context,tableid,defcols)+"}"}).join(" else ");if(this.elses)s+=" else {r="+this.elses.toJavaScript(context,tableid,defcols)+"}"}else{s+=(this.whens||[]).map(function(w){return" if("+w.when.toJavaScript(context,tableid,defcols)+") {r="+w.then.toJavaScript(context,tableid,defcols)+"}"}).join(" else ");if(this.elses)s+=" else {r="+this.elses.toJavaScript(context,tableid,defcols)+"}"}s+="return r;})("+context+",params,alasql)";return s};yy.Json=function(params){return yy.extend(this,params)};yy.Json.prototype.toString=function(){var s="@";s+=JSONtoString(this.value);s+="";return s};var JSONtoString=alasql.utils.JSONtoString=function(obj){var s="";if(typeof obj=="string")s='"'+obj+'"';else if(typeof obj=="number")s=obj;else if(typeof obj=="boolean")s=obj;else if(typeof obj=="object"){if(obj instanceof Array){s+="["+obj.map(function(b){return JSONtoString(b)}).join(",")+"]"}else if(!obj.toJavaScript||obj instanceof yy.Json){s="{";var ss=[];for(var k in obj){var s1="";if(typeof k=="string")s1+='"'+k+'"';else if(typeof k=="number")s1+=k;else if(typeof k=="boolean")s1+=k;else{throw new Error("THis is not ES6... no expressions on left side yet")}s1+=":"+JSONtoString(obj[k]);ss.push(s1)}s+=ss.join(",")+"}"}else if(obj.toString){s=obj.toString()}else{throw new Error("1Can not show JSON object "+JSON.stringify(obj))}}else{throw new Error("2Can not show JSON object "+JSON.stringify(obj))}return s};function JSONtoJavaScript(obj,context,tableid,defcols){var s="";if(typeof obj=="string")s='"'+obj+'"';else if(typeof obj=="number")s="("+obj+")";else if(typeof obj=="boolean")s=obj;else if(typeof obj=="object"){if(obj instanceof Array){s+="["+obj.map(function(b){return JSONtoJavaScript(b,context,tableid,defcols)}).join(",")+"]"}else if(!obj.toJavaScript||obj instanceof yy.Json){s="{";var ss=[];for(var k in obj){var s1="";if(typeof k=="string")s1+='"'+k+'"';else if(typeof k=="number")s1+=k;else if(typeof k=="boolean")s1+=k;else{throw new Error("THis is not ES6... no expressions on left side yet")}s1+=":"+JSONtoJavaScript(obj[k],context,tableid,defcols);ss.push(s1)}s+=ss.join(",")+"}"}else if(obj.toJavaScript){s=obj.toJavaScript(context,tableid,defcols)}else{throw new Error("1Can not parse JSON object "+JSON.stringify(obj))}}else{throw new Error("2Can not parse JSON object "+JSON.stringify(obj))}return s}yy.Json.prototype.toJavaScript=function(context,tableid,defcols){return JSONtoJavaScript(this.value,context,tableid,defcols)};yy.Convert=function(params){return yy.extend(this,params)};yy.Convert.prototype.toString=function(){var s="CONVERT(";s+=this.dbtypeid;if(typeof this.dbsize!="undefined"){s+="("+this.dbsize;if(this.dbprecision)s+=","+dbprecision;s+=")"}s+=","+this.expression.toString();if(this.style)s+=","+this.style;s+=")";return s};yy.Convert.prototype.toJavaScript=function(context,tableid,defcols){return"alasql.stdfn.CONVERT("+this.expression.toJavaScript(context,tableid,defcols)+',{dbtypeid:"'+this.dbtypeid+'",dbsize:'+this.dbsize+",style:"+this.style+"})";throw new Error("There is not such type conversion for "+this.toString())};alasql.stdfn.CONVERT=function(value,args){var val=value;if(args.style){var t;if(/\d{8}/.test(val))t=new Date(+val.substr(0,4),+val.substr(4,2)-1,+val.substr(6,2));else t=new Date(val);if(args.style==1){val=("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)+"/"+("0"+t.getYear()).substr(-2)}else if(args.style==2){val=("0"+t.getYear()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getDate()).substr(-2)}else if(args.style==3){val=("0"+t.getDate()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getYear()).substr(-2)}else if(args.style==4){val=("0"+t.getDate()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getYear()).substr(-2)}else if(args.style==5){val=("0"+t.getDate()).substr(-2)+"-"+("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getYear()).substr(-2)}else if(args.style==6){val=("0"+t.getDate()).substr(-2)+" "+t.toString().substr(4,3).toLowerCase()+" "+("0"+t.getYear()).substr(-2)}else if(args.style==7){val=t.toString().substr(4,3)+" "+("0"+t.getDate()).substr(-2)+","+("0"+t.getYear()).substr(-2)}else if(args.style==8){val=("0"+t.getHours()).substr(-2)+":"+("0"+(t.getMinutes()+1)).substr(-2)+":"+("0"+t.getSeconds()).substr(-2)}else if(args.style==10){val=("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getDate()).substr(-2)+"-"+("0"+t.getYear()).substr(-2)}else if(args.style==11){val=("0"+t.getYear()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)}else if(args.style==12){val=("0"+t.getYear()).substr(-2)+("0"+(t.getMonth()+1)).substr(-2)+("0"+t.getDate()).substr(-2)}else if(args.style==101){val=("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)+"/"+t.getFullYear()}else if(args.style==102){val=t.getFullYear()+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getDate()).substr(-2)}else if(args.style==103){val=("0"+t.getDate()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+t.getFullYear()}else if(args.style==104){val=("0"+t.getDate()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+t.getFullYear()}else if(args.style==105){val=("0"+t.getDate()).substr(-2)+"-"+("0"+(t.getMonth()+1)).substr(-2)+"-"+t.getFullYear()}else if(args.style==106){val=("0"+t.getDate()).substr(-2)+" "+t.toString().substr(4,3).toLowerCase()+" "+t.getFullYear()}else if(args.style==107){val=t.toString().substr(4,3)+" "+("0"+t.getDate()).substr(-2)+","+t.getFullYear()}else if(args.style==108){val=("0"+t.getHours()).substr(-2)+":"+("0"+(t.getMinutes()+1)).substr(-2)+":"+("0"+t.getSeconds()).substr(-2)}else if(args.style==110){val=("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getDate()).substr(-2)+"-"+t.getFullYear()}else if(args.style==111){val=t.getFullYear()+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)}else if(args.style==112){val=t.getFullYear()+("0"+(t.getMonth()+1)).substr(-2)+("0"+t.getDate()).substr(-2)}else{throw new Error("The CONVERT style "+args.style+" is not realized yet.")}}if(args.dbtypeid=="Date"){return new Date(val)}else if(args.dbtypeid.toUpperCase()=="DATE"){var d=new Date(val);var s=d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);return s}else if(args.dbtypeid=="DATETIME"){var d=new Date(val);var s=d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);s+=" "+("0"+d.getHours()).substr(-2)+":"+("0"+d.getMinutes()).substr(-2)+":"+("0"+d.getSeconds()).substr(-2);s+="."+("00"+d.getMilliseconds()).substr(-3);return s}else if(args.dbtypeid.toUpperCase()=="STRING"){return""+val}else if(args.dbtypeid.toUpperCase()=="NUMBER"||args.dbtypeid=="FLOAT"){return+val}else if(args.dbtypeid.toUpperCase()=="MONEY"){var m=+val;return(m|0)+m*100%100/100}else if(args.dbtypeid.toUpperCase()=="BOOLEAN"){return!!val}else if(args.dbtypeid.toUpperCase()=="INT"){return val|0}else if(args.dbtypeid.toUpperCase()=="VARCHAR"||args.dbtypeid=="NVARCHAR"){if(args.dbsize)return(""+val).substr(0,args.dbsize);else return""+val}else if(args.dbtypeid.toUpperCase()=="CHAR"||args.dbtypeid=="NCHAR"){return(val+new Array(args.dbsize+1).join(" ")).substr(0,args.dbsize)}};yy.ColumnDef=function(params){return yy.extend(this,params)};yy.ColumnDef.prototype.toString=function(){var s=this.columnid;if(this.dbtypeid)s+=" "+this.dbtypeid;if(this.dbsize){s+="("+this.dbsize;if(this.dbprecision)s+=","+this.dbprecision;s+=")"}if(this.primarykey)s+=" PRIMARY KEY";if(this.notnull)s+=" NOT NULL";return s};yy.CreateTable=function(params){return yy.extend(this,params)};yy.CreateTable.prototype.toString=function(){var s=K("CREATE");if(this.temporary)s+=" "+K("TEMPORARY");if(this.view)s+=" "+K("VIEW");else s+=" "+K("TABLE");if(this.ifnotexists)s+=" "+K("IF")+" "+K("NOT")+" "+K("EXISTS");s+=" "+this.table.toString();if(this.viewcolumns){s+="("+this.viewcolumns.map(function(vcol){return vcol.toString()}).join(",")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);else{var ss=this.columns.map(function(col){return col.toString()});s+=" ("+NL()+ID()+ss.join(","+NL()+ID())+")"}if(this.view&&this.select){s+=" AS "+this.select.toString()}return s};yy.CreateTable.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.table.databaseid||databaseid];var tableid=this.table.tableid;if(!tableid){throw new Error("Table name is not defined")}var columns=this.columns;var constraints=this.constraints||[];if(this.ifnotexists&&db.tables[tableid])return 0;if(db.tables[tableid]){throw new Error("Can not create table '"+tableid+"', because it already exists in the database '"+db.databaseid+"'")}var table=db.tables[tableid]=new alasql.Table;var ss=[];if(this.columns){this.columns.forEach(function(col){var dbtypeid=col.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();var newcol={columnid:col.columnid,dbtypeid:dbtypeid};if(col.default){ss.push("'"+col.columnid+"':"+col.default.toJavaScript())}table.columns.push(newcol);table.xcolumns[newcol.columnid]=newcol;if(col.primarykey){var pk=table.pk={};pk.columns=[col.columnid];pk.onrightfns="r['"+col.columnid+"']";pk.onrightfn=new Function("r","return "+pk.onrightfns);pk.hh=hash(pk.onrightfns);table.indices[pk.hh]={}}})}table.defaultfns=ss.join(",");constraints.forEach(function(con){if(con.type=="PRIMARY KEY"){if(table.pk){throw new Error("Primary key already exists")}var pk=table.pk={};pk.columns=con.columns;pk.onrightfns=pk.columns.map(function(columnid){return"r['"+columnid+"']"}).join("+'`'+");pk.onrightfn=new Function("r","return "+pk.onrightfns);pk.hh=hash(pk.onrightfns);table.indices[pk.hh]={}}});if(this.view&&this.viewcolumns){var self=this;this.viewcolumns.forEach(function(vcol,idx){self.select.columns[idx].as=vcol.columnid})}if(db.engineid){return alasql.engines[db.engineid].createTable(this.table.databaseid||databaseid,tableid,this.ifnotexists,cb)}table.insert=function(r){if(this.pk){var pk=this.pk;var addr=pk.onrightfn(r);if(typeof this.indices[pk.hh][addr]!="undefined"){throw new Error("Cannot insert record, because it already exists in primary key")}else{table.data.push(r);this.indices[pk.hh][addr]=r}}else{table.data.push(r)}};table.delete=function(i){if(this.pk){var r=this.data[i];var pk=this.pk;var addr=pk.onrightfn(r);if(typeof this.indices[pk.hh][addr]=="undefined"){throw new Error("Something wrong with index on table")}else{this.indices[pk.hh][addr]=undefined}}};table.deleteall=function(){this.data.length=0;if(this.pk){this.indices[this.pk.hh]={}}};table.update=function(assignfn,i,params){if(this.pk){var r=this.data[i];var pk=this.pk;var addr=pk.onrightfn(r,params);if(typeof this.indices[pk.hh][addr]=="undefined"){throw new Error("Something wrong with index on table")}else{this.indices[pk.hh][addr]=undefined;assignfn(r,params,alasql);var newaddr=pk.onrightfn(r);if(typeof this.indices[pk.hh][newaddr]!="undefined"){throw new Error("Record already exists")}else{this.indices[pk.hh][newaddr]=r}}}else{assignfn(this.data[i],params,alasql)}};if(this.view&&this.select){table.view=true;table.select=this.select.compile(this.table.databaseid||databaseid)}if(cb)cb(1);return 1};alasql.fn.Date=Object;alasql.fn.Date=Date;alasql.fn.Number=Number;alasql.fn.String=String;alasql.fn.Boolean=Boolean;stdfn.EXTEND=alasql.utils.extend;stdfn.CHAR=String.fromCharCode.bind(String);stdfn.ASCII=function(a){return a.charCodeAt(0)};stdfn.COALESCE=function(){for(var i=0;i0){for(var i=0,ilen=table.data.length;i0){for(var i=0,ilen=table.data.length;i=0){q+="+"+values[idx].toJavaScript()}else if(alasql.fn[table.xcolumns[col.columnid].dbtypeid]){q+="(new "+table.xcolumns[col.columnid].dbtypeid+"(";q+=values[idx].toJavaScript();q+="))"}else{q+=values[idx].toJavaScript()}}else{q+=values[idx].toJavaScript()}ss.push(q)})}else{if(values instanceof Array&&table.columns&&table.columns.length>0){table.columns.forEach(function(col,idx){var q="'"+col.columnid+"':";if(["INT","FLOAT","NUMBER","MONEY"].indexOf(col.dbtypeid)>=0){q+="+"+values[idx].toJavaScript()}else if(alasql.fn[col.dbtypeid]){q+="(new "+col.dbtypeid+"(";q+=values[idx].toJavaScript();q+="))"}else{q+=values[idx].toJavaScript()}ss.push(q)})}else{sw=JSONtoJavaScript(values)}}if(db.tables[tableid].defaultfns)ss.unshift(db.tables[tableid].defaultfns);if(sw){s+="a="+sw+";"}else{s+="a={"+ss.join(",")+"};"}if(db.tables[tableid].insert){s+="alasql.databases['"+databaseid+"'].tables['"+tableid+"'].insert(a);"}else{s+="aa.push(a);"}});s33=s3+s;if(db.tables[tableid].insert){}else{s+="alasql.databases['"+databaseid+"'].tables['"+tableid+"'].data="+"alasql.databases['"+databaseid+"'].tables['"+tableid+"'].data.concat(aa);"}s+="return "+self.values.length;var insertfn=new Function("db, params, alasql",s3+s)}else if(this.select){selectfn=this.select.compile(databaseid);if(db.engineid&&alasql.engines[db.engineid].intoTable){var statement=function(params,cb){var aa=selectfn(params);var res=alasql.engines[db.engineid].intoTable(db.databaseid,tableid,aa,null,cb);return res};return statement}else{var insertfn=function(db,params,alasql){var res=selectfn(params);db.tables[tableid].data=db.tables[tableid].data.concat(res);return res.length}}}else if(this.default){var insertfns="db.tables['"+tableid+"'].data.push({"+table.defaultfns+"});return 1;";var insertfn=new Function("db,params,alasql",insertfns)}else{throw new Error("Wrong INSERT parameters")}if(db.engineid&&alasql.engines[db.engineid].intoTable&&alasql.options.autocommit){var statement=function(params,cb){var aa=new Function("db,params",s33+"return aa;")(db,params);var res=alasql.engines[db.engineid].intoTable(db.databaseid,tableid,aa,null,cb);return res}}else{var statement=function(params,cb){var db=alasql.databases[databaseid];if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var res=insertfn(db,params,alasql);if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].saveTableData(databaseid,tableid)}if(cb)cb(res);return res}}return statement};yy.Insert.prototype.execute=function(databaseid,params,cb){return this.compile(databaseid)(params,cb)};yy.Delete=function(params){return yy.extend(this,params)};yy.Delete.prototype.toString=function(){var s="DELETE FROM "+this.table.toString();if(this.where)s+=" WHERE "+this.where.toString();return s};yy.Delete.prototype.compile=function(databaseid){databaseid=this.table.databaseid||databaseid;var tableid=this.table.tableid;var statement;var db=alasql.databases[databaseid];if(this.where){wherefn=new Function("r,params","return ("+this.where.toJavaScript("r","")+")");statement=function(params,cb){if(db.engineid&&alasql.engines[db.engineid].deleteFromTable){return alasql.engines[db.engineid].deleteFromTable(databaseid,tableid,wherefn,params,cb)}if(alasql.options.autocommit&&db.engineid&&db.engineid=="LOCALSTORAGE"){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var table=db.tables[tableid];var orignum=table.data.length;var newtable=[];for(var i=0,ilen=table.data.length;i0){s+="("+this.args.map(function(arg){return arg.toString()}).join(", ")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.CreateDatabase.prototype.execute=function(databaseid,params,cb){var args;if(this.args&&this.args.length>0){args=this.args.map(function(arg){return new Function("params","return "+arg.toJavaScript())(params)})}if(this.engineid){var res=alasql.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,cb);return res}else{var dbid=this.databaseid;if(alasql.databases[dbid]){throw new Error("Database '"+dbid+"' already exists")}var a=new alasql.Database(dbid);var res=1;if(cb)return cb(res);return res}};yy.AttachDatabase=function(params){return yy.extend(this,params)};yy.AttachDatabase.prototype.toString=function(){var s=K("ATTACH");if(this.engineid)s+=" "+L(this.engineid);s+=" "+K("DATABASE")+" "+L(this.databaseid);if(args){s+="(";if(args.length>0){s+=args.map(function(arg){return arg.toJavaScript()}).join(", ")}s+=")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.AttachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.engines[this.engineid]){throw new Error('Engine "'+this.engineid+'" is not defined.')}var res=alasql.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,cb);return res};yy.DetachDatabase=function(params){return yy.extend(this,params)};yy.DetachDatabase.prototype.toString=function(){var s=K("DETACH");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DetachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.databases[this.databaseid].engineid){throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.')}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.UseDatabase=function(params){return yy.extend(this,params)};yy.UseDatabase.prototype.toString=function(){return K("USE")+" "+K("DATABASE")+" "+L(this.databaseid)};yy.UseDatabase.prototype.execute=function(databaseid,params,cb){var dbid=this.databaseid;if(!alasql.databases[dbid]){throw new Error("Database '"+dbid+"' does not exist")}alasql.use(dbid);var res=1;if(cb)cb(res);return res};yy.DropDatabase=function(params){return yy.extend(this,params)};yy.DropDatabase.prototype.toString=function(){var s=K("DROP");if(this.ifexists)s+=" "+K("IF")+" "+K("EXISTS");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DropDatabase.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,cb)}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{if(alasql.databases[dbid].engineid){throw new Error("Cannot drop database '"+dbid+"', because it is attached. Detach it.")}delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.Declare=function(params){return yy.extend(this,params)};yy.Declare.prototype.toString=function(){var s=K("DECLARE")+" ";if(this.declares&&this.declares.length>0){s=this.declares.map(function(declare){var s="";s+="@"+L(declare.variable)+" ";s+=declare.dbtypeid;if(this.dbsize)s+="("+N(this.dbsize);if(this.dbprecision)s+=","+N(this.dbprecision);s+=")";if(declare.expression)s+=" = "+declare.expression.toString();return s}).join(",")}return s};yy.Declare.prototype.execute=function(databaseid,params,cb){var res=1;if(this.declares&&this.declares.length>0){this.declares.map(function(declare){var dbtypeid=declare.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();alasql.declares[declare.variable]={dbtypeid:dbtypeid,dbsize:declare.dbsize,dbprecision:declare.dbprecision};if(declare.expression){alasql.vars[declare.variable]=new Function("params,alasql","return "+declare.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[declare.variable]){alasql.vars[declare.variable]=alasql.stdfn.CONVERT(alasql.vars[declare.variable],alasql.declares[declare.variable])}}})}if(cb)res=cb(res);return res};yy.ShowDatabases=function(params){return yy.extend(this,params)};yy.ShowDatabases.prototype.toString=function(){var s=K("SHOW")+" "+K("DATABASES");if(this.like)s+="LIKE "+this.like.toString();return s};yy.ShowDatabases.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].showDatabases(this.like,cb)}else{var self=this;var res=[];for(dbid in alasql.databases){res.push({databaseid:dbid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.databaseid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res}};yy.ShowTables=function(params){return yy.extend(this,params)};yy.ShowTables.prototype.toString=function(){var s=K("SHOW")+" "+K("TABLES");if(this.databaseid)s+=" FROM "+this.databaseid;if(this.like)s+=" "+K("LIKE")+" "+this.like.toString();return s};yy.ShowTables.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.databaseid||databaseid];var self=this;var res=[];for(tableid in db.tables){res.push({tableid:tableid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.tableid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res};yy.ShowColumns=function(params){return yy.extend(this,params)};yy.ShowColumns.prototype.toString=function(){var s=K("SHOW")+" "+K("COLUMNS");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowColumns.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table&&table.columns){var res=table.columns.map(function(col){return{columnid:col.columnid,dbtypeid:col.dbtypeid,dbsize:col.dbsize}});return res}else{return[]}};yy.ShowIndex=function(params){return yy.extend(this,params)};yy.ShowIndex.prototype.toString=function(){var s=K("SHOW")+" "+K("INDEX");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowIndex.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;var res=[];if(table&&table.indices){for(var ind in table.indices){res.push({hh:ind,len:Object.keys(table.indices[ind]).length})}}return res};yy.ShowCreateTable=function(params){return yy.extend(this,params)};yy.ShowCreateTable.prototype.toString=function(){var s=K("SHOW")+" "+K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid);if(this.databaseid)s+=" "+K("FROM")+" "+L(this.databaseid);return s};yy.ShowCreateTable.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table){var s=K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid)+" (";var ss=[];if(table.columns){table.columns.forEach(function(col){var a=L(col.columnid)+" "+K(col.dbtypeid);if(col.dbsize)a+="("+N(col.dbsize)+")";if(col.primarykey)a+=" "+K("PRIMARY")+" "+K("KEY");ss.push(a)});s+=ss.join(", ")}s+=")";return s}else{throw new Error('There is no such table "'+this.table.tableid+'"')}};yy.SetVariable=function(params){return yy.extend(this,params)};yy.SetVariable.prototype.toString=function(){var s=K("SET")+" ";if(typeof this.value!="undefined")s+=K(this.variable.toUpperCase())+" "+(this.value?"ON":"OFF");if(this.expression)s+="@"+L(this.variable)+" = "+this.expression.toString();return s};yy.SetVariable.prototype.execute=function(databaseid,params,cb){if(typeof this.value!="undefined"){var val=this.value;if(val=="ON")val=true;else if(val=="OFF")val=false;alasql.options[this.variable]=val}else if(this.expression){var res=new Function("params,alasql","return "+this.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[this.variable]){res=alasql.stdfn.CONVERT(res,alasql.declares[this.variable])}if(this.props&&this.props.length>0){var fs="alasql.vars['"+this.variable+"']";fs+=this.props.map(function(prop){if(typeof prop=="string"){return"['"+prop+"']"}else if(typeof prop=="number"){return"["+prop+"]"}else{return"["+prop.toJavaScript()+"]"}}).join();new Function("value,alasql",fs+"=value")(res,alasql)}else{alasql.vars[this.variable]=res}}var res=1;if(cb)res=cb(res);return res};alasql.test=function(name,times,fn){if(arguments.length==0){alasql.log(alasql.con.results);return}else if(arguments.length==1){var tm=Date.now();fn();alasql.con.log(Date.now()-tm);return}if(arguments.length==2){fn=times;times=1}var tm=Date.now();for(var i=0;i",sql);if(res instanceof Array){if(console.table){console.table(res)}else{console.log(JSONtoString(res))}}else{console.log(JSONtoString(res))}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}var s="";if(typeof sql=="string"&&alasql.options.logprompt){s+=""+alasql.pretty(sql)+"
"}if(res instanceof Array){if(res.length==0){s+="[ ]
"}else if(typeof res[0]!="object"||res[0]instanceof Array){for(var i=0,ilen=res.length;i"+loghtml(res[i])+"
"}}else{s+=loghtml(res)}}else{s+=loghtml(res)}el.innerHTML+=s}};alasql.clear=function(){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.clear){console.clear()}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML=""}};alasql.write=function(s){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.log){console.log(s)}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML+=s}};function loghtml(res){var s="";if(typeof res=="undefined"){s+="undefined"}else if(res instanceof Array){s+="";s+="";var cols=[];for(colid in res[0]){cols.push(colid)}s+="#";cols.forEach(function(colid){s+=" | "+colid});for(var i=0,ilen=res.length;i"+(i+1);cols.forEach(function(colid){s+=" | ";if(+res[i][colid]==+res[i][colid]){s+=' ';if(typeof res[i][colid]=="undefined")s+="NULL";else s+=res[i][colid];s+=" "}else{if(typeof res[i][colid]=="undefined"){s+="NULL"}else if(typeof res[i][colid]=="string"){s+=res[i][colid]}else s+=JSONtoString(res[i][colid])}})}s+=" | |
---|
"}else{s+=""+JSONtoString(res)+"
"}return s}function scrollTo(element,to,duration){if(duration<=0)return;var difference=to-element.scrollTop;var perTick=difference/duration*10;setTimeout(function(){if(element.scrollTop==to)return;element.scrollTop=element.scrollTop+perTick;scrollTo(element,to,duration-10)},10)}alasql.prompt=function(el,useidel,firstsql){if(typeof exports=="object"){throw new Error("The functionality of prompt is not realized for Node.js")}var prompti=0;if(typeof el=="string")el=document.getElementById(el);if(typeof useidel=="string")useidel=document.getElementById(useidel);useidel.textContent=alasql.useid;if(firstsql){alasql.prompthistory.push(firstsql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(firstsql);alasql.write(''+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+sql+"
");alasql.write(''+err+"
")}}var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500);el.onkeydown=function(event){if(event.which==13){var sql=el.value;var olduseid=alasql.useid;el.value="";alasql.prompthistory.push(sql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(sql);alasql.write('
'+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+alasql.pretty(sql,false)+"
");alasql.write(''+err+"
")}el.focus();useidel.textContent=alasql.useid;var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500)}else if(event.which==38){prompti--;if(prompti<0)prompti=0;if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}else if(event.which==40){prompti++;if(prompti>=alasql.prompthistory.length){prompti=alasql.prompthistory.length;el.value=""}else if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}}};yy.BeginTransaction=function(params){return yy.extend(this,params)};yy.BeginTransaction.prototype.toString=function(){return K("BEGIN")+" "+K("TRANSACTION")};yy.BeginTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid,cb)}else{}if(cb)cb(res);return res};yy.CommitTransaction=function(params){return yy.extend(this,params)};yy.CommitTransaction.prototype.toString=function(){return K("COMMIT")+" "+K("TRANSACTION")};yy.CommitTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid,cb)}else{}if(cb)cb(res);return res};yy.RollbackTransaction=function(params){return yy.extend(this,params)};yy.RollbackTransaction.prototype.toString=function(){return K("ROLLBACK")+" "+K("TRANSACTION")};yy.RollbackTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid,cb)}else{}if(cb)cb(res);return res};alasql.into.SQL=function(filename,opts,data,columns,cb){var res;if(typeof filename=="object"){opts=filename;filename=""}var opt={};alasql.utils.extend(opt,opts);if(typeof opt.tableid=="undefined"){throw new Error("Table for INSERT TO is not defined.")}var s="";if(columns.length==0){if(typeof data[0]=="object"){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}else{}}for(var i=0,ilen=data.length;i0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var res=data.length;var s="";if(data.length>0){var key=columns[0].columnid;s+=data.map(function(d){return d[key]}).join("\n")}alasql.utils.saveFile(filename,s);if(cb)res=cb(res);return res};alasql.into.TAB=alasql.into.TSV=function(filename,opts,data,columns,cb){var opt={};alasql.utils.extend(opt,opts);opt.separator=" ";return alasql.into.CSV(filename,opt,data,columns,cb)};alasql.into.CSV=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var opt={};opt.separator=",";opt.quote='"';alasql.utils.extend(opt,opts);var res=data.length;var s="";if(opt.headers){s+=columns.map(function(col){return col.columnid}).join(opt.separator)+"\n"}data.forEach(function(d,idx){s+=columns.map(function(col){var s=d[col.columnid];s=(s+"").replace(new RegExp("\\"+opt.quote,"g"),'""');if((s+"").indexOf(opt.separator)>-1||(s+"").indexOf(opt.quote)>-1)s=opt.quote+s+opt.quote;return s}).join(opt.separator)+"\n"});if(filename){alasql.utils.saveFile(filename,s)}else{console.log(s)}if(cb)res=cb(res);return res};alasql.into.XLSX=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof exports=="object"){var XLSX=require("xlsx")}else{var XLSX=window.XLSX}var opt={sheetid:"Sheet1",headers:true};alasql.utils.extend(opt,opts);var res=data.length;var wb={SheetNames:[],Sheets:{}};if(opt.sourcefilename){alasql.utils.loadBinaryFile(opt.sourcefilename,!!cb,function(data){wb=XLSX.read(data,{type:"binary"});doExport()})}else{doExport()}function doExport(){var cells={};if(wb.SheetNames.indexOf(opt.sheetid)>-1){cells=wb.Sheets[opt.sheetid]}else{wb.SheetNames.push(opt.sheetid);wb.Sheets[opt.sheetid]={};cells=wb.Sheets[opt.sheetid]}var range="A1";if(opt.range)range=opt.range;var col0=alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);var row0=+range.match(/[0-9]+/)[0]-1;if(wb.Sheets[opt.sheetid]["!ref"]){var rangem=wb.Sheets[opt.sheetid]["!ref"];var colm=alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);var rowm=+rangem.match(/[0-9]+/)[0]-1}else{var colm=1,rowm=1}var colmax=Math.max(col0+columns.length,colm);var rowmax=Math.max(row0+data.length+2,rowm);var i=row0+1;wb.Sheets[opt.sheetid]["!ref"]="A1:"+alasql.utils.xlsnc(colmax)+rowmax;if(opt.headers){columns.forEach(function(col,idx){cells[alasql.utils.xlsnc(col0+idx)+""+i]={v:col.columnid}});i++}for(var j=0;j=N)return EOF;if(eol)return eol=false,EOL;var j=I;if(text.charCodeAt(j)===quoteCode){var i=j;while(i++http://github/agershun/alasq for more information'}];yy.Help.prototype.execute=function(databaseid,params,cb){var ss=[];if(!this.subject){ss=helpdocs}else{ss.push('See also http://github/agershun/alasq for more information')}if(cb)ss=cb(ss);return ss};yy.Print=function(params){return yy.extend(this,params)};yy.Print.prototype.toString=function(){var s=K("PRINT");if(this.statement)s+=" "+this.statement.toString();return s};yy.Print.prototype.execute=function(databaseid,params,cb){var res,s;if(this.statement){s=this.statement.execute(databaseid,params)}else{s=""}s=JSONtoString(s);console.log(s);if(cb)res=cb(res);return res};yy.Source=function(params){return yy.extend(this,params)};yy.Source.prototype.toString=function(){var s=K("SOURCE");if(this.url)s+=" "+S("'"+this.url+"'");return s};yy.Source.prototype.execute=function(databaseid,params,cb){var res;loadFile(this.url,!!cb,function(data){res=alasql(data);if(cb)res=cb(res);return res},function(err){throw err});return res};yy.Require=function(params){return yy.extend(this,params)};yy.Require.prototype.toString=function(){var s=K("REQUIRE");if(this.paths&&this.paths.length>0){s+=this.paths.map(function(path){return path.toString()}).join(",")}return s};yy.Require.prototype.execute=function(databaseid,params,cb){var self=this;var res=0;var ss="";if(this.paths.length>0){this.paths.forEach(function(path){loadFile(path.value,!!cb,function(data){res++;ss+=data;if(res0){res=res.filter(function(d){return d.databaseid.match(relike)})}}if(cb)cb(res);return res};LS.createTable=function(databaseid,tableid,ifnotexists,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var tb=LS.get(lsdbid+"."+tableid);var res=1;if(tb&&!ifnotexists){throw new Error('Table "'+tableid+'" alsready exists in localStorage database "'+lsdbid+'"')}var lsdb=LS.get(lsdbid);var table=alasql.databases[databaseid].tables[tableid];lsdb.tables[tableid]={columns:table.columns};LS.set(lsdbid,lsdb);LS.set(lsdbid+"."+tableid,[]);if(cb)cb(res);return res};LS.dropTable=function(databaseid,tableid,ifexists,cb){var res=1;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(!ifexists&&!lsdb.tables[tableid]){throw new Error('Cannot drop table "'+tableid+'" in localStorage, because it does not exist')}delete lsdb.tables[tableid];LS.set(lsdbid,lsdb);localStorage.removeItem(lsdbid+"."+tableid);if(cb)cb(res);return res};LS.fromTable=function(databaseid,tableid,cb,idx,query){var lsdbid=alasql.databases[databaseid].lsdbid;var res=LS.get(lsdbid+"."+tableid);if(cb)res=cb(res,idx,query);return res};LS.intoTable=function(databaseid,tableid,value,columns,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var res=value.length;var tb=LS.get(lsdbid+"."+tableid);if(!tb)tb=[];tb=tb.concat(value);LS.set(lsdbid+"."+tableid,tb);if(cb)cb(res);return res};LS.loadTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;db.tables[tableid].data=LS.get(lsdbid+"."+tableid)};LS.saveTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;LS.set(lsdbid+"."+tableid,db.tables[tableid].data);db.tables[tableid].data=null};LS.commit=function(databaseid,cb){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb={databaseid:lsdbid,tables:{}};if(db.tables){for(var tbid in db.tables){lsdb.tables[tbid]={columns:db.tables[tbid].columns};LS.set(lsdbid+"."+tbid,db.tables[tbid].data)}}LS.set(lsdbid,lsdb);return 1};LS.begin=LS.commit;LS.rollback=function(databaseid,cb){var db=alasql.databases[databaseid];db.dbversion++;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(lsdb.tables){for(var tbid in lsdb.tables){var tb=new alasql.Table({columns:db.tables[tbid].columns});extend(tb,lsdb.tables[tbid]);lsdb.tables[tbid]=tb;if(!alasql.options.autocommit){lsdb.tables[tbid].data=LS.get(db.lsdbid+"."+tbid)}lsdb.tables[tbid].indexColumns()}}delete alasql.databases[databaseid];alasql.databases[databaseid]=new alasql.Database(databaseid);extend(alasql.databases[databaseid],lsdb);alasql.databases[databaseid].databaseid=databaseid;alasql.databases[databaseid].engineid="LOCALSTORAGE"};var SQLITE=alasql.engines.SQLITE=function(){};SQLITE.createDatabase=function(wdbid,args,ifnotexists,dbid,cb){throw new Error("Connot create SQLITE database in memory. Attach it.")};SQLITE.dropDatabase=function(databaseid){throw new Error("This is impossible to drop SQLite database. Detach it.")};SQLITE.attachDatabase=function(sqldbid,dbid,args,cb){var res=1;if(alasql.databases[dbid]){throw new Error('Unable to attach database as "'+dbid+'" because it already exists')}if(args[0]&&args[0]instanceof yy.StringValue){alasql.utils.loadBinaryFile(args[0].value,true,function(data){var db=new alasql.Database(dbid||sqldbid);db.engineid="SQLITE";db.sqldbid=sqldbid;var sqldb=db.sqldb=new SQL.Database(data);db.tables=[];var tables=sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;tables.forEach(function(tbl){db.tables[tbl[1]]={};var columns=db.tables[tbl[1]].columns=[];var ast=alasql.parse(tbl[4]);var coldefs=ast.statements[0].columns;if(coldefs&&coldefs.length>0){coldefs.forEach(function(cd){columns.push(cd)})}});cb(1)},function(err){throw new Error('Cannot open SQLite database file "'+args[0].value+'"')});return res}else{throw new Error("Cannot attach SQLite database without a file")}return res};SQLITE.fromTable=function(databaseid,tableid,cb,idx,query){var data=alasql.databases[databaseid].sqldb.exec("SELECT * FROM "+tableid);var columns=query.sources[idx].columns=[];if(data[0].columns.length>0){data[0].columns.forEach(function(columnid){columns.push({columnid:columnid})})}var res=[];if(data[0].values.length>0){data[0].values.forEach(function(d){var r={};columns.forEach(function(col,idx){r[col.columnid]=d[idx]});res.push(r)})}if(cb)cb(res,idx,query)};SQLITE.intoTable=function(databaseid,tableid,value,columns,cb){var sqldb=alasql.databases[databaseid].sqldb;for(var i=0,ilen=value.length;i1){var sql="REQUIRE "+paths.map(function(p){return'"'+p+'"'}).join(",");alasql(sql,[],cb)}}else if(path===false){delete alasql.webworker;return}}}
\ No newline at end of file
+if(db.engineid&&alasql.engines[db.engineid].updateTable){return alasql.engines[db.engineid].updateTable(databaseid,tableid,assignfn,wherefn,params,cb)}if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var table=db.tables[tableid];if(!table){throw new Error("Table '"+tableid+"' not exists")}var numrows=0;for(var i=0,ilen=table.data.length;i0){s+="("+this.args.map(function(arg){return arg.toString()}).join(", ")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.CreateDatabase.prototype.execute=function(databaseid,params,cb){var args;if(this.args&&this.args.length>0){args=this.args.map(function(arg){return new Function("params","return "+arg.toJavaScript())(params)})}if(this.engineid){var res=alasql.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,cb);return res}else{var dbid=this.databaseid;if(alasql.databases[dbid]){throw new Error("Database '"+dbid+"' already exists")}var a=new alasql.Database(dbid);var res=1;if(cb)return cb(res);return res}};yy.AttachDatabase=function(params){return yy.extend(this,params)};yy.AttachDatabase.prototype.toString=function(){var s=K("ATTACH");if(this.engineid)s+=" "+L(this.engineid);s+=" "+K("DATABASE")+" "+L(this.databaseid);if(args){s+="(";if(args.length>0){s+=args.map(function(arg){return arg.toString()}).join(", ")}s+=")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.AttachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.engines[this.engineid]){throw new Error('Engine "'+this.engineid+'" is not defined.')}var res=alasql.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,params,cb);return res};yy.DetachDatabase=function(params){return yy.extend(this,params)};yy.DetachDatabase.prototype.toString=function(){var s=K("DETACH");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DetachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.databases[this.databaseid].engineid){throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.')}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.UseDatabase=function(params){return yy.extend(this,params)};yy.UseDatabase.prototype.toString=function(){return K("USE")+" "+K("DATABASE")+" "+L(this.databaseid)};yy.UseDatabase.prototype.execute=function(databaseid,params,cb){var dbid=this.databaseid;if(!alasql.databases[dbid]){throw new Error("Database '"+dbid+"' does not exist")}alasql.use(dbid);var res=1;if(cb)cb(res);return res};yy.DropDatabase=function(params){return yy.extend(this,params)};yy.DropDatabase.prototype.toString=function(){var s=K("DROP");if(this.ifexists)s+=" "+K("IF")+" "+K("EXISTS");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DropDatabase.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,cb)}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{if(alasql.databases[dbid].engineid){throw new Error("Cannot drop database '"+dbid+"', because it is attached. Detach it.")}delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.Declare=function(params){return yy.extend(this,params)};yy.Declare.prototype.toString=function(){var s=K("DECLARE")+" ";if(this.declares&&this.declares.length>0){s=this.declares.map(function(declare){var s="";s+="@"+L(declare.variable)+" ";s+=declare.dbtypeid;if(this.dbsize)s+="("+N(this.dbsize);if(this.dbprecision)s+=","+N(this.dbprecision);s+=")";if(declare.expression)s+=" = "+declare.expression.toString();return s}).join(",")}return s};yy.Declare.prototype.execute=function(databaseid,params,cb){var res=1;if(this.declares&&this.declares.length>0){this.declares.map(function(declare){var dbtypeid=declare.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();alasql.declares[declare.variable]={dbtypeid:dbtypeid,dbsize:declare.dbsize,dbprecision:declare.dbprecision};if(declare.expression){alasql.vars[declare.variable]=new Function("params,alasql","return "+declare.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[declare.variable]){alasql.vars[declare.variable]=alasql.stdfn.CONVERT(alasql.vars[declare.variable],alasql.declares[declare.variable])}}})}if(cb)res=cb(res);return res};yy.ShowDatabases=function(params){return yy.extend(this,params)};yy.ShowDatabases.prototype.toString=function(){var s=K("SHOW")+" "+K("DATABASES");if(this.like)s+="LIKE "+this.like.toString();return s};yy.ShowDatabases.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].showDatabases(this.like,cb)}else{var self=this;var res=[];for(dbid in alasql.databases){res.push({databaseid:dbid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.databaseid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res}};yy.ShowTables=function(params){return yy.extend(this,params)};yy.ShowTables.prototype.toString=function(){var s=K("SHOW")+" "+K("TABLES");if(this.databaseid)s+=" FROM "+this.databaseid;if(this.like)s+=" "+K("LIKE")+" "+this.like.toString();return s};yy.ShowTables.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.databaseid||databaseid];var self=this;var res=[];for(tableid in db.tables){res.push({tableid:tableid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.tableid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res};yy.ShowColumns=function(params){return yy.extend(this,params)};yy.ShowColumns.prototype.toString=function(){var s=K("SHOW")+" "+K("COLUMNS");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowColumns.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table&&table.columns){var res=table.columns.map(function(col){return{columnid:col.columnid,dbtypeid:col.dbtypeid,dbsize:col.dbsize}});return res}else{return[]}};yy.ShowIndex=function(params){return yy.extend(this,params)};yy.ShowIndex.prototype.toString=function(){var s=K("SHOW")+" "+K("INDEX");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowIndex.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;var res=[];if(table&&table.indices){for(var ind in table.indices){res.push({hh:ind,len:Object.keys(table.indices[ind]).length})}}return res};yy.ShowCreateTable=function(params){return yy.extend(this,params)};yy.ShowCreateTable.prototype.toString=function(){var s=K("SHOW")+" "+K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid);if(this.databaseid)s+=" "+K("FROM")+" "+L(this.databaseid);return s};yy.ShowCreateTable.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table){var s=K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid)+" (";var ss=[];if(table.columns){table.columns.forEach(function(col){var a=L(col.columnid)+" "+K(col.dbtypeid);if(col.dbsize)a+="("+N(col.dbsize)+")";if(col.primarykey)a+=" "+K("PRIMARY")+" "+K("KEY");ss.push(a)});s+=ss.join(", ")}s+=")";return s}else{throw new Error('There is no such table "'+this.table.tableid+'"')}};yy.SetVariable=function(params){return yy.extend(this,params)};yy.SetVariable.prototype.toString=function(){var s=K("SET")+" ";if(typeof this.value!="undefined")s+=K(this.variable.toUpperCase())+" "+(this.value?"ON":"OFF");if(this.expression)s+="@"+L(this.variable)+" = "+this.expression.toString();return s};yy.SetVariable.prototype.execute=function(databaseid,params,cb){if(typeof this.value!="undefined"){var val=this.value;if(val=="ON")val=true;else if(val=="OFF")val=false;alasql.options[this.variable]=val}else if(this.expression){var res=new Function("params,alasql","return "+this.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[this.variable]){res=alasql.stdfn.CONVERT(res,alasql.declares[this.variable])}if(this.props&&this.props.length>0){var fs="alasql.vars['"+this.variable+"']";fs+=this.props.map(function(prop){if(typeof prop=="string"){return"['"+prop+"']"}else if(typeof prop=="number"){return"["+prop+"]"}else{return"["+prop.toJavaScript()+"]"}}).join();new Function("value,alasql",fs+"=value")(res,alasql)}else{alasql.vars[this.variable]=res}}var res=1;if(cb)res=cb(res);return res};alasql.test=function(name,times,fn){if(arguments.length==0){alasql.log(alasql.con.results);return}else if(arguments.length==1){var tm=Date.now();fn();alasql.con.log(Date.now()-tm);return}if(arguments.length==2){fn=times;times=1}var tm=Date.now();for(var i=0;i",sql);if(res instanceof Array){if(console.table){console.table(res)}else{console.log(JSONtoString(res))}}else{console.log(JSONtoString(res))}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}var s="";if(typeof sql=="string"&&alasql.options.logprompt){s+=""+alasql.pretty(sql)+"
"}if(res instanceof Array){if(res.length==0){s+="[ ]
"}else if(typeof res[0]!="object"||res[0]instanceof Array){for(var i=0,ilen=res.length;i"+loghtml(res[i])+"
"}}else{s+=loghtml(res)}}else{s+=loghtml(res)}el.innerHTML+=s}};alasql.clear=function(){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.clear){console.clear()}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML=""}};alasql.write=function(s){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.log){console.log(s)}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML+=s}};function loghtml(res){var s="";if(typeof res=="undefined"){s+="undefined"}else if(res instanceof Array){s+="";s+="";var cols=[];for(colid in res[0]){cols.push(colid)}s+="#";cols.forEach(function(colid){s+=" | "+colid});for(var i=0,ilen=res.length;i"+(i+1);cols.forEach(function(colid){s+=" | ";if(+res[i][colid]==+res[i][colid]){s+=' ';if(typeof res[i][colid]=="undefined")s+="NULL";else s+=res[i][colid];s+=" "}else{if(typeof res[i][colid]=="undefined"){s+="NULL"}else if(typeof res[i][colid]=="string"){s+=res[i][colid]}else s+=JSONtoString(res[i][colid])}})}s+=" | |
---|
"}else{s+=""+JSONtoString(res)+"
"}return s}function scrollTo(element,to,duration){if(duration<=0)return;var difference=to-element.scrollTop;var perTick=difference/duration*10;setTimeout(function(){if(element.scrollTop==to)return;element.scrollTop=element.scrollTop+perTick;scrollTo(element,to,duration-10)},10)}alasql.prompt=function(el,useidel,firstsql){if(typeof exports=="object"){throw new Error("The functionality of prompt is not realized for Node.js")}var prompti=0;if(typeof el=="string")el=document.getElementById(el);if(typeof useidel=="string")useidel=document.getElementById(useidel);useidel.textContent=alasql.useid;if(firstsql){alasql.prompthistory.push(firstsql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(firstsql);alasql.write(''+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+sql+"
");alasql.write(''+err+"
")}}var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500);el.onkeydown=function(event){if(event.which==13){var sql=el.value;var olduseid=alasql.useid;el.value="";alasql.prompthistory.push(sql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(sql);alasql.write('
'+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+alasql.pretty(sql,false)+"
");alasql.write(''+err+"
")}el.focus();useidel.textContent=alasql.useid;var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500)}else if(event.which==38){prompti--;if(prompti<0)prompti=0;if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}else if(event.which==40){prompti++;if(prompti>=alasql.prompthistory.length){prompti=alasql.prompthistory.length;el.value=""}else if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}}};yy.BeginTransaction=function(params){return yy.extend(this,params)};yy.BeginTransaction.prototype.toString=function(){return K("BEGIN")+" "+K("TRANSACTION")};yy.BeginTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid,cb)}else{}if(cb)cb(res);return res};yy.CommitTransaction=function(params){return yy.extend(this,params)};yy.CommitTransaction.prototype.toString=function(){return K("COMMIT")+" "+K("TRANSACTION")};yy.CommitTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid,cb)}else{}if(cb)cb(res);return res};yy.RollbackTransaction=function(params){return yy.extend(this,params)};yy.RollbackTransaction.prototype.toString=function(){return K("ROLLBACK")+" "+K("TRANSACTION")};yy.RollbackTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid,cb)}else{}if(cb)cb(res);return res};alasql.into.SQL=function(filename,opts,data,columns,cb){var res;if(typeof filename=="object"){opts=filename;filename=""}var opt={};alasql.utils.extend(opt,opts);if(typeof opt.tableid=="undefined"){throw new Error("Table for INSERT TO is not defined.")}var s="";if(columns.length==0){if(typeof data[0]=="object"){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}else{}}for(var i=0,ilen=data.length;i0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var res=data.length;var s="";if(data.length>0){var key=columns[0].columnid;s+=data.map(function(d){return d[key]}).join("\n")}alasql.utils.saveFile(filename,s);if(cb)res=cb(res);return res};alasql.into.TAB=alasql.into.TSV=function(filename,opts,data,columns,cb){var opt={};alasql.utils.extend(opt,opts);opt.separator=" ";return alasql.into.CSV(filename,opt,data,columns,cb)};alasql.into.CSV=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var opt={};opt.separator=",";opt.quote='"';alasql.utils.extend(opt,opts);var res=data.length;var s="";if(opt.headers){s+=columns.map(function(col){return col.columnid}).join(opt.separator)+"\n"}data.forEach(function(d,idx){s+=columns.map(function(col){var s=d[col.columnid];s=(s+"").replace(new RegExp("\\"+opt.quote,"g"),'""');if((s+"").indexOf(opt.separator)>-1||(s+"").indexOf(opt.quote)>-1)s=opt.quote+s+opt.quote;return s}).join(opt.separator)+"\n"});if(filename){alasql.utils.saveFile(filename,s)}else{console.log(s)}if(cb)res=cb(res);return res};alasql.into.XLSX=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof exports=="object"){var XLSX=require("xlsx")}else{var XLSX=window.XLSX}var opt={sheetid:"Sheet1",headers:true};alasql.utils.extend(opt,opts);var res=data.length;var wb={SheetNames:[],Sheets:{}};if(opt.sourcefilename){alasql.utils.loadBinaryFile(opt.sourcefilename,!!cb,function(data){wb=XLSX.read(data,{type:"binary"});doExport()})}else{doExport()}function doExport(){var cells={};if(wb.SheetNames.indexOf(opt.sheetid)>-1){cells=wb.Sheets[opt.sheetid]}else{wb.SheetNames.push(opt.sheetid);wb.Sheets[opt.sheetid]={};cells=wb.Sheets[opt.sheetid]}var range="A1";if(opt.range)range=opt.range;var col0=alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);var row0=+range.match(/[0-9]+/)[0]-1;if(wb.Sheets[opt.sheetid]["!ref"]){var rangem=wb.Sheets[opt.sheetid]["!ref"];var colm=alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);var rowm=+rangem.match(/[0-9]+/)[0]-1}else{var colm=1,rowm=1}var colmax=Math.max(col0+columns.length,colm);var rowmax=Math.max(row0+data.length+2,rowm);var i=row0+1;wb.Sheets[opt.sheetid]["!ref"]="A1:"+alasql.utils.xlsnc(colmax)+rowmax;if(opt.headers){columns.forEach(function(col,idx){cells[alasql.utils.xlsnc(col0+idx)+""+i]={v:col.columnid}});i++}for(var j=0;j=N)return EOF;if(eol)return eol=false,EOL;var j=I;if(text.charCodeAt(j)===quoteCode){var i=j;while(i++http://github/agershun/alasq for more information'}];yy.Help.prototype.execute=function(databaseid,params,cb){var ss=[];if(!this.subject){ss=helpdocs}else{ss.push('See also http://github/agershun/alasq for more information')}if(cb)ss=cb(ss);return ss};yy.Print=function(params){return yy.extend(this,params)};yy.Print.prototype.toString=function(){var s=K("PRINT");if(this.statement)s+=" "+this.statement.toString();return s};yy.Print.prototype.execute=function(databaseid,params,cb){var res,s;if(this.statement){s=this.statement.execute(databaseid,params)}else{s=""}s=JSONtoString(s);console.log(s);if(cb)res=cb(res);return res};yy.Source=function(params){return yy.extend(this,params)};yy.Source.prototype.toString=function(){var s=K("SOURCE");if(this.url)s+=" "+S("'"+this.url+"'");return s};yy.Source.prototype.execute=function(databaseid,params,cb){var res;loadFile(this.url,!!cb,function(data){res=alasql(data);if(cb)res=cb(res);return res},function(err){throw err});return res};yy.Require=function(params){return yy.extend(this,params)};yy.Require.prototype.toString=function(){var s=K("REQUIRE");if(this.paths&&this.paths.length>0){s+=this.paths.map(function(path){return path.toString()}).join(",")}return s};yy.Require.prototype.execute=function(databaseid,params,cb){var self=this;var res=0;var ss="";if(this.paths.length>0){this.paths.forEach(function(path){loadFile(path.value,!!cb,function(data){res++;ss+=data;if(res0){res=res.filter(function(d){return d.databaseid.match(relike)})}}if(cb)cb(res);return res};LS.createTable=function(databaseid,tableid,ifnotexists,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var tb=LS.get(lsdbid+"."+tableid);var res=1;if(tb&&!ifnotexists){throw new Error('Table "'+tableid+'" alsready exists in localStorage database "'+lsdbid+'"')}var lsdb=LS.get(lsdbid);var table=alasql.databases[databaseid].tables[tableid];lsdb.tables[tableid]={columns:table.columns};LS.set(lsdbid,lsdb);LS.set(lsdbid+"."+tableid,[]);if(cb)cb(res);return res};LS.dropTable=function(databaseid,tableid,ifexists,cb){var res=1;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(!ifexists&&!lsdb.tables[tableid]){throw new Error('Cannot drop table "'+tableid+'" in localStorage, because it does not exist')}delete lsdb.tables[tableid];LS.set(lsdbid,lsdb);localStorage.removeItem(lsdbid+"."+tableid);if(cb)cb(res);return res};LS.fromTable=function(databaseid,tableid,cb,idx,query){var lsdbid=alasql.databases[databaseid].lsdbid;var res=LS.get(lsdbid+"."+tableid);if(cb)res=cb(res,idx,query);return res};LS.intoTable=function(databaseid,tableid,value,columns,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var res=value.length;var tb=LS.get(lsdbid+"."+tableid);if(!tb)tb=[];tb=tb.concat(value);LS.set(lsdbid+"."+tableid,tb);if(cb)cb(res);return res};LS.loadTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;db.tables[tableid].data=LS.get(lsdbid+"."+tableid)};LS.saveTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;LS.set(lsdbid+"."+tableid,db.tables[tableid].data);db.tables[tableid].data=null};LS.commit=function(databaseid,cb){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb={databaseid:lsdbid,tables:{}};if(db.tables){for(var tbid in db.tables){lsdb.tables[tbid]={columns:db.tables[tbid].columns};LS.set(lsdbid+"."+tbid,db.tables[tbid].data)}}LS.set(lsdbid,lsdb);return 1};LS.begin=LS.commit;LS.rollback=function(databaseid,cb){var db=alasql.databases[databaseid];db.dbversion++;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(lsdb.tables){for(var tbid in lsdb.tables){var tb=new alasql.Table({columns:db.tables[tbid].columns});extend(tb,lsdb.tables[tbid]);lsdb.tables[tbid]=tb;if(!alasql.options.autocommit){lsdb.tables[tbid].data=LS.get(db.lsdbid+"."+tbid)}lsdb.tables[tbid].indexColumns()}}delete alasql.databases[databaseid];alasql.databases[databaseid]=new alasql.Database(databaseid);extend(alasql.databases[databaseid],lsdb);alasql.databases[databaseid].databaseid=databaseid;alasql.databases[databaseid].engineid="LOCALSTORAGE"};var SQLITE=alasql.engines.SQLITE=function(){};SQLITE.createDatabase=function(wdbid,args,ifnotexists,dbid,cb){throw new Error("Connot create SQLITE database in memory. Attach it.")};SQLITE.dropDatabase=function(databaseid){throw new Error("This is impossible to drop SQLite database. Detach it.")};SQLITE.attachDatabase=function(sqldbid,dbid,args,params,cb){var res=1;if(alasql.databases[dbid]){throw new Error('Unable to attach database as "'+dbid+'" because it already exists')}if(args[0]&&args[0]instanceof yy.StringValue||args[0]instanceof yy.ParamValue){if(args[0]instanceof yy.StringValue){var value=args[0].value}else if(args[0]instanceof yy.ParamValue){var value=params[args[0].param]}alasql.utils.loadBinaryFile(value,true,function(data){var db=new alasql.Database(dbid||sqldbid);db.engineid="SQLITE";db.sqldbid=sqldbid;var sqldb=db.sqldb=new SQL.Database(data);db.tables=[];var tables=sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;tables.forEach(function(tbl){db.tables[tbl[1]]={};var columns=db.tables[tbl[1]].columns=[];var ast=alasql.parse(tbl[4]);var coldefs=ast.statements[0].columns;if(coldefs&&coldefs.length>0){coldefs.forEach(function(cd){columns.push(cd)})}});cb(1)},function(err){throw new Error('Cannot open SQLite database file "'+args[0].value+'"')});return res}else{throw new Error("Cannot attach SQLite database without a file")}return res};SQLITE.fromTable=function(databaseid,tableid,cb,idx,query){var data=alasql.databases[databaseid].sqldb.exec("SELECT * FROM "+tableid);var columns=query.sources[idx].columns=[];if(data[0].columns.length>0){data[0].columns.forEach(function(columnid){columns.push({columnid:columnid})})}var res=[];if(data[0].values.length>0){data[0].values.forEach(function(d){var r={};columns.forEach(function(col,idx){r[col.columnid]=d[idx]});res.push(r)})}if(cb)cb(res,idx,query)};SQLITE.intoTable=function(databaseid,tableid,value,columns,cb){var sqldb=alasql.databases[databaseid].sqldb;for(var i=0,ilen=value.length;i1){var sql="REQUIRE "+paths.map(function(p){return'"'+p+'"'}).join(",");alasql(sql,[],cb)}}else if(path===false){delete alasql.webworker;return}}}
\ No newline at end of file
diff --git a/src/76usedatabase.js b/src/76usedatabase.js
index cc991180b6..6c1681a21e 100644
--- a/src/76usedatabase.js
+++ b/src/76usedatabase.js
@@ -56,7 +56,7 @@ yy.AttachDatabase.prototype.toString = function() {
if(args) {
s += '(';
if(args.length>0) {
- s += args.map(function(arg){ return arg.toJavaScript(); }).join(', ');
+ s += args.map(function(arg){ return arg.toString(); }).join(', ');
}
s += ')';
}
@@ -70,7 +70,7 @@ yy.AttachDatabase.prototype.execute = function (databaseid, params, cb) {
if(!alasql.engines[this.engineid]) {
throw new Error('Engine "'+this.engineid+'" is not defined.');
};
- var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, this.args, cb);
+ var res = alasql.engines[this.engineid].attachDatabase(this.databaseid, this.as, this.args, params, cb);
return res;
};
diff --git a/src/90websql.js b/src/90websql.js
index 6f5b1a75f7..d092db2fdc 100644
--- a/src/90websql.js
+++ b/src/90websql.js
@@ -26,7 +26,7 @@ WEBSQL.dropDatabase = function(databaseid){
throw new Error('This is impossible to drop WebSQL database.');
};
-WEBSQL.attachDatabase = function(databaseid, dbid, cb){
+WEBSQL.attachDatabase = function(databaseid, dbid, args, params, cb){
var res = 1;
if(alasql.databases[dbid]) {
throw new Error('Unable to attach database as "'+dbid+'" because it already exists');
diff --git a/src/91indexeddb.js b/src/91indexeddb.js
index e81b4b51b2..6a1bcc7ff1 100644
--- a/src/91indexeddb.js
+++ b/src/91indexeddb.js
@@ -66,7 +66,7 @@ IDB.dropDatabase = function(ixdbid, ifexists, cb){
};
};
-IDB.attachDatabase = function(ixdbid, dbid, args, cb) {
+IDB.attachDatabase = function(ixdbid, dbid, args, params, cb) {
var request1 = indexedDB.webkitGetDatabaseNames();
request1.onsuccess = function(event) {
var dblist = event.target.result;
diff --git a/src/92localstorage.js b/src/92localstorage.js
index 7ec455a99b..e95525fc6f 100644
--- a/src/92localstorage.js
+++ b/src/92localstorage.js
@@ -75,7 +75,7 @@ LS.dropDatabase = function(lsdbid, ifexists, cb){
};
-LS.attachDatabase = function(lsdbid, dbid, args, cb){
+LS.attachDatabase = function(lsdbid, dbid, args, params, cb){
var res = 1;
if(alasql.databases[dbid]) {
throw new Error('Unable to attach database as "'+dbid+'" because it already exists');
diff --git a/src/93sqlite.js b/src/93sqlite.js
index 8fc6d82ff2..399ebe9521 100644
--- a/src/93sqlite.js
+++ b/src/93sqlite.js
@@ -14,14 +14,22 @@ SQLITE.dropDatabase = function(databaseid){
throw new Error('This is impossible to drop SQLite database. Detach it.');
};
-SQLITE.attachDatabase = function(sqldbid, dbid, args, cb){
+SQLITE.attachDatabase = function(sqldbid, dbid, args, params, cb){
var res = 1;
if(alasql.databases[dbid]) {
throw new Error('Unable to attach database as "'+dbid+'" because it already exists');
};
- if(args[0] && args[0] instanceof yy.StringValue) {
- alasql.utils.loadBinaryFile(args[0].value,true,function(data){
+
+ if(args[0] && (args[0] instanceof yy.StringValue)
+ || (args[0] instanceof yy.ParamValue)) {
+
+ if(args[0] instanceof yy.StringValue) {
+ var value = args[0].value;
+ } else if(args[0] instanceof yy.ParamValue) {
+ var value = params[args[0].param];
+ }
+ alasql.utils.loadBinaryFile(value,true,function(data){
var db = new alasql.Database(dbid || sqldbid);
db.engineid = "SQLITE";
db.sqldbid = sqldbid;
diff --git a/src/94filestorage.js b/src/94filestorage.js
index ff99f3ba70..a91fc18374 100644
--- a/src/94filestorage.js
+++ b/src/94filestorage.js
@@ -75,7 +75,7 @@ FS.dropDatabase = function(fsdbid, ifexists, cb){
};
-FS.attachDatabase = function(fsdbid, dbid, args, cb){
+FS.attachDatabase = function(fsdbid, dbid, args, params, cb){
// console.log(arguments);
var res = 1;
if(alasql.databases[dbid]) {
From a5e80ad6b72d3e09e306702e6db493398cdc117d Mon Sep 17 00:00:00 2001
From: Andrey Gershun
Date: Sun, 5 Apr 2015 19:52:01 +0300
Subject: [PATCH 2/6] Clean directory
---
.gitignore | 7 -
CHANGELOG.md | 1 +
README.md | 2 +-
RELEASES.md | 78 +-
TODO.md | 86 +-
alasql-worker.js | 101 -
alasql-worker.js.map | 11 -
alasql-worker.min.js | 1 -
alasql.min.js | 8 -
gulpfile.js | 22 +-
index.js | 8 -
medals.csv | 1873 ---
medals.xlsx | Bin 547298 -> 0 bytes
node_modules/gulp/CHANGELOG.md | 184 +
node_modules/gulp/LICENSE | 22 +
node_modules/gulp/README.md | 205 +-
node_modules/gulp/bin/gulp.js | 424 +-
node_modules/gulp/completion/README.md | 40 +-
node_modules/gulp/completion/bash | 54 +-
node_modules/gulp/completion/fish | 20 +-
node_modules/gulp/completion/powershell | 122 +-
node_modules/gulp/completion/zsh | 50 +-
node_modules/gulp/index.js | 126 +-
node_modules/gulp/lib/completion.js | 44 +-
node_modules/gulp/lib/taskTree.js | 28 +-
node_modules/gulp/node_modules/.bin/semver | 0
.../gulp/node_modules/archy/.travis.yml | 8 +-
node_modules/gulp/node_modules/archy/LICENSE | 18 +
.../gulp/node_modules/archy/README.markdown | 180 +-
.../gulp/node_modules/archy/examples/beep.js | 48 +-
.../node_modules/archy/examples/multi_line.js | 50 +-
node_modules/gulp/node_modules/archy/index.js | 70 +-
.../gulp/node_modules/archy/package.json | 148 +-
.../gulp/node_modules/archy/test/beep.js | 80 +-
.../node_modules/archy/test/multi_line.js | 90 +-
.../node_modules/archy/test/non_unicode.js | 80 +-
node_modules/gulp/node_modules/chalk/index.js | 190 +-
.../chalk/node_modules/.bin/has-ansi | 0
.../chalk/node_modules/.bin/strip-ansi | 0
.../chalk/node_modules/.bin/supports-color | 0
.../chalk/node_modules/ansi-styles/index.js | 80 +-
.../node_modules/ansi-styles/package.json | 148 +-
.../chalk/node_modules/ansi-styles/readme.md | 140 +-
.../escape-string-regexp/index.js | 22 +-
.../node_modules/escape-string-regexp/license | 21 +
.../escape-string-regexp/package.json | 139 +-
.../escape-string-regexp/readme.md | 54 +-
.../chalk/node_modules/has-ansi/cli.js | 106 +-
.../chalk/node_modules/has-ansi/index.js | 8 +-
.../has-ansi/node_modules/ansi-regex/index.js | 8 +-
.../node_modules/ansi-regex/package.json | 158 +-
.../node_modules/ansi-regex/readme.md | 66 +-
.../chalk/node_modules/has-ansi/package.json | 170 +-
.../chalk/node_modules/has-ansi/readme.md | 90 +-
.../chalk/node_modules/strip-ansi/cli.js | 78 +-
.../chalk/node_modules/strip-ansi/index.js | 12 +-
.../node_modules/ansi-regex/index.js | 8 +-
.../node_modules/ansi-regex/package.json | 158 +-
.../node_modules/ansi-regex/readme.md | 66 +-
.../node_modules/strip-ansi/package.json | 168 +-
.../chalk/node_modules/strip-ansi/readme.md | 86 +-
.../chalk/node_modules/supports-color/cli.js | 56 +-
.../node_modules/supports-color/index.js | 64 +-
.../node_modules/supports-color/package.json | 156 +-
.../node_modules/supports-color/readme.md | 88 +-
.../gulp/node_modules/chalk/package.json | 164 +-
.../gulp/node_modules/chalk/readme.md | 350 +-
.../gulp/node_modules/deprecated/.npmignore | 10 +-
.../gulp/node_modules/deprecated/.travis.yml | 10 +-
.../gulp/node_modules/deprecated/LICENSE | 40 +-
.../gulp/node_modules/deprecated/README.md | 100 +-
.../gulp/node_modules/deprecated/index.js | 76 +-
.../gulp/node_modules/deprecated/package.json | 126 +-
.../node_modules/deprecated/test/field.js | 86 +-
.../node_modules/deprecated/test/method.js | 62 +-
.../gulp/node_modules/gulp-util/.npmignore | 7 -
.../gulp/node_modules/gulp-util/LICENSE | 40 +-
.../gulp/node_modules/gulp-util/README.md | 287 +-
.../gulp/node_modules/gulp-util/index.js | 36 +-
.../gulp/node_modules/gulp-util/lib/File.js | 1 -
.../node_modules/gulp-util/lib/PluginError.js | 250 +-
.../gulp/node_modules/gulp-util/lib/beep.js | 3 -
.../gulp/node_modules/gulp-util/lib/buffer.js | 30 +-
.../gulp/node_modules/gulp-util/lib/colors.js | 1 -
.../node_modules/gulp-util/lib/combine.js | 22 +-
.../gulp/node_modules/gulp-util/lib/date.js | 1 -
.../gulp/node_modules/gulp-util/lib/env.js | 8 +-
.../node_modules/gulp-util/lib/isBuffer.js | 14 +-
.../gulp/node_modules/gulp-util/lib/isNull.js | 6 +-
.../node_modules/gulp-util/lib/isStream.js | 10 +-
.../node_modules/gulp-util/lib/linefeed.js | 1 -
.../gulp/node_modules/gulp-util/lib/log.js | 20 +-
.../gulp/node_modules/gulp-util/lib/noop.js | 10 +-
.../node_modules/gulp-util/lib/template.js | 40 +-
.../gulp-util/node_modules/.bin/dateformat | 1 +
.../node_modules/array-differ/index.js | 7 +
.../node_modules/array-differ/package.json | 61 +
.../node_modules/array-differ/readme.md | 41 +
.../node_modules/array-uniq/index.js | 60 +
.../node_modules/array-uniq/package.json | 66 +
.../node_modules/array-uniq/readme.md | 30 +
.../gulp-util/node_modules/beeper/index.js | 45 +
.../node_modules/beeper/package.json | 67 +
.../gulp-util/node_modules/beeper/readme.md | 53 +
.../gulp-util/node_modules/chalk/index.js | 100 +
.../gulp-util/node_modules/chalk/license | 21 +
.../chalk/node_modules/.bin/has-ansi | 1 +
.../chalk/node_modules/.bin/strip-ansi | 1 +
.../chalk/node_modules/.bin/supports-color | 1 +
.../chalk/node_modules/ansi-styles/index.js | 56 +
.../chalk/node_modules/ansi-styles/license | 21 +
.../node_modules/ansi-styles/package.json | 80 +
.../chalk/node_modules/ansi-styles/readme.md | 86 +
.../escape-string-regexp/index.js | 11 +
.../node_modules/escape-string-regexp/license | 21 +
.../escape-string-regexp/package.json | 70 +
.../escape-string-regexp/readme.md | 27 +
.../chalk/node_modules/has-ansi/cli.js | 45 +
.../chalk/node_modules/has-ansi/index.js | 4 +
.../chalk/node_modules/has-ansi/license | 21 +
.../has-ansi/node_modules/ansi-regex/index.js | 4 +
.../has-ansi/node_modules/ansi-regex/license | 21 +
.../node_modules/ansi-regex/package.json | 86 +
.../node_modules/ansi-regex/readme.md | 33 +
.../has-ansi/node_modules/get-stdin/index.js | 49 +
.../node_modules/get-stdin/package.json | 64 +
.../has-ansi/node_modules/get-stdin/readme.md | 44 +
.../chalk/node_modules/has-ansi/package.json | 92 +
.../chalk/node_modules/has-ansi/readme.md | 45 +
.../chalk/node_modules/strip-ansi/cli.js | 47 +
.../chalk/node_modules/strip-ansi/index.js | 6 +
.../node_modules/ansi-regex/index.js | 4 +
.../node_modules/ansi-regex/license | 21 +
.../node_modules/ansi-regex/package.json | 86 +
.../node_modules/ansi-regex/readme.md | 33 +
.../node_modules/strip-ansi/package.json | 89 +
.../chalk/node_modules/strip-ansi/readme.md | 43 +
.../chalk/node_modules/supports-color/cli.js | 29 +
.../node_modules/supports-color/index.js | 43 +
.../chalk/node_modules/supports-color/license | 21 +
.../node_modules/supports-color/package.json | 85 +
.../node_modules/supports-color/readme.md | 46 +
.../gulp-util/node_modules/chalk/package.json | 83 +
.../gulp-util/node_modules/chalk/readme.md | 197 +
.../node_modules/dateformat/.npmignore | 57 +
.../node_modules/dateformat}/.travis.yml | 10 +-
.../gulp-util/node_modules/dateformat/LICENSE | 40 +-
.../node_modules/dateformat/Readme.md | 161 +-
.../node_modules/dateformat/bin/cli.js | 75 +
.../node_modules/dateformat/lib/dateformat.js | 407 +-
.../node_modules/get-stdin/index.js | 49 +
.../node_modules/get-stdin/package.json | 64 +
.../node_modules/get-stdin/readme.md | 44 +
.../dateformat/node_modules/meow/index.js | 45 +
.../dateformat/node_modules/meow/license | 21 +
.../meow/node_modules/.bin/indent-string | 1 +
.../meow/node_modules/camelcase-keys/index.js | 9 +
.../node_modules/camelcase/index.js | 15 +
.../node_modules/camelcase/package.json | 68 +
.../node_modules/camelcase/readme.md | 45 +
.../node_modules/map-obj/index.js | 15 +
.../node_modules/map-obj/package.json | 65 +
.../node_modules/map-obj/readme.md | 29 +
.../node_modules/camelcase-keys/package.json | 81 +
.../node_modules/camelcase-keys/readme.md | 32 +
.../meow/node_modules/indent-string/cli.js | 48 +
.../meow/node_modules/indent-string/index.js | 16 +
.../meow/node_modules/indent-string/license | 21 +
.../indent-string/node_modules/.bin/repeating | 1 +
.../node_modules/repeating/cli.js | 22 +
.../node_modules/repeating/index.js | 24 +
.../node_modules/repeating/license | 21 +
.../repeating/node_modules/is-finite/index.js | 9 +
.../node_modules/is-finite/package.json | 66 +
.../node_modules/is-finite/readme.md | 30 +
.../node_modules/repeating/package.json | 73 +
.../node_modules/repeating/readme.md | 40 +
.../node_modules/indent-string/package.json | 72 +
.../meow/node_modules/indent-string/readme.md | 77 +
.../dateformat/node_modules/meow/package.json | 68 +
.../dateformat/node_modules/meow/readme.md | 110 +
.../node_modules/dateformat/package.json | 135 +-
.../dateformat/test/test_dayofweek.js | 25 +-
.../dateformat/test/test_formats.js | 76 +
.../dateformat/test/test_isoutcdatetime.js | 11 +
.../test/{ => weekofyear}/test_weekofyear.js | 8 +-
.../test/{ => weekofyear}/test_weekofyear.sh | 54 +-
.../LICENSE.txt | 44 +-
.../node_modules/lodash._reescape/README.md | 20 +
.../node_modules/lodash._reescape/index.js | 13 +
.../lodash._reescape/package.json | 72 +
.../LICENSE.txt | 44 +-
.../node_modules/lodash._reevaluate/README.md | 20 +
.../node_modules/lodash._reevaluate/index.js | 13 +
.../lodash._reevaluate/package.json | 72 +
.../lodash._reinterpolate/LICENSE.txt | 44 +-
.../lodash._reinterpolate/README.md | 35 +-
.../lodash._reinterpolate/index.js | 26 +-
.../lodash._reinterpolate/package.json | 159 +-
.../node_modules/lodash.template/LICENSE.txt | 44 +-
.../node_modules/lodash.template/README.md | 35 +-
.../node_modules/lodash.template/index.js | 596 +-
.../LICENSE.txt | 44 +-
.../node_modules/lodash._basecopy/README.md | 20 +
.../node_modules/lodash._basecopy/index.js | 34 +
.../lodash._basecopy/package.json | 72 +
.../lodash._basetostring/LICENSE.txt | 22 +
.../lodash._basetostring/README.md | 20 +
.../lodash._basetostring/index.js | 25 +
.../lodash._basetostring/package.json | 72 +
.../lodash._basevalues/LICENSE.txt | 22 +
.../node_modules/lodash._basevalues/README.md | 20 +
.../node_modules/lodash._basevalues/index.js | 31 +
.../lodash._basevalues/package.json | 72 +
.../lodash._escapestringchar/README.md | 15 -
.../lodash._escapestringchar/index.js | 33 -
.../lodash._escapestringchar/package.json | 75 -
.../lodash._isiterateecall/LICENSE.txt | 22 +
.../lodash._isiterateecall/README.md | 20 +
.../lodash._isiterateecall/index.js | 97 +
.../lodash._isiterateecall/package.json | 88 +
.../node_modules/lodash.defaults/README.md | 15 -
.../node_modules/lodash.defaults/index.js | 54 -
.../lodash._objecttypes/README.md | 15 -
.../node_modules/lodash._objecttypes/index.js | 20 -
.../lodash._objecttypes/package.json | 76 -
.../node_modules/lodash.defaults/package.json | 86 -
.../node_modules/lodash.escape/LICENSE.txt | 44 +-
.../node_modules/lodash.escape/README.md | 35 +-
.../node_modules/lodash.escape/index.js | 107 +-
.../lodash._escapehtmlchar/README.md | 15 -
.../lodash._escapehtmlchar/index.js | 22 -
.../lodash._htmlescapes/LICENSE.txt | 22 -
.../lodash._htmlescapes/README.md | 15 -
.../node_modules/lodash._htmlescapes/index.js | 26 -
.../lodash._htmlescapes/package.json | 75 -
.../lodash._escapehtmlchar/package.json | 78 -
.../lodash._reunescapedhtml/LICENSE.txt | 22 -
.../lodash._reunescapedhtml/README.md | 15 -
.../lodash._reunescapedhtml/index.js | 15 -
.../lodash._htmlescapes/LICENSE.txt | 22 -
.../lodash._htmlescapes/README.md | 15 -
.../node_modules/lodash._htmlescapes/index.js | 26 -
.../lodash._htmlescapes/package.json | 75 -
.../lodash._reunescapedhtml/package.json | 79 -
.../node_modules/lodash.escape/package.json | 180 +-
.../node_modules/lodash.keys/LICENSE.txt | 44 +-
.../node_modules/lodash.keys/README.md | 35 +-
.../node_modules/lodash.keys/index.js | 269 +-
.../node_modules/lodash._isnative/LICENSE.txt | 22 -
.../node_modules/lodash._isnative/README.md | 15 -
.../node_modules/lodash._isnative/index.js | 34 -
.../lodash._isnative/package.json | 64 -
.../node_modules/lodash._shimkeys/LICENSE.txt | 22 -
.../node_modules/lodash._shimkeys/README.md | 15 -
.../node_modules/lodash._shimkeys/index.js | 38 -
.../lodash._objecttypes/LICENSE.txt | 22 -
.../lodash._objecttypes/README.md | 15 -
.../node_modules/lodash._objecttypes/index.js | 20 -
.../lodash._objecttypes/package.json | 76 -
.../lodash._shimkeys/package.json | 79 -
.../lodash.isarguments/LICENSE.txt | 22 +
.../node_modules/lodash.isarguments/README.md | 20 +
.../node_modules/lodash.isarguments/index.js | 73 +
.../lodash.isarguments/package.json | 94 +
.../node_modules/lodash.isarray/LICENSE.txt | 22 +
.../node_modules/lodash.isarray/README.md | 20 +
.../node_modules/lodash.isarray/index.js | 158 +
.../node_modules/lodash.isarray/package.json | 94 +
.../node_modules/lodash.isnative/LICENSE.txt | 22 +
.../node_modules/lodash.isnative/README.md | 20 +
.../node_modules/lodash.isnative/index.js | 115 +
.../node_modules/lodash.isnative/package.json | 94 +
.../node_modules/lodash.isobject/LICENSE.txt | 22 -
.../node_modules/lodash.isobject/README.md | 15 -
.../node_modules/lodash.isobject/index.js | 39 -
.../lodash._objecttypes/LICENSE.txt | 22 -
.../lodash._objecttypes/README.md | 15 -
.../node_modules/lodash._objecttypes/index.js | 20 -
.../lodash._objecttypes/package.json | 76 -
.../node_modules/lodash.isobject/package.json | 86 -
.../node_modules/lodash.keys/package.json | 187 +-
.../node_modules/lodash.restparam/LICENSE.txt | 22 +
.../node_modules/lodash.restparam/README.md | 20 +
.../node_modules/lodash.restparam/index.js | 67 +
.../lodash.restparam/package.json | 78 +
.../lodash.templatesettings/LICENSE.txt | 44 +-
.../lodash.templatesettings/README.md | 35 +-
.../lodash.templatesettings/index.js | 150 +-
.../lodash.templatesettings/package.json | 184 +-
.../node_modules/lodash.values/LICENSE.txt | 22 -
.../node_modules/lodash.values/README.md | 15 -
.../node_modules/lodash.values/index.js | 36 -
.../node_modules/lodash.values/package.json | 85 -
.../node_modules/lodash.template/package.json | 196 +-
.../gulp-util/node_modules/lodash/LICENSE.txt | 22 -
.../gulp-util/node_modules/lodash/README.md | 163 -
.../node_modules/lodash/dist/lodash.compat.js | 7157 -----------
.../lodash/dist/lodash.compat.min.js | 61 -
.../node_modules/lodash/dist/lodash.js | 6785 ----------
.../node_modules/lodash/dist/lodash.min.js | 56 -
.../lodash/dist/lodash.underscore.js | 4979 --------
.../lodash/dist/lodash.underscore.min.js | 39 -
.../gulp-util/node_modules/lodash/lodash.js | 7179 -----------
.../node_modules/lodash/package.json | 132 -
.../node_modules/multipipe/.npmignore | 2 +-
.../node_modules/multipipe/.travis.yml | 6 +-
.../node_modules/multipipe/History.md | 50 +-
.../gulp-util/node_modules/multipipe/Makefile | 18 +-
.../node_modules/multipipe/Readme.md | 203 +-
.../gulp-util/node_modules/multipipe/index.js | 144 +-
.../node_modules/duplexer2/.npmignore | 2 +-
.../node_modules/duplexer2/.travis.yml | 6 +-
.../node_modules/duplexer2/LICENSE.md | 52 +-
.../node_modules/duplexer2/README.md | 258 +-
.../node_modules/duplexer2/example.js | 98 +-
.../multipipe/node_modules/duplexer2/index.js | 124 +-
.../node_modules/readable-stream/.npmignore | 8 +-
.../node_modules/readable-stream/LICENSE | 36 +-
.../node_modules/readable-stream/README.md | 30 +-
.../node_modules/readable-stream/duplex.js | 2 +-
.../node_modules/readable-stream/float.patch | 1846 +--
.../readable-stream/lib/_stream_duplex.js | 178 +-
.../lib/_stream_passthrough.js | 92 +-
.../readable-stream/lib/_stream_readable.js | 1902 +--
.../readable-stream/lib/_stream_transform.js | 418 +-
.../readable-stream/lib/_stream_writable.js | 954 +-
.../node_modules/core-util-is/README.md | 6 +-
.../node_modules/core-util-is/float.patch | 1206 +-
.../node_modules/core-util-is/lib/util.js | 212 +-
.../node_modules/core-util-is/package.json | 108 +-
.../node_modules/core-util-is/util.js | 212 +-
.../node_modules/inherits/LICENSE | 32 +-
.../node_modules/inherits/README.md | 84 +-
.../node_modules/inherits/inherits.js | 2 +-
.../node_modules/inherits/inherits_browser.js | 46 +-
.../node_modules/inherits/package.json | 102 +-
.../node_modules/inherits/test.js | 50 +-
.../node_modules/isarray/README.md | 108 +-
.../node_modules/isarray/build/build.js | 418 +-
.../node_modules/isarray/component.json | 38 +-
.../node_modules/isarray/index.js | 6 +-
.../node_modules/isarray/package.json | 108 +-
.../node_modules/string_decoder/.npmignore | 4 +-
.../node_modules/string_decoder/LICENSE | 40 +-
.../node_modules/string_decoder/README.md | 12 +-
.../node_modules/string_decoder/index.js | 442 +-
.../node_modules/string_decoder/package.json | 108 +-
.../node_modules/readable-stream/package.json | 140 +-
.../readable-stream/passthrough.js | 2 +-
.../node_modules/readable-stream/readable.js | 14 +-
.../node_modules/readable-stream/transform.js | 2 +-
.../node_modules/readable-stream/writable.js | 2 +-
.../node_modules/duplexer2/package.json | 113 +-
.../node_modules/duplexer2/test/tests.js | 322 +-
.../node_modules/multipipe/package.json | 89 +-
.../node_modules/multipipe/test/multipipe.js | 282 +-
.../node_modules/object-assign/index.js | 26 +
.../node_modules/object-assign/package.json | 68 +
.../node_modules/object-assign/readme.md | 51 +
.../{vinyl => replace-ext}/.npmignore | 10 +-
.../replace-ext}/.travis.yml | 11 +-
.../node_modules/replace-ext/LICENSE | 20 +
.../node_modules/replace-ext/README.md | 44 +
.../replace-ext/index.js} | 16 +-
.../node_modules/replace-ext/package.json | 63 +
.../node_modules/replace-ext/test/main.js | 51 +
.../node_modules/through2/.npmignore | 4 +-
.../gulp-util/node_modules/through2/LICENSE | 76 +-
.../gulp-util/node_modules/through2/README.md | 298 +-
.../node_modules/readable-stream/.npmignore | 8 +-
.../node_modules/readable-stream/LICENSE | 36 +-
.../node_modules/readable-stream/README.md | 30 +-
.../node_modules/readable-stream/duplex.js | 2 +-
.../readable-stream/lib/_stream_duplex.js | 178 +-
.../lib/_stream_passthrough.js | 92 +-
.../readable-stream/lib/_stream_readable.js | 1964 +--
.../readable-stream/lib/_stream_transform.js | 420 +-
.../readable-stream/lib/_stream_writable.js | 772 +-
.../node_modules/core-util-is/README.md | 6 +-
.../node_modules/core-util-is/float.patch | 1206 +-
.../node_modules/core-util-is/lib/util.js | 212 +-
.../node_modules/core-util-is/package.json | 108 +-
.../node_modules/core-util-is/util.js | 212 +-
.../node_modules/inherits/LICENSE | 32 +-
.../node_modules/inherits/README.md | 84 +-
.../node_modules/inherits/inherits.js | 2 +-
.../node_modules/inherits/inherits_browser.js | 46 +-
.../node_modules/inherits/package.json | 102 +-
.../node_modules/inherits/test.js | 50 +-
.../node_modules/isarray/README.md | 108 +-
.../node_modules/isarray/build/build.js | 418 +-
.../node_modules/isarray/component.json | 38 +-
.../node_modules/isarray/index.js | 6 +-
.../node_modules/isarray/package.json | 108 +-
.../node_modules/string_decoder/.npmignore | 4 +-
.../node_modules/string_decoder/LICENSE | 40 +-
.../node_modules/string_decoder/README.md | 12 +-
.../node_modules/string_decoder/index.js | 442 +-
.../node_modules/string_decoder/package.json | 108 +-
.../node_modules/readable-stream/package.json | 139 +-
.../readable-stream/passthrough.js | 2 +-
.../node_modules/readable-stream/readable.js | 16 +-
.../node_modules/readable-stream/transform.js | 2 +-
.../node_modules/readable-stream/writable.js | 2 +-
.../through2/node_modules/xtend/.jshintrc | 60 +-
.../through2/node_modules/xtend/.npmignore | 2 +-
.../through2/node_modules/xtend/LICENCE | 38 +-
.../through2/node_modules/xtend/Makefile | 6 +-
.../through2/node_modules/xtend/README.md | 64 +-
.../through2/node_modules/xtend/immutable.js | 34 +-
.../through2/node_modules/xtend/mutable.js | 30 +-
.../through2/node_modules/xtend/package.json | 176 +-
.../through2/node_modules/xtend/test.js | 126 +-
.../node_modules/through2/package.json | 129 +-
.../node_modules/through2/through2.js | 192 +-
.../gulp-util/node_modules/vinyl/.jshintrc | 36 -
.../gulp-util/node_modules/vinyl/.travis.yml | 5 -
.../gulp-util/node_modules/vinyl/LICENSE | 40 +-
.../gulp-util/node_modules/vinyl/README.md | 254 +-
.../node_modules/vinyl/coverage/coverage.json | 1 -
.../vinyl/coverage/lcov-report/index.html | 363 -
.../vinyl/coverage/lcov-report/prettify.css | 1 -
.../vinyl/coverage/lcov-report/prettify.js | 1 -
.../coverage/lcov-report/vinyl/index.html | 350 -
.../coverage/lcov-report/vinyl/index.js.html | 847 --
.../lcov-report/vinyl/lib/cloneBuffer.js.html | 343 -
.../coverage/lcov-report/vinyl/lib/index.html | 402 -
.../vinyl/lib/inspectStream.js.html | 355 -
.../lcov-report/vinyl/lib/isBuffer.js.html | 340 -
.../lcov-report/vinyl/lib/isNull.js.html | 331 -
.../lcov-report/vinyl/lib/isStream.js.html | 334 -
.../node_modules/vinyl/coverage/lcov.info | 280 -
.../gulp-util/node_modules/vinyl/index.js | 350 +-
.../node_modules/vinyl/lib/cloneBuffer.js | 14 +-
.../node_modules/vinyl/lib/inspectStream.js | 22 +-
.../node_modules/vinyl/lib/isBuffer.js | 12 +-
.../node_modules/vinyl/lib/isNull.js | 6 +-
.../node_modules/vinyl/lib/isStream.js | 8 +-
.../vinyl/node_modules/clone-stats/LICENSE.md | 42 +-
.../vinyl/node_modules/clone-stats/README.md | 34 +-
.../vinyl/node_modules/clone-stats/index.js | 26 +-
.../node_modules/clone-stats/package.json | 114 +-
.../vinyl/node_modules/clone-stats/test.js | 72 +-
.../vinyl/node_modules/clone/.npmignore | 1 +
.../vinyl/node_modules/clone}/.travis.yml | 9 +-
.../vinyl/node_modules/clone/LICENSE | 18 +
.../vinyl/node_modules/clone/README.md | 126 +
.../vinyl/node_modules/clone/clone.js | 144 +
.../vinyl/node_modules/clone/package.json | 127 +
.../vinyl/node_modules/clone/test.js | 289 +
.../gulp-util/node_modules/vinyl/package.json | 144 +-
.../node_modules/vinyl/perf/clone.js | 59 -
.../gulp-util/node_modules/vinyl/test/File.js | 753 --
.../node_modules/vinyl/test/cloneBuffer.js | 27 -
.../node_modules/vinyl/test/inspectStream.js | 53 -
.../node_modules/vinyl/test/isBuffer.js | 29 -
.../node_modules/vinyl/test/isNull.js | 22 -
.../node_modules/vinyl/test/isStream.js | 29 -
.../gulp/node_modules/gulp-util/package.json | 167 +-
.../gulp/node_modules/interpret/CHANGELOG | 76 +-
.../gulp/node_modules/interpret/LICENSE | 44 +-
.../gulp/node_modules/interpret/README.md | 169 +-
.../gulp/node_modules/interpret/index.js | 103 +-
.../gulp/node_modules/interpret/package.json | 123 +-
.../gulp/node_modules/liftoff/.jshintrc | 22 +-
.../gulp/node_modules/liftoff/.npmignore | 3 +-
.../gulp/node_modules/liftoff/.travis.yml | 9 -
.../gulp/node_modules/liftoff/CHANGELOG | 202 +-
.../gulp/node_modules/liftoff/LICENSE | 44 +-
.../gulp/node_modules/liftoff/README.md | 605 +-
.../gulp/node_modules/liftoff/UPGRADING.md | 54 +-
.../gulp/node_modules/liftoff/appveyor.yml | 54 +-
.../liftoff/artwork/liftoff-icon.eps | Bin 520682 -> 0 bytes
.../liftoff/artwork/liftoff-icon.png | Bin 8407 -> 0 bytes
.../liftoff/artwork/liftoff-icon.svg | 77 -
.../node_modules/liftoff/artwork/liftoff.eps | Bin 551958 -> 0 bytes
.../node_modules/liftoff/artwork/liftoff.png | Bin 10492 -> 0 bytes
.../node_modules/liftoff/artwork/liftoff.svg | 78 -
.../gulp/node_modules/liftoff/index.js | 361 +-
.../liftoff/lib/build_config_name.js | 34 +-
.../node_modules/liftoff/lib/file_search.js | 28 +-
.../node_modules/liftoff/lib/find_config.js | 50 +-
.../gulp/node_modules/liftoff/lib/find_cwd.js | 32 +-
.../node_modules/liftoff/lib/parse_options.js | 66 +-
.../liftoff/lib/silent_require.js | 10 +-
.../liftoff/node_modules/extend/.jscs.json | 66 +
.../liftoff/node_modules/extend/.travis.yml | 36 +-
.../liftoff/node_modules/extend/LICENSE | 46 +-
.../liftoff/node_modules/extend/README.md | 122 +-
.../node_modules/extend/component.json | 63 +-
.../liftoff/node_modules/extend/index.js | 161 +-
.../liftoff/node_modules/extend/package.json | 133 +-
.../node_modules/findup-sync/.jshintrc | 15 -
.../node_modules/findup-sync/.npmignore | 4 +
.../node_modules/findup-sync/.travis.yml | 5 -
.../node_modules/findup-sync/Gruntfile.js | 25 -
.../node_modules/findup-sync/LICENSE-MIT | 44 +-
.../node_modules/findup-sync/README.md | 92 +-
.../findup-sync/lib/findup-sync.js | 95 +-
.../findup-sync/node_modules/glob/.npmignore | 2 -
.../findup-sync/node_modules/glob/LICENSE | 27 -
.../findup-sync/node_modules/glob/README.md | 607 +-
.../findup-sync/node_modules/glob/common.js | 177 +
.../node_modules/glob/examples/g.js | 9 -
.../node_modules/glob/examples/usr-local.js | 9 -
.../findup-sync/node_modules/glob/glob.js | 1377 +--
.../glob/node_modules/inflight/.eslintrc | 17 +
.../glob/node_modules/inflight/LICENSE | 15 +
.../glob/node_modules/inflight/README.md | 37 +
.../glob/node_modules/inflight/inflight.js | 44 +
.../inflight/node_modules/wrappy/LICENSE | 15 +
.../inflight/node_modules/wrappy/README.md | 36 +
.../inflight/node_modules/wrappy/package.json | 52 +
.../node_modules/wrappy/test/basic.js | 51 +
.../inflight/node_modules/wrappy/wrappy.js | 33 +
.../glob/node_modules/inflight/package.json | 61 +
.../glob/node_modules/inflight/test.js | 97 +
.../glob/node_modules/inherits/LICENSE | 32 +-
.../glob/node_modules/inherits/README.md | 84 +-
.../glob/node_modules/inherits/inherits.js | 2 +-
.../node_modules/inherits/inherits_browser.js | 46 +-
.../glob/node_modules/inherits/package.json | 102 +-
.../glob/node_modules/inherits/test.js | 50 +-
.../glob/node_modules/minimatch/LICENSE | 46 +-
.../glob/node_modules/minimatch/README.md | 434 +-
.../glob/node_modules/minimatch/browser.js | 1114 ++
.../glob/node_modules/minimatch/minimatch.js | 1929 ++-
.../node_modules/brace-expansion}/.npmignore | 3 +-
.../node_modules/brace-expansion}/.travis.yml | 6 +-
.../node_modules/brace-expansion/README.md | 121 +
.../node_modules/brace-expansion/example.js | 8 +
.../node_modules/brace-expansion/index.js | 191 +
.../node_modules/balanced-match/.npmignore} | 4 +-
.../node_modules/balanced-match/.travis.yml | 4 +
.../node_modules/balanced-match/Makefile | 6 +
.../node_modules/balanced-match/README.md | 80 +
.../node_modules/balanced-match/example.js | 5 +
.../node_modules/balanced-match/index.js | 38 +
.../node_modules/balanced-match/package.json | 73 +
.../balanced-match/test/balanced.js | 56 +
.../node_modules/concat-map/.travis.yml | 4 +
.../node_modules/concat-map/LICENSE | 18 +
.../node_modules/concat-map/README.markdown | 62 +
.../node_modules/concat-map/example/map.js | 6 +
.../node_modules/concat-map/index.js | 13 +
.../node_modules/concat-map/package.json | 83 +
.../node_modules/concat-map/test/map.js | 39 +
.../node_modules/brace-expansion/package.json | 75 +
.../brace-expansion/test/bash-comparison.js | 32 +
.../brace-expansion/test/bash-results.txt | 1075 ++
.../brace-expansion/test/cases.txt | 182 +
.../brace-expansion/test/dollar.js | 9 +
.../brace-expansion/test/empty-option.js | 10 +
.../brace-expansion/test/generate.sh | 24 +
.../test/negative-increment.js | 15 +
.../brace-expansion/test/nested.js | 16 +
.../brace-expansion/test/order.js | 10 +
.../node_modules/brace-expansion/test/pad.js | 13 +
.../brace-expansion/test/same-type.js | 7 +
.../brace-expansion/test/sequence.js | 50 +
.../node_modules/lru-cache/.npmignore | 1 -
.../node_modules/lru-cache/CONTRIBUTORS | 14 -
.../minimatch/node_modules/lru-cache/LICENSE | 23 -
.../node_modules/lru-cache/README.md | 97 -
.../node_modules/lru-cache/lib/lru-cache.js | 252 -
.../node_modules/lru-cache/package.json | 50 -
.../node_modules/lru-cache/test/basic.js | 369 -
.../node_modules/lru-cache/test/foreach.js | 52 -
.../lru-cache/test/memory-leak.js | 50 -
.../minimatch/node_modules/sigmund/README.md | 53 -
.../minimatch/node_modules/sigmund/bench.js | 283 -
.../node_modules/sigmund/package.json | 58 -
.../minimatch/node_modules/sigmund/sigmund.js | 39 -
.../node_modules/sigmund/test/basic.js | 24 -
.../glob/node_modules/minimatch/package.json | 121 +-
.../glob/node_modules/minimatch/test/basic.js | 399 -
.../minimatch/test/brace-expand.js | 33 -
.../node_modules/minimatch/test/caching.js | 14 -
.../node_modules/minimatch/test/defaults.js | 274 -
.../test/extglob-ending-with-state-char.js | 8 -
.../node_modules/sigmund => once}/LICENSE | 54 +-
.../glob/node_modules/once/README.md | 51 +
.../once/node_modules/wrappy/LICENSE | 15 +
.../once/node_modules/wrappy/README.md | 36 +
.../once/node_modules/wrappy/package.json | 52 +
.../once/node_modules/wrappy/test/basic.js | 51 +
.../once/node_modules/wrappy/wrappy.js | 33 +
.../glob/node_modules/once/once.js | 21 +
.../glob/node_modules/once/package.json | 60 +
.../glob/node_modules/once/test/once.js | 23 +
.../node_modules/glob/package.json | 130 +-
.../findup-sync/node_modules/glob/sync.js | 409 +
.../node_modules/glob/test/00-setup.js | 176 -
.../node_modules/glob/test/bash-comparison.js | 63 -
.../node_modules/glob/test/bash-results.json | 351 -
.../node_modules/glob/test/cwd-test.js | 55 -
.../node_modules/glob/test/globstar-match.js | 19 -
.../node_modules/glob/test/mark.js | 118 -
.../glob/test/new-glob-optional-options.js | 10 -
.../node_modules/glob/test/nocase-nomagic.js | 113 -
.../node_modules/glob/test/pause-resume.js | 73 -
.../node_modules/glob/test/readme-issue.js | 36 -
.../node_modules/glob/test/root-nomount.js | 39 -
.../node_modules/glob/test/root.js | 46 -
.../node_modules/glob/test/stat.js | 32 -
.../node_modules/glob/test/zz-cleanup.js | 11 -
.../node_modules/lodash/LICENSE.txt | 22 -
.../findup-sync/node_modules/lodash/README.md | 163 -
.../node_modules/lodash/dist/lodash.compat.js | 7157 -----------
.../lodash/dist/lodash.compat.min.js | 61 -
.../node_modules/lodash/dist/lodash.js | 6785 ----------
.../node_modules/lodash/dist/lodash.min.js | 56 -
.../lodash/dist/lodash.underscore.js | 4979 --------
.../lodash/dist/lodash.underscore.min.js | 39 -
.../findup-sync/node_modules/lodash/lodash.js | 7179 -----------
.../node_modules/lodash/package.json | 132 -
.../node_modules/findup-sync/package.json | 134 +-
.../findup-sync/test/findup-sync_test.js | 48 -
.../node_modules/flagged-respawn/.npmignore | 2 +-
.../node_modules/flagged-respawn/.travis.yml | 18 +-
.../node_modules/flagged-respawn/LICENSE | 44 +-
.../node_modules/flagged-respawn/README.md | 114 +-
.../node_modules/flagged-respawn/index.js | 36 +-
.../flagged-respawn/lib/reorder.js | 32 +-
.../flagged-respawn/lib/respawn.js | 30 +-
.../node_modules/flagged-respawn/package.json | 123 +-
.../flagged-respawn/test/bin/exit_code.js | 26 +-
.../flagged-respawn/test/bin/respawner.js | 34 +-
.../flagged-respawn/test/bin/signal.js | 32 +-
.../flagged-respawn/test/index.js | 186 +-
.../liftoff/node_modules/resolve/.travis.yml | 8 +-
.../liftoff/node_modules/resolve/LICENSE | 36 +-
.../node_modules/resolve/example/async.js | 10 +-
.../node_modules/resolve/example/sync.js | 6 +-
.../liftoff/node_modules/resolve/index.js | 10 +-
.../liftoff/node_modules/resolve/lib/async.js | 325 +-
.../node_modules/resolve/lib/caller.js | 16 +-
.../liftoff/node_modules/resolve/lib/core.js | 8 +-
.../node_modules/resolve/lib/core.json | 76 +-
.../resolve/lib/node-modules-paths.js | 72 +-
.../liftoff/node_modules/resolve/lib/sync.js | 162 +-
.../liftoff/node_modules/resolve/package.json | 109 +-
.../node_modules/resolve/readme.markdown | 292 +-
.../liftoff/node_modules/resolve/test/core.js | 24 +-
.../node_modules/resolve/test/dotdot.js | 58 +-
.../resolve/test/dotdot/abc/index.js | 4 +-
.../node_modules/resolve/test/dotdot/index.js | 2 +-
.../resolve/test/faulty_basedir.js | 31 +-
.../node_modules/resolve/test/filter.js | 36 +-
.../node_modules/resolve/test/filter_sync.js | 30 +-
.../liftoff/node_modules/resolve/test/mock.js | 284 +-
.../node_modules/resolve/test/mock_sync.js | 136 +-
.../node_modules/resolve/test/module_dir.js | 112 +-
.../test/module_dir/xmodules/aaa/index.js | 2 +-
.../test/module_dir/ymodules/aaa/index.js | 2 +-
.../test/module_dir/zmodules/bbb/main.js | 2 +-
.../test/module_dir/zmodules/bbb/package.json | 6 +-
.../node_modules/resolve/test/node_path.js | 96 +-
.../resolve/test/node_path/x/aaa/index.js | 2 +-
.../resolve/test/node_path/x/ccc/index.js | 2 +-
.../resolve/test/node_path/y/bbb/index.js | 2 +-
.../resolve/test/node_path/y/ccc/index.js | 2 +-
.../node_modules/resolve/test/nonstring.js | 18 +-
.../node_modules/resolve/test/pathfilter.js | 35 +
.../test/pathfilter/deep_ref/main.js} | 0
.../deep_ref/node_modules/deep/alt.js} | 0
.../deep_ref/node_modules/deep/deeper/ref.js} | 0
.../deep_ref/node_modules/deep/package.json | 4 +
.../deep_ref/node_modules/deep/ref.js} | 0
.../node_modules/resolve/test/precedence.js | 23 +
.../resolve/test/precedence/aaa.js | 1 +
.../resolve/test/precedence/aaa/index.js | 1 +
.../resolve/test/precedence/aaa/main.js | 1 +
.../resolve/test/precedence/bbb.js | 1 +
.../resolve/test/precedence/bbb/main.js | 1 +
.../node_modules/resolve/test/resolver.js | 562 +-
.../resolver/bar/node_modules/foo/index.js | 2 +-
.../resolve/test/resolver/baz/package.json | 6 +-
.../resolve/test/resolver/baz/quux.js | 2 +-
.../biz/node_modules/garply/lib/index.js | 2 +-
.../biz/node_modules/garply/package.json | 6 +-
.../resolver/biz/node_modules/grux/index.js | 2 +-
.../resolver/biz/node_modules/tiv/index.js | 2 +-
.../resolve/test/resolver/cup.coffee | 2 +-
.../node_modules/resolve/test/resolver/foo.js | 2 +-
.../test/resolver/incorrect_main/index.js | 4 +-
.../test/resolver/incorrect_main/package.json | 6 +-
.../resolve/test/resolver/quux/foo/index.js | 2 +-
.../test/resolver/without_basedir/main.js | 12 +-
.../without_basedir/node_modules/mymodule.js | 2 +-
.../resolve/test/resolver_sync.js | 360 +-
.../node_modules/resolve/test/subdirs.js | 13 +
.../test/subdirs/node_modules/a/b/c/x.json | 1 +
.../test/subdirs/node_modules/a/package.json | 1 +
.../gulp/node_modules/liftoff/package.json | 136 +-
.../gulp/node_modules/minimist/.travis.yml | 8 +-
.../gulp/node_modules/minimist/LICENSE | 36 +-
.../node_modules/minimist/example/parse.js | 4 +-
.../gulp/node_modules/minimist/index.js | 438 +-
.../gulp/node_modules/minimist/package.json | 141 +-
.../node_modules/minimist/readme.markdown | 182 +-
.../node_modules/minimist/test/all_bool.js | 64 +-
.../gulp/node_modules/minimist/test/bool.js | 238 +-
.../gulp/node_modules/minimist/test/dash.js | 62 +-
.../minimist/test/default_bool.js | 55 +-
.../gulp/node_modules/minimist/test/dotted.js | 44 +-
.../gulp/node_modules/minimist/test/long.js | 62 +-
.../gulp/node_modules/minimist/test/num.js | 72 +-
.../gulp/node_modules/minimist/test/parse.js | 394 +-
.../minimist/test/parse_modified.js | 18 +-
.../gulp/node_modules/minimist/test/short.js | 134 +-
.../node_modules/minimist/test/stop_early.js | 30 +-
.../node_modules/minimist/test/unknown.js | 204 +-
.../node_modules/minimist/test/whitespace.js | 16 +-
.../gulp/node_modules/orchestrator/.npmignore | 20 +-
.../gulp/node_modules/orchestrator/LICENSE | 40 +-
.../gulp/node_modules/orchestrator/README.md | 572 +-
.../gulp/node_modules/orchestrator/index.js | 608 +-
.../node_modules/orchestrator/lib/runTask.js | 132 +-
.../node_modules/end-of-stream/.npmignore | 2 +-
.../node_modules/end-of-stream/README.md | 92 +-
.../node_modules/end-of-stream/index.js | 120 +-
.../end-of-stream/node_modules/once/LICENSE | 54 +-
.../end-of-stream/node_modules/once/README.md | 102 +-
.../once/node_modules/wrappy/LICENSE | 30 +-
.../once/node_modules/wrappy/README.md | 72 +-
.../once/node_modules/wrappy/package.json | 104 +-
.../once/node_modules/wrappy/test/basic.js | 102 +-
.../once/node_modules/wrappy/wrappy.js | 66 +-
.../end-of-stream/node_modules/once/once.js | 42 +-
.../node_modules/once/package.json | 120 +-
.../node_modules/once/test/once.js | 46 +-
.../node_modules/end-of-stream/package.json | 110 +-
.../node_modules/end-of-stream/test.js | 118 +-
.../node_modules/sequencify/package.json | 124 +-
.../node_modules/stream-consume/.npmignore | 2 +-
.../node_modules/stream-consume/README.md | 106 +-
.../node_modules/stream-consume/index.js | 28 +-
.../node_modules/stream-consume/package.json | 96 +-
.../node_modules/stream-consume/test/tests.js | 360 +-
.../node_modules/orchestrator/package.json | 162 +-
.../node_modules/pretty-hrtime/package.json | 119 +-
.../gulp/node_modules/semver/.npmignore | 2 +-
node_modules/gulp/node_modules/semver/LICENSE | 54 +-
.../gulp/node_modules/semver/Makefile | 48 +-
.../gulp/node_modules/semver/README.md | 461 +-
.../gulp/node_modules/semver/bin/semver | 258 +-
.../semver/{foot.js => foot.js.txt} | 12 +-
.../semver/{head.js => head.js.txt} | 4 +-
.../gulp/node_modules/semver/package.json | 105 +-
.../node_modules/semver/semver.browser.js | 2233 ++--
.../node_modules/semver/semver.browser.js.gz | Bin 7247 -> 7970 bytes
.../gulp/node_modules/semver/semver.js | 2241 ++--
.../gulp/node_modules/semver/semver.min.js | 2 +-
.../gulp/node_modules/semver/semver.min.js.gz | Bin 3318 -> 3776 bytes
.../gulp/node_modules/semver/test/amd.js | 30 +-
.../node_modules/semver/test/big-numbers.js | 31 +
.../gulp/node_modules/semver/test/clean.js | 54 +-
.../gulp/node_modules/semver/test/gtr.js | 346 +-
.../gulp/node_modules/semver/test/index.js | 1272 +-
.../gulp/node_modules/semver/test/ltr.js | 356 +-
.../semver/test/major-minor-patch.js | 72 +
.../node_modules/semver/test/no-module.js | 38 +-
.../gulp/node_modules/tildify/index.js | 12 +-
.../tildify/node_modules/.bin/user-home | 0
.../tildify/node_modules/user-home/cli.js | 52 +-
.../tildify/node_modules/user-home/index.js | 29 +-
.../tildify/node_modules/user-home/license | 21 +
.../node_modules/user-home/package.json | 137 +-
.../tildify/node_modules/user-home/readme.md | 82 +-
.../gulp/node_modules/tildify/package.json | 133 +-
.../gulp/node_modules/tildify/readme.md | 60 +-
.../gulp/node_modules/v8flags/.npmignore | 5 +-
.../gulp/node_modules/v8flags/.travis.yml | 9 -
.../node_modules/v8flags/3.14.5.9.flags.json | 1 -
.../gulp/node_modules/v8flags/LICENSE | 44 +-
.../gulp/node_modules/v8flags/README.md | 67 +-
.../gulp/node_modules/v8flags/fetch.js | 30 -
.../gulp/node_modules/v8flags/index.js | 94 +-
.../v8flags/node_modules/.bin/user-home | 1 +
.../v8flags/node_modules/user-home/cli.js | 26 +
.../v8flags/node_modules/user-home/index.js | 15 +
.../v8flags/node_modules/user-home/license | 21 +
.../node_modules/user-home/package.json | 69 +
.../v8flags/node_modules/user-home/readme.md | 42 +
.../gulp/node_modules/v8flags/package.json | 127 +-
.../gulp/node_modules/v8flags/test.js | 22 -
.../gulp/node_modules/vinyl-fs/.editorconfig | 10 -
.../gulp/node_modules/vinyl-fs/.jshintrc | 27 -
.../gulp/node_modules/vinyl-fs/.npmignore | 9 -
.../gulp/node_modules/vinyl-fs/LICENSE | 40 +-
.../gulp/node_modules/vinyl-fs/README.md | 186 +-
.../gulp/node_modules/vinyl-fs/index.js | 14 +-
.../node_modules/vinyl-fs/lib/dest/index.js | 127 +-
.../vinyl-fs/lib/dest/writeContents/index.js | 118 +-
.../lib/dest/writeContents/writeBuffer.js | 26 +-
.../lib/dest/writeContents/writeDir.js | 18 +-
.../lib/dest/writeContents/writeStream.js | 44 +-
.../lib/src/getContents/bufferFile.js | 32 +-
.../vinyl-fs/lib/src/getContents/index.js | 52 +-
.../vinyl-fs/lib/src/getContents/readDir.js | 16 +-
.../lib/src/getContents/streamFile.js | 26 +-
.../node_modules/vinyl-fs/lib/src/getStats.js | 38 +-
.../node_modules/vinyl-fs/lib/src/index.js | 123 +-
.../vinyl-fs/node_modules/.bin/mkdirp | 0
.../vinyl-fs/node_modules/.bin/strip-bom | 0
.../node_modules/defaults}/.npmignore | 2 +-
.../vinyl-fs/node_modules/defaults/LICENSE | 21 +
.../vinyl-fs/node_modules/defaults/README.md | 43 +
.../vinyl-fs/node_modules/defaults/index.js | 13 +
.../defaults/node_modules/clone/.npmignore | 1 +
.../node_modules/clone}/.travis.yml | 9 +-
.../defaults/node_modules/clone/LICENSE | 18 +
.../defaults/node_modules/clone/README.md | 126 +
.../defaults/node_modules/clone/clone.js | 144 +
.../defaults/node_modules/clone/package.json | 127 +
.../defaults/node_modules/clone/test.js | 289 +
.../node_modules/defaults/package.json | 54 +
.../vinyl-fs/node_modules/defaults/test.js | 34 +
.../node_modules/glob-stream/.npmignore | 6 -
.../node_modules/glob-stream/.travis.yml | 6 -
.../vinyl-fs/node_modules/glob-stream/LICENSE | 40 +-
.../node_modules/glob-stream/README.md | 134 +-
.../node_modules/glob-stream/index.js | 236 +-
.../glob-stream/node_modules/glob/.npmignore | 3 -
.../glob-stream/node_modules/glob/LICENSE | 30 +-
.../glob-stream/node_modules/glob/README.md | 610 +-
.../glob-stream/node_modules/glob/common.js | 237 +
.../node_modules/glob/examples/g.js | 9 -
.../node_modules/glob/examples/usr-local.js | 9 -
.../glob-stream/node_modules/glob/glob.js | 1486 ++-
.../glob/node_modules/inflight/.eslintrc | 17 +
.../glob/node_modules/inflight/LICENSE | 15 +
.../glob/node_modules/inflight/README.md | 37 +
.../glob/node_modules/inflight/inflight.js | 44 +
.../inflight/node_modules/wrappy/LICENSE | 15 +
.../inflight/node_modules/wrappy/README.md | 36 +
.../inflight/node_modules/wrappy/package.json | 52 +
.../node_modules/wrappy/test/basic.js | 51 +
.../inflight/node_modules/wrappy/wrappy.js | 33 +
.../glob/node_modules/inflight/package.json | 61 +
.../glob/node_modules/inflight/test.js | 97 +
.../glob/node_modules/inherits/LICENSE | 32 +-
.../glob/node_modules/inherits/README.md | 84 +-
.../glob/node_modules/inherits/inherits.js | 2 +-
.../node_modules/inherits/inherits_browser.js | 46 +-
.../glob/node_modules/inherits/package.json | 102 +-
.../glob/node_modules/inherits/test.js | 50 +-
.../glob/node_modules/once/LICENSE | 54 +-
.../glob/node_modules/once/README.md | 102 +-
.../once/node_modules/wrappy/LICENSE | 30 +-
.../once/node_modules/wrappy/README.md | 72 +-
.../once/node_modules/wrappy/package.json | 104 +-
.../once/node_modules/wrappy/test/basic.js | 102 +-
.../once/node_modules/wrappy/wrappy.js | 66 +-
.../glob/node_modules/once/once.js | 42 +-
.../glob/node_modules/once/package.json | 120 +-
.../glob/node_modules/once/test/once.js | 46 +-
.../node_modules/glob/oh-my-glob.gif | Bin 510360 -> 0 bytes
.../node_modules/glob/package.json | 133 +-
.../glob-stream/node_modules/glob/sync.js | 457 +
.../node_modules/glob/test/00-setup.js | 176 -
.../node_modules/glob/test/bash-comparison.js | 63 -
.../node_modules/glob/test/bash-results.json | 356 -
.../node_modules/glob/test/cwd-test.js | 55 -
.../node_modules/glob/test/empty-set.js | 20 -
.../node_modules/glob/test/error-callback.js | 21 -
.../node_modules/glob/test/globstar-match.js | 19 -
.../node_modules/glob/test/mark.js | 118 -
.../node_modules/glob/test/negation-test.js | 16 -
.../glob/test/new-glob-optional-options.js | 10 -
.../node_modules/glob/test/nocase-nomagic.js | 125 -
.../node_modules/glob/test/pause-resume.js | 73 -
.../node_modules/glob/test/readme-issue.js | 36 -
.../node_modules/glob/test/root-nomount.js | 39 -
.../node_modules/glob/test/root.js | 46 -
.../node_modules/glob/test/stat.js | 32 -
.../node_modules/glob/test/zz-cleanup.js | 11 -
.../node_modules/glob2base/.editorconfig | 10 -
.../node_modules/glob2base/.jshintrc | 19 -
.../node_modules/glob2base/.npmignore | 9 -
.../node_modules/glob2base/.travis.yml | 6 -
.../node_modules/glob2base/LICENSE | 40 +-
.../node_modules/glob2base/README.md | 102 +-
.../node_modules/glob2base/index.js | 119 +-
.../node_modules/find-index/README.md | 33 +
.../node_modules/find-index/index.js | 26 +
.../glob2base/node_modules/find-index/last.js | 26 +
.../node_modules/find-index/package.json | 52 +
.../node_modules/glob2base/package.json | 140 +-
.../node_modules/glob2base/test/main.js | 53 -
.../node_modules/minimatch/LICENSE | 46 +-
.../node_modules/minimatch/README.md | 434 +-
.../node_modules/minimatch/browser.js | 1114 ++
.../node_modules/minimatch/minimatch.js | 1941 ++-
.../node_modules/brace-expansion/.npmignore} | 4 +-
.../node_modules/brace-expansion/.travis.yml | 3 +
.../node_modules/brace-expansion/README.md | 121 +
.../node_modules/brace-expansion/example.js | 8 +
.../node_modules/brace-expansion/index.js | 191 +
.../node_modules/balanced-match/.npmignore | 2 +
.../node_modules/balanced-match/.travis.yml | 4 +
.../node_modules/balanced-match/Makefile | 6 +
.../node_modules/balanced-match/README.md | 80 +
.../node_modules/balanced-match/example.js | 5 +
.../node_modules/balanced-match/index.js | 38 +
.../node_modules/balanced-match/package.json | 73 +
.../balanced-match/test/balanced.js | 56 +
.../node_modules/concat-map/.travis.yml | 4 +
.../node_modules/concat-map/LICENSE | 18 +
.../node_modules/concat-map/README.markdown | 62 +
.../node_modules/concat-map/example/map.js | 6 +
.../node_modules/concat-map/index.js | 13 +
.../node_modules/concat-map/package.json | 83 +
.../node_modules/concat-map/test/map.js | 39 +
.../node_modules/brace-expansion/package.json | 75 +
.../brace-expansion/test/bash-comparison.js | 32 +
.../brace-expansion/test/bash-results.txt | 1075 ++
.../brace-expansion/test/cases.txt | 182 +
.../brace-expansion/test/dollar.js | 9 +
.../brace-expansion/test/empty-option.js | 10 +
.../brace-expansion/test/generate.sh | 24 +
.../test/negative-increment.js | 15 +
.../brace-expansion/test/nested.js | 16 +
.../brace-expansion/test/order.js | 10 +
.../node_modules/brace-expansion/test/pad.js | 13 +
.../brace-expansion/test/same-type.js | 7 +
.../brace-expansion/test/sequence.js | 50 +
.../node_modules/lru-cache/.npmignore | 1 -
.../node_modules/lru-cache/CONTRIBUTORS | 14 -
.../minimatch/node_modules/lru-cache/LICENSE | 23 -
.../node_modules/lru-cache/README.md | 97 -
.../node_modules/lru-cache/lib/lru-cache.js | 252 -
.../node_modules/lru-cache/package.json | 50 -
.../node_modules/lru-cache/test/basic.js | 369 -
.../node_modules/lru-cache/test/foreach.js | 52 -
.../lru-cache/test/memory-leak.js | 50 -
.../minimatch/node_modules/sigmund/LICENSE | 27 -
.../minimatch/node_modules/sigmund/README.md | 53 -
.../minimatch/node_modules/sigmund/bench.js | 283 -
.../node_modules/sigmund/package.json | 58 -
.../minimatch/node_modules/sigmund/sigmund.js | 39 -
.../node_modules/sigmund/test/basic.js | 24 -
.../node_modules/minimatch/package.json | 122 +-
.../node_modules/minimatch/test/basic.js | 399 -
.../minimatch/test/brace-expand.js | 40 -
.../node_modules/minimatch/test/caching.js | 14 -
.../node_modules/minimatch/test/defaults.js | 274 -
.../test/extglob-ending-with-state-char.js | 8 -
.../ordered-read-streams/.npmignore | 32 +-
.../ordered-read-streams/.travis.yml | 8 +-
.../node_modules/ordered-read-streams/LICENSE | 40 +-
.../ordered-read-streams/README.md | 130 +-
.../ordered-read-streams/index.js | 158 +-
.../ordered-read-streams/package.json | 100 +-
.../ordered-read-streams/test/main.js | 320 +-
.../node_modules/unique-stream/.npmignore | 6 +-
.../node_modules/unique-stream/.travis.yml | 6 +-
.../node_modules/unique-stream/LICENSE | 40 +-
.../node_modules/unique-stream/README.md | 178 +-
.../node_modules/unique-stream/index.js | 108 +-
.../node_modules/unique-stream/package.json | 110 +-
.../node_modules/unique-stream/test/index.js | 218 +-
.../node_modules/glob-stream/package.json | 146 +-
.../glob-stream/test/fixtures/.swag | 1 -
.../glob-stream/test/fixtures/stuff/run.dmc | 0
.../glob-stream/test/fixtures/stuff/test.dmc | 0
.../glob-stream/test/fixtures/test.coffee | 1 -
.../hey/isaidhey/whatsgoingon/test.txt | 1 -
.../test/fixtures/whatsgoingon/test.js | 1 -
.../node_modules/glob-stream/test/main.js | 425 -
.../node_modules/glob-watcher/.npmignore | 10 +-
.../node_modules/glob-watcher/.travis.yml | 10 +-
.../node_modules/glob-watcher/LICENSE | 40 +-
.../node_modules/glob-watcher/README.md | 106 +-
.../node_modules/glob-watcher/index.js | 78 +-
.../node_modules/gaze/LICENSE-MIT | 44 +-
.../glob-watcher/node_modules/gaze/README.md | 360 +-
.../node_modules/gaze/lib/gaze.js | 878 +-
.../node_modules/gaze/lib/helper.js | 134 +-
.../gaze/node_modules/globule/.jshintrc | 30 +-
.../gaze/node_modules/globule/.npmignore | 2 +-
.../gaze/node_modules/globule/.travis.yml | 12 +-
.../gaze/node_modules/globule/Gruntfile.js | 96 +-
.../gaze/node_modules/globule/LICENSE-MIT | 44 +-
.../gaze/node_modules/globule/README.md | 234 +-
.../gaze/node_modules/globule/lib/globule.js | 344 +-
.../globule/node_modules/glob/.npmignore | 4 +-
.../globule/node_modules/glob/.travis.yml | 6 +-
.../globule/node_modules/glob/LICENSE | 54 +-
.../globule/node_modules/glob/README.md | 466 +-
.../globule/node_modules/glob/examples/g.js | 18 +-
.../node_modules/glob/examples/usr-local.js | 18 +-
.../globule/node_modules/glob/glob.js | 1286 +-
.../glob/node_modules/graceful-fs/.npmignore | 2 +-
.../glob/node_modules/graceful-fs/LICENSE | 54 +-
.../glob/node_modules/graceful-fs/README.md | 66 +-
.../node_modules/graceful-fs/graceful-fs.js | 884 +-
.../node_modules/graceful-fs/package.json | 130 +-
.../node_modules/graceful-fs/test/open.js | 92 +-
.../node_modules/graceful-fs/test/ulimit.js | 316 +-
.../glob/node_modules/inherits/README.md | 102 +-
.../glob/node_modules/inherits/inherits.js | 58 +-
.../glob/node_modules/inherits/package.json | 92 +-
.../globule/node_modules/glob/package.json | 114 +-
.../node_modules/glob/test/00-setup.js | 352 +-
.../node_modules/glob/test/bash-comparison.js | 126 +-
.../node_modules/glob/test/bash-results.json | 696 +-
.../node_modules/glob/test/cwd-test.js | 110 +-
.../globule/node_modules/glob/test/mark.js | 148 +-
.../node_modules/glob/test/nocase-nomagic.js | 226 +-
.../node_modules/glob/test/pause-resume.js | 146 +-
.../node_modules/glob/test/root-nomount.js | 78 +-
.../globule/node_modules/glob/test/root.js | 92 +-
.../node_modules/glob/test/zz-cleanup.js | 22 +-
.../globule/node_modules/lodash}/LICENSE.txt | 42 +-
.../globule/node_modules/lodash/README.md | 292 +-
.../node_modules/lodash/dist/lodash.compat.js | 10304 ++++++++--------
.../lodash/dist/lodash.compat.min.js | 82 +-
.../node_modules/lodash/dist/lodash.js | 9966 +++++++--------
.../node_modules/lodash/dist/lodash.min.js | 81 +-
.../lodash/dist/lodash.underscore.js | 8614 ++++++-------
.../lodash/dist/lodash.underscore.min.js | 66 +-
.../globule/node_modules/lodash/package.json | 177 +-
.../globule/node_modules/minimatch/.npmignore | 2 +-
.../globule/node_modules/minimatch/LICENSE | 46 +-
.../globule/node_modules/minimatch/README.md | 436 +-
.../node_modules/minimatch/minimatch.js | 2110 ++--
.../node_modules/lru-cache/.npmignore | 2 +-
.../node_modules/lru-cache/CONTRIBUTORS | 28 +-
.../minimatch/node_modules/lru-cache/LICENSE | 46 +-
.../node_modules/lru-cache/README.md | 194 +-
.../node_modules/lru-cache/lib/lru-cache.js | 504 +-
.../node_modules/lru-cache/package.json | 100 +-
.../node_modules/lru-cache/test/basic.js | 738 +-
.../node_modules/lru-cache/test/foreach.js | 104 +-
.../lru-cache/test/memory-leak.js | 100 +-
.../minimatch/node_modules/sigmund/LICENSE | 54 +-
.../minimatch/node_modules/sigmund/README.md | 106 +-
.../minimatch/node_modules/sigmund/bench.js | 566 +-
.../node_modules/sigmund/package.json | 116 +-
.../minimatch/node_modules/sigmund/sigmund.js | 78 +-
.../node_modules/sigmund/test/basic.js | 48 +-
.../node_modules/minimatch/package.json | 114 +-
.../node_modules/minimatch/test/basic.js | 798 +-
.../minimatch/test/brace-expand.js | 66 +-
.../node_modules/minimatch/test/caching.js | 28 +-
.../node_modules/minimatch/test/defaults.js | 548 +-
.../test/extglob-ending-with-state-char.js | 16 +-
.../gaze/node_modules/globule/package.json | 148 +-
.../node_modules/globule/test/globule_test.js | 972 +-
.../node_modules/gaze/package.json | 142 +-
.../node_modules/glob-watcher/package.json | 132 +-
.../node_modules/glob-watcher/test/main.js | 172 +-
.../node_modules/graceful-fs/.npmignore | 2 +-
.../vinyl-fs/node_modules/graceful-fs/LICENSE | 54 +-
.../node_modules/graceful-fs/README.md | 72 +-
.../vinyl-fs/node_modules/graceful-fs/fs.js | 22 +-
.../node_modules/graceful-fs/graceful-fs.js | 316 +-
.../node_modules/graceful-fs/package.json | 142 +-
.../node_modules/graceful-fs/polyfills.js | 510 +-
.../node_modules/graceful-fs/test/max-open.js | 138 +-
.../node_modules/graceful-fs/test/open.js | 78 +-
.../graceful-fs/test/readdir-sort.js | 40 +-
.../graceful-fs/test/write-then-read.js | 90 +-
.../vinyl-fs/node_modules/lodash/LICENSE.txt | 22 -
.../vinyl-fs/node_modules/lodash/README.md | 163 -
.../node_modules/lodash/dist/lodash.compat.js | 7157 -----------
.../lodash/dist/lodash.compat.min.js | 61 -
.../node_modules/lodash/dist/lodash.js | 6785 ----------
.../node_modules/lodash/dist/lodash.min.js | 56 -
.../lodash/dist/lodash.underscore.js | 4979 --------
.../lodash/dist/lodash.underscore.min.js | 39 -
.../vinyl-fs/node_modules/lodash/lodash.js | 7179 -----------
.../vinyl-fs/node_modules/lodash/package.json | 132 -
.../vinyl-fs/node_modules/mkdirp/.npmignore | 2 +-
.../vinyl-fs/node_modules/mkdirp/.travis.yml | 10 +-
.../vinyl-fs/node_modules/mkdirp/LICENSE | 42 +-
.../vinyl-fs/node_modules/mkdirp/bin/cmd.js | 66 +-
.../node_modules/mkdirp/bin/usage.txt | 24 +-
.../node_modules/mkdirp/examples/pow.js | 12 +-
.../vinyl-fs/node_modules/mkdirp/index.js | 194 +-
.../mkdirp/node_modules/minimist/.travis.yml | 8 +-
.../mkdirp/node_modules/minimist/LICENSE | 36 +-
.../node_modules/minimist/example/parse.js | 4 +-
.../mkdirp/node_modules/minimist/index.js | 374 +-
.../mkdirp/node_modules/minimist/package.json | 134 +-
.../node_modules/minimist/readme.markdown | 146 +-
.../mkdirp/node_modules/minimist/test/dash.js | 48 +-
.../minimist/test/default_bool.js | 40 +-
.../node_modules/minimist/test/dotted.js | 32 +-
.../mkdirp/node_modules/minimist/test/long.js | 62 +-
.../node_modules/minimist/test/parse.js | 636 +-
.../minimist/test/parse_modified.js | 18 +-
.../node_modules/minimist/test/short.js | 134 +-
.../node_modules/minimist/test/whitespace.js | 16 +-
.../vinyl-fs/node_modules/mkdirp/package.json | 116 +-
.../node_modules/mkdirp/readme.markdown | 200 +-
.../node_modules/mkdirp/test/chmod.js | 76 +-
.../node_modules/mkdirp/test/clobber.js | 74 +-
.../node_modules/mkdirp/test/mkdirp.js | 52 +-
.../node_modules/mkdirp/test/opts_fs.js | 54 +-
.../node_modules/mkdirp/test/opts_fs_sync.js | 50 +-
.../vinyl-fs/node_modules/mkdirp/test/perm.js | 60 +-
.../node_modules/mkdirp/test/perm_sync.js | 68 +-
.../vinyl-fs/node_modules/mkdirp/test/race.js | 80 +-
.../vinyl-fs/node_modules/mkdirp/test/rel.js | 60 +-
.../node_modules/mkdirp/test/return.js | 50 +-
.../node_modules/mkdirp/test/return_sync.js | 48 +-
.../vinyl-fs/node_modules/mkdirp/test/root.js | 36 +-
.../vinyl-fs/node_modules/mkdirp/test/sync.js | 60 +-
.../node_modules/mkdirp/test/umask.js | 52 +-
.../node_modules/mkdirp/test/umask_sync.js | 60 +-
.../vinyl-fs/node_modules/strip-bom/cli.js | 84 +-
.../vinyl-fs/node_modules/strip-bom/index.js | 48 +-
.../node_modules/first-chunk-stream/index.js | 186 +-
.../first-chunk-stream/package.json | 129 +-
.../node_modules/first-chunk-stream/readme.md | 124 +-
.../strip-bom/node_modules/is-utf8/README.md | 24 +-
.../strip-bom/node_modules/is-utf8/ansi.txt | 14 +-
.../strip-bom/node_modules/is-utf8/is-utf8.js | 152 +-
.../node_modules/is-utf8/package.json | 92 +-
.../strip-bom/node_modules/is-utf8/test.js | 14 +-
.../strip-bom/node_modules/is-utf8/utf8.txt | 0
.../node_modules/strip-bom/package.json | 159 +-
.../vinyl-fs/node_modules/strip-bom/readme.md | 118 +-
.../vinyl-fs/node_modules/through2/.npmignore | 4 +-
.../vinyl-fs/node_modules/through2/LICENSE | 76 +-
.../vinyl-fs/node_modules/through2/README.md | 298 +-
.../node_modules/readable-stream/.npmignore | 8 +-
.../node_modules/readable-stream/LICENSE | 36 +-
.../node_modules/readable-stream/README.md | 30 +-
.../node_modules/readable-stream/duplex.js | 2 +-
.../readable-stream/lib/_stream_duplex.js | 178 +-
.../lib/_stream_passthrough.js | 92 +-
.../readable-stream/lib/_stream_readable.js | 1964 +--
.../readable-stream/lib/_stream_transform.js | 420 +-
.../readable-stream/lib/_stream_writable.js | 772 +-
.../node_modules/core-util-is/README.md | 6 +-
.../node_modules/core-util-is/float.patch | 1206 +-
.../node_modules/core-util-is/lib/util.js | 212 +-
.../node_modules/core-util-is/package.json | 108 +-
.../node_modules/core-util-is/util.js | 212 +-
.../node_modules/inherits/LICENSE | 32 +-
.../node_modules/inherits/README.md | 84 +-
.../node_modules/inherits/inherits.js | 2 +-
.../node_modules/inherits/inherits_browser.js | 46 +-
.../node_modules/inherits/package.json | 102 +-
.../node_modules/inherits/test.js | 50 +-
.../node_modules/isarray/README.md | 108 +-
.../node_modules/isarray/build/build.js | 418 +-
.../node_modules/isarray/component.json | 38 +-
.../node_modules/isarray/index.js | 6 +-
.../node_modules/isarray/package.json | 108 +-
.../node_modules/string_decoder/.npmignore | 4 +-
.../node_modules/string_decoder/LICENSE | 40 +-
.../node_modules/string_decoder/README.md | 12 +-
.../node_modules/string_decoder/index.js | 442 +-
.../node_modules/string_decoder/package.json | 108 +-
.../node_modules/readable-stream/package.json | 140 +-
.../readable-stream/passthrough.js | 2 +-
.../node_modules/readable-stream/readable.js | 16 +-
.../node_modules/readable-stream/transform.js | 2 +-
.../node_modules/readable-stream/writable.js | 2 +-
.../through2/node_modules/xtend/.jshintrc | 60 +-
.../through2/node_modules/xtend/.npmignore | 2 +-
.../through2/node_modules/xtend/LICENCE | 38 +-
.../through2/node_modules/xtend/Makefile | 6 +-
.../through2/node_modules/xtend/README.md | 64 +-
.../through2/node_modules/xtend/immutable.js | 34 +-
.../through2/node_modules/xtend/mutable.js | 30 +-
.../through2/node_modules/xtend/package.json | 176 +-
.../through2/node_modules/xtend/test.js | 126 +-
.../node_modules/through2/package.json | 129 +-
.../node_modules/through2/through2.js | 192 +-
.../vinyl-fs/node_modules/vinyl/.jshintrc | 36 -
.../vinyl-fs/node_modules/vinyl/.npmignore | 6 -
.../vinyl-fs/node_modules/vinyl/.travis.yml | 5 -
.../vinyl-fs/node_modules/vinyl/LICENSE | 40 +-
.../vinyl-fs/node_modules/vinyl/README.md | 254 +-
.../node_modules/vinyl/coverage/coverage.json | 1 -
.../vinyl/coverage/lcov-report/index.html | 363 -
.../vinyl/coverage/lcov-report/prettify.css | 1 -
.../vinyl/coverage/lcov-report/prettify.js | 1 -
.../coverage/lcov-report/vinyl/index.html | 350 -
.../coverage/lcov-report/vinyl/index.js.html | 847 --
.../lcov-report/vinyl/lib/cloneBuffer.js.html | 343 -
.../coverage/lcov-report/vinyl/lib/index.html | 402 -
.../vinyl/lib/inspectStream.js.html | 355 -
.../lcov-report/vinyl/lib/isBuffer.js.html | 340 -
.../lcov-report/vinyl/lib/isNull.js.html | 331 -
.../lcov-report/vinyl/lib/isStream.js.html | 334 -
.../node_modules/vinyl/coverage/lcov.info | 280 -
.../vinyl-fs/node_modules/vinyl/index.js | 350 +-
.../node_modules/vinyl/lib/cloneBuffer.js | 14 +-
.../node_modules/vinyl/lib/inspectStream.js | 22 +-
.../node_modules/vinyl/lib/isBuffer.js | 12 +-
.../vinyl-fs/node_modules/vinyl/lib/isNull.js | 6 +-
.../node_modules/vinyl/lib/isStream.js | 8 +-
.../vinyl/node_modules/clone-stats/LICENSE.md | 42 +-
.../vinyl/node_modules/clone-stats/README.md | 34 +-
.../vinyl/node_modules/clone-stats/index.js | 26 +-
.../node_modules/clone-stats/package.json | 114 +-
.../vinyl/node_modules/clone-stats/test.js | 72 +-
.../vinyl/node_modules/clone/.npmignore | 1 +
.../vinyl/node_modules/clone/.travis.yml | 5 +
.../vinyl/node_modules/clone/LICENSE | 18 +
.../vinyl/node_modules/clone/README.md | 126 +
.../vinyl/node_modules/clone/clone.js | 144 +
.../vinyl/node_modules/clone/package.json | 127 +
.../vinyl/node_modules/clone/test.js | 289 +
.../vinyl-fs/node_modules/vinyl/package.json | 144 +-
.../vinyl-fs/node_modules/vinyl/perf/clone.js | 59 -
.../vinyl-fs/node_modules/vinyl/test/File.js | 753 --
.../node_modules/vinyl/test/cloneBuffer.js | 27 -
.../node_modules/vinyl/test/inspectStream.js | 53 -
.../node_modules/vinyl/test/isBuffer.js | 29 -
.../node_modules/vinyl/test/isNull.js | 22 -
.../node_modules/vinyl/test/isStream.js | 29 -
.../gulp/node_modules/vinyl-fs/package.json | 157 +-
.../gulp/node_modules/vinyl-fs/test/dest.js | 631 -
.../vinyl-fs/test/fixtures/bom-utf16be.txt | Bin 244 -> 0 bytes
.../vinyl-fs/test/fixtures/bom-utf16le.txt | Bin 244 -> 0 bytes
.../vinyl-fs/test/fixtures/bom-utf8.txt | 1 -
.../vinyl-fs/test/fixtures/test.coffee | 1 -
.../vinyl-fs/test/fixtures/wow/suchempty | 1 -
.../gulp/node_modules/vinyl-fs/test/spy.js | 27 -
.../gulp/node_modules/vinyl-fs/test/src.js | 247 -
node_modules/gulp/package.json | 217 +-
package.json | 2 +-
test-sql/sqllogic/sqltest.zip | Bin 0 -> 536453 bytes
{cordova => test/cordova}/alasql-cordova.js | 0
{cordova => test/cordova}/filestorage.js | 0
{cordova => test/cordova}/test.js | 0
{cordova => test/cordova}/test1.js | 0
{cordova => test/cordova}/test1.json | 0
test/future/test119.js | 2 +-
test/future/test123.js | 2 +-
test/future/test131.js | 2 +-
test/future/test132.js | 2 +-
test/future/test134.js | 2 +-
test/future/test135.js | 2 +-
test/future/test136.js | 2 +-
test/future/test147.js | 2 +-
test/test000.js | 2 +-
test/test001.js | 2 +-
test/test002.js | 2 +-
test/test003.js | 2 +-
test/test004.js | 2 +-
test/test005.js | 2 +-
test/test006.js | 2 +-
test/test007.js | 2 +-
test/test008.js | 2 +-
test/test009.js | 2 +-
test/test010.js | 2 +-
test/test011.js | 2 +-
test/test012.js | 2 +-
test/test013.js | 2 +-
test/test014.js | 2 +-
test/test015.js | 2 +-
test/test016.js | 2 +-
test/test016a.js | 2 +-
test/test017.js | 2 +-
test/test018.js | 2 +-
test/test019.js | 2 +-
test/test020.js | 2 +-
test/test021.js | 2 +-
test/test022.js | 2 +-
test/test023.js | 2 +-
test/test024.js | 2 +-
test/test025.js | 2 +-
test/test026.js | 2 +-
test/test027.js | 2 +-
test/test028.js | 2 +-
test/test029.js | 2 +-
test/test030.js | 2 +-
test/test031.js | 2 +-
test/test032.js | 2 +-
test/test034.js | 2 +-
test/test035.js | 2 +-
test/test036.js | 2 +-
test/test037.js | 2 +-
test/test038.js | 2 +-
test/test039.js | 2 +-
test/test040.js | 2 +-
test/test041.js | 2 +-
test/test042.js | 2 +-
test/test044.js | 2 +-
test/test045.js | 2 +-
test/test046.js | 2 +-
test/test047.js | 2 +-
test/test048.js | 2 +-
test/test049.js | 2 +-
test/test050.js | 2 +-
test/test051.js | 2 +-
test/test052.js | 2 +-
test/test053.js | 2 +-
test/test054.js | 2 +-
test/test055.js | 2 +-
test/test056.js | 2 +-
test/test057.js | 2 +-
test/test058.js | 2 +-
test/test059.js | 2 +-
test/test060.js | 2 +-
test/test061.js | 2 +-
test/test062.js | 2 +-
test/test063.js | 2 +-
test/test064.js | 2 +-
test/test065.js | 2 +-
test/test066.js | 2 +-
test/test067.js | 2 +-
test/test068.js | 2 +-
test/test069.js | 2 +-
test/test070.js | 2 +-
test/test071.js | 2 +-
test/test072.js | 2 +-
test/test073.js | 2 +-
test/test074.js | 2 +-
test/test075.js | 2 +-
test/test076.js | 2 +-
test/test077.js | 2 +-
test/test078.js | 2 +-
test/test079.js | 2 +-
test/test080.js | 2 +-
test/test081.js | 2 +-
test/test082.js | 2 +-
test/test083.js | 2 +-
test/test084.js | 2 +-
test/test085.js | 2 +-
test/test086.js | 2 +-
test/test087.js | 2 +-
test/test088.js | 2 +-
test/test089.js | 2 +-
test/test090.js | 2 +-
test/test091.js | 2 +-
test/test092.js | 2 +-
test/test093.js | 2 +-
test/test094.js | 2 +-
test/test095.js | 2 +-
test/test096.js | 2 +-
test/test097.js | 2 +-
test/test098.js | 2 +-
test/test099.js | 2 +-
test/test100.js | 2 +-
test/test101.js | 2 +-
test/test102.js | 2 +-
test/test103.js | 2 +-
test/test104.js | 2 +-
test/test105.js | 2 +-
test/test106.js | 2 +-
test/test113.js | 2 +-
test/test114.js | 2 +-
test/test115.js | 2 +-
test/test116.js | 2 +-
test/test117.js | 2 +-
test/test118.js | 2 +-
test/test119.js | 2 +-
test/test120.js | 2 +-
test/test121.js | 2 +-
test/test122.js | 2 +-
test/test123.js | 2 +-
test/test124.js | 2 +-
test/test125.js | 2 +-
test/test126.js | 2 +-
test/test127.js | 2 +-
test/test128.js | 2 +-
test/test131.js | 2 +-
test/test132.js | 2 +-
test/test133.js | 2 +-
test/test134.js | 2 +-
test/test135.js | 2 +-
test/test136.js | 2 +-
test/test137.js | 2 +-
test/test138.js | 2 +-
test/test139.js | 2 +-
test/test140.js | 2 +-
test/test141.js | 2 +-
test/test142.js | 2 +-
test/test143.js | 2 +-
test/test144.js | 2 +-
test/test145.js | 2 +-
test/test146.js | 2 +-
test/test147.js | 2 +-
test/test148.js | 2 +-
test/test149.js | 2 +-
test/test150.js | 2 +-
test/test151.js | 2 +-
test/test152.js | 2 +-
test/test153.js | 2 +-
test/test154.js | 2 +-
test/test155.js | 2 +-
test/test156.js | 2 +-
test/test157.js | 2 +-
test/test158.js | 2 +-
test/test159.js | 2 +-
test/test160.js | 2 +-
test/test161.js | 2 +-
test/test162.js | 2 +-
test/test163.js | 2 +-
test/test164.js | 2 +-
test/test165.js | 2 +-
test/test166.js | 2 +-
test/test167.js | 2 +-
test/test168.js | 2 +-
test/test169.js | 2 +-
test/test169a.xlsx | Bin 13756 -> 13756 bytes
test/test170.js | 2 +-
test/test171.js | 2 +-
test/test172.js | 2 +-
test/test173.js | 2 +-
test/test174.js | 2 +-
test/test175.js | 2 +-
test/test176.js | 2 +-
test/test177.js | 2 +-
test/test178.js | 2 +-
test/test179.js | 2 +-
test/test180.js | 2 +-
test/test181.js | 2 +-
test/test182.js | 2 +-
test/test183.js | 2 +-
test/test184.js | 2 +-
test/test185.js | 2 +-
test/test186.js | 2 +-
test/test187.js | 2 +-
test/test188.js | 2 +-
test/test189.js | 2 +-
test/test190.js | 2 +-
test/test191.js | 2 +-
test/test192.js | 2 +-
test/test193.js | 2 +-
test/test194.js | 2 +-
test/test195.js | 2 +-
test/test196.js | 2 +-
test/test197.js | 2 +-
test/test198.js | 2 +-
test/test199.js | 2 +-
test/test200.js | 2 +-
test/test201.js | 2 +-
test/test202.js | 2 +-
test/test203.js | 2 +-
test/test204.js | 2 +-
test/test205.js | 2 +-
test/test206.js | 2 +-
test/test207.js | 2 +-
test/test208.js | 2 +-
test/test209.js | 2 +-
test/test210.js | 2 +-
test/test211.js | 2 +-
test/test212.js | 2 +-
test/test213.js | 2 +-
test/test214.js | 2 +-
test/test215.js | 2 +-
test/test216.js | 2 +-
test/test217.js | 2 +-
test/test218.js | 2 +-
test/test219.js | 2 +-
test/test220.js | 2 +-
test/test221.js | 2 +-
test/test222.js | 2 +-
test/test223.js | 2 +-
test/test224.js | 2 +-
test/test225.js | 2 +-
test/test226.js | 2 +-
test/test227.js | 2 +-
test/test228.js | 2 +-
test/test229.js | 2 +-
test/test230.js | 2 +-
test/test231.js | 2 +-
test/test232.js | 2 +-
test/test233.js | 2 +-
test/test234.js | 2 +-
test/test235.js | 2 +-
test/test236.js | 2 +-
test/test237.js | 2 +-
test/test238.js | 2 +-
test/test238b.xlsx | Bin 13661 -> 13661 bytes
test/test239.js | 2 +-
test/test240.js | 2 +-
test/test241.js | 2 +-
test/test242.js | 2 +-
test/test243.js | 2 +-
test/test244.js | 2 +-
test/test245.js | 2 +-
test/test246.js | 2 +-
test/test247.js | 2 +-
test/test248.js | 2 +-
test/test250.js | 2 +-
test/test251.js | 2 +-
test/test251.xlsx | Bin 15278 -> 15278 bytes
test/test252.js | 2 +-
testsql/sqllogic/README.md | 1 -
1492 files changed, 82804 insertions(+), 164923 deletions(-)
delete mode 100755 alasql-worker.js
delete mode 100755 alasql-worker.js.map
delete mode 100644 alasql-worker.min.js
delete mode 100644 alasql.min.js
delete mode 100644 index.js
delete mode 100644 medals.csv
delete mode 100644 medals.xlsx
create mode 100644 node_modules/gulp/CHANGELOG.md
create mode 100644 node_modules/gulp/LICENSE
mode change 100644 => 120000 node_modules/gulp/node_modules/.bin/semver
create mode 100644 node_modules/gulp/node_modules/archy/LICENSE
mode change 100644 => 120000 node_modules/gulp/node_modules/chalk/node_modules/.bin/has-ansi
mode change 100644 => 120000 node_modules/gulp/node_modules/chalk/node_modules/.bin/strip-ansi
mode change 100644 => 120000 node_modules/gulp/node_modules/chalk/node_modules/.bin/supports-color
create mode 100644 node_modules/gulp/node_modules/chalk/node_modules/escape-string-regexp/license
mode change 100644 => 100755 node_modules/gulp/node_modules/chalk/node_modules/has-ansi/cli.js
mode change 100644 => 100755 node_modules/gulp/node_modules/chalk/node_modules/strip-ansi/cli.js
mode change 100644 => 100755 node_modules/gulp/node_modules/chalk/node_modules/supports-color/cli.js
mode change 100644 => 100755 node_modules/gulp/node_modules/deprecated/LICENSE
delete mode 100644 node_modules/gulp/node_modules/gulp-util/.npmignore
mode change 100644 => 100755 node_modules/gulp/node_modules/gulp-util/LICENSE
delete mode 100644 node_modules/gulp/node_modules/gulp-util/lib/File.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/lib/beep.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/lib/colors.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/lib/date.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/lib/linefeed.js
create mode 120000 node_modules/gulp/node_modules/gulp-util/node_modules/.bin/dateformat
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/array-differ/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/array-differ/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/array-differ/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/array-uniq/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/array-uniq/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/array-uniq/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/beeper/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/beeper/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/beeper/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/license
create mode 120000 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/has-ansi
create mode 120000 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/strip-ansi
create mode 120000 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/.bin/supports-color
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/license
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/ansi-styles/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/escape-string-regexp/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/escape-string-regexp/license
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/escape-string-regexp/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/escape-string-regexp/readme.md
create mode 100755 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/cli.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/license
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/license
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/node_modules/get-stdin/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/node_modules/get-stdin/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/node_modules/get-stdin/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/has-ansi/readme.md
create mode 100755 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/cli.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/license
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/node_modules/ansi-regex/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/strip-ansi/readme.md
create mode 100755 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/supports-color/cli.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/supports-color/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/supports-color/license
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/supports-color/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/node_modules/supports-color/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/chalk/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/.npmignore
rename node_modules/gulp/node_modules/{vinyl-fs => gulp-util/node_modules/dateformat}/.travis.yml (55%)
create mode 100755 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/bin/cli.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/get-stdin/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/get-stdin/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/get-stdin/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/license
create mode 120000 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/.bin/indent-string
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/camelcase-keys/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/camelcase-keys/node_modules/camelcase/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/camelcase-keys/node_modules/camelcase/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/camelcase-keys/node_modules/camelcase/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/camelcase-keys/node_modules/map-obj/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/camelcase-keys/node_modules/map-obj/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/camelcase-keys/node_modules/map-obj/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/camelcase-keys/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/camelcase-keys/readme.md
create mode 100755 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/cli.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/license
create mode 120000 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/node_modules/.bin/repeating
create mode 100755 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/node_modules/repeating/cli.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/node_modules/repeating/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/node_modules/repeating/license
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/node_modules/repeating/node_modules/is-finite/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/node_modules/repeating/node_modules/is-finite/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/node_modules/repeating/node_modules/is-finite/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/node_modules/repeating/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/node_modules/repeating/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/node_modules/indent-string/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/node_modules/meow/readme.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/test/test_formats.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/test/test_isoutcdatetime.js
rename node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/test/{ => weekofyear}/test_weekofyear.js (96%)
rename node_modules/gulp/node_modules/gulp-util/node_modules/dateformat/test/{ => weekofyear}/test_weekofyear.sh (96%)
rename node_modules/gulp/node_modules/gulp-util/node_modules/{lodash.template/node_modules/lodash._escapestringchar => lodash._reescape}/LICENSE.txt (83%)
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash._reescape/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash._reescape/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash._reescape/package.json
rename node_modules/gulp/node_modules/gulp-util/node_modules/{lodash.template/node_modules/lodash.defaults/node_modules/lodash._objecttypes => lodash._reevaluate}/LICENSE.txt (83%)
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash._reevaluate/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash._reevaluate/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash._reevaluate/package.json
rename node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/{lodash.escape/node_modules/lodash._escapehtmlchar => lodash._basecopy}/LICENSE.txt (83%)
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basecopy/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basecopy/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basecopy/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basetostring/LICENSE.txt
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basetostring/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basetostring/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basetostring/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basevalues/LICENSE.txt
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basevalues/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basevalues/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._basevalues/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._escapestringchar/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._escapestringchar/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._escapestringchar/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._isiterateecall/LICENSE.txt
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._isiterateecall/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._isiterateecall/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash._isiterateecall/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/node_modules/lodash._objecttypes/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/node_modules/lodash._objecttypes/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/node_modules/lodash._objecttypes/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.defaults/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/node_modules/lodash._htmlescapes/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/node_modules/lodash._htmlescapes/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/node_modules/lodash._htmlescapes/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/node_modules/lodash._htmlescapes/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._reunescapedhtml/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._isnative/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._isnative/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._isnative/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._isnative/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/node_modules/lodash._objecttypes/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/node_modules/lodash._objecttypes/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/node_modules/lodash._objecttypes/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/node_modules/lodash._objecttypes/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash._shimkeys/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isarguments/LICENSE.txt
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isarguments/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isarguments/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isarguments/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isarray/LICENSE.txt
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isarray/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isarray/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isarray/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isnative/LICENSE.txt
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isnative/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isnative/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isnative/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/node_modules/lodash._objecttypes/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/node_modules/lodash._objecttypes/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/node_modules/lodash._objecttypes/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/node_modules/lodash._objecttypes/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.keys/node_modules/lodash.isobject/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.restparam/LICENSE.txt
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.restparam/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.restparam/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.restparam/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.values/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.values/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.values/index.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.values/package.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/README.md
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/dist/lodash.compat.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/dist/lodash.compat.min.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/dist/lodash.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/dist/lodash.min.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/dist/lodash.underscore.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/dist/lodash.underscore.min.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/lodash.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/lodash/package.json
mode change 100644 => 100755 node_modules/gulp/node_modules/gulp-util/node_modules/multipipe/node_modules/duplexer2/example.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/object-assign/index.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/object-assign/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/object-assign/readme.md
rename node_modules/gulp/node_modules/gulp-util/node_modules/{vinyl => replace-ext}/.npmignore (91%)
rename node_modules/gulp/node_modules/gulp-util/{ => node_modules/replace-ext}/.travis.yml (70%)
create mode 100755 node_modules/gulp/node_modules/gulp-util/node_modules/replace-ext/LICENSE
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/replace-ext/README.md
rename node_modules/gulp/node_modules/gulp-util/{lib/replaceExtension.js => node_modules/replace-ext/index.js} (97%)
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/replace-ext/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/replace-ext/test/main.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/.jshintrc
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/.travis.yml
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/coverage.json
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/index.html
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/prettify.css
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/prettify.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/vinyl/index.html
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/vinyl/index.js.html
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/vinyl/lib/cloneBuffer.js.html
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/vinyl/lib/index.html
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/vinyl/lib/inspectStream.js.html
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/vinyl/lib/isBuffer.js.html
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/vinyl/lib/isNull.js.html
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov-report/vinyl/lib/isStream.js.html
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/coverage/lcov.info
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/node_modules/clone/.npmignore
rename node_modules/gulp/node_modules/{vinyl-fs/node_modules/glob-stream/node_modules/minimatch => gulp-util/node_modules/vinyl/node_modules/clone}/.travis.yml (69%)
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/node_modules/clone/LICENSE
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/node_modules/clone/README.md
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/node_modules/clone/clone.js
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/node_modules/clone/package.json
create mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/node_modules/clone/test.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/perf/clone.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/test/File.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/test/cloneBuffer.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/test/inspectStream.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/test/isBuffer.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/test/isNull.js
delete mode 100644 node_modules/gulp/node_modules/gulp-util/node_modules/vinyl/test/isStream.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/.travis.yml
delete mode 100644 node_modules/gulp/node_modules/liftoff/artwork/liftoff-icon.eps
delete mode 100644 node_modules/gulp/node_modules/liftoff/artwork/liftoff-icon.png
delete mode 100644 node_modules/gulp/node_modules/liftoff/artwork/liftoff-icon.svg
delete mode 100644 node_modules/gulp/node_modules/liftoff/artwork/liftoff.eps
delete mode 100644 node_modules/gulp/node_modules/liftoff/artwork/liftoff.png
delete mode 100644 node_modules/gulp/node_modules/liftoff/artwork/liftoff.svg
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/extend/.jscs.json
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/.jshintrc
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/.travis.yml
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/Gruntfile.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/.npmignore
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/LICENSE
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/common.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/examples/g.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/examples/usr-local.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/.eslintrc
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/LICENSE
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/README.md
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/inflight.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/package.json
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/inflight/test.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/browser.js
rename node_modules/gulp/node_modules/{vinyl-fs/node_modules/glob-stream/node_modules/minimatch => liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion}/.npmignore (68%)
rename node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/{ => node_modules/minimatch/node_modules/brace-expansion}/.travis.yml (71%)
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
rename node_modules/gulp/node_modules/{gulp-util/node_modules/vinyl/.jshintignore => liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore} (54%)
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/.npmignore
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/test/basic.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/test/brace-expand.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/test/caching.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/test/defaults.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js
rename node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/{minimatch/node_modules/sigmund => once}/LICENSE (97%)
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/once/README.md
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/once/node_modules/wrappy/README.md
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/once/node_modules/wrappy/package.json
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/once/once.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/once/package.json
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/node_modules/once/test/once.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/sync.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/00-setup.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/bash-comparison.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/bash-results.json
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/cwd-test.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/globstar-match.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/mark.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/new-glob-optional-options.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/nocase-nomagic.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/pause-resume.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/readme-issue.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/root-nomount.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/root.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/stat.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/glob/test/zz-cleanup.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/README.md
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/dist/lodash.compat.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/dist/lodash.compat.min.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/dist/lodash.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/dist/lodash.min.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/dist/lodash.underscore.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/dist/lodash.underscore.min.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/lodash.js
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/lodash/package.json
delete mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/test/findup-sync_test.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/pathfilter.js
rename node_modules/gulp/node_modules/liftoff/node_modules/{findup-sync/test/fixtures/a.txt => resolve/test/pathfilter/deep_ref/main.js} (100%)
rename node_modules/gulp/node_modules/liftoff/node_modules/{findup-sync/test/fixtures/a/b/bar.txt => resolve/test/pathfilter/deep_ref/node_modules/deep/alt.js} (100%)
rename node_modules/gulp/node_modules/liftoff/node_modules/{findup-sync/test/fixtures/a/foo.txt => resolve/test/pathfilter/deep_ref/node_modules/deep/deeper/ref.js} (100%)
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/pathfilter/deep_ref/node_modules/deep/package.json
rename node_modules/gulp/node_modules/liftoff/node_modules/{findup-sync/test/fixtures/aaa.txt => resolve/test/pathfilter/deep_ref/node_modules/deep/ref.js} (100%)
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/precedence.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/precedence/aaa.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/precedence/aaa/index.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/precedence/aaa/main.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/precedence/bbb.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/precedence/bbb/main.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/subdirs.js
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/subdirs/node_modules/a/b/c/x.json
create mode 100644 node_modules/gulp/node_modules/liftoff/node_modules/resolve/test/subdirs/node_modules/a/package.json
mode change 100644 => 100755 node_modules/gulp/node_modules/semver/bin/semver
rename node_modules/gulp/node_modules/semver/{foot.js => foot.js.txt} (95%)
rename node_modules/gulp/node_modules/semver/{head.js => head.js.txt} (92%)
create mode 100644 node_modules/gulp/node_modules/semver/test/big-numbers.js
create mode 100644 node_modules/gulp/node_modules/semver/test/major-minor-patch.js
mode change 100644 => 120000 node_modules/gulp/node_modules/tildify/node_modules/.bin/user-home
mode change 100644 => 100755 node_modules/gulp/node_modules/tildify/node_modules/user-home/cli.js
create mode 100644 node_modules/gulp/node_modules/tildify/node_modules/user-home/license
delete mode 100644 node_modules/gulp/node_modules/v8flags/.travis.yml
delete mode 100644 node_modules/gulp/node_modules/v8flags/3.14.5.9.flags.json
delete mode 100644 node_modules/gulp/node_modules/v8flags/fetch.js
create mode 120000 node_modules/gulp/node_modules/v8flags/node_modules/.bin/user-home
create mode 100755 node_modules/gulp/node_modules/v8flags/node_modules/user-home/cli.js
create mode 100644 node_modules/gulp/node_modules/v8flags/node_modules/user-home/index.js
create mode 100644 node_modules/gulp/node_modules/v8flags/node_modules/user-home/license
create mode 100644 node_modules/gulp/node_modules/v8flags/node_modules/user-home/package.json
create mode 100644 node_modules/gulp/node_modules/v8flags/node_modules/user-home/readme.md
delete mode 100644 node_modules/gulp/node_modules/v8flags/test.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/.editorconfig
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/.jshintrc
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/.npmignore
mode change 100644 => 100755 node_modules/gulp/node_modules/vinyl-fs/LICENSE
mode change 100644 => 120000 node_modules/gulp/node_modules/vinyl-fs/node_modules/.bin/mkdirp
mode change 100644 => 120000 node_modules/gulp/node_modules/vinyl-fs/node_modules/.bin/strip-bom
rename node_modules/gulp/node_modules/{liftoff/node_modules/findup-sync/node_modules/glob/node_modules/minimatch => vinyl-fs/node_modules/defaults}/.npmignore (92%)
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/LICENSE
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/README.md
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/index.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/node_modules/clone/.npmignore
rename node_modules/gulp/node_modules/vinyl-fs/node_modules/{glob-stream/node_modules/glob => defaults/node_modules/clone}/.travis.yml (69%)
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/node_modules/clone/LICENSE
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/node_modules/clone/README.md
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/node_modules/clone/clone.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/node_modules/clone/package.json
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/node_modules/clone/test.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/package.json
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/defaults/test.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/.npmignore
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/.travis.yml
mode change 100644 => 100755 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/LICENSE
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/.npmignore
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/common.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/examples/g.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/examples/usr-local.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/.eslintrc
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/LICENSE
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/README.md
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/inflight.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/package.json
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/node_modules/inflight/test.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/oh-my-glob.gif
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/sync.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/00-setup.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/bash-comparison.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/bash-results.json
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/cwd-test.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/empty-set.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/error-callback.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/globstar-match.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/mark.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/negation-test.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/new-glob-optional-options.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/nocase-nomagic.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/pause-resume.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/readme-issue.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/root-nomount.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/root.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/stat.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob/test/zz-cleanup.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/.editorconfig
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/.jshintrc
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/.npmignore
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/.travis.yml
mode change 100644 => 100755 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/LICENSE
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/node_modules/find-index/README.md
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/node_modules/find-index/index.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/node_modules/find-index/last.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/node_modules/find-index/package.json
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/glob2base/test/main.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/browser.js
rename node_modules/gulp/node_modules/vinyl-fs/node_modules/{vinyl/.jshintignore => glob-stream/node_modules/minimatch/node_modules/brace-expansion/.npmignore} (54%)
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/.travis.yml
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/README.md
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/example.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/index.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/package.json
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/nested.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/order.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/pad.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/lru-cache/.npmignore
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/lru-cache/LICENSE
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/lru-cache/README.md
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/lru-cache/package.json
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/lru-cache/test/basic.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/lru-cache/test/foreach.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/sigmund/LICENSE
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/sigmund/README.md
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/sigmund/bench.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/sigmund/package.json
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/sigmund/sigmund.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/node_modules/sigmund/test/basic.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/test/basic.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/test/brace-expand.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/test/caching.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/test/defaults.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/node_modules/minimatch/test/extglob-ending-with-state-char.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/test/fixtures/.swag
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/test/fixtures/stuff/run.dmc
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/test/fixtures/stuff/test.dmc
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/test/fixtures/test.coffee
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/test/fixtures/whatsgoingon/hey/isaidhey/whatsgoingon/test.txt
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/test/fixtures/whatsgoingon/test.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream/test/main.js
mode change 100644 => 100755 node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/LICENSE
rename node_modules/gulp/node_modules/{gulp-util/node_modules/lodash.template/node_modules/lodash.defaults => vinyl-fs/node_modules/glob-watcher/node_modules/gaze/node_modules/globule/node_modules/lodash}/LICENSE.txt (86%)
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/LICENSE.txt
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/README.md
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/dist/lodash.compat.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/dist/lodash.compat.min.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/dist/lodash.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/dist/lodash.min.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/dist/lodash.underscore.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/dist/lodash.underscore.min.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/lodash.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/lodash/package.json
mode change 100644 => 100755 node_modules/gulp/node_modules/vinyl-fs/node_modules/mkdirp/bin/cmd.js
mode change 100644 => 100755 node_modules/gulp/node_modules/vinyl-fs/node_modules/strip-bom/cli.js
mode change 100644 => 100755 node_modules/gulp/node_modules/vinyl-fs/node_modules/strip-bom/node_modules/is-utf8/ansi.txt
mode change 100644 => 100755 node_modules/gulp/node_modules/vinyl-fs/node_modules/strip-bom/node_modules/is-utf8/utf8.txt
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/.jshintrc
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/.npmignore
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/.travis.yml
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/coverage.json
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/index.html
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/prettify.css
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/prettify.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/vinyl/index.html
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/vinyl/index.js.html
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/vinyl/lib/cloneBuffer.js.html
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/vinyl/lib/index.html
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/vinyl/lib/inspectStream.js.html
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/vinyl/lib/isBuffer.js.html
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/vinyl/lib/isNull.js.html
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov-report/vinyl/lib/isStream.js.html
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/coverage/lcov.info
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/node_modules/clone/.npmignore
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/node_modules/clone/.travis.yml
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/node_modules/clone/LICENSE
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/node_modules/clone/README.md
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/node_modules/clone/clone.js
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/node_modules/clone/package.json
create mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/node_modules/clone/test.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/perf/clone.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/test/File.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/test/cloneBuffer.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/test/inspectStream.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/test/isBuffer.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/test/isNull.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/node_modules/vinyl/test/isStream.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/test/dest.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/test/fixtures/bom-utf16be.txt
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/test/fixtures/bom-utf16le.txt
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/test/fixtures/bom-utf8.txt
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/test/fixtures/test.coffee
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/test/fixtures/wow/suchempty
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/test/spy.js
delete mode 100644 node_modules/gulp/node_modules/vinyl-fs/test/src.js
create mode 100644 test-sql/sqllogic/sqltest.zip
rename {cordova => test/cordova}/alasql-cordova.js (100%)
rename {cordova => test/cordova}/filestorage.js (100%)
rename {cordova => test/cordova}/test.js (100%)
rename {cordova => test/cordova}/test1.js (100%)
rename {cordova => test/cordova}/test1.json (100%)
delete mode 100644 testsql/sqllogic/README.md
diff --git a/.gitignore b/.gitignore
index be8a1b0c0a..353e73db3c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,2 @@
# MySQL demo database
-test/world/world_innodb.sql
-test/world/world.sql
-
-test/world/NeptunoCreacionMySQL.sql
-
-test-sql/*
-test-sql
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 39edc6d08d..42febbf710 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
### 0.0.44 "Roma" (02.04.2015 - ...04.2015)
* Added params to SQLite attached database: alasql('ATTACH SQLITE DATABASE a(?)',[event],cb);
+* Root directory was cleaned
### 0.0.43 "The Wall" (25.03.2015 - 01.04.2015)
* Created "develop" branch for git-flow
diff --git a/README.md b/README.md
index a276e52012..dd0362d6bf 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Alasql.js - JavaScript SQL database library with support of localStorage, IndexedDB, and Excel
-Version: 0.0.43 "The Wall" Date: April 1, 2015 [Change log](CHANGELOG.md), [Release plan](RELEASES.md)
+Version: 0.0.44 "Roma" Date: April 5, 2015 [Change log](CHANGELOG.md), [Release plan](RELEASES.md)
Alasql - '[à la SQL](http://en.wiktionary.org/wiki/%C3%A0_la)' - is a lightweight JavaScript SQL database designed to work in browser, Node.js, and Apache Cordova. It supports traditional SQL with some NoSQL functionality. Current version of Alasql can work in memory and use file, IndexedDB, and localStorage as a persistent storage.
diff --git a/RELEASES.md b/RELEASES.md
index 61740cc445..5bf62c9109 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -14,81 +14,7 @@
## Next Releases:
-### Version "Sapsan" 0.0.40 (25.01.2015)
+To be defined
-* MERGE
-* Cordova Support
-* Tests
-* AUTOINCREMENT / IDENTITY
-* SELECT INDEX, COLUMN, VALUE on column
-* Bower.json
-* Wikibooks SQL samples as tests
-
-### Version "Pacific Rim" 0.0.42 (01.02.2015)
-
-* If-then-else JISON problem
-* UNION ORDER BY bug
-* T-SQL compatibility and multiple SQL Tests
-* Documentation
-* API documentation with JsDoc
-* WorkerJS for Node (primarily for test)
-
-### Version "Sigirya" 0.0.45 (05.02.2015)
-
-* package.json
-* Datatypes + CONVERT
-* Functions
-* Constraint and Foreign Keys, indexes, Check, Default
-* CONTINUE/BREAK/FOR/LOOP
-
-### Version "Elbrus" 0.0.50 (10.02.2015)
-
-* Transactions
-* SET NOCOUNT
-
-### Version "Prague" 0.0.55 (20.02.2015)
-
-* PIVOT/UNPIVOT
-
-### Version "Manila" 0.0.60 (01.03.2015)
-
-* OVER PARTITION
-
-### Version "Vanilla" 0.0.63 (01.03.2015)
-
-* GROUP BY HIERARCHY, TOTAL, DETAIL
-
-### Version "Menlo Park" 0.0.65 (10.03.2015)
-
-* CREATE FUNCTION, CREATE PROCEDURE, EXEC
-* Bugs
-* Documentation
-
-### Version "Vorkuta" 0.0.70 (20.03.2015)
-
-* Fluent interface improvement
-* Bugs
-* Documentation
-
-### Version "San Diego" 0.0.75 (01.04.2015)
-
-* NeDB, MongoDB, Redis, Cassandra NoSQL
-* Bugs
-* Documentation
-
-### Version "Voronezh" 0.0.80 (10.04.2015)
-
-* Compatibility
-
-### Version "Rio de Janeiro" 0.0.85 (20.04.2015)
-* Speed
-
-### Version "Quito" 0.0.90 (01.05.2015)
-* Memory
-
-### Version "First Pancake" 0.1.0 (10.05.2015)
-
-* Bugs
-* Speed, memory, and size optimization
-* Compatibility: browsers, mobiles, SQL databases
+### Version "Chess" 0.1.0 (10.04.2015)
diff --git a/TODO.md b/TODO.md
index 9d5b975f4b..ebc759675d 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,4 +1,88 @@
-# To do
+# TO DO
+
+This file contanis unstructured ideas for future development of Alasql.
+
+## Ideas
+
+
+### Version "Sapsan" 0.0.40 (25.01.2015)
+
+* MERGE
+* Cordova Support
+* Tests
+* AUTOINCREMENT / IDENTITY
+* SELECT INDEX, COLUMN, VALUE on column
+* Bower.json
+* Wikibooks SQL samples as tests
+
+### Version "Pacific Rim" 0.0.42 (01.02.2015)
+
+* If-then-else JISON problem
+* UNION ORDER BY bug
+* T-SQL compatibility and multiple SQL Tests
+* Documentation
+* API documentation with JsDoc
+* WorkerJS for Node (primarily for test)
+
+### Version "Sigirya" 0.0.45 (05.02.2015)
+
+* package.json
+* Datatypes + CONVERT
+* Functions
+* Constraint and Foreign Keys, indexes, Check, Default
+* CONTINUE/BREAK/FOR/LOOP
+
+### Version "Elbrus" 0.0.50 (10.02.2015)
+
+* Transactions
+* SET NOCOUNT
+
+### Version "Prague" 0.0.55 (20.02.2015)
+
+* PIVOT/UNPIVOT
+
+### Version "Manila" 0.0.60 (01.03.2015)
+
+* OVER PARTITION
+
+### Version "Vanilla" 0.0.63 (01.03.2015)
+
+* GROUP BY HIERARCHY, TOTAL, DETAIL
+
+### Version "Menlo Park" 0.0.65 (10.03.2015)
+
+* CREATE FUNCTION, CREATE PROCEDURE, EXEC
+* Bugs
+* Documentation
+
+### Version "Vorkuta" 0.0.70 (20.03.2015)
+
+* Fluent interface improvement
+* Bugs
+* Documentation
+
+### Version "San Diego" 0.0.75 (01.04.2015)
+
+* NeDB, MongoDB, Redis, Cassandra NoSQL
+* Bugs
+* Documentation
+
+### Version "Voronezh" 0.0.80 (10.04.2015)
+
+* Compatibility
+
+### Version "Rio de Janeiro" 0.0.85 (20.04.2015)
+* Speed
+
+### Version "Quito" 0.0.90 (01.05.2015)
+* Memory
+
+### Version "First Pancake" 0.1.0 (10.05.2015)
+
+* Bugs
+* Speed, memory, and size optimization
+* Compatibility: browsers, mobiles, SQL databases
+
## Next Versions
diff --git a/alasql-worker.js b/alasql-worker.js
deleted file mode 100755
index 1d5e08899c..0000000000
--- a/alasql-worker.js
+++ /dev/null
@@ -1,101 +0,0 @@
-(function (root, factory) {
- if (typeof define === 'function' && define.amd) {
- define([], factory);
- } else if (typeof exports === 'object') {
- module.exports = factory();
- } else {
- root.alasql = factory();
- }
-}(this, function () {
-
-/**
- Main procedure for worker
- */
-function alasql(sql,params,cb){
- var id = alasql.lastid++;
- alasql.buffer[id] = cb;
- alasql.webworker.postMessage({id:id,sql:sql,params:params});
-};
-
-
-if (typeof importScripts === 'function') {
- // Nothing
-} else if(typeof exports != 'object') {
-
-alasql.worker = function(path, paths, cb) {
-// var path;
- if(path === true) path = undefined;
- if (typeof path == "undefined") {
- var sc = document.getElementsByTagName('script');
- for(var i=0;i 1) {
- var sql = 'REQUIRE ' + paths.map(function(p){
- return '"'+p+'"';
- }).join(",");
- alasql(sql,[],cb);
- }
-
- } else if(path === false) {
- delete alasql.webworker;
- return;
- };
-};
-
-};
-
-
-
-/* WebWorker */
-alasql.lastid = 0;
-alasql.buffer = {};
-
-alasql.worker();
-
-return alasql;
-}));
-
-
-//# sourceMappingURL=alasql-worker.js.map
\ No newline at end of file
diff --git a/alasql-worker.js.map b/alasql-worker.js.map
deleted file mode 100755
index d080a665ba..0000000000
--- a/alasql-worker.js.map
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "version": 3,
- "file": "alasql-worker.js",
- "sources": [
- "src/99worker-start.js",
- "src/99worker.js",
- "src/99worker-finish.js"
- ],
- "names": [],
- "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"
-}
\ No newline at end of file
diff --git a/alasql-worker.min.js b/alasql-worker.min.js
deleted file mode 100644
index 8f1c632630..0000000000
--- a/alasql-worker.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(root,factory){if(typeof define==="function"&&define.amd){define([],factory)}else if(typeof exports==="object"){module.exports=factory()}else{root.alasql=factory()}})(this,function(){function alasql(sql,params,cb){var id=alasql.lastid++;alasql.buffer[id]=cb;alasql.webworker.postMessage({id:id,sql:sql,params:params})}if(typeof importScripts==="function"){}else if(typeof exports!="object"){alasql.worker=function(path,paths,cb){if(path===true)path=undefined;if(typeof path=="undefined"){var sc=document.getElementsByTagName("script");for(var i=0;i1){var sql="REQUIRE "+paths.map(function(p){return'"'+p+'"'}).join(",");alasql(sql,[],cb)}}else if(path===false){delete alasql.webworker;return}}}alasql.lastid=0;alasql.buffer={};alasql.worker();return alasql});
\ No newline at end of file
diff --git a/alasql.min.js b/alasql.min.js
deleted file mode 100644
index 69de515ef3..0000000000
--- a/alasql.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-(function(root,factory){if(typeof define==="function"&&define.amd){define([],factory)}else if(typeof exports==="object"){module.exports=factory()}else{root.alasql=factory()}})(this,function(){var alasql=function(sql,params,cb,scope){if(typeof importScripts!="function"&&alasql.webworker){var id=alasql.lastid++;alasql.buffer[id]=cb;alasql.webworker.postMessage({id:id,sql:sql,params:params})}else{if(arguments.length==0){return new yy.Select({columns:[new yy.Column({columnid:"*"})],from:[new yy.ParamValue({param:0})]})}else if(arguments.length==1&&typeof sql=="object"&&sql instanceof Array){var select=new yy.Select({columns:[new yy.Column({columnid:"*"})],from:[new yy.ParamValue({param:0})]});select.preparams=[sql];return select}else{if(typeof sql=="string"&&sql[0]=="#"&&typeof document=="object"){sql=document.querySelector(sql).textContent}else if(typeof sql=="object"&&sql instanceof HTMElement){sql=sql.textContent}else if(typeof sql=="function"){sql=sql.toString().slice(14,-3)}return alasql.exec(sql,params,cb,scope)}}};alasql.version="0.0.36";var parser=function(){var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,11],$V1=[1,6],$V2=[1,35],$V3=[1,61],$V4=[1,80],$V5=[1,70],$V6=[1,68],$V7=[1,78],$V8=[1,54],$V9=[1,57],$Va=[1,52],$Vb=[1,49],$Vc=[1,56],$Vd=[1,50],$Ve=[1,58],$Vf=[1,51],$Vg=[1,55],$Vh=[1,67],$Vi=[1,62],$Vj=[1,69],$Vk=[1,71],$Vl=[1,72],$Vm=[1,65],$Vn=[1,66],$Vo=[1,64],$Vp=[1,73],$Vq=[1,74],$Vr=[1,75],$Vs=[1,76],$Vt=[1,77],$Vu=[1,53],$Vv=[1,63],$Vw=[1,60],$Vx=[1,82],$Vy=[1,83],$Vz=[8,9,11,201],$VA=[8,9,11,201,205],$VB=[1,138],$VC=[1,139],$VD=[1,103],$VE=[1,114],$VF=[1,111],$VG=[1,110],$VH=[1,128],$VI=[1,124],$VJ=[1,125],$VK=[1,129],$VL=[1,130],$VM=[1,131],$VN=[1,132],$VO=[1,133],$VP=[1,134],$VQ=[1,135],$VR=[1,136],$VS=[1,137],$VT=[1,112],$VU=[1,113],$VV=[1,115],$VW=[1,116],$VX=[1,121],$VY=[1,122],$VZ=[1,117],$V_=[1,118],$V$=[1,119],$V01=[1,120],$V11=[1,123],$V21=[1,109],$V31=[1,108],$V41=[1,107],$V51=[1,127],$V61=[1,140],$V71=[1,151],$V81=[4,5],$V91=[8,9,11,65,97,124,125,135,136,137,138,144,201,205],$Va1=[1,167],$Vb1=[1,175],$Vc1=[1,174],$Vd1=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,154,165,190,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],$Ve1=[1,206],$Vf1=[1,199],$Vg1=[4,5,64,96,151,154,165,166,167,169,178,179,180,181,182,183,184,185,186,188,189,190,191,192,193,194,195,196,197,198,208,209,228,314,318],$Vh1=[2,74],$Vi1=[1,220],$Vj1=[4,5,64,75,78,79,88,96,151,154,165,166,167,169,178,179,180,181,182,183,184,185,186,188,189,190,191,192,193,194,195,196,197,198,208,209,228,314,318],$Vk1=[1,236],$Vl1=[1,232],$Vm1=[1,233],$Vn1=[1,234],$Vo1=[1,235],$Vp1=[1,237],$Vq1=[1,238],$Vr1=[1,239],$Vs1=[1,240],$Vt1=[1,241],$Vu1=[1,242],$Vv1=[1,243],$Vw1=[1,244],$Vx1=[1,245],$Vy1=[1,246],$Vz1=[1,247],$VA1=[1,248],$VB1=[1,249],$VC1=[1,250],$VD1=[1,252],$VE1=[1,253],$VF1=[1,255],$VG1=[1,254],$VH1=[1,256],$VI1=[1,257],$VJ1=[1,258],$VK1=[1,259],$VL1=[2,193],$VM1=[1,263],$VN1=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,154,165,190,191,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,246,250,258,263,274,275,278,279,291,292,294,295,299,301,303,304,309,311,312,320,322,328,330,331,333,334,335,336,337,339,342,343,355],$VO1=[2,251],$VP1=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,120,122,124,125,134,135,136,137,138,141,142,144,149,150,151,154,165,190,191,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,246,250,258,263,274,275,278,279,291,292,294,295,299,301,303,304,309,311,312,320,322,328,330,331,333,334,335,336,337,339,342,343,355],$VQ1=[1,271],$VR1=[1,281],$VS1=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,154,165,190,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,320,322,328,330,331,333,334,335,336,337,339,342,343,355],$VT1=[1,297],$VU1=[4,5,8,9,11,45,59,61,63,64,65,78,80,86,91,96,97,102,104,106,112,113,114,115,116,117,118,119,120,122,124,125,134,135,136,137,138,141,142,144,149,150,151,154,165,190,191,195,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,244,246,250,257,258,259,263,274,275,276,278,279,287,288,291,292,294,295,296,297,298,299,300,301,303,304,305,309,311,312,320,322,327,328,330,331,333,334,335,336,337,339,342,343,355],$VV1=[1,304],$VW1=[1,305],$VX1=[2,364],$VY1=[1,310],$VZ1=[8,9,11,61,201,205],$V_1=[2,416],$V$1=[1,321],$V02=[8,9,11,65,124,125,135,136,137,138,144,201,205],$V12=[8,9,11,61,65,102,104,112,113,114,115,116,117,118,119,120,122,124,125,135,136,137,138,144,201,205],$V22=[2,110],$V32=[1,349],$V42=[61,80],$V52=[8,9,11,61,65,191,201,205,228,246,258,274,275,278,279,291],$V62=[79,235,236],$V72=[1,414],$V82=[1,420],$V92=[1,421],$Va2=[1,431],$Vb2=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,165,190,201,203,204,205,206,207,208,209,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],$Vc2=[2,266],$Vd2=[1,438],$Ve2=[201,203,205],$Vf2=[61,322],$Vg2=[61,320,322],$Vh2=[1,445],$Vi2=[61,320],$Vj2=[4,5,96,190],$Vk2=[8,9,11,65,125,135,136,137,138,144,201,205],$Vl2=[8,9,11,65,91,97,124,125,135,136,137,138,144,201,205],$Vm2=[1,512],$Vn2=[8,9,11,61,65,91,97,124,125,135,136,137,138,144,201,205],$Vo2=[2,176],$Vp2=[1,514],$Vq2=[1,515],$Vr2=[8,9,11,61,65,91,97,124,125,135,136,137,138,144,149,150,201,205],$Vs2=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,165,190,201,203,204,205,206,207,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],$Vt2=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,154,165,190,201,203,204,205,206,207,208,209,210,211,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],$Vu2=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,165,190,201,203,204,205,214,215,216,217,218,219,220,221,222,223,226,227,231,232,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],$Vv2=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,165,190,201,203,204,205,227,231,232,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],$Vw2=[4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,154,165,190,191,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,246,250,258,263,274,275,278,279,291,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],$Vx2=[1,537],$Vy2=[61,65],$Vz2=[2,191],$VA2=[1,577],$VB2=[8,9,11,65,135,136,137,138,144,201,205],$VC2=[8,9,11,61,65,124,125,135,136,137,138,144,201,205],$VD2=[1,592],$VE2=[1,593],$VF2=[1,595],$VG2=[1,596],$VH2=[1,597],$VI2=[1,598],$VJ2=[1,599],$VK2=[1,600],$VL2=[1,601],$VM2=[1,602],$VN2=[1,606],$VO2=[1,617],$VP2=[8,9,11,61,124,201,203,205,355],$VQ2=[1,625],$VR2=[1,624],$VS2=[2,229],$VT2=[1,646],$VU2=[2,433],$VV2=[1,667],$VW2=[1,679],$VX2=[8,9,11,61,201,203,205,355],$VY2=[1,682],$VZ2=[8,9,11,61,65,102,104,112,113,114,115,116,117,118,119,124,125,135,136,137,138,144,201,205],$V_2=[8,9,11,65,135,136,137,144,201,205],$V$2=[8,9,11,65,102,104,112,113,114,115,116,117,118,119,124,125,135,136,137,138,144,201,205],$V03=[1,696],$V13=[1,698],$V23=[4,5,64,192,194,195,196,197],$V33=[8,9,11,201,203,205,355],$V43=[213,218],$V53=[1,738],$V63=[8,9,11,61,65,201,205],$V73=[1,754],$V83=[8,9,11,65,135,136,137,201,205],$V93=[1,773],$Va3=[1,774],$Vb3=[1,775],$Vc3=[8,9,11,65,102,104,112,113,114,115,116,117,118,119,120,122,124,125,135,136,137,138,144,201,205],$Vd3=[1,805],$Ve3=[1,818],$Vf3=[1,819],$Vg3=[1,817],$Vh3=[1,815],$Vi3=[1,821],$Vj3=[1,812],$Vk3=[1,813],$Vl3=[1,814],$Vm3=[1,816],$Vn3=[1,825],$Vo3=[1,830],$Vp3=[1,831],$Vq3=[1,832],$Vr3=[1,833],$Vs3=[78,86,274,275,276,278],$Vt3=[2,376],$Vu3=[1,838],$Vv3=[8,9,11,65,201,205],$Vw3=[1,851],$Vx3=[8,9,11,61,65,134,135,136,137,138,144,201,205],$Vy3=[1,868],$Vz3=[1,867],$VA3=[8,9,11,201,205,246,257,258,259],$VB3=[1,918],$VC3=[8,9,11,61,65,135,136,137,144,201,205],$VD3=[1,935];var parser={trace:function trace(){},yy:{},symbols_:{error:2,Literal:3,LITERAL:4,BRALITERAL:5,main:6,Statements:7,EOF:8,SEMICOLON:9,AStatement:10,GO:11,ExplainStatement:12,EXPLAIN:13,QUERY:14,PLAN:15,Statement:16,If:17,AlterTable:18,AttachDatabase:19,CreateDatabase:20,CreateIndex:21,CreateTable:22,CreateView:23,Declare:24,Delete:25,DetachDatabase:26,DropDatabase:27,DropIndex:28,DropTable:29,DropView:30,Insert:31,RenameTable:32,Select:33,Merge:34,WithSelect:35,ShowCreateTable:36,ShowColumns:37,ShowDatabases:38,ShowIndex:39,ShowTables:40,TruncateTable:41,BeginTransaction:42,CommitTransaction:43,RollbackTransaction:44,EndTransaction:45,UseDatabase:46,Update:47,Help:48,JavaScript:49,Source:50,Assert:51,While:52,Continue:53,Break:54,BeginEnd:55,Print:56,Require:57,SetVariable:58,WITH:59,WithTablesList:60,COMMA:61,WithTable:62,AS:63,LPAR:64,RPAR:65,SelectClause:66,IntoClause:67,FromClause:68,WhereClause:69,GroupClause:70,OrderClause:71,LimitClause:72,UnionClause:73,SelectModifier:74,DISTINCT:75,TopClause:76,ResultColumns:77,UNIQUE:78,ALL:79,SELECT:80,VALUE:81,ROW:82,COLUMN:83,MATRIX:84,TEXTSTRING:85,INDEX:86,RECORDSET:87,TOP:88,NumValue:89,PERCENT:90,INTO:91,Table:92,FuncValue:93,ParamValue:94,VarValue:95,STRING:96,FROM:97,FromTablesList:98,FromTable:99,JoinTablesList:100,ApplyClause:101,CROSS:102,APPLY:103,OUTER:104,FromString:105,DOT:106,JoinTable:107,JoinMode:108,JoinTableAs:109,OnClause:110,JoinModeMode:111,NATURAL:112,JOIN:113,INNER:114,LEFT:115,RIGHT:116,FULL:117,SEMI:118,ANTI:119,ON:120,Expression:121,USING:122,ColumnsList:123,WHERE:124,GROUP:125,BY:126,GroupExpressionsList:127,HavingClause:128,GroupExpression:129,GROUPING:130,SETS:131,ROLLUP:132,CUBE:133,HAVING:134,UNION:135,EXCEPT:136,INTERSECT:137,ORDER:138,OrderExpressionsList:139,OrderExpression:140,DIRECTION:141,COLLATE:142,NOCASE:143,LIMIT:144,OffsetClause:145,OFFSET:146,ResultColumn:147,TDTH:148,TD:149,TH:150,NUMBER:151,StringValue:152,Star:153,STAR:154,Column:155,AggrValue:156,Op:157,LogicValue:158,NullValue:159,ExistsValue:160,CaseValue:161,CastClause:162,Json:163,NewClause:164,JAVASCRIPT:165,NEW:166,CAST:167,ColumnType:168,CONVERT:169,PrimitiveValue:170,CURRENT_TIMESTAMP:171,Aggregator:172,OverClause:173,OVER:174,OverPartitionClause:175,OverOrderByClause:176,PARTITION:177,SUM:178,COUNT:179,MIN:180,MAX:181,AVG:182,FIRST:183,LAST:184,AGGR:185,ARRAY:186,ExprList:187,TRUE:188,FALSE:189,NSTRING:190,NULL:191,AT:192,EXISTS:193,DOLLAR:194,COLON:195,QUESTION:196,BRAQUESTION:197,CASE:198,WhensList:199,ElseClause:200,END:201,When:202,WHEN:203,THEN:204,ELSE:205,LIKE:206,NOT_LIKE:207,PLUS:208,MINUS:209,SLASH:210,MODULO:211,CARET:212,ARROW:213,GT:214,GE:215,LT:216,LE:217,EQ:218,EQEQ:219,EQEQEQ:220,NE:221,NEEQEQ:222,NEEQEQEQ:223,CondOp:224,AllSome:225,AND:226,OR:227,NOT:228,IN:229,ColFunc:230,BETWEEN:231,NOT_BETWEEN:232,IS:233,DOUBLECOLON:234,SOME:235,ANY:236,UPDATE:237,SET:238,SetColumnsList:239,SetColumn:240,DELETE:241,INSERT:242,Into:243,VALUES:244,ValuesListsList:245,DEFAULT:246,ValuesList:247,Value:248,DateValue:249,CREATE:250,TABLE:251,IfNotExists:252,CreateTableDefClause:253,CreateTableOptionsClause:254,CreateTableOptions:255,CreateTableOption:256,ENGINE:257,AUTO_INCREMENT:258,CHARSET:259,TemporaryClause:260,TEMPORARY:261,TEMP:262,IF:263,ColumnDefsList:264,ConstraintsList:265,Constraint:266,ConstraintName:267,PrimaryKey:268,ForeignKey:269,UniqueKey:270,IndexKey:271,Check:272,CONSTRAINT:273,CHECK:274,PRIMARY:275,KEY:276,ColsList:277,FOREIGN:278,REFERENCES:279,OnForeignKeyClause:280,OnDeleteClause:281,OnUpdateClause:282,NO:283,ACTION:284,ColumnDef:285,ColumnConstraintsClause:286,ColumnConstraints:287,ENUM:288,ColumnConstraintsList:289,ColumnConstraint:290,IDENTITY:291,DROP:292,IfExists:293,ALTER:294,RENAME:295,TO:296,ADD:297,MODIFY:298,ATTACH:299,DATABASE:300,DETACH:301,AsClause:302,USE:303,SHOW:304,DATABASES:305,TABLES:306,COLUMNS:307,VIEW:308,HELP:309,ExpressionStatement:310,SOURCE:311,ASSERT:312,JsonObject:313,ATLBRA:314,JsonArray:315,JsonValue:316,JsonPrimitiveValue:317,LCUR:318,JsonPropertiesList:319,RCUR:320,JsonElementsList:321,RBRA:322,JsonProperty:323,OnOff:324,SetPropsList:325,SetProp:326,OFF:327,COMMIT:328,TRANSACTION:329,ROLLBACK:330,BEGIN:331,ElseStatement:332,WHILE:333,CONTINUE:334,BREAK:335,PRINT:336,REQUIRE:337,StringValuesList:338,DECLARE:339,DeclaresList:340,DeclareItem:341,TRUNCATE:342,MERGE:343,MergeInto:344,MergeUsing:345,MergeOn:346,MergeMatchedList:347,OutputClause:348,MergeMatched:349,MergeNotMatched:350,MATCHED:351,MergeMatchedAction:352,MergeNotMatchedAction:353,TARGET:354,OUTPUT:355,$accept:0,$end:1},terminals_:{2:"error",4:"LITERAL",5:"BRALITERAL",8:"EOF",9:"SEMICOLON",11:"GO",13:"EXPLAIN",14:"QUERY",15:"PLAN",45:"EndTransaction",59:"WITH",61:"COMMA",63:"AS",64:"LPAR",65:"RPAR",75:"DISTINCT",78:"UNIQUE",79:"ALL",80:"SELECT",81:"VALUE",82:"ROW",83:"COLUMN",84:"MATRIX",85:"TEXTSTRING",86:"INDEX",87:"RECORDSET",88:"TOP",90:"PERCENT",91:"INTO",96:"STRING",97:"FROM",102:"CROSS",103:"APPLY",104:"OUTER",106:"DOT",112:"NATURAL",113:"JOIN",114:"INNER",115:"LEFT",116:"RIGHT",117:"FULL",118:"SEMI",119:"ANTI",120:"ON",122:"USING",124:"WHERE",125:"GROUP",126:"BY",130:"GROUPING",131:"SETS",132:"ROLLUP",133:"CUBE",134:"HAVING",135:"UNION",136:"EXCEPT",137:"INTERSECT",138:"ORDER",141:"DIRECTION",142:"COLLATE",143:"NOCASE",144:"LIMIT",146:"OFFSET",149:"TD",150:"TH",151:"NUMBER",154:"STAR",165:"JAVASCRIPT",166:"NEW",167:"CAST",169:"CONVERT",171:"CURRENT_TIMESTAMP",174:"OVER",177:"PARTITION",178:"SUM",179:"COUNT",180:"MIN",181:"MAX",182:"AVG",183:"FIRST",184:"LAST",185:"AGGR",186:"ARRAY",188:"TRUE",189:"FALSE",190:"NSTRING",191:"NULL",192:"AT",193:"EXISTS",194:"DOLLAR",195:"COLON",196:"QUESTION",197:"BRAQUESTION",198:"CASE",201:"END",203:"WHEN",204:"THEN",205:"ELSE",206:"LIKE",207:"NOT_LIKE",208:"PLUS",209:"MINUS",210:"SLASH",211:"MODULO",212:"CARET",213:"ARROW",214:"GT",215:"GE",216:"LT",217:"LE",218:"EQ",219:"EQEQ",220:"EQEQEQ",221:"NE",222:"NEEQEQ",223:"NEEQEQEQ",226:"AND",227:"OR",228:"NOT",229:"IN",231:"BETWEEN",232:"NOT_BETWEEN",233:"IS",234:"DOUBLECOLON",235:"SOME",236:"ANY",237:"UPDATE",238:"SET",241:"DELETE",242:"INSERT",244:"VALUES",246:"DEFAULT",249:"DateValue",250:"CREATE",251:"TABLE",257:"ENGINE",258:"AUTO_INCREMENT",259:"CHARSET",261:"TEMPORARY",262:"TEMP",263:"IF",273:"CONSTRAINT",274:"CHECK",275:"PRIMARY",276:"KEY",278:"FOREIGN",279:"REFERENCES",283:"NO",284:"ACTION",287:"ColumnConstraints",288:"ENUM",291:"IDENTITY",292:"DROP",294:"ALTER",295:"RENAME",296:"TO",297:"ADD",298:"MODIFY",299:"ATTACH",300:"DATABASE",301:"DETACH",303:"USE",304:"SHOW",305:"DATABASES",306:"TABLES",307:"COLUMNS",308:"VIEW",309:"HELP",311:"SOURCE",312:"ASSERT",314:"ATLBRA",318:"LCUR",320:"RCUR",322:"RBRA",327:"OFF",328:"COMMIT",329:"TRANSACTION",330:"ROLLBACK",331:"BEGIN",333:"WHILE",334:"CONTINUE",335:"BREAK",336:"PRINT",337:"REQUIRE",339:"DECLARE",342:"TRUNCATE",343:"MERGE",351:"MATCHED",354:"TARGET",355:"OUTPUT"},productions_:[0,[3,1],[3,1],[6,2],[7,3],[7,3],[7,1],[7,1],[12,2],[12,4],[10,1],[16,0],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[35,3],[60,3],[60,1],[62,5],[33,8],[66,4],[66,4],[66,4],[66,3],[74,1],[74,2],[74,2],[74,2],[74,2],[74,2],[74,2],[74,2],[76,2],[76,4],[76,3],[76,0],[67,0],[67,2],[67,2],[67,2],[67,2],[67,2],[68,2],[68,3],[68,0],[101,6],[101,7],[101,6],[101,7],[98,1],[98,3],[99,4],[99,5],[99,3],[99,2],[99,3],[99,1],[99,2],[99,3],[99,1],[99,1],[99,2],[99,3],[99,1],[99,2],[99,3],[99,1],[99,2],[99,3],[105,1],[92,3],[92,1],[100,2],[100,2],[100,1],[100,1],[107,3],[109,1],[109,2],[109,3],[109,2],[109,3],[109,4],[109,5],[109,1],[109,2],[109,3],[109,1],[109,2],[109,3],[108,1],[108,2],[111,1],[111,2],[111,2],[111,3],[111,2],[111,3],[111,2],[111,3],[111,2],[111,2],[111,2],[110,2],[110,2],[110,0],[69,0],[69,2],[70,0],[70,4],[127,1],[127,3],[129,5],[129,4],[129,4],[129,1],[128,0],[128,2],[73,0],[73,2],[73,3],[73,2],[73,2],[71,0],[71,3],[139,1],[139,3],[140,1],[140,2],[140,3],[140,4],[72,0],[72,3],[145,0],[145,2],[77,4],[77,2],[148,0],[148,2],[148,2],[148,4],[147,3],[147,2],[147,3],[147,2],[147,3],[147,2],[147,1],[153,5],[153,3],[153,1],[155,5],[155,3],[155,3],[155,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,1],[121,3],[121,1],[49,1],[164,2],[164,2],[162,6],[162,8],[162,6],[162,8],[170,1],[170,1],[170,1],[170,1],[170,1],[170,1],[170,1],[156,5],[156,6],[156,6],[173,0],[173,4],[173,4],[173,5],[175,3],[176,3],[172,1],[172,1],[172,1],[172,1],[172,1],[172,1],[172,1],[172,1],[172,1],[93,4],[93,3],[187,1],[187,3],[89,1],[158,1],[158,1],[152,1],[152,1],[159,1],[95,2],[160,4],[94,2],[94,2],[94,1],[94,1],[161,5],[161,4],[199,2],[199,1],[202,4],[200,2],[200,0],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,5],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,3],[157,6],[157,6],[157,3],[157,3],[157,2],[157,2],[157,2],[157,3],[157,5],[157,6],[157,5],[157,6],[157,4],[157,5],[157,3],[157,4],[157,3],[157,3],[157,3],[157,3],[230,1],[230,1],[230,4],[224,1],[224,1],[224,1],[224,1],[224,1],[224,1],[225,1],[225,1],[225,1],[47,6],[47,4],[239,1],[239,3],[240,3],[25,5],[25,3],[31,5],[31,5],[31,8],[31,4],[31,7],[243,0],[243,1],[245,3],[245,1],[245,1],[245,5],[245,3],[245,3],[247,1],[247,3],[248,1],[248,1],[248,1],[248,1],[248,1],[248,1],[123,1],[123,3],[22,8],[22,4],[254,0],[254,1],[255,2],[255,1],[256,1],[256,3],[256,3],[256,3],[260,0],[260,1],[260,1],[252,0],[252,3],[253,3],[253,1],[253,2],[265,1],[265,3],[266,2],[266,2],[266,2],[266,2],[266,2],[267,0],[267,2],[272,4],[268,5],[269,11],[280,0],[280,2],[281,4],[282,4],[270,1],[271,5],[271,5],[277,1],[277,1],[277,3],[277,3],[264,1],[264,3],[285,3],[285,2],[285,1],[168,6],[168,4],[168,1],[168,4],[286,0],[286,1],[289,2],[289,1],[290,2],[290,7],[290,5],[290,1],[290,6],[290,1],[290,2],[290,1],[290,2],[290,1],[29,4],[293,0],[293,2],[18,6],[18,6],[18,6],[18,8],[18,6],[32,5],[19,4],[19,7],[19,6],[19,9],[26,3],[20,4],[20,6],[20,9],[20,6],[302,0],[302,2],[46,3],[46,2],[27,4],[27,5],[27,5],[21,8],[21,9],[28,3],[38,2],[38,4],[38,3],[38,5],[40,2],[40,4],[40,4],[40,6],[37,4],[37,6],[39,4],[39,6],[36,4],[36,6],[23,9],[23,6],[30,4],[48,2],[48,1],[310,1],[50,2],[51,2],[51,2],[51,4],[163,4],[163,2],[163,2],[163,2],[163,2],[163,1],[163,2],[163,2],[316,1],[316,1],[317,1],[317,1],[317,1],[317,1],[317,1],[317,1],[317,1],[317,3],[313,3],[313,4],[313,2],[315,2],[315,3],[315,1],[319,3],[319,1],[323,3],[323,3],[323,3],[321,3],[321,1],[58,3],[58,5],[58,6],[325,3],[325,2],[326,1],[326,1],[326,3],[324,1],[324,1],[43,2],[44,2],[42,2],[17,4],[17,3],[332,2],[52,3],[53,1],[54,1],[55,3],[56,2],[56,2],[57,2],[338,3],[338,1],[24,2],[340,1],[340,3],[341,3],[341,4],[341,5],[341,6],[41,3],[34,6],[344,1],[344,2],[345,2],[346,2],[347,2],[347,2],[347,1],[347,1],[349,4],[349,6],[352,1],[352,3],[350,5],[350,7],[350,7],[350,9],[350,7],[350,9],[353,3],[353,6],[353,3],[353,6],[348,0],[348,2],[348,5],[348,4],[348,7]],performAction:function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:if(yy.casesensitive)this.$=$$[$0];else this.$=$$[$0].toLowerCase();break;case 2:this.$=doubleq($$[$0].substr(1,$$[$0].length-2));break;case 3:return new yy.Statements({statements:$$[$0-1]});break;case 4:case 5:this.$=$$[$0-2];if($$[$0])$$[$0-2].push($$[$0]);break;case 6:case 7:case 56:case 88:case 113:case 114:case 149:case 164:case 246:case 263:case 323:case 336:case 337:case 341:case 349:case 388:case 389:case 497:case 502:case 522:case 524:case 538:case 539:this.$=[$$[$0]];break;case 8:this.$=$$[$0];$$[$0].explain=true;break;case 9:this.$=$$[$0];$$[$0].explain=true;break;case 10:this.$=$$[$0];if(yy.exists)this.$.exists=yy.exists;delete yy.exists;if(yy.queries)this.$.queries=yy.queries;delete yy.queries;break;case 11:case 63:case 74:case 83:case 144:case 145:case 147:case 155:case 157:case 162:case 170:case 172:case 225:case 266:case 361:case 364:case 376:case 381:case 382:case 416:this.$=undefined;break;case 54:this.$=new yy.WithSelect({withs:$$[$0-1],select:$$[$0]});break;case 55:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 57:this.$={name:$$[$0-4],select:$$[$0-1]};break;case 58:yy.extend(this.$,$$[$0-7]);yy.extend(this.$,$$[$0-6]);yy.extend(this.$,$$[$0-5]);yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]);yy.extend(this.$,$$[$0-2]);yy.extend(this.$,$$[$0-1]);yy.extend(this.$,$$[$0]);this.$=$$[$0-7];break;case 59:this.$=new yy.Select({columns:$$[$0],distinct:true});yy,extend(this.$,$$[$0-3]);yy.extend(this.$,$$[$0-1]);break;case 60:this.$=new yy.Select({columns:$$[$0],distinct:true});yy,extend(this.$,$$[$0-3]);yy.extend(this.$,$$[$0-1]);break;case 61:this.$=new yy.Select({columns:$$[$0],all:true});yy,extend(this.$,$$[$0-3]);yy.extend(this.$,$$[$0-1]);break;case 62:this.$=new yy.Select({columns:$$[$0]});yy,extend(this.$,$$[$0-2]);yy.extend(this.$,$$[$0-1]);break;case 64:this.$={modifier:"VALUE"};break;case 65:this.$={modifier:"ROW"};break;case 66:this.$={modifier:"COLUMN"};break;case 67:this.$={modifier:"MATRIX"};break;case 68:this.$={modifier:"TEXTSTRING"};break;case 69:this.$={modifier:"INDEX"};break;case 70:this.$={modifier:"RECORDSET"};break;case 71:this.$={top:$$[$0]};break;case 72:this.$={top:$$[$0-1]};break;case 73:this.$={top:$$[$0-1],percent:true};break;case 75:case 229:case 383:case 384:this.$=undefined;break;case 76:case 77:case 78:case 79:this.$={into:$$[$0]};break;case 80:var s=$$[$0];s=s.substr(1,s.length-2);var x3=s.substr(-3).toUpperCase();var x4=s.substr(-4).toUpperCase();if(s[0]=="#"){this.$={into:new yy.FuncValue({funcid:"HTML",args:[new yy.StringValue({value:s}),new yy.Json({value:{headers:true}})]})}}else if(x3=="XLS"||x3=="CSV"||x3=="TAB"){this.$={into:new yy.FuncValue({funcid:x3,args:[new yy.StringValue({value:s}),new yy.Json({value:{headers:true}})]})}}else if(x4=="XLSX"||x4=="JSON"){this.$={into:new yy.FuncValue({funcid:x4,args:[new yy.StringValue({value:s}),new yy.Json({value:{headers:true}})]})}}break;case 81:this.$={from:$$[$0]};break;case 82:this.$={from:[$$[$0-1]],joins:$$[$0]};break;case 84:this.$=new yy.Apply({select:$$[$0-2],applymode:"CROSS",as:$$[$0]});break;case 85:this.$=new yy.Apply({select:$$[$0-3],applymode:"CROSS",as:$$[$0]});break;case 86:this.$=new yy.Apply({select:$$[$0-2],applymode:"OUTER",as:$$[$0]});break;case 87:this.$=new yy.Apply({select:$$[$0-3],applymode:"OUTER",as:$$[$0]});break;case 89:case 150:case 324:case 390:case 391:this.$=$$[$0-2];$$[$0-2].push($$[$0]);break;case 90:this.$=$$[$0-2];this.$.as=$$[$0];break;case 91:this.$=$$[$0-3];this.$.as=$$[$0];break;case 92:this.$=$$[$0-1];this.$.as="default";break;case 93:this.$=$$[$0-1];$$[$0-1].as=$$[$0];break;case 94:this.$=$$[$0-2];$$[$0-2].as=$$[$0];break;case 95:case 154:case 186:case 194:case 195:case 196:case 197:case 198:case 199:case 200:case 201:case 202:case 203:case 204:case 205:case 206:case 207:case 209:case 219:case 220:case 221:case 222:case 223:case 224:case 265:case 312:case 313:case 314:case 315:case 316:case 317:case 377:case 402:case 404:case 471:case 472:case 473:case 474:case 475:case 476:case 480:case 482:case 483:case 492:case 503:case 504:this.$=$$[$0];break;case 96:case 100:case 103:case 106:this.$=$$[$0-1];$$[$0-1].as=$$[$0];break;case 97:case 101:case 104:case 107:this.$=$$[$0-2];$$[$0-2].as=$$[$0];break;case 98:case 99:case 102:case 105:this.$=$$[$0];$$[$0].as="default";break;case 108:var s=$$[$0];s=s.substr(1,s.length-2);var x3=s.substr(-3).toUpperCase();var x4=s.substr(-4).toUpperCase();var r;if(s[0]=="#"){r=new yy.FuncValue({funcid:"HTML",args:[new yy.StringValue({value:s}),new yy.Json({value:{headers:true}})]})}else if(x3=="XLS"||x3=="CSV"||x3=="TAB"){r=new yy.FuncValue({funcid:x3,args:[new yy.StringValue({value:s}),new yy.Json({value:{headers:true}})]})}else if(x4=="XLSX"||x4=="JSON"){r=new yy.FuncValue({funcid:x4,args:[new yy.StringValue({value:s}),new yy.Json({value:{headers:true}})]})}else{throw new Error("Unknown string in FROM clause")};this.$=r;break;case 109:this.$=new yy.Table({databaseid:$$[$0-2],tableid:$$[$0]});break;case 110:this.$=new yy.Table({tableid:$$[$0]});break;case 111:case 112:this.$=$$[$0-1];$$[$0-1].push($$[$0]);break;case 115:this.$=new yy.Join($$[$0-2]);yy.extend(this.$,$$[$0-1]);yy.extend(this.$,$$[$0]);break;case 116:this.$={table:$$[$0]};break;case 117:this.$={table:$$[$0-1],as:$$[$0]};break;case 118:this.$={table:$$[$0-2],as:$$[$0]};break;case 119:this.$={param:$$[$0-1],as:$$[$0]};break;case 120:this.$={param:$$[$0-2],as:$$[$0]};break;case 121:this.$={select:$$[$0-3],as:$$[$0]};break;case 122:this.$={select:$$[$0-4],as:$$[$0]};break;case 123:this.$={funcid:$$[$0],as:"default"};break;case 124:this.$={funcid:$$[$0-1],as:$$[$0]};break;case 125:this.$={funcid:$$[$0-2],as:$$[$0]};break;case 126:this.$={variable:$$[$0],as:"default"};break;case 127:this.$={variable:$$[$0-1],as:$$[$0]};break;case 128:this.$={variable:$$[$0-2],as:$$[$0]};break;case 129:this.$={joinmode:$$[$0]};break;case 130:this.$={joinmode:$$[$0-1],natural:true};break;case 131:case 132:this.$="INNER";break;case 133:case 134:this.$="LEFT";break;case 135:case 136:this.$="RIGHT";break;case 137:case 138:this.$="OUTER";break;case 139:this.$="SEMI";break;case 140:this.$="ANTI";break;case 141:this.$="CROSS";break;case 142:this.$={on:$$[$0]};break;case 143:case 534:this.$={using:$$[$0]};break;case 146:this.$={where:new yy.Expression({expression:$$[$0]})};break;case 148:this.$={group:$$[$0-1]};yy.extend(this.$,$$[$0]);break;case 151:this.$=new yy.GroupExpression({type:"GROUPING SETS",group:$$[$0-1]});break;case 152:this.$=new yy.GroupExpression({type:"ROLLUP",group:$$[$0-1]});break;case 153:this.$=new yy.GroupExpression({type:"CUBE",group:$$[$0-1]});break;case 156:this.$={having:$$[$0]};break;case 158:this.$={union:$$[$0]};break;case 159:this.$={unionall:$$[$0]};break;case 160:this.$={except:$$[$0]};break;case 161:this.$={intersect:$$[$0]};break;case 163:this.$={order:$$[$0]};break;case 165:this.$=$$[$0-2];$$[$0-2].push($$[$0]);break;case 166:this.$=new yy.Expression({expression:$$[$0],direction:"ASC"});break;case 167:this.$=new yy.Expression({expression:$$[$0-1],direction:$$[$0].toUpperCase()});break;case 168:this.$=new yy.Expression({expression:$$[$0-2],direction:"ASC",nocase:true});break;case 169:this.$=new yy.Expression({expression:$$[$0-3],direction:$$[$0].toUpperCase(),nocase:true});break;case 171:this.$={limit:$$[$0-1]};yy.extend(this.$,$$[$0]);break;case 173:this.$={offset:$$[$0]};break;case 174:yy.extend($$[$0-1],$$[$0]);$$[$0-3].push($$[$0-1]);this.$=$$[$0-3];break;case 175:yy.extend($$[$0-1],$$[$0]);this.$=[$$[$0-1]];break;case 176:this.$=undefined;break;case 177:this.$={td:$$[$0]};break;case 178:this.$={th:$$[$0]};break;case 179:this.$={th:$$[$0-2],td:$$[$0]};break;case 180:case 182:case 184:$$[$0-2].as=$$[$0];this.$=$$[$0-2];break;case 181:case 183:case 185:$$[$0-1].as=$$[$0];this.$=$$[$0-1];break;case 187:this.$=new yy.Column({columid:$$[$0],tableid:$$[$0-2],databaseid:$$[$0-4]});break;case 188:this.$=new yy.Column({columnid:$$[$0],tableid:$$[$0-2]});break;case 189:this.$=new yy.Column({columnid:$$[$0]});break;case 190:this.$=new yy.Column({columnid:$$[$0],tableid:$$[$0-2],databaseid:$$[$0-4]});break;case 191:case 192:this.$=new yy.Column({columnid:$$[$0],tableid:$$[$0-2]});break;case 193:this.$=new yy.Column({columnid:$$[$0]});break;case 208:this.$=new yy.Json({value:$$[$0]});break;case 210:if(!yy.queries)yy.queries=[];yy.queries.push($$[$0-1]);$$[$0-1].queriesidx=yy.queries.length;this.$=$$[$0-1];break;case 211:this.$=$$[$0];break;case 212:this.$=new yy.JavaScript({value:$$[$0].substr(2,$$[$0].length-4)});break;case 213:this.$=new yy.FuncValue({funcid:$$[$0],newid:true});break;case 214:this.$=$$[$0];yy.extend(this.$,{newid:true});break;case 215:this.$=new yy.Convert({expression:$$[$0-3]});yy.extend(this.$,$$[$0-1]);break;case 216:this.$=new yy.Convert({expression:$$[$0-5],style:$$[$0-1]});yy.extend(this.$,$$[$0-3]);break;case 217:this.$=new yy.Convert({expression:$$[$0-1]});yy.extend(this.$,$$[$0-3]);break;case 218:this.$=new yy.Convert({expression:$$[$0-3],style:$$[$0-1]});yy.extend(this.$,$$[$0-5]);break;case 226:this.$=new yy.AggrValue({aggregatorid:$$[$0-4].toUpperCase(),expression:$$[$0-2],over:$$[$0]});break;case 227:this.$=new yy.AggrValue({aggregatorid:$$[$0-5].toUpperCase(),expression:$$[$0-2],distinct:true,over:$$[$0]});break;case 228:this.$=new yy.AggrValue({aggregatorid:$$[$0-5].toUpperCase(),expression:$$[$0-2],over:$$[$0]});break;case 230:case 231:this.$=new yy.Over;yy.extend(this.$,$$[$0-1]);break;case 232:this.$=new yy.Over;yy.extend(this.$,$$[$0-2]);yy.extend(this.$,$$[$0-1]);break;case 233:this.$={partition:$$[$0]};break;case 234:this.$={order:$$[$0]};break;case 235:this.$="SUM";break;case 236:this.$="COUNT";break;case 237:this.$="MIN";break;case 238:this.$="MAX";break;case 239:this.$="AVG";break;case 240:this.$="FIRST";break;case 241:this.$="LAST";break;case 242:this.$="AGGR";break;case 243:this.$="ARRAY";break;case 244:if(alasql.aggr[$$[$0-3]]){this.$=new yy.AggrValue({aggregatorid:"REDUCE",funcid:$$[$0-3],expression:$$[$0-1].pop()})}else{this.$=new yy.FuncValue({funcid:$$[$0-3],args:$$[$0-1]})};break;case 245:this.$=new yy.FuncValue({funcid:$$[$0-2]});break;case 247:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 248:this.$=new yy.NumValue({value:+$$[$0]});break;case 249:this.$=new yy.LogicValue({value:true});break;case 250:this.$=new yy.LogicValue({value:false});break;case 251:this.$=new yy.StringValue({value:$$[$0].substr(1,$$[$0].length-2).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});break;case 252:this.$=new yy.StringValue({value:$$[$0].substr(2,$$[$0].length-3).replace(/(\\\')/g,"'").replace(/(\'\')/g,"'")});break;case 253:this.$=new yy.NullValue({value:undefined});break;case 254:this.$=new yy.VarValue({variable:$$[$0]});break;case 255:if(!yy.exists)yy.exists=[];this.$=new yy.ExistsValue({value:$$[$0-1],existsidx:yy.exists.length});yy.exists.push($$[$0-1]);break;case 256:case 257:this.$=new yy.ParamValue({param:$$[$0]});break;case 258:if(typeof yy.question=="undefined")yy.question=0;this.$=new yy.ParamValue({param:yy.question++});break;case 259:if(typeof yy.question=="undefined")yy.question=0;this.$=new yy.ParamValue({param:yy.question++,array:true});break;case 260:this.$=new yy.CaseValue({expression:$$[$0-3],whens:$$[$0-2],elses:$$[$0-1]});break;case 261:this.$=new yy.CaseValue({whens:$$[$0-2],elses:$$[$0-1]});
-break;case 262:case 536:case 537:this.$=$$[$0-1];this.$.push($$[$0]);break;case 264:this.$={when:$$[$0-2],then:$$[$0]};break;case 267:this.$=new yy.Op({left:$$[$0-2],op:"LIKE",right:$$[$0]});break;case 268:this.$=new yy.Op({left:$$[$0-2],op:"NOT LIKE",right:$$[$0]});break;case 269:this.$=new yy.Op({left:$$[$0-2],op:"+",right:$$[$0]});break;case 270:this.$=new yy.Op({left:$$[$0-2],op:"-",right:$$[$0]});break;case 271:this.$=new yy.Op({left:$$[$0-2],op:"*",right:$$[$0]});break;case 272:this.$=new yy.Op({left:$$[$0-2],op:"/",right:$$[$0]});break;case 273:this.$=new yy.Op({left:$$[$0-2],op:"%",right:$$[$0]});break;case 274:this.$=new yy.Op({left:$$[$0-2],op:"^",right:$$[$0]});break;case 275:case 276:case 278:this.$=new yy.Op({left:$$[$0-2],op:"->",right:$$[$0]});break;case 277:this.$=new yy.Op({left:$$[$0-4],op:"->",right:$$[$0-1]});break;case 279:this.$=new yy.Op({left:$$[$0-2],op:">",right:$$[$0]});break;case 280:this.$=new yy.Op({left:$$[$0-2],op:">=",right:$$[$0]});break;case 281:this.$=new yy.Op({left:$$[$0-2],op:"<",right:$$[$0]});break;case 282:this.$=new yy.Op({left:$$[$0-2],op:"<=",right:$$[$0]});break;case 283:this.$=new yy.Op({left:$$[$0-2],op:"=",right:$$[$0]});break;case 284:this.$=new yy.Op({left:$$[$0-2],op:"==",right:$$[$0]});break;case 285:this.$=new yy.Op({left:$$[$0-2],op:"===",right:$$[$0]});break;case 286:this.$=new yy.Op({left:$$[$0-2],op:"!=",right:$$[$0]});break;case 287:this.$=new yy.Op({left:$$[$0-2],op:"!==",right:$$[$0]});break;case 288:this.$=new yy.Op({left:$$[$0-2],op:"!===",right:$$[$0]});break;case 289:if(!yy.queries)yy.queries=[];this.$=new yy.Op({left:$$[$0-5],op:$$[$0-4],allsome:$$[$0-3],right:$$[$0-1],queriesidx:yy.queries.length});yy.queries.push($$[$0-1]);break;case 290:this.$=new yy.Op({left:$$[$0-5],op:$$[$0-4],allsome:$$[$0-3],right:$$[$0-1]});break;case 291:this.$=new yy.Op({left:$$[$0-2],op:"AND",right:$$[$0]});break;case 292:this.$=new yy.Op({left:$$[$0-2],op:"OR",right:$$[$0]});break;case 293:this.$=new yy.UniOp({op:"NOT",right:$$[$0]});break;case 294:this.$=new yy.UniOp({op:"-",right:$$[$0]});break;case 295:this.$=new yy.UniOp({op:"+",right:$$[$0]});break;case 296:this.$=new yy.UniOp({right:$$[$0-1]});break;case 297:if(!yy.queries)yy.queries=[];this.$=new yy.Op({left:$$[$0-4],op:"IN",right:$$[$0-1],queriesidx:yy.queries.length});yy.queries.push($$[$0-1]);break;case 298:if(!yy.queries)yy.queries=[];this.$=new yy.Op({left:$$[$0-5],op:"NOT IN",right:$$[$0-1],queriesidx:yy.queries.length});yy.queries.push($$[$0-1]);break;case 299:this.$=new yy.Op({left:$$[$0-4],op:"IN",right:$$[$0-1]});break;case 300:this.$=new yy.Op({left:$$[$0-5],op:"NOT IN",right:$$[$0-1]});break;case 301:this.$=new yy.Op({left:$$[$0-3],op:"IN",right:[]});break;case 302:this.$=new yy.Op({left:$$[$0-4],op:"NOT IN",right:[]});break;case 303:this.$=new yy.Op({left:$$[$0-2],op:"IN",right:$$[$0]});break;case 304:this.$=new yy.Op({left:$$[$0-3],op:"NOT IN",right:$$[$0]});break;case 305:this.$=new yy.Op({left:$$[$0-2],op:"BETWEEN",right:$$[$0]});break;case 306:this.$=new yy.Op({left:$$[$0-2],op:"NOT BETWEEN",right:$$[$0]});break;case 307:this.$=new yy.Op({op:"IS",left:$$[$0-2],right:$$[$0]});break;case 308:this.$=new yy.Convert({expression:$$[$0-2]});yy.extend(this.$,$$[$0]);break;case 309:case 310:this.$=$$[$0];break;case 311:this.$=$$[$0-1];break;case 318:this.$="ALL";break;case 319:this.$="SOME";break;case 320:this.$="ANY";break;case 321:this.$=new yy.Update({table:$$[$0-4],columns:$$[$0-2],where:$$[$0]});break;case 322:this.$=new yy.Update({table:$$[$0-2],columns:$$[$0]});break;case 325:this.$=new yy.SetColumn({columnid:$$[$0-2],expression:$$[$0]});break;case 326:this.$=new yy.Delete({table:$$[$0-2],where:$$[$0]});break;case 327:this.$=new yy.Delete({table:$$[$0]});break;case 328:this.$=new yy.Insert({into:$$[$0-2],values:$$[$0]});break;case 329:this.$=new yy.Insert({into:$$[$0-2],"default":true});break;case 330:this.$=new yy.Insert({into:$$[$0-5],columns:$$[$0-3],values:$$[$0]});break;case 331:this.$=new yy.Insert({into:$$[$0-1],select:$$[$0]});break;case 332:this.$=new yy.Insert({into:$$[$0-4],columns:$$[$0-2],select:$$[$0]});break;case 335:this.$=[$$[$0-1]];break;case 338:this.$=$$[$0-4];$$[$0-4].push($$[$0-1]);break;case 339:case 340:case 342:case 350:this.$=$$[$0-2];$$[$0-2].push($$[$0]);break;case 351:this.$=new yy.CreateTable({table:$$[$0-4]});yy.extend(this.$,$$[$0-5]);yy.extend(this.$,$$[$0-2]);break;case 352:this.$=new yy.CreateTable({table:$$[$0]});break;case 362:case 363:this.$={temporary:true};break;case 365:this.$={ifnotexists:true};break;case 366:this.$={columns:$$[$0-2],constraints:$$[$0]};break;case 367:this.$={columns:$$[$0]};break;case 368:this.$={as:$$[$0]};break;case 369:case 392:this.$=[$$[$0]];break;case 370:case 393:case 496:case 501:case 521:case 525:$$[$0-2].push($$[$0]);this.$=$$[$0-2];break;case 371:case 372:case 373:case 374:case 375:$$[$0].constraintid=$$[$0-1];this.$=$$[$0];break;case 378:this.$={type:"CHECK",expression:$$[$0-1]};break;case 379:this.$={type:"PRIMARY KEY",columns:$$[$0-1]};break;case 380:this.$={type:"FOREIGN KEY",columns:$$[$0-7],fktableid:$$[$0-4],fkcolumns:$$[$0-2]};break;case 394:this.$=new yy.ColumnDef({columnid:$$[$0-2]});yy.extend(this.$,$$[$0-1]);yy.extend(this.$,$$[$0]);break;case 395:this.$=new yy.ColumnDef({columnid:$$[$0-1]});yy.extend(this.$,$$[$0]);break;case 396:this.$=new yy.ColumnDef({columnid:$$[$0],dbtypeid:""});break;case 397:this.$={dbtypeid:$$[$0-5],dbsize:+$$[$0-3],dbprecision:+$$[$0-1]};break;case 398:this.$={dbtypeid:$$[$0-3],dbsize:+$$[$0-1]};break;case 399:this.$={dbtypeid:$$[$0]};break;case 400:this.$={dbtypeid:"ENUM",enumvalues:$$[$0-1]};break;case 401:this.$=undefined;break;case 403:yy.extend($$[$0-1],$$[$0]);this.$=$$[$0-1];break;case 405:this.$={primarykey:true};break;case 406:case 407:this.$={foreignkey:{tableid:$$[$0-3],columnid:$$[$0-1]}};break;case 408:this.$={auto_increment:true};break;case 409:this.$={identity:[$$[$0-3],$$[$0-1]]};break;case 410:this.$={identity:[1,1]};break;case 411:this.$={"default":$$[$0]};break;case 412:this.$={"null":true};break;case 413:this.$={notnull:true};break;case 414:this.$=$$[$0];break;case 415:this.$=new yy.DropTable({table:$$[$0]});yy.extend(this.$,$$[$0-1]);break;case 417:this.$={ifexists:true};break;case 418:this.$=new yy.AlterTable({table:$$[$0-3],renameto:$$[$0]});break;case 419:this.$=new yy.AlterTable({table:$$[$0-3],addcolumn:$$[$0]});break;case 420:this.$=new yy.AlterTable({table:$$[$0-3],modifycolumn:$$[$0]});break;case 421:this.$=new yy.AlterTable({table:$$[$0-5],renamecolumn:$$[$0-2],to:$$[$0]});break;case 422:this.$=new yy.AlterTable({table:$$[$0-3],dropcolumn:$$[$0]});break;case 423:this.$=new yy.AlterTable({table:$$[$0-2],renameto:$$[$0]});break;case 424:this.$=new yy.AttachDatabase({databaseid:$$[$0],engineid:$$[$0-2].toUpperCase()});break;case 425:this.$=new yy.AttachDatabase({databaseid:$$[$0-3],engineid:$$[$0-5].toUpperCase(),args:$$[$0-1]});break;case 426:this.$=new yy.AttachDatabase({databaseid:$$[$0-2],engineid:$$[$0-4].toUpperCase(),as:$$[$0]});break;case 427:this.$=new yy.AttachDatabase({databaseid:$$[$0-5],engineid:$$[$0-7].toUpperCase(),as:$$[$0],args:$$[$0-3]});break;case 428:this.$=new yy.DetachDatabase({databaseid:$$[$0]});break;case 429:this.$=new yy.CreateDatabase({databaseid:$$[$0]});yy.extend(this.$,$$[$0]);break;case 430:this.$=new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(),databaseid:$$[$0-1],as:$$[$0]});yy.extend(this.$,$$[$0-2]);break;case 431:this.$=new yy.CreateDatabase({engineid:$$[$0-7].toUpperCase(),databaseid:$$[$0-4],args:$$[$0-2],as:$$[$0]});yy.extend(this.$,$$[$0-5]);break;case 432:this.$=new yy.CreateDatabase({engineid:$$[$0-4].toUpperCase(),as:$$[$0],args:[$$[$0-1]]});yy.extend(this.$,$$[$0-2]);break;case 433:this.$=undefined;break;case 434:case 467:case 485:case 488:case 505:this.$=$$[$0-1];break;case 435:case 436:this.$=new yy.UseDatabase({databaseid:$$[$0]});break;case 437:this.$=new yy.DropDatabase({databaseid:$$[$0]});yy.extend(this.$,$$[$0-1]);break;case 438:case 439:this.$=new yy.DropDatabase({databaseid:$$[$0],engineid:$$[$0-3].toUpperCase()});yy.extend(this.$,$$[$0-1]);break;case 440:this.$=new yy.CreateIndex({indexid:$$[$0-5],table:$$[$0-3],columns:$$[$0-1]});break;case 441:this.$=new yy.CreateIndex({indexid:$$[$0-5],table:$$[$0-3],columns:$$[$0-1],unique:true});break;case 442:this.$=new yy.DropIndex({indexid:$$[$0]});break;case 443:this.$=new yy.ShowDatabases;break;case 444:this.$=new yy.ShowDatabases({like:$$[$0]});break;case 445:this.$=new yy.ShowDatabases({engineid:$$[$0-1].toUpperCase()});break;case 446:this.$=new yy.ShowDatabases({engineid:$$[$0-3].toUpperCase(),like:$$[$0]});break;case 447:this.$=new yy.ShowTables;break;case 448:this.$=new yy.ShowTables({like:$$[$0]});break;case 449:this.$=new yy.ShowTables({databaseid:$$[$0]});break;case 450:this.$=new yy.ShowTables({like:$$[$0],databaseid:$$[$0-2]});break;case 451:this.$=new yy.ShowColumns({table:$$[$0]});break;case 452:this.$=new yy.ShowColumns({table:$$[$0-2],databaseid:$$[$0]});break;case 453:this.$=new yy.ShowIndex({table:$$[$0]});break;case 454:this.$=new yy.ShowIndex({table:$$[$0-2],databaseid:$$[$0]});break;case 455:this.$=new yy.ShowCreateTable({table:$$[$0]});break;case 456:this.$=new yy.ShowCreateTable({table:$$[$0-2],databaseid:$$[$0]});break;case 457:this.$=new yy.CreateTable({table:$$[$0-5],view:true,select:$$[$0],viewcolumns:$$[$0-3]});yy.extend(this.$,$$[$0-6]);break;case 458:this.$=new yy.CreateTable({table:$$[$0-2],view:true,select:$$[$0]});break;case 459:this.$=new yy.DropTable({table:$$[$0],view:true});yy.extend(this.$,$$[$0-1]);break;case 460:this.$=new yy.Help({subject:$$[$0].value.toUpperCase()});break;case 461:this.$=new yy.Help;break;case 462:this.$=new yy.ExpressionStatement({expression:$$[$0]});break;case 463:this.$=new yy.Source({url:$$[$0].value});break;case 464:this.$=new yy.Assert({value:$$[$0]});break;case 465:this.$=new yy.Assert({value:$$[$0].value});break;case 466:this.$=new yy.Assert({value:$$[$0],message:$$[$0-2]});break;case 468:case 479:case 481:this.$=$$[$0].value;break;case 469:case 477:this.$=+$$[$0].value;break;case 470:this.$=!!$$[$0].value;break;case 478:this.$=""+$$[$0].value;break;case 484:this.$=$$[$0-1];break;case 486:case 489:this.$=$$[$0-2];break;case 487:this.$={};break;case 490:this.$=[];break;case 491:yy.extend($$[$0-2],$$[$0]);this.$=$$[$0-2];break;case 493:this.$={};this.$[$$[$0-2].substr(1,$$[$0-2].length-2)]=$$[$0];break;case 494:case 495:this.$={};this.$[$$[$0-2]]=$$[$0];break;case 498:this.$=new yy.SetVariable({variable:$$[$0-1].toLowerCase(),value:$$[$0]});break;case 499:this.$=new yy.SetVariable({variable:$$[$0-2],expression:$$[$0]});break;case 500:this.$=new yy.SetVariable({variable:$$[$0-3],props:$$[$0-2],expression:$$[$0]});break;case 506:this.$=true;break;case 507:this.$=false;break;case 508:this.$=new yy.CommitTransaction;break;case 509:this.$=new yy.RollbackTransaction;break;case 510:this.$=new yy.BeginTransaction;break;case 511:this.$=new yy.If({expression:$$[$0-2],thenstat:$$[$0-1],elsestat:$$[$0]});if($$[$0-1].exists)this.$.exists=$$[$0-1].exists;if($$[$0-1].queries)this.$.queries=$$[$0-1].queries;break;case 512:this.$=new yy.If({expression:$$[$0-1],thenstat:$$[$0]});break;case 513:this.$=$$[$0];break;case 514:this.$=new yy.While({expression:$$[$0-1],loopstat:$$[$0]});if($$[$0].exists)this.$.exists=$$[$0].exists;if($$[$0].queries)this.$.queries=$$[$0].queries;break;case 515:this.$=new yy.Continue;break;case 516:this.$=new yy.Break;break;case 517:this.$=new yy.BeginEnd({statements:$$[$0-1]});break;case 518:case 519:this.$=new yy.Print({statement:$$[$0]});break;case 520:this.$=new yy.Require({paths:$$[$0]});break;case 523:this.$=new yy.Declare({declares:$$[$0]});break;case 526:this.$={variable:$$[$0-1]};yy.extend(this.$,$$[$0]);break;case 527:this.$={variable:$$[$0-2]};yy.extend(this.$,$$[$0]);break;case 528:this.$={variable:$$[$0-3],expression:$$[$0]};yy.extend(this.$,$$[$0-2]);break;case 529:this.$={variable:$$[$0-4],expression:$$[$0]};yy.extend(this.$,$$[$0-2]);break;case 530:this.$=new yy.TruncateTable({table:$$[$0]});break;case 531:this.$=new yy.Merge;yy.extend(this.$,$$[$0-4]);yy.extend(this.$,$$[$0-3]);yy.extend(this.$,$$[$0-2]);yy.extend(this.$,{matches:$$[$0-1]});yy.extend(this.$,$$[$0]);break;case 532:case 533:this.$={into:$$[$0]};break;case 535:this.$={on:$$[$0]};break;case 540:this.$={matched:true,action:$$[$0]};break;case 541:this.$={matched:true,expr:$$[$0-2],action:$$[$0]};break;case 542:this.$={"delete":true};break;case 543:this.$={update:$$[$0]};break;case 544:case 545:this.$={matched:false,bytarget:true,action:$$[$0]};break;case 546:case 547:this.$={matched:false,bytarget:true,expr:$$[$0-2],action:$$[$0]};break;case 548:this.$={matched:false,bysource:true,action:$$[$0]};break;case 549:this.$={matched:false,bysource:true,expr:$$[$0-2],action:$$[$0]};break;case 550:this.$={insert:true,values:$$[$0]};break;case 551:this.$={insert:true,values:$$[$0],columns:$$[$0-3]};break;case 552:this.$={insert:true,defaultvalues:true};break;case 553:this.$={insert:true,defaultvalues:true,columns:$$[$0-3]};break;case 555:this.$={output:{columns:$$[$0]}};break;case 556:this.$={output:{columns:$$[$0-3],intovar:$$[$0]}};break;case 557:this.$={output:{columns:$$[$0-2],intotable:$$[$0]}};break;case 558:this.$={output:{columns:$$[$0-5],intotable:$$[$0-3],intocolumns:$$[$0-1]}};break}},table:[o([8,9,11],$V0,{6:1,7:2,10:3,12:4,16:5,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:20,31:21,32:22,33:23,34:24,35:25,36:26,37:27,38:28,39:29,40:30,41:31,42:32,43:33,44:34,46:36,47:37,48:38,49:39,50:40,51:41,52:42,53:43,54:44,55:45,56:46,57:47,58:48,66:59,74:79,13:$V1,45:$V2,59:$V3,80:$V4,165:$V5,237:$V6,238:$V7,241:$V8,242:$V9,250:$Va,263:$Vb,292:$Vc,294:$Vd,295:$Ve,299:$Vf,301:$Vg,303:$Vh,304:$Vi,309:$Vj,311:$Vk,312:$Vl,328:$Vm,330:$Vn,331:$Vo,333:$Vp,334:$Vq,335:$Vr,336:$Vs,337:$Vt,339:$Vu,342:$Vv,343:$Vw}),{1:[3]},{8:[1,81],9:$Vx,11:$Vy},o($Vz,[2,6]),o($Vz,[2,7]),o($VA,[2,10]),o($Vz,$V0,{16:5,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:20,31:21,32:22,33:23,34:24,35:25,36:26,37:27,38:28,39:29,40:30,41:31,42:32,43:33,44:34,46:36,47:37,48:38,49:39,50:40,51:41,52:42,53:43,54:44,55:45,56:46,57:47,58:48,66:59,74:79,10:84,14:[1,85],45:$V2,59:$V3,80:$V4,165:$V5,237:$V6,238:$V7,241:$V8,242:$V9,250:$Va,263:$Vb,292:$Vc,294:$Vd,295:$Ve,299:$Vf,301:$Vg,303:$Vh,304:$Vi,309:$Vj,311:$Vk,312:$Vl,328:$Vm,330:$Vn,331:$Vo,333:$Vp,334:$Vq,335:$Vr,336:$Vs,337:$Vt,339:$Vu,342:$Vv,343:$Vw}),o($VA,[2,12]),o($VA,[2,13]),o($VA,[2,14]),o($VA,[2,15]),o($VA,[2,16]),o($VA,[2,17]),o($VA,[2,18]),o($VA,[2,19]),o($VA,[2,20]),o($VA,[2,21]),o($VA,[2,22]),o($VA,[2,23]),o($VA,[2,24]),o($VA,[2,25]),o($VA,[2,26]),o($VA,[2,27]),o($VA,[2,28]),o($VA,[2,29]),o($VA,[2,30]),o($VA,[2,31]),o($VA,[2,32]),o($VA,[2,33]),o($VA,[2,34]),o($VA,[2,35]),o($VA,[2,36]),o($VA,[2,37]),o($VA,[2,38]),o($VA,[2,39]),o($VA,[2,40]),o($VA,[2,41]),o($VA,[2,42]),o($VA,[2,43]),o($VA,[2,44]),o($VA,[2,45]),o($VA,[2,46]),o($VA,[2,47]),o($VA,[2,48]),o($VA,[2,49]),o($VA,[2,50]),o($VA,[2,51]),o($VA,[2,52]),o($VA,[2,53]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:86,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{251:[1,141]},{3:142,4:$VB,5:$VC},{3:144,4:$VB,5:$VC,78:[1,146],86:[1,145],251:[1,147],300:[1,143],308:[1,148]},{192:$V71,340:149,341:150},{97:[1,152]},{300:[1,153]},{3:155,4:$VB,5:$VC,86:[1,156],251:[1,157],300:[1,154],308:[1,158]},o($V81,[2,333],{243:159,91:[1,160]}),{251:[1,161]},o($V91,[2,75],{67:162,91:[1,163]}),{3:173,4:$VB,5:$VC,64:$Va1,91:[1,166],92:168,93:170,94:169,95:171,96:$Vb1,99:165,105:172,192:$Vc1,194:$VZ,195:$V_,196:$V$,197:$V01,344:164},{3:178,4:$VB,5:$VC,60:176,62:177},{3:182,4:$VB,5:$VC,86:[1,183],250:[1,179],305:[1,181],306:[1,184],307:[1,180]},{251:[1,185]},o([9,11,201],$V0,{10:3,12:4,16:5,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:20,31:21,32:22,33:23,34:24,35:25,36:26,37:27,38:28,39:29,40:30,41:31,42:32,43:33,44:34,46:36,47:37,48:38,49:39,50:40,51:41,52:42,53:43,54:44,55:45,56:46,57:47,58:48,66:59,74:79,7:187,13:$V1,45:$V2,59:$V3,80:$V4,165:$V5,237:$V6,238:$V7,241:$V8,242:$V9,250:$Va,263:$Vb,292:$Vc,294:$Vd,295:$Ve,299:$Vf,301:$Vg,303:$Vh,304:$Vi,309:$Vj,311:$Vk,312:$Vl,328:$Vm,329:[1,186],330:$Vn,331:$Vo,333:$Vp,334:$Vq,335:$Vr,336:$Vs,337:$Vt,339:$Vu,342:$Vv,343:$Vw}),{329:[1,188]},{329:[1,189]},{3:191,4:$VB,5:$VC,300:[1,190]},{3:193,4:$VB,5:$VC,92:192},o($VA,[2,461],{152:194,96:$VE,190:$VV}),o($Vd1,[2,212]),{96:$VE,152:195,190:$VV},{3:207,4:$VB,5:$VC,89:200,93:205,94:204,96:[1,198],151:$VF,152:201,158:202,159:203,163:196,170:197,171:$Ve1,188:$VT,189:$VU,190:$VV,191:$VW,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:208,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VA,[2,515]),o($VA,[2,516]),{3:106,4:$VB,5:$VC,33:209,49:104,64:$VD,66:59,74:79,80:$V4,89:92,93:88,94:96,95:97,96:$VE,121:211,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,310:210,313:126,314:$V51,318:$V61},{96:$VE,152:213,190:$VV,338:212},{3:214,4:$VB,5:$VC,192:[1,215]},o($Vg1,$Vh1,{76:219,75:[1,216],78:[1,217],79:[1,218],88:$Vi1}),o($Vj1,[2,63],{81:[1,221],82:[1,222],83:[1,223],84:[1,224],85:[1,225],86:[1,226],87:[1,227]}),{1:[2,3]},o($Vz,$V0,{16:5,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:20,31:21,32:22,33:23,34:24,35:25,36:26,37:27,38:28,39:29,40:30,41:31,42:32,43:33,44:34,46:36,47:37,48:38,49:39,50:40,51:41,52:42,53:43,54:44,55:45,56:46,57:47,58:48,66:59,74:79,10:228,45:$V2,59:$V3,80:$V4,165:$V5,237:$V6,238:$V7,241:$V8,242:$V9,250:$Va,263:$Vb,292:$Vc,294:$Vd,295:$Ve,299:$Vf,301:$Vg,303:$Vh,304:$Vi,309:$Vj,311:$Vk,312:$Vl,328:$Vm,330:$Vn,331:$Vo,333:$Vp,334:$Vq,335:$Vr,336:$Vs,337:$Vt,339:$Vu,342:$Vv,343:$Vw}),o($Vz,$V0,{16:5,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:20,31:21,32:22,33:23,34:24,35:25,36:26,37:27,38:28,39:29,40:30,41:31,42:32,43:33,44:34,46:36,47:37,48:38,49:39,50:40,51:41,52:42,53:43,54:44,55:45,56:46,57:47,58:48,66:59,74:79,10:229,45:$V2,59:$V3,80:$V4,165:$V5,237:$V6,238:$V7,241:$V8,242:$V9,250:$Va,263:$Vb,292:$Vc,294:$Vd,295:$Ve,299:$Vf,301:$Vg,303:$Vh,304:$Vi,309:$Vj,311:$Vk,312:$Vl,328:$Vm,330:$Vn,331:$Vo,333:$Vp,334:$Vq,335:$Vr,336:$Vs,337:$Vt,339:$Vu,342:$Vv,343:$Vw}),o($Vz,[2,8]),{15:[1,230]},o($VA,$V0,{16:5,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:20,31:21,32:22,33:23,34:24,35:25,36:26,37:27,38:28,39:29,40:30,41:31,42:32,43:33,44:34,46:36,47:37,48:38,49:39,50:40,51:41,52:42,53:43,54:44,55:45,56:46,57:47,58:48,66:59,74:79,10:231,224:251,45:$V2,59:$V3,80:$V4,154:$Vk1,165:$V5,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1,237:$V6,238:$V7,241:$V8,242:$V9,250:$Va,263:$Vb,292:$Vc,294:$Vd,295:$Ve,299:$Vf,301:$Vg,303:$Vh,304:$Vi,309:$Vj,311:$Vk,312:$Vl,328:$Vm,330:$Vn,331:$Vo,333:$Vp,334:$Vq,335:$Vr,336:$Vs,337:$Vt,339:$Vu,342:$Vv,343:$Vw}),o($Vd1,[2,194]),o($Vd1,[2,195]),o($Vd1,[2,196]),o($Vd1,[2,197]),o($Vd1,[2,198]),o($Vd1,[2,199]),o($Vd1,[2,200]),o($Vd1,[2,201]),o($Vd1,[2,202]),o($Vd1,[2,203]),o($Vd1,[2,204]),o($Vd1,[2,205]),o($Vd1,[2,206]),o($Vd1,[2,207]),o($Vd1,[2,208]),o($Vd1,[2,209]),{3:106,4:$VB,5:$VC,33:260,49:104,64:$VD,66:59,74:79,80:$V4,89:92,93:88,94:96,95:97,96:$VE,121:261,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vd1,[2,211]),{64:[1,262]},o($Vd1,$VL1,{64:$VM1,106:[1,264]}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:265,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:266,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:267,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vd1,[2,189]),o([4,5,8,9,11,45,59,61,63,64,65,80,90,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,146,149,150,151,154,165,166,167,169,178,179,180,181,182,183,184,185,186,188,189,190,191,192,193,194,195,196,197,198,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,246,250,257,258,259,263,274,275,278,279,291,292,294,295,299,301,303,304,309,311,312,314,318,320,322,328,330,331,333,334,335,336,337,339,342,343,355],[2,248]),o($VN1,[2,249]),o($VN1,[2,250]),o($VN1,$VO1),o($VN1,[2,252]),o($VN1,[2,253]),{3:268,4:$VB,5:$VC},{3:269,4:$VB,5:$VC},o($VP1,[2,258]),o($VP1,[2,259]),{3:270,4:$VB,5:$VC,64:$VQ1,89:273,94:275,96:$VE,151:$VF,152:272,158:274,188:$VT,189:$VU,190:$VV,194:$VZ,195:$V_,196:$V$,197:$V01,313:276,318:$V61},{64:[1,277]},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:278,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,199:279,202:280,203:$VR1,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{64:[1,282]},{64:[1,283]},o($VS1,[2,472]),{3:298,4:$VB,5:$VC,64:$VT1,89:290,93:296,94:295,96:$VE,151:$VF,152:291,155:293,158:292,159:294,163:288,188:$VT,189:$VU,190:$VV,191:$VW,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,313:126,314:$V51,315:284,316:287,317:289,318:$V61,321:285,322:[1,286]},{3:299,4:$VB,5:$VC,93:300},{64:[2,235]},{64:[2,236]},{64:[2,237]},{64:[2,238]},{64:[2,239]},{64:[2,240]},{64:[2,241]},{64:[2,242]},{64:[2,243]},o($VU1,[2,1]),o($VU1,[2,2]),{3:306,4:$VB,5:$VC,96:$VV1,151:$VW1,319:301,320:[1,302],323:303},{3:193,4:$VB,5:$VC,92:307},{300:[1,308]},o($V81,$VX1,{252:309,263:$VY1}),{300:[1,311]},{3:312,4:$VB,5:$VC},{86:[1,313]},o($V81,$VX1,{252:314,263:$VY1}),o($V81,$VX1,{252:315,263:$VY1}),o($VA,[2,523],{61:[1,316]}),o($VZ1,[2,524]),{3:317,4:$VB,5:$VC},{3:193,4:$VB,5:$VC,92:318},{3:319,4:$VB,5:$VC},o($V81,$V_1,{293:320,263:$V$1}),{300:[1,322]},{3:323,4:$VB,5:$VC},o($V81,$V_1,{293:324,263:$V$1}),o($V81,$V_1,{293:325,263:$V$1}),{3:193,4:$VB,5:$VC,92:326},o($V81,[2,334]),{3:193,4:$VB,5:$VC,92:327},o($V02,[2,83],{68:328,97:[1,329]}),{3:173,4:$VB,5:$VC,92:330,93:331,94:332,95:333,96:[1,334],192:$Vc1,194:$VZ,195:$V_,196:$V$,197:$V01},{122:[1,336],345:335},{122:[2,532]},{3:173,4:$VB,5:$VC,64:$Va1,92:168,93:170,94:169,95:171,96:$Vb1,99:337,105:172,192:$Vc1,194:$VZ,195:$V_,196:$V$,197:$V01},{33:338,66:59,74:79,80:$V4},o($V12,[2,95],{3:339,4:$VB,5:$VC,63:[1,340]}),o($V12,[2,98],{3:341,4:$VB,5:$VC,63:[1,342]}),o($V12,[2,99],{3:343,4:$VB,5:$VC,63:[1,344]}),o($V12,[2,102],{3:345,4:$VB,5:$VC,63:[1,346]}),o($V12,[2,105],{3:347,4:$VB,5:$VC,63:[1,348]}),o([4,5,8,9,11,61,63,65,97,102,104,112,113,114,115,116,117,118,119,120,122,124,125,135,136,137,138,144,201,205],$V22,{64:$VM1,106:$V32}),{3:270,4:$VB,5:$VC},o([4,5,8,9,11,61,63,65,102,104,112,113,114,115,116,117,118,119,120,122,124,125,135,136,137,138,144,201,205],[2,108]),{33:350,61:[1,351],66:59,74:79,80:$V4},o($V42,[2,56]),{63:[1,352]},{251:[1,353]},{97:[1,354]},o($VA,[2,443],{206:[1,355]}),{305:[1,356]},{97:[1,357]},o($VA,[2,447],{97:[1,359],206:[1,358]}),{3:193,4:$VB,5:$VC,92:360},o($VA,[2,510]),{9:$Vx,11:$Vy,201:[1,361]},o($VA,[2,508]),o($VA,[2,509]),{3:362,4:$VB,5:$VC},o($VA,[2,436]),{238:[1,363]},o([8,9,11,63,64,80,97,124,201,205,238,244,246,292,295,296,297,298],$V22,{106:$V32}),o($VA,[2,460]),o($VA,[2,463]),o($VA,[2,464]),o($VA,[2,465]),o($VA,$VO1,{61:[1,364]}),{64:$VQ1,89:273,94:275,96:$VE,151:$VF,152:272,158:274,188:$VT,189:$VU,190:$VV,194:$VZ,195:$V_,196:$V$,197:$V01,313:276,318:$V61},o($V52,[2,219]),o($V52,[2,220]),o($V52,[2,221]),o($V52,[2,222]),o($V52,[2,223]),o($V52,[2,224]),o($V52,[2,225]),{64:$VM1},o($VA,$V0,{16:5,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:20,31:21,32:22,33:23,34:24,35:25,36:26,37:27,38:28,39:29,40:30,41:31,42:32,43:33,44:34,46:36,47:37,48:38,49:39,50:40,51:41,52:42,53:43,54:44,55:45,56:46,57:47,58:48,66:59,74:79,224:251,10:365,45:$V2,59:$V3,80:$V4,154:$Vk1,165:$V5,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1,237:$V6,238:$V7,241:$V8,242:$V9,250:$Va,263:$Vb,292:$Vc,294:$Vd,295:$Ve,299:$Vf,301:$Vg,303:$Vh,304:$Vi,309:$Vj,311:$Vk,312:$Vl,328:$Vm,330:$Vn,331:$Vo,333:$Vp,334:$Vq,335:$Vr,336:$Vs,337:$Vt,339:$Vu,342:$Vv,343:$Vw}),o($VA,[2,518]),o($VA,[2,519]),o($VA,[2,462],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($VA,[2,520],{61:[1,366]}),o($VZ1,[2,522]),{120:[1,368],324:367,327:[1,369]},{3:370,4:$VB,5:$VC},o($Vg1,$Vh1,{76:371,88:$Vi1}),o($Vg1,$Vh1,{76:372,88:$Vi1}),o($Vg1,$Vh1,{76:373,88:$Vi1}),{3:106,4:$VB,5:$VC,49:104,64:$VD,77:374,89:92,93:88,94:96,95:97,96:$VE,121:376,147:375,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{64:[1,378],89:377,151:$VF},o($Vj1,[2,64]),o($Vj1,[2,65]),o($Vj1,[2,66]),o($Vj1,[2,67]),o($Vj1,[2,68]),o($Vj1,[2,69]),o($Vj1,[2,70]),o($Vz,[2,4]),o($Vz,[2,5]),o($Vz,$V0,{16:5,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:20,31:21,32:22,33:23,34:24,35:25,36:26,37:27,38:28,39:29,40:30,41:31,42:32,43:33,44:34,46:36,47:37,48:38,49:39,50:40,51:41,52:42,53:43,54:44,55:45,56:46,57:47,58:48,66:59,74:79,10:379,45:$V2,59:$V3,80:$V4,165:$V5,237:$V6,238:$V7,241:$V8,242:$V9,250:$Va,263:$Vb,292:$Vc,294:$Vd,295:$Ve,299:$Vf,301:$Vg,303:$Vh,304:$Vi,309:$Vj,311:$Vk,312:$Vl,328:$Vm,330:$Vn,331:$Vo,333:$Vp,334:$Vq,335:$Vr,336:$Vs,337:$Vt,339:$Vu,342:$Vv,343:$Vw}),o($Vz,[2,512],{332:380,205:[1,381]}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:382,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:383,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:384,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:385,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:386,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:387,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:388,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:389,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:390,4:$VB,5:$VC,64:[1,392],89:391,93:393,151:$VF},o($V62,[2,312],{156:87,93:88,157:89,155:90,153:91,89:92,158:93,152:94,159:95,94:96,95:97,160:98,161:99,162:100,163:101,164:102,49:104,172:105,3:106,313:126,121:394,4:$VB,5:$VC,64:$VD,96:$VE,151:$VF,154:$VG,165:$V5,166:$VH,167:$VI,169:$VJ,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,314:$V51,318:$V61}),o($V62,[2,313],{156:87,93:88,157:89,155:90,153:91,89:92,158:93,152:94,159:95,94:96,95:97,160:98,161:99,162:100,163:101,164:102,49:104,172:105,3:106,313:126,121:395,4:$VB,5:$VC,64:$VD,96:$VE,151:$VF,154:$VG,165:$V5,166:$VH,167:$VI,169:$VJ,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,314:$V51,318:$V61}),o($V62,[2,314],{156:87,93:88,157:89,155:90,153:91,89:92,158:93,152:94,159:95,94:96,95:97,160:98,161:99,162:100,163:101,164:102,49:104,172:105,3:106,313:126,121:396,4:$VB,5:$VC,64:$VD,96:$VE,151:$VF,154:$VG,165:$V5,166:$VH,167:$VI,169:$VJ,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,314:$V51,318:$V61}),o($V62,[2,315],{156:87,93:88,157:89,155:90,153:91,89:92,158:93,152:94,159:95,94:96,95:97,160:98,161:99,162:100,163:101,164:102,49:104,172:105,3:106,313:126,121:397,4:$VB,5:$VC,64:$VD,96:$VE,151:$VF,154:$VG,165:$V5,166:$VH,167:$VI,169:$VJ,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,314:$V51,318:$V61}),o($V62,[2,316],{156:87,93:88,157:89,155:90,153:91,89:92,158:93,152:94,159:95,94:96,95:97,160:98,161:99,162:100,163:101,164:102,49:104,172:105,3:106,313:126,121:398,4:$VB,5:$VC,64:$VD,96:$VE,151:$VF,154:$VG,165:$V5,166:$VH,167:$VI,169:$VJ,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,314:$V51,318:$V61}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:399,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:400,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($V62,[2,317],{156:87,93:88,157:89,155:90,153:91,89:92,158:93,152:94,159:95,94:96,95:97,160:98,161:99,162:100,163:101,164:102,49:104,172:105,3:106,313:126,121:401,4:$VB,5:$VC,64:$VD,96:$VE,151:$VF,154:$VG,165:$V5,166:$VH,167:$VI,169:$VJ,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,314:$V51,318:$V61}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:402,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:403,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{79:[1,405],225:404,235:[1,406],236:[1,407]},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:408,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:409,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:298,4:$VB,5:$VC,64:[1,410],93:413,155:412,192:$V72,230:411},{229:[1,415]},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:416,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:417,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:418,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{4:$V82,168:419,288:$V92},{65:[1,422]},{65:[1,423],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{3:106,4:$VB,5:$VC,49:104,64:$VD,75:[1,425],79:[1,426],89:92,93:88,94:96,95:97,96:$VE,121:424,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,65:[1,428],89:92,93:88,94:96,95:97,96:$VE,121:429,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,187:427,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:430,4:$VB,5:$VC,81:$Va2,154:[1,432]},o([4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,165,190,201,203,204,205,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],[2,293],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,233:$VJ1}),o($Vb2,[2,294],{224:251,154:$Vk1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1}),o($Vb2,[2,295],{224:251,154:$Vk1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1}),o($VP1,[2,256]),o($VP1,[2,257]),o([4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,120,122,124,125,134,135,136,137,138,141,142,144,149,150,151,154,165,190,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],[2,254]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:433,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VS1,[2,468]),o($VS1,[2,469]),o($VS1,[2,470]),o($VS1,[2,471]),o($VS1,[2,473]),{33:434,66:59,74:79,80:$V4},{154:$Vk1,199:435,202:280,203:$VR1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{200:436,201:$Vc2,202:437,203:$VR1,205:$Vd2},o($Ve2,[2,263]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:439,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:440,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{4:$V82,168:441,288:$V92},o($VS1,[2,474]),{61:[1,443],322:[1,442]},o($VS1,[2,490]),o($Vf2,[2,497]),o($Vg2,[2,475]),o($Vg2,[2,476]),o($Vg2,[2,477]),o($Vg2,[2,478]),o($Vg2,[2,479]),o($Vg2,[2,480]),o($Vg2,[2,481]),o($Vg2,[2,482]),o($Vg2,[2,483]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:444,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VS1,$VL1,{64:$VM1,106:$Vh2}),o($Vd1,[2,213],{64:$VM1}),o($Vd1,[2,214]),{61:[1,447],320:[1,446]},o($VS1,[2,487]),o($Vi2,[2,492]),{195:[1,448]},{195:[1,449]},{195:[1,450]},{292:[1,454],295:[1,451],297:[1,452],298:[1,453]},{3:455,4:$VB,5:$VC},{3:456,4:$VB,5:$VC},{228:[1,457]},o($Vj2,$VX1,{252:458,263:$VY1}),{120:[1,459]},{3:460,4:$VB,5:$VC},{3:193,4:$VB,5:$VC,92:461},{3:193,4:$VB,5:$VC,92:462},{192:$V71,341:463},{4:$V82,63:[1,465],168:464,288:$V92},o($VA,[2,327],{124:[1,466]}),o($VA,[2,428]),{3:467,4:$VB,5:$VC},{193:[1,468]},o($Vj2,$V_1,{293:469,263:$V$1}),o($VA,[2,442]),{3:193,4:$VB,5:$VC,92:470},{3:193,4:$VB,5:$VC,92:471},{33:475,64:[1,474],66:59,74:79,80:$V4,244:[1,472],246:[1,473]},{296:[1,476]},o($Vk2,[2,145],{69:477,124:[1,478]}),{3:173,4:$VB,5:$VC,64:$Va1,92:168,93:170,94:169,95:171,96:$Vb1,98:479,99:480,105:172,192:$Vc1,194:$VZ,195:$V_,196:$V$,197:$V01},o($V91,[2,76]),o($V91,[2,77]),o($V91,[2,78]),o($V91,[2,79]),o($V91,[2,80]),{120:[1,482],346:481},{3:173,4:$VB,5:$VC,64:$Va1,92:168,93:170,94:169,95:171,96:$Vb1,99:483,105:172,192:$Vc1,194:$VZ,195:$V_,196:$V$,197:$V01},{122:[2,533]},{65:[1,484]},o($V12,[2,93]),{3:485,4:$VB,5:$VC},o($V12,[2,96]),{3:486,4:$VB,5:$VC},o($V12,[2,100]),{3:487,4:$VB,5:$VC},o($V12,[2,103]),{3:488,4:$VB,5:$VC},o($V12,[2,106]),{3:489,4:$VB,5:$VC},{3:490,4:$VB,5:$VC},o($VA,[2,54]),{3:178,4:$VB,5:$VC,62:491},{64:[1,492]},{3:193,4:$VB,5:$VC,92:493},{3:193,4:$VB,5:$VC,92:494},{96:$VE,152:495,190:$VV},o($VA,[2,445],{206:[1,496]}),{3:193,4:$VB,5:$VC,92:497},{96:$VE,152:498,190:$VV},{3:499,4:$VB,5:$VC},o($VA,[2,530]),o($VA,[2,517]),o($VA,[2,435]),{3:503,4:$VB,5:$VC,155:502,239:500,240:501},{163:504,192:$Vf1,313:126,314:$V51,318:$V61},o($VA,[2,514]),{96:$VE,152:505,190:$VV},o($VA,[2,498]),o($VA,[2,506]),o($VA,[2,507]),{213:[1,508],218:[1,506],325:507},{3:106,4:$VB,5:$VC,49:104,64:$VD,77:509,89:92,93:88,94:96,95:97,96:$VE,121:376,147:375,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,77:510,89:92,93:88,94:96,95:97,96:$VE,121:376,147:375,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,77:511,89:92,93:88,94:96,95:97,96:$VE,121:376,147:375,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vl2,[2,62],{61:$Vm2}),o($Vn2,$Vo2,{148:513,149:$Vp2,150:$Vq2}),o($Vr2,[2,186],{224:251,3:517,152:519,4:$VB,5:$VC,63:[1,516],96:$VE,151:[1,518],154:$Vk1,190:$VV,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($Vg1,[2,71],{90:[1,520]}),{89:521,151:$VF},o($Vz,[2,9]),o($VA,[2,511]),o($VA,$V0,{16:5,17:7,18:8,19:9,20:10,21:11,22:12,23:13,24:14,25:15,26:16,27:17,28:18,29:19,30:20,31:21,32:22,33:23,34:24,35:25,36:26,37:27,38:28,39:29,40:30,41:31,42:32,43:33,44:34,46:36,47:37,48:38,49:39,50:40,51:41,52:42,53:43,54:44,55:45,56:46,57:47,58:48,66:59,74:79,10:522,45:$V2,59:$V3,80:$V4,165:$V5,237:$V6,238:$V7,241:$V8,242:$V9,250:$Va,263:$Vb,292:$Vc,294:$Vd,295:$Ve,299:$Vf,301:$Vg,303:$Vh,304:$Vi,309:$Vj,311:$Vk,312:$Vl,328:$Vm,330:$Vn,331:$Vo,333:$Vp,334:$Vq,335:$Vr,336:$Vs,337:$Vt,339:$Vu,342:$Vv,343:$Vw}),o($Vs2,[2,267],{224:251,154:$Vk1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1}),o($Vs2,[2,268],{224:251,154:$Vk1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1}),o($Vb2,[2,269],{224:251,154:$Vk1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1}),o($Vb2,[2,270],{224:251,154:$Vk1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1}),o($Vt2,[2,271],{224:251,212:$Vr1,213:$Vs1}),o($Vt2,[2,272],{224:251,212:$Vr1,213:$Vs1}),o($Vt2,[2,273],{224:251,212:$Vr1,213:$Vs1}),o([4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,154,165,190,201,203,204,205,206,207,208,209,210,211,212,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],[2,274],{224:251,213:$Vs1}),o($Vd1,[2,275],{64:$VM1}),o($Vd1,[2,276]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:523,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vd1,[2,278]),o($Vu2,[2,279],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),o($Vu2,[2,280],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),o($Vu2,[2,281],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),o($Vu2,[2,282],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),o($Vu2,[2,283],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),o($Vu2,[2,284],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),o($Vu2,[2,285],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),o($Vu2,[2,286],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),o($Vu2,[2,287],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),o($Vu2,[2,288],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,228:$VF1,229:$VG1,233:$VJ1}),{64:[1,524]},{64:[2,318]},{64:[2,319]},{64:[2,320]},o([4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,165,190,201,203,204,205,226,227,231,232,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],[2,291],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,228:$VF1,229:$VG1,233:$VJ1}),o([4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,165,190,201,203,204,205,227,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],[2,292],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1}),{3:106,4:$VB,5:$VC,33:525,49:104,64:$VD,65:[1,527],66:59,74:79,80:$V4,89:92,93:88,94:96,95:97,96:$VE,121:429,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,187:526,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vd1,[2,303]),o($Vd1,[2,309]),o($Vd1,[2,310]),{64:[1,528]},{3:298,4:$VB,5:$VC,64:[1,529],93:413,155:412,192:$V72,230:530},o($Vv2,[2,305],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,228:$VF1,229:$VG1,233:$VJ1}),o($Vv2,[2,306],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,228:$VF1,229:$VG1,233:$VJ1}),o([4,5,8,9,11,45,59,61,63,65,80,91,96,97,102,104,112,113,114,115,116,117,118,119,124,125,134,135,136,137,138,141,142,144,149,150,151,165,190,201,203,204,205,214,215,216,217,218,219,220,221,222,223,226,227,228,229,231,232,233,234,237,238,241,242,250,263,292,294,295,299,301,303,304,309,311,312,328,330,331,333,334,335,336,337,339,342,343,355],[2,307],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1}),o($Vd1,[2,308]),o($Vw2,[2,399],{64:[1,531]}),{64:[1,532]},o($Vd1,[2,210]),o($Vd1,[2,296]),{65:[1,533],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:534,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:535,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{61:$Vx2,65:[1,536]},o($VP1,[2,245]),o($Vy2,[2,246],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($Vd1,$Vz2,{106:[1,538]}),o($VS1,[2,192]),o($Vd1,[2,188]),{65:[1,539],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{65:[1,540]},{200:541,201:$Vc2,202:437,203:$VR1,205:$Vd2},{201:[1,542]},o($Ve2,[2,262]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:543,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{154:$Vk1,204:[1,544],206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{63:[1,545],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{61:[1,546]},o($VS1,[2,488]),{3:298,4:$VB,5:$VC,64:$VT1,89:290,93:296,94:295,96:$VE,151:$VF,152:291,155:293,158:292,159:294,163:288,188:$VT,189:$VU,190:$VV,191:$VW,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,313:126,314:$V51,316:548,317:289,318:$V61,322:[1,547]},{65:[1,549],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{3:550,4:$VB,5:$VC,81:$Va2},o($VS1,[2,485]),{3:306,4:$VB,5:$VC,96:$VV1,151:$VW1,320:[1,551],323:552},{3:298,4:$VB,5:$VC,64:$VT1,89:290,93:296,94:295,96:$VE,151:$VF,152:291,155:293,158:292,159:294,163:288,188:$VT,189:$VU,190:$VV,191:$VW,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,313:126,314:$V51,316:553,317:289,318:$V61},{3:298,4:$VB,5:$VC,64:$VT1,89:290,93:296,94:295,96:$VE,151:$VF,152:291,155:293,158:292,159:294,163:288,188:$VT,189:$VU,190:$VV,191:$VW,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,313:126,314:$V51,316:554,317:289,318:$V61},{3:298,4:$VB,5:$VC,64:$VT1,89:290,93:296,94:295,96:$VE,151:$VF,152:291,155:293,158:292,159:294,163:288,188:$VT,189:$VU,190:$VV,191:$VW,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,313:126,314:$V51,316:555,317:289,318:$V61},{83:[1,557],296:[1,556]},{83:[1,558]},{83:[1,559]},{83:[1,560]},o($VA,[2,424],{63:[1,562],64:[1,561]}),o($VA,[2,429]),{193:[1,563]},{3:564,4:$VB,5:$VC,96:$VE,152:565,190:$VV},{3:193,4:$VB,5:$VC,92:566},{120:[1,567]},o($VA,[2,352],{64:[1,568]}),{63:[1,570],64:[1,569]},o($VZ1,[2,525]),o($VZ1,[2,526],{218:[1,571]}),{4:$V82,168:572,288:$V92},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:573,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VA,[2,437]),o($Vj2,[2,417]),{3:574,4:$VB,5:$VC,96:$VE,152:575,190:$VV},o($VA,[2,415]),o($VA,[2,459]),{64:$VA2,94:579,163:578,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,245:576,313:126,314:$V51,318:$V61},{244:[1,580]},{3:503,4:$VB,5:$VC,123:581,155:582},o($VA,[2,331]),{3:583,4:$VB,5:$VC},o($VB2,[2,147],{70:584,125:[1,585]}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:586,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($V02,[2,81],{61:[1,587]}),o($VC2,[2,88],{100:588,107:589,101:590,108:591,111:594,102:$VD2,104:$VE2,112:$VF2,113:$VG2,114:$VH2,115:$VI2,116:$VJ2,117:$VK2,118:$VL2,119:$VM2}),{203:$VN2,347:603,349:604,350:605},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:607,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{120:[2,534]},o($V12,[2,92],{3:608,4:$VB,5:$VC,63:[1,609]}),o($V12,[2,94]),o($V12,[2,97]),o($V12,[2,101]),o($V12,[2,104]),o($V12,[2,107]),o([4,5,8,9,11,61,63,64,65,80,97,102,104,112,113,114,115,116,117,118,119,120,122,124,125,135,136,137,138,144,201,205,238,244,246,292,295,296,297,298],[2,109]),o($V42,[2,55]),{33:610,66:59,74:79,80:$V4},o($VA,[2,455],{97:[1,611]}),o($VA,[2,451],{97:[1,612]}),o($VA,[2,444]),{96:$VE,152:613,190:$VV},o($VA,[2,453],{97:[1,614]}),o($VA,[2,448]),o($VA,[2,449],{206:[1,615]}),o($VA,[2,322],{61:$VO2,124:[1,616]}),o($VP2,[2,323]),{218:[1,618]},o([8,9,11,61,65,102,104,112,113,114,115,116,117,118,119,124,125,135,136,137,138,144,201,205,218],$VL1,{106:$Vh2}),o($VA,[2,466]),o($VZ1,[2,521]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:619,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{213:[1,621],218:[1,620]},{3:623,4:$VB,5:$VC,64:$VQ2,151:$VR2,326:622},o($Vl2,[2,59],{61:$Vm2}),o($Vl2,[2,60],{61:$Vm2}),o($Vl2,[2,61],{61:$Vm2}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:376,147:626,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vn2,[2,175]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:627,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:628,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:629,4:$VB,5:$VC,96:$VE,151:[1,630],152:631,190:$VV},o($Vr2,[2,181]),o($Vr2,[2,183]),o($Vr2,[2,185]),o($Vg1,[2,73]),{65:[1,632]},o($VA,[2,513]),{65:[1,633],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{3:106,4:$VB,5:$VC,33:634,49:104,64:$VD,66:59,74:79,80:$V4,89:92,93:88,94:96,95:97,96:$VE,121:429,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,187:635,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{65:[1,636]},{61:$Vx2,65:[1,637]},o($Vd1,[2,301]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:638,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,33:639,49:104,64:$VD,65:[1,641],66:59,74:79,80:$V4,89:92,93:88,94:96,95:97,96:$VE,121:429,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,187:640,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vd1,[2,304]),{151:[1,642]},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:644,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,247:643,313:126,314:$V51,318:$V61},o($Vd1,$VS2,{173:645,174:$VT2}),{65:[1,647],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{65:[1,648],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},o($VP1,[2,244]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:649,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:650,4:$VB,5:$VC,154:[1,651]},o($VS1,[2,467]),o($Vd1,[2,255]),{201:[1,652]},o($Vd1,[2,261]),{154:$Vk1,201:[2,265],206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:653,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{4:$V82,168:654,288:$V92},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:655,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VS1,[2,489]),o($Vf2,[2,496]),o($Vg2,[2,484]),o($VS1,$Vz2,{106:[1,656]}),o($VS1,[2,486]),o($Vi2,[2,491]),o($Vi2,[2,493]),o($Vi2,[2,494]),o($Vi2,[2,495]),{3:657,4:$VB,5:$VC},{3:658,4:$VB,5:$VC},{3:660,4:$VB,5:$VC,285:659},{3:660,4:$VB,5:$VC,285:661},{3:662,4:$VB,5:$VC},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:429,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,187:663,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:664,4:$VB,5:$VC},o($Vj2,[2,365]),o($VA,$VU2,{302:665,63:$VV2,64:[1,666]}),o($VA,$VU2,{302:668,63:$VV2}),{64:[1,669]},{3:193,4:$VB,5:$VC,92:670},{3:660,4:$VB,5:$VC,63:[1,673],253:671,264:672,285:674},{3:503,4:$VB,5:$VC,123:675,155:582},{33:676,66:59,74:79,80:$V4},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:677,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VZ1,[2,527],{218:[1,678]}),o($VA,[2,326],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($VA,[2,438]),o($VA,[2,439]),o($VA,[2,328],{61:$VW2}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:644,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,247:680,313:126,314:$V51,318:$V61},o($VX2,[2,336]),o($VX2,[2,337]),o($VA,[2,329]),{61:$VY2,65:[1,681]},o($VZ2,[2,349]),o($VA,[2,423]),o($V_2,[2,162],{71:683,138:[1,684]}),{126:[1,685]},o($Vk2,[2,146],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),{3:173,4:$VB,5:$VC,64:$Va1,92:168,93:170,94:169,95:171,96:$Vb1,99:686,105:172,192:$Vc1,194:$VZ,195:$V_,196:$V$,197:$V01},o($V02,[2,82],{108:591,111:594,107:687,101:688,102:$VD2,104:$VE2,112:$VF2,113:$VG2,114:$VH2,115:$VI2,116:$VJ2,117:$VK2,118:$VL2,119:$VM2}),o($V$2,[2,113]),o($V$2,[2,114]),{3:173,4:$VB,5:$VC,64:[1,692],92:690,93:693,94:691,95:694,109:689,192:$Vc1,194:$VZ,195:$V_,196:$V$,197:$V01},{103:[1,695],113:$V03},{103:[1,697],113:$V13},o($V23,[2,129]),{102:[1,701],104:[1,700],111:699,113:$VG2,114:$VH2,115:$VI2,116:$VJ2,117:$VK2,118:$VL2,119:$VM2},o($V23,[2,131]),{113:[1,702]},{104:[1,704],113:[1,703]},{104:[1,706],113:[1,705]},{104:[1,707]},{113:[1,708]},{113:[1,709]},o($VA,[2,554],{348:710,349:711,350:712,203:$VN2,355:[1,713]}),o($V33,[2,538]),o($V33,[2,539]),{228:[1,715],351:[1,714]},{154:$Vk1,203:[2,535],206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},o($V12,[2,90]),{3:716,4:$VB,5:$VC},{65:[1,717]},{3:718,4:$VB,5:$VC},{3:719,4:$VB,5:$VC},o($VA,[2,446]),{3:720,4:$VB,5:$VC},{96:$VE,152:721,190:$VV},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:722,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:503,4:$VB,5:$VC,155:502,240:723},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:724,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VA,[2,499],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:725,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:623,4:$VB,5:$VC,64:$VQ2,151:$VR2,326:726},o($V43,[2,502]),o($V43,[2,503]),o($V43,[2,504]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:727,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vn2,$Vo2,{148:728,149:$Vp2,150:$Vq2}),o($Vn2,[2,177],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($Vn2,[2,178],{224:251,149:[1,729],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($Vr2,[2,180]),o($Vr2,[2,182]),o($Vr2,[2,184]),o($Vg1,[2,72]),o($Vd1,[2,277]),{65:[1,730]},{61:$Vx2,65:[1,731]},o($Vd1,[2,297]),o($Vd1,[2,299]),{65:[1,732],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{65:[1,733]},{61:$Vx2,65:[1,734]},o($Vd1,[2,302]),{61:[1,735],65:[1,736]},{61:$V53,65:[1,737]},o($Vy2,[2,341],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($Vd1,[2,226]),{64:[1,739]},o($Vd1,$VS2,{173:740,174:$VT2}),o($Vd1,$VS2,{173:741,174:$VT2}),o($Vy2,[2,247],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($VS1,[2,190]),o($Vd1,[2,187]),o($Vd1,[2,260]),o($Ve2,[2,264],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),{61:[1,743],65:[1,742]},{61:[1,745],65:[1,744],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{3:650,4:$VB,5:$VC},o($VA,[2,418]),{296:[1,746]},o($VA,[2,419]),o($V63,[2,396],{168:747,4:$V82,287:[1,748],288:$V92}),o($VA,[2,420]),o($VA,[2,422]),{61:$Vx2,65:[1,749]},o($VA,[2,426]),o($VA,[2,430]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:429,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,187:750,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:751,4:$VB,5:$VC},o($VA,[2,432]),{3:753,4:$VB,5:$VC,96:$V73,277:752},{64:[1,755]},{65:[1,756]},{61:[1,757],65:[2,367]},{33:758,66:59,74:79,80:$V4},o($Vy2,[2,392]),{61:$VY2,65:[1,759]},o($VA,[2,458]),o($VZ1,[2,528],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:760,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{64:[1,761],94:763,163:762,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,313:126,314:$V51,318:$V61},{61:$V53,65:[1,764]},{33:766,66:59,74:79,80:$V4,244:[1,765]},{3:503,4:$VB,5:$VC,155:767},o($V83,[2,170],{72:768,144:[1,769]}),{126:[1,770]},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:776,127:771,129:772,130:$V93,132:$Va3,133:$Vb3,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VC2,[2,89]),o($V$2,[2,111]),o($V$2,[2,112]),o($V$2,[2,144],{110:777,120:[1,778],122:[1,779]}),o($Vc3,[2,116],{3:780,4:$VB,5:$VC,63:[1,781]}),{3:782,4:$VB,5:$VC,63:[1,783]},{33:784,66:59,74:79,80:$V4},o($Vc3,[2,123],{3:785,4:$VB,5:$VC,63:[1,786]}),o($Vc3,[2,126],{3:787,4:$VB,5:$VC,63:[1,788]}),{64:[1,789]},o($V23,[2,141]),{64:[1,790]},o($V23,[2,137]),o($V23,[2,130]),{113:$V13},{113:$V03},o($V23,[2,132]),o($V23,[2,133]),{113:[1,791]},o($V23,[2,135]),{113:[1,792]},{113:[1,793]},o($V23,[2,139]),o($V23,[2,140]),o($VA,[2,531]),o($V33,[2,536]),o($V33,[2,537]),{3:106,4:$VB,5:$VC,49:104,64:$VD,77:794,89:92,93:88,94:96,95:97,96:$VE,121:376,147:375,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{204:[1,795],226:[1,796]},{351:[1,797]},o($V12,[2,91]),o($V42,[2,57]),o($VA,[2,456]),o($VA,[2,452]),o($VA,[2,454]),o($VA,[2,450]),o($VA,[2,321],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($VP2,[2,324]),o($VP2,[2,325],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($VA,[2,500],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($V43,[2,501]),{65:[1,798],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},o($Vn2,[2,174]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:799,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vd1,[2,289]),o($Vd1,[2,290]),o($Vd1,[2,311]),o($Vd1,[2,298]),o($Vd1,[2,300]),{151:[1,800]},o($Vw2,[2,398]),o($Vw2,[2,400]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:801,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{138:$Vd3,175:802,176:803,177:[1,804]},o($Vd1,[2,227]),o($Vd1,[2,228]),o($Vd1,[2,215]),{151:[1,806]},o($Vd1,[2,217]),{151:[1,807]},{3:808,4:$VB,5:$VC},o($V63,[2,401],{286:809,289:810,290:811,272:820,191:$Ve3,228:$Vf3,246:$Vg3,258:$Vh3,274:$Vi3,275:$Vj3,278:$Vk3,279:$Vl3,291:$Vm3}),o($V63,[2,395]),o($VA,[2,425],{63:[1,822]}),{61:$Vx2,65:[1,823]},o($VA,[2,434]),{61:$Vn3,65:[1,824]},o($Vy2,[2,388]),o($Vy2,[2,389]),{3:753,4:$VB,5:$VC,96:$V73,277:826},o($VA,[2,353],{254:827,255:828,256:829,246:$Vo3,257:$Vp3,258:$Vq3,259:$Vr3}),o($Vs3,$Vt3,{3:660,265:834,285:835,266:836,267:837,4:$VB,5:$VC,273:$Vu3}),{65:[2,368]},{63:[1,839]},o($VZ1,[2,529],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:644,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,247:840,313:126,314:$V51,318:$V61},o($VX2,[2,339]),o($VX2,[2,340]),o($VX2,[2,335]),{64:$VA2,94:579,163:578,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,245:841,313:126,314:$V51,318:$V61},o($VA,[2,332]),o($VZ2,[2,350]),o($Vv3,[2,157],{73:842,135:[1,843],136:[1,844],137:[1,845]}),{89:846,151:$VF},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:849,139:847,140:848,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VB2,[2,155],{128:850,61:$Vw3,134:[1,852]}),o($Vx3,[2,149]),{131:[1,853]},{64:[1,854]},{64:[1,855]},o($Vx3,[2,154],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($V$2,[2,115]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:856,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:503,4:$VB,5:$VC,123:857,155:582},o($Vc3,[2,117]),{3:858,4:$VB,5:$VC},o($Vc3,[2,119]),{3:859,4:$VB,5:$VC},{65:[1,860]},o($Vc3,[2,124]),{3:861,4:$VB,5:$VC},o($Vc3,[2,127]),{3:862,4:$VB,5:$VC},{33:863,66:59,74:79,80:$V4},{33:864,66:59,74:79,80:$V4},o($V23,[2,134]),o($V23,[2,136]),o($V23,[2,138]),o($VA,[2,555],{61:$Vm2,91:[1,865]}),{237:$Vy3,241:$Vz3,352:866},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:869,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{126:[1,871],204:[1,870],226:[1,872]},o($V43,[2,505]),o($Vn2,[2,179],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),{65:[1,873]},o($Vy2,[2,342],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),{65:[1,874],138:$Vd3,176:875},{65:[1,876]},{126:[1,877]},{126:[1,878]},{65:[1,879]},{65:[1,880]},o($VA,[2,421]),o($V63,[2,394]),o($V63,[2,402],{272:820,290:881,191:$Ve3,228:$Vf3,246:$Vg3,258:$Vh3,274:$Vi3,275:$Vj3,278:$Vk3,279:$Vl3,291:$Vm3}),o($V52,[2,404]),{276:[1,882]},{276:[1,883]},{3:884,4:$VB,5:$VC},o($V52,[2,408]),o($V52,[2,410],{64:[1,885]}),{3:207,4:$VB,5:$VC,89:200,93:205,94:204,96:$VE,151:$VF,152:201,158:202,159:203,170:886,171:$Ve1,188:$VT,189:$VU,190:$VV,191:$VW,194:$VZ,195:$V_,196:$V$,197:$V01},o($V52,[2,412]),{191:[1,887]},o($V52,[2,414]),{64:[1,888]},{3:889,4:$VB,5:$VC},o($VA,$VU2,{302:890,63:$VV2}),o($VA,[2,440]),{3:891,4:$VB,5:$VC,96:[1,892]},{61:$Vn3,65:[1,893]},o($VA,[2,351]),o($VA,[2,354],{256:894,246:$Vo3,257:$Vp3,258:$Vq3,259:$Vr3}),o($VA3,[2,356]),o($VA3,[2,357]),{218:[1,895]},{218:[1,896]},{218:[1,897]},{61:[1,898],65:[2,366]},o($Vy2,[2,393]),o($Vy2,[2,369]),{78:[1,906],86:[1,907],268:899,269:900,270:901,271:902,272:903,274:$Vi3,275:[1,904],276:[1,908],278:[1,905]},{3:909,4:$VB,5:$VC},{33:910,66:59,74:79,80:$V4},{61:$V53,65:[1,911]},o($VA,[2,330],{61:$VW2}),o($Vv3,[2,58]),{33:912,66:59,74:79,79:[1,913],80:$V4},{33:914,66:59,74:79,80:$V4},{33:915,66:59,74:79,80:$V4},o($V83,[2,172],{145:916,146:[1,917]}),o($V_2,[2,163],{61:$VB3}),o($VC3,[2,164]),o($VC3,[2,166],{224:251,141:[1,919],142:[1,920],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($VB2,[2,148]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:776,129:921,130:$V93,132:$Va3,133:$Vb3,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:922,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{64:[1,923]},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:776,127:924,129:772,130:$V93,132:$Va3,133:$Vb3,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:776,127:925,129:772,130:$V93,132:$Va3,133:$Vb3,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($V$2,[2,142],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),o($V$2,[2,143],{61:$VY2}),o($Vc3,[2,118]),o($Vc3,[2,120]),{3:926,4:$VB,5:$VC,63:[1,927]},o($Vc3,[2,125]),o($Vc3,[2,128]),{65:[1,928]},{65:[1,929]},{3:193,4:$VB,5:$VC,92:931,192:[1,930]},o($V33,[2,540]),o($V33,[2,542]),{238:[1,932]},{154:$Vk1,204:[1,933],206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},{242:$VD3,353:934},{311:[1,937],354:[1,936]},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:938,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vw2,[2,397]),o($Vd1,[2,230]),{65:[1,939]},o($Vd1,[2,231]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:776,127:940,129:772,130:$V93,132:$Va3,133:$Vb3,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:849,139:941,140:848,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($Vd1,[2,216]),o($Vd1,[2,218]),o($V52,[2,403]),o($V52,[2,405]),{279:[1,942]},{64:[1,943]},{89:944,151:$VF},o($V52,[2,411]),o($V52,[2,413]),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:945,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VA,[2,427]),o($VA,[2,431]),o($Vy2,[2,390]),o($Vy2,[2,391]),o($VA,[2,441]),o($VA3,[2,355]),{3:946,4:$VB,5:$VC},{89:947,151:$VF},{3:948,4:$VB,5:$VC},o($Vs3,$Vt3,{267:837,266:949,273:$Vu3}),o($Vy2,[2,371]),o($Vy2,[2,372]),o($Vy2,[2,373]),o($Vy2,[2,374]),o($Vy2,[2,375]),{276:[1,950]},{276:[1,951]},o($Vy2,[2,385]),{3:952,4:$VB,5:$VC},{3:953,4:$VB,5:$VC},o($Vs3,[2,377]),o($VA,[2,457]),o($VX2,[2,338]),o($Vv3,[2,158]),{33:954,66:59,74:79,80:$V4},o($Vv3,[2,160]),o($Vv3,[2,161]),o($V83,[2,171]),{89:955,151:$VF},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:849,140:956,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},o($VC3,[2,167]),{143:[1,957]},o($Vx3,[2,150]),o($VB2,[2,156],{224:251,154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1}),{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:776,127:958,129:772,130:$V93,132:$Va3,133:$Vb3,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{61:$Vw3,65:[1,959]},{61:$Vw3,65:[1,960]},o($Vc3,[2,121]),{3:961,4:$VB,5:$VC},{3:962,4:$VB,5:$VC,63:[1,963]},{3:964,4:$VB,5:$VC,63:[1,965]},{3:966,4:$VB,5:$VC},o($VA,[2,557],{64:[1,967]}),{3:503,4:$VB,5:$VC,155:502,239:968,240:501},{237:$Vy3,241:$Vz3,352:969},o($V33,[2,544]),{64:[1,971],244:[1,970],246:[1,972]},{204:[1,973],226:[1,974]},{204:[1,975],226:[1,976]},{154:$Vk1,204:[1,977],206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},o($Vd1,[2,232]),o([65,138],[2,233],{61:$Vw3}),{61:$VB3,65:[2,234]},{3:978,4:$VB,5:$VC},{3:979,4:$VB,5:$VC},{61:[1,980]},{65:[1,981],154:$Vk1,206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},o($VA3,[2,358]),o($VA3,[2,359]),o($VA3,[2,360]),o($Vy2,[2,370]),{64:[1,982]},{64:[1,983]},{64:[1,984]},{64:[1,985]},o($Vv3,[2,159]),o($V83,[2,173]),o($VC3,[2,165]),o($VC3,[2,168],{141:[1,986]}),{61:$Vw3,65:[1,987]},o($Vx3,[2,152]),o($Vx3,[2,153]),o($Vc3,[2,122]),o($V$2,[2,84]),{3:988,4:$VB,5:$VC},o($V$2,[2,86]),{3:989,4:$VB,5:$VC},o($VA,[2,556]),{3:503,4:$VB,5:$VC,123:990,155:582},o($V33,[2,543],{61:$VO2}),o($V33,[2,541]),{64:$VA2,94:579,163:578,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,245:991,313:126,314:$V51,318:$V61},{3:503,4:$VB,5:$VC,123:992,155:582},{244:[1,993]},{242:$VD3,353:994},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:995,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{242:$VD3,353:996},{3:106,4:$VB,5:$VC,49:104,64:$VD,89:92,93:88,94:96,95:97,96:$VE,121:997,151:$VF,152:94,153:91,154:$VG,155:90,156:87,157:89,158:93,159:95,160:98,161:99,162:100,163:101,164:102,165:$V5,166:$VH,167:$VI,169:$VJ,172:105,178:$VK,179:$VL,180:$VM,181:$VN,182:$VO,183:$VP,184:$VQ,185:$VR,186:$VS,188:$VT,189:$VU,190:$VV,191:$VW,192:$VX,193:$VY,194:$VZ,195:$V_,196:$V$,197:$V01,198:$V11,208:$V21,209:$V31,228:$V41,313:126,314:$V51,318:$V61},{242:$VD3,353:998},{64:[1,999]},{65:[1,1e3]},{89:1001,151:$VF},o($V52,[2,378]),{3:753,4:$VB,5:$VC,96:$V73,277:1002},{3:753,4:$VB,5:$VC,96:$V73,277:1003},{3:503,4:$VB,5:$VC,123:1004,155:582},{3:503,4:$VB,5:$VC,123:1005,155:582},o($VC3,[2,169]),o($Vx3,[2,151]),o($V$2,[2,85]),o($V$2,[2,87]),{61:$VY2,65:[1,1006]},o($V33,[2,550],{61:$VW2}),{61:$VY2,65:[1,1007]},o($V33,[2,552]),o($V33,[2,545]),{154:$Vk1,204:[1,1008],206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},o($V33,[2,548]),{154:$Vk1,204:[1,1009],206:$Vl1,207:$Vm1,208:$Vn1,209:$Vo1,210:$Vp1,211:$Vq1,212:$Vr1,213:$Vs1,214:$Vt1,215:$Vu1,216:$Vv1,217:$Vw1,218:$Vx1,219:$Vy1,220:$Vz1,221:$VA1,222:$VB1,223:$VC1,224:251,226:$VD1,227:$VE1,228:$VF1,229:$VG1,231:$VH1,232:$VI1,233:$VJ1,234:$VK1},o($V33,[2,546]),{3:1010,4:$VB,5:$VC},o($V52,[2,407]),{65:[1,1011]},{61:$Vn3,65:[1,1012]},{61:$Vn3,65:[1,1013]},{61:$VY2,65:[1,1014]},{61:$VY2,65:[1,1015]},o($VA,[2,558]),{244:[1,1016],246:[1,1017]},{242:$VD3,353:1018},{237:$Vy3,241:$Vz3,352:1019},{65:[1,1020]},o($V52,[2,409]),o($Vy2,[2,379]),{279:[1,1021]},o($Vy2,[2,386]),o($Vy2,[2,387]),{64:$VA2,94:579,163:578,192:$Vf1,194:$VZ,195:$V_,196:$V$,197:$V01,245:1022,313:126,314:$V51,318:$V61},{244:[1,1023]},o($V33,[2,547]),o($V33,[2,549]),o($V52,[2,406]),{3:1024,4:$VB,5:$VC},o($V33,[2,551],{61:$VW2}),o($V33,[2,553]),{64:[1,1025]},{3:753,4:$VB,5:$VC,96:$V73,277:1026},{61:$Vn3,65:[1,1027]},o($Vy2,[2,381],{280:1028,281:1029,120:[1,1030]}),o($Vy2,[2,380]),{120:[1,1032],282:1031},{241:[1,1033]},o($Vy2,[2,382]),{237:[1,1034]},{283:[1,1035]},{283:[1,1036]},{284:[1,1037]},{284:[1,1038]},{120:[2,383]},o($Vy2,[2,384])],defaultActions:{81:[2,3],129:[2,235],130:[2,236],131:[2,237],132:[2,238],133:[2,239],134:[2,240],135:[2,241],136:[2,242],137:[2,243],165:[2,532],337:[2,533],405:[2,318],406:[2,319],407:[2,320],483:[2,534],758:[2,368],1037:[2,383]},parseError:function parseError(str,hash){if(hash.recoverable){this.trace(str)
-}else{throw new Error(str)}},parse:function parse(input){var self=this,stack=[0],tstack=[],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1;var args=lstack.slice.call(arguments,1);var lexer=Object.create(this.lexer);var sharedState={yy:{}};for(var k in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,k)){sharedState.yy[k]=this.yy[k]}}lexer.setInput(input,sharedState.yy);sharedState.yy.lexer=lexer;sharedState.yy.parser=this;if(typeof lexer.yylloc=="undefined"){lexer.yylloc={}}var yyloc=lexer.yylloc;lstack.push(yyloc);var ranges=lexer.options&&lexer.options.ranges;if(typeof sharedState.yy.parseError==="function"){this.parseError=sharedState.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function popStack(n){stack.length=stack.length-2*n;vstack.length=vstack.length-n;lstack.length=lstack.length-n}_token_stack:function lex(){var token;token=lexer.lex()||EOF;if(typeof token!=="number"){token=self.symbols_[token]||token}return token}var symbol,preErrorSymbol,state,action,a,r,yyval={},p,len,newState,expected;while(true){state=stack[stack.length-1];if(this.defaultActions[state]){action=this.defaultActions[state]}else{if(symbol===null||typeof symbol=="undefined"){symbol=lex()}action=table[state]&&table[state][symbol]}if(typeof action==="undefined"||!action.length||!action[0]){var errStr="";expected=[];for(p in table[state]){if(this.terminals_[p]&&p>TERROR){expected.push("'"+this.terminals_[p]+"'")}}if(lexer.showPosition){errStr="Parse error on line "+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'"}else{errStr="Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'")}this.parseError(errStr,{text:lexer.match,token:this.terminals_[symbol]||symbol,line:lexer.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1){throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol)}switch(action[0]){case 1:stack.push(symbol);vstack.push(lexer.yytext);lstack.push(lexer.yylloc);stack.push(action[1]);symbol=null;if(!preErrorSymbol){yyleng=lexer.yyleng;yytext=lexer.yytext;yylineno=lexer.yylineno;yyloc=lexer.yylloc;if(recovering>0){recovering--}}else{symbol=preErrorSymbol;preErrorSymbol=null}break;case 2:len=this.productions_[action[1]][1];yyval.$=vstack[vstack.length-len];yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column};if(ranges){yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]}r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args));if(typeof r!=="undefined"){return r}if(len){stack=stack.slice(0,-1*len*2);vstack=vstack.slice(0,-1*len);lstack=lstack.slice(0,-1*len)}stack.push(this.productions_[action[1]][0]);vstack.push(yyval.$);lstack.push(yyval._$);newState=table[stack[stack.length-2]][stack[stack.length-1]];stack.push(newState);break;case 3:return true}}return true}};var lexer=function(){var lexer={EOF:1,parseError:function parseError(str,hash){if(this.yy.parser){this.yy.parser.parseError(str,hash)}else{throw new Error(str)}},setInput:function(input,yy){this.yy=yy||this.yy||{};this._input=input;this._more=this._backtrack=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges){this.yylloc.range=[0,0]}this.offset=0;return this},input:function(){var ch=this._input[0];this.yytext+=ch;this.yyleng++;this.offset++;this.match+=ch;this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);if(lines){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges){this.yylloc.range[1]++}this._input=this._input.slice(1);return ch},unput:function(ch){var len=ch.length;var lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-len);this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(lines.length-1){this.yylineno-=lines.length-1}var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-len]}this.yyleng=this.yytext.length;return this},more:function(){this._more=true;return this},reject:function(){if(this.options.backtrack_lexer){this._backtrack=true}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}return this},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;if(next.length<20){next+=this._input.substr(0,20-next.length)}return(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput();var c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer){backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done};if(this.options.ranges){backup.yylloc.range=this.yylloc.range.slice(0)}}lines=match[0].match(/(?:\r\n?|\n).*/g);if(lines){this.yylineno+=lines.length}this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length};this.yytext+=match[0];this.match+=match[0];this.matches=match;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._backtrack=false;this._input=this._input.slice(match[0].length);this.matched+=match[0];token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input){this.done=false}if(token){return token}else if(this._backtrack){for(var k in backup){this[k]=backup[k]}return false}return false},next:function(){if(this.done){return this.EOF}if(!this._input){this.done=true}var token,match,tempMatch,index;if(!this._more){this.yytext="";this.match=""}var rules=this._currentRules();for(var i=0;imatch[0].length)){match=tempMatch;index=i;if(this.options.backtrack_lexer){token=this.test_match(tempMatch,rules[i]);if(token!==false){return token}else if(this._backtrack){match=false;continue}else{return false}}else if(!this.options.flex){break}}}if(match){token=this.test_match(match,rules[index]);if(token!==false){return token}return false}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}},lex:function lex(){var r=this.next();if(r){return r}else{return this.lex()}},begin:function begin(condition){this.conditionStack.push(condition)},popState:function popState(){var n=this.conditionStack.length-1;if(n>0){return this.conditionStack.pop()}else{return this.conditionStack[0]}},_currentRules:function _currentRules(){if(this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules}else{return this.conditions["INITIAL"].rules}},topState:function topState(n){n=this.conditionStack.length-1-Math.abs(n||0);if(n>=0){return this.conditionStack[n]}else{return"INITIAL"}},pushState:function pushState(condition){this.begin(condition)},stateStackSize:function stateStackSize(){return this.conditionStack.length},options:{"case-insensitive":true},performAction:function anonymous(yy,yy_,$avoiding_name_collisions,YY_START){var YYSTATE=YY_START;switch($avoiding_name_collisions){case 0:return 165;break;case 1:return 197;break;case 2:return 314;break;case 3:return 5;break;case 4:return 5;break;case 5:return 190;break;case 6:return 190;break;case 7:return 96;break;case 8:return 96;break;case 9:return;break;case 10:return;break;case 11:break;case 12:return 227;break;case 13:return 226;break;case 14:return"ABSOLUTE";break;case 15:return 284;break;case 16:return 297;break;case 17:return 185;break;case 18:return 79;break;case 19:return 294;break;case 20:return 226;break;case 21:return 119;break;case 22:return 236;break;case 23:return 103;break;case 24:return 186;break;case 25:return 63;break;case 26:return 312;break;case 27:return 141;break;case 28:return 299;break;case 29:return 258;break;case 30:return 258;break;case 31:return 182;break;case 32:return 331;break;case 33:return 231;break;case 34:return 335;break;case 35:return 232;break;case 36:return 207;break;case 37:return 126;break;case 38:return 198;break;case 39:return 167;break;case 40:return 259;break;case 41:return 274;break;case 42:return"CLOSE";break;case 43:return 142;break;case 44:return"COLUMN";break;case 45:return"COLUMNS";break;case 46:return"COMMIT";break;case 47:return"CONSTRAINT";break;case 48:return"CONTINUE";break;case 49:return"CONVERT";break;case 50:return"COUNT";break;case 51:return 250;break;case 52:return"CROSS";break;case 53:return 133;break;case 54:return"CURRENT_TIMESTAMP";break;case 55:return"CURSOR";break;case 56:return 300;break;case 57:return 305;break;case 58:return 339;break;case 59:return 246;break;case 60:return 241;break;case 61:return"DELETED";break;case 62:return 141;break;case 63:return 301;break;case 64:return 75;break;case 65:return 292;break;case 66:return 201;break;case 67:return 257;break;case 68:return 288;break;case 69:return 205;break;case 70:return 136;break;case 71:return 193;break;case 72:return 13;break;case 73:return 189;break;case 74:return"FETCH";break;case 75:return 183;break;case 76:return 278;break;case 77:return 97;break;case 78:return 11;break;case 79:return 125;break;case 80:return 130;break;case 81:return 134;break;case 82:return 309;break;case 83:return 263;break;case 84:return 291;break;case 85:return 233;break;case 86:return 229;break;case 87:return 86;break;case 88:return 114;break;case 89:return 242;break;case 90:return"INSERTED";break;case 91:return 137;break;case 92:return 91;break;case 93:return 113;break;case 94:return 276;break;case 95:return 184;break;case 96:return 115;break;case 97:return 206;break;case 98:return 144;break;case 99:return 311;break;case 100:return"MATCHED";break;case 101:return 84;break;case 102:return"MAX";break;case 103:return"MERGE";break;case 104:return"MIN";break;case 105:return"EXCEPT";break;case 106:return"MODIFY";break;case 107:return 112;break;case 108:return"NEXT";break;case 109:return 166;break;case 110:return 143;break;case 111:return 283;break;case 112:return 228;break;case 113:return 191;break;case 114:return 327;break;case 115:return 120;break;case 116:return 146;break;case 117:return"OPEN";break;case 118:return 227;break;case 119:return 138;break;case 120:return 104;break;case 121:return 174;break;case 122:return 177;break;case 123:return 90;break;case 124:return 15;break;case 125:return 275;break;case 126:return 336;break;case 127:return"PRIOR";break;case 128:return 14;break;case 129:return 87;break;case 130:return"REDUCE";break;case 131:return 279;break;case 132:return"RELATIVE";break;case 133:return 295;break;case 134:return 337;break;case 135:return"RESTORE";break;case 136:return 116;break;case 137:return 330;break;case 138:return 132;break;case 139:return 82;break;case 140:return 300;break;case 141:return 305;break;case 142:return 80;break;case 143:return 118;break;case 144:return 238;break;case 145:return 131;break;case 146:return 304;break;case 147:return 235;break;case 148:return"STORE";break;case 149:return"SUM";break;case 150:return 251;break;case 151:return 306;break;case 152:return 354;break;case 153:return 149;break;case 154:return 85;break;case 155:return 150;break;case 156:return 204;break;case 157:return 296;break;case 158:return 88;break;case 159:return"TRAN";break;case 160:return 329;break;case 161:return 188;break;case 162:return 342;break;case 163:return 135;break;case 164:return 78;break;case 165:return 237;break;case 166:return 303;break;case 167:return 122;break;case 168:return 81;break;case 169:return 244;break;case 170:return 308;break;case 171:return 203;break;case 172:return 124;break;case 173:return 333;break;case 174:return 59;break;case 175:return 329;break;case 176:return 151;break;case 177:return 151;break;case 178:return 213;break;case 179:return 208;break;case 180:return 209;break;case 181:return 154;break;case 182:return 210;break;case 183:return 211;break;case 184:return 223;break;case 185:return 220;break;case 186:return 222;break;case 187:return 219;break;case 188:return 215;break;case 189:return 214;break;case 190:return 217;break;case 191:return 221;break;case 192:return 216;break;case 193:return 218;break;case 194:return 221;break;case 195:return 64;break;case 196:return 65;break;case 197:return 192;break;case 198:return 318;break;case 199:return 320;break;case 200:return 322;break;case 201:return 106;break;case 202:return 61;break;case 203:return 234;break;case 204:return 195;break;case 205:return 9;break;case 206:return 194;break;case 207:return 196;break;case 208:return 212;break;case 209:return 4;break;case 210:return 8;break;case 211:return"INVALID";break}},rules:[/^(?:``([^\`])+``)/i,/^(?:\[\?\])/i,/^(?:@\[)/i,/^(?:\[([^\]])*?\])/i,/^(?:`([^\`])*?`)/i,/^(?:N(['](\\.|[^']|\\')*?['])+)/i,/^(?:X(['](\\.|[^']|\\')*?['])+)/i,/^(?:(['](\\.|[^']|\\')*?['])+)/i,/^(?:(["](\\.|[^"]|\\")*?["])+)/i,/^(?:\/\*(.*?)\*\/)/i,/^(?:--(.*?)($|\r\n|\r|\n))/i,/^(?:\s+)/i,/^(?:\|\|)/i,/^(?:&&)/i,/^(?:ABSOLUTE\b)/i,/^(?:ACTION\b)/i,/^(?:ADD\b)/i,/^(?:AGGR\b)/i,/^(?:ALL\b)/i,/^(?:ALTER\b)/i,/^(?:AND\b)/i,/^(?:ANTI\b)/i,/^(?:ANY\b)/i,/^(?:APPLY\b)/i,/^(?:ARRAY\b)/i,/^(?:AS\b)/i,/^(?:ASSERT\b)/i,/^(?:ASC\b)/i,/^(?:ATTACH\b)/i,/^(?:AUTOINCREMENT\b)/i,/^(?:AUTO_INCREMENT\b)/i,/^(?:AVG\b)/i,/^(?:BEGIN\b)/i,/^(?:BETWEEN\b)/i,/^(?:BREAK\b)/i,/^(?:NOT\s+BETWEEN\b)/i,/^(?:NOT\s+LIKE\b)/i,/^(?:BY\b)/i,/^(?:CASE\b)/i,/^(?:CAST\b)/i,/^(?:CHARSET\b)/i,/^(?:CHECK\b)/i,/^(?:CLOSE\b)/i,/^(?:COLLATE\b)/i,/^(?:COLUMN\b)/i,/^(?:COLUMNS\b)/i,/^(?:COMMIT\b)/i,/^(?:CONSTRAINT\b)/i,/^(?:CONTINUE\b)/i,/^(?:CONVERT\b)/i,/^(?:COUNT\b)/i,/^(?:CREATE\b)/i,/^(?:CROSS\b)/i,/^(?:CUBE\b)/i,/^(?:CURRENT_TIMESTAMP\b)/i,/^(?:CURSOR\b)/i,/^(?:DATABASE\b)/i,/^(?:DATABASES\b)/i,/^(?:DECLARE\b)/i,/^(?:DEFAULT\b)/i,/^(?:DELETE\b)/i,/^(?:DELETED\b)/i,/^(?:DESC\b)/i,/^(?:DETACH\b)/i,/^(?:DISTINCT\b)/i,/^(?:DROP\b)/i,/^(?:END\b)/i,/^(?:ENGINE\b)/i,/^(?:ENUM\b)/i,/^(?:ELSE\b)/i,/^(?:EXCEPT\b)/i,/^(?:EXISTS\b)/i,/^(?:EXPLAIN\b)/i,/^(?:FALSE\b)/i,/^(?:FETCH\b)/i,/^(?:FIRST\b)/i,/^(?:FOREIGN\b)/i,/^(?:FROM\b)/i,/^(?:GO\b)/i,/^(?:GROUP\b)/i,/^(?:GROUPING\b)/i,/^(?:HAVING\b)/i,/^(?:HELP\b)/i,/^(?:IF\b)/i,/^(?:IDENTITY\b)/i,/^(?:IS\b)/i,/^(?:IN\b)/i,/^(?:INDEX\b)/i,/^(?:INNER\b)/i,/^(?:INSERT\b)/i,/^(?:INSERTED\b)/i,/^(?:INTERSECT\b)/i,/^(?:INTO\b)/i,/^(?:JOIN\b)/i,/^(?:KEY\b)/i,/^(?:LAST\b)/i,/^(?:LEFT\b)/i,/^(?:LIKE\b)/i,/^(?:LIMIT\b)/i,/^(?:SOURCE\b)/i,/^(?:MATCHED\b)/i,/^(?:MATRIX\b)/i,/^(?:MAX\b)/i,/^(?:MERGE\b)/i,/^(?:MIN\b)/i,/^(?:MINUS\b)/i,/^(?:MODIFY\b)/i,/^(?:NATURAL\b)/i,/^(?:NEXT\b)/i,/^(?:NEW\b)/i,/^(?:NOCASE\b)/i,/^(?:NO\b)/i,/^(?:NOT\b)/i,/^(?:NULL\b)/i,/^(?:OFF\b)/i,/^(?:ON\b)/i,/^(?:OFFSET\b)/i,/^(?:OPEN\b)/i,/^(?:OR\b)/i,/^(?:ORDER\b)/i,/^(?:OUTER\b)/i,/^(?:OVER\b)/i,/^(?:PARTITION\b)/i,/^(?:PERCENT\b)/i,/^(?:PLAN\b)/i,/^(?:PRIMARY\b)/i,/^(?:PRINT\b)/i,/^(?:PRIOR\b)/i,/^(?:QUERY\b)/i,/^(?:RECORDSET\b)/i,/^(?:REDUCE\b)/i,/^(?:REFERENCES\b)/i,/^(?:RELATIVE\b)/i,/^(?:RENAME\b)/i,/^(?:REQUIRE\b)/i,/^(?:RESTORE\b)/i,/^(?:RIGHT\b)/i,/^(?:ROLLBACK\b)/i,/^(?:ROLLUP\b)/i,/^(?:ROW\b)/i,/^(?:SCHEMA\b)/i,/^(?:SCHEMAS\b)/i,/^(?:SELECT\b)/i,/^(?:SEMI\b)/i,/^(?:SET\b)/i,/^(?:SETS\b)/i,/^(?:SHOW\b)/i,/^(?:SOME\b)/i,/^(?:STORE\b)/i,/^(?:SUM\b)/i,/^(?:TABLE\b)/i,/^(?:TABLES\b)/i,/^(?:TARGET\b)/i,/^(?:TD\b)/i,/^(?:TEXTSTRING\b)/i,/^(?:TH\b)/i,/^(?:THEN\b)/i,/^(?:TO\b)/i,/^(?:TOP\b)/i,/^(?:TRAN\b)/i,/^(?:TRANSACTION\b)/i,/^(?:TRUE\b)/i,/^(?:TRUNCATE\b)/i,/^(?:UNION\b)/i,/^(?:UNIQUE\b)/i,/^(?:UPDATE\b)/i,/^(?:USE\b)/i,/^(?:USING\b)/i,/^(?:VALUE\b)/i,/^(?:VALUES\b)/i,/^(?:VIEW\b)/i,/^(?:WHEN\b)/i,/^(?:WHERE\b)/i,/^(?:WHILE\b)/i,/^(?:WITH\b)/i,/^(?:WORK\b)/i,/^(?:(\d*[.])?\d+[eE]\d+)/i,/^(?:(\d*[.])?\d+)/i,/^(?:->)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:!===)/i,/^(?:===)/i,/^(?:!==)/i,/^(?:==)/i,/^(?:>=)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:<>)/i,/^(?:<)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:\()/i,/^(?:\))/i,/^(?:@)/i,/^(?:\{)/i,/^(?:\})/i,/^(?:\])/i,/^(?:\.)/i,/^(?:,)/i,/^(?:::)/i,/^(?::)/i,/^(?:;)/i,/^(?:\$)/i,/^(?:\?)/i,/^(?:\^)/i,/^(?:[a-zA-Z_][a-zA-Z_0-9]*)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211],inclusive:true}}};return lexer}();parser.lexer=lexer;function Parser(){this.yy={}}Parser.prototype=parser;parser.Parser=Parser;return new Parser}();if(typeof require!=="undefined"&&typeof exports!=="undefined"){exports.parser=parser;exports.Parser=parser.Parser;exports.parse=function(){return parser.parse.apply(parser,arguments)};exports.main=function commonjsMain(args){if(!args[1]){console.log("Usage: "+args[0]+" FILE");process.exit(1)}var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)};if(typeof module!=="undefined"&&require.main===module){exports.main(process.argv.slice(1))}}alasql.prettyflag=false;alasql.pretty=function(sql,flag){var pf=alasql.prettyflag;alasql.prettyflag=!flag;var s=alasql.parse(sql).toString();alasql.prettyflag=pf;return s};function K(s){if(alasql.prettyflag){return''+s.toUpperCase()+""}else{return s}}function P(s){if(alasql.prettyflag){return''+s+""}else{return s}}function L(s){if(alasql.prettyflag){return''+s+""}else{return s}}function N(s){if(alasql.prettyflag){return''+s+""}else{return s}}function S(s){if(alasql.prettyflag){return''+s+""}else{return s}}function NL(){if(alasql.prettyflag){return"
"}else{return" "}}function ID(){if(alasql.prettyflag){return" "}else{return""}}var utils=alasql.utils={};function returnTrue(){return true}function returnUndefined(){}var escapeq=utils.escapeq=function(s){return s.replace(/\'/g,"\\'")};var escapeqq=utils.undoubleq=function(s){return s.replace(/(\')/g,"''")};var doubleq=utils.doubleq=function(s){return s.replace(/(\'\')/g,"\\'")};var doubleqq=utils.doubleqq=function(s){return s.replace(/\'/g,"'")};var cutbom=function(s){if(s[0]==String.fromCharCode(65279))s=s.substr(1);return s};var loadFile=utils.loadFile=function(path,asy,success,error){if(typeof exports=="object"){var fs=require("fs");if(!path){var buff="";process.stdin.setEncoding("utf8");process.stdin.on("readable",function(){var chunk=process.stdin.read();if(chunk!==null){buff+=chunk.toString()}});process.stdin.on("end",function(){success(cutbom(buff))})}else{if(asy){fs.readFile(path,function(err,data){if(err){throw err}success(cutbom(data.toString()))})}else{var data=fs.readFileSync(path);success(cutbom(data.toString()))}}}else if(typeof cordova=="object"){window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem){fileSystem.root.getFile(path,{create:false},function(fileEntry){fileEntry.file(function(file){var fileReader=new FileReader;fileReader.onloadend=function(e){success(cutbom(this.result))};fileReader.readAsText(file)})})})}else{if(typeof path=="string"){if(path.substr(0,1)=="#"&&typeof document!="undefined"){var data=document.querySelector(path).textContent;success(data)}else{var xhr=new XMLHttpRequest;xhr.onreadystatechange=function(){if(xhr.readyState===XMLHttpRequest.DONE){if(xhr.status===200){if(success)success(cutbom(xhr.responseText))}else{if(error)error(xhr)}}};xhr.open("GET",path,asy);xhr.send()}}else if(path instanceof Event){var files=path.target.files;var reader=new FileReader;var name=files[0].name;reader.onload=function(e){var data=e.target.result;success(cutbom(data))};reader.readAsText(files[0])}}};var loadBinaryFile=utils.loadBinaryFile=function(path,asy,success,error){if(typeof exports=="object"){var fs=require("fs");if(asy){fs.readFile(path,function(err,data){if(err){throw err}var arr=new Array;for(var i=0;i!=data.length;++i)arr[i]=String.fromCharCode(data[i]);success(arr.join(""))})}else{var data=fs.readFileSync(path);var arr=new Array;for(var i=0;i!=data.length;++i)arr[i]=String.fromCharCode(data[i]);success(arr.join(""))}}else{if(typeof path=="string"){var xhr=new XMLHttpRequest;xhr.open("GET",path,asy);xhr.responseType="arraybuffer";xhr.onload=function(){var data=new Uint8Array(xhr.response);var arr=new Array;for(var i=0;i!=data.length;++i)arr[i]=String.fromCharCode(data[i]);success(arr.join(""))};xhr.send()}else if(path instanceof Event){var files=path.target.files;var reader=new FileReader;var name=files[0].name;reader.onload=function(e){var data=e.target.result;success(data)};reader.readAsBinaryString(files[0])}}};var removeFile=utils.removeFile=function(path,cb){if(typeof exports=="object"){var fs=require("fs");fs.remove(path,cb)}else if(typeof cordova=="object"){window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem){fileSystem.root.getFile(path,{create:false},function(fileEntry){fileEntry.remove(cb);if(cb)cb()},function(){if(cb)cb()})})}else{throw new Error("You can remove files only in Node.js and Apache Cordova")}};var deleteFile=utils.deleteFile=function(path,cb){if(typeof exports=="object"){var fs=require("fs");fs.unlink(path,cb)}};var fileExists=utils.fileExists=function(path,cb){if(typeof exports=="object"){var fs=require("fs");fs.exists(path,cb)}else if(typeof cordova=="object"){window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem){fileSystem.root.getFile(path,{create:false},function(fileEntry){cb(true)},function(){cb(false)})})}else{throw new Error("You can use exists() only in Node.js or Apach Cordova")}};var saveFile=utils.saveFile=function(path,data,cb){if(!path){alasql.options.stdout=true;console.log(data);if(cb)cb()}else{if(typeof exports=="object"){var fs=require("fs");var data=fs.writeFileSync(path,data);if(cb)cb()}else if(typeof cordova=="object"){window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem){fileSystem.root.getFile(path,{create:true},function(fileEntry){fileEntry.createWriter(function(fileWriter){fileWriter.onwriteend=function(){if(cb)cb()};fileWriter.write(data)})})})}else{var blob=new Blob([data],{type:"text/plain;charset=utf-8"});saveAs(blob,path);if(cb)cb()}}};var hash=utils.hash=function hash(str){var h=0;if(str.length==0)return h;for(var i=0;i=26){i=(i/26|0)-1;addr=String.fromCharCode(65+i%26)+addr;if(i>26){i=(i/26|0)-1;addr=String.fromCharCode(65+i%26)+addr}}return addr};var xlscn=utils.xlscn=function(s){var n=s.charCodeAt(0)-65;if(s.length>1){n=(n+1)*26+s.charCodeAt(1)-65;if(s.length>2){n=(n+1)*26+s.charCodeAt(2)-65}}return n};var domEmptyChildren=utils.domEmptyChildren=function(container){var len=container.childNodes.length;while(len--){container.removeChild(container.lastChild)}};alasql.utils.uncomment=function uncomment(str){str=("__"+str+"__").split("");var quote=false,quoteSign,blockComment=false,lineComment=false;for(var i=0,l=str.length;ialasql.MAXSQLCACHESIZE){db.resetSqlCache()}db.sqlCacheSize++;db.sqlCache[hh]=statement}var res=alasql.res=statement(params,cb,scope);return res}else{alasql.precompile(ast.statements[0],alasql.useid,params);var res=alasql.res=ast.statements[0].execute(databaseid,params,cb,scope);return res}}else{if(cb){alasql.adrun(databaseid,ast,params,cb,scope)}else{return alasql.drun(databaseid,ast,params,cb,scope)}}};alasql.drun=function(databaseid,ast,params,cb,scope){var useid=alasql.useid;if(useid!=databaseid)alasql.use(databaseid);var res=[];for(var i=0,ilen=ast.statements.length;i=0){var source=query.sources[idx];source.data=data;if(typeof source.data=="function"){source.getfn=source.data;source.dontcache=source.getfn.dontcache;if(source.joinmode=="OUTER"||source.joinmode=="RIGHT"||source.joinmode=="ANTI"){source.dontcache=false}source.data={}}}else{query.queriesdata[-idx-1]=flatArray(data)}query.sourceslen--;if(query.sourceslen>0)return;return queryfn3(query)}function queryfn3(query){var scope=query.scope;preIndex(query);query.data=[];query.xgroups={};query.groups=[];var h=0;doJoin(query,scope,h);if(query.groupfn){query.data=[];if(query.groups.length==0){var g={};if(query.selectGroup.length>0){query.selectGroup.forEach(function(sg){if(sg.aggregatorid=="COUNT"||sg.aggregatorid=="SUM"){g[sg.nick]=0}else{g[sg.nick]=undefined}})}query.groups=[g]}for(var i=0,ilen=query.groups.length;i0){for(var i=0,ilen=query.data.length;i0&&source.optimization=="ix"&&source.onleftfn&&source.onrightfn){if(source.databaseid&&alasql.databases[source.databaseid].tables[source.tableid]){if(!alasql.databases[source.databaseid].tables[source.tableid].indices)query.database.tables[source.tableid].indices={};var ixx=alasql.databases[source.databaseid].tables[source.tableid].indices[hash(source.onrightfns+"`"+source.srcwherefns)];if(!alasql.databases[source.databaseid].tables[source.tableid].dirty&&ixx){source.ix=ixx}}if(!source.ix){source.ix={};var scope={};var i=0;var ilen=source.data.length;var dataw;while((dataw=source.data[i])||source.getfn&&(dataw=source.getfn(i))||i=query.sources.length){if(query.wherefn(scope,query.params,alasql)){if(query.groupfn){query.groupfn(scope,query.params,query.alasql)}else{query.data.push(query.selectfn(scope,query.params,alasql))}}}else if(query.sources[h].applyselect){var source=query.sources[h];source.applyselect(query.params,function(data){if(data.length>0){for(var i=0;i0){s+=NL()+ID()+K("GROUP BY")+" "+this.group.map(function(grp){return grp.toString()}).join(", ")}if(this.having)s+=NL()+ID()+K("HAVING")+" "+this.having.toString();if(this.order&&this.order.length>0){s+=NL()+ID()+K("ORDER BY")+" "+this.order.map(function(ord){return ord.toString()}).join(", ")}if(this.limit)s+=NL()+ID()+K("LIMIT")+" "+this.limit.value;if(this.offset)s+=NL()+ID()+K("OFFSET")+" "+this.offset.value;if(this.union)s+=NL()+K("UNION")+NL()+this.union.toString();if(this.unionall)s+=NL()+K("UNION ALL")+NL()+this.unionall.toString();if(this.except)s+=NL()+K("EXCEPT")+NL()+this.except.toString();if(this.intersect)s+=NL()+K("INTERSECT")+NL()+this.intersect.toString();return s};yy.Select.prototype.toJavaScript=function(context,tableid,defcols){var s="alasql.utils.flatArray(this.queriesfn["+(this.queriesidx-1)+"](this.params,null,p))[0]";return s};yy.Select.prototype.compile=function(databaseid){var db=alasql.databases[databaseid];var query=new Query;query.removeKeys=[];query.explain=this.explain;query.explaination=[];query.explid=1;query.modifier=this.modifier;query.database=db;this.compileWhereExists(query);this.compileQueries(query);query.defcols=this.compileDefCols(query,databaseid);query.fromfn=this.compileFrom(query);if(this.joins)this.compileJoins(query);this.compileSelectGroup0(query);if(this.group||query.selectGroup.length>0){query.selectgfns=this.compileSelectGroup1(query)}else{query.selectfns=this.compileSelect1(query)}if(this.where)this.compileWhereJoins(query);query.wherefn=this.compileWhere(query);if(this.group||query.selectGroup.length>0)query.groupfn=this.compileGroup(query);if(this.having)query.havingfn=this.compileHaving(query);if(this.group||query.selectGroup.length>0){query.selectgfn=this.compileSelectGroup2(query)}else{query.selectfn=this.compileSelect2(query)}query.distinct=this.distinct;if(this.order)query.orderfn=this.compileOrder(query);if(this.top){query.limit=this.top.value}else if(this.limit){query.limit=this.limit.value;if(this.offset){query.offset=this.offset.value}}query.percent=this.percent;if(this.union){query.unionfn=this.union.compile(databaseid);if(this.union.order){query.orderfn=this.union.compileOrder(query)}else{query.orderfn=null}}else if(this.unionall){query.unionallfn=this.unionall.compile(databaseid);if(this.unionall.order){query.orderfn=this.unionall.compileOrder(query)}else{query.orderfn=null}}else if(this.except){query.exceptfn=this.except.compile(databaseid);if(this.except.order){query.orderfn=this.except.compileOrder(query)}else{query.orderfn=null}}else if(this.intersect){query.intersectfn=this.intersect.compile(databaseid);if(this.intersect.order){query.intersectfn=this.intersect.compileOrder(query)}else{query.orderfn=null}}if(this.into){if(this.into instanceof yy.Table){if(alasql.options.autocommit&&alasql.databases[this.into.databaseid||databaseid].engineid){query.intoallfns='return alasql.engines["'+alasql.databases[this.into.databaseid||databaseid].engineid+'"]'+'.intoTable("'+(this.into.databaseid||databaseid)+'","'+this.into.tableid+'",this.data, columns, cb);'}else{query.intofns="alasql.databases['"+(this.into.databaseid||databaseid)+"'].tables"+"['"+this.into.tableid+"'].data.push(r);"}}else if(this.into instanceof yy.VarValue){query.intoallfns='alasql.vars["'+this.into.variable+'"]=this.data;res=1;if(cb)res=cb(res);return res;'}else if(this.into instanceof yy.FuncValue){var qs="alasql.into['"+this.into.funcid.toUpperCase()+"'](";if(this.into.args&&this.into.args.length>0){qs+=this.into.args[0].toJavaScript()+",";if(this.into.args.length>1){qs+=this.into.args[1].toJavaScript()+","}else{qs+="null,"}}else{qs+="null, null,"}query.intoallfns=qs+"this.data,columns,cb)"}else if(this.into instanceof yy.ParamValue){query.intofns="params['"+this.into.param+"'].push(r)"}if(query.intofns){query.intofn=new Function("r,i,params,alasql",query.intofns)}if(query.intoallfns){query.intoallfn=new Function("columns,cb,alasql",query.intoallfns)}}var statement=function(params,cb,oldscope){query.params=params;var res1=queryfn(query,oldscope,function(res){var res2=modify(query,res);if(cb)cb(res2);return res2});return res1};statement.query=query;return statement};function modify(query,res){if(query.modifier=="VALUE"){if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];res=res[0][key]}else{res=undefined}}if(query.modifier=="ROW"){if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];var a=[];for(var key in res[0]){a.push(res[0][key])}res=a}else{res=undefined}}if(query.modifier=="COLUMN"){var ar=[];if(res.length>0){var key;if(query.columns&&query.columns.length>0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];for(var i=0,ilen=res.length;i0){key=query.columns[0].columnid;val=query.columns[1].columnid}else{var okeys=Object.keys(res[0]);key=okeys[0];val=okeys[1]}for(var i=0,ilen=res.length;i0)key=query.columns[0].columnid;else key=Object.keys(res[0])[0];var s="";for(var i=0,ilen=res.length;i0){if(tq.args[0]){s+=tq.args[0].toJavaScript("query.oldscope")+","}else{s+="null,"}if(tq.args[1]){s+=tq.args[1].toJavaScript("query.oldscope")+","}else{s+="null,"}}else{s+="null,null,"}s+="cb,idx,query";s+=");/*if(cb)res=cb(res,idx,query);*/return res";source.datafn=new Function("query, params, cb, idx, alasql",s)}else if(tq instanceof yy.FromData){source.datafn=function(query,params,cb,idx,alasql){var res=tq.data;if(cb)res=cb(res,idx,query);return res}}else{throw new Error("Wrong table at FROM")}query.sources.push(source)});query.defaultTableid=query.sources[0].alias};alasql.prepareFromData=function(data,array){var res=data;if(typeof data=="string"){res=data.split(/\r?\n/);if(array){for(var i=0,ilen=res.length;i0){if(jn.args[0]){s+=jn.args[0].toJavaScript("query.oldscope")+","}else{s+="null,"}if(jn.args[1]){s+=jn.args[1].toJavaScript("query.oldscope")+","}else{s+="null,"}}else{s+="null,null,"}s+="cb,idx,query";s+=");/*if(cb)res=cb(res,idx,query);*/return res";source.datafn=new Function("query, params, cb, idx, alasql",s);query.aliases[source.alias]={type:"funcvalue"}}var alias=source.alias;if(jn.natural){if(jn.using||jn.on){throw new Error("NATURAL JOIN cannot have USING or ON clauses")}else{if(query.sources.length>0){var prevSource=query.sources[query.sources.length-1];var prevTable=alasql.databases[prevSource.databaseid].tables[prevSource.tableid];var table=alasql.databases[source.databaseid].tables[source.tableid];if(prevTable&&table){var c1=prevTable.columns.map(function(col){return col.columnid});var c2=table.columns.map(function(col){return col.columnid});jn.using=arrayIntersect(c1,c2).map(function(colid){return{columnid:colid}})}else{throw new Error("In this version of Alasql NATURAL JOIN "+"works for tables with predefined columns only")}}}}if(jn.using){var prevSource=query.sources[query.sources.length-1];source.onleftfns=jn.using.map(function(col){return"p['"+(prevSource.alias||prevSource.tableid)+"']['"+col.columnid+"']"}).join('+"`"+');source.onleftfn=new Function("p,params,alasql","return "+source.onleftfns);source.onrightfns=jn.using.map(function(col){return"p['"+(source.alias||source.tableid)+"']['"+col.columnid+"']"}).join('+"`"+');source.onrightfn=new Function("p,params,alasql","return "+source.onrightfns);source.optimization="ix"}else if(jn.on){if(jn.on instanceof yy.Op&&jn.on.op=="="&&!jn.on.allsome){source.optimization="ix";var lefts="";var rights="";var middles="";var middlef=false;var ls=jn.on.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=jn.on.right.toJavaScript("p",query.defaultTableid,query.defcols);if(ls.indexOf("p['"+alias+"']")>-1&&!(rs.indexOf("p['"+alias+"']")>-1)){if((ls.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){rights=ls}else{middlef=true}}else if(!(ls.indexOf("p['"+alias+"']")>-1)&&rs.indexOf("p['"+alias+"']")>-1){if((rs.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){lefts=ls}else{middlef=true}}else{middlef=true}if(rs.indexOf("p['"+alias+"']")>-1&&!(ls.indexOf("p['"+alias+"']")>-1)){if((rs.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){rights=rs}else{middlef=true}}else if(!(rs.indexOf("p['"+alias+"']")>-1)&&ls.indexOf("p['"+alias+"']")>-1){if((ls.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+alias+"']"})){lefts=rs}else{middlef=true}}else{middlef=true}if(middlef){rights="";lefts="";middles=jn.on.toJavaScript("p",query.defaultTableid,query.defcols);source.optimization="no"}source.onleftfns=lefts;source.onrightfns=rights;source.onmiddlefns=middles||"true";source.onleftfn=new Function("p,params,alasql","return "+source.onleftfns);source.onrightfn=new Function("p,params,alasql","return "+source.onrightfns);source.onmiddlefn=new Function("p,params,alasql","return "+source.onmiddlefns)}else{source.optimization="no";source.onmiddlefns=jn.on.toJavaScript("p",query.defaultTableid,query.defcols);source.onmiddlefn=new Function("p,params,alasql","return "+jn.on.toJavaScript("p",query.defaultTableid,query.defcols))}}query.sources.push(source)}})};yy.Select.prototype.compileWhere=function(query){if(this.where){if(typeof this.where=="function"){return this.where}else{s=this.where.toJavaScript("p",query.defaultTableid,query.defcols);query.wherefns=s;return new Function("p,params,alasql","return "+s)}}else return function(){return true}};yy.Select.prototype.compileWhereJoins=function(query){return;optimizeWhereJoin(query,this.where.expression);query.sources.forEach(function(source){if(source.srcwherefns){source.srcwherefn=new Function("p,params,alasql","return "+source.srcwherefns)}if(source.wxleftfns){source.wxleftfn=new Function("p,params,alasql","return "+source.wxleftfns)}if(source.wxrightfns){source.wxrightfn=new Function("p,params,alasql","return "+source.wxrightfns)}})};function optimizeWhereJoin(query,ast){if(!ast)return false;if(!(ast instanceof yy.Op))return;if(ast.op!="="&&ast.op!="AND")return;if(ast.allsome)return;var s=ast.toJavaScript("p",query.defaultTableid,query.defcols);var fsrc=[];query.sources.forEach(function(source,idx){if(source.tableid){if(s.indexOf("p['"+source.alias+"']")>-1)fsrc.push(source)}});if(fsrc.length==0){return}else if(fsrc.length==1){if(!(s.match(/p\[\'.*?\'\]/g)||[]).every(function(s){return s=="p['"+fsrc[0].alias+"']"})){return}var src=fsrc[0];src.srcwherefns=src.srcwherefns?src.srcwherefns+"&&"+s:s;if(ast instanceof yy.Op&&(ast.op=="="&&!ast.allsome)){if(ast.left instanceof yy.Column){var ls=ast.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=ast.right.toJavaScript("p",query.defaultTableid,query.defcols);if(rs.indexOf("p['"+fsrc[0].alias+"']")==-1){fsrc[0].wxleftfns=ls;fsrc[0].wxrightfns=rs}}if(ast.right instanceof yy.Column){var ls=ast.left.toJavaScript("p",query.defaultTableid,query.defcols);var rs=ast.right.toJavaScript("p",query.defaultTableid,query.defcols);if(ls.indexOf("p['"+fsrc[0].alias+"']")==-1){fsrc[0].wxleftfns=rs;fsrc[0].wxrightfns=ls}}}ast.reduced=true;return}else{if(ast.op="AND"){optimizeWhereJoin(query,ast.left);optimizeWhereJoin(query,ast.right)}}}yy.Select.prototype.compileGroup=function(query){var self=this;var tableid=query.sources[0].alias;var defcols=query.defcols;var allgroup=[[]];if(this.group){allgroup=decartes(this.group,query)
-}var allgroups=[];allgroup.forEach(function(a){allgroups=arrayUnion(allgroups,a)});query.allgroups=allgroups;if(false){allgroups.forEach(function(col2){if(query.selectColumns[colid]){}else{var tmpid="default";if(query.sources.length>0)tmpid=query.sources[0].alias;if(Object.keys(query.selectColumns).length!=0)query.removeKeys.push(colid);query.selectfns+="r['"+escapeq(colid)+"']="+new yy.Column({columnid:colid}).toJavaScript("p",tmpid)+";"}})}var s="";allgroup.forEach(function(agroup){s+="var g=this.xgroups[";var rg=agroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];if(columnid=="")return"1";else return coljs});if(rg.length==0)rg=["''"];s+=rg.join('+"`"+');s+="];if(!g) {this.groups.push((g=this.xgroups[";s+=rg.join('+"`"+');s+="] = {";s+=agroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];if(columnid=="")return"";else return"'"+columnid+"':"+coljs+","}).join("");var neggroup=arrayDiff(allgroups,agroup);s+=neggroup.map(function(col2){var columnid=col2.split(" ")[0];var coljs=col2.split(" ")[1];return"'"+columnid+"':null,"}).join("");var aft="";s+=query.selectGroup.map(function(col,idx){var colexp=col.expression.toJavaScript("p",tableid,defcols);var colas=col.nick;if(col instanceof yy.AggrValue){if(col.distinct){aft+=",g['$$_VALUES_"+colas+"']={},g['$$_VALUES_"+colas+"']["+colexp+"]=true"}if(col.aggregatorid=="SUM"||col.aggregatorid=="MIN"||col.aggregatorid=="MAX"||col.aggregatorid=="FIRST"||col.aggregatorid=="LAST"){return"'"+colas+"':"+colexp+","}else if(col.aggregatorid=="ARRAY"){return"'"+colas+"':["+colexp+"],"}else if(col.aggregatorid=="COUNT"){if(col.expression.columnid=="*"){return"'"+colas+"':1,"}else{return"'"+colas+"':(typeof "+colexp+' != "undefined")?1:0,'}}else if(col.aggregatorid=="AVG"){query.removeKeys.push("_SUM_"+colas);query.removeKeys.push("_COUNT_"+colas);return"'"+colas+"':"+colexp+",'_SUM_"+colas+"':"+colexp+",'_COUNT_"+colas+"':1,"}else if(col.aggregatorid=="AGGR"){aft+=",g['"+colas+"']="+col.expression.toJavaScript("g",-1);return""}else if(col.aggregatorid=="REDUCE"){return"'"+colas+"':alasql.aggr['"+col.funcid+"']("+colexp+"),"}return""}else return""}).join("");s+="}"+aft+",g));} else {";s+=query.selectGroup.map(function(col,idx){var colas=col.nick;var colexp=col.expression.toJavaScript("p",tableid,defcols);if(col instanceof yy.AggrValue){if(col.distinct){var pre="if(typeof "+colexp+'!="undefined" && (!g[\'$$_VALUES_'+colas+"']["+colexp+"])) {";var post="g['$$_VALUES_"+colas+"']["+colexp+"]=true;}"}else{var pre="",post=""}if(col.aggregatorid=="SUM"){return pre+"g['"+colas+"']+="+colexp+";"+post}else if(col.aggregatorid=="COUNT"){if(col.expression.columnid=="*")return pre+"g['"+colas+"']++;"+post;else{return pre+"if(typeof "+colexp+'!="undefined") g[\''+colas+"']++;"+post}}else if(col.aggregatorid=="ARRAY"){return pre+"g['"+colas+"'].push("+colexp+");"+post}else if(col.aggregatorid=="MIN"){return pre+"g['"+colas+"']=Math.min(g['"+colas+"'],"+colexp+");"+post}else if(col.aggregatorid=="MAX"){return pre+"g['"+colas+"']=Math.max(g['"+colas+"'],"+colexp+");"+post}else if(col.aggregatorid=="FIRST"){return""}else if(col.aggregatorid=="LAST"){return pre+"g['"+colas+"']="+colexp+";"+post}else if(col.aggregatorid=="AVG"){return pre+"g['_SUM_"+colas+"']+="+colexp+";"+"g['_COUNT_"+colas+"']++;"+"g['"+colas+"']=g['_SUM_"+colas+"']/g['_COUNT_"+colas+"'];"+post}else if(col.aggregatorid=="AGGR"){return pre+"g['"+colas+"']="+col.expression.toJavaScript("g",-1)+";"+post}else if(col.aggregatorid=="REDUCE"){return pre+"g['"+colas+"']=alasql.aggr."+col.funcid+"("+colexp+",g['"+colas+"']);"+post}return""}else return""}).join("");s+="}"});return new Function("p,params,alasql",s)};function compileSelectStar(query,alias){var s="",sp="",ss=[];if(query.aliases[alias].tableid){var columns=alasql.databases[query.aliases[alias].databaseid].tables[query.aliases[alias].tableid].columns}if(columns&&columns.length>0){columns.forEach(function(tcol){ss.push("'"+tcol.columnid+"':p['"+alias+"']['"+tcol.columnid+"']");query.selectColumns[escapeq(tcol.columnid)]=true;var coldef={columnid:tcol.columnid,dbtypeid:tcol.dbtypeid,dbsize:tcol.dbsize,dbprecision:tcol.dbprecision,dbenum:tcol.dbenum};query.columns.push(coldef);query.xcolumns[coldef.columnid]=coldef})}else{sp+='var w=p["'+alias+'"];for(var k in w){r[k]=w[k]};';query.dirtyColumns=true}return{s:ss.join(","),sp:sp}}yy.Select.prototype.compileSelect1=function(query){var self=this;query.columns=[];query.xcolumns={};query.selectColumns={};query.dirtyColumns=false;var s="var r={";var sp="";var ss=[];this.columns.forEach(function(col){if(col instanceof yy.Column){if(col.columnid=="*"){if(col.func){sp+="r=params['"+col.param+"'](p['"+query.sources[0].alias+"'],p,params,alasql);"}else if(col.tableid){var ret=compileSelectStar(query,col.tableid);if(ret.s)ss=ss.concat(ret.s);sp+=ret.sp}else{for(var alias in query.aliases){var ret=compileSelectStar(query,alias);if(ret.s)ss=ss.concat(ret.s);sp+=ret.sp}}}else{var tbid=col.tableid;var dbid=col.databaseid||query.sources[0].databaseid||query.database.databaseid;if(!tbid)tbid=query.defcols[col.columnid];if(!tbid)tbid=query.defaultTableid;if(col.columnid!="_"){ss.push("'"+escapeq(col.as||col.columnid)+"':p['"+tbid+"']['"+col.columnid+"']")}else{ss.push("'"+escapeq(col.as||col.columnid)+"':p['"+tbid+"']")}query.selectColumns[escapeq(col.as||col.columnid)]=true;if(query.aliases[tbid]&&query.aliases[tbid].type=="table"){if(!alasql.databases[dbid].tables[query.aliases[tbid].tableid]){throw new Error("Table '"+tbid+"' does not exists in database")}var columns=alasql.databases[dbid].tables[query.aliases[tbid].tableid].columns;var xcolumns=alasql.databases[dbid].tables[query.aliases[tbid].tableid].xcolumns;if(xcolumns&&columns.length>0){var tcol=xcolumns[col.columnid];var coldef={columnid:col.as||col.columnid,dbtypeid:tcol.dbtypeid,dbsize:tcol.dbsize,dbpecision:tcol.dbprecision,dbenum:tcol.dbenum};query.columns.push(coldef);query.xcolumns[coldef.columnid]=coldef}else{query.dirtyColumns=true}}else{}}}else if(col instanceof yy.AggrValue){if(!self.group){self.group=[""]}if(!col.as)col.as=escapeq(col.toString());if(col.aggregatorid=="SUM"||col.aggregatorid=="MAX"||col.aggregatorid=="MIN"||col.aggregatorid=="FIRST"||col.aggregatorid=="LAST"||col.aggregatorid=="AVG"||col.aggregatorid=="ARRAY"||col.aggregatorid=="REDUCE"){ss.push("'"+escapeq(col.as)+"':"+col.expression.toJavaScript("p",query.defaultTableid,query.defcols))}else if(col.aggregatorid=="COUNT"){ss.push("'"+escapeq(col.as)+"':1")}query.selectColumns[col.aggregatorid+"("+escapeq(col.expression.toString())+")"]=thtd}else{ss.push("'"+escapeq(col.as||col.columnid||col.toString())+"':"+col.toJavaScript("p",query.defaultTableid,query.defcols));query.selectColumns[escapeq(col.as||col.columnid||col.toString())]=true}});s+=ss.join(",")+"};"+sp;return s};yy.Select.prototype.compileSelect2=function(query){var s=query.selectfns;return new Function("p,params,alasql",s+"return r")};yy.Select.prototype.compileSelectGroup0=function(query){var self=this;self.columns.forEach(function(col,idx){if(col instanceof yy.Column&&col.columnid=="*"){}else{var colas;if(col instanceof yy.Column){colas=escapeq(col.columnid)}else{colas=escapeq(col.toString())}for(var i=0;irb)return 1;if(ra==rb)return 0;return-1}}var s="";var sk="";this.order.forEach(function(ord,idx){var dg="";if(ord.expression instanceof yy.NumValue){ord.expression=self.columns[ord.expression.value-1]}if(ord.expression instanceof yy.Column){var columnid=ord.expression.columnid;if(query.xcolumns[columnid]){var dbtypeid=query.xcolumns[columnid].dbtypeid;if(dbtypeid=="DATE"||dbtypeid=="DATETIME")dg=".valueOf()"}else{if(alasql.options.valueof)dg=".valueOf()"}if(ord.nocase)dg+=".toUpperCase()";s+="if(a['"+columnid+"']"+dg+(ord.direction=="ASC"?">":"<")+"b['"+columnid+"']"+dg+")return 1;";s+="if(a['"+columnid+"']"+dg+"==b['"+columnid+"']"+dg+"){"}else{dg=".valueOf()";if(ord.nocase)dg+=".toUpperCase()";s+="if("+ord.toJavaScript("a","")+dg+(ord.direction=="ASC"?">":"<")+ord.toJavaScript("b","")+dg+")return 1;";s+="if("+ord.toJavaScript("a","")+dg+"=="+ord.toJavaScript("b","")+dg+"){"}sk+="}"});s+="return 0;";s+=sk+"return -1";query.orderfns=s;return new Function("a,b",s)}};var rollup=function(a,query){var rr=[];var mask=0;var glen=a.length;for(var g=0;g"){var s=this.left.toString()+"->";if(typeof this.right!="string"&&typeof this.right!="number")s+="(";s+=this.right.toString();if(typeof this.right!="string"&&typeof this.right!="number")s+=")";return s}return this.left.toString()+" "+P(this.op)+" "+(this.allsome?this.allsome+" ":"")+this.right.toString()};yy.Op.prototype.findAggregator=function(query){if(this.left&&this.left.findAggregator)this.left.findAggregator(query);if(this.right&&this.right.findAggregator&&!this.allsome){this.right.findAggregator(query)}};yy.Op.prototype.toType=function(tableid){if(["-","*","/","%","^"].indexOf(this.op)>-1)return"number";if(this.op=="+"){if(this.left.toType(tableid)=="string"||this.right.toType(tableid)=="string")return"string";if(this.left.toType(tableid)=="number"||this.right.toType(tableid)=="number")return"number"}if(["AND","OR","NOT","=","==","===","!=","!==","!===",">",">=","<","<=","IN","NOT IN","LIKE","NOT LIKE"].indexOf(this.op)>-1)return"boolean";if(this.op=="BETWEEN"||this.op=="NOT BETWEEN"||this.op=="IS NULL"||this.op=="IS NOT NULL")return"boolean";if(this.allsome)return"boolean";if(!this.op)return this.left.toType();return"unknown"};yy.Op.prototype.toJavaScript=function(context,tableid,defcols){var op=this.op;if(this.op=="=")op="===";else if(this.op=="<>")op="!=";else if(this.op=="OR")op="||";if(this.op=="->"){if(typeof this.right=="string"){return this.left.toJavaScript(context,tableid,defcols)+'["'+this.right+'"]'}else if(typeof this.right=="number"){return this.left.toJavaScript(context,tableid,defcols)+"["+this.right+"]"}else if(this.right instanceof yy.FuncValue){ss=[];if(!this.right.args||this.right.args.length==0){}else{var ss=this.right.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)})}return this.left.toJavaScript(context,tableid,defcols)+"['"+this.right.funcid+"']("+ss.join(",")+")"}else{return this.left.toJavaScript(context,tableid,defcols)+"["+this.right.toJavaScript(context,tableid,defcols)+"]"}}if(this.op=="IS"){return"((typeof "+this.left.toJavaScript(context,tableid,defcols)+"=='undefined') == "+"(typeof "+this.right.toJavaScript(context,tableid,defcols)+"=='undefined'))"}if(this.op=="=="){return"alasql.utils.deepEqual("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+")"}if(this.op=="==="){return"(("+this.left.toJavaScript(context,tableid,defcols)+").valueOf()===("+this.right.toJavaScript(context,tableid,defcols)+".valueOf()))"}if(this.op=="!==="){return"!(("+this.left.toJavaScript(context,tableid,defcols)+").valueOf()===("+this.right.toJavaScript(context,tableid,defcols)+".valueOf()))"}if(this.op=="!=="){return"(!alasql.utils.deepEqual("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+"))"}if(this.op=="LIKE"){var s="("+this.left.toJavaScript(context,tableid,defcols)+"+'')"+".toUpperCase().match(new RegExp('^'+("+this.right.toJavaScript(context,tableid,defcols)+").replace(/\\%/g,'.*').toUpperCase()+'$','g'))";return s}if(this.op=="NOT LIKE"){var s="!(("+this.left.toJavaScript(context,tableid,defcols)+"+'')"+".toUpperCase().match(new RegExp('^'+("+this.right.toJavaScript(context,tableid,defcols)+").replace(/\\%/g,'.*').toUpperCase()+'$','g')))";return s}if(this.op=="BETWEEN"){if(this.right instanceof yy.Op&&this.right.op=="AND"){return"(("+this.right.left.toJavaScript(context,tableid,defcols)+"<="+this.left.toJavaScript(context,tableid,defcols)+")&&"+"("+this.left.toJavaScript(context,tableid,defcols)+"<="+this.right.right.toJavaScript(context,tableid,defcols)+"))"}else{throw new Error("Wrong BETWEEN operator without AND part")}}if(this.op=="NOT BETWEEN"){if(this.right instanceof yy.Op&&this.right.op=="AND"){return"!(("+this.right.left.toJavaScript(context,tableid,defcols)+"<="+this.left.toJavaScript(context,tableid,defcols)+")&&"+"("+this.left.toJavaScript(context,tableid,defcols)+"<="+this.right.right.toJavaScript(context,tableid,defcols)+"))"}else{throw new Error("Wrong NOT BETWEEN operator without AND part")}}if(this.op=="IN"){if(this.right instanceof yy.Select){var s="(";s+="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}else if(this.right instanceof Array){var s="(["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}else{var s="("+this.right.toJavaScript(context,tableid,defcols)+".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")>-1)";return s}}if(this.op=="NOT IN"){if(this.right instanceof yy.Select){var s="(";s+="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")<0)";return s}else if(this.right instanceof Array){var s="(["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].indexOf(";s+=this.left.toJavaScript(context,tableid,defcols)+")<0)";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.allsome=="ALL"){if(this.right instanceof yy.Select){var s="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".every(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else if(this.right instanceof Array){var s="["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].every(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.allsome=="SOME"||this.allsome=="ANY"){if(this.right instanceof yy.Select){var s="alasql.utils.flatArray(this.query.queriesfn["+this.queriesidx+"](params,null,p))";s+=".some(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else if(this.right instanceof Array){var s="["+this.right.map(function(a){return a.toJavaScript(context,tableid,defcols)}).join(",")+"].some(function(b){return (";s+=this.left.toJavaScript(context,tableid,defcols)+")"+op+"b})";return s}else{throw new Error("Wrong NOT IN operator without SELECT part")}}if(this.op=="AND"){if(this.left.reduced){if(this.right.reduced){return"true"}else{return this.right.toJavaScript(context,tableid,defcols)}}else if(this.right.reduced){return this.left.toJavaScript(context,tableid,defcols)}op="&&"}if(this.op=="^"){return"Math.pow("+this.left.toJavaScript(context,tableid,defcols)+","+this.right.toJavaScript(context,tableid,defcols)+")"}return"("+this.left.toJavaScript(context,tableid,defcols)+op+this.right.toJavaScript(context,tableid,defcols)+")"};yy.VarValue=function(params){return yy.extend(this,params)};yy.VarValue.prototype.toString=function(){return"@"+L(this.variable)};yy.VarValue.prototype.toType=function(){return"unknown"};yy.VarValue.prototype.toJavaScript=function(){return"alasql.vars['"+this.variable+"']"};yy.NumValue=function(params){return yy.extend(this,params)};yy.NumValue.prototype.toString=function(){return N(this.value.toString())};yy.NumValue.prototype.toType=function(){return"number"};yy.NumValue.prototype.toJavaScript=function(){return""+this.value};yy.StringValue=function(params){return yy.extend(this,params)};yy.StringValue.prototype.toString=function(){return"'"+S(this.value.toString())+"'"};yy.StringValue.prototype.toType=function(){return"string"};yy.StringValue.prototype.toJavaScript=function(){return"'"+escapeq(this.value)+"'"};yy.LogicValue=function(params){return yy.extend(this,params)};yy.LogicValue.prototype.toString=function(){return this.value?"TRUE":"FALSE"};yy.LogicValue.prototype.toType=function(){return"boolean"};yy.LogicValue.prototype.toJavaScript=function(){return this.value?"true":"false"};yy.NullValue=function(params){return yy.extend(this,params)};yy.NullValue.prototype.toString=function(){return"NULL"};yy.NullValue.prototype.toJavaScript=function(){return"undefined"};yy.ParamValue=function(params){return yy.extend(this,params)};yy.ParamValue.prototype.toString=function(){return"$"+this.param};yy.ParamValue.prototype.toJavaScript=function(){if(typeof this.param=="string")return"params['"+this.param+"']";else return"params["+this.param+"]"};yy.UniOp=function(params){return yy.extend(this,params)};yy.UniOp.prototype.toString=function(){if(this.op=="-")return this.op+this.right.toString();if(this.op=="+")return this.op+this.right.toString();if(this.op=="NOT")return this.op+"("+this.right.toString()+")";else if(this.op==null)return"("+this.right.toString()+")"};yy.UniOp.prototype.findAggregator=function(query){if(this.right.findAggregator)this.right.findAggregator(query)};yy.UniOp.prototype.toType=function(tableid){if(this.op=="-")return"number";if(this.op=="+")return"number";if(this.op=="NOT")return"boolean"};yy.UniOp.prototype.toJavaScript=function(context,tableid,defcols){if(this.op=="-")return"(-("+this.right.toJavaScript(context,tableid,defcols)+"))";if(this.op=="+")return"("+this.right.toJavaScript(context,tableid,defcols)+")";if(this.op=="NOT")return"!("+this.right.toJavaScript(context,tableid,defcols)+")";else if(this.op==null)return"("+this.right.toJavaScript(context,tableid,defcols)+")"};yy.Column=function(params){return yy.extend(this,params)};yy.Column.prototype.toString=function(){var s;if(this.columnid==+this.columnid){s="["+this.columnid+"]"}else{s=this.columnid}if(this.tableid){if(+this.columnid==this.columnid){s=this.tableid+s}else{s=this.tableid+"."+s}if(this.databaseid){s=this.databaseid+"."+s}}return s};yy.Column.prototype.toJavaScript=function(context,tableid,defcols){var s="";if(!this.tableid&&tableid==""&&!defcols){if(this.columnid!="_"){s=context+"['"+this.columnid+"']"}else{if(context=="g"){s="g['_']"}else{s=context}}}else{if(context=="g"){s="g['"+this.nick+"']"}else if(this.tableid){if(this.columnid!="_"){s=context+"['"+this.tableid+"']['"+this.columnid+"']"}else{if(context=="g"){s="g['_']"}else{s=context+"['"+this.tableid+"']"}}}else if(defcols){var tbid=defcols[this.columnid];if(tbid=="-"){throw new Error('Cannot resolve column "'+this.columnid+'" because it exists in two source tables')}else if(tbid){if(this.columnid!="_"){s=context+"['"+tbid+"']['"+this.columnid+"']"}else{s=context+"['"+tbid+"']"}}else{if(this.columnid!="_"){s=context+"['"+(this.tableid||tableid)+"']['"+this.columnid+"']"}else{s=context+"['"+(this.tableid||tableid)+"']"}}}else if(tableid==-1){s=context+"['"+this.columnid+"']"}else{if(this.columnid!="_"){s=context+"['"+(this.tableid||tableid)+"']['"+this.columnid+"']"}else{s=context+"['"+(this.tableid||tableid)+"']"}}}return s};yy.AggrValue=function(params){return yy.extend(this,params)};yy.AggrValue.prototype.toString=function(){var s="";if(this.aggregatorid=="REDUCE")s+=L(this.funcid)+"(";else s+=this.aggregatorid+"(";if(this.distinct)s+=K("DISTINCT")+" ";if(this.expression)s+=this.expression.toString();s+=")";if(this.over)s+=" "+this.over.toString();return s};yy.AggrValue.prototype.findAggregator=function(query){var colas=escapeq(this.toString())+":"+query.selectGroup.length;var found=false;if(!found){if(!this.nick){this.nick=colas;var found=false;for(var i=0;i-1)return"number";if(["ARRAY"].indexOf(this.aggregatorid)>-1)return"array";if(["FIRST","LAST"].indexOf(this.aggregatorid)>-1)return this.expression.toType()};yy.AggrValue.prototype.toJavaScript=function(context,tableid,defcols){var colas=this.nick;if(typeof colas=="undefined")colas=this.toString();return"g['"+colas+"']"};yy.OrderExpression=function(params){return yy.extend(this,params)};yy.OrderExpression.prototype.toString=function(){var s=this.expression.toString();if(this.order)s+=" "+this.order.toString();if(this.nocase)s+=" "+K("COLLATE")+" "+K("NOCASE");return s};yy.GroupExpression=function(params){return yy.extend(this,params)};yy.GroupExpression.prototype.toString=function(){return this.type+"("+this.group.toString()+")"};yy.ColumnDef=function(params){return yy.extend(this,params)};yy.ColumnDef.prototype.toString=function(){var s=this.columnid;if(this.dbtypeid)s+=" "+this.dbtypeid;if(this.dbsize){s+="("+this.dbsize;if(this.dbprecision)s+=","+this.dbprecision;s+=")"}if(this.primarykey)s+=" PRIMARY KEY";if(this.notnull)s+=" NOT NULL";return s};yy.FromData=function(params){return yy.extend(this,params)};yy.FromData.prototype.toString=function(){if(this.data)return K("DATA")+"("+(Math.random()*1e16|0)+")";else return"?"};yy.FromData.prototype.toJavaScript=function(){};yy.Select.prototype.exec=function(params,cb){if(this.preparams)params=this.preparams.concat(params);var databaseid=alasql.useid;db=alasql.databases[databaseid];var sql=this.toString();var hh=hash(sql);var statement=this.compile(databaseid);if(!statement)return;statement.sql=sql;statement.dbversion=db.dbversion;if(db.sqlCacheSize>alasql.MAXSQLCACHESIZE){db.resetSqlCache()}db.sqlCacheSize++;db.sqlCache[hh]=statement;var res=alasql.res=statement(params,cb);return res};yy.Select.prototype.Select=function(){var self=this;var agrs=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}self.columns=[];args.forEach(function(arg){if(typeof arg=="string"){self.columns.push(new yy.Column({columnid:arg}))}else if(typeof arg=="function"){var pari=0;if(self.preparams){pari=self.preparams.length}else{self.preparams=[]}self.preparams.push(arg);self.columns.push(new yy.Column({columnid:"*",func:arg,param:pari}))}else{}});return self};yy.Select.prototype.From=function(tableid){var self=this;if(!self.from)self.from=[];if(tableid instanceof Array){var pari=0;if(self.preparams){pari=self.preparams.length}else{self.preparams=[]}self.preparams.push(tableid);self.from.push(new yy.ParamValue({param:pari}))}else if(typeof tableid=="string"){self.from.push(new yy.Table({tableid:tableid}))}else{throw new Error("Unknown arguments in From() function")}return self};yy.Select.prototype.OrderBy=function(){var self=this;var agrs=[];self.order=[];if(arguments.length==0){args=["_"]}else if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}if(args.length>0){args.forEach(function(arg){var expr=new yy.Column({columnid:arg});if(typeof arg=="function"){expr=arg}self.order.push(new yy.OrderExpression({expression:expr,direction:"ASC"}))})}return self};yy.Select.prototype.Top=function(topnum){var self=this;self.top=new yy.NumValue({value:topnum});return self};yy.Select.prototype.GroupBy=function(){var self=this;var agrs=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments)}else if(arguments.length==1){if(arguments[0]instanceof Array){args=arguments[0]
-}else{args=[arguments[0]]}}else{throw new Error("Wrong number of arguments of Select() function")}self.group=[];args.forEach(function(arg){var expr=new yy.Column({columnid:arg});self.group.push(expr)});return self};yy.Select.prototype.Where=function(expr){var self=this;if(typeof expr=="function"){self.where=expr}return self};yy.FuncValue=function(params){return yy.extend(this,params)};yy.FuncValue.prototype.toString=function(){var s="";if(alasql.fn[this.funcid])s+=this.funcid;else if(alasql.aggr[this.funcid])s+=this.funcid;else if(alasql.stdlib[this.funcid.toUpperCase()]||alasql.stdfn[this.funcid.toUpperCase()])s+=this.funcid.toUpperCase();s+="(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toString()}).join(",")}s+=")";if(this.as)s+=" AS "+this.as.toString();return s};yy.FuncValue.prototype.findAggregator=function(query){if(this.args&&this.args.length>0){this.args.forEach(function(arg){if(arg.findAggregator)arg.findAggregator(query)})}};yy.FuncValue.prototype.toJavaScript=function(context,tableid,defcols){var s="";var funcid=this.funcid;if(alasql.fn[funcid]){if(this.newid)s+="new ";s+="alasql.fn."+this.funcid+"(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)}).join(",")}s+=")"}else if(alasql.stdlib[funcid.toUpperCase()]){if(this.args&&this.args.length>0){s+=alasql.stdlib[funcid.toUpperCase()].apply(this,this.args.map(function(arg){return arg.toJavaScript(context,tableid)}))}else{s+=alasql.stdlib[funcid.toUpperCase()]()}}else if(alasql.stdfn[funcid.toUpperCase()]){if(this.newid)s+="new ";s+="alasql.stdfn."+this.funcid.toUpperCase()+"(";if(this.args&&this.args.length>0){s+=this.args.map(function(arg){return arg.toJavaScript(context,tableid,defcols)}).join(",")}s+=")"}else{}return s};var stdlib=alasql.stdlib={};var stdfn=alasql.stdfn={};stdlib.ABS=function(a){return"Math.abs("+a+")"};stdlib.CLONEDEEP=function(a){return"alasql.utils.cloneDeep("+a+")"};stdlib.IIF=function(a,b,c){if(arguments.length==3){return"(("+a+")?("+b+"):("+c+"))"}else{throw new Error("Number of arguments of IFF is not equals to 3")}};stdlib.IFNULL=function(a,b){return"("+a+"||"+b+")"};stdlib.INSTR=function(s,p){return"(("+s+").indexOf("+p+")+1)"};stdlib.LEN=stdlib.LENGTH=function(s){return"("+s+'+"").length'};stdlib.LOWER=stdlib.LCASE=function(s){return"("+s+").toLowerCase()"};stdlib.GREATEST=function(){return"Math.max("+Array.prototype.join.call(arguments,",")+")"};stdlib.LEAST=function(){return"Math.min("+Array.prototype.join.call(arguments,",")+")"};stdlib.MID=function(a,b,c){if(arguments.length==2)return"("+a+").substr("+b+"-1)";else if(arguments.length==3)return"("+a+").substr("+b+"-1,"+c+")"};stdlib.NULLIF=function(a,b){return"("+a+"=="+b+"?null:"+a+")"};stdlib.POWER=function(a,b){return"Math.pow("+a+","+b+")"};stdlib.RANDOM=function(r){if(arguments.length==0){return"Math.random()"}else{return"(Math.random()*("+r+")|0)"}};stdlib.ROUND=function(s,d){if(arguments.length==2){return"Math.round("+s+"*Math.pow(10,"+d+"))/Math.pow(10,"+d+")"}else{return"Math.round("+s+")"}};stdlib.SQRT=function(s){return"Math.sqrt("+s+")"};stdlib.TRIM=function(s){return s+".trim()"};stdlib.UPPER=stdlib.UCASE=function(s){return"("+s+").toUpperCase()"};alasql.aggr.GROUP_CONCAT=function(v,s){if(typeof s=="undefined")return v;else return s+","+v};yy.CaseValue=function(params){return yy.extend(this,params)};yy.CaseValue.prototype.toString=function(){var s="CASE ";if(this.expression)s+=this.expression.toString();if(this.whens){s+=this.whens.map(function(w){return" WHEN "+w.when.toString()+" THEN "+w.then.toString()}).join()}s+=" END";return s};yy.CaseValue.prototype.findAggregator=function(query){if(this.expression&&this.expression.findAggregator)this.expression.findAggregator(query);if(this.whens&&this.whens.length>0){this.whens.forEach(function(w){if(w.when.findAggregator)w.when.findAggregator(query);if(w.then.findAggregator)w.then.findAggregator(query)})}};yy.CaseValue.prototype.toJavaScript=function(context,tableid,defcols){var s="(function("+context+",params,alasql){var r;";if(this.expression){s+="v="+this.expression.toJavaScript(context,tableid,defcols)+";";s+=(this.whens||[]).map(function(w){return" if(v=="+w.when.toJavaScript(context,tableid,defcols)+") {r="+w.then.toJavaScript(context,tableid,defcols)+"}"}).join(" else ");if(this.elses)s+=" else {r="+this.elses.toJavaScript(context,tableid,defcols)+"}"}else{s+=(this.whens||[]).map(function(w){return" if("+w.when.toJavaScript(context,tableid,defcols)+") {r="+w.then.toJavaScript(context,tableid,defcols)+"}"}).join(" else ");if(this.elses)s+=" else {r="+this.elses.toJavaScript(context,tableid,defcols)+"}"}s+="return r;})("+context+",params,alasql)";return s};yy.Json=function(params){return yy.extend(this,params)};yy.Json.prototype.toString=function(){var s="@";s+=JSONtoString(this.value);s+="";return s};var JSONtoString=alasql.utils.JSONtoString=function(obj){var s="";if(typeof obj=="string")s='"'+obj+'"';else if(typeof obj=="number")s=obj;else if(typeof obj=="boolean")s=obj;else if(typeof obj=="object"){if(obj instanceof Array){s+="["+obj.map(function(b){return JSONtoString(b)}).join(",")+"]"}else if(!obj.toJavaScript||obj instanceof yy.Json){s="{";var ss=[];for(var k in obj){var s1="";if(typeof k=="string")s1+='"'+k+'"';else if(typeof k=="number")s1+=k;else if(typeof k=="boolean")s1+=k;else{throw new Error("THis is not ES6... no expressions on left side yet")}s1+=":"+JSONtoString(obj[k]);ss.push(s1)}s+=ss.join(",")+"}"}else if(obj.toString){s=obj.toString()}else{throw new Error("1Can not show JSON object "+JSON.stringify(obj))}}else{throw new Error("2Can not show JSON object "+JSON.stringify(obj))}return s};function JSONtoJavaScript(obj,context,tableid,defcols){var s="";if(typeof obj=="string")s='"'+obj+'"';else if(typeof obj=="number")s="("+obj+")";else if(typeof obj=="boolean")s=obj;else if(typeof obj=="object"){if(obj instanceof Array){s+="["+obj.map(function(b){return JSONtoJavaScript(b,context,tableid,defcols)}).join(",")+"]"}else if(!obj.toJavaScript||obj instanceof yy.Json){s="{";var ss=[];for(var k in obj){var s1="";if(typeof k=="string")s1+='"'+k+'"';else if(typeof k=="number")s1+=k;else if(typeof k=="boolean")s1+=k;else{throw new Error("THis is not ES6... no expressions on left side yet")}s1+=":"+JSONtoJavaScript(obj[k],context,tableid,defcols);ss.push(s1)}s+=ss.join(",")+"}"}else if(obj.toJavaScript){s=obj.toJavaScript(context,tableid,defcols)}else{throw new Error("1Can not parse JSON object "+JSON.stringify(obj))}}else{throw new Error("2Can not parse JSON object "+JSON.stringify(obj))}return s}yy.Json.prototype.toJavaScript=function(context,tableid,defcols){return JSONtoJavaScript(this.value,context,tableid,defcols)};yy.Convert=function(params){return yy.extend(this,params)};yy.Convert.prototype.toString=function(){var s="CONVERT(";s+=this.dbtypeid;if(typeof this.dbsize!="undefined"){s+="("+this.dbsize;if(this.dbprecision)s+=","+dbprecision;s+=")"}s+=","+this.expression.toString();if(this.style)s+=","+this.style;s+=")";return s};yy.Convert.prototype.toJavaScript=function(context,tableid,defcols){return"alasql.stdfn.CONVERT("+this.expression.toJavaScript(context,tableid,defcols)+',{dbtypeid:"'+this.dbtypeid+'",dbsize:'+this.dbsize+",style:"+this.style+"})";throw new Error("There is not such type conversion for "+this.toString())};alasql.stdfn.CONVERT=function(value,args){var val=value;if(args.style){var t;if(/\d{8}/.test(val))t=new Date(+val.substr(0,4),+val.substr(4,2)-1,+val.substr(6,2));else t=new Date(val);if(args.style==1){val=("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)+"/"+("0"+t.getYear()).substr(-2)}else if(args.style==2){val=("0"+t.getYear()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getDate()).substr(-2)}else if(args.style==3){val=("0"+t.getDate()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getYear()).substr(-2)}else if(args.style==4){val=("0"+t.getDate()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getYear()).substr(-2)}else if(args.style==5){val=("0"+t.getDate()).substr(-2)+"-"+("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getYear()).substr(-2)}else if(args.style==6){val=("0"+t.getDate()).substr(-2)+" "+t.toString().substr(4,3).toLowerCase()+" "+("0"+t.getYear()).substr(-2)}else if(args.style==7){val=t.toString().substr(4,3)+" "+("0"+t.getDate()).substr(-2)+","+("0"+t.getYear()).substr(-2)}else if(args.style==8){val=("0"+t.getHours()).substr(-2)+":"+("0"+(t.getMinutes()+1)).substr(-2)+":"+("0"+t.getSeconds()).substr(-2)}else if(args.style==10){val=("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getDate()).substr(-2)+"-"+("0"+t.getYear()).substr(-2)}else if(args.style==11){val=("0"+t.getYear()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)}else if(args.style==12){val=("0"+t.getYear()).substr(-2)+("0"+(t.getMonth()+1)).substr(-2)+("0"+t.getDate()).substr(-2)}else if(args.style==101){val=("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)+"/"+t.getFullYear()}else if(args.style==102){val=t.getFullYear()+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+("0"+t.getDate()).substr(-2)}else if(args.style==103){val=("0"+t.getDate()).substr(-2)+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+t.getFullYear()}else if(args.style==104){val=("0"+t.getDate()).substr(-2)+"."+("0"+(t.getMonth()+1)).substr(-2)+"."+t.getFullYear()}else if(args.style==105){val=("0"+t.getDate()).substr(-2)+"-"+("0"+(t.getMonth()+1)).substr(-2)+"-"+t.getFullYear()}else if(args.style==106){val=("0"+t.getDate()).substr(-2)+" "+t.toString().substr(4,3).toLowerCase()+" "+t.getFullYear()}else if(args.style==107){val=t.toString().substr(4,3)+" "+("0"+t.getDate()).substr(-2)+","+t.getFullYear()}else if(args.style==108){val=("0"+t.getHours()).substr(-2)+":"+("0"+(t.getMinutes()+1)).substr(-2)+":"+("0"+t.getSeconds()).substr(-2)}else if(args.style==110){val=("0"+(t.getMonth()+1)).substr(-2)+"-"+("0"+t.getDate()).substr(-2)+"-"+t.getFullYear()}else if(args.style==111){val=t.getFullYear()+"/"+("0"+(t.getMonth()+1)).substr(-2)+"/"+("0"+t.getDate()).substr(-2)}else if(args.style==112){val=t.getFullYear()+("0"+(t.getMonth()+1)).substr(-2)+("0"+t.getDate()).substr(-2)}else{throw new Error("The CONVERT style "+args.style+" is not realized yet.")}}if(args.dbtypeid=="Date"){return new Date(val)}else if(args.dbtypeid.toUpperCase()=="DATE"){var d=new Date(val);var s=d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);return s}else if(args.dbtypeid=="DATETIME"){var d=new Date(val);var s=d.getFullYear()+"."+("0"+(d.getMonth()+1)).substr(-2)+"."+("0"+d.getDate()).substr(-2);s+=" "+("0"+d.getHours()).substr(-2)+":"+("0"+d.getMinutes()).substr(-2)+":"+("0"+d.getSeconds()).substr(-2);s+="."+("00"+d.getMilliseconds()).substr(-3);return s}else if(args.dbtypeid.toUpperCase()=="STRING"){return""+val}else if(args.dbtypeid.toUpperCase()=="NUMBER"||args.dbtypeid=="FLOAT"){return+val}else if(args.dbtypeid.toUpperCase()=="MONEY"){var m=+val;return(m|0)+m*100%100/100}else if(args.dbtypeid.toUpperCase()=="BOOLEAN"){return!!val}else if(args.dbtypeid.toUpperCase()=="INT"){return val|0}else if(args.dbtypeid.toUpperCase()=="VARCHAR"||args.dbtypeid=="NVARCHAR"){if(args.dbsize)return(""+val).substr(0,args.dbsize);else return""+val}else if(args.dbtypeid.toUpperCase()=="CHAR"||args.dbtypeid=="NCHAR"){return(val+new Array(args.dbsize+1).join(" ")).substr(0,args.dbsize)}};yy.ColumnDef=function(params){return yy.extend(this,params)};yy.ColumnDef.prototype.toString=function(){var s=this.columnid;if(this.dbtypeid)s+=" "+this.dbtypeid;if(this.dbsize){s+="("+this.dbsize;if(this.dbprecision)s+=","+this.dbprecision;s+=")"}if(this.primarykey)s+=" PRIMARY KEY";if(this.notnull)s+=" NOT NULL";return s};yy.CreateTable=function(params){return yy.extend(this,params)};yy.CreateTable.prototype.toString=function(){var s=K("CREATE");if(this.temporary)s+=" "+K("TEMPORARY");if(this.view)s+=" "+K("VIEW");else s+=" "+K("TABLE");if(this.ifnotexists)s+=" "+K("IF")+" "+K("NOT")+" "+K("EXISTS");s+=" "+this.table.toString();if(this.viewcolumns){s+="("+this.viewcolumns.map(function(vcol){return vcol.toString()}).join(",")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);else{var ss=this.columns.map(function(col){return col.toString()});s+=" ("+NL()+ID()+ss.join(","+NL()+ID())+")"}if(this.view&&this.select){s+=" AS "+this.select.toString()}return s};yy.CreateTable.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.table.databaseid||databaseid];var tableid=this.table.tableid;if(!tableid){throw new Error("Table name is not defined")}var columns=this.columns;var constraints=this.constraints||[];if(this.ifnotexists&&db.tables[tableid])return 0;if(db.tables[tableid]){throw new Error("Can not create table '"+tableid+"', because it already exists in the database '"+db.databaseid+"'")}var table=db.tables[tableid]=new alasql.Table;var ss=[];if(this.columns){this.columns.forEach(function(col){var dbtypeid=col.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();var newcol={columnid:col.columnid,dbtypeid:dbtypeid};if(col.default){ss.push("'"+col.columnid+"':"+col.default.toJavaScript())}table.columns.push(newcol);table.xcolumns[newcol.columnid]=newcol;if(col.primarykey){var pk=table.pk={};pk.columns=[col.columnid];pk.onrightfns="r['"+col.columnid+"']";pk.onrightfn=new Function("r","return "+pk.onrightfns);pk.hh=hash(pk.onrightfns);table.indices[pk.hh]={}}})}table.defaultfns=ss.join(",");constraints.forEach(function(con){if(con.type=="PRIMARY KEY"){if(table.pk){throw new Error("Primary key already exists")}var pk=table.pk={};pk.columns=con.columns;pk.onrightfns=pk.columns.map(function(columnid){return"r['"+columnid+"']"}).join("+'`'+");pk.onrightfn=new Function("r","return "+pk.onrightfns);pk.hh=hash(pk.onrightfns);table.indices[pk.hh]={}}});if(this.view&&this.viewcolumns){var self=this;this.viewcolumns.forEach(function(vcol,idx){self.select.columns[idx].as=vcol.columnid})}if(db.engineid){return alasql.engines[db.engineid].createTable(this.table.databaseid||databaseid,tableid,this.ifnotexists,cb)}table.insert=function(r){if(this.pk){var pk=this.pk;var addr=pk.onrightfn(r);if(typeof this.indices[pk.hh][addr]!="undefined"){throw new Error("Cannot insert record, because it already exists in primary key")}else{table.data.push(r);this.indices[pk.hh][addr]=r}}else{table.data.push(r)}};table.delete=function(i){if(this.pk){var r=this.data[i];var pk=this.pk;var addr=pk.onrightfn(r);if(typeof this.indices[pk.hh][addr]=="undefined"){throw new Error("Something wrong with index on table")}else{this.indices[pk.hh][addr]=undefined}}};table.deleteall=function(){this.data.length=0;if(this.pk){this.indices[this.pk.hh]={}}};table.update=function(assignfn,i,params){if(this.pk){var r=this.data[i];var pk=this.pk;var addr=pk.onrightfn(r,params);if(typeof this.indices[pk.hh][addr]=="undefined"){throw new Error("Something wrong with index on table")}else{this.indices[pk.hh][addr]=undefined;assignfn(r,params,alasql);var newaddr=pk.onrightfn(r);if(typeof this.indices[pk.hh][newaddr]!="undefined"){throw new Error("Record already exists")}else{this.indices[pk.hh][newaddr]=r}}}else{assignfn(this.data[i],params,alasql)}};if(this.view&&this.select){table.view=true;table.select=this.select.compile(this.table.databaseid||databaseid)}if(cb)cb(1);return 1};alasql.fn.Date=Object;alasql.fn.Date=Date;alasql.fn.Number=Number;alasql.fn.String=String;alasql.fn.Boolean=Boolean;stdfn.EXTEND=alasql.utils.extend;stdfn.CHAR=String.fromCharCode.bind(String);stdfn.ASCII=function(a){return a.charCodeAt(0)};stdfn.COALESCE=function(){for(var i=0;i0){for(var i=0,ilen=table.data.length;i0){for(var i=0,ilen=table.data.length;i=0){q+="+"+values[idx].toJavaScript()}else if(alasql.fn[table.xcolumns[col.columnid].dbtypeid]){q+="(new "+table.xcolumns[col.columnid].dbtypeid+"(";q+=values[idx].toJavaScript();q+="))"}else{q+=values[idx].toJavaScript()}}else{q+=values[idx].toJavaScript()}ss.push(q)})}else{if(values instanceof Array&&table.columns&&table.columns.length>0){table.columns.forEach(function(col,idx){var q="'"+col.columnid+"':";if(["INT","FLOAT","NUMBER","MONEY"].indexOf(col.dbtypeid)>=0){q+="+"+values[idx].toJavaScript()}else if(alasql.fn[col.dbtypeid]){q+="(new "+col.dbtypeid+"(";q+=values[idx].toJavaScript();q+="))"}else{q+=values[idx].toJavaScript()}ss.push(q)})}else{sw=JSONtoJavaScript(values)}}if(db.tables[tableid].defaultfns)ss.unshift(db.tables[tableid].defaultfns);if(sw){s+="a="+sw+";"}else{s+="a={"+ss.join(",")+"};"}if(db.tables[tableid].insert){s+="alasql.databases['"+databaseid+"'].tables['"+tableid+"'].insert(a);"}else{s+="aa.push(a);"}});s33=s3+s;if(db.tables[tableid].insert){}else{s+="alasql.databases['"+databaseid+"'].tables['"+tableid+"'].data="+"alasql.databases['"+databaseid+"'].tables['"+tableid+"'].data.concat(aa);"}s+="return "+self.values.length;var insertfn=new Function("db, params, alasql",s3+s)}else if(this.select){selectfn=this.select.compile(databaseid);if(db.engineid&&alasql.engines[db.engineid].intoTable){var statement=function(params,cb){var aa=selectfn(params);var res=alasql.engines[db.engineid].intoTable(db.databaseid,tableid,aa,null,cb);return res};return statement}else{var insertfn=function(db,params,alasql){var res=selectfn(params);db.tables[tableid].data=db.tables[tableid].data.concat(res);return res.length}}}else if(this.default){var insertfns="db.tables['"+tableid+"'].data.push({"+table.defaultfns+"});return 1;";var insertfn=new Function("db,params,alasql",insertfns)}else{throw new Error("Wrong INSERT parameters")}if(db.engineid&&alasql.engines[db.engineid].intoTable&&alasql.options.autocommit){var statement=function(params,cb){var aa=new Function("db,params",s33+"return aa;")(db,params);var res=alasql.engines[db.engineid].intoTable(db.databaseid,tableid,aa,null,cb);return res}}else{var statement=function(params,cb){var db=alasql.databases[databaseid];if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var res=insertfn(db,params,alasql);if(alasql.options.autocommit&&db.engineid){alasql.engines[db.engineid].saveTableData(databaseid,tableid)}if(cb)cb(res);return res}}return statement};yy.Insert.prototype.execute=function(databaseid,params,cb){return this.compile(databaseid)(params,cb)};yy.Delete=function(params){return yy.extend(this,params)};yy.Delete.prototype.toString=function(){var s="DELETE FROM "+this.table.toString();if(this.where)s+=" WHERE "+this.where.toString();return s};yy.Delete.prototype.compile=function(databaseid){databaseid=this.table.databaseid||databaseid;var tableid=this.table.tableid;var statement;var db=alasql.databases[databaseid];if(this.where){wherefn=new Function("r,params","return ("+this.where.toJavaScript("r","")+")");statement=function(params,cb){if(db.engineid&&alasql.engines[db.engineid].deleteFromTable){return alasql.engines[db.engineid].deleteFromTable(databaseid,tableid,wherefn,params,cb)}if(alasql.options.autocommit&&db.engineid&&db.engineid=="LOCALSTORAGE"){alasql.engines[db.engineid].loadTableData(databaseid,tableid)}var table=db.tables[tableid];var orignum=table.data.length;var newtable=[];for(var i=0,ilen=table.data.length;i0){s+="("+this.args.map(function(arg){return arg.toString()}).join(", ")+")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.CreateDatabase.prototype.execute=function(databaseid,params,cb){var args;if(this.args&&this.args.length>0){args=this.args.map(function(arg){return new Function("params","return "+arg.toJavaScript())(params)})}if(this.engineid){var res=alasql.engines[this.engineid].createDatabase(this.databaseid,this.args,this.ifnotexists,this.as,cb);return res}else{var dbid=this.databaseid;if(alasql.databases[dbid]){throw new Error("Database '"+dbid+"' already exists")}var a=new alasql.Database(dbid);var res=1;if(cb)return cb(res);return res}};yy.AttachDatabase=function(params){return yy.extend(this,params)};yy.AttachDatabase.prototype.toString=function(){var s=K("ATTACH");if(this.engineid)s+=" "+L(this.engineid);s+=" "+K("DATABASE")+" "+L(this.databaseid);if(args){s+="(";if(args.length>0){s+=args.map(function(arg){return arg.toString()}).join(", ")}s+=")"}if(this.as)s+=" "+K("AS")+" "+L(this.as);return s};yy.AttachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.engines[this.engineid]){throw new Error('Engine "'+this.engineid+'" is not defined.')}var res=alasql.engines[this.engineid].attachDatabase(this.databaseid,this.as,this.args,params,cb);return res};yy.DetachDatabase=function(params){return yy.extend(this,params)};yy.DetachDatabase.prototype.toString=function(){var s=K("DETACH");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DetachDatabase.prototype.execute=function(databaseid,params,cb){if(!alasql.databases[this.databaseid].engineid){throw new Error('Cannot detach database "'+this.engineid+'", because it was not attached.')}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.UseDatabase=function(params){return yy.extend(this,params)};yy.UseDatabase.prototype.toString=function(){return K("USE")+" "+K("DATABASE")+" "+L(this.databaseid)};yy.UseDatabase.prototype.execute=function(databaseid,params,cb){var dbid=this.databaseid;if(!alasql.databases[dbid]){throw new Error("Database '"+dbid+"' does not exist")}alasql.use(dbid);var res=1;if(cb)cb(res);return res};yy.DropDatabase=function(params){return yy.extend(this,params)};yy.DropDatabase.prototype.toString=function(){var s=K("DROP");if(this.ifexists)s+=" "+K("IF")+" "+K("EXISTS");s+=" "+K("DATABASE")+" "+L(this.databaseid);return s};yy.DropDatabase.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].dropDatabase(this.databaseid,this.ifexists,cb)}var res;var dbid=this.databaseid;if(dbid==alasql.DEFAULTDATABASEID){throw new Error("Drop of default database is prohibited")}if(!alasql.databases[dbid]){if(!this.ifexists){throw new Error("Database '"+dbid+"' does not exist")}else{res=0}}else{if(alasql.databases[dbid].engineid){throw new Error("Cannot drop database '"+dbid+"', because it is attached. Detach it.")}delete alasql.databases[dbid];if(dbid==alasql.useid){alasql.use()}res=1}if(cb)cb(res);return res};yy.Declare=function(params){return yy.extend(this,params)};yy.Declare.prototype.toString=function(){var s=K("DECLARE")+" ";if(this.declares&&this.declares.length>0){s=this.declares.map(function(declare){var s="";s+="@"+L(declare.variable)+" ";s+=declare.dbtypeid;if(this.dbsize)s+="("+N(this.dbsize);if(this.dbprecision)s+=","+N(this.dbprecision);s+=")";if(declare.expression)s+=" = "+declare.expression.toString();return s}).join(",")}return s};yy.Declare.prototype.execute=function(databaseid,params,cb){var res=1;if(this.declares&&this.declares.length>0){this.declares.map(function(declare){var dbtypeid=declare.dbtypeid;if(!alasql.fn[dbtypeid])dbtypeid=dbtypeid.toUpperCase();alasql.declares[declare.variable]={dbtypeid:dbtypeid,dbsize:declare.dbsize,dbprecision:declare.dbprecision};if(declare.expression){alasql.vars[declare.variable]=new Function("params,alasql","return "+declare.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[declare.variable]){alasql.vars[declare.variable]=alasql.stdfn.CONVERT(alasql.vars[declare.variable],alasql.declares[declare.variable])}}})}if(cb)res=cb(res);return res};yy.ShowDatabases=function(params){return yy.extend(this,params)};yy.ShowDatabases.prototype.toString=function(){var s=K("SHOW")+" "+K("DATABASES");if(this.like)s+="LIKE "+this.like.toString();return s};yy.ShowDatabases.prototype.execute=function(databaseid,params,cb){if(this.engineid){return alasql.engines[this.engineid].showDatabases(this.like,cb)}else{var self=this;var res=[];for(dbid in alasql.databases){res.push({databaseid:dbid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.databaseid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res}};yy.ShowTables=function(params){return yy.extend(this,params)};yy.ShowTables.prototype.toString=function(){var s=K("SHOW")+" "+K("TABLES");if(this.databaseid)s+=" FROM "+this.databaseid;if(this.like)s+=" "+K("LIKE")+" "+this.like.toString();return s};yy.ShowTables.prototype.execute=function(databaseid,params,cb){var db=alasql.databases[this.databaseid||databaseid];var self=this;var res=[];for(tableid in db.tables){res.push({tableid:tableid})}if(self.like&&res&&res.length>0){res=res.filter(function(d){return d.tableid.match(new RegExp(self.like.value.replace(/\%/g,".*"),"g"))})}if(cb)cb(res);return res};yy.ShowColumns=function(params){return yy.extend(this,params)};yy.ShowColumns.prototype.toString=function(){var s=K("SHOW")+" "+K("COLUMNS");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowColumns.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table&&table.columns){var res=table.columns.map(function(col){return{columnid:col.columnid,dbtypeid:col.dbtypeid,dbsize:col.dbsize}});return res}else{return[]}};yy.ShowIndex=function(params){return yy.extend(this,params)};yy.ShowIndex.prototype.toString=function(){var s=K("SHOW")+" "+K("INDEX");if(this.table.tableid)s+=" "+K("FROM")+" "+this.table.tableid;if(this.databaseid)s+=" "+K("FROM")+" "+this.databaseid;return s};yy.ShowIndex.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;var res=[];if(table&&table.indices){for(var ind in table.indices){res.push({hh:ind,len:Object.keys(table.indices[ind]).length})}}return res};yy.ShowCreateTable=function(params){return yy.extend(this,params)};yy.ShowCreateTable.prototype.toString=function(){var s=K("SHOW")+" "+K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid);if(this.databaseid)s+=" "+K("FROM")+" "+L(this.databaseid);return s};yy.ShowCreateTable.prototype.execute=function(databaseid){var db=alasql.databases[this.databaseid||databaseid];var table=db.tables[this.table.tableid];var self=this;if(table){var s=K("CREATE")+" "+K("TABLE")+" "+L(this.table.tableid)+" (";var ss=[];if(table.columns){table.columns.forEach(function(col){var a=L(col.columnid)+" "+K(col.dbtypeid);if(col.dbsize)a+="("+N(col.dbsize)+")";if(col.primarykey)a+=" "+K("PRIMARY")+" "+K("KEY");ss.push(a)});s+=ss.join(", ")}s+=")";return s}else{throw new Error('There is no such table "'+this.table.tableid+'"')}};yy.SetVariable=function(params){return yy.extend(this,params)};yy.SetVariable.prototype.toString=function(){var s=K("SET")+" ";if(typeof this.value!="undefined")s+=K(this.variable.toUpperCase())+" "+(this.value?"ON":"OFF");if(this.expression)s+="@"+L(this.variable)+" = "+this.expression.toString();return s};yy.SetVariable.prototype.execute=function(databaseid,params,cb){if(typeof this.value!="undefined"){var val=this.value;if(val=="ON")val=true;else if(val=="OFF")val=false;alasql.options[this.variable]=val}else if(this.expression){var res=new Function("params,alasql","return "+this.expression.toJavaScript("","",null))(params,alasql);if(alasql.declares[this.variable]){res=alasql.stdfn.CONVERT(res,alasql.declares[this.variable])}if(this.props&&this.props.length>0){var fs="alasql.vars['"+this.variable+"']";fs+=this.props.map(function(prop){if(typeof prop=="string"){return"['"+prop+"']"}else if(typeof prop=="number"){return"["+prop+"]"}else{return"["+prop.toJavaScript()+"]"}}).join();new Function("value,alasql",fs+"=value")(res,alasql)}else{alasql.vars[this.variable]=res}}var res=1;if(cb)res=cb(res);return res};alasql.test=function(name,times,fn){if(arguments.length==0){alasql.log(alasql.con.results);return}else if(arguments.length==1){var tm=Date.now();fn();alasql.con.log(Date.now()-tm);return}if(arguments.length==2){fn=times;times=1}var tm=Date.now();for(var i=0;i",sql);if(res instanceof Array){if(console.table){console.table(res)}else{console.log(JSONtoString(res))}}else{console.log(JSONtoString(res))}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}var s="";if(typeof sql=="string"&&alasql.options.logprompt){s+=""+alasql.pretty(sql)+"
"}if(res instanceof Array){if(res.length==0){s+="[ ]
"}else if(typeof res[0]!="object"||res[0]instanceof Array){for(var i=0,ilen=res.length;i"+loghtml(res[i])+"
"}}else{s+=loghtml(res)}}else{s+=loghtml(res)}el.innerHTML+=s}};alasql.clear=function(){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.clear){console.clear()}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML=""}};alasql.write=function(s){var target=alasql.options.logtarget;if(typeof exports=="object"){target="console"}if(target=="console"||typeof exports=="object"){if(console.log){console.log(s)}else{}}else{var el;if(target=="output"){el=document.getElementsByTagName("output")[0]}else{if(typeof target=="string"){el=document.getElementById(target)}else{el=target}}el.innerHTML+=s}};function loghtml(res){var s="";if(typeof res=="undefined"){s+="undefined"}else if(res instanceof Array){s+="";s+="";var cols=[];for(colid in res[0]){cols.push(colid)}s+="#";cols.forEach(function(colid){s+=" | "+colid});for(var i=0,ilen=res.length;i"+(i+1);cols.forEach(function(colid){s+=" | ";if(+res[i][colid]==+res[i][colid]){s+=' ';if(typeof res[i][colid]=="undefined")s+="NULL";else s+=res[i][colid];s+=" "}else{if(typeof res[i][colid]=="undefined"){s+="NULL"}else if(typeof res[i][colid]=="string"){s+=res[i][colid]}else s+=JSONtoString(res[i][colid])}})}s+=" | |
---|
"}else{s+=""+JSONtoString(res)+"
"}return s}function scrollTo(element,to,duration){if(duration<=0)return;var difference=to-element.scrollTop;var perTick=difference/duration*10;setTimeout(function(){if(element.scrollTop==to)return;element.scrollTop=element.scrollTop+perTick;scrollTo(element,to,duration-10)},10)}alasql.prompt=function(el,useidel,firstsql){if(typeof exports=="object"){throw new Error("The functionality of prompt is not realized for Node.js")}var prompti=0;if(typeof el=="string")el=document.getElementById(el);if(typeof useidel=="string")useidel=document.getElementById(useidel);useidel.textContent=alasql.useid;if(firstsql){alasql.prompthistory.push(firstsql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(firstsql);alasql.write(''+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+sql+"
");alasql.write(''+err+"
")}}var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500);el.onkeydown=function(event){if(event.which==13){var sql=el.value;var olduseid=alasql.useid;el.value="";alasql.prompthistory.push(sql);prompti=alasql.prompthistory.length;try{var tm=Date.now();alasql.log(sql);alasql.write('
'+(Date.now()-tm)+" ms
")}catch(err){alasql.write(""+olduseid+"> "+alasql.pretty(sql,false)+"
");alasql.write(''+err+"
")}el.focus();useidel.textContent=alasql.useid;var y=el.getBoundingClientRect().top+document.getElementsByTagName("body")[0].scrollTop;scrollTo(document.getElementsByTagName("body")[0],y,500)}else if(event.which==38){prompti--;if(prompti<0)prompti=0;if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}else if(event.which==40){prompti++;if(prompti>=alasql.prompthistory.length){prompti=alasql.prompthistory.length;el.value=""}else if(alasql.prompthistory[prompti]){el.value=alasql.prompthistory[prompti];event.preventDefault()}}}};yy.BeginTransaction=function(params){return yy.extend(this,params)};yy.BeginTransaction.prototype.toString=function(){return K("BEGIN")+" "+K("TRANSACTION")};yy.BeginTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].begin(databaseid,cb)}else{}if(cb)cb(res);return res};yy.CommitTransaction=function(params){return yy.extend(this,params)};yy.CommitTransaction.prototype.toString=function(){return K("COMMIT")+" "+K("TRANSACTION")};yy.CommitTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[alasql.useid].engineid].commit(databaseid,cb)}else{}if(cb)cb(res);return res};yy.RollbackTransaction=function(params){return yy.extend(this,params)};yy.RollbackTransaction.prototype.toString=function(){return K("ROLLBACK")+" "+K("TRANSACTION")};yy.RollbackTransaction.prototype.execute=function(databaseid,params,cb){var res=1;if(alasql.databases[databaseid].engineid){return alasql.engines[alasql.databases[databaseid].engineid].rollback(databaseid,cb)}else{}if(cb)cb(res);return res};alasql.into.SQL=function(filename,opts,data,columns,cb){var res;if(typeof filename=="object"){opts=filename;filename=""}var opt={};alasql.utils.extend(opt,opts);if(typeof opt.tableid=="undefined"){throw new Error("Table for INSERT TO is not defined.")}var s="";if(columns.length==0){if(typeof data[0]=="object"){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}else{}}for(var i=0,ilen=data.length;i0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var res=data.length;var s="";if(data.length>0){var key=columns[0].columnid;s+=data.map(function(d){return d[key]}).join("\n")}alasql.utils.saveFile(filename,s);if(cb)res=cb(res);return res};alasql.into.TAB=alasql.into.TSV=function(filename,opts,data,columns,cb){var opt={};alasql.utils.extend(opt,opts);opt.separator=" ";return alasql.into.CSV(filename,opt,data,columns,cb)};alasql.into.CSV=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof filename=="object"){opts=filename;filename=null}var opt={};opt.separator=",";opt.quote='"';alasql.utils.extend(opt,opts);var res=data.length;var s="";if(opt.headers){s+=columns.map(function(col){return col.columnid}).join(opt.separator)+"\n"}data.forEach(function(d,idx){s+=columns.map(function(col){var s=d[col.columnid];s=(s+"").replace(new RegExp("\\"+opt.quote,"g"),'""');if((s+"").indexOf(opt.separator)>-1||(s+"").indexOf(opt.quote)>-1)s=opt.quote+s+opt.quote;return s}).join(opt.separator)+"\n"});if(filename){alasql.utils.saveFile(filename,s)}else{console.log(s)}if(cb)res=cb(res);return res};alasql.into.XLSX=function(filename,opts,data,columns,cb){if(columns.length==0&&data.length>0){columns=Object.keys(data[0]).map(function(columnid){return{columnid:columnid}})}if(typeof exports=="object"){var XLSX=require("xlsx")}else{var XLSX=window.XLSX}var opt={sheetid:"Sheet1",headers:true};alasql.utils.extend(opt,opts);var res=data.length;var wb={SheetNames:[],Sheets:{}};if(opt.sourcefilename){alasql.utils.loadBinaryFile(opt.sourcefilename,!!cb,function(data){wb=XLSX.read(data,{type:"binary"});doExport()})}else{doExport()}function doExport(){var cells={};if(wb.SheetNames.indexOf(opt.sheetid)>-1){cells=wb.Sheets[opt.sheetid]}else{wb.SheetNames.push(opt.sheetid);wb.Sheets[opt.sheetid]={};cells=wb.Sheets[opt.sheetid]}var range="A1";if(opt.range)range=opt.range;var col0=alasql.utils.xlscn(range.match(/[A-Z]+/)[0]);var row0=+range.match(/[0-9]+/)[0]-1;if(wb.Sheets[opt.sheetid]["!ref"]){var rangem=wb.Sheets[opt.sheetid]["!ref"];var colm=alasql.utils.xlscn(rangem.match(/[A-Z]+/)[0]);var rowm=+rangem.match(/[0-9]+/)[0]-1}else{var colm=1,rowm=1}var colmax=Math.max(col0+columns.length,colm);var rowmax=Math.max(row0+data.length+2,rowm);var i=row0+1;wb.Sheets[opt.sheetid]["!ref"]="A1:"+alasql.utils.xlsnc(colmax)+rowmax;if(opt.headers){columns.forEach(function(col,idx){cells[alasql.utils.xlsnc(col0+idx)+""+i]={v:col.columnid}});i++}for(var j=0;j=N)return EOF;if(eol)return eol=false,EOL;var j=I;if(text.charCodeAt(j)===quoteCode){var i=j;while(i++http://github/agershun/alasq for more information'}];yy.Help.prototype.execute=function(databaseid,params,cb){var ss=[];if(!this.subject){ss=helpdocs}else{ss.push('See also http://github/agershun/alasq for more information')}if(cb)ss=cb(ss);return ss};yy.Print=function(params){return yy.extend(this,params)};yy.Print.prototype.toString=function(){var s=K("PRINT");if(this.statement)s+=" "+this.statement.toString();return s};yy.Print.prototype.execute=function(databaseid,params,cb){var res,s;if(this.statement){s=this.statement.execute(databaseid,params)}else{s=""}s=JSONtoString(s);console.log(s);if(cb)res=cb(res);return res};yy.Source=function(params){return yy.extend(this,params)};yy.Source.prototype.toString=function(){var s=K("SOURCE");if(this.url)s+=" "+S("'"+this.url+"'");return s};yy.Source.prototype.execute=function(databaseid,params,cb){var res;loadFile(this.url,!!cb,function(data){res=alasql(data);if(cb)res=cb(res);return res},function(err){throw err});return res};yy.Require=function(params){return yy.extend(this,params)};yy.Require.prototype.toString=function(){var s=K("REQUIRE");if(this.paths&&this.paths.length>0){s+=this.paths.map(function(path){return path.toString()}).join(",")}return s};yy.Require.prototype.execute=function(databaseid,params,cb){var self=this;var res=0;var ss="";if(this.paths.length>0){this.paths.forEach(function(path){loadFile(path.value,!!cb,function(data){res++;ss+=data;if(res0){res=res.filter(function(d){return d.databaseid.match(relike)})}}if(cb)cb(res);return res};LS.createTable=function(databaseid,tableid,ifnotexists,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var tb=LS.get(lsdbid+"."+tableid);var res=1;if(tb&&!ifnotexists){throw new Error('Table "'+tableid+'" alsready exists in localStorage database "'+lsdbid+'"')}var lsdb=LS.get(lsdbid);var table=alasql.databases[databaseid].tables[tableid];lsdb.tables[tableid]={columns:table.columns};LS.set(lsdbid,lsdb);LS.set(lsdbid+"."+tableid,[]);if(cb)cb(res);return res};LS.dropTable=function(databaseid,tableid,ifexists,cb){var res=1;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(!ifexists&&!lsdb.tables[tableid]){throw new Error('Cannot drop table "'+tableid+'" in localStorage, because it does not exist')}delete lsdb.tables[tableid];LS.set(lsdbid,lsdb);localStorage.removeItem(lsdbid+"."+tableid);if(cb)cb(res);return res};LS.fromTable=function(databaseid,tableid,cb,idx,query){var lsdbid=alasql.databases[databaseid].lsdbid;var res=LS.get(lsdbid+"."+tableid);if(cb)res=cb(res,idx,query);return res};LS.intoTable=function(databaseid,tableid,value,columns,cb){var lsdbid=alasql.databases[databaseid].lsdbid;var res=value.length;var tb=LS.get(lsdbid+"."+tableid);if(!tb)tb=[];tb=tb.concat(value);LS.set(lsdbid+"."+tableid,tb);if(cb)cb(res);return res};LS.loadTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;db.tables[tableid].data=LS.get(lsdbid+"."+tableid)};LS.saveTableData=function(databaseid,tableid){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;LS.set(lsdbid+"."+tableid,db.tables[tableid].data);db.tables[tableid].data=null};LS.commit=function(databaseid,cb){var db=alasql.databases[databaseid];var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb={databaseid:lsdbid,tables:{}};if(db.tables){for(var tbid in db.tables){lsdb.tables[tbid]={columns:db.tables[tbid].columns};LS.set(lsdbid+"."+tbid,db.tables[tbid].data)}}LS.set(lsdbid,lsdb);return 1};LS.begin=LS.commit;LS.rollback=function(databaseid,cb){var db=alasql.databases[databaseid];db.dbversion++;var lsdbid=alasql.databases[databaseid].lsdbid;var lsdb=LS.get(lsdbid);if(lsdb.tables){for(var tbid in lsdb.tables){var tb=new alasql.Table({columns:db.tables[tbid].columns});extend(tb,lsdb.tables[tbid]);lsdb.tables[tbid]=tb;if(!alasql.options.autocommit){lsdb.tables[tbid].data=LS.get(db.lsdbid+"."+tbid)}lsdb.tables[tbid].indexColumns()}}delete alasql.databases[databaseid];alasql.databases[databaseid]=new alasql.Database(databaseid);extend(alasql.databases[databaseid],lsdb);alasql.databases[databaseid].databaseid=databaseid;alasql.databases[databaseid].engineid="LOCALSTORAGE"};var SQLITE=alasql.engines.SQLITE=function(){};SQLITE.createDatabase=function(wdbid,args,ifnotexists,dbid,cb){throw new Error("Connot create SQLITE database in memory. Attach it.")};SQLITE.dropDatabase=function(databaseid){throw new Error("This is impossible to drop SQLite database. Detach it.")};SQLITE.attachDatabase=function(sqldbid,dbid,args,params,cb){var res=1;if(alasql.databases[dbid]){throw new Error('Unable to attach database as "'+dbid+'" because it already exists')}if(args[0]&&args[0]instanceof yy.StringValue||args[0]instanceof yy.ParamValue){if(args[0]instanceof yy.StringValue){var value=args[0].value}else if(args[0]instanceof yy.ParamValue){var value=params[args[0].param]}alasql.utils.loadBinaryFile(value,true,function(data){var db=new alasql.Database(dbid||sqldbid);db.engineid="SQLITE";db.sqldbid=sqldbid;var sqldb=db.sqldb=new SQL.Database(data);db.tables=[];var tables=sqldb.exec("SELECT * FROM sqlite_master WHERE type='table'")[0].values;tables.forEach(function(tbl){db.tables[tbl[1]]={};var columns=db.tables[tbl[1]].columns=[];var ast=alasql.parse(tbl[4]);var coldefs=ast.statements[0].columns;if(coldefs&&coldefs.length>0){coldefs.forEach(function(cd){columns.push(cd)})}});cb(1)},function(err){throw new Error('Cannot open SQLite database file "'+args[0].value+'"')});return res}else{throw new Error("Cannot attach SQLite database without a file")}return res};SQLITE.fromTable=function(databaseid,tableid,cb,idx,query){var data=alasql.databases[databaseid].sqldb.exec("SELECT * FROM "+tableid);var columns=query.sources[idx].columns=[];if(data[0].columns.length>0){data[0].columns.forEach(function(columnid){columns.push({columnid:columnid})})}var res=[];if(data[0].values.length>0){data[0].values.forEach(function(d){var r={};columns.forEach(function(col,idx){r[col.columnid]=d[idx]});res.push(r)})}if(cb)cb(res,idx,query)};SQLITE.intoTable=function(databaseid,tableid,value,columns,cb){var sqldb=alasql.databases[databaseid].sqldb;for(var i=0,ilen=value.length;i1){var sql="REQUIRE "+paths.map(function(p){return'"'+p+'"'}).join(",");alasql(sql,[],cb)}}else if(path===false){delete alasql.webworker;return}}}
\ No newline at end of file
diff --git a/gulpfile.js b/gulpfile.js
index 54b05cd250..7cdd281461 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -26,7 +26,7 @@ gulp.task('js-merge-worker', function () {
// .pipe(changed('./dist/'))
.pipe(concat('alasql-worker.js'))
// .pipe(uglify())
- .pipe(gulp.dest('./'))
+ .pipe(gulp.dest('./dist'))
});
gulp.task('js-merge', function () {
@@ -108,7 +108,7 @@ gulp.task('js-merge', function () {
// .pipe(changed('./dist/'))
.pipe(concat('alasql.js'))
// .pipe(uglify())
- .pipe(gulp.dest('./'))
+ .pipe(gulp.dest('./dist'))
});
@@ -123,22 +123,22 @@ gulp.task('jison-compile', function () {
gulp.task('uglify', function () {
return gulp.src('./alasql.js', {read: false})
.pipe(shell([
- 'uglifyjs alasql.js -o alasql.min.js',
- 'uglifyjs alasql-worker.js -o alasql-worker.min.js',
+ 'uglifyjs dist/alasql.js -o dist/alasql.min.js',
+ 'uglifyjs dist/alasql-worker.js -o dist/alasql-worker.min.js',
]));
});
gulp.task('copy-dist', function(){
- gulp.src(['./alasql.js','./alasql.min.js','./alasql.js.map',
- './alasql-worker.js','./alasql-worker.min.js','./alasql-worker.js.map'])
- .pipe(gulp.dest('dist'));
+ gulp.src(['./dist/alasql.js','./alasql.js.map'])
+ .pipe(gulp.dest('./'));
});
gulp.task('copy-dist-org', function(){
- gulp.src(['./alasql.min.js','./alasql-worker.min.js'])
+ gulp.src(['./dist/alasql.min.js','./dist/alasql-worker.min.js'])
.pipe(gulp.dest('./console/'));
});
+// Additional task to update alasql.org/console directory
gulp.task('copy-console-org', function(){
gulp.src(['./console/*'])
.pipe(gulp.dest('../alasql-org/console/'));
@@ -174,12 +174,12 @@ gulp.task('default', ['js-merge' /*, 'jison-compile', 'jison-lex-compile' */], f
gulp.watch('./src/*.js',function(){ gulp.run('js-merge'); });
gulp.watch('./src/99worker*.js',function(){ gulp.run('js-merge-worker'); });
gulp.watch('./src/*.jison',function(){ gulp.run('jison-compile'); });
- gulp.watch('./alasql.js',function(){ gulp.run('uglify'); });
- gulp.watch('./alasql.min.js',function(){
+ gulp.watch('./dist/alasql.js',function(){ gulp.run('uglify'); });
+ gulp.watch('./dist/alasql.min.js',function(){
gulp.run('copy-dist');
gulp.run('copy-dist-org');
});
- gulp.watch('./alasql-worker.js',function(){
+ gulp.watch('./dist/alasql-worker.js',function(){
gulp.run('copy-dist');
gulp.run('copy-dist-org');
});
diff --git a/index.js b/index.js
deleted file mode 100644
index c0689cd65b..0000000000
--- a/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-module.exports = require('./alasql.js');
-
-//var alasql = require('./alasql.js');
-
-//for(var key in alasql) {
-// exports[key] = alasql[key]
-//}
-
diff --git a/medals.csv b/medals.csv
deleted file mode 100644
index c36bf367d1..0000000000
--- a/medals.csv
+++ /dev/null
@@ -1,1873 +0,0 @@
-Athlete,Age,Country,Year,Closing Ceremony Date,Sport,Gold Medals,Silver Medals,Bronze Medals,Total Medals
-Michael Phelps,23,United States,2008,39684,Swimming,8,0,0,8
-Natalie Coughlin,25,United States,2008,39684,Swimming,1,2,3,6
-Nastia Liukin,18,United States,2008,39684,Gymnastics,1,3,1,5
-Kirsty Coventry,24,Zimbabwe,2008,39684,Swimming,1,3,0,4
-Libby Lenton-Trickett,23,Australia,2008,39684,Swimming,2,1,1,4
-Ryan Lochte,24,United States,2008,39684,Swimming,2,0,2,4
-Shawn Johnson,16,United States,2008,39684,Gymnastics,1,3,0,4
-Alain Bernard,25,France,2008,39684,Swimming,1,1,1,3
-László Cseh Jr.,22,Hungary,2008,39684,Swimming,0,3,0,3
-Matt Grevers,23,United States,2008,39684,Swimming,2,1,0,3
-Margaret Hoelzer,25,United States,2008,39684,Swimming,0,2,1,3
-Katie Hoff,19,United States,2008,39684,Swimming,0,1,2,3
-Leisel Jones,22,Australia,2008,39684,Swimming,2,1,0,3
-Kosuke Kitajima,25,Japan,2008,39684,Swimming,2,0,1,3
-Andrew Lauterstein,21,Australia,2008,39684,Swimming,0,1,2,3
-Jason Lezak,32,United States,2008,39684,Swimming,2,0,1,3
-Pang Jiaying,23,China,2008,39684,Swimming,0,1,2,3
-Aaron Peirsol,25,United States,2008,39684,Swimming,2,1,0,3
-Steph Rice,20,Australia,2008,39684,Swimming,3,0,0,3
-Jess Schipper,21,Australia,2008,39684,Swimming,1,0,2,3
-Rebecca Soni,21,United States,2008,39684,Swimming,1,2,0,3
-Eamon Sullivan,22,Australia,2008,39684,Swimming,0,2,1,3
-Dara Torres,41,United States,2008,39684,Swimming,0,3,0,3
-Cheng Fei,20,China,2008,39684,Gymnastics,1,0,2,3
-Yang Wei,28,China,2008,39684,Gymnastics,2,1,0,3
-Yang Yilin,15,China,2008,39684,Gymnastics,1,0,2,3
-Zou Kai,20,China,2008,39684,Gymnastics,3,0,0,3
-Chris Hoy,32,Great Britain,2008,39684,Cycling,3,0,0,3
-Usain Bolt,21,Jamaica,2008,39684,Athletics,3,0,0,3
-Guo Yue,20,China,2008,39684,Table Tennis,1,0,1,2
-Ma Lin,28,China,2008,39684,Table Tennis,2,0,0,2
-Wang Hao,24,China,2008,39684,Table Tennis,1,1,0,2
-Wang Liqin,30,China,2008,39684,Table Tennis,1,0,1,2
-Wang Nan,29,China,2008,39684,Table Tennis,1,1,0,2
-Zhang Yining,26,China,2008,39684,Table Tennis,2,0,0,2
-Anastasiya Davydova,25,Russia,2008,39684,Synchronized Swimming,2,0,0,2
-Andrea Fuentes,25,Spain,2008,39684,Synchronized Swimming,0,2,0,2
-Gemma Mengual,31,Spain,2008,39684,Synchronized Swimming,0,2,0,2
-Anastasiya Yermakova,25,Russia,2008,39684,Synchronized Swimming,2,0,0,2
-Becky Adlington,19,Great Britain,2008,39684,Swimming,2,0,0,2
-Leith Brodie,22,Australia,2008,39684,Swimming,0,0,2,2
-Cate Campbell,16,Australia,2008,39684,Swimming,0,0,2,2
-César Cielo Filho,21,Brazil,2008,39684,Swimming,1,0,1,2
-Hugues Duboscq,26,France,2008,39684,Swimming,0,0,2,2
-Felicity Galvez,23,Australia,2008,39684,Swimming,2,0,0,2
-Grant Hackett,28,Australia,2008,39684,Swimming,0,1,1,2
-Kara Lynn Joyce,22,United States,2008,39684,Swimming,0,2,0,2
-Amaury Leveaux,22,France,2008,39684,Swimming,0,2,0,2
-Christine Magnuson,22,United States,2008,39684,Swimming,0,2,0,2
-Patrick Murphy,24,Australia,2008,39684,Swimming,0,0,2,2
-Park Tae-Hwan,18,South Korea,2008,39684,Swimming,1,1,0,2
-Shayne Reese,25,Australia,2008,39684,Swimming,1,0,1,2
-Brenton Rickard,24,Australia,2008,39684,Swimming,0,2,0,2
-Mel Schlanger,21,Australia,2008,39684,Swimming,1,0,1,2
-Julia Smit,20,United States,2008,39684,Swimming,0,1,1,2
-Britta Steffen,24,Germany,2008,39684,Swimming,2,0,0,2
-Hayden Stoeckel,24,Australia,2008,39684,Swimming,0,1,1,2
-Matt Targett,22,Australia,2008,39684,Swimming,0,1,1,2
-Peter Vanderkaay,24,United States,2008,39684,Swimming,1,0,1,2
-Arkady Vyachanin,24,Russia,2008,39684,Swimming,0,0,2,2
-Garrett Weber-Gale,23,United States,2008,39684,Swimming,2,0,0,2
-Jin Jong-O,28,South Korea,2008,39684,Shooting,1,1,0,2
-Katerina Kurková-Emmons,24,Czech Republic,2008,39684,Shooting,1,1,0,2
-Georgeta Damian-Andrunache,32,Romania,2008,39684,Rowing,1,0,1,2
-Viorica Susanu,32,Romania,2008,39684,Rowing,1,0,1,2
-Chen Yibing,23,China,2008,39684,Gymnastics,2,0,0,2
-Anton Golotsutskov,23,Russia,2008,39684,Gymnastics,0,0,2,2
-He Kexin,16,China,2008,39684,Gymnastics,2,0,0,2
-Jonathan Horton,22,United States,2008,39684,Gymnastics,0,1,1,2
-Sandra Izbasa,18,Romania,2008,39684,Gymnastics,1,0,1,2
-Li Xiaopeng,27,China,2008,39684,Gymnastics,2,0,0,2
-Kohei Uchimura,19,Japan,2008,39684,Gymnastics,0,2,0,2
-Xiao Qin,23,China,2008,39684,Gymnastics,2,0,0,2
-Stefano Carozzo,29,Italy,2008,39684,Fencing,0,0,2,2
-Margherita Granbassi,28,Italy,2008,39684,Fencing,0,0,2,2
-Sada Jacobson,25,United States,2008,39684,Fencing,0,1,1,2
-Fabrice Jeannet,27,France,2008,39684,Fencing,1,1,0,2
-Nicolas Lopez,27,France,2008,39684,Fencing,1,1,0,2
-Matteo Tagliariol,25,Italy,2008,39684,Fencing,1,0,1,2
-Valentina Vezzali,34,Italy,2008,39684,Fencing,1,0,1,2
-Becca Ward,18,United States,2008,39684,Fencing,0,0,2,2
-Mariel Zagunis,23,United States,2008,39684,Fencing,1,0,1,2
-Tina Cook,37,Great Britain,2008,39684,Equestrian,0,0,2,2
-Heike Kemmer,46,Germany,2008,39684,Equestrian,1,0,1,2
-Eric Lamaze,40,Canada,2008,39684,Equestrian,1,1,0,2
-Beezie Madden,44,United States,2008,39684,Equestrian,1,0,1,2
-Hinrich Romeike,45,Germany,2008,39684,Equestrian,2,0,0,2
-Anky van Grunsven,40,Netherlands,2008,39684,Equestrian,1,1,0,2
-Isabell Werth,39,Germany,2008,39684,Equestrian,1,1,0,2
-Chen Ruolin,15,China,2008,39684,Diving,2,0,0,2
-Gleb Galperin,25,Russia,2008,39684,Diving,0,0,2,2
-Guo Jingjing,26,China,2008,39684,Diving,2,0,0,2
-Yuliya Pakhalina,30,Russia,2008,39684,Diving,0,2,0,2
-Qin Kai,22,China,2008,39684,Diving,1,0,1,2
-Wang Xin,16,China,2008,39684,Diving,1,0,1,2
-Wu Minxia,22,China,2008,39684,Diving,1,0,1,2
-Mickaël Bourgain,28,France,2008,39684,Cycling,0,1,1,2
-Fabian Cancellara,27,Switzerland,2008,39684,Cycling,1,1,0,2
-Jason Kenny,20,Great Britain,2008,39684,Cycling,1,1,0,2
-Joan Llaneras,39,Spain,2008,39684,Cycling,1,1,0,2
-Hayden Roulston,27,New Zealand,2008,39684,Cycling,0,1,1,2
-Bradley Wiggins,28,Great Britain,2008,39684,Cycling,2,0,0,2
-Tim Brabants,31,Great Britain,2008,39684,Canoeing,1,0,1,2
-David Cal,25,Spain,2008,39684,Canoeing,0,2,0,2
-Natasa Douchev-Janics,26,Hungary,2008,39684,Canoeing,1,1,0,2
-Christian Gille,32,Germany,2008,39684,Canoeing,0,1,1,2
-Katalin Kovács,32,Hungary,2008,39684,Canoeing,1,1,0,2
-Vadim Makhnyov,28,Belarus,2008,39684,Canoeing,1,0,1,2
-Roman Petrushenko,27,Belarus,2008,39684,Canoeing,1,0,1,2
-Katrin Wagner-Augustin,30,Germany,2008,39684,Canoeing,1,0,1,2
-Ken Wallace,25,Australia,2008,39684,Canoeing,1,0,1,2
-Tomasz Wylenzek,25,Germany,2008,39684,Canoeing,0,1,1,2
-Lee Hyo-Jeong,27,South Korea,2008,39684,Badminton,1,1,0,2
-Yu Yang,22,China,2008,39684,Badminton,1,0,1,2
-Elvan Abeylegesse,25,Turkey,2008,39684,Athletics,0,2,0,2
-Kenenisa Bekele,26,Ethiopia,2008,39684,Athletics,2,0,0,2
-Kerron Clement,22,United States,2008,39684,Athletics,1,1,0,2
-Tirunesh Dibaba,23,Ethiopia,2008,39684,Athletics,2,0,0,2
-Walter Dix,22,United States,2008,39684,Athletics,0,0,2,2
-Allyson Felix,22,United States,2008,39684,Athletics,1,1,0,2
-Yuliya Gushchina,25,Russia,2008,39684,Athletics,1,1,0,2
-Tatyana Lebedeva,32,Russia,2008,39684,Athletics,0,2,0,2
-LaShawn Merritt,22,United States,2008,39684,Athletics,2,0,0,2
-David Neville,24,United States,2008,39684,Athletics,1,0,1,2
-Sanya Richards-Ross,23,United States,2008,39684,Athletics,1,0,1,2
-Kerron Stewart,24,Jamaica,2008,39684,Athletics,0,1,1,2
-Jared Tallent,23,Australia,2008,39684,Athletics,0,1,1,2
-Angelo Taylor,29,United States,2008,39684,Athletics,2,0,0,2
-Richard Thompson,23,Trinidad and Tobago,2008,39684,Athletics,0,2,0,2
-Jeremy Wariner,24,United States,2008,39684,Athletics,1,1,0,2
-Shericka Williams,22,Jamaica,2008,39684,Athletics,0,1,1,2
-Park Gyeong-Mo,32,South Korea,2008,39684,Archery,1,1,0,2
-Park Seong-Hyeon,25,South Korea,2008,39684,Archery,1,1,0,2
-Yun Ok-Hui,23,South Korea,2008,39684,Archery,1,0,1,2
-Zhang Juanjuan,27,China,2008,39684,Archery,1,1,0,2
-Yusuf Abdusalomov,30,Tajikistan,2008,39684,Wrestling,0,1,0,1
-Bakhtiyar Akhmedov,21,Russia,2008,39684,Wrestling,0,1,0,1
-Islam-Beka Albiyev,19,Russia,2008,39684,Wrestling,1,0,0,1
-Roman Amoyan,24,Armenia,2008,39684,Wrestling,0,0,1,1
-Nazmi Avluca,31,Turkey,2008,39684,Wrestling,0,0,1,1
-Khasan Baroyev,25,Russia,2008,39684,Wrestling,0,1,0,1
-Mavlet Batyrov,24,Russia,2008,39684,Wrestling,1,0,0,1
-Rövs?n Bayramov,21,Azerbaijan,2008,39684,Wrestling,0,1,0,1
-Kanat Begaliyev,24,Kyrgyzstan,2008,39684,Wrestling,0,1,0,1
-Henry Cejudo,21,United States,2008,39684,Wrestling,1,0,0,1
-Chang Yongxiang,24,China,2008,39684,Wrestling,0,1,0,1
-Taras Danko,28,Ukraine,2008,39684,Wrestling,0,0,1,1
-Mirko Englich,29,Germany,2008,39684,Wrestling,0,1,0,1
-Vasyl Fedoryshyn,27,Ukraine,2008,39684,Wrestling,0,1,0,1
-Zoltán Fodor,23,Hungary,2008,39684,Wrestling,0,1,0,1
-Murad Gaydarov,28,Belarus,2008,39684,Wrestling,0,0,1,1
-Giorgi Gogshelidze,28,Georgia,2008,39684,Wrestling,0,0,1,1
-Christophe Guénot,29,France,2008,39684,Wrestling,0,0,1,1
-Steeve Guénot,22,France,2008,39684,Wrestling,1,0,0,1
-Kyoko Hamaguchi,30,Japan,2008,39684,Wrestling,0,0,1,1
-Carol Huynh,27,Canada,2008,39684,Wrestling,1,0,0,1
-Chiharu Icho,26,Japan,2008,39684,Wrestling,0,1,0,1
-Kaori Icho,24,Japan,2008,39684,Wrestling,1,0,0,1
-Manuchar K'virk'elia,29,Georgia,2008,39684,Wrestling,1,0,0,1
-Alyona Kartashova,26,Russia,2008,39684,Wrestling,0,1,0,1
-Georgy Ketoyev,22,Russia,2008,39684,Wrestling,0,0,1,1
-Aslanbek Khushtov,28,Russia,2008,39684,Wrestling,1,0,0,1
-Besik Kudukhov,22,Russia,2008,39684,Wrestling,0,0,1,1
-Sushil Kumar,25,India,2008,39684,Wrestling,0,0,1,1
-Mijaín López,25,Cuba,2008,39684,Wrestling,1,0,0,1
-Aset Mambetov,26,Kazakhstan,2008,39684,Wrestling,0,0,1,1
-Nazyr Mankiyev,23,Russia,2008,39684,Wrestling,1,0,0,1
-Tomohiro Matsunaga,28,Japan,2008,39684,Wrestling,0,1,0,1
-Iryna Merleni-Mykulchyn,26,Ukraine,2008,39684,Wrestling,0,0,1,1
-Randi Miller,24,United States,2008,39684,Wrestling,0,0,1,1
-Revaz Mindorashvili,32,Georgia,2008,39684,Wrestling,1,0,0,1
-Andrea Minguzzi,26,Italy,2008,39684,Wrestling,1,0,0,1
-Mindaugas Mizgaitis,28,Lithuania,2008,39684,Wrestling,0,0,1,1
-Seyed Mohammadi,28,Iran,2008,39684,Wrestling,0,0,1,1
-Sharvani Muradov,23,Russia,2008,39684,Wrestling,1,0,0,1
-David Musulbes,36,Slovakia,2008,39684,Wrestling,0,0,1,1
-Marid Mutalimov,28,Kazakhstan,2008,39684,Wrestling,0,0,1,1
-Park Eun-Chul,27,South Korea,2008,39684,Wrestling,0,0,1,1
-Yury Patrikeyev,28,Armenia,2008,39684,Wrestling,0,0,1,1
-Xetaq Qazyumov,25,Azerbaijan,2008,39684,Wrestling,0,0,1,1
-Jackeline Rentería,22,Colombia,2008,39684,Wrestling,0,0,1,1
-Vitaliy R?himov,23,Azerbaijan,2008,39684,Wrestling,0,1,0,1
-Ramazan Sahin,25,Turkey,2008,39684,Wrestling,1,0,0,1
-Buvaisa Saytiyev,33,Russia,2008,39684,Wrestling,1,0,0,1
-Mikhail Semyonov,24,Belarus,2008,39684,Wrestling,0,0,1,1
-Yelena Shalygina,21,Kazakhstan,2008,39684,Wrestling,0,0,1,1
-Andriy Stadnik,26,Ukraine,2008,39684,Wrestling,0,1,0,1
-Mariya Stadnik,20,Azerbaijan,2008,39684,Wrestling,0,0,1,1
-Artur Taymazov,29,Uzbekistan,2008,39684,Wrestling,1,0,0,1
-Nurbakyt Tengizbayev,25,Kazakhstan,2008,39684,Wrestling,0,0,1,1
-Kiril Terziev,24,Bulgaria,2008,39684,Wrestling,0,0,1,1
-Soslan Tigiyev,24,Uzbekistan,2008,39684,Wrestling,0,1,0,1
-Taymuraz Tigiyev,26,Kazakhstan,2008,39684,Wrestling,0,1,0,1
-Otar Tushishvili,30,Georgia,2008,39684,Wrestling,0,0,1,1
-Ruslan Tyumenbayev,22,Kyrgyzstan,2008,39684,Wrestling,0,0,1,1
-Armen Vardanian,25,Ukraine,2008,39684,Wrestling,0,0,1,1
-Radoslav Velikov,24,Bulgaria,2008,39684,Wrestling,0,0,1,1
-Tonya Verbeek,31,Canada,2008,39684,Wrestling,0,0,1,1
-Wang Jiao,20,China,2008,39684,Wrestling,1,0,0,1
-Adam Wheeler,27,United States,2008,39684,Wrestling,0,0,1,1
-Agnieszka Wieszczek,25,Poland,2008,39684,Wrestling,0,0,1,1
-Xu Li,18,China,2008,39684,Wrestling,0,1,0,1
-Yavor Yanakiev,23,Bulgaria,2008,39684,Wrestling,0,0,1,1
-Saori Yoshida,25,Japan,2008,39684,Wrestling,1,0,0,1
-Kenichi Yumoto,23,Japan,2008,39684,Wrestling,0,0,1,1
-Stanka Zlateva,25,Bulgaria,2008,39684,Wrestling,0,1,0,1
-Khadzhimurat Akkayev,23,Russia,2008,39684,Weightlifting,0,0,1,1
-Andrey Aryamnov,20,Belarus,2008,39684,Weightlifting,1,0,0,1
-Cao Lei,24,China,2008,39684,Weightlifting,1,0,0,1
-Chen Wei-Ling,26,Chinese Taipei,2008,39684,Weightlifting,0,0,1,1
-Chen Xiexia,25,China,2008,39684,Weightlifting,1,0,0,1
-Chen Yanqing,29,China,2008,39684,Weightlifting,1,0,0,1
-Yevgeny Chigishev,29,Russia,2008,39684,Weightlifting,0,1,0,1
-Vencelas Dabaya,27,France,2008,39684,Weightlifting,0,1,0,1
-Gevorg Davtyan,25,Armenia,2008,39684,Weightlifting,0,0,1,1
-Nataliya Davydova,23,Ukraine,2008,39684,Weightlifting,0,0,1,1
-Mariya Grabovetskaya,21,Kazakhstan,2008,39684,Weightlifting,0,0,1,1
-Hoàng Anh Tu?n,23,Vietnam,2008,39684,Weightlifting,0,1,0,1
-Ilya Ilyin,20,Kazakhstan,2008,39684,Weightlifting,1,0,0,1
-Eko Irawan,19,Indonesia,2008,39684,Weightlifting,0,0,1,1
-Jang Mi-Ran,24,South Korea,2008,39684,Weightlifting,1,0,0,1
-Prapawadee Jaroenrattanatarakoon,24,Thailand,2008,39684,Weightlifting,1,0,0,1
-Dmitry Klokov,25,Russia,2008,39684,Weightlifting,0,1,0,1
-Olha Korobka,22,Ukraine,2008,39684,Weightlifting,0,1,0,1
-Szymon Kolecki,26,Poland,2008,39684,Weightlifting,0,1,0,1
-Dmitry Lapikov,26,Russia,2008,39684,Weightlifting,0,0,1,1
-Li Hongli,27,China,2008,39684,Weightlifting,0,1,0,1
-Liao Hui,20,China,2008,39684,Weightlifting,1,0,0,1
-Liu Chunhong,25,China,2008,39684,Weightlifting,1,0,0,1
-Long Qingquan,17,China,2008,39684,Weightlifting,1,0,0,1
-Lu Ying-Chi,23,Chinese Taipei,2008,39684,Weightlifting,0,0,1,1
-Lu Yong,22,China,2008,39684,Weightlifting,1,0,0,1
-Tigran G. Martirosyan,20,Armenia,2008,39684,Weightlifting,0,0,1,1
-Tigran V. Martirosyan,25,Armenia,2008,39684,Weightlifting,0,0,1,1
-Irina Nekrasova,20,Kazakhstan,2008,39684,Weightlifting,0,1,0,1
-Anastasiya Novikova,26,Belarus,2008,39684,Weightlifting,0,0,1,1
-O Jong-Ae,24,North Korea,2008,39684,Weightlifting,0,0,1,1
-Sibel Özkan,20,Turkey,2008,39684,Weightlifting,0,1,0,1
-Pak Hyon-Suk,23,North Korea,2008,39684,Weightlifting,1,0,0,1
-Andrey Rybakov,26,Belarus,2008,39684,Weightlifting,0,1,0,1
-Sa Jae-Hyeok,23,South Korea,2008,39684,Weightlifting,1,0,0,1
-Diego Fernando Salazar,27,Colombia,2008,39684,Weightlifting,0,1,0,1
-Viktors Šcerbatihs,33,Latvia,2008,39684,Weightlifting,0,0,1,1
-Marina Shainova,22,Russia,2008,39684,Weightlifting,0,1,0,1
-Oksana Slivenko,21,Russia,2008,39684,Weightlifting,0,1,0,1
-Matthias Steiner,25,Germany,2008,39684,Weightlifting,1,0,0,1
-Triyatno,20,Indonesia,2008,39684,Weightlifting,0,0,1,1
-Alla Vazhenina,25,Kazakhstan,2008,39684,Weightlifting,0,1,0,1
-Nadezhda Yevstyukhina,20,Russia,2008,39684,Weightlifting,0,0,1,1
-Yoon Jin-Hee,22,South Korea,2008,39684,Weightlifting,0,1,0,1
-Zhang Xiangxiang,25,China,2008,39684,Weightlifting,1,0,0,1
-Betsey Armstrong,25,United States,2008,39684,Waterpolo,0,1,0,1
-Tony Azevedo,26,United States,2008,39684,Waterpolo,0,1,0,1
-Ryan Bailey,32,United States,2008,39684,Waterpolo,0,1,0,1
-Gemma Beadsworth,21,Australia,2008,39684,Waterpolo,0,0,1,1
-Layne Beaubien,32,United States,2008,39684,Waterpolo,0,1,0,1
-Tibor Benedek,36,Hungary,2008,39684,Waterpolo,1,0,0,1
-Péter Biros,32,Hungary,2008,39684,Waterpolo,1,0,0,1
-Brandon Brooks,27,United States,2008,39684,Waterpolo,0,1,0,1
-Mieke Cabout,22,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Patty Cardenas,23,United States,2008,39684,Waterpolo,0,1,0,1
-Aleksandar Ciric,30,Serbia,2008,39684,Waterpolo,0,0,1,1
-Kami Craig,21,United States,2008,39684,Waterpolo,0,1,0,1
-Nikita Cuffe,28,Australia,2008,39684,Waterpolo,0,0,1,1
-Daniëlle de Bruijn,30,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Filip Filipovic,21,Serbia,2008,39684,Waterpolo,0,0,1,1
-Suzie Fraser,19,Australia,2008,39684,Waterpolo,0,0,1,1
-István Gergely,31,Hungary,2008,39684,Waterpolo,1,0,0,1
-Živko Gocic,25,Serbia,2008,39684,Waterpolo,0,0,1,1
-Taniele Gofers,23,Australia,2008,39684,Waterpolo,0,0,1,1
-Natalie Golda,26,United States,2008,39684,Waterpolo,0,1,0,1
-Alison Gregorka,23,United States,2008,39684,Waterpolo,0,1,0,1
-Rianne Guichelaar,24,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Kate Gynther,26,Australia,2008,39684,Waterpolo,0,0,1,1
-Biurakn Hakhverdian,22,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Brittany Hayes,23,United States,2008,39684,Waterpolo,0,1,0,1
-Amy Hetzel,25,Australia,2008,39684,Waterpolo,0,0,1,1
-Jaime Hipp,26,United States,2008,39684,Waterpolo,0,1,0,1
-Norbert Hosnyánszky,24,Hungary,2008,39684,Waterpolo,1,0,0,1
-Peter Hudnut,28,United States,2008,39684,Waterpolo,0,1,0,1
-Tim Hutten,23,United States,2008,39684,Waterpolo,0,1,0,1
-Tamás Kásás,32,Hungary,2008,39684,Waterpolo,1,0,0,1
-Gábor Kis,25,Hungary,2008,39684,Waterpolo,1,0,0,1
-Gergo Kiss,30,Hungary,2008,39684,Waterpolo,1,0,0,1
-Noeki Klein,25,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Bronwen Knox,22,Australia,2008,39684,Waterpolo,0,0,1,1
-Emma Knox,30,Australia,2008,39684,Waterpolo,0,0,1,1
-Simone Koot,27,Netherlands,2008,39684,Waterpolo,1,0,0,1
-J. W. Krumpholz,20,United States,2008,39684,Waterpolo,0,1,0,1
-Norbert Madaras,28,Hungary,2008,39684,Waterpolo,1,0,0,1
-Alicia McCormack,25,Australia,2008,39684,Waterpolo,0,0,1,1
-Rick Merlo,26,United States,2008,39684,Waterpolo,0,1,0,1
-Tamás Molnár,33,Hungary,2008,39684,Waterpolo,1,0,0,1
-Merrill Moses,30,United States,2008,39684,Waterpolo,0,1,0,1
-Branko Pekovic,29,Serbia,2008,39684,Waterpolo,0,0,1,1
-Heather Petri,30,United States,2008,39684,Waterpolo,0,1,0,1
-Duško Pijetlovic,23,Serbia,2008,39684,Waterpolo,0,0,1,1
-Jeff Powers,28,United States,2008,39684,Waterpolo,0,1,0,1
-Andrija Prlainovic,21,Serbia,2008,39684,Waterpolo,0,0,1,1
-Nikola Raden,23,Serbia,2008,39684,Waterpolo,0,0,1,1
-Bec Rippon,29,Australia,2008,39684,Waterpolo,0,0,1,1
-Mel Rippon,27,Australia,2008,39684,Waterpolo,0,0,1,1
-Jenna Santoromito,21,Australia,2008,39684,Waterpolo,0,0,1,1
-Mia Santoromito,23,Australia,2008,39684,Waterpolo,0,0,1,1
-Aleksandar Šapic,30,Serbia,2008,39684,Waterpolo,0,0,1,1
-Dejan Savic,33,Serbia,2008,39684,Waterpolo,0,0,1,1
-Denis Šefik,31,Serbia,2008,39684,Waterpolo,0,0,1,1
-Alette Sijbring,26,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Yasemin Smit,23,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Jesse Smith,25,United States,2008,39684,Waterpolo,0,1,0,1
-Slobodan Soro,29,Serbia,2008,39684,Waterpolo,0,0,1,1
-Jessica Steffens,21,United States,2008,39684,Waterpolo,0,1,0,1
-Zoltán Szécsi,30,Hungary,2008,39684,Waterpolo,1,0,0,1
-Vanja Udovicic,25,Serbia,2008,39684,Waterpolo,0,0,1,1
-Iefke van Belkum,22,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Gillian van den Berg,36,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Marieke van den Ham,25,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Ilse van der Meijden,19,Netherlands,2008,39684,Waterpolo,1,0,0,1
-Moriah Van Norman,24,United States,2008,39684,Waterpolo,0,1,0,1
-Peter Varellas,23,United States,2008,39684,Waterpolo,0,1,0,1
-Dániel Varga,24,Hungary,2008,39684,Waterpolo,1,0,0,1
-Dénes Varga,21,Hungary,2008,39684,Waterpolo,1,0,0,1
-Tamás Varga,33,Hungary,2008,39684,Waterpolo,1,0,0,1
-Brenda Villa,28,United States,2008,39684,Waterpolo,0,1,0,1
-Vlada Vujasinovic,34,Serbia,2008,39684,Waterpolo,0,0,1,1
-Lauren Wenger,24,United States,2008,39684,Waterpolo,0,1,0,1
-Elsie Windes,23,United States,2008,39684,Waterpolo,0,1,0,1
-Adam Wright,31,United States,2008,39684,Waterpolo,0,1,0,1
-Robyn Ah Mow-Santos,32,United States,2008,39684,Volleyball,0,1,0,1
-Anderson,34,Brazil,2008,39684,Volleyball,0,1,0,1
-Lloy Ball,36,United States,2008,39684,Volleyball,1,0,0,1
-Yury Berezhko,24,Russia,2008,39684,Volleyball,0,0,1,1
-Lindsey Berg,28,United States,2008,39684,Volleyball,0,1,0,1
-Heather Bown,29,United States,2008,39684,Volleyball,0,1,0,1
-Bruninho,22,Brazil,2008,39684,Volleyball,0,1,0,1
-Carol,31,Brazil,2008,39684,Volleyball,1,0,0,1
-Dante,27,Brazil,2008,39684,Volleyball,0,1,0,1
-Nicole Davis,26,United States,2008,39684,Volleyball,0,1,0,1
-Escadinha,32,Brazil,2008,39684,Volleyball,0,1,0,1
-Fabi,28,Brazil,2008,39684,Volleyball,1,0,0,1
-Fabiana,23,Brazil,2008,39684,Volleyball,1,0,0,1
-Feng Kun,29,China,2008,39684,Volleyball,0,0,1,1
-Fofão,38,Brazil,2008,39684,Volleyball,1,0,0,1
-Gabe Gardner,32,United States,2008,39684,Volleyball,1,0,0,1
-Giba,31,Brazil,2008,39684,Volleyball,0,1,0,1
-Kim Glass,23,United States,2008,39684,Volleyball,0,1,0,1
-Sergey Grankin,23,Russia,2008,39684,Volleyball,0,0,1,1
-Gustavo,32,Brazil,2008,39684,Volleyball,0,1,0,1
-Tayyiba Haneef-Park,29,United States,2008,39684,Volleyball,0,1,0,1
-Kevin Hansen,26,United States,2008,39684,Volleyball,1,0,0,1
-André Heller,32,Brazil,2008,39684,Volleyball,0,1,0,1
-Tom Hoff,35,United States,2008,39684,Volleyball,1,0,0,1
-Pereira de Carvalho Endres Jaque,24,Brazil,2008,39684,Volleyball,1,0,0,1
-Jennifer Joines,25,United States,2008,39684,Volleyball,0,1,0,1
-Vadim Khamuttskikh,38,Russia,2008,39684,Volleyball,0,0,1,1
-Aleksandr Korneyev,27,Russia,2008,39684,Volleyball,0,0,1,1
-Aleksandr Kosaryev,30,Russia,2008,39684,Volleyball,0,0,1,1
-Aleksey Kuleshov,29,Russia,2008,39684,Volleyball,0,0,1,1
-Rich Lambourne,33,United States,2008,39684,Volleyball,1,0,0,1
-David Lee,26,United States,2008,39684,Volleyball,1,0,0,1
-Li Juan,27,China,2008,39684,Volleyball,0,0,1,1
-Liu Yanan,27,China,2008,39684,Volleyball,0,0,1,1
-Ma Yunwen,21,China,2008,39684,Volleyball,0,0,1,1
-Marcelinho,33,Brazil,2008,39684,Volleyball,0,1,0,1
-Mari,24,Brazil,2008,39684,Volleyball,1,0,0,1
-Maksim Mikhaylov,20,Russia,2008,39684,Volleyball,0,0,1,1
-Ryan Millar,30,United States,2008,39684,Volleyball,1,0,0,1
-Murilo,27,Brazil,2008,39684,Volleyball,0,1,0,1
-André Nascimento,29,Brazil,2008,39684,Volleyball,0,1,0,1
-Ogonna Nnamani,25,United States,2008,39684,Volleyball,0,1,0,1
-Aleksey Ostapenko,22,Russia,2008,39684,Volleyball,0,0,1,1
-Paula,26,Brazil,2008,39684,Volleyball,1,0,0,1
-Semyon Poltavsky,27,Russia,2008,39684,Volleyball,0,0,1,1
-Reid Priddy,30,United States,2008,39684,Volleyball,1,0,0,1
-Rodrigão,29,Brazil,2008,39684,Volleyball,0,1,0,1
-Sean Rooney,25,United States,2008,39684,Volleyball,1,0,0,1
-Riley Salmon,32,United States,2008,39684,Volleyball,1,0,0,1
-Samuel,24,Brazil,2008,39684,Volleyball,0,1,0,1
-Sassá,25,Brazil,2008,39684,Volleyball,1,0,0,1
-Danielle Scott-Arruda,35,United States,2008,39684,Volleyball,0,1,0,1
-Sheilla,25,Brazil,2008,39684,Volleyball,1,0,0,1
-Clay Stanley,30,United States,2008,39684,Volleyball,1,0,0,1
-Stacy Sykora,31,United States,2008,39684,Volleyball,0,1,0,1
-Sergey Tetyukhin,32,Russia,2008,39684,Volleyball,0,0,1,1
-Thaísa,21,Brazil,2008,39684,Volleyball,1,0,0,1
-Logan Tom,27,United States,2008,39684,Volleyball,0,1,0,1
-Scott Touzinsky,26,United States,2008,39684,Volleyball,1,0,0,1
-Valeskinha,32,Brazil,2008,39684,Volleyball,1,0,0,1
-Aleksey Verbov,26,Russia,2008,39684,Volleyball,0,0,1,1
-Aleksandr Volkov,23,Russia,2008,39684,Volleyball,0,0,1,1
-Walewska,29,Brazil,2008,39684,Volleyball,1,0,0,1
-Wang Yimei,20,China,2008,39684,Volleyball,0,0,1,1
-Wei Qiuyue,19,China,2008,39684,Volleyball,0,0,1,1
-Kim Willoughby,27,United States,2008,39684,Volleyball,0,1,0,1
-Xu Yunli,21,China,2008,39684,Volleyball,0,0,1,1
-Xue Ming,21,China,2008,39684,Volleyball,0,0,1,1
-Yang Hao,28,China,2008,39684,Volleyball,0,0,1,1
-Zhang Na,28,China,2008,39684,Volleyball,0,0,1,1
-Zhao Ruirui,26,China,2008,39684,Volleyball,0,0,1,1
-Zhou Suhong,29,China,2008,39684,Volleyball,0,0,1,1
-Timo Boll,27,Germany,2008,39684,Table Tennis,0,1,0,1
-Dang Ye-Seo,27,South Korea,2008,39684,Table Tennis,0,0,1,1
-Feng Tian Wei,21,Singapore,2008,39684,Table Tennis,0,1,0,1
-Kim Gyeong-A,31,South Korea,2008,39684,Table Tennis,0,0,1,1
-Li Jia Wei,27,Singapore,2008,39684,Table Tennis,0,1,0,1
-O Sang-Eun,31,South Korea,2008,39684,Table Tennis,0,0,1,1
-Dmitrij Ovtcharov,19,Germany,2008,39684,Table Tennis,0,1,0,1
-Park Mi-Yeong,26,South Korea,2008,39684,Table Tennis,0,0,1,1
-Christian Süß,23,Germany,2008,39684,Table Tennis,0,1,0,1
-Wang Jue Gu,28,Singapore,2008,39684,Table Tennis,0,1,0,1
-Yoon Jae-Young,25,South Korea,2008,39684,Table Tennis,0,0,1,1
-Yu Seung-Min,26,South Korea,2008,39684,Table Tennis,0,0,1,1
-Bevan Docherty,31,New Zealand,2008,39684,Triathlon,0,0,1,1
-Vanessa Fernandes,22,Portugal,2008,39684,Triathlon,0,1,0,1
-Jan Frodeno,27,Germany,2008,39684,Triathlon,1,0,0,1
-Emma Moffatt,23,Australia,2008,39684,Triathlon,0,0,1,1
-Emma Snowsill,27,Australia,2008,39684,Triathlon,1,0,0,1
-Simon Whitfield,33,Canada,2008,39684,Triathlon,0,1,0,1
-Jason Burnett,21,Canada,2008,39684,Trampoline,0,1,0,1
-Karen Cockburn,28,Canada,2008,39684,Trampoline,0,1,0,1
-Dong Dong,19,China,2008,39684,Trampoline,0,0,1,1
-He Wenna,19,China,2008,39684,Trampoline,1,0,0,1
-Yekaterina Khilko,26,Uzbekistan,2008,39684,Trampoline,0,0,1,1
-Lu Chunlong,19,China,2008,39684,Trampoline,1,0,0,1
-Arman Chilmanov,24,Kazakhstan,2008,39684,Taekwondo,0,0,1,1
-Chu Mu-Yen,26,Chinese Taipei,2008,39684,Taekwondo,0,0,1,1
-Chika Chukwumerije,24,Nigeria,2008,39684,Taekwondo,0,0,1,1
-Dalia Contreras,24,Venezuela,2008,39684,Taekwondo,0,0,1,1
-Gwladys Epangue,25,France,2008,39684,Taekwondo,0,0,1,1
-María Espinoza,20,Mexico,2008,39684,Taekwondo,1,0,0,1
-Natália Falavigna,24,Brazil,2008,39684,Taekwondo,0,0,1,1
-Hwang Gyeong-Seon,22,South Korea,2008,39684,Taekwondo,1,0,0,1
-Im Su-Jeong,22,South Korea,2008,39684,Taekwondo,1,0,0,1
-Ja Dong-Min,21,South Korea,2008,39684,Taekwondo,1,0,0,1
-Diana Lopez,24,United States,2008,39684,Taekwondo,0,0,1,1
-Mark Lopez,26,United States,2008,39684,Taekwondo,0,1,0,1
-Steven Lopez,29,United States,2008,39684,Taekwondo,0,0,1,1
-Yulis Mercedes,28,Dominican Republic,2008,39684,Taekwondo,0,1,0,1
-Daynellis Montejo,23,Cuba,2008,39684,Taekwondo,0,0,1,1
-Alexandros Nikolaidis,28,Greece,2008,39684,Taekwondo,0,1,0,1
-Rohullah Nikpai,21,Afghanistan,2008,39684,Taekwondo,0,0,1,1
-Guillermo Pérez,28,Mexico,2008,39684,Taekwondo,1,0,0,1
-Buttree Puedpong,17,Thailand,2008,39684,Taekwondo,0,1,0,1
-Hadi Saei,32,Iran,2008,39684,Taekwondo,1,0,0,1
-Sandra Šaric,24,Croatia,2008,39684,Taekwondo,0,0,1,1
-Mauro Sarmiento,25,Italy,2008,39684,Taekwondo,0,1,0,1
-Karine Sergerie,23,Canada,2008,39684,Taekwondo,0,1,0,1
-Nina Solheim,29,Norway,2008,39684,Taekwondo,0,1,0,1
-Son Tae-Jin,20,South Korea,2008,39684,Taekwondo,1,0,0,1
-Sarah Stevenson,25,Great Britain,2008,39684,Taekwondo,0,0,1,1
-Sung Yu-Chi,26,Chinese Taipei,2008,39684,Taekwondo,0,0,1,1
-Azize Tanrikulu,22,Turkey,2008,39684,Taekwondo,0,1,0,1
-Servet Tazegül,19,Turkey,2008,39684,Taekwondo,0,0,1,1
-Wu Jingyu,21,China,2008,39684,Taekwondo,1,0,0,1
-Zhu Guo,23,China,2008,39684,Taekwondo,0,0,1,1
-Martina Zubcic,19,Croatia,2008,39684,Taekwondo,0,0,1,1
-Simon Aspelin,34,Sweden,2008,39684,Tennis,0,1,0,1
-Bob Bryan,30,United States,2008,39684,Tennis,0,0,1,1
-Mike Bryan,30,United States,2008,39684,Tennis,0,0,1,1
-Yelena Dementyeva,26,Russia,2008,39684,Tennis,1,0,0,1
-Roger Federer,27,Switzerland,2008,39684,Tennis,1,0,0,1
-Fernando González,28,Chile,2008,39684,Tennis,0,1,0,1
-Thomas Johansson,33,Sweden,2008,39684,Tennis,0,1,0,1
-Anabel Medina,26,Spain,2008,39684,Tennis,0,1,0,1
-Rafael Nadal,22,Spain,2008,39684,Tennis,1,0,0,1
-Vivi Ruano,34,Spain,2008,39684,Tennis,0,1,0,1
-Dinara Safina,22,Russia,2008,39684,Tennis,0,1,0,1
-Stanislas Wawrinka,23,Switzerland,2008,39684,Tennis,1,0,0,1
-Serena Williams,26,United States,2008,39684,Tennis,1,0,0,1
-Venus Williams,28,United States,2008,39684,Tennis,1,0,0,1
-Yan Zi,23,China,2008,39684,Tennis,0,0,1,1
-Zheng Jie,25,China,2008,39684,Tennis,0,0,1,1
-Vera Zvonaryova,23,Russia,2008,39684,Tennis,0,0,1,1
-Novak Ðokovic,21,Serbia,2008,39684,Tennis,0,0,1,1
-Alba Cabello,22,Spain,2008,39684,Synchronized Swimming,0,1,0,1
-Raquel Corral,27,Spain,2008,39684,Synchronized Swimming,0,1,0,1
-Mariya Gromova,24,Russia,2008,39684,Synchronized Swimming,1,0,0,1
-Gu Beibei,27,China,2008,39684,Synchronized Swimming,0,0,1,1
-Saho Harada,25,Japan,2008,39684,Synchronized Swimming,0,0,1,1
-Thais Henríquez,25,Spain,2008,39684,Synchronized Swimming,0,1,0,1
-Huang Xuechen,18,China,2008,39684,Synchronized Swimming,0,0,1,1
-Nataliya Ishchenko,22,Russia,2008,39684,Synchronized Swimming,1,0,0,1
-Jiang Tingting,21,China,2008,39684,Synchronized Swimming,0,0,1,1
-Jiang Wenwen,21,China,2008,39684,Synchronized Swimming,0,0,1,1
-Elvira Khasyanova,27,Russia,2008,39684,Synchronized Swimming,1,0,0,1
-Olga Kuzhela,22,Russia,2008,39684,Synchronized Swimming,1,0,0,1
-Liu Ou,21,China,2008,39684,Synchronized Swimming,0,0,1,1
-Laura López,20,Spain,2008,39684,Synchronized Swimming,0,1,0,1
-Luo Xi,20,China,2008,39684,Synchronized Swimming,0,0,1,1
-Yelena Ovchinnikova,26,Russia,2008,39684,Synchronized Swimming,1,0,0,1
-Irina Rodríguez,30,Spain,2008,39684,Synchronized Swimming,0,1,0,1
-Svetlana Romashina,18,Russia,2008,39684,Synchronized Swimming,1,0,0,1
-Anna Shorina,25,Russia,2008,39684,Synchronized Swimming,1,0,0,1
-Sun Qiuting,22,China,2008,39684,Synchronized Swimming,0,0,1,1
-Emiko Suzuki,26,Japan,2008,39684,Synchronized Swimming,0,0,1,1
-Paola Tirados,28,Spain,2008,39684,Synchronized Swimming,0,1,0,1
-Wang Na,24,China,2008,39684,Synchronized Swimming,0,0,1,1
-Zhang Xiaohuan,28,China,2008,39684,Synchronized Swimming,0,0,1,1
-Nathan Adrian,19,United States,2008,39684,Swimming,1,0,0,1
-Angie Bainbridge,18,Australia,2008,39684,Swimming,1,0,0,1
-Bronte Barratt,19,Australia,2008,39684,Swimming,1,0,0,1
-Ricky Berens,20,United States,2008,39684,Swimming,1,0,0,1
-Fréd Bousquet,27,France,2008,39684,Swimming,0,1,0,1
-Elaine Breeden,19,United States,2008,39684,Swimming,0,1,0,1
-Grant Brits,21,Australia,2008,39684,Swimming,0,0,1,1
-Caroline Burckle,22,United States,2008,39684,Swimming,0,0,1,1
-Ashley Callus,29,Australia,2008,39684,Swimming,0,0,1,1
-Milorad Cavic,24,Serbia,2008,39684,Swimming,0,1,0,1
-Ryan Cochrane,19,Canada,2008,39684,Swimming,0,0,1,1
-Ian Crocker,25,United States,2008,39684,Swimming,1,0,0,1
-Lara Davenport,24,Australia,2008,39684,Swimming,1,0,0,1
-Dave Davies,23,Great Britain,2008,39684,Swimming,0,1,0,1
-Inge Dekker,22,Netherlands,2008,39684,Swimming,1,0,0,1
-Ash Delaney,22,Australia,2008,39684,Swimming,0,1,0,1
-Nick Ffrost,21,Australia,2008,39684,Swimming,0,0,1,1
-Alessia Filippi,21,Italy,2008,39684,Swimming,0,1,0,1
-Lotte Friis,20,Denmark,2008,39684,Swimming,0,0,1,1
-Takuro Fujii,23,Japan,2008,39684,Swimming,0,0,1,1
-Mark Gangloff,26,United States,2008,39684,Swimming,1,0,0,1
-Fabien Gilot,24,France,2008,39684,Swimming,0,1,0,1
-Brendan Hansen,27,United States,2008,39684,Swimming,1,0,0,1
-Femke Heemskerk,20,Netherlands,2008,39684,Swimming,1,0,0,1
-Lara Ilchenko,19,Russia,2008,39684,Swimming,1,0,0,1
-Sara Isakovic,20,Slovenia,2008,39684,Swimming,0,1,0,1
-Dan Izotov,16,Russia,2008,39684,Swimming,0,1,0,1
-Jo Jackson,21,Great Britain,2008,39684,Swimming,0,0,1,1
-Larsen Jensen,22,United States,2008,39684,Swimming,0,0,1,1
-Jiao Liuyang,18,China,2008,39684,Swimming,0,1,0,1
-Cullen Jones,24,United States,2008,39684,Swimming,1,0,0,1
-Mirna Jukic,22,Austria,2008,39684,Swimming,0,0,1,1
-Klete Keller,26,United States,2008,39684,Swimming,1,0,0,1
-Ranomi Kromowidjojo,17,Netherlands,2008,39684,Swimming,1,0,0,1
-Yevgeny Lagunov,22,Russia,2008,39684,Swimming,0,1,0,1
-Liu Zige,19,China,2008,39684,Swimming,1,0,0,1
-Nikita Lobintsev,19,Russia,2008,39684,Swimming,0,1,0,1
-Thomas Lurz,28,Germany,2008,39684,Swimming,0,0,1,1
-Linda MacKenzie,24,Australia,2008,39684,Swimming,1,0,0,1
-Grégory Mallet,24,France,2008,39684,Swimming,0,1,0,1
-Christine Marshall,22,United States,2008,39684,Swimming,0,0,1,1
-Takeshi Matsuda,24,Japan,2008,39684,Swimming,0,0,1,1
-Oussama Mellouli,24,Tunisia,2008,39684,Swimming,1,0,0,1
-Alice Mills,22,Australia,2008,39684,Swimming,0,0,1,1
-Junichi Miyashita,24,Japan,2008,39684,Swimming,0,0,1,1
-Reiko Nakamura,26,Japan,2008,39684,Swimming,0,0,1,1
-Sara Nordenstam,25,Norway,2008,39684,Swimming,0,0,1,1
-Lacey Nymeyer,22,United States,2008,39684,Swimming,0,1,0,1
-Alexander Dale Oen,23,Norway,2008,39684,Swimming,0,1,0,1
-Kirk Palmer,21,Australia,2008,39684,Swimming,0,0,1,1
-Kylie Palmer,18,Australia,2008,39684,Swimming,1,0,0,1
-Cassie Patten,21,Great Britain,2008,39684,Swimming,0,0,1,1
-Keri-Anne Payne,20,Great Britain,2008,39684,Swimming,0,1,0,1
-Federica Pellegrini,20,Italy,2008,39684,Swimming,1,0,0,1
-Adam Pine,32,Australia,2008,39684,Swimming,0,1,0,1
-Mikhail Polishchuk,19,Russia,2008,39684,Swimming,0,1,0,1
-Megan Quann-Jendrick,24,United States,2008,39684,Swimming,0,1,0,1
-Hisayoshi Sato,21,Japan,2008,39684,Swimming,0,0,1,1
-Allison Schmitt,18,United States,2008,39684,Swimming,0,0,1,1
-Hinkelien Schreuder,24,Netherlands,2008,39684,Swimming,1,0,0,1
-Emily Seebohm,16,Australia,2008,39684,Swimming,1,0,0,1
-Emily Silver,22,United States,2008,39684,Swimming,0,1,0,1
-Christian Sprenger,22,Australia,2008,39684,Swimming,0,1,0,1
-Boris Steimetz,21,France,2008,39684,Swimming,0,1,0,1
-Aleksandr Sukhorukov,20,Russia,2008,39684,Swimming,0,1,0,1
-Sun Ye,19,China,2008,39684,Swimming,0,0,1,1
-Tan Miao,21,China,2008,39684,Swimming,0,1,0,1
-Tang Jingzhi,21,China,2008,39684,Swimming,0,1,0,1
-Maarten van der Weijden,27,Netherlands,2008,39684,Swimming,1,0,0,1
-Manon van Rooijen,26,Netherlands,2008,39684,Swimming,1,0,0,1
-Kim Vandenberg,24,United States,2008,39684,Swimming,0,0,1,1
-Marleen Veldhuis,29,Netherlands,2008,39684,Swimming,1,0,0,1
-Erik Vendt,27,United States,2008,39684,Swimming,1,0,0,1
-Dave Walters,20,United States,2008,39684,Swimming,1,0,0,1
-Tarnee White,27,Australia,2008,39684,Swimming,1,0,0,1
-Ben Wildman-Tobriner,23,United States,2008,39684,Swimming,1,0,0,1
-Xu Tianlongzi,17,China,2008,39684,Swimming,0,0,1,1
-Yang Yu,23,China,2008,39684,Swimming,0,1,0,1
-Zhang Lin,21,China,2008,39684,Swimming,0,1,0,1
-Zhao Jing,17,China,2008,39684,Swimming,0,0,1,1
-Zhou Yafei,24,China,2008,39684,Swimming,0,0,1,1
-Zhu Qianwei,17,China,2008,39684,Swimming,0,1,0,1
-Monica Abbott,23,United States,2008,39684,Softball,0,1,0,1
-Sandy Allen-Lewis,29,Australia,2008,39684,Softball,0,0,1,1
-Laura Berg,33,United States,2008,39684,Softball,0,1,0,1
-Jodie Bowering,26,Australia,2008,39684,Softball,0,0,1,1
-Crystl Bustos,30,United States,2008,39684,Softball,0,1,0,1
-Kylie Cronk,24,Australia,2008,39684,Softball,0,0,1,1
-Andrea Duran,24,United States,2008,39684,Softball,0,1,0,1
-Naho Emoto,22,Japan,2008,39684,Softball,1,0,0,1
-Jennie Finch,27,United States,2008,39684,Softball,0,1,0,1
-Tairia Flowers,27,United States,2008,39684,Softball,0,1,0,1
-Motoko Fujimoto,27,Japan,2008,39684,Softball,1,0,0,1
-Vicky Galindo,24,United States,2008,39684,Softball,0,1,0,1
-Kelly Hardie,38,Australia,2008,39684,Softball,0,0,1,1
-Tanya Harding,36,Australia,2008,39684,Softball,0,0,1,1
-Megu Hirose,27,Japan,2008,39684,Softball,1,0,0,1
-Emi Inui,24,Japan,2008,39684,Softball,1,0,0,1
-Sachiko Ito,32,Japan,2008,39684,Softball,1,0,0,1
-Lovie Jung,28,United States,2008,39684,Softball,0,1,0,1
-Ayumi Karino,23,Japan,2008,39684,Softball,1,0,0,1
-Kelly Kretschman,28,United States,2008,39684,Softball,0,1,0,1
-Lauren Lappin,24,United States,2008,39684,Softball,0,1,0,1
-Caitlin Lowe,23,United States,2008,39684,Softball,0,1,0,1
-Satoko Mabuchi,26,Japan,2008,39684,Softball,1,0,0,1
-Jessica Mendoza,27,United States,2008,39684,Softball,0,1,0,1
-Yukiyo Mine,20,Japan,2008,39684,Softball,1,0,0,1
-Masumi Mishina,26,Japan,2008,39684,Softball,1,0,0,1
-Simmone Morrow,31,Australia,2008,39684,Softball,0,0,1,1
-Tracey Mosley,34,Australia,2008,39684,Softball,0,0,1,1
-Rei Nishiyama,24,Japan,2008,39684,Softball,1,0,0,1
-Stacey Nuveman,30,United States,2008,39684,Softball,0,1,0,1
-Cat Osterman,25,United States,2008,39684,Softball,0,1,0,1
-Stacey Porter,26,Australia,2008,39684,Softball,0,0,1,1
-Melanie Roche,37,Australia,2008,39684,Softball,0,0,1,1
-Hiroko Sakai,29,Japan,2008,39684,Softball,1,0,0,1
-Rie Sato,27,Japan,2008,39684,Softball,1,0,0,1
-Justine Smethurst,21,Australia,2008,39684,Softball,0,0,1,1
-Mika Someya,25,Japan,2008,39684,Softball,1,0,0,1
-Danielle Stewart,27,Australia,2008,39684,Softball,0,0,1,1
-Natalie Titcume,32,Australia,2008,39684,Softball,0,0,1,1
-Yukiko Ueno,26,Japan,2008,39684,Softball,1,0,0,1
-Natalie Ward,32,Australia,2008,39684,Softball,0,0,1,1
-Natasha Watley,26,United States,2008,39684,Softball,0,1,0,1
-Belinda Wright,27,Australia,2008,39684,Softball,0,0,1,1
-Kerry Wyborn,30,Australia,2008,39684,Softball,0,0,1,1
-Eri Yamada,24,Japan,2008,39684,Softball,1,0,0,1
-Artur Aivazian,35,Ukraine,2008,39684,Shooting,1,0,0,1
-Aleksey Alipov,33,Russia,2008,39684,Shooting,0,0,1,1
-Abhinav Bindra,25,India,2008,39684,Shooting,1,0,0,1
-Christine Brinker-Wenzel,27,Germany,2008,39684,Shooting,0,0,1,1
-Tore Brovold,38,Norway,2008,39684,Shooting,0,1,0,1
-Chiara Cainero,30,Italy,2008,39684,Shooting,1,0,0,1
-Chen Ying,30,China,2008,39684,Shooting,1,0,0,1
-Corey Cogdell,21,United States,2008,39684,Shooting,0,0,1,1
-Eglis Yaima Cruz,28,Cuba,2008,39684,Shooting,0,0,1,1
-Francesco D'Aniello,39,Italy,2008,39684,Shooting,0,1,0,1
-Rajmond Debevec,45,Slovenia,2008,39684,Shooting,0,0,1,1
-Munkhbayar Dorjsuren,39,Germany,2008,39684,Shooting,0,0,1,1
-Du Li,26,China,2008,39684,Shooting,1,0,0,1
-Glenn Eller,26,United States,2008,39684,Shooting,1,0,0,1
-Matt Emmons,27,United States,2008,39684,Shooting,0,1,0,1
-Lyubov Galkina,35,Russia,2008,39684,Shooting,0,1,0,1
-Guo Wenjun,24,China,2008,39684,Shooting,1,0,0,1
-Henri Häkkinen,28,Finland,2008,39684,Shooting,0,0,1,1
-Vincent Hancock,19,United States,2008,39684,Shooting,1,0,0,1
-Hu Binyuan,30,China,2008,39684,Shooting,0,0,1,1
-Vladimir Isakov,38,Russia,2008,39684,Shooting,0,0,1,1
-David Kostelecký,33,Czech Republic,2008,39684,Shooting,1,0,0,1
-Satu Mäkelä-Nummela,37,Finland,2008,39684,Shooting,1,0,0,1
-Otryadyn Gündegmaa,30,Mongolia,2008,39684,Shooting,0,1,0,1
-Nataliya Paderina,32,Russia,2008,39684,Shooting,0,1,0,1
-Pang Wei,22,China,2008,39684,Shooting,1,0,0,1
-Snježana Pejcic,26,Croatia,2008,39684,Shooting,0,0,1,1
-Giovanni Pellielo,38,Italy,2008,39684,Shooting,0,1,0,1
-Oleksandr Petriv,34,Ukraine,2008,39684,Shooting,1,0,0,1
-Warren Potent,46,Australia,2008,39684,Shooting,0,0,1,1
-Qiu Jian,33,China,2008,39684,Shooting,1,0,0,1
-Christian Reitz,21,Germany,2008,39684,Shooting,0,0,1,1
-Kim Rhode,29,United States,2008,39684,Shooting,0,1,0,1
-Nino Salukvadze,39,Georgia,2008,39684,Shooting,0,0,1,1
-Ralf Schumann,46,Germany,2008,39684,Shooting,0,1,0,1
-Zuzana Štefeceková,24,Slovakia,2008,39684,Shooting,0,1,0,1
-Yuriy Sukhorukov,40,Ukraine,2008,39684,Shooting,0,1,0,1
-Tan Zongliang,36,China,2008,39684,Shooting,0,1,0,1
-Anthony Terras,23,France,2008,39684,Shooting,0,0,1,1
-Jason Turner,33,United States,2008,39684,Shooting,0,0,1,1
-Zhu Qinan,23,China,2008,39684,Shooting,0,1,0,1
-Ben Ainslie,31,Great Britain,2008,39684,Sailing,1,0,0,1
-Glenn Ashby,30,Australia,2008,39684,Sailing,0,1,0,1
-Tom Ashley,24,New Zealand,2008,39684,Sailing,1,0,0,1
-Sarah Ayton,28,Great Britain,2008,39684,Sailing,1,0,0,1
-Olivier Bausset,26,France,2008,39684,Sailing,0,0,1,1
-Sofia Bekatorou,30,Greece,2008,39684,Sailing,0,0,1,1
-Lobke Berkhout,27,Netherlands,2008,39684,Sailing,0,1,0,1
-Annemieke Bes,30,Netherlands,2008,39684,Sailing,0,1,0,1
-Julien Bontemps,29,France,2008,39684,Sailing,0,1,0,1
-Marcelien Bos-de Koning,30,Netherlands,2008,39684,Sailing,0,1,0,1
-Darren Bundock,37,Australia,2008,39684,Sailing,0,1,0,1
-Nicolas Charbonnier,27,France,2008,39684,Sailing,0,0,1,1
-Fernando Echavarri,36,Spain,2008,39684,Sailing,1,0,0,1
-Anders Ekström,27,Sweden,2008,39684,Sailing,0,0,1,1
-Carlos Espínola,36,Argentina,2008,39684,Sailing,0,0,1,1
-Xavier Fernández,31,Spain,2008,39684,Sailing,0,1,0,1
-Guillaume Florent,34,France,2008,39684,Sailing,0,0,1,1
-Joe Glanfield,29,Great Britain,2008,39684,Sailing,0,1,0,1
-Paul Goodison,30,Great Britain,2008,39684,Sailing,1,0,0,1
-Martin Kirketerp,36,Denmark,2008,39684,Sailing,1,0,0,1
-Virginia Kravarioti,24,Greece,2008,39684,Sailing,0,0,1,1
-Santiago Lange,46,Argentina,2008,39684,Sailing,0,0,1,1
-Fredrik Lööf,38,Sweden,2008,39684,Sailing,0,0,1,1
-Iker Martínez,31,Spain,2008,39684,Sailing,0,1,0,1
-Mandy Mulder,21,Netherlands,2008,39684,Sailing,0,1,0,1
-Fernanda Oliveira,27,Brazil,2008,39684,Sailing,0,0,1,1
-Malcolm Page,36,Australia,2008,39684,Sailing,1,0,0,1
-Sofia Papadopoulou,24,Greece,2008,39684,Sailing,0,0,1,1
-Tessa Parkinson,21,Australia,2008,39684,Sailing,1,0,0,1
-Antón Paz,32,Spain,2008,39684,Sailing,1,0,0,1
-Hannes Peckolt,25,Germany,2008,39684,Sailing,0,0,1,1
-Jan Peter Peckolt,27,Germany,2008,39684,Sailing,0,0,1,1
-Iain Percy,32,Great Britain,2008,39684,Sailing,1,0,0,1
-Bruno Prada,37,Brazil,2008,39684,Sailing,0,1,0,1
-Zach Railey,24,United States,2008,39684,Sailing,0,1,0,1
-Elise Rechichi,22,Australia,2008,39684,Sailing,1,0,0,1
-Nick Rogers,31,Great Britain,2008,39684,Sailing,0,1,0,1
-Diego Romero,33,Italy,2008,39684,Sailing,0,0,1,1
-Robert Scheidt,35,Brazil,2008,39684,Sailing,0,1,0,1
-Alessandra Sensini,38,Italy,2008,39684,Sailing,0,1,0,1
-Bryony Shaw,25,Great Britain,2008,39684,Sailing,0,0,1,1
-Andrew Simpson,31,Great Britain,2008,39684,Sailing,1,0,0,1
-Isabel Swan,24,Brazil,2008,39684,Sailing,0,0,1,1
-Anna Tunnicliffe,25,United States,2008,39684,Sailing,1,0,0,1
-Gintare Volungeviciute-Scheidt,25,Lithuania,2008,39684,Sailing,0,1,0,1
-Jonas Warrer,29,Denmark,2008,39684,Sailing,1,0,0,1
-Sarah Webb,31,Great Britain,2008,39684,Sailing,1,0,0,1
-Nathan Wilmot,28,Australia,2008,39684,Sailing,1,0,0,1
-Pippa Wilson,22,Great Britain,2008,39684,Sailing,1,0,0,1
-Merel Witteveen,23,Netherlands,2008,39684,Sailing,0,1,0,1
-Xu Lijia,20,China,2008,39684,Sailing,0,0,1,1
-Yin Jian,29,China,2008,39684,Sailing,1,0,0,1
-Vasilij Žbogar,32,Slovenia,2008,39684,Sailing,0,1,0,1
-Shahar Zubari,21,Israel,2008,39684,Sailing,0,0,1,1
-Luca Agamennoni,28,Italy,2008,39684,Rowing,0,1,0,1
-Wyatt Allen,29,United States,2008,39684,Rowing,0,0,1,1
-Mads Andersen,30,Denmark,2008,39684,Rowing,1,0,0,1
-Julien Bahain,22,France,2008,39684,Rowing,0,0,1,1
-Eniko Barabas-Mironcic,22,Romania,2008,39684,Rowing,0,0,1,1
-Jon Beare,34,Canada,2008,39684,Rowing,0,0,1,1
-Anna Bebington-Watkins,25,Great Britain,2008,39684,Rowing,0,0,1,1
-Milosz Bernatajtys,26,Poland,2008,39684,Rowing,0,1,0,1
-Cédric Berrest,23,France,2008,39684,Rowing,0,0,1,1
-Yuliya Bichik,25,Belarus,2008,39684,Rowing,0,0,1,1
-Kathrin Boron,38,Germany,2008,39684,Rowing,0,0,1,1
-Micah Boyd,26,United States,2008,39684,Rowing,0,0,1,1
-Iain Brambell,34,Canada,2008,39684,Rowing,0,0,1,1
-Scott Brennan,25,Australia,2008,39684,Rowing,1,0,0,1
-George Bridgewater,25,New Zealand,2008,39684,Rowing,0,0,1,1
-Andrew Byrnes,25,Canada,2008,39684,Rowing,1,0,0,1
-Erin Cafaro,25,United States,2008,39684,Rowing,1,0,0,1
-Dave Calder,30,Canada,2008,39684,Rowing,0,1,0,1
-Tracy Cameron,33,Canada,2008,39684,Rowing,0,0,1,1
-Germain Chardin,25,France,2008,39684,Rowing,0,0,1,1
-Jonathan Coeffic,27,France,2008,39684,Rowing,0,0,1,1
-Steven Coppola,24,United States,2008,39684,Rowing,0,0,1,1
-David Crawshay,28,Australia,2008,39684,Rowing,1,0,0,1
-Caryn Davies,26,United States,2008,39684,Rowing,1,0,0,1
-Annemiek de Haan,27,Netherlands,2008,39684,Rowing,0,1,0,1
-Femke Dekker,29,Netherlands,2008,39684,Rowing,0,1,0,1
-Julien Després,25,France,2008,39684,Rowing,0,0,1,1
-Mahé Drysdale,29,New Zealand,2008,39684,Rowing,0,0,1,1
-Rumyana Dzhadzharova-Neykova,35,Bulgaria,2008,39684,Rowing,1,0,0,1
-Eskild Ebbesen,36,Denmark,2008,39684,Rowing,1,0,0,1
-Thomas Ebert,35,Denmark,2008,39684,Rowing,1,0,0,1
-Ric Egington,29,Great Britain,2008,39684,Rowing,0,1,0,1
-Tõnu Endrekson,29,Estonia,2008,39684,Rowing,0,1,0,1
-Caroline Evers-Swindell,29,New Zealand,2008,39684,Rowing,1,0,0,1
-Georgina Evers-Swindell,29,New Zealand,2008,39684,Rowing,1,0,0,1
-Debbie Flood,28,Great Britain,2008,39684,Rowing,0,1,0,1
-Rodica Florea-Serban,25,Romania,2008,39684,Rowing,0,0,1,1
-Susan Francia,25,United States,2008,39684,Rowing,1,0,0,1
-Scott Frandsen,28,Canada,2008,39684,Rowing,0,1,0,1
-Duncan Free,35,Australia,2008,39684,Rowing,1,0,0,1
-Rossano Galtarossa,36,Italy,2008,39684,Rowing,0,1,0,1
-Gao Yulan,24,China,2008,39684,Rowing,0,1,0,1
-Nataliya Gelakh,30,Belarus,2008,39684,Rowing,0,0,1,1
-Elena Georgescu,44,Romania,2008,39684,Rowing,0,0,1,1
-Drew Ginn,33,Australia,2008,39684,Rowing,1,0,0,1
-Anna Goodale,25,United States,2008,39684,Rowing,1,0,0,1
-Katherine Grainger,32,Great Britain,2008,39684,Rowing,0,1,0,1
-Michelle Guerette,27,United States,2008,39684,Rowing,0,1,0,1
-Kyle Hamilton,30,Canada,2008,39684,Rowing,1,0,0,1
-Alastair Heathcote,30,Great Britain,2008,39684,Rowing,0,1,0,1
-Francis Hegerty,25,Australia,2008,39684,Rowing,0,1,0,1
-Beau Hoopman,27,United States,2008,39684,Rowing,0,0,1,1
-Frances Houghton,27,Great Britain,2008,39684,Rowing,0,1,0,1
-Malcolm Howard,25,Canada,2008,39684,Rowing,1,0,0,1
-Mark Hunter,30,Great Britain,2008,39684,Rowing,1,0,0,1
-Christiane Huth,27,Germany,2008,39684,Rowing,0,1,0,1
-Doina Ignat,39,Romania,2008,39684,Rowing,0,0,1,1
-Josh Inman,28,United States,2008,39684,Rowing,0,0,1,1
-Jüri Jaanson,42,Estonia,2008,39684,Rowing,0,1,0,1
-Tom James,24,Great Britain,2008,39684,Rowing,1,0,0,1
-Michal Jelinski,28,Poland,2008,39684,Rowing,1,0,0,1
-Jin Ziwei,22,China,2008,39684,Rowing,1,0,0,1
-Morten Jørgensen,23,Denmark,2008,39684,Rowing,1,0,0,1
-Yekaterina Khodatovich-Karsten,36,Belarus,2008,39684,Rowing,0,0,1,1
-Nienke Kingma,26,Netherlands,2008,39684,Rowing,0,1,0,1
-Melanie Kok,24,Canada,2008,39684,Rowing,0,0,1,1
-Marek Kolbowicz,37,Poland,2008,39684,Rowing,1,0,0,1
-Adam Korol,33,Poland,2008,39684,Rowing,1,0,0,1
-Adam Kreek,27,Canada,2008,39684,Rowing,1,0,0,1
-Matt Langridge,25,Great Britain,2008,39684,Rowing,0,1,0,1
-Elise Laverick,33,Great Britain,2008,39684,Rowing,0,0,1,1
-Mike Lewis,27,Canada,2008,39684,Rowing,0,0,1,1
-Kevin Light,29,Canada,2008,39684,Rowing,1,0,0,1
-Caroline Lind,25,United States,2008,39684,Rowing,1,0,0,1
-Elle Logan,20,United States,2008,39684,Rowing,1,0,0,1
-Tom Lucy,20,Great Britain,2008,39684,Rowing,0,1,0,1
-Manuela Lutze,34,Germany,2008,39684,Rowing,0,0,1,1
-James Marburg,25,Australia,2008,39684,Rowing,0,1,0,1
-Marcus McElhenney,27,United States,2008,39684,Rowing,0,0,1,1
-Maxi McKenzie-McHarg,28,Australia,2008,39684,Rowing,0,1,0,1
-Anna Mickelson-Cummins,28,United States,2008,39684,Rowing,1,0,0,1
-Dorian Mortelette,24,France,2008,39684,Rowing,0,0,1,1
-Dimitris Mougios,26,Greece,2008,39684,Rowing,0,1,0,1
-Acer Nethercott,30,Great Britain,2008,39684,Rowing,0,1,0,1
-Minna Nieminen,31,Finland,2008,39684,Rowing,0,1,0,1
-Britta Oppelt,30,Germany,2008,39684,Rowing,0,0,1,1
-Ioana Papuc-Rotaru,24,Romania,2008,39684,Rowing,0,0,1,1
-Liam Parsons,31,Canada,2008,39684,Rowing,0,0,1,1
-Alex Partridge,27,Great Britain,2008,39684,Rowing,0,1,0,1
-Bartlomiej Pawelczak,26,Poland,2008,39684,Rowing,0,1,0,1
-Lukasz Pawlowski,25,Poland,2008,39684,Rowing,0,1,0,1
-Pierre-Jean Peltier,24,France,2008,39684,Rowing,0,0,1,1
-Constanta Pipota-Burcica,37,Romania,2008,39684,Rowing,0,0,1,1
-Vasilios Polymeros,32,Greece,2008,39684,Rowing,0,1,0,1
-Brian Price,32,Canada,2008,39684,Rowing,1,0,0,1
-Zac Purchase,22,Great Britain,2008,39684,Rowing,1,0,0,1
-Rasmus Quist,28,Denmark,2008,39684,Rowing,0,0,1,1
-Simone Raineri,31,Italy,2008,39684,Rowing,0,1,0,1
-Pawel Randa,29,Poland,2008,39684,Rowing,0,1,0,1
-Mads Rasmussen,26,Denmark,2008,39684,Rowing,0,0,1,1
-Pete Reed,27,Great Britain,2008,39684,Rowing,1,0,0,1
-Roline Repelaer van Driel,24,Netherlands,2008,39684,Rowing,0,1,0,1
-Benjamin Rondeau,24,France,2008,39684,Rowing,0,0,1,1
-Stephen Rowbotham,26,Great Britain,2008,39684,Rowing,0,0,1,1
-Ben Rutledge,27,Canada,2008,39684,Rowing,1,0,0,1
-Matt Ryan,24,Australia,2008,39684,Rowing,0,1,0,1
-Stephanie Schiller,22,Germany,2008,39684,Rowing,0,0,1,1
-Matt Schnobrich,29,United States,2008,39684,Rowing,0,0,1,1
-Lindsay Schoop,26,United States,2008,39684,Rowing,1,0,0,1
-Dominic Seiterle,32,Canada,2008,39684,Rowing,1,0,0,1
-Sarah Siegelaar,26,Netherlands,2008,39684,Rowing,0,1,0,1
-Colin Smith,24,Great Britain,2008,39684,Rowing,0,1,0,1
-Marlies Smulders,26,Netherlands,2008,39684,Rowing,0,1,0,1
-Tom Stallard,29,Great Britain,2008,39684,Rowing,0,1,0,1
-Sanna Stén,31,Finland,2008,39684,Rowing,0,1,0,1
-Simona Strimbeschi-Musat,26,Romania,2008,39684,Rowing,0,0,1,1
-Ondrej Synek,25,Czech Republic,2008,39684,Rowing,0,1,0,1
-Tang Bin,22,China,2008,39684,Rowing,1,0,0,1
-Helen Tanger,29,Netherlands,2008,39684,Rowing,0,1,0,1
-Annekatrin Thiele,23,Germany,2008,39684,Rowing,0,1,0,1
-Andrew Triggs Hodge,29,Great Britain,2008,39684,Rowing,1,0,0,1
-Olaf Tufte,32,Norway,2008,39684,Rowing,1,0,0,1
-Nathan Twaddle,31,New Zealand,2008,39684,Rowing,0,0,1,1
-Kirsten van der Kolk,32,Netherlands,2008,39684,Rowing,1,0,0,1
-Marit van Eupen,38,Netherlands,2008,39684,Rowing,1,0,0,1
-Annemarieke van Rumpt,28,Netherlands,2008,39684,Rowing,0,1,0,1
-Simone Venier,23,Italy,2008,39684,Rowing,0,1,0,1
-Annie Vernon,25,Great Britain,2008,39684,Rowing,0,1,0,1
-Bryan Volpenhein,31,United States,2008,39684,Rowing,0,0,1,1
-Daniel Walsh,29,United States,2008,39684,Rowing,0,0,1,1
-Konrad Wasielewski,23,Poland,2008,39684,Rowing,1,0,0,1
-Matt Wells,28,Great Britain,2008,39684,Rowing,0,0,1,1
-Josh West,31,Great Britain,2008,39684,Rowing,0,1,0,1
-Jake Wetzel,31,Canada,2008,39684,Rowing,1,0,0,1
-Mary Whipple,28,United States,2008,39684,Rowing,1,0,0,1
-Steve Williams,32,Great Britain,2008,39684,Rowing,1,0,0,1
-Ester Workel,33,Netherlands,2008,39684,Rowing,0,1,0,1
-Wu You,24,China,2008,39684,Rowing,0,1,0,1
-Xi Aihua,26,China,2008,39684,Rowing,1,0,0,1
-Zhang Yangyang,19,China,2008,39684,Rowing,1,0,0,1
-Margarita Aliychuk,18,Russia,2008,39684,Rhythmic Gymnastics,1,0,0,1
-Alesya Babushkina,19,Belarus,2008,39684,Rhythmic Gymnastics,0,0,1,1
-Hanna Bezsonova,24,Ukraine,2008,39684,Rhythmic Gymnastics,0,0,1,1
-Cai Tongtong,18,China,2008,39684,Rhythmic Gymnastics,0,1,0,1
-Chou Tao,20,China,2008,39684,Rhythmic Gymnastics,0,1,0,1
-Anna Gavrilenko,18,Russia,2008,39684,Rhythmic Gymnastics,1,0,0,1
-Tatyana Gorbunova,18,Russia,2008,39684,Rhythmic Gymnastics,1,0,0,1
-Anastasiya Ivankova,16,Belarus,2008,39684,Rhythmic Gymnastics,0,0,1,1
-Yevgeniya Kanayeva,18,Russia,2008,39684,Rhythmic Gymnastics,1,0,0,1
-Lu Yuanyang,25,China,2008,39684,Rhythmic Gymnastics,0,1,0,1
-Zina Lunina,19,Belarus,2008,39684,Rhythmic Gymnastics,0,0,1,1
-Glafira Martinovich,19,Belarus,2008,39684,Rhythmic Gymnastics,0,0,1,1
-Yelena Posevina,22,Russia,2008,39684,Rhythmic Gymnastics,1,0,0,1
-Kseniya Sankovich,18,Belarus,2008,39684,Rhythmic Gymnastics,0,0,1,1
-Darya Shkurikhina,17,Russia,2008,39684,Rhythmic Gymnastics,1,0,0,1
-Sui Jianshuang,19,China,2008,39684,Rhythmic Gymnastics,0,1,0,1
-Sun Dan,21,China,2008,39684,Rhythmic Gymnastics,0,1,0,1
-Alina Tumilovich,18,Belarus,2008,39684,Rhythmic Gymnastics,0,0,1,1
-Zhang Shuo,24,China,2008,39684,Rhythmic Gymnastics,0,1,0,1
-Inna Zhukova,21,Belarus,2008,39684,Rhythmic Gymnastics,0,1,0,1
-Nataliya Zuyeva,19,Russia,2008,39684,Rhythmic Gymnastics,1,0,0,1
-Heather Fell,25,Great Britain,2008,39684,Modern Pentathlon,0,1,0,1
-Edvinas Krungolcas,35,Lithuania,2008,39684,Modern Pentathlon,0,1,0,1
-Andrey Moiseyev,29,Russia,2008,39684,Modern Pentathlon,1,0,0,1
-Lena Schöneborn,22,Germany,2008,39684,Modern Pentathlon,1,0,0,1
-Viktoriya Tereshchuk,26,Ukraine,2008,39684,Modern Pentathlon,0,0,1,1
-Andrejus Zadneprovskis,33,Lithuania,2008,39684,Modern Pentathlon,0,0,1,1
-An Kum-Ae,28,North Korea,2008,39684,Judo,0,1,0,1
-Yordanis Arencibia,28,Cuba,2008,39684,Judo,0,0,1,1
-Sergei Aschwanden,32,Switzerland,2008,39684,Judo,0,0,1,1
-Amar Benikhlef,26,Algeria,2008,39684,Judo,0,1,0,1
-Yanet Bermoy,21,Cuba,2008,39684,Judo,0,1,0,1
-Ole Bischof,28,Germany,2008,39684,Judo,1,0,0,1
-Rasul Bokiyev,25,Tajikistan,2008,39684,Judo,0,0,1,1
-Edith Bosch,28,Netherlands,2008,39684,Judo,0,0,1,1
-Oscar Braison,23,Cuba,2008,39684,Judo,0,0,1,1
-Tiago Camilo,26,Brazil,2008,39684,Judo,0,0,1,1
-Yalennis Castillo,22,Cuba,2008,39684,Judo,0,1,0,1
-Choi Min-Ho,27,South Korea,2008,39684,Judo,1,0,0,1
-Benjamin Darbelet,27,France,2008,39684,Judo,0,1,0,1
-Lucie Décosse,27,France,2008,39684,Judo,0,1,0,1
-Alina Dumitru,25,Romania,2008,39684,Judo,1,0,0,1
-Deborah Gravenstijn,33,Netherlands,2008,39684,Judo,0,1,0,1
-Henk Grol,23,Netherlands,2008,39684,Judo,0,0,1,1
-Leandro Guilheiro,25,Brazil,2008,39684,Judo,0,0,1,1
-Soraya Haddad,23,Algeria,2008,39684,Judo,0,0,1,1
-Anaisis Hernández,26,Cuba,2008,39684,Judo,0,1,0,1
-Roman Hontiuk,24,Ukraine,2008,39684,Judo,0,0,1,1
-Ruben Houkes,29,Netherlands,2008,39684,Judo,0,0,1,1
-Satoshi Ishii,21,Japan,2008,39684,Judo,1,0,0,1
-Jeong Gyeong-Mi,23,South Korea,2008,39684,Judo,0,0,1,1
-Kim Jae-Beom,23,South Korea,2008,39684,Judo,0,1,0,1
-Mövlud Mir?liyev,34,Azerbaijan,2008,39684,Judo,0,0,1,1
-Hesham Misbah,26,Egypt,2008,39684,Judo,0,0,1,1
-Elnur M?mm?dli,20,Azerbaijan,2008,39684,Judo,1,0,0,1
-Naidangiin Tüvshinbayar,24,Mongolia,2008,39684,Judo,1,0,0,1
-Misato Nakamura,19,Japan,2008,39684,Judo,0,0,1,1
-Idalys Ortíz,18,Cuba,2008,39684,Judo,0,0,1,1
-Ludwig Paischer,26,Austria,2008,39684,Judo,0,1,0,1
-Pak Chol-Min,25,North Korea,2008,39684,Judo,0,0,1,1
-Paula Pareto,22,Argentina,2008,39684,Judo,0,0,1,1
-Lucija Polavder,23,Slovenia,2008,39684,Judo,0,0,1,1
-Stéphanie Possamai,28,France,2008,39684,Judo,0,0,1,1
-Ketleyn Quadros,20,Brazil,2008,39684,Judo,0,0,1,1
-Giulia Quintavalle,25,Italy,2008,39684,Judo,1,0,0,1
-Teddy Riner,19,France,2008,39684,Judo,0,0,1,1
-Ronda Rousey,21,United States,2008,39684,Judo,0,0,1,1
-Rishod Sobirov,21,Uzbekistan,2008,39684,Judo,0,0,1,1
-Ryoko Tamura-Tani,32,Japan,2008,39684,Judo,0,0,1,1
-Abdullo Tangriyev,27,Uzbekistan,2008,39684,Judo,0,1,0,1
-Ayumi Tanimoto,27,Japan,2008,39684,Judo,1,0,0,1
-Tong Wen,25,China,2008,39684,Judo,1,0,0,1
-Irakli Tsirekidze,26,Georgia,2008,39684,Judo,1,0,0,1
-Maki Tsukada,26,Japan,2008,39684,Judo,0,1,0,1
-Masato Uchishiba,30,Japan,2008,39684,Judo,1,0,0,1
-Masae Ueno,29,Japan,2008,39684,Judo,1,0,0,1
-Wang Gi-Chun,19,South Korea,2008,39684,Judo,0,1,0,1
-Elisabeth Willeboordse,29,Netherlands,2008,39684,Judo,0,0,1,1
-Won Ok-Im,21,North Korea,2008,39684,Judo,0,0,1,1
-Xian Dongmei,32,China,2008,39684,Judo,1,0,0,1
-Xu Yan,26,China,2008,39684,Judo,0,0,1,1
-Yang Xiuli,24,China,2008,39684,Judo,1,0,0,1
-Askhat Zhitkeyev,27,Kazakhstan,2008,39684,Judo,0,1,0,1
-Des Abbott,21,Australia,2008,39684,Hockey,0,0,1,1
-Marilyn Agliotti,29,Netherlands,2008,39684,Hockey,1,0,0,1
-Magdalena Aicega,34,Argentina,2008,39684,Hockey,0,0,1,1
-David Alegre,23,Spain,2008,39684,Hockey,0,1,0,1
-Ramón Alegre,27,Spain,2008,39684,Hockey,0,1,0,1
-Pol Amat,30,Spain,2008,39684,Hockey,0,1,0,1
-Eduard Arbós,25,Spain,2008,39684,Hockey,0,1,0,1
-Lucha Aymar,31,Argentina,2008,39684,Hockey,0,0,1,1
-Noel Barrionuevo,24,Argentina,2008,39684,Hockey,0,0,1,1
-Sebastian Biederlack,26,Germany,2008,39684,Hockey,1,0,0,1
-Minke Booij,31,Netherlands,2008,39684,Hockey,1,0,0,1
-Travis Brooks,28,Australia,2008,39684,Hockey,0,0,1,1
-Kiel Brown,24,Australia,2008,39684,Hockey,0,0,1,1
-Claudia Burkart,28,Argentina,2008,39684,Hockey,0,0,1,1
-Chen Qiuqi,28,China,2008,39684,Hockey,0,1,0,1
-Chen Zhaoxia,33,China,2008,39684,Hockey,0,1,0,1
-Cheng Hui,35,China,2008,39684,Hockey,0,1,0,1
-Quico Cortés,25,Spain,2008,39684,Hockey,0,1,0,1
-Eva de Goede,19,Netherlands,2008,39684,Hockey,1,0,0,1
-Lisanne de Roever,29,Netherlands,2008,39684,Hockey,1,0,0,1
-Liam De Young,26,Australia,2008,39684,Hockey,0,0,1,1
-Wieke Dijkstra,24,Netherlands,2008,39684,Hockey,1,0,0,1
-Luke Doerner,28,Australia,2008,39684,Hockey,0,0,1,1
-Jamie Dwyer,29,Australia,2008,39684,Hockey,0,0,1,1
-Sergi Enrique,20,Spain,2008,39684,Hockey,0,1,0,1
-Alex Fábregas,27,Spain,2008,39684,Hockey,0,1,0,1
-Kiko Fábregas,30,Spain,2008,39684,Hockey,0,1,0,1
-Juan Fernández,23,Spain,2008,39684,Hockey,0,1,0,1
-Santi Freixa,25,Spain,2008,39684,Hockey,0,1,0,1
-Fu Baorong,30,China,2008,39684,Hockey,0,1,0,1
-Moritz Fürste,23,Germany,2008,39684,Hockey,1,0,0,1
-Gao Lihua,28,China,2008,39684,Hockey,0,1,0,1
-Sole García,27,Argentina,2008,39684,Hockey,0,0,1,1
-Rodrigo Garza,28,Spain,2008,39684,Hockey,0,1,0,1
-Bevan George,31,Australia,2008,39684,Hockey,0,0,1,1
-Maartje Goderie,24,Netherlands,2008,39684,Hockey,1,0,0,1
-Mariana González,32,Argentina,2008,39684,Hockey,0,0,1,1
-David Guest,26,Australia,2008,39684,Hockey,0,0,1,1
-Alejandra Gulla,31,Argentina,2008,39684,Hockey,0,0,1,1
-Rob Hammond,27,Australia,2008,39684,Hockey,0,0,1,1
-Tobias Hauke,20,Germany,2008,39684,Hockey,1,0,0,1
-Maripi Hernández,31,Argentina,2008,39684,Hockey,0,0,1,1
-Ellen Hoog,22,Netherlands,2008,39684,Hockey,1,0,0,1
-Huang Junxia,32,China,2008,39684,Hockey,0,1,0,1
-Gisi Kañevsky,23,Argentina,2008,39684,Hockey,0,0,1,1
-Fergus Kavanagh,23,Australia,2008,39684,Hockey,0,0,1,1
-Florian Keller,26,Germany,2008,39684,Hockey,1,0,0,1
-Mark Knowles,23,Australia,2008,39684,Hockey,0,0,1,1
-Oliver Korn,24,Germany,2008,39684,Hockey,1,0,0,1
-Stephen Lambert,28,Australia,2008,39684,Hockey,0,0,1,1
-Li Hongxia,21,China,2008,39684,Hockey,0,1,0,1
-Li Shuang,30,China,2008,39684,Hockey,0,1,0,1
-Rosario Luchetti,24,Argentina,2008,39684,Hockey,0,0,1,1
-Ma Yibo,28,China,2008,39684,Hockey,0,1,0,1
-Mechi Margalot,33,Argentina,2008,39684,Hockey,0,0,1,1
-Eli Matheson,25,Australia,2008,39684,Hockey,0,0,1,1
-Niklas Meinert,27,Germany,2008,39684,Hockey,1,0,0,1
-Jan-Marco Montag,24,Germany,2008,39684,Hockey,1,0,0,1
-Fátima Moreira de Melo,30,Netherlands,2008,39684,Hockey,1,0,0,1
-Eefke Mulder,30,Netherlands,2008,39684,Hockey,1,0,0,1
-Max Müller,21,Germany,2008,39684,Hockey,1,0,0,1
-Carlos Nevado,25,Germany,2008,39684,Hockey,1,0,0,1
-Eddie Ockenden,21,Australia,2008,39684,Hockey,0,0,1,1
-Roc Oliva,19,Spain,2008,39684,Hockey,0,1,0,1
-Pan Fengzhen,23,China,2008,39684,Hockey,0,1,0,1
-Maartje Paumen,22,Netherlands,2008,39684,Hockey,1,0,0,1
-Sophie Polkamp,24,Netherlands,2008,39684,Hockey,1,0,0,1
-Carla Rebecchi,23,Argentina,2008,39684,Hockey,0,0,1,1
-Ren Ye,22,China,2008,39684,Hockey,0,1,0,1
-Xavier Ribas,32,Spain,2008,39684,Hockey,0,1,0,1
-Mariana Rossi,29,Argentina,2008,39684,Hockey,0,0,1,1
-Mariné Russo,28,Argentina,2008,39684,Hockey,0,0,1,1
-Albert Sala,27,Spain,2008,39684,Hockey,0,1,0,1
-Janneke Schopman,31,Netherlands,2008,39684,Hockey,1,0,0,1
-Grant Schubert,28,Australia,2008,39684,Hockey,0,0,1,1
-Minke Smabers,29,Netherlands,2008,39684,Hockey,1,0,0,1
-Andrew Smith,29,Australia,2008,39684,Hockey,0,0,1,1
-Víctor Sojo,24,Spain,2008,39684,Hockey,0,1,0,1
-Song Qingling,22,China,2008,39684,Hockey,0,1,0,1
-Belén Succi,22,Argentina,2008,39684,Hockey,0,0,1,1
-Tang Chunling,32,China,2008,39684,Hockey,0,1,0,1
-Eddie Tubau,27,Spain,2008,39684,Hockey,0,1,0,1
-Naomi van As,25,Netherlands,2008,39684,Hockey,1,0,0,1
-Miek van Geenhuizen,26,Netherlands,2008,39684,Hockey,1,0,0,1
-Paola Vukojicic,33,Argentina,2008,39684,Hockey,0,0,1,1
-Max Weinhold,26,Germany,2008,39684,Hockey,1,0,0,1
-Tibor Weißenborn,27,Germany,2008,39684,Hockey,1,0,0,1
-Matt Wells,30,Australia,2008,39684,Hockey,0,0,1,1
-Lidewij Welten,18,Netherlands,2008,39684,Hockey,1,0,0,1
-Benjamin Weß,23,Germany,2008,39684,Hockey,1,0,0,1
-Timo Weß,26,Germany,2008,39684,Hockey,1,0,0,1
-Philip Witte,24,Germany,2008,39684,Hockey,1,0,0,1
-Matthias Witthaus,26,Germany,2008,39684,Hockey,1,0,0,1
-Christopher Zeller,23,Germany,2008,39684,Hockey,1,0,0,1
-Philipp Zeller,25,Germany,2008,39684,Hockey,1,0,0,1
-Zhang Yimeng,24,China,2008,39684,Hockey,0,1,0,1
-Zhao Yudiao,19,China,2008,39684,Hockey,0,1,0,1
-Zhou Wanfeng,28,China,2008,39684,Hockey,0,1,0,1
-Ragnhild Aamodt,27,Norway,2008,39684,Handball,1,0,0,1
-Luc Abalo,23,France,2008,39684,Handball,1,0,0,1
-Joël Abati,37,France,2008,39684,Handball,1,0,0,1
-An Jeong-Hwa,27,South Korea,2008,39684,Handball,0,0,1,1
-Yekaterina Andryushina,22,Russia,2008,39684,Handball,0,1,0,1
-Sturla Ásgeirsson,28,Iceland,2008,39684,Handball,0,1,0,1
-Arnór Atlason,24,Iceland,2008,39684,Handball,0,1,0,1
-Bae Min-Hee,20,South Korea,2008,39684,Handball,0,0,1,1
-David Barrufet,38,Spain,2008,39684,Handball,0,0,1,1
-Jon Belaustegui,29,Spain,2008,39684,Handball,0,0,1,1
-Inna Bliznova,21,Russia,2008,39684,Handball,0,1,0,1
-Karoline Dyhre Breivang,28,Norway,2008,39684,Handball,1,0,0,1
-Cédric Burdet,33,France,2008,39684,Handball,1,0,0,1
-Choi Im-Jeong,27,South Korea,2008,39684,Handball,0,0,1,1
-David Davis,31,Spain,2008,39684,Handball,0,0,1,1
-Didier Dinart,31,France,2008,39684,Handball,1,0,0,1
-Yelena Dmitriyeva,25,Russia,2008,39684,Handball,0,1,0,1
-Alberto Entrerríos,31,Spain,2008,39684,Handball,0,0,1,1
-Raúl Entrerríos,27,Spain,2008,39684,Handball,0,0,1,1
-Jérôme Fernandez,31,France,2008,39684,Handball,1,0,0,1
-Marit Malm Frafjord,22,Norway,2008,39684,Handball,1,0,0,1
-Rubén Garabaya,29,Spain,2008,39684,Handball,0,0,1,1
-Juan García,30,Spain,2008,39684,Handball,0,0,1,1
-Logi Geirsson,25,Iceland,2008,39684,Handball,0,1,0,1
-Bertrand Gille,30,France,2008,39684,Handball,1,0,0,1
-Guillaume Gille,32,France,2008,39684,Handball,1,0,0,1
-Olivier Girault,35,France,2008,39684,Handball,1,0,0,1
-Kari Aalvik Grimsbø,23,Norway,2008,39684,Handball,1,0,0,1
-Michaël Guigou,26,France,2008,39684,Handball,1,0,0,1
-Róbert Gunnarsson,28,Iceland,2008,39684,Handball,0,1,0,1
-Björgvin Gustavsson,23,Iceland,2008,39684,Handball,0,1,0,1
-Snorri Guðjónsson,26,Iceland,2008,39684,Handball,0,1,0,1
-Hreiðar Guðmundsson,27,Iceland,2008,39684,Handball,0,1,0,1
-Ásgeir Örn Hallgrímsson,24,Iceland,2008,39684,Handball,0,1,0,1
-Gro Hammerseng,28,Norway,2008,39684,Handball,1,0,0,1
-Katrine Lunde Haraldsen,28,Norway,2008,39684,Handball,1,0,0,1
-Heo Sun-Yeong,32,South Korea,2008,39684,Handball,0,0,1,1
-José Javier Hombrados,36,Spain,2008,39684,Handball,0,0,1,1
-Hong Jeong-Ho,34,South Korea,2008,39684,Handball,0,0,1,1
-Ingimundur Ingimundarson,28,Iceland,2008,39684,Handball,0,1,0,1
-Sverre Jakobsson,31,Iceland,2008,39684,Handball,0,1,0,1
-Kari Mette Johansen,29,Norway,2008,39684,Handball,1,0,0,1
-Nikola Karabatic,24,France,2008,39684,Handball,1,0,0,1
-Daouda Karaboué,32,France,2008,39684,Handball,1,0,0,1
-Anna Kareyeva,31,Russia,2008,39684,Handball,0,1,0,1
-Christophe Kempé,33,France,2008,39684,Handball,1,0,0,1
-Kim Cha-Yeon,27,South Korea,2008,39684,Handball,0,0,1,1
-Kim Nam-Sun,27,South Korea,2008,39684,Handball,0,0,1,1
-Kim On-A,19,South Korea,2008,39684,Handball,0,0,1,1
-Tonje Larsen,33,Norway,2008,39684,Handball,1,0,0,1
-Lee Min-Hui,28,South Korea,2008,39684,Handball,0,0,1,1
-Demetrio Lozano,32,Spain,2008,39684,Handball,0,0,1,1
-Kristine Lunde-Borgersen,28,Norway,2008,39684,Handball,1,0,0,1
-Cristian Malmagro,25,Spain,2008,39684,Handball,0,0,1,1
-Yekaterina Marennikova,26,Russia,2008,39684,Handball,0,1,0,1
-Mun Pil-Hui,25,South Korea,2008,39684,Handball,0,0,1,1
-Daniel Narcisse,28,France,2008,39684,Handball,1,0,0,1
-Katja Nyberg,28,Norway,2008,39684,Handball,1,0,0,1
-Tonje Nøstvold,23,Norway,2008,39684,Handball,1,0,0,1
-Oh Seong-Ok,35,South Korea,2008,39684,Handball,0,0,1,1
-Oh Yeong-Ran,35,South Korea,2008,39684,Handball,0,0,1,1
-Thierry Omeyer,31,France,2008,39684,Handball,1,0,0,1
-Park Jeong-Hui,33,South Korea,2008,39684,Handball,0,0,1,1
-Cédric Paty,27,France,2008,39684,Handball,1,0,0,1
-Alexander Petersson,28,Iceland,2008,39684,Handball,0,1,0,1
-Irina Poltoratskaya,29,Russia,2008,39684,Handball,0,1,0,1
-Yelena Polyonova,24,Russia,2008,39684,Handball,0,1,0,1
-Lyudmila Postnova,23,Russia,2008,39684,Handball,0,1,0,1
-Carlos Prieto,28,Spain,2008,39684,Handball,0,0,1,1
-Linn-Kristin Riegelhuth Koren,24,Norway,2008,39684,Handball,1,0,0,1
-Albert Rocas,26,Spain,2008,39684,Handball,0,0,1,1
-Oksana Romenskaya,32,Russia,2008,39684,Handball,0,1,0,1
-Iker Romero,28,Spain,2008,39684,Handball,0,0,1,1
-Nataliya Shipilova,28,Russia,2008,39684,Handball,0,1,0,1
-Mariya Sidorova,28,Russia,2008,39684,Handball,0,1,0,1
-Guðjón Valur Sigurðsson,29,Iceland,2008,39684,Handball,0,1,0,1
-Sigfús Sigurðsson,33,Iceland,2008,39684,Handball,0,1,0,1
-Gøril Snorroeggen,23,Norway,2008,39684,Handball,1,0,0,1
-Song Hai-Rim,23,South Korea,2008,39684,Handball,0,0,1,1
-Ólafur Stefánsson,35,Iceland,2008,39684,Handball,0,1,0,1
-Inna Suslina,29,Russia,2008,39684,Handball,0,1,0,1
-Else-Marthe Sørlie Lybekk,29,Norway,2008,39684,Handball,1,0,0,1
-Víctor Tomás,23,Spain,2008,39684,Handball,0,0,1,1
-Emiliya Turey,23,Russia,2008,39684,Handball,0,1,0,1
-Yana Uskova,22,Russia,2008,39684,Handball,0,1,0,1
-Andreea Acatrinei,16,Romania,2008,39684,Gymnastics,0,0,1,1
-Sasha Artemev,22,United States,2008,39684,Gymnastics,0,0,1,1
-Raj Bhavsar,27,United States,2008,39684,Gymnastics,0,0,1,1
-Leszek Blanik,31,Poland,2008,39684,Gymnastics,1,0,0,1
-Thomas Bouhail,22,France,2008,39684,Gymnastics,0,1,0,1
-Benoît Caranobe,28,France,2008,39684,Gymnastics,0,0,1,1
-Oksana Chusovitina,33,Germany,2008,39684,Gymnastics,0,1,0,1
-Gervasio Deferr,27,Spain,2008,39684,Gymnastics,0,1,0,1
-Deng Linlin,16,China,2008,39684,Gymnastics,1,0,0,1
-Gabriela Dragoi,15,Romania,2008,39684,Gymnastics,0,0,1,1
-Anton Fokin,25,Uzbekistan,2008,39684,Gymnastics,0,0,1,1
-Andreea Grigore,17,Romania,2008,39684,Gymnastics,0,0,1,1
-Joey Hagerty,26,United States,2008,39684,Gymnastics,0,0,1,1
-Fabian Hambüchen,20,Germany,2008,39684,Gymnastics,0,0,1,1
-Hong Un-Jong,19,North Korea,2008,39684,Gymnastics,1,0,0,1
-Huang Xu,29,China,2008,39684,Gymnastics,1,0,0,1
-Jiang Yuyuan,16,China,2008,39684,Gymnastics,1,0,0,1
-Takehiro Kashima,28,Japan,2008,39684,Gymnastics,0,1,0,1
-Li Shanshan,16,China,2008,39684,Gymnastics,1,0,0,1
-Chellsie Memmel,20,United States,2008,39684,Gymnastics,0,1,0,1
-Takuya Nakase,25,Japan,2008,39684,Gymnastics,0,1,0,1
-Steliana Nistor,18,Romania,2008,39684,Gymnastics,0,0,1,1
-Makoto Okiguchi,22,Japan,2008,39684,Gymnastics,0,1,0,1
-Samantha Peszek,16,United States,2008,39684,Gymnastics,0,1,0,1
-Alicia Sacramone,20,United States,2008,39684,Gymnastics,0,1,0,1
-Koki Sakamoto,21,Japan,2008,39684,Gymnastics,0,1,0,1
-Bridget Sloan,16,United States,2008,39684,Gymnastics,0,1,0,1
-Louis Smith,19,Great Britain,2008,39684,Gymnastics,0,0,1,1
-Justin Spring,24,United States,2008,39684,Gymnastics,0,0,1,1
-Ana Tamârjan,17,Romania,2008,39684,Gymnastics,0,0,1,1
-Kevin Tan,26,United States,2008,39684,Gymnastics,0,0,1,1
-Hiroyuki Tomita,27,Japan,2008,39684,Gymnastics,0,1,0,1
-Filip Ude,22,Croatia,2008,39684,Gymnastics,0,1,0,1
-Oleksandr Vorobiov,23,Ukraine,2008,39684,Gymnastics,0,0,1,1
-Yu Won-Cheol,24,South Korea,2008,39684,Gymnastics,0,1,0,1
-Lautaro Acosta,20,Argentina,2008,39684,Football,1,0,0,1
-Olubayo Adefemi,22,Nigeria,2008,39684,Football,0,1,0,1
-Dele Adeleye,19,Nigeria,2008,39684,Football,0,1,0,1
-Sergio Agüero,20,Argentina,2008,39684,Football,1,0,0,1
-Femi Ajilore,23,Nigeria,2008,39684,Football,0,1,0,1
-Alexandre Pato,18,Brazil,2008,39684,Football,0,0,1,1
-Efe Ambrose,19,Nigeria,2008,39684,Football,0,1,0,1
-Ânderson,20,Brazil,2008,39684,Football,0,0,1,1
-Andréia,30,Brazil,2008,39684,Football,0,1,0,1
-Nadine Angerer,29,Germany,2008,39684,Football,0,0,1,1
-Victor Anichebe,20,Nigeria,2008,39684,Football,0,1,0,1
-Onyekachi Apam,21,Nigeria,2008,39684,Football,0,1,0,1
-Lira Bajramaj,20,Germany,2008,39684,Football,0,0,1,1
-Éver Banega,20,Argentina,2008,39684,Football,1,0,0,1
-Bárbara,20,Brazil,2008,39684,Football,0,1,0,1
-Melanie Behringer,22,Germany,2008,39684,Football,0,0,1,1
-Shannon Boxx,31,United States,2008,39684,Football,1,0,0,1
-Breno,18,Brazil,2008,39684,Football,0,0,1,1
-Linda Bresonik,24,Germany,2008,39684,Football,0,0,1,1
-Rachel Buehler,22,United States,2008,39684,Football,1,0,0,1
-Diego Buonanotte,20,Argentina,2008,39684,Football,1,0,0,1
-Lori Chalupny,24,United States,2008,39684,Football,1,0,0,1
-Lauren Cheney,20,United States,2008,39684,Football,1,0,0,1
-Stephanie Cox,22,United States,2008,39684,Football,1,0,0,1
-Cristiane,23,Brazil,2008,39684,Football,0,1,0,1
-Daniela,24,Brazil,2008,39684,Football,0,1,0,1
-Ángel Di María,20,Argentina,2008,39684,Football,1,0,0,1
-Diego,23,Brazil,2008,39684,Football,0,0,1,1
-Emmanuel Ekpo,20,Nigeria,2008,39684,Football,0,1,0,1
-Érika,20,Brazil,2008,39684,Football,0,1,0,1
-Ester,25,Brazil,2008,39684,Football,0,1,0,1
-Fabiana,19,Brazil,2008,39684,Football,0,1,0,1
-Federico Fazio,21,Argentina,2008,39684,Football,1,0,0,1
-Formiga,30,Brazil,2008,39684,Football,0,1,0,1
-Francielle,18,Brazil,2008,39684,Football,0,1,0,1
-Fernando Gago,22,Argentina,2008,39684,Football,1,0,0,1
-Ezequiel Garay,21,Argentina,2008,39684,Football,1,0,0,1
-Kerstin Garefrekes,28,Germany,2008,39684,Football,0,0,1,1
-Tobin Heath,20,United States,2008,39684,Football,1,0,0,1
-Hernanes,23,Brazil,2008,39684,Football,0,0,1,1
-Ariane Hingst,29,Germany,2008,39684,Football,0,0,1,1
-Angela Hucles,30,United States,2008,39684,Football,1,0,0,1
-Ilsinho,22,Brazil,2008,39684,Football,0,0,1,1
-Promise Isaac,20,Nigeria,2008,39684,Football,0,1,0,1
-Monday James,21,Nigeria,2008,39684,Football,0,1,0,1
-Jô,21,Brazil,2008,39684,Football,0,0,1,1
-Tasha Kai,25,United States,2008,39684,Football,1,0,0,1
-Sani Kaita,22,Nigeria,2008,39684,Football,0,1,0,1
-Kóki,22,Brazil,2008,39684,Football,0,1,0,1
-Annike Krahn,23,Germany,2008,39684,Football,0,0,1,1
-Simone Laudehr,22,Germany,2008,39684,Football,0,0,1,1
-Ezequiel Lavezzi,23,Argentina,2008,39684,Football,1,0,0,1
-Renate Lingor,32,Germany,2008,39684,Football,0,0,1,1
-Carli Lloyd,26,United States,2008,39684,Football,1,0,0,1
-Lucas,21,Brazil,2008,39684,Football,0,0,1,1
-Marcelo,20,Brazil,2008,39684,Football,0,0,1,1
-Marta,22,Brazil,2008,39684,Football,0,1,0,1
-Javier Mascherano,24,Argentina,2008,39684,Football,1,0,0,1
-Maurine,22,Brazil,2008,39684,Football,0,1,0,1
-Maycon,31,Brazil,2008,39684,Football,0,1,0,1
-Lionel Messi,21,Argentina,2008,39684,Football,1,0,0,1
-Anja Mittag,23,Germany,2008,39684,Football,0,0,1,1
-Heather Mitts,30,United States,2008,39684,Football,1,0,0,1
-Fabián Monzón,21,Argentina,2008,39684,Football,1,0,0,1
-Thiago Neves,23,Brazil,2008,39684,Football,0,0,1,1
-Heather O'Reilly,23,United States,2008,39684,Football,1,0,0,1
-Victor Obinna,21,Nigeria,2008,39684,Football,0,1,0,1
-Peter Odemwingie,27,Nigeria,2008,39684,Football,0,1,0,1
-Chinedu Ogbuke,22,Nigeria,2008,39684,Football,0,1,0,1
-Chibuzor Okonkwo,19,Nigeria,2008,39684,Football,0,1,0,1
-Solomon Okoronkwo,21,Nigeria,2008,39684,Football,0,1,0,1
-Célia Okoyino da Mbabi,20,Germany,2008,39684,Football,0,0,1,1
-Nicolás Pareja,24,Argentina,2008,39684,Football,1,0,0,1
-Christie Pearce-Rampone,33,United States,2008,39684,Football,1,0,0,1
-Babett Peter,20,Germany,2008,39684,Football,0,0,1,1
-Conny Pohlers,29,Germany,2008,39684,Football,0,0,1,1
-Pretinha,33,Brazil,2008,39684,Football,0,1,0,1
-Birgit Prinz,30,Germany,2008,39684,Football,0,0,1,1
-Rafinha,22,Brazil,2008,39684,Football,0,0,1,1
-Ramires,21,Brazil,2008,39684,Football,0,0,1,1
-Renan,23,Brazil,2008,39684,Football,0,0,1,1
-Juan Riquelme,30,Argentina,2008,39684,Football,1,0,0,1
-Amy Rodriguez,21,United States,2008,39684,Football,1,0,0,1
-Sergio Romero,21,Argentina,2008,39684,Football,1,0,0,1
-Ronaldinho,28,Brazil,2008,39684,Football,0,0,1,1
-Andréia Rosa,24,Brazil,2008,39684,Football,0,1,0,1
-Rosana,26,Brazil,2008,39684,Football,0,1,0,1
-Alex Silva,23,Brazil,2008,39684,Football,0,0,1,1
-Thiago Silva,23,Brazil,2008,39684,Football,0,0,1,1
-Simone,27,Brazil,2008,39684,Football,0,1,0,1
-Sandra Smisek,31,Germany,2008,39684,Football,0,0,1,1
-Rafael Sóbis,23,Brazil,2008,39684,Football,0,0,1,1
-Kate Sobrero-Markgraf,31,United States,2008,39684,Football,1,0,0,1
-Hope Solo,27,United States,2008,39684,Football,1,0,0,1
-José Sosa,23,Argentina,2008,39684,Football,1,0,0,1
-Kerstin Stegemann,30,Germany,2008,39684,Football,0,0,1,1
-Tânia Maranhão,33,Brazil,2008,39684,Football,0,1,0,1
-Lindsay Tarpley,24,United States,2008,39684,Football,1,0,0,1
-Óscar Ustari,22,Argentina,2008,39684,Football,1,0,0,1
-Ambruse Vanzekin,22,Nigeria,2008,39684,Football,0,1,0,1
-Aly Wagner,27,United States,2008,39684,Football,1,0,0,1
-Pablo Zabaleta,23,Argentina,2008,39684,Football,1,0,0,1
-José Luis Abajo,30,Spain,2008,39684,Fencing,0,0,1,1
-Robert Andrzejuk,33,Poland,2008,39684,Fencing,0,1,0,1
-Bao Yingying,24,China,2008,39684,Fencing,0,1,0,1
-Svetlana Boyko,36,Russia,2008,39684,Fencing,1,0,0,1
-Ana Brânza,23,Romania,2008,39684,Fencing,0,1,0,1
-Diego Confalonieri,29,Italy,2008,39684,Fencing,0,0,1,1
-Mihai Covaliu,30,Romania,2008,39684,Fencing,0,0,1,1
-Emily Cross,21,United States,2008,39684,Fencing,0,1,0,1
-Britta Heidemann,25,Germany,2008,39684,Fencing,1,0,0,1
-Huang Haiyang,22,China,2008,39684,Fencing,0,1,0,1
-Jérôme Jeannet,31,France,2008,39684,Fencing,1,0,0,1
-Olha Kharlan,17,Ukraine,2008,39684,Fencing,1,0,0,1
-Olena Khomrova,21,Ukraine,2008,39684,Fencing,1,0,0,1
-Benjamin Kleibrink,23,Germany,2008,39684,Fencing,1,0,0,1
-Yevgeniya Lamonova,25,Russia,2008,39684,Fencing,1,0,0,1
-Aldo Montano,29,Italy,2008,39684,Fencing,0,0,1,1
-Tim Morehouse,30,United States,2008,39684,Fencing,0,1,0,1
-Tomasz Motyka,27,Poland,2008,39684,Fencing,0,1,0,1
-Nam Hyeon-Hui,26,South Korea,2008,39684,Fencing,0,1,0,1
-Ildikó Nébaldné Mincza,38,Hungary,2008,39684,Fencing,0,0,1,1
-Ni Hong,22,China,2008,39684,Fencing,0,1,0,1
-Viktoriya Nikishina,23,Russia,2008,39684,Fencing,1,0,0,1
-Diego Occhiuzzi,27,Italy,2008,39684,Fencing,0,0,1,1
-Yuki Ota,22,Japan,2008,39684,Fencing,0,1,0,1
-Gianpiero Pastore,32,Italy,2008,39684,Fencing,0,0,1,1
-Julien Pillet,30,France,2008,39684,Fencing,1,0,0,1
-Halyna Pundyk,20,Ukraine,2008,39684,Fencing,1,0,0,1
-Ulrich Robeiri,25,France,2008,39684,Fencing,1,0,0,1
-Jason Rogers,25,United States,2008,39684,Fencing,0,1,0,1
-Alfredo Rota,33,Italy,2008,39684,Fencing,0,0,1,1
-Ilaria Salvatori,29,Italy,2008,39684,Fencing,0,0,1,1
-Boris Sanson,27,France,2008,39684,Fencing,1,0,0,1
-Salvatore Sanzo,32,Italy,2008,39684,Fencing,0,0,1,1
-Aida Shanayeva,22,Russia,2008,39684,Fencing,1,0,0,1
-Erinn Smart,28,United States,2008,39684,Fencing,0,1,0,1
-Keeth Smart,30,United States,2008,39684,Fencing,0,1,0,1
-Tan Xue,24,China,2008,39684,Fencing,0,1,0,1
-Luigi Tarantino,35,Italy,2008,39684,Fencing,0,0,1,1
-Hanna Thompson,24,United States,2008,39684,Fencing,0,1,0,1
-Giovanna Trillini,38,Italy,2008,39684,Fencing,0,0,1,1
-Adam Wiercioch,27,Poland,2008,39684,Fencing,0,1,0,1
-James Williams,22,United States,2008,39684,Fencing,0,1,0,1
-Radoslaw Zawrotniak,26,Poland,2008,39684,Fencing,0,1,0,1
-Zhong Man,25,China,2008,39684,Fencing,1,0,0,1
-Olha Zhovnir,19,Ukraine,2008,39684,Fencing,1,0,0,1
-Rolf-Göran Bengtsson,46,Sweden,2008,39684,Equestrian,0,1,0,1
-Nadine Capellmann,43,Germany,2008,39684,Equestrian,1,0,0,1
-Mac Cone,55,Canada,2008,39684,Equestrian,0,1,0,1
-Andreas Dibowski,42,Germany,2008,39684,Equestrian,1,0,0,1
-Daisy Dick,36,Great Britain,2008,39684,Equestrian,0,0,1,1
-William Fox-Pitt,39,Great Britain,2008,39684,Equestrian,0,0,1,1
-Clayton Fredericks,40,Australia,2008,39684,Equestrian,0,1,0,1
-Lucinda Fredericks,42,Australia,2008,39684,Equestrian,0,1,0,1
-Steve Guerdat,26,Switzerland,2008,39684,Equestrian,0,0,1,1
-Andreas Helgstrand,30,Denmark,2008,39684,Equestrian,0,0,1,1
-Jill Henselwood,45,Canada,2008,39684,Equestrian,0,1,0,1
-Sharon Hunt,30,Great Britain,2008,39684,Equestrian,0,0,1,1
-Anne Jensen-van Olst,46,Denmark,2008,39684,Equestrian,0,0,1,1
-Sonja Johnson,40,Australia,2008,39684,Equestrian,0,1,0,1
-Megan Jones,31,Australia,2008,39684,Equestrian,0,1,0,1
-Ingrid Klimke,40,Germany,2008,39684,Equestrian,1,0,0,1
-Laura Kraut,42,United States,2008,39684,Equestrian,1,0,0,1
-Christina Liebherr,29,Switzerland,2008,39684,Equestrian,0,0,1,1
-Gina Miles,34,United States,2008,39684,Equestrian,0,1,0,1
-Ian Millar,61,Canada,2008,39684,Equestrian,0,1,0,1
-Hans Peter Minderhoud,34,Netherlands,2008,39684,Equestrian,0,1,0,1
-Frank Ostholt,32,Germany,2008,39684,Equestrian,1,0,0,1
-Shane Rose,35,Australia,2008,39684,Equestrian,0,1,0,1
-Imke Schellekens-Bartels,31,Netherlands,2008,39684,Equestrian,0,1,0,1
-Niklaus Schurtenberger,40,Switzerland,2008,39684,Equestrian,0,0,1,1
-Pius Schwizer,46,Switzerland,2008,39684,Equestrian,0,0,1,1
-Will Simpson,49,United States,2008,39684,Equestrian,1,0,0,1
-Peter Thomsen,47,Germany,2008,39684,Equestrian,1,0,0,1
-Mary Thomson-King,47,Great Britain,2008,39684,Equestrian,0,0,1,1
-McLain Ward,32,United States,2008,39684,Equestrian,1,0,0,1
-Nathalie zu Sayn-Wittgenstein,33,Denmark,2008,39684,Equestrian,0,0,1,1
-Bree Cole,25,Australia,2008,39684,Diving,0,1,0,1
-Alexandre Despatie,23,Canada,2008,39684,Diving,0,1,0,1
-Dmitry Dobroskok,24,Russia,2008,39684,Diving,0,0,1,1
-Paola Espinosa,22,Mexico,2008,39684,Diving,0,0,1,1
-Heike Fischer,25,Germany,2008,39684,Diving,0,0,1,1
-Patrick Hausding,19,Germany,2008,39684,Diving,0,1,0,1
-He Chong,21,China,2008,39684,Diving,1,0,0,1
-Emilie Heymans,26,Canada,2008,39684,Diving,0,1,0,1
-Huo Liang,18,China,2008,39684,Diving,1,0,0,1
-Sascha Klein,22,Germany,2008,39684,Diving,0,1,0,1
-Ditte Kotzian,29,Germany,2008,39684,Diving,0,0,1,1
-Yury Kunakov,18,Russia,2008,39684,Diving,0,1,0,1
-Illia Kvasha,20,Ukraine,2008,39684,Diving,0,0,1,1
-Lin Yue,17,China,2008,39684,Diving,1,0,0,1
-Matt Mitcham,20,Australia,2008,39684,Diving,1,0,0,1
-Tatiana Ortíz,24,Mexico,2008,39684,Diving,0,0,1,1
-Anastasia Pozdnyakova,22,Russia,2008,39684,Diving,0,1,0,1
-Oleksiy Pryhorov,21,Ukraine,2008,39684,Diving,0,0,1,1
-Dmitry Sautin,34,Russia,2008,39684,Diving,0,1,0,1
-Wang Feng,29,China,2008,39684,Diving,1,0,0,1
-Melissa Wu,16,Australia,2008,39684,Diving,0,1,0,1
-Zhou Luxin,20,China,2008,39684,Diving,0,1,0,1
-Julien Absalon,28,France,2008,39684,Cycling,1,0,0,1
-Kristin Armstrong,35,United States,2008,39684,Cycling,1,0,0,1
-Grégory Baugé,23,France,2008,39684,Cycling,0,1,0,1
-Sam Bewley,21,New Zealand,2008,39684,Cycling,0,0,1,1
-Steven Burke,20,Great Britain,2008,39684,Cycling,0,0,1,1
-Anne-Caroline Chausson,30,France,2008,39684,Cycling,1,0,0,1
-Michael Færk Christensen,22,Denmark,2008,39684,Cycling,0,1,0,1
-Ed Clancy,23,Great Britain,2008,39684,Cycling,1,0,0,1
-Nicole Cooke,25,Great Britain,2008,39684,Cycling,1,0,0,1
-Juan Esteban Curuchet,43,Argentina,2008,39684,Cycling,1,0,0,1
-Mike Day,23,United States,2008,39684,Cycling,0,1,0,1
-Ross Edgar,25,Great Britain,2008,39684,Cycling,0,1,0,1
-René Enders,21,Germany,2008,39684,Cycling,0,0,1,1
-Yoanka González,32,Cuba,2008,39684,Cycling,0,1,0,1
-Westley Gough,20,New Zealand,2008,39684,Cycling,0,0,1,1
-Tania Guderzo,23,Italy,2008,39684,Cycling,0,0,1,1
-Guo Shuang,22,China,2008,39684,Cycling,0,0,1,1
-Wendy Houvenaghel,33,Great Britain,2008,39684,Cycling,0,1,0,1
-Mikhail Ignatyev,23,Russia,2008,39684,Cycling,0,0,1,1
-Emma Johansson,24,Sweden,2008,39684,Cycling,0,1,0,1
-Casper Jørgensen,22,Denmark,2008,39684,Cycling,0,1,0,1
-Irina Kalentyeva,30,Russia,2008,39684,Cycling,0,0,1,1
-Lesia Kalytovska,20,Ukraine,2008,39684,Cycling,0,0,1,1
-Jill Kintner,26,United States,2008,39684,Cycling,0,0,1,1
-Roger Kluge,22,Germany,2008,39684,Cycling,0,1,0,1
-Aleksandr Kolobnev,27,Russia,2008,39684,Cycling,0,0,1,1
-Gustav Larsson,27,Sweden,2008,39684,Cycling,0,1,0,1
-Laëtitia Le Corguillé,22,France,2008,39684,Cycling,0,1,0,1
-Levi Leipheimer,34,United States,2008,39684,Cycling,0,0,1,1
-Maximilian Levy,21,Germany,2008,39684,Cycling,0,0,1,1
-Jens-Erik Madsen,27,Denmark,2008,39684,Cycling,0,1,0,1
-Paul Manning,33,Great Britain,2008,39684,Cycling,1,0,0,1
-Aleksey Markov,29,Russia,2008,39684,Cycling,0,0,1,1
-Anna Meares,24,Australia,2008,39684,Cycling,0,1,0,1
-Michael Mørkøv,23,Denmark,2008,39684,Cycling,0,1,0,1
-Kiyofumi Nagai,25,Japan,2008,39684,Cycling,0,0,1,1
-Chris Newton,34,Great Britain,2008,39684,Cycling,0,0,1,1
-Stefan Nimke,30,Germany,2008,39684,Cycling,0,0,1,1
-Leire Olaberria,31,Spain,2008,39684,Cycling,0,0,1,1
-Vicki Pendleton,27,Great Britain,2008,39684,Cycling,1,0,0,1
-Jean-Christophe Péraud,31,France,2008,39684,Cycling,0,1,0,1
-Walter Pérez,35,Argentina,2008,39684,Cycling,1,0,0,1
-Emma Pooley,25,Great Britain,2008,39684,Cycling,0,1,0,1
-Alex Rasmussen,24,Denmark,2008,39684,Cycling,0,1,0,1
-Donny Robinson,25,United States,2008,39684,Cycling,0,0,1,1
-Rebecca Romero,28,Great Britain,2008,39684,Cycling,1,0,0,1
-Marc Ryan,25,New Zealand,2008,39684,Cycling,0,0,1,1
-Samuel Sánchez,30,Spain,2008,39684,Cycling,1,0,0,1
-Nino Schurter,22,Switzerland,2008,39684,Cycling,0,0,1,1
-Jesse Sergent,20,New Zealand,2008,39684,Cycling,0,0,1,1
-Kévin Sireau,21,France,2008,39684,Cycling,0,1,0,1
-Sabine Spitz,36,Germany,2008,39684,Cycling,1,0,0,1
-Jamie Staff,35,Great Britain,2008,39684,Cycling,1,0,0,1
-Maris Štrombergs,21,Latvia,2008,39684,Cycling,1,0,0,1
-Toni Tauler,34,Spain,2008,39684,Cycling,0,1,0,1
-Geraint Thomas,22,Great Britain,2008,39684,Cycling,1,0,0,1
-Karin Thürig,36,Switzerland,2008,39684,Cycling,0,0,1,1
-Arnaud Tournant,30,France,2008,39684,Cycling,0,1,0,1
-Marianne Vos,21,Netherlands,2008,39684,Cycling,1,0,0,1
-Maja Wloszczowska,24,Poland,2008,39684,Cycling,0,1,0,1
-Aleksey Abalmasov,28,Belarus,2008,39684,Canoeing,1,0,0,1
-Lutz Altepost,26,Germany,2008,39684,Canoeing,0,0,1,1
-Rob Bell,30,Australia,2008,39684,Canoeing,0,0,1,1
-Aleksandr Bogdanovich,26,Belarus,2008,39684,Canoeing,1,0,0,1
-Andrey Bogdanovich,20,Belarus,2008,39684,Canoeing,1,0,0,1
-Benjamin Boukpeti,27,Togo,2008,39684,Canoeing,0,0,1,1
-Norman Bröckl,21,Germany,2008,39684,Canoeing,0,0,1,1
-Yuriy Cheban,22,Ukraine,2008,39684,Canoeing,0,0,1,1
-Saúl Craviotto,23,Spain,2008,39684,Canoeing,1,0,0,1
-Hannah Davis,23,Australia,2008,39684,Canoeing,0,0,1,1
-Marie Delattre,27,France,2008,39684,Canoeing,0,0,1,1
-Torsten Eckbrett,24,Germany,2008,39684,Canoeing,0,0,1,1
-Andrea Facchin,29,Italy,2008,39684,Canoeing,0,0,1,1
-Fanny Fischer,21,Germany,2008,39684,Canoeing,1,0,0,1
-David Florence,26,Great Britain,2008,39684,Canoeing,0,1,0,1
-Lyndsie Fogarty,24,Australia,2008,39684,Canoeing,0,0,1,1
-Björn Goldschmidt,28,Germany,2008,39684,Canoeing,0,0,1,1
-Alexander Grimm,21,Germany,2008,39684,Canoeing,1,0,0,1
-Thomas Hall,26,Canada,2008,39684,Canoeing,0,0,1,1
-Pavol Hochschorner,28,Slovakia,2008,39684,Canoeing,1,0,0,1
-Peter Hochschorner,28,Slovakia,2008,39684,Canoeing,1,0,0,1
-Martin Hollstein,21,Germany,2008,39684,Canoeing,1,0,0,1
-Josefa Idem-Guerrini,43,Italy,2008,39684,Canoeing,0,1,0,1
-Andreas Ihle,29,Germany,2008,39684,Canoeing,1,0,0,1
-Elena Kaliská,36,Slovakia,2008,39684,Canoeing,1,0,0,1
-Tamás Kiss,21,Hungary,2008,39684,Canoeing,0,0,1,1
-Kim Knudsen,30,Denmark,2008,39684,Canoeing,0,1,0,1
-Aleksandr Kostoglod,34,Russia,2008,39684,Canoeing,0,1,0,1
-Danuta Kozák,21,Hungary,2008,39684,Canoeing,0,1,0,1
-György Kozmann,30,Hungary,2008,39684,Canoeing,0,0,1,1
-Mikhail Kuznetsov,23,Russia,2008,39684,Canoeing,0,0,1,1
-Dmitry Larionov,22,Russia,2008,39684,Canoeing,0,0,1,1
-Eirik Verås Larsen,32,Norway,2008,39684,Canoeing,0,1,0,1
-Jacqui Lawrence,26,Australia,2008,39684,Canoeing,0,1,0,1
-Fabien Lefèvre,26,France,2008,39684,Canoeing,0,1,0,1
-Artur Litvinchuk,20,Belarus,2008,39684,Canoeing,1,0,0,1
-Michal Martikán,29,Slovakia,2008,39684,Canoeing,1,0,0,1
-Chantal Meek,29,Australia,2008,39684,Canoeing,0,0,1,1
-Meng Guanliang,31,China,2008,39684,Canoeing,1,0,0,1
-Beata Mikolajczyk,22,Poland,2008,39684,Canoeing,0,1,0,1
-Violetta Oblinger-Peters,30,Austria,2008,39684,Canoeing,0,0,1,1
-Lisa Oldenhof,28,Australia,2008,39684,Canoeing,0,0,1,1
-Maksim Opalev,29,Russia,2008,39684,Canoeing,1,0,0,1
-Inna Osypenko-Radomska,25,Ukraine,2008,39684,Canoeing,1,0,0,1
-Aneta Pastuszka-Konieczna,30,Poland,2008,39684,Canoeing,0,1,0,1
-Carlos Pérez,29,Spain,2008,39684,Canoeing,1,0,0,1
-René Poulsen,19,Denmark,2008,39684,Canoeing,0,1,0,1
-Ronald Rauhe,26,Germany,2008,39684,Canoeing,0,1,0,1
-Nicole Reinhardt,22,Germany,2008,39684,Canoeing,1,0,0,1
-Michal Riszdorfer,31,Slovakia,2008,39684,Canoeing,0,1,0,1
-Richard Riszdorfer,27,Slovakia,2008,39684,Canoeing,0,1,0,1
-Antonio Scaduto,30,Italy,2008,39684,Canoeing,0,0,1,1
-Ondrej Štepánek,28,Czech Republic,2008,39684,Canoeing,0,1,0,1
-Gabriella Szabó,22,Hungary,2008,39684,Canoeing,0,1,0,1
-Juraj Tarr,29,Slovakia,2008,39684,Canoeing,0,1,0,1
-Sergey Ulegin,30,Russia,2008,39684,Canoeing,0,1,0,1
-Attila Vajda,25,Hungary,2008,39684,Canoeing,1,0,0,1
-Adam Van Koeverden,26,Canada,2008,39684,Canoeing,0,1,0,1
-Anne-Laure Viard,27,France,2008,39684,Canoeing,0,0,1,1
-Erik Vlcek,26,Slovakia,2008,39684,Canoeing,0,1,0,1
-Jaroslav Volf,28,Czech Republic,2008,39684,Canoeing,0,1,0,1
-Conny Wassmuth,25,Germany,2008,39684,Canoeing,1,0,0,1
-Tim Wieskötter,29,Germany,2008,39684,Canoeing,0,1,0,1
-Yang Wenjun,24,China,2008,39684,Canoeing,1,0,0,1
-Brett Anderson,20,United States,2008,39684,Baseball,0,0,1,1
-Jake Arrieta,22,United States,2008,39684,Baseball,0,0,1,1
-Brian Barden,27,United States,2008,39684,Baseball,0,0,1,1
-Alexei Bell,24,Cuba,2008,39684,Baseball,0,1,0,1
-Bong Jung-Keun,28,South Korea,2008,39684,Baseball,1,0,0,1
-Matt Brown,26,United States,2008,39684,Baseball,0,0,1,1
-Trevor Cahill,20,United States,2008,39684,Baseball,0,0,1,1
-Frederich Cepeda,28,Cuba,2008,39684,Baseball,0,1,0,1
-Jeremy Cummings,31,United States,2008,39684,Baseball,0,0,1,1
-Alfredo Despaigne,22,Cuba,2008,39684,Baseball,0,1,0,1
-Jason Donald,23,United States,2008,39684,Baseball,0,0,1,1
-Brian Duensing,25,United States,2008,39684,Baseball,0,0,1,1
-Giorvis Duvergel,28,Cuba,2008,39684,Baseball,0,1,0,1
-Michel Enríquez,29,Cuba,2008,39684,Baseball,0,1,0,1
-Dexter Fowler,22,United States,2008,39684,Baseball,0,0,1,1
-John Gall,30,United States,2008,39684,Baseball,0,0,1,1
-Gang Min-Ho,22,South Korea,2008,39684,Baseball,1,0,0,1
-Go Yeong-Min,24,South Korea,2008,39684,Baseball,1,0,0,1
-Norberto González,28,Cuba,2008,39684,Baseball,0,1,0,1
-Yulieski Gourriel,24,Cuba,2008,39684,Baseball,0,1,0,1
-Gwon Hyeok,24,South Korea,2008,39684,Baseball,1,0,0,1
-Han Gi-Ju,21,South Korea,2008,39684,Baseball,1,0,0,1
-Mike Hessman,30,United States,2008,39684,Baseball,0,0,1,1
-Jang Won-Sam,25,South Korea,2008,39684,Baseball,1,0,0,1
-Jeong Dae-Hyeon,29,South Korea,2008,39684,Baseball,1,0,0,1
-Jeong Geun-U,25,South Korea,2008,39684,Baseball,1,0,0,1
-Kevin Jepsen,24,United States,2008,39684,Baseball,0,0,1,1
-Jin Gab-Yong,34,South Korea,2008,39684,Baseball,1,0,0,1
-Kim Dong-Ju,32,South Korea,2008,39684,Baseball,1,0,0,1
-Kim Gwang-Hyeon,20,South Korea,2008,39684,Baseball,1,0,0,1
-Kim Hyeon-Su,20,South Korea,2008,39684,Baseball,1,0,0,1
-Kim Min-Jae,35,South Korea,2008,39684,Baseball,1,0,0,1
-Brandon Knight,32,United States,2008,39684,Baseball,0,0,1,1
-Mike Koplove,31,United States,2008,39684,Baseball,0,0,1,1
-Miguel La Hera,23,Cuba,2008,39684,Baseball,0,1,0,1
-Matt LaPorta,23,United States,2008,39684,Baseball,0,0,1,1
-Pedro Luis Lazo,35,Cuba,2008,39684,Baseball,0,1,0,1
-Lee Dae-Ho,26,South Korea,2008,39684,Baseball,1,0,0,1
-Lee Jin-Yeong,28,South Korea,2008,39684,Baseball,1,0,0,1
-Lee Jong-Uk,28,South Korea,2008,39684,Baseball,1,0,0,1
-Lee Seung-Yeop,31,South Korea,2008,39684,Baseball,1,0,0,1
-Lee Taek-Geun,28,South Korea,2008,39684,Baseball,1,0,0,1
-Lee Yong-Gyu,22,South Korea,2008,39684,Baseball,1,0,0,1
-Lou Marson,22,United States,2008,39684,Baseball,0,0,1,1
-Jonder Martínez,30,Cuba,2008,39684,Baseball,0,1,0,1
-Alexander Mayeta,31,Cuba,2008,39684,Baseball,0,1,0,1
-Rolando Meriño,37,Cuba,2008,39684,Baseball,0,1,0,1
-Luis Miguel Navas,28,Cuba,2008,39684,Baseball,0,1,0,1
-Blaine Neal,30,United States,2008,39684,Baseball,0,0,1,1
-Jayson Nix,25,United States,2008,39684,Baseball,0,0,1,1
-O Seung-Hwan,26,South Korea,2008,39684,Baseball,1,0,0,1
-Vicyohandri Odelín,28,Cuba,2008,39684,Baseball,0,1,0,1
-Héctor Olivera Jr.,23,Cuba,2008,39684,Baseball,0,1,0,1
-Adiel Palma,37,Cuba,2008,39684,Baseball,0,1,0,1
-Eduardo Paret,35,Cuba,2008,39684,Baseball,0,1,0,1
-Park Jin-Man,31,South Korea,2008,39684,Baseball,1,0,0,1
-Yadier Pedroso,22,Cuba,2008,39684,Baseball,0,1,0,1
-Ariel Pestano,34,Cuba,2008,39684,Baseball,0,1,0,1
-Luis Miguel Rodríguez,35,Cuba,2008,39684,Baseball,0,1,0,1
-Ryu Hyeon-Jin,21,South Korea,2008,39684,Baseball,1,0,0,1
-Elier Sánchez,21,Cuba,2008,39684,Baseball,0,1,0,1
-Eriel Sánchez,33,Cuba,2008,39684,Baseball,0,1,0,1
-Nate Schierholtz,24,United States,2008,39684,Baseball,0,0,1,1
-Song Seung-Jun,28,South Korea,2008,39684,Baseball,1,0,0,1
-Jeff Stevens,24,United States,2008,39684,Baseball,0,0,1,1
-Stephen Strasburg,20,United States,2008,39684,Baseball,0,0,1,1
-Taylor Teagarden,24,United States,2008,39684,Baseball,0,0,1,1
-Terry Tiffee,29,United States,2008,39684,Baseball,0,0,1,1
-Yoandri Urgellés,27,Cuba,2008,39684,Baseball,0,1,0,1
-Norge Luis Vera,37,Cuba,2008,39684,Baseball,0,1,0,1
-Casey Weathers,23,United States,2008,39684,Baseball,0,0,1,1
-Yoon Suk-Min,22,South Korea,2008,39684,Baseball,1,0,0,1
-Osmay Acosta,23,Cuba,2008,39684,Boxing,0,0,1,1
-Georgiy Balakshin,28,Russia,2008,39684,Boxing,0,0,1,1
-Carlos Banteux,21,Cuba,2008,39684,Boxing,0,1,0,1
-Paddy Barnes,21,Ireland,2008,39684,Boxing,0,0,1,1
-Manus Boonjumnong,28,Thailand,2008,39684,Boxing,0,1,0,1
-Roberto Cammarelle,28,Italy,2008,39684,Boxing,1,0,0,1
-Rakhim Chakhkiyev,25,Russia,2008,39684,Boxing,1,0,0,1
-Emilio Correa Jr.,22,Cuba,2008,39684,Boxing,0,1,0,1
-James DeGale,22,Great Britain,2008,39684,Boxing,1,0,0,1
-Félix Díaz,24,Dominican Republic,2008,39684,Boxing,1,0,0,1
-Khédafi Djelkhir,24,France,2008,39684,Boxing,0,1,0,1
-Kenny Egan,26,Ireland,2008,39684,Boxing,0,1,0,1
-Enkhbatyn Badar-Uugan,23,Mongolia,2008,39684,Boxing,1,0,0,1
-Vaeceslav Gojan,25,Moldova,2008,39684,Boxing,0,0,1,1
-Hanati Silamu,23,China,2008,39684,Boxing,0,0,1,1
-Yampier Hernández,23,Cuba,2008,39684,Boxing,0,0,1,1
-V'iacheslav Hlazkov,23,Ukraine,2008,39684,Boxing,0,0,1,1
-Roniel Iglesias,19,Cuba,2008,39684,Boxing,0,0,1,1
-Sahin Imranov,27,Azerbaijan,2008,39684,Boxing,0,0,1,1
-Hrachik Javakhyan,24,Armenia,2008,39684,Boxing,0,0,1,1
-Tony Jeffries,23,Great Britain,2008,39684,Boxing,0,0,1,1
-Somjit Jongjohor,33,Thailand,2008,39684,Boxing,1,0,0,1
-Bruno Julie,30,Mauritius,2008,39684,Boxing,0,0,1,1
-Yakup Kiliç,22,Turkey,2008,39684,Boxing,0,0,1,1
-Kim Jeong-Ju,26,South Korea,2008,39684,Boxing,0,0,1,1
-Andry Laffita,30,Cuba,2008,39684,Boxing,0,1,0,1
-Yankiel León,26,Cuba,2008,39684,Boxing,0,1,0,1
-Vasyl Lomachenko,20,Ukraine,2008,39684,Boxing,1,0,0,1
-Vincenzo Picardi,24,Italy,2008,39684,Boxing,0,0,1,1
-David Price,25,Great Britain,2008,39684,Boxing,0,0,1,1
-Pürevdorjin Serdamba,23,Mongolia,2008,39684,Boxing,0,1,0,1
-Clemente Russo,26,Italy,2008,39684,Boxing,0,1,0,1
-Bakhyt Sarsekbayev,26,Kazakhstan,2008,39684,Boxing,1,0,0,1
-Yerkebulan Shynaliyev,20,Kazakhstan,2008,39684,Boxing,0,0,1,1
-Vijender Singh,22,India,2008,39684,Boxing,0,0,1,1
-Daouda Sow,25,France,2008,39684,Boxing,0,1,0,1
-Darren Sutherland,26,Ireland,2008,39684,Boxing,0,0,1,1
-Aleksey Tishchenko,24,Russia,2008,39684,Boxing,1,0,0,1
-Yordenis Ugás,22,Cuba,2008,39684,Boxing,0,0,1,1
-Alexis Vastine,21,France,2008,39684,Boxing,0,0,1,1
-Deontay Wilder,22,United States,2008,39684,Boxing,0,0,1,1
-Zhang Xiaoping,26,China,2008,39684,Boxing,1,0,0,1
-Zhang Zhilei,25,China,2008,39684,Boxing,0,1,0,1
-Zou Shiming,27,China,2008,39684,Boxing,1,0,0,1
-Phil Dalhausser,28,United States,2008,39684,Beach Volleyball,1,0,0,1
-Emanuel,35,Brazil,2008,39684,Beach Volleyball,0,0,1,1
-Fábio,29,Brazil,2008,39684,Beach Volleyball,0,1,0,1
-Márcio,34,Brazil,2008,39684,Beach Volleyball,0,1,0,1
-Misty May-Treanor,31,United States,2008,39684,Beach Volleyball,1,0,0,1
-Ricardo,33,Brazil,2008,39684,Beach Volleyball,0,0,1,1
-Todd Rogers,34,United States,2008,39684,Beach Volleyball,1,0,0,1
-Tian Jia,27,China,2008,39684,Beach Volleyball,0,1,0,1
-Kerri Walsh,29,United States,2008,39684,Beach Volleyball,1,0,0,1
-Wang Jie,24,China,2008,39684,Beach Volleyball,0,1,0,1
-Xue Chen,19,China,2008,39684,Beach Volleyball,0,0,1,1
-Zhang Xi,23,China,2008,39684,Beach Volleyball,0,0,1,1
-Svetlana Abrosimova,28,Russia,2008,39684,Basketball,0,0,1,1
-Carmelo Anthony,24,United States,2008,39684,Basketball,1,0,0,1
-Seimone Augustus,24,United States,2008,39684,Basketball,1,0,0,1
-Suzy Batkovic,27,Australia,2008,39684,Basketball,0,1,0,1
-Tully Bevilaqua,36,Australia,2008,39684,Basketball,0,1,0,1
-Sue Bird,27,United States,2008,39684,Basketball,1,0,0,1
-Carlos Boozer,26,United States,2008,39684,Basketball,1,0,0,1
-Chris Bosh,24,United States,2008,39684,Basketball,1,0,0,1
-Kobe Bryant,29,United States,2008,39684,Basketball,1,0,0,1
-José Manuel Calderón,26,Spain,2008,39684,Basketball,0,1,0,1
-Tamika Catchings,29,United States,2008,39684,Basketball,1,0,0,1
-Rohanee Cox,27,Australia,2008,39684,Basketball,0,1,0,1
-Carlos Delfino,25,Argentina,2008,39684,Basketball,0,0,1,1
-Rudy Fernández,23,Spain,2008,39684,Basketball,0,1,0,1
-Sylvia Fowles,22,United States,2008,39684,Basketball,1,0,0,1
-Jorge Garbajosa,30,Spain,2008,39684,Basketball,0,1,0,1
-Marc Gasol,23,Spain,2008,39684,Basketball,0,1,0,1
-Pau Gasol,28,Spain,2008,39684,Basketball,0,1,0,1
-Manu Ginóbili,31,Argentina,2008,39684,Basketball,0,0,1,1
-Román González,30,Argentina,2008,39684,Basketball,0,0,1,1
-Hollie Grima,24,Australia,2008,39684,Basketball,0,1,0,1
-Juan Pedro Gutiérrez,24,Argentina,2008,39684,Basketball,0,0,1,1
-Leonardo Gutiérrez,30,Argentina,2008,39684,Basketball,0,0,1,1
-Becky Hammon,31,Russia,2008,39684,Basketball,0,0,1,1
-Kristi Harrower,33,Australia,2008,39684,Basketball,0,1,0,1
-Dwight Howard,22,United States,2008,39684,Basketball,1,0,0,1
-Lauren Jackson,27,Australia,2008,39684,Basketball,0,1,0,1
-LeBron James,23,United States,2008,39684,Basketball,1,0,0,1
-Carlos Jiménez,32,Spain,2008,39684,Basketball,0,1,0,1
-Federico Kammerichs,28,Argentina,2008,39684,Basketball,0,0,1,1
-Marina Karpunina,24,Russia,2008,39684,Basketball,0,0,1,1
-Jason Kidd,35,United States,2008,39684,Basketball,1,0,0,1
-Ilona Korstin,28,Russia,2008,39684,Basketball,0,0,1,1
-Marina Kuzina,23,Russia,2008,39684,Basketball,0,0,1,1
-Kara Lawson,27,United States,2008,39684,Basketball,1,0,0,1
-Lisa Leslie,36,United States,2008,39684,Basketball,1,0,0,1
-Yekaterina Lisina,20,Russia,2008,39684,Basketball,0,0,1,1
-Raúl López,28,Spain,2008,39684,Basketball,0,1,0,1
-DeLisha Milton-Jones,33,United States,2008,39684,Basketball,1,0,0,1
-Álex Mumbrú,29,Spain,2008,39684,Basketball,0,1,0,1
-Juan Carlos Navarro,28,Spain,2008,39684,Basketball,0,1,0,1
-Andrés Nocioni,28,Argentina,2008,39684,Basketball,0,0,1,1
-Fabricio Oberto,35,Argentina,2008,39684,Basketball,0,0,1,1
-Irina Osipova,27,Russia,2008,39684,Basketball,0,0,1,1
-Candace Parker,22,United States,2008,39684,Basketball,1,0,0,1
-Chris Paul,23,United States,2008,39684,Basketball,1,0,0,1
-Erin Phillips,23,Australia,2008,39684,Basketball,0,1,0,1
-Cappie Pondexter,25,United States,2008,39684,Basketball,1,0,0,1
-Antonio Porta,24,Argentina,2008,39684,Basketball,0,0,1,1
-Pablo Prigioni,31,Argentina,2008,39684,Basketball,0,0,1,1
-Tayshaun Prince,28,United States,2008,39684,Basketball,1,0,0,1
-Paolo Quinteros,29,Argentina,2008,39684,Basketball,0,0,1,1
-Oksana Rakhmatulina,31,Russia,2008,39684,Basketball,0,0,1,1
-Emma Randall,23,Australia,2008,39684,Basketball,0,1,0,1
-Michael Redd,28,United States,2008,39684,Basketball,1,0,0,1
-Felipe Reyes,28,Spain,2008,39684,Basketball,0,1,0,1
-Berni Rodríguez,28,Spain,2008,39684,Basketball,0,1,0,1
-Ricky Rubio,17,Spain,2008,39684,Basketball,0,1,0,1
-Luis Scola,28,Argentina,2008,39684,Basketball,0,0,1,1
-Jenni Screen,26,Australia,2008,39684,Basketball,0,1,0,1
-Tatyana Shchyegoleva,26,Russia,2008,39684,Basketball,0,0,1,1
-Katie Smith,34,United States,2008,39684,Basketball,1,0,0,1
-Belinda Snell,27,Australia,2008,39684,Basketball,0,1,0,1
-Irina Sokolovskaya,25,Russia,2008,39684,Basketball,0,0,1,1
-Mariya Stepanova,29,Russia,2008,39684,Basketball,0,0,1,1
-Laura Summerton-Hodges,24,Australia,2008,39684,Basketball,0,1,0,1
-Diana Taurasi,26,United States,2008,39684,Basketball,1,0,0,1
-Penny Taylor,27,Australia,2008,39684,Basketball,0,1,0,1
-Tina Thompson,33,United States,2008,39684,Basketball,1,0,0,1
-Nataliya Vodopyanova,27,Russia,2008,39684,Basketball,0,0,1,1
-Dwyane Wade Jr.,26,United States,2008,39684,Basketball,1,0,0,1
-Deron Williams,24,United States,2008,39684,Basketball,1,0,0,1
-Cai Yun,28,China,2008,39684,Badminton,0,1,0,1
-Chen Jin,22,China,2008,39684,Badminton,0,0,1,1
-Du Jing,24,China,2008,39684,Badminton,1,0,0,1
-Fu Haifeng,24,China,2008,39684,Badminton,0,1,0,1
-He Hanbin,22,China,2008,39684,Badminton,0,0,1,1
-Hwang Ji-Man,24,South Korea,2008,39684,Badminton,0,0,1,1
-Markis Kido,24,Indonesia,2008,39684,Badminton,1,0,0,1
-Lee Chong Wei,25,Malaysia,2008,39684,Badminton,0,1,0,1
-Lee Gyeong-Won,28,South Korea,2008,39684,Badminton,0,1,0,1
-Lee Jae-Jin,25,South Korea,2008,39684,Badminton,0,0,1,1
-Lee Yong-Dae,19,South Korea,2008,39684,Badminton,1,0,0,1
-Lin Dan,24,China,2008,39684,Badminton,1,0,0,1
-Lilyana Natsir,22,Indonesia,2008,39684,Badminton,0,1,0,1
-Hendra Setiawan,23,Indonesia,2008,39684,Badminton,1,0,0,1
-Wei Yili,26,China,2008,39684,Badminton,0,0,1,1
-Nova Widianto,30,Indonesia,2008,39684,Badminton,0,1,0,1
-Xie Xingfan,27,China,2008,39684,Badminton,0,1,0,1
-Maria Yulianti,23,Indonesia,2008,39684,Badminton,0,0,1,1
-Zhang Ning,33,China,2008,39684,Badminton,1,0,0,1
-Zhang Yawen,23,China,2008,39684,Badminton,0,0,1,1
-Mariya Abakumova,22,Russia,2008,39684,Athletics,0,1,0,1
-Valerie Adams-Vili,23,New Zealand,2008,39684,Athletics,1,0,0,1
-Virgilijus Alekna,36,Lithuania,2008,39684,Athletics,0,0,1,1
-Denis Alekseyev,20,Russia,2008,39684,Athletics,0,0,1,1
-Olena Antonova,36,Ukraine,2008,39684,Athletics,0,0,1,1
-Aaron Armstrong,30,Trinidad and Tobago,2008,39684,Athletics,0,1,0,1
-Nobuharu Asahara,36,Japan,2008,39684,Athletics,0,0,1,1
-Mehdi Baala,29,France,2008,39684,Athletics,0,0,1,1
-Dretti Bain,22,Bahamas,2008,39684,Athletics,0,1,0,1
-Yarelis Barrios,25,Cuba,2008,39684,Athletics,0,1,0,1
-Hasna Benhassi,30,Morocco,2008,39684,Athletics,0,0,1,1
-Keston Bledman,20,Trinidad and Tobago,2008,39684,Athletics,0,1,0,1
-Valeriy Borchin,21,Russia,2008,39684,Athletics,1,0,0,1
-Olivia Borlée,22,Belgium,2008,39684,Athletics,0,1,0,1
-Chris Brown,29,Bahamas,2008,39684,Athletics,0,1,0,1
-Stephanie Brown-Trafton,28,United States,2008,39684,Athletics,1,0,0,1
-Wilfred Bungei,28,Kenya,2008,39684,Athletics,1,0,0,1
-Marc Burns,25,Trinidad and Tobago,2008,39684,Athletics,0,1,0,1
-Emmanuel Callender,24,Trinidad and Tobago,2008,39684,Athletics,0,1,0,1
-Ibrahim Camejo,26,Cuba,2008,39684,Athletics,0,0,1,1
-Veronica Campbell-Brown,26,Jamaica,2008,39684,Athletics,1,0,0,1
-Christian Cantwell,27,United States,2008,39684,Athletics,0,1,0,1
-Nesta Carter,22,Jamaica,2008,39684,Athletics,1,0,0,1
-Yuliya Chermoshanskaya,22,Russia,2008,39684,Athletics,1,0,0,1
-Tatyana Chernova,20,Russia,2008,39684,Athletics,0,0,1,1
-Anna Chicherova,26,Russia,2008,39684,Athletics,0,0,1,1
-Bryan Clay,28,United States,2008,39684,Athletics,1,0,0,1
-Shawn Crawford,30,United States,2008,39684,Athletics,0,1,0,1
-Tasha Danvers,30,Great Britain,2008,39684,Athletics,0,0,1,1
-Meseret Defar,24,Ethiopia,2008,39684,Athletics,0,0,1,1
-Pigi Devetzi,32,Greece,2008,39684,Athletics,0,0,1,1
-Vadim Devyatovsky,31,Belarus,2008,39684,Athletics,0,1,0,1
-Constantina Dita-Tomescu,38,Romania,2008,39684,Athletics,1,0,0,1
-Nataliya Dobrynska,26,Ukraine,2008,39684,Athletics,1,0,0,1
-Maksim Dyldin,21,Russia,2008,39684,Athletics,0,0,1,1
-Nelson Évora,24,Portugal,2008,39684,Athletics,1,0,0,1
-Aleksandra Fedoriva,19,Russia,2008,39684,Athletics,1,0,0,1
-Svetlana Feofanova,28,Russia,2008,39684,Athletics,0,0,1,1
-Tatyana Firova,25,Russia,2008,39684,Athletics,0,1,0,1
-Shalane Flanagan,27,United States,2008,39684,Athletics,0,0,1,1
-Hyleas Fountain,27,United States,2008,39684,Athletics,0,1,0,1
-Shelly-Ann Fraser-Pryce,21,Jamaica,2008,39684,Athletics,1,0,0,1
-Michael Frater,25,Jamaica,2008,39684,Athletics,1,0,0,1
-Vladislav Frolov,28,Russia,2008,39684,Athletics,0,0,1,1
-Kim Gevaert,30,Belgium,2008,39684,Athletics,0,1,0,1
-Jaouad Gharib,36,Morocco,2008,39684,Athletics,0,1,0,1
-Dawn Harper,24,United States,2008,39684,Athletics,1,0,0,1
-Natasha Hastings,22,United States,2008,39684,Athletics,1,0,0,1
-Tia Hellebaut,30,Belgium,2008,39684,Athletics,1,0,0,1
-Monique Henderson,25,United States,2008,39684,Athletics,1,0,0,1
-Steve Hooker,26,Australia,2008,39684,Athletics,1,0,0,1
-Franca Idoko,23,Nigeria,2008,39684,Athletics,0,0,1,1
-Phillips Idowu,29,Great Britain,2008,39684,Athletics,0,1,0,1
-Yelena Isinbayeva,26,Russia,2008,39684,Athletics,1,0,0,1
-Ismail Ahmed Ismail,23,Sudan,2008,39684,Athletics,0,1,0,1
-Halimat Ismaila,24,Nigeria,2008,39684,Athletics,0,0,1,1
-Bershawn Jackson,25,United States,2008,39684,Athletics,0,0,1,1
-Pamela Jelimo,18,Kenya,2008,39684,Athletics,1,0,0,1
-Eunice Jepkorir,26,Kenya,2008,39684,Athletics,0,1,0,1
-Janeth Jepkosgei,24,Kenya,2008,39684,Athletics,0,1,0,1
-Sheena Johnson-Tosta,25,United States,2008,39684,Athletics,0,1,0,1
-Olga Kaniskina,23,Russia,2008,39684,Athletics,1,0,0,1
-Gerd Kanter,29,Estonia,2008,39684,Athletics,1,0,0,1
-Anastasiya Kapachinskaya,28,Russia,2008,39684,Athletics,0,1,0,1
-Tsegaye Kebede,21,Ethiopia,2008,39684,Athletics,0,0,1,1
-Gloria Kemasoude,28,Nigeria,2008,39684,Athletics,0,0,1,1
-Nataliya Khoronenko-Mikhnevich,26,Belarus,2008,39684,Athletics,0,1,0,1
-Eliud Kipchoge,23,Kenya,2008,39684,Athletics,0,1,0,1
-Asbel Kiprop,19,Kenya,2008,39684,Athletics,1,0,0,1
-Brimin Kipruto,23,Kenya,2008,39684,Athletics,1,0,0,1
-Micah Kogo,22,Kenya,2008,39684,Athletics,0,0,1,1
-Anton Kokorin,21,Russia,2008,39684,Athletics,0,0,1,1
-Ainars Kovals,26,Latvia,2008,39684,Athletics,0,1,0,1
-Primož Kozmus,28,Slovenia,2008,39684,Athletics,1,0,0,1
-Andrey Kravchenko,22,Belarus,2008,39684,Athletics,0,1,0,1
-Nancy Langat,26,Kenya,2008,39684,Athletics,1,0,0,1
-Iryna Lishchynska,32,Ukraine,2008,39684,Athletics,0,1,0,1
-Lyudmila Litvinova,23,Russia,2008,39684,Athletics,0,1,0,1
-Shereefa Lloyd,25,Jamaica,2008,39684,Athletics,0,0,1,1
-Priscilla Lopes-Schliep,25,Canada,2008,39684,Athletics,0,0,1,1
-Yevgeniy Lukyanenko,23,Russia,2008,39684,Athletics,0,1,0,1
-Maurren Maggi,32,Brazil,2008,39684,Athletics,1,0,0,1
-Tomasz Majewski,26,Poland,2008,39684,Athletics,1,0,0,1
-Hanna Mariën,26,Belgium,2008,39684,Athletics,0,1,0,1
-Germaine Mason,25,Great Britain,2008,39684,Athletics,0,1,0,1
-Richard Mateelong,24,Kenya,2008,39684,Athletics,0,0,1,1
-Michael Mathieu,24,Bahamas,2008,39684,Athletics,0,1,0,1
-Piotr Malachowski,25,Poland,2008,39684,Athletics,0,1,0,1
-Françoise Mbango,32,Cameroon,2008,39684,Athletics,1,0,0,1
-Sally McLellan-Pearson,21,Australia,2008,39684,Athletics,0,1,0,1
-Mahiedine Mekhissi-Benabbad,23,France,2008,39684,Athletics,0,1,0,1
-Oksana Menkova,26,Belarus,2008,39684,Athletics,1,0,0,1
-Yelena Migunova,24,Russia,2008,39684,Athletics,0,1,0,1
-Andrey Mikhnevich,32,Belarus,2008,39684,Athletics,0,0,1,1
-Ramon Miller,21,Bahamas,2008,39684,Athletics,0,1,0,1
-Godfrey Khotso Mokoena,23,South Africa,2008,39684,Athletics,0,1,0,1
-Avard Moncur,29,Bahamas,2008,39684,Athletics,0,1,0,1
-Yipsi Moreno,27,Cuba,2008,39684,Athletics,0,1,0,1
-Catherine Ndereba,36,Kenya,2008,39684,Athletics,0,1,0,1
-Denis Nizhegorodov,28,Russia,2008,39684,Athletics,0,0,1,1
-Christina Obergföll,26,Germany,2008,39684,Athletics,0,0,1,1
-Christine Ohuruogu,24,Great Britain,2008,39684,Athletics,1,0,0,1
-Blessing Okagbare,19,Nigeria,2008,39684,Athletics,0,0,1,1
-David Oliver,26,United States,2008,39684,Athletics,0,0,1,1
-Damola Osayomi,22,Nigeria,2008,39684,Athletics,0,0,1,1
-Agnes Osazuwa,19,Nigeria,2008,39684,Athletics,0,0,1,1
-Nadezhda Ostapchuk,27,Belarus,2008,39684,Athletics,0,0,1,1
-Élodie Ouédraogo,27,Belgium,2008,39684,Athletics,0,1,0,1
-David Payne,26,United States,2008,39684,Athletics,0,1,0,1
-Jefferson Pérez,34,Ecuador,2008,39684,Athletics,0,1,0,1
-Tero Pitkämäki,25,Finland,2008,39684,Athletics,0,0,1,1
-Yevgeniya Polyakova,25,Russia,2008,39684,Athletics,1,0,0,1
-Asafa Powell,25,Jamaica,2008,39684,Athletics,1,0,0,1
-Elisa Rigaudo,28,Italy,2008,39684,Athletics,0,0,1,1
-Dayron Robles,21,Cuba,2008,39684,Athletics,1,0,0,1
-Yaroslav Rybakov,27,Russia,2008,39684,Athletics,0,0,1,1
-Irving Saladino,25,Panama,2008,39684,Athletics,1,0,0,1
-Gulnara Samitova-Galkina,30,Russia,2008,39684,Athletics,1,0,0,1
-Leevan Sands,27,Bahamas,2008,39684,Athletics,0,0,1,1
-Alex Schwazer,23,Italy,2008,39684,Athletics,1,0,0,1
-Sileshi Sihine,25,Ethiopia,2008,39684,Athletics,0,1,0,1
-Andrey Silnov,23,Russia,2008,39684,Athletics,1,0,0,1
-Sherone Simpson,24,Jamaica,2008,39684,Athletics,0,1,0,1
-Edwin Soi,22,Kenya,2008,39684,Athletics,0,0,1,1
-Barbora Špotáková,27,Czech Republic,2008,39684,Athletics,1,0,0,1
-Jenn Stuczynski-Suhr,26,United States,2008,39684,Athletics,0,1,0,1
-Leonel Suárez,20,Cuba,2008,39684,Athletics,0,0,1,1
-Shingo Suetsugu,28,Japan,2008,39684,Athletics,0,0,1,1
-Shinji Takahira,24,Japan,2008,39684,Athletics,0,0,1,1
-Dwight Thomas,27,Jamaica,2008,39684,Athletics,1,0,0,1
-Andreas Thorkildsen,26,Norway,2008,39684,Athletics,1,0,0,1
-Ivan Tikhon,32,Belarus,2008,39684,Athletics,0,0,1,1
-Nataliya Tobias,27,Ukraine,2008,39684,Athletics,0,0,1,1
-Naoki Tsukahara,23,Japan,2008,39684,Athletics,0,0,1,1
-Kjersti Tysse-Plätzer,36,Norway,2008,39684,Athletics,0,1,0,1
-Tatyana Veshkurova,26,Russia,2008,39684,Athletics,0,1,0,1
-Blanka Vlašic,24,Croatia,2008,39684,Athletics,0,1,0,1
-Yekaterina Volkova,30,Russia,2008,39684,Athletics,0,0,1,1
-Melaine Walker,25,Jamaica,2008,39684,Athletics,1,0,0,1
-Sammy Wanjiru,21,Kenya,2008,39684,Athletics,1,0,0,1
-Rosemarie Whyte,21,Jamaica,2008,39684,Athletics,0,0,1,1
-Bobby-Gaye Wilkins,19,Jamaica,2008,39684,Athletics,0,0,1,1
-Andrae Williams,25,Bahamas,2008,39684,Athletics,0,1,0,1
-Novlene Williams-Mills,26,Jamaica,2008,39684,Athletics,0,0,1,1
-Nick Willis,25,New Zealand,2008,39684,Athletics,0,1,0,1
-Mary Wineberg,28,United States,2008,39684,Athletics,1,0,0,1
-Regi Witherspoon,23,United States,2008,39684,Athletics,1,0,0,1
-Alfred Kirwa Yego,21,Kenya,2008,39684,Athletics,0,0,1,1
-Denys Yurchenko,30,Ukraine,2008,39684,Athletics,0,0,1,1
-Zhang Wenxiu,32,China,2008,39684,Athletics,0,0,1,1
-Zhou Chunxiu,29,China,2008,39684,Athletics,0,0,1,1
-Virginie Arnold,28,France,2008,39684,Archery,0,0,1,1
-Bair Badyonov,32,Russia,2008,39684,Archery,0,0,1,1
-Chen Ling,21,China,2008,39684,Archery,0,1,0,1
-Ilario Di Buò,51,Italy,2008,39684,Archery,0,1,0,1
-Sophie Dodémont,34,France,2008,39684,Archery,0,0,1,1
-Marco Galiazzo,25,Italy,2008,39684,Archery,0,1,0,1
-Guo Dan,22,China,2008,39684,Archery,0,1,0,1
-Im Dong-Hyeon,23,South Korea,2008,39684,Archery,1,0,0,1
-Jiang Lin,26,China,2008,39684,Archery,0,0,1,1
-Joo Hyun-Jung,26,South Korea,2008,39684,Archery,1,0,0,1
-Lee Chang-Hwan,26,South Korea,2008,39684,Archery,1,0,0,1
-Li Wenquan,22,China,2008,39684,Archery,0,0,1,1
-Mauro Nespoli,20,Italy,2008,39684,Archery,0,1,0,1
-Viktor Ruban,27,Ukraine,2008,39684,Archery,1,0,0,1
-Bérengère Schuh,24,France,2008,39684,Archery,0,0,1,1
-Xue Haifeng,28,China,2008,39684,Archery,0,0,1,1
diff --git a/medals.xlsx b/medals.xlsx
deleted file mode 100644
index d6a95d6a2e31cdfcc99597050d719b351acdcd18..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 547298
zcmeF1Q?F=2l&!aI+qP}nwr$%y+qP}nHqN$f+qkFGxk=yL{s-OluwH6rtyIe#>h4zZ14Vg~y>8krS379z!~^#^+6EgFD*xG^{FE^I+Do;Iv&
zE)NhXYw78{*JqD`A(NVH{MFVqQe@riT7M++yK|1sFM%+wD7Lhoqv-e(QB^XA8&>e_
zW8vzSGV@VQpb-zEEFyw$VSZfvLUAn%`x9EZ%B_QD(IQ!j~HZHc35JJiem~F_#|NI_@^(}y1e-{em+@GBD
zW%>QX@b?!OK;i!ZRKZ7X;N_p{Wd897{SQ!mCsP||dbQaGaRnq>#uft#xWSCE|N##u`WWF}oxZDZe5$5L=ow(5#kDSb1^M}>^jBHvty
zsMr(W>s!JRPxgt9fwSP!@DL0d8aR)otsS(7TC6xckn{nON^fL0snV1@c
z;H?`siH3~~w4BGs`E)<&9Ush3(`8%j`syjelbkQeZ^f}hHIk#0N^}1H>u96@;QCS7
zPU7O;Gw<_U;$VUF5W8hc3bVf{G4~_z4Ef(-lDhov4D=5meqaCqEC2{V4;%XbB*op{
z$=b-?-ugdovj0mB;J@qaU+w?wQJuJL6~cfJdJF9v&hX0G`CX74qdF=%Rse_~?vh@A3)w@ZWa`@Cf=(^BK=NwIZu7mIJa
z;W^-YMj1yc)L=t5s3MH7%+Kzox~lQrNY)%2u6{)PurM|_LMR+-V-SCih**5u;VoNC
z8<)ZRETNsdWCKmzz?MCvv5R$XjonsvY(+Czf-U6z^-v@Y(Hw$u*ZY{m
z>a7(n3ngELcPgohN@Zo^GSjHl$Ji)GRQ|le&D#<^FD&|ey!T|RZ%22M^7nh1$_gf_
z%0OaRQk&9&e*avf94EgK$dGDT=jYe$oy)%8582h<9ItPn2LX(tH$xU|GM$(LYrUmh
z_ZyV7%0&efbTRC5BBa;@1leK69l|aOVRjPOZ2uapb*dr3sl8yyXb9jm6A}3Cmd`Fa
zsaK)lp^J*RY^xU}ysjxNK;g%xKq;WI49&ycrAkmb`ns=Hp;htBB*B^<>!-ZNM)0lm
zEK>}AdXoyr$q61-SZ59u1r7A^rVBCgQ7W$+UJ%vYei_Q~S5UFMsppPq=sV>J>ShK+
z?P>A}H@UApp54W*BQalkrH^Lp#gci8U7U5*2#w`bnGlWD&J|mbUZhWNrH?vBZ!ci2
zbB7;p86U?HVGN<;PvUAVaI4Pe%!N6
z!Txtg{IWw3tOWxIFe?BIfbyS5>}+A^WNM=9;$&%O?))Df;gch6Pb}HG`wI4ji`0{G
z30iil_r_=NG#x-hd7-%wK~b?^G92)i9I)J}Pfp(BmsQyva|cU7bI
zP40fWJ;TFUt(H#YeQN*QVJ_HIZ?eVwW_^NLe#2?sg>y7_hSD@8_Oa2R?obow-6)~$
z^6k_wVb00Cu4{eV=xNhTxe149W~$q=b=~oLQq?HNuC;cWu5z8JVO=zVT{T12Y|6Fw
zZ;Z2R??i0wi+?S;-panNY9E*9u6ynJ9T>W2*TOZ{(Xmff4tlNSlOM2pXGixYWm2E6
z+H+I=@%%DfSIvdi`Uy&HLWZo~T-H8{CG|m%*g2|
z7Nh;jishhp;7m$x5(L%y-OrwiBJR455A63Mui7Q=&iQEC4Q26>vz>B@|E#P-Qt7Vf-~M7xVaT&X$lxiOuP!(J
zkr_^`(q2zl%-mItcwXJSip_v&quwUrR_^N7?6?d1Hrnp@y?2SfmA0GD8$uiu#vy+3
zOnF8x={*rP1&)JiOGI`&nGa!J|9yr1VC1fZ;sg+n;6!;~!)BCTlI5B5Q?!wl!5gy0
zH$DKVQM2*>M)JDG(toYJtbt0BZd*4w+{iLS*frWxTQ^xJD;}L`wc1FTle5lQ?q9Yh
zYj#}ExL5R96x4QbL4YZl9K%*uyX4`nt8#tLoXe{$lM3r%-MT?^iHnm{tJb$^!cJqi
z==Rtn&BXHs>Z5T{BDR|}y!X?hJeE-H|CGP~fOGR}owoaO=9Z1nPWMt=Hk@Avfr6@17qB9isVX1=4;pZa@N1o36<7Wg1UW81y+HJ!27b;n&sV|VG5+C>{H
z%Tv}{h3R(9Xi2pm@6g$pr4xFTVUJ~8{PnK6YI~$$BLQHewxs_h($vxDyb2Q0W*ySLz85nx$0N)rHx1;206j0V
zBDow)#eAJ6PuI2c8_An`%|JGH^9XcI;nW+qlFlt+eXvG2oEzUsTQ%lyTfjG!6W%iY
zh28%Ah_b!OU0J1`(NBp4FFarD{?%$D1m~*JC93^qMs{nnkb{cZB^zWry2hGqo5oU7
zryJGpWbJuM404zqp4-kuI6Nx=u3@HMx$fVxesEvFdh$HWKZA4{zo=crIq!7co#;Lw
zC2*)`?CUV-ng=#8aDt(uZc0iWYSm2I-$~n`AX>KtLTV1)3RD_TdzKykLwrS1c3JNB
z2sHN1r%&^sG&euWpP2@igp&Qy!Shi7Yqw@_o)@V2^n}Oa!It^q75PV*j-ys~KX%QM
zbBAF(dRsraQx7@)2J>}=w;?UoNa)-$gf-GRNksx*W*ZYjVM0P8|s~$?ZZo9W~Xk4t!TDR5Y!QcYO>whBe8j^<5!
z`QUy}1%P`uvKzeFOV8=^VTtEm`Vie`02*Z_Cl}efA4Coh_DRg$uq+?3M=;`gxu$m{@U>wG_3TZnd(K|+BRTx1(fiEhx4UMZ
zdRA10-%UKGG%(Jg<|CcifZS_dh|7WVbeLhx_9_X?LQ%I~01R%j4m@D}?DK@UZ6IN>
z*e)C
z+&O~;1HKEg4Ry5XARzU`hScHa;Ujrs%L89g$#cx^4>;{6+=c9d^V
z=nmb>?ubd!4;fkDD^>f>DI~qQ$`Lm^Xu>{M6Y8P2&WQ%HeWM!d%@L=et5I)*g}B*W
z)DxRo-l1ii^Y)jtadnYb)zuqa-b|&@Z(p!cn{e*fWB0*V;aq8ZGt_WC)Z|quYXxE)
zba6ON1y#^Fo&UZhraFMJEw$#iv%Xzuj@Y9O!0T-5eK3Ou6tS(S(93E21%={XPv$!C
zTICDJ+^Sh)_o%z+Csw!u6vQpekP?|o)@nI1GBYPeLA-dDsUGj8-c}|LUXakWNw4q<
zm3Nv312-&NR%H(Dw=}(g;~;>sc|GweO@PVQ-Y^tASo^k)cU`R8)mwz*YN=PbID
z4&BUMZ4OSevGbapEjzMZe~7vx2>FrdP&vHx`?g7?`?{kwmF~_ybMy(5gMavr)cr)L
zsK?r)qw1V$?N%Y&BPSa712B&FA8`cw<>4LXwIr*)^g0u>J4k7YXpe&dsKc%tjKO5z
zO(N>#cRuNkMKenmRAq2Z_s*IIut1Vk-BaD+`Z_f?dc&lL45X$9dta!jP6N=uf+&|QKrz>K#e=2E10PQ2i
z$cUV9T4*_lH{?$SQOq?YZqcsQc7Z2a${VXN$+WvRCl+f3%pV%XEri(~mUi|l*OAn8
zReP}6>sA1k@0q|X`28nq_1KtAQVWk))2Y^L9($71Rn29#lYdy_>vuljt}}w;k~st+
zlMdZS^C2~mqBl$}^vsy;z1GGD!}6{_v7>5>jWWln^Py#0y?zgMMkYm5CBRO=DI6PvqhNz<>YQNF)EY3vz4EU>Gp5f4egk<&
zYjUOpYmAiODjx9K20;gb@D4o2X##u$=?4K2_aU3vXy_Uct+Gj4AZV^LVeDr`AZ{It
zv@6P+Q<)4I2MfB%xv0SHfx1;4Yh<5};7mW%F7)vFGD;sw->(5g0Kt*)AlsNaBQ-vL
z>r3Yc?{MF#vB#|*Zv|hOpV}5puhCDi_x~KAUEAgKGn0kE)u=dU`i9T>0H#Gn8m6Cy
zNK6%q*NXFGFr#Fh&nAwfKKffT9WGSx+Aj7(ri@(AZD#@wqr2Y+*E`F$;k--D59fRA
zm{ANuB7?h+5)@<0<4JxrXW#*Tq7d$ayPOwz*WZ(eWOhVV_n(CdWHS>xTKTW=_Om%f
z9=v1ccaM{GU^)_A%h3k$YN{#|72XSQr$ZpT7%XBVd#Jr{Sr%S+N^%g8T7Td(V%hQj
zVG?B}?D@r4-Ff0Nb&p!eJZL682|TfslwSbY3-%|}=$qL=2Dd@C!omr;bzAgcRph6E
zQWWrMK*=9muF4|E!F9|6+u`2MAtCMIVoIk-U^
zLl$s@s;Bh|KTF&P3n-~<<>vR#CuCPJtv&+g!)k6cFpmhKSTvgk*11Ny3&UaoWF
z<}?oec87f@1kPvX5fp-P0=;ciR(ai8UF*WQ-MM=5P}@I(ql$3~>5m*E$3Q}KH=P3!
z*Ty;=Yx77FwNO11pd}Eo%Kuv<6m12Lxhhe3k+A68H&?*~LMLvo?<^wgZX>&vvFo@e79yL_!HR8bSg*bT
z*DSITamYcdD!mE9aF)v*;=P4PWwt6#8#Dm5Fx7!$`l^T{mchHZX^u2m5w^q8H{8_u
z!VDzT$Sb!4_CnVqziaT#7LKQL@H%YL5vM8?1Z~$Jd6>afJRTXpl=~U%NW7Ds6oJAoXagFpvId97vBkop~YJxD|Nx
z`DZ_JPw%Mthjvjn{rU;_5(pvQZtyn2vdiN5>2Zkspt^IUXR{r;+2!62vO#)r#V>gi>JC<@4K9V22DEcFsdnqeNw?5LXr;g8jW8Q2OO
z1efd@YMyLXQ+niQ2bz5y@xs3mM1LvnvSg#XW(Kw@4f#*D=pUdS!Nq&GBI0=kM$mN2
z@e|Bo!KrdV#+a+;7@6{C)hm+O(8i2N+u3RAj*Sz^s~NSK0`;fG$%%*hR3c@tK_u;F
zUq)+Q{gvhepHLSBz7EAWfXmRBfr9NS=KIZk;L^7fQI#{q%?!OX_PV`fhV?#8musiR
z>LFC%lklWf)FQLL@vW2jYQ4Jy*ilCxK{>x6PRxGI6_dydVgYe4$4{cb-L-L$_P)PJ
zElXUi@~%uwKk1IK6H}1aP9_K5Y(x{zENZo>uoJFbd3}Im2UHb#vB01Bjvhg{@%uxq
zf$(@_kAp}JR#n|>!2sbv5hMGadhLh60XP%R`WAf8OR!Wuz|H!SG`d7
z@^0xMw#WM4p#Kn;0t6X=bmwb>Z*>W*vAt1dmKZmd%(@rn70M5&kEg`*GSw%)k$4ay
ze(wPM!XnV+j<9AVqYa0EvKaX_jI8@G)-k3)u!yBK>K@24lqI59Ibcc$nS^@52AkIY
z`As}eytkyh%SXNEk`r(q8qZC`4+yY%S&rv@^graIOpLf7wHt;O65#E+Y(}{
ztemY;fHz+oPVNpTL`)TK1_P)Zc@KwG$5>zT#^BPXmGJ#@d)JoM9UxLEZ-$h1-=$KB
zTVnMbMnUv;*`)p!5ktD+0#_feq>LUo=5gvFSA?@|muUN2*Io)ipJIo;BgIPar<#F3
zW9^^h?5|;yBhs&Bi!30H=MAGU+SE%qH_&|KL7A?(xcr?PYKa*n~1v
zN=+t^WuKmxDZhSN$teZdh!tQ^*SFpsgNVMU>eJA{9dU?
z*sY_tKyK7F5voq`T@bG*NTdvCC@gK48PcRZN+N{Cb@AFkT#)z_Rw7EjbCvj>FsLBC
zti!ewlw^GBRn+
zt=H#R*XVV^VeC6a&e>KpNPw}*t?40|;@lU;34m3JIz`4K=|aj^)dE%6?w&|ifZG;r
zb?m>%?IC-?CPZgQy!rJRm%`739g+^Ura3RPBix{m_|>vXhUjX{=yf0jAX~}NVzG*L
z@96P3M$O|!gF$3}LDm681hxuBUw&ErcFfnDwocCA8Dii5Adm}>rQEP4yzj#61(HUR
zBcwo!AYmO;pbh}iNyLDyPu?%mKn3CdwIb=17iB}xId%lu^r;;K6`rXZw;?bl?!AmD
za+oxNT~(Fyk=6ek?rF5XXM(@vEz@?q|}U
z@IHKx3QlT()VpDqA(!D5e;kCL6ePYvsYva2FKn*Z|E-$M=sFd
zJj|>BN{vNNo-sHDwa!ursWT?R(MD)@Ecu<_ive^{_(M~xnjjqPvN~hafG{aagnSeO
zKSmMeNi^*)Skui}oDJoj=b>k;g6MTKEF1N$F9}&vZ}zKh1#-l7@!byPK^#a9-;f)x
zXpM6cI$r4PbQ$zK9emIQb|1D}Gh$C(BU%6EHRu!pyh-@1BI~rx;K!m?bia?mhLy3z9*kxkFsbdvy%&q
zc;vJ>G*ArW4{oed7kQQTi8F;90i4oHSd6rb)11}PFLQ!GX=X!queo{7<>|4v1f2&{
zn5CDnI2;FAm4zcJ6cF&sW|%M1?lc}O<2!@Y
z02-|XV>4~>rmXgd7DT(H0H;S2%8Tg!v(aklm7AxLRunR@uz`d+jY#I}8qV#%UU?
zJ=x+cBm;BOCBg$yMP_ML_XLG75et$)fp-kPcqxZBAdEhfLp+=**BS|FBU#ts{GPIL
zcR-mmP>F>;Lg_1l?)uH0mX%_Ij0A#+sgIFIOM?P0D*5P#U6soDrHP(L)5&_jjyPJM
zT6t7F1F|T38)bOo3tNhHSS&YwPM|=D;Ko1V)WzD4g%k4r_B*UOn^tY=v8j@frzy+Qeax6y
z-F9%>Xb87F(<3^t@X?~#>r#OBhziex_6Gy4gVNzHZL@PmS$+T?ow)QxFT}8LMD1@i
zBjFJ8EC#TYb|Lq-P10%Qt%F=g(Q;#5IHP4SjMPNAGj6WD;2en
zjTdhPHBR)cjd=j9Er-Ko@^D8KRPH0cALyQS{sz<
zSmksl`Q1tq`iytbcr{+Z*)BG*mR~{aCsl>BH2baYO}~cVK9v<`z<1mLOVZNF5w{HM
z&1WK7y9SI_2@|SpWZ1__uqE!CbYYn`$ovYWoMAum(}4i`-D||uk3{Ed&FnC{vtH=$O*$jSj7JKGYCY7^fzb66G(SkY
zJa4h^??u^{lIk`va7gfmxD&xrA^ABCZsDfnhVES77)^hfueu?^Q6);qp-lp2pm?XA9gO
z5yc9XnH5Hh4d@akFP;jLWV@^fi;t$YC$Ry`bH;7K6~Y?<3~$tqod`mf7{Tk)Jh
za8WxU);Lk?H8KX9)NBkh-U8RUiU4?W$s}{%oyFDNpR(5i07ZQrtX2UWrZ(27(6x6G
zLWu4#JHAV@FbDf-(FB~aVw!|Sg_Q8KQmjTioWRyRA6T8FHzOl0=qOApE0!Eb824&8
zM^E~CCTIUj)&cHbp!e`4?MzyK!|l_-^OTkVw6wt#eucIN%e;2`mQ)Dy%wf0f0G2RS
zf?~!Cy0B-RYUZIBno8aQ#oJ?Zi;c)jzLwso2MWS?Nz0zgpVDG1E!4JkjUqSnH0Drj
zsgN$nM!gsaMp1_9dl@)(1ILuR_-rz_*4-IZyC-5SnN<_=rbWdPZH_zPPzVVI$o#X`4r$uFIWPOe+r~bZs71KxWasN!#Xf1Z32hRvm@TauH(TX`4M)EcmcF$jyyV
z(E335n+`xX$;nSjhTwcd(41ks%q_!ACQtDeOdq_R%8>+4x&i(sw{BwIUrToAw_BKZ
zs2x}TpkY1cd$bhXsKC14WG0-q^|m4&QfZrZ!K(N-xo8#D!}mRi
z8HC6cG302wlL1h10`lY
zPl+e~nf(bL;rz{y{h6BS!X=peDY`$kATZQ4yVc3%WA13++0tjf+#;gP_#tyB=~=(u
z#YD&+(%%>9DuiR-(>3c^e>>@l{vkI;h&O#uQ0q5hA(zeFSvy%}~A1$n()+3=a=
zL(owYF8nfQymAcX6sXPY8q%FbZK%y@h|XRr@xdICNexrt9h4(&38A5b0zsxNMV4`k
zHpgc6ndTQ$J+LURSWy^HiW53Pg^!>p;+i&3<_^Zzl3uyS6c=ImG!sYRt_F`?(1ek+
z26x7MTTTFEa|xP{kKbRd9VaDCZ)PyQ4%9F;sXD*)zP?hnL9{eIe6QRcv^KQ_cM*yt
z1}%?TQ>8KckJ!{8H*IHZtpzn>E}})Gvvz`I7V9mft}xkS3cbXmPGU^hmQf84F`obh
z1>}fNe&}$xNRsdb?6|3_Z({Di@f>y%rU`D>3PoI1w;uoU+u{DxKekOIYiRvJmE*YlecQ(BSsvf~nlmQyWb!JP-I6lrjj97QM0Sn*YcjFE31EI;9UnkA=<2m8y(l}ii&5J-hE
z4_Y_q==TDB+srr7twM53%abu!uj7)CIl@tRLfRCl>BWcbE&fcqE{((AA2`CIY_fjDx(UMT-uJrpzPEIK|aA3)Dr?%+C48nn@u(q$%Cz%AX6ciSv
zd#8wBAAT^CxN*xQbc(%zg~zpeZuI?vx$^1Liar2>aGEH-OFULaDi*vcwAxG-qi)tbJh~HnclS`v4@C>ST__f3{BL1Ki4+9FmV<3E{?%O_9|%A^z9Gmh(Oj)DmnpE
zpF2UaM5Wv5lL+9AxzwT?y4?ILh$k=mc1jKL;GoD83|X1N-m>$!6-tA_X&HbW|ArCq
z;a!HY+e(0NJgQ5U;Hp~RTVHKvgxzpT5MDcZ-%STo{e$FafY}Xzbx-h_V}?$Os9-AA
z&5O(m{2I+JJn6)<)`{vs)d8>w`AJx+k3h#va=2b7;)WegT?`L9zS$%NYd9gS7K+M$@R6W$P69nV%*B-m%|U$-?P897
z+?PuRG8&UYr8xga`eFMP2C8DsMRsM_r`?w7kpk{!KojM3o{K!Hy=rv>J=_rbXv=D=
zml^o*?z*Or$k7(aK0T|rF|Vmd+P3X4_0+{+z=_hH7>C~{OMbFW`9yUu+bw3u?N`d~
zA>;uTB)WB&1vc2Wgh$?34ICq+k7>fk2+!1MB=kbPOCte$Y1P^uVC974I#RRSDX~Uc
z0aCH21(&K82~_mzqJC48A3qBo#K0>h_`#2sJKSHYL5
z3#y4268z4*cS!3bCu@X(ls+iD>tqg=;;TuUdwy=GT!TSgOUsu3J?&S{jV5DQ-bcP|
zinrUacx6GYR3EZ35QV_*Li(q|V98Cek{N+POMK!8?2=(HNAb+ifM
zIIjm+`b(UK97jEBLz~+$8=aNz)!$=(CnPO+v1<`vs=%Fol|-s*JY}G@0cBS3GUC~a
zgKCKw15=bj+Xdo7KqjQUR#L5y0>G543TgUI@Ut3>(UbIrLE7ZcD}h54YB7xe0DCzF
zU;=Nph85{ycptzn0u|?v$QT~n
zUoD4_a2rjj6HRz}gUf6Tz7>Dg=zByU$u#OD5)Bk)T<6^#pILVY+UGCbB{YTL7YAO5
z<8K0D#pGsy(eSFVs_nHc#MOiu0x66uq8O^tI3lNt(YP$FH^SxQ_=8q);O4_YAgY|c
z7f6{fwz>;-ggtiwKeky-LInfber#p2OIAHR`h1ip@smNgx2I*Pn
z_DEflB#t46R`Ps`PP@f>8hcAo3-s51Xc{Q+2fSOQ|I-1SqJ
zX2ag}4>mG*=M5Mwe;&RG(y_nMPFh41)I?4~^@b8?GK(dtbBr5uKGIaBd_f8^j%GiK
zzEV8UFk7|v&XYdb7zgU0i6K;i0mqOl6n(y=eH8W_@ZvTfz5#Q+f0)0&|8-8w`^&FbzfHa
z02i@R;Gd9=<=s|qGPmF?FADlEfjK8;9+pFh+68!6HNu+9$t~zZsz=VolSu;?*FLU7Wr4|?2P|156Q_aH9nszip}m(EEZPm4Jx0YDxiS21JX^H!qdhUAkq
zr^KjHg4$c^7A@l-(`B_`)cGh8=i>f_RRR(-(24|i&w*|r6o0x?Lgjm*U*ng-QP$`9
zK_HIKGcTtG_E6q`%2KH2XL?h#u&)RxO11(Z6&rYX?)rXRk{zd3TFUInL)H-qop+LC
zXE1;#Rta_>%3S}t5?FlYclI$DipXX}WLb?pDvZ@Q52tLu|M_HZ+<9k9KG)JhAw6>LhNq{?=Ejz(cZcWow|t?63ub#`7-0-^Vb&XGC-8&YW--N^I}1TxRp6!$o7w8Vk=
zYQ7T`GAfP)awy{p4Q=2urudX+68^;8MtEFmFbsizDKSzRrq3iq~G3S
zpev)4<#~)W6;1;53ZIRpaUcaxYApzXo{-8DDVII_lI!YR!{XlgK
z7|zg3xNblHyE!<5Mm1$93Hw15?sY7cn*Q{j$skkBAu
zJoYZ9c@si|nM7AS^JjGdur&Ux7Gd|feWax62?F5e3y6_G
zeFgIh+Ql2$VhMk=t>jxG^A2s=7$r3oXM_*&_AXFs{gf`nOhy|Sa|sk+3@V?{Dd38r
zoSXGYzBM*Cot^gTU6NM&AKu
zY*_~JM_T&ybZXuhSiKn%+YY%uK@pW6A_^i-Eh;R6ep2{#t~aJ;-v2ItblE9ap+K!`
znid&RzZDD`H}iNlD#ItjH~N*odKqc!w}4r6%;cwHlyE*GsOXYRipdm1umPSeCGyr9
zbV2k-WSHOtj7g7yuy1XO*+kJNfy>cZo{k?jT%uC3?J$=m>gJ{xWdt5>ce!88u>Qrp
zfy!Lvc5O{Y4ajjMu<^rqL1!3}m3(&t*j+PNt@w)qTaG5aT!Vv1VR7=J^5gLTH`_w+6EXO8n;
z#|WVzg0l*fusGpr%NZ!uSVU25dS>u5UTIggSz*9%V(r>P?l5&&?qlTKTs=SguOD>^
zEW^4-5HJh)pt#y!2v&r1rE=SBzVPSx9%$6>f;{XxA#`|=I=R+HvM>xVC%$WK(pMKB
zJJWbcU}YahCeHIPY8WNkhRF2;G6X&!&
z3@lTmAuh)~HK$JDl`28KwRSHMZhHI;ug>2pL!W!>oI4FH!xHz~n>$fPx=hkubMf7Z
z8dNahm!E_=b!#pmcZ|lQ?>wZEMG$_0?z6N2XcKnHen}CND;R9XeT0x~7Ee+(N(aVo
zrxUj1KSiDgD{W7AtQR~9np5G^LPLf|F!w>OovV78Oo1V8$1#lBL(bBC0;uq1h><AUVqleRw
z0d?}@Scri@vk-xN_$nfJ$2g&45(`cl|%;s>E
z3k_u@v?Oz7{F0@APWuZraMAL1Q<=c6*;9aF-dVR}p
zr8zD@B7i83*eNb+d`AOAsJEZmMADIed2CzK_$D$3Ft{7Y4i1p>5WHJ_@&r`PmxQe5
zVe})^PXf~ZeuZg5LF;R);Y!aI9R{wNv@VS8hs2j^sT53*kg$G}1qNe;(V+pF+eVGA
zz%EfK9{gROASYqHZ_&45+lKjQQR$|Flu@G*25angNGp5$?JBh9a#JFeVz^GqBX6dP
zMn4Rrf?R|Dg9B@z039S`9C+wx&y-ZH#wH#UHy^MJXQDbU_5H4CgP$Jthv2sttsxRwBc~{)W{g)7iqFLd|njcylI}#@Y~qfPtr+6&=G3
zQNCl!mZPB*kD1RCE9n-eA$!5uyLQcA9#+X`MDlD<6r6~r>vwFm8~wsaNt^0g^MNRls6-_}W@4#&7CC!A0~gz&$dJX#!Jz-He;Il3*0qUJPHYT|c2iu(Q5ut0nB^w7%k(Eu4u
zWsQV)!fmf-VVf}$?59T(C1D32Imr&r_S59*!@6Vb5M4^7BThOdwTwa$@}dGPsde}X
z0LANNt)Ram2FShp6E~|QbtxZ5CxU#t&y`8U?zj&8OLr4iL49!>U(n&Snm}%mD=_US
z_*3YaUYlImr_myjGh=~*1RaHBGfyELjCcVLff>1BDVQ+jI0vMLL;kKnaDTUf8n*(L
z;g^G6k|TolFy9varA1EV8*NE>?V)-dtWp*O{KC*YAe~on5>m^&H@-8K@!+x8r^3mo
z=8V8VE;pFo9VCgf;BPp-ZzUz-Ux>`OJZIHP)hME)0$^sxQe+I};-Rf&zEfl>Vt7`b
zH!>7d0!qv(seuOw(|gw0T5_I0LthwQS}-GH58G$miVb=yWEiN|!kpGQ-HL7tI!&-&
zI*}=XW{TkS@{Ue0MNA|NVYIzQg(NpEB|t$k7e1xti8}(ACETYh(`RLavXeU@SFC@G
zMTJ2eVIaM8Ac*RbPT_<28Yvrb&S@8;dqtFKY4|>{3kHTK*;n&{-0H(&m+>Z)`GIXA_tvMLr`TE>|xuAU~H32Nj@TyS8hIP`mIpdPHmiv7ToWF2y52HlvqSiyBM0H(ljb
zA0-2XuNI*lrtu!3@$V>+1KFdxTd$Xj<=+scLR3SylR3a&log2rrFm;VB{*o$L2Iu_
zb!Plsj}%rv*@U<3tv5{qdg6wzG0|+vEo0%er@c;>puimadI7MPjjVqDD_l&D6I-Bt~2uNEguK}pHfO&=nbvY=2y*v)?8HkZ02@&
z%8!5DCxgghWn~ddjSqSR3IYdmD!i6GhgF&2WOl5Jw+n)ngfD^fZq33HV8LU|WybxV8uQ^P8&~$nP#lgBp|03mX^ciFU)+*G(R;(GKjrIdjVsX>>0g&&`(Ts
zrNk2*$MC-*)nT?w_>a#KA&PMwj1ENrnOH9#=Abc^%uvFiC)Dq3J{2qlH^nTc8KVV4
zav2sZbH!)Prd44}o(lm&3u7lJeQ%oI9x@=7bgmbNW$I}=Zw&*O_c9^CxFpJ`MEQq4
zTo0E_vn?EsNGwnZHuInZXptZm|N0xbk22AKR4vyAxuddt@{o+{-1etZ$cq#~1dDOv
z@BxAOI5N5D$6i!)9R52p{>&wt_;}#9rYr5Q^Un
zK>Wkzz_!6H#^B)E1jma4wO9QWvao#}Buc_95k8aKzEMh8ptFG&9*9ZEN_Ujd-eR86
z?)z096!iW^+(h8#9WR1U6M4VHY&LzdOu%d>(Kn>b&NmI(&=Q1jvM0EcE#v%0^eGX=
zGHxnYMR5>dk%E26pjfSpr+sI*$%wEIaI?Qfu6OwTYvuf)LZrX@OATXx&9GMhoTgLCFzjujk1lkpdEyZ^GX5yX4
z$_P85bCofJ+|7_YClvRUX~PZq>=3<1u~m#wwfXf+wz$f*3uzg(t;I&J{`hb2w=VVV
zc`laq=y?*mK_Qp3j_nw~$6Bt}1#=NBU)1_ICBz``!90DhS^N~m7iw`MEcq20)L$T#
zw(GEJ(7QB5z6G5CCoin4hNWgc+pg~2*GQ{P9&{dSn
z$jH{^{h$%tnLf_zWmlHHrF^-QZ6dnu(hc{PRy5=!dmIx(txNw0H$ce0a918Frl@No
z=VDM2u#Xs_Z)J~sQ3aXYvZJ|)2FIPM0Ez{0$f_2=)IbTmC8&?w|Q
zL97&yF^Q9=@xR0Lc*@RSvOpjhw@yvt@W2jj`tPW)9-5!qGy*luThO-lV;p68?mY}5
zq_UBud-Rr-qZ-8D!D_Ij0=91Q9YVEIcRz^pr>HDD<_+FJBoh#-*V4OllYGY1Am2|p
zxB1(TV5HD6oN@}iO}3n8QbQ5pff=J#m#9LigU~u~87dJ?qPn;HZTH)K{`NXCuDAR3
z**)C!T?OpMz=(*9*KWi#^ciL6$J9oLqKPFZ%21yiTzw$YlKc}K0QKJB_k)e`1du>#
zx7(qr({FnKPHn9f9Gs@B5ofK4ER+G@wntk-PG|rlgmM?%@`^%f^H*mWsydg?Nclym
zN^0IqO>0jts)M9jtw3%x93l+pQ;`-^8bRZ*qVf^k|rC^$Jj@-&C$?pnrc_?S2vFnc=V{
zSjdk9ZQ^OcHMaGw
z6q(F`5j6^pFVw6|4+NfmaK3cV)o=j6ffn7Hq<5o}x)1|k@b8Bk&IfKvnzR(V21%Y{6_5sjWx{
zmkk3r7Mlf)B(JCT2Mu)bYiPf?*QQ%ufxXv^fyPGme0_{Zw5;9ci%Ad{MutTVA8_BC
z)0|n}9cO)gjsWC2HHo*L4T{L20l5^S^9fD>ss|9~cq)cN&v?F59!q)*muT2mh;HK0
zVWZAm_BphWaSyxxN}Z+qB*+j(&Ivp49XeBjq6xB*FLl5GJScxX-?uBeWj}6l$-TDD
z=di}NZ4{wSad;jW%}5hNwe9Rc=8=I0a+{B5`5y!3q64U;G(vkFLjPq|y1sHrHDpGFz
z5j+<*u*x-)wQN4QtKBbxt(@72B3Q^1GwStz7;kI(A7
zd<*&&_TbR^(CWCz%WSZ!{+*K>>HLRU+?ej?yFa4KpRRCBx=bZM&a2)3E6qsbo{1q5
zGVn9UUxUJsXBfU3P~Iy>kxw6aI1)AJcrxI6ru3GW+yDs9D{T3-`&;qVQ?~>vvCRBO
z$-|H*1|l5OAxSATt6oPoTQtEPRf3@Th3S(K4F=|XyNWz8=iko0eSG|Oy!v)sq0@Xj
zA`{(?<2AW56_ZX+IvER?2+#$ofBAw`D+>Y;5RPd3atg{ff8>IGpE6QVKdyIwyznUm
zM)qhCEMW=~&+a^~Z~lxhy(k`xc#In#)_j4T`G}mfAMe)_53y1R&l-9W;4&^CUMCN?
zz48;Qec~5kC+57YnV*OwbQZhR?{Zm-p*I3*k?Dsi?RWxxZKMlOPD4@VU|aBkn*PWs
znNQkBWTjq2^%YWy$;7?aJV4V+mprNui|YIVwSz=y;Nll4h!I%!@1E}TL||DC=5Mb|
za7>E6i5AL%fkA+&UW_>njxp_NZWCYl03@;~l%TUsNpQ^z6wLrwN?qkOiF}M)E*;dM
zx=bas^)m<1j&)E$U|+xX0uA0Iv+%26I9VIt-K5lovejIX6R`WWg}p&=E-=GRRq7Kp
z?mG$_$O{X;C0eE&Bhc;jF3}
zsrXopE@A2L$8p*HzTS`mXygNF5SQOz3I_&qli_sv4LP;OH3jLXi~Bcdz4@~Cityz(
z0Cuq}bNVMjnEKVh%*S4~QssPdoAObYpwSX$KcEcYqiqJ}V}Mg|HMgzHA*xGGq~eb|
zG8c|oO(1?b&yNS3F8m{cqgVb<;aI#&T#R!FYJ{AWy!92rBI-F;NExqM)g&U{His22umWY#6_
z!JxJ9044)IMfPl>hhK=~HbY$sK1yM{>JWz#t^9p)d9lB$|7B56aHuAd&h
zu~oROA+6BDV3y8?DZF)wE>pJecr#yW$n{Q(Dl*1D`V$UnOIw#mITZi8Hw
z>d8YGk5QYtueps^-^`266Q##p8N)lCGE1+5=05L%MiK4zIZ^2Ekbp>;7?I*qz>=cHyBFY|py&((Ia0D=
z^RZ%|Tah_hIZb6GlmRkrJ7Tw{RWT6bfQ6_^x*qcB)|n+SEuH@~km^GDd=zSHx<)eE
zl#*orLZIeEkQ+|zsu4$$IRSW!9AK&G618D*zkB54FWN4TkUIDUSb~O+D4xJ8{nQiPp)P<(qx`K6D`g<9M@AFc
zyF5OVH1xq^61!I_9~$VQS9sG_P$}1$kG@<{of{IhK%BXxEIeo>yv{lIy;L-A5x63j5Ds&p@;BU1z>~$kOVHfR!;A)z>
z9E`r3h06SCWr^JG(BpOf96b01R^Cz}3ZU3Ffi4%dBi5RC;zm)ViVlj0UaIDuz7nq2Ks`=X6w0|Eb4@LJtR~wZZLbO
zDe-VsE^#tgCXhr|`i&(l(z#BJ%e?~Q$_KGmpR2m9T0I2p^Q^#Y31#|>iwg53U-UIa
zT3FsV|2uj!>JS4LYFFxtMvszzEaJ1P@ZAzUs-^`8D|Ji0BB6%P3mzsy
zwLq8Py)T}mk8UUT4*Y_`K(3Qt0!~juUvX{ZOYN?}(YCJ8#%*W8?o$Lrw5VW^tiA_r
zJcVbtGx>WPrjEMA1C$IzXR^D7!kXwbOUQ@s=ZuHZXdSqpk~y!)%|byBw(^>6Lrtw(
zdco2Zm}IaZ)pLx-{Fi$ZJfU2|$}3WSDMtKVO0xT<8Y38T(DvqU_%r|B`W`czSgv^v
zzn@QFY&7Nr#1-I-zNe)`*KC%?WBGl>mCKiaBR}!K`SWwDPjDCIEq{cd97R_+GUT@N
zpG~_T^zT--EDr#>h#U+jq^Kq;P+wnEhl9@0=
zyMG4q5-1Hc>6|9Q>%u+M%;BuqK7i+0Gf>{&K%Z!GYWq~SVFz~qmCq_UH~PgEjk
z&K~8FvIj0F50qBe>eDwz;hX%eHJZGy&NxbFG_EDx8D*a8LiVE)%poD!hQijSnnd|8
z5>G(xqscr$=Qz0e*eBM7dOdRPtnw1I!;xoD8t}2_uP2))9kq!%v*BWsEA5cW=Q5BB
zSu%yKyZ)NQs*qM!pJm)z;Q(x<1oUZ6VxOLEhFP**3J$Nv#>?MB7#}@Q=MC(sE?p?I
ziWK=bbQCd80YA^S<$KnnUTnJo`SHvIG{p?#6!15}zx-hd(5+rIp(2J+`|Ln6r?7JJ
zk=K(kmFfF@9-F~A9JCJ$@r9+%a(x*^e(xy>NXc~uZoo$6zg9y^xyykwvk#hgJ`Gxy
zH3}8WOHTywCPB{kMAM`bBVy$4pXdojRiqS@rAEgO9DuFkjHqjYosiD%pNM)AB6dId
zrqd7rM_0ZB9U9@Xt#ri7DOl)wmlO8gIz%&GamJl3iOp#w@kyiO-Il@Brw&S>8Ps+5
zX-E?g*rLf;2v
z=h4aVB=swq6+x~7S76lYBS-Vs>TlD8?p3yKPEC2z{q1uRWxLhwpa;}zinP{awi|`@
ziN;AouWY*SwMqG0`_X#a|NIf{C7+LK&QpzsbTP1`fovEQI1xl9+>nn=DeEAa3T4I_
z^+1pVb$Oz{yW0@m30mt|)FAw*a5EJ0ew?|SEDN+aktzGe-114)FgkcC9;TcobcZNw
z;x9JecRLDemmW8=M?G%)-R_s=oXK$k3EtT4K2)v}=unBZ=V}P1EuR7fBXoN|d_&E#
zK6-zjGS+;o4}P7Ak3BrNZ(ap8S?{Lm-~rVEaF;U{AeEq?aOi@4mKh{yeR{yy3yh8%
zJ3tHC20C#9JGD5GaQg?}r8yjcx5mKG;8a)~R7}Pd3+6I)o
z$k#&|OS*HZuPae2MX=h6R=8wEq6~&}*ZgR$fnqlp(RbMy8S}10BX7!XlGJ08IR{*V
z`Pl3MT)29xFkO?V2vwt^=n*1vHoP(3KcF5Gzk_F|A9&)|U6DZd(5ne0PCNpq3x=+c
z9w;pbMcw{H!aTJ#ACm)*;)$%$0~1PJ*hZhh^F*zdo=QhQSxzjps6l*B&LdG@sXo3a
zpKW3XC9+J1Z$t^;{1{M0lQaPBNJQkYCcQIJ+nv=aD79Ui2AsiB`D!OW>Hm=U38PVG
z4MP$?s&iZPxzxpappO*U6$iMe(ar}F(gALaj24tkmJIBYc5`ONN>5?UC{*x>d`lWX
z>Ojw^1d&agPbDjXC6l?D8hQl2o{rij4{(htuxPjMXayWe)Jf%fuV53xsoeT034eHut$6gA*pfG
zhqOD^FQ-C0Ql2QVCD>KZfkngj6tDh}jO6RIdmaF8TxV(I6AcLi0n*4#IAG*pxse8r
zH28pgw)+Lq2N`Thm47U})-W%Q68|iUiN&q?WIsr+snQeQP6BXiDnZv85Nl1j6XX0R
zfa1W^;oU*FN`9OHhiJMUZu4=twQ$V+`6DRI$b*em&0Z6}Ff}8=hC<3-v_+#xY5U-P
zjZ%nxhs?3d*oDuk?7~3qg?tU4fT~~s4uG4i%E>f<%X3-rR?y~osMcut_;h2m|2)8L
z^9Sx=F}kod)vm#DNp+e51M?T30%g;ofP^>8sO6Tp>VUqr%-R4b13c_0nH|VqKJq}^
zdPC@shpB;pWV#GQ1_ouh=X$bfSovcfYbWJ&n
ziG{gk&1u&OrP%5_*w?h(mSt)*;dD8Z&z_FXF_!~y@XSrJpTlO9OAKPrMHB%fM<{PC
z2{3ZSy~1?k8Pe-l6R)o;Z**%QSc;th0`lT8@}QET0%n*N_Z^2B5`3D>-Lgy=0u1-p2pUs6;({YXUaqE;YJM8}zv
zFF`(Y{W`KgCmkTR*Y)gC2Tir95zcyTL_IAE&i;nX??~&ZJpqtcwx={7;M76!{HUfK
zsi>}eBF(^84G6$4!_6
zz&xSNm%E>)UQd4T?P`ACO8>eXBI-gtNC4oA!h>aZ(pFX9ej(qF$H*INK{-BKc0F&+fAMQrxDFKLbT%U$3(v(sk2!>qEfj>w$z^7PK8m-vD18Kejy0SBA@CPU~sk10$oEkW2#q^
zFMFW+Z7iC!?#KoDM9sUUgbx{AXisj&rVuK*{(8WxG3>Lsufb~tLFl`JbS0f${6_A5
zPx=uK0)Xy#s_fvW;x7y}<@s8QHzFlp>N^bO8pQ%6ikriAAq~iO+7pI#&MKu*Qx|HR
zzZ{6*3##(D^C%{seh)?;YmS4!uI0Pp7o^
zh`R7V+k&~Z1szg0hOJ%WmnBe^PwL%!p$E|ABgfJ;=WyEU&DA31(+#`(HR}Qvo?bIwI6Y@G}&PAraWCy}F!PRVmHK6{Q=23pI
zl8$-(N(|UJOx?Q?Ax%j(Q|NCB{M@b23Etu1g5$K4t4M{R-^P_NGr?K{?LL*5?&LocwHjMq-a}sZCPm
z-TCe}EZFuDbqn1AFGZc|y(?2rn@q>g_zp2@@?S`oO{!_@Ges?PYK_hMjI+jM4$;t3
z1|$YBpu0A0!jYTCIF4TCJb{}@P?G%Z7lqRP&}Lg5Q&kU$%1QSVRa@V!R$e>12|Dbb
zq4SeNk@$2tdfwl2vz$~L=U3E%Uc5hZI{|DPJj4AhH|eQQ$^OgNL;1HNkwGc1i$$mR_j$K=iZcKF1K3knkq4(V2M!o3f*o
z%Ie<~(WL}Xqe5c*0RDZzhdx-$o6sq5M_#$79;uM1tKr0T{@OQ)=5WK}j1f_N7%>Ft
zaZ=$&%C}fmKg!mPBC0v*V)x6MI{*=Pj`3iMUCJeP6Zyu!y0mTx$*8TmT@zw88cY{2
zmt?>%wA0HXs!@t^iPMR&;6#EEO{1Dcf(;{&6sb_^KU)
zogkZ{PAJxUpZ_{IFbrbC6SosI+2Dchz6|^AWcPpb(W(W(NGC{pr4)%sxDxYW_@BnK
zCTrb--uH8q44zvu9iCleH7;hT{t@I&;FX9xf2Z0PiXSJkDfsdzJi=r+h_j%skZKd-
zO23^0U-cs+j$7VC<*wU8@d@atLBmS&C_{fH0sJBPFsUSvflWU8F7om;t(c6mqBn;_
zFUl7-p5-=lT0R6P9;8xwqNJde2dDO*B6Tvz7hYSmygpd;(NdU?TfT>T49|-7vyM8p
zypH_GZG)1JaE|D{<$KRay~$@l*R0m<2WfM+bnk|(3@K)5!)nsjxur^6zWT{Z$_u|l
z$CmtE^6VDz-({2Pqdh-W2-FO_Zi0S9_8l*=A=;AxHITQukK)eZcKju5!c7OP0QU6(4
ztRV<6Rb>&Cf+P0H?j+)li$&PKEfLSuxUGF+`VfBydB!9D&MIjvcUb08+xR<$izAf+
z7vUOzERJ_-Qv+_`f93mH0~(WA=+@mG-^oQTe;rUbN1a*h%MS3d0jOs4!m4>BRx_5y
zp<#czch&3*h|XoX0cK*#S#!_7;L7ln`cw+-sr3b;jCzOpQj-s33l;a#i`U1*g^B+e
zGU*thlTkS@P=#7^o4ZL>AonfIiA%=ymx6?3NB{j*s(#U-wV6v~E14vwenBk~!WNMo
z70|887ycb<0_Tl_mi8gP%;@{utCn_PRH+gv@g*s-K~FNpAo1d<9dUpW(l9PID*O{Q~-WG~4~Ld27p~Ycl6>_lx4#GoC}0qIR?4b3Y}4iv!}>6E)9izt~xS
zh@S2$?ZkePq#F#uR(JO^Jx@2Q-EZbH-CIaqdYHO~lEQ?ty}Kj^Is~lV5QucOHTHRc
zu_qGM$nq`y+Cwn~p}AuD6BII0U17$*`1KoXsVKypCL^+EEdG3m)(CAnjq9(UkrBUz
zPMGh}RJ|Vg?9fy@I-e2#-{J$(l_C@1LF$3{;SZJ|4(;V|gcbG4dFm;sDshb0G5vrl
zPTKXyDewb#44f_Hic!iPs8q*HyQ&f8c9f#|-6j6(3Qtb(cI8BL0Y@yUj!L+Y;E)|9
z0y?1Px+O*vVcmRp5(e`gove$wi^RpgRh>8X=tu;@cZjH({%dpS7ePgsqko
z^&vBJOqyaosY7g*n(Cm@Ua=mDxAVDI0j6}2z`@%#fv5NZ%n29?H|zKOSC4o9NgXT-
zu!|_RU;3RI8B{TC;<NW_ZJJ
zyGDVUv?&l9RLZS27IhL?y#`1k%Bpe!Qw%uY`Y!g+IQ3vPX>~}gc1||z`yQ81K9GDm
z>^|0vIVMv%r(Z7C#Lv;MAEO`|6UFrfafNp#kk5z0Qy$91+64Rr-Jirk?7aL(JDLv&
zaGOn2E%30K5_-xr({PE+H>nfJ8Z(P6I`Xik{5$
z2zaCLHTirxV@%8=QmcZSUxO<9!e+OqP8Zc2#ixuz^1H$|p(%UwooWZ=zlmX$7#Q`>
zme0?XLzj_x;6&^4XmY9fiY5FJx>9}{eIWmlPV!jt5~`z
zHF$$s1mEyW+v#bXXP-dGu7j}L9_S`8zpW~{%i$cKxC{ZH04xJG4rTg(e~Jp8eX2^@
zK|KB7meZ%#Vv!0@eVXUrr_rj83pzg9S`-u5{TD$fj82lg{KZHzxco86*)E7Br;l-0
z_=iD!Zd<|?22MVlaFF0arVF99avqL}4+R;7?=qWOoTj4bATThPe;U?0o(m9N1_p;9
z%g1w|!1=aaj>m1T-tYLuj~`$o6tcDngDnBIOdB1F1P${S+)T&=g7{)ztKz{{(%X*bMe76~
z9seDXAX2r_Io8zI$Y%l6m|7mKlj)r0<;1^~6QPbx!pzt+yZ}w3b)tr+ex{DmhqtX0
z1freQMt@IEs^By>dG`nfxMQA++tw0&k#8X81TE;#{=#X;*k%l^!
z8P|3Jt^aUg;v<=iXV4vIw;Q{EkS>VHaTC)}pycAu4?
zeC!+4*5nywynd%C)EdGt;ejCv+3uJ8+ojCJEo9gJPbme9WumcRvXPgS6EdZRAv1KhYYCWFZ!N`4;SpG_^BRx4eoAokhbJyi6X#iy{MwC-R;CHc8Z8oX&TiYIEBBr
zKI*+#^HRw3O|UXzQ6S+b&jj0czvZ8=m%_xxNe(!Na2kG6u|H4ZAneBmC>FVyj7_}P
zW&q9P!jExFCj$&Df#jlZrEY$7MDvNNBO1YozcVT)s^H5HGy(G<{&hJXL!eiv->9z>
zDY1v`njcZnNDb5SAFH8EB{XJZCNF>*c6&Pxv|nDxS>CR3vYFY16_5J%K|it6IR!@`
zPN^W6&xUXzzBe-1gLYSSO$uBRRP^w|`Ay$g;7y$I{Iy9s#iYIDhSOoOmLtXDJG{8vBKZImRtbJG4yDSDaH5a=9Mev*VO8J%TtB-eCo!&atw&I!}Y
z-;nGMjynx|(4S^Y|NUz)0JJxN!$ew1t(wz*Cg2EICwRaax~9v$CYb;D5fK7Dq001{
zV*z)#nxxG!JR^PPd_uhFlE?i??1ZhBF8@S+xQU>Kue%Fu^zZ`4QH
zb%7c$t}Y!x(-7%(bhw3x6EqTkRBVTav6^quAv#nV2hA6m5M$VR8tab3eZtv!Nx#AT
z#aHvygL-bDqPkw9GY1sod`rmyJ2EJP3LdIrz4|dkWl4ytETB4C3AZg$s=gefOVU
zM7c?P;5X;*rI+#_
z?$jO->ab%m8XImB7=TFdp)KrA!3s|5M+MYRYk%}*R8Jo-bh%K`=pb`4xj!YTE=lJO
zTe~2wRh4*@uZ2Rz(-8dMdB^(k$Qyo>fO&qwyTwa6j&`Kfa{%L)>*y6j1!`2OR$C|6;1#ZHjVP4q?hA!pk}5iJ0eZmb=;Z(ESaDg(hh5E>b<}a>mVAP{=ls@i$_S1F&6Xxx^pWQ$HY0feQ
z(50i|87b(O?o{XCsv{AzLn>^myE{^KXR
z5yf~c`@NaPKlHD*sJIr62U@fVZj%qOtv4bD-M>@*~Y*}9Ys`hX}+nPGK
zG2rt%{w#eTNF>?k@0EXbOF0|Sro;lyN`u@p?&;8ZlnF}YFs6r_efjfXb>q^b`{d9lei
zpeqU)Fz=TlI9l)s;gF(+x3YDgwu4~uz|O1&Uykdb`Fjs4>Z%dq0Tc!5&JavUa}o-W
zy7{=ISxLcBLL-Ii1LZj_bS-H~A+vlu*v6;gQM_D2B3hJqyb}Ln>fW6AJPT_GH!<7K
z%P3?)7>w`pnLaYAW{}Tpz|YReenRafJq{
zkrV<|3X~Mrd;ra^G9v}6HsU@|_Q?2gGRhZ4PTL{TSA(_$W+
zh<}T=4f-ttr&UB4AirsM2~2wzFewUp@;kIwL%a2R_LYZysfGaqOBK@?U!gFPB<#1C
z$`@~f;+C7_t~4pqr(8P0*$z8c*(le85R$=Ebg-s>7XrCSKnU0zs@`W
zh$qMoJT0*}G~V&nhbY)&k_E|Z3UG|{s}WHZM(&}Fag3;vmU~S09W^>=s;Hg8v=a~w
zQ0!2zFwU4RK3t(QN~grZy>M5q1mM|GgzmjuW7&N~TUNB(W8|13OpYs{XTU@>uCj@%
zR0E?UOuRG_(+1>4LXqnz)xoVN^pq{@#gSXSwg*&6@x(?PSW)}V;R`R9gqn`y2DUgYV*L&37ufO|CI>gRbznv9b;2F^6@A<%$_Oq
z7i5d>u-saBTk=ieE}(Vk<@C3I@UNjBNhk~QM+6RRbRx_)r~*xRtxw7g=mtrD4*1UH
z)0Xo)A|%pz_CkF}<4P#s&T6>()wJY0;8rMQoI*7F(R}Eu@4%8c;j2d>A6<5)LrzSE
zC!T^N)s!wzsa#?vwqpa#4;BUP{xLZGQoT5$t8MYfn)BVpA5Lp-idlBnm@(eLD|x@!
z547~xg757&fU-mQg?9f~Pq95CyzvPEbB5->T$knOtbi*z_;31?T{20SfuRS
z?pMA&4V!{9ODkdVz?UV(it@SC8hvLQDErtq?A{w7HLqH8PR)2_JOtqec+MKh+%1Nj
za!fM&N%AYe&KF}8JO3)(0)ux>8MTRV%0@Ply@3Lsuj5enQZsT=561w6hZQ!J>05QF
z6OtrY$wId>e{pYFCaOhh>4bs(-X+lFBI!Vgv9*Ys04C8zStBG)Sv9{5M_?aH2Cj->
zu_nun3xi^tPpXTyISkHh?VeVSiXT@*nF2NtW#Qy+q}VM7OH<~ixeTr)n26QABN@*N
zl4v)K-E4zoq&?8Bi*GQ1K`H>*1*c`-yC>M3NYyatYy!{>kxcFje!E~jXS8$Qz5$!E
z4@xCB*p*(Kki)L}*7cDj&*7(@y;;w9$zmubS(&=S@&7@|66pH*9>d?mzhBSEm4X7S
z%ze6jjFmQMVIrD(WV(qM%`qjWIO7;tf?ejni=a)fpD$o6_c>J-xyE`#fK+I;%Y(#L
z1N+<>?>}fNxbg^iMU&>lL(snDx9mEg^tuurzKd&RS*oPb)c*Aiu%T0)a)0rPZAk
zFKb8XHR+IDg>y}#8Bk3R*OxXkg;SS-SF$sdbbjFpB#2GyYWE9%35X~u`J^dwhFhNW
zBTkt8^hwG*TF&3%_0ZXtyr4yNn7hf-q_o#Fl3(*5-Sb6)_*AL0Il)c!0m{yz<@1a6OIyc($F}ig7JyBjZMi}D(0y^Vt!p=~ayI<^bW9RDnX|O9FS)2SSe~x(v_K*eW_VsYqDdnr&nws$L(ue5DRjGqA`C2$*eFIZdQ)r~?I2-DS
zRs4Ux&ZW1pEV25
ztzZZUnaC#8&o*dPG!PNb=nEq4y}Fy4=Y}Me-;om>#57(sAqNRcK{{whHUpJ$acW7W=0z1Q{tz>z`@a-^sMa>|+*ROw8-
zg7tkHC^0;2ZBQUbmnr64NrcQJ#uX+Mp|B|VlkJO5n4x5|b!`ib3eC1(+!EEzPbBg#
z*xG(UjLE(_g^9%V*-Imp2N4PTA%}py3`UufjeR=Zx;m`Pb_u5*cs#x(a87b#pD2k3
zv-s2l>H(1j%CJ8c`4U2Qs72~&=I@(Qmo
zyc4#9>S9?AAv!$<24!CZS3(7~L#+3GD$oY`n~@vQr~tvtB~_MnpN#;dk3HLa)^mSO
zwVYqKLZoQ&SPa-6IATRu%auu5
zV7ezAiStw0G%1KhMz2aoK3?Hiuo3e<3x_2fpiondHv4ALI9dEQzc&4K2dd#-P$pq!
z#Tn%Qs0=)l>A1|#yrOJtmWJs|F8aR9@6SzGdD;7m;+3UhA9dUH%m#t>kys6slY5F$
zFNxN~Rk1fXxR<|wQ$Tsl0i~t4LH8;&ykCM-$lpQ$MUr;=u->C7?9wNs$QlRu$G4iF
zB;p1@ukvfCcyypVWTX9?7V{$55GaCF1dS?fq9M-5lj^FNJV~Fr)&+Hj+8&7vDZe)&
zZfFax&t|8a1pp^#(up)8BIsl9%Vt?Q6c}Mx-2SdznG}58(d?P&OX_ay29L
zr``0ZLRo~ej*K7mWqAR9VC(Li*LCO*Lk;uDNI7z_D0k;=i|YmXv+SFA52_}yOZr&OU%gZ2jn
zlV6l=S)n?_cNG2S(i^@e?owN|_bUts8>&{atMxX^=VE;C>JKIU1s#sBkPd;WH@`>i
zze|jdY2W!$MHFp@a`k4K69_PN4MOrX^OpeEd`u;t#+rasx%toh&YQm%v{6#VXyeVB
z>lT}BM5Z2EdMB+Gf>)HI*rN$01Th0i`TVYFL&$%GQc&M^{3z}o8)fzeh4QpXatw7{
z#K}<|Wqy^@2b}ccj`5=C8k^6i*Y6ZGI?&H%htv
zL|cNP<(Fp(OeNj?5wU9!k!-`ievs@w4ss9ws@VKRS3qws!UH<5v^-ujY!sK%1UG+#
z%|EELGynBqIVhN1JNqObET3tn8`zUFX>9o4{kj7t^s?E5dmyr#t3(rX_ty_Qr_O|g
z2+1W};rzi5H(zg^U|Ty(Ln0_c+?l#hHa{dg_QLMwPgFVH
z+yU@~&*|EM!T32OiMRlwk-yS)v4o~5Nntx$+Z^47PALgBRdGl=RI(GIGW$d
zUkvUFh@O(yS`WD0l`L3EH(&XhHg!MASX-pi;{)(nCXK^8_7Kw?d@gb{+&l3qn&L^6
zBO|1=AIJym5YuX1(ed~^q}qtB<8VyA+J!x08`wq=^`Jh3h1?$9l4KK)&wQBQ6=Gz8
zp2YDpDzK)>Jlc?dXSqv<`M%aC>8qEXDnxEJ&gc1*nKpw4h*^@~|8Ra6bo^A=h1hcs
zp>hlM*;Yd6ABxPvuLtzabGAp|6tQPuBBK7r&uWjpu=o*2RpQB)VQY1pwThWbJ`A9)
zz4A@3fY;%lOnyB9O0gfM;MT-OZA<06`-qz8f&)x7_GC`!;^Qy2Jh}=3BcpgeA3Q1z
z5kNubwlX~Y^pQeQ=zyRe^sru^$B+&J>%K=2M`uPdOvNOFsLs~o
zws?S3M|W5ju07EhfI>C83(ql;6o$5o2J2&7E6;1Gc6W$;jnUzeKH4FTA?%9bHt)81
z2P1c4+OsmutE5vtj0efht7L&+alBl;NI&7cVzSytP+<%%cf`yvKi#kEp7seG0J3YA5ld_hv^iyR!>hv~hW!*3;i~hy
zKu2E}H0MmqyEA|ESzHaiPM&%IzNU6>Im2@bhE+cb8QScEyGS6P(YeY^@LNk-b
zyiJ6pQIMQ1I_1TwDHqld(sv6Z$yhwj;nqrZ^(fCqMPQ
z`cqzwV
ziur`agJq&?6z-^XM{LS~rDeNNnBd7iEHx(j5bL#5Qt*-w=M~FVc+F0UMho$OV%%%{
zQt6P*giS5KURosgaAj~s9T4S+l0Ls2Rgb+IZ@v+{HtSSfR!Pk1&2}AI#A{E2vi4tgT3939koWxgH3eq&Ld9+Pzq-CP0HubGtSE*Sob`zS)PH)aQz
zh#PQ1Yxo73V^dVh1&(2|`!O#0sy%RT3LB;=Sw@&66^}8v=?LM8i*0fLvJ7
zvv5dceJXHpgxTQ=yP~#52COB&Bx^c-SY-Zk+6ELU2a!g!&Qk+hwwWVxpwamRmS9W3
z%b{+_4T~d<`RvxWt`>V8R{J8+Mm|v6WKUh0=rC2P1GLBGl5WKOr~XX@tt@+cZ4?>O
zDM<~78|ZZERg&BcCRL3P0705!JpR>B$c9V098F&X2kdA>9V{$UY2(fxt2HCgN<8go
zr?aZ96*jTm2hdL9S?=uaBP79nG;1Oy3Xbq+32fPeksvxEXzjaQOItm|q4{Ad|Ad5;
zWY5p}1=Us<0oJ;G-0R=KI|=8roR6bv@fH*;9nCkt$D(h|=x?_?2q_(~O7+rk7>_euC+)+8HiDx#`&;E2`O%K%6rCf-oep*Gco
zmgRxx&%p<&Ehxmx*&0h}`Q{{2X_b(GIZ8ClK2z~k2#O*NtbU+bRD>YIJb}i@zk8c@
zk`F76ctx+|BYlJkF`lhUpGZgirnV;3d-+IJ!jlqOTic*3*(cM9t%}g$s2mWA$)6)J
zssLpe&U}>v?2(ldQYomPsGH8o=C9aTCk2*+kLVtj%|r1D
zTnYGeAU_dZZYUu(i^+;~LX~WACVSHB1ekG%BWn)#RZk>QQyEC8x9rIhKnj;+
z)RfKcFQ&)C$JEFo4Jbw%#Ik-ZBwW|zbtjlQSZi+&41;`CbHGU$`eiI
z+7a0)?*Y7LD#T3Ay$5>0zDvn?W8mhuPssv;HCzL@s?9YlCME&~hKqXhr^oS1virw5
zyc%}pIj+H)iNMxsBShj*Pe!M=L4Ka#$t->aJaW;Qs2?zB>@mCG-Z1x5LQ4hXo>%%)1%j^t
zLqNR0AkwM?%CM`G?Gjpb&LQ#}p5@IE!2X
zz8u15p~&sYTCgWqa(Qt<;;c`#^4DeKlt1_{AGZFI3Ad(PgZfkF#8+mBrHnMnVt0}h
zp{n(X7v`CbeOrZ;p$6^=V++;l;o%zp<5cywr}W1VNFkTXO-_CFH~^DU#u7?(@-P$Aj76?nI5xC*g~=bRnY7zAF}OY3`FPi
z5#i=jIC5=bQZqduKoiPp^wTNrvwV_WF(5qQwDfV=meItN?`e}fojKlBALw*eMw!v7
zEb25U#M;(xo_fsjbn|C7nyO4NN27ggF!(H5R`V$!wt(V^2yjAR^V(!IZ&{uBH%MjK
zDo~4p*W}|*=g*`vDFDh`N!)>ay866hA;
zu41Hg1`r8!;9Q>kw(;?|Tv;7e=2MH(9}Efg6LI7Kc*my$hwh~BMWFn&Bu)`9wBFFX
zLHL&)XZRL^x*g5qP)xazoBs;FIo%G@;!Vus@PzArn26S?yDo=h
zE_D+f68IF7cHEEsfpdcdHZk58A2B<{Ru*e|K!AF$YYnECSv{4D%^
zLCGcwRY;h%z;%>y+%
zo
zxi27P%!i8;Z3s!VGl?YG{JSmomRuu@Q^bK;v{jmHc9<}LkIhr*QhF?)1
ztXL2Ha(v`3Kq1o5t^@wHOI#`q`;?4HSOum;W9ksf%if~lOkeIN(gVLUUupn1&Dr1p
zY!;af(}8Ej7lxr$EVM`lt70PsHbU{5vk^!WTMzq~4Futkx@$-6tIAH#2%iML$UaUL
znM_`3B(0K9l5GpuGxFi=5xJP3$+4jEaijd>)>Yvg6s=(a3H4Ygh@r>yp^D;Tp^UNZ
zH~(QnUD*`~iE5KoUQbHWv}>E=%s&(^N7)6scq(Z)BaW%0DmXROufV>m%3zCF-4Irg
zO2JKxtd80l-yH}|jSJ5J4%?NFS-S`*cg)8-krVF_FmC{+rr|?=pW?@5Q^|BzjbnL&&Ck7drmd=nMJlLY|)X&L4)b4YhE|-
z^fgp)AZvY%-|jKBJm#4qhG*bz@UHX6>JcsDg(1sg%kjUmG5dQh5-L??ia1<4)c!RSy`EgER8V&nlAjNG-&
zS0=My%z7Gfa-bD1^iK#9rEJXR(
zqZWYeqcg#n*b?lMH2PmMt69VXJtgY
zgM|g^D3)#hUZrtoCGf1xU+i5q4pXN**g;6a}%oNxx;GbN1nw0wRr
z$!9PzE5&aS<1M+!8J#O8oBuKS!E}c6cJ{;5(+@*e6>2?%4u-$S87)pxB6nKQ=j{8o
zFj(c->c}RA=#2B>xT1V)x3o{Li0GP5_Gzaj2l$cBXahnB6kg@m?m|LQp!dmoEgc(>
zfzhBfL
zKcW5dyRj7zq$SjFp@_JxDk|R?dxV+~`MK9)GAV4&h;b!J+%>CKaemxjEw&m8wi*}I
zE#qG0hg672gin+<)3YF#e|Hkv1)%r~pOgET7o%a>xVXOsIGUe-@xU11=QJ-YT8fBR
zD55JLojt5TkqWb;a
zmdjI}NJ_5GY|e`nR9nL};epLxvGebr3VXcGKTHz`=mnKblne!l>)QFbAkoN*jkOOo
zR8xvm-X{Kl?~sv820}2E{F8S}+9Kc6t1>PDzbr&$HlIddPsxtff=>pcN(so6s}dl~
z?^0t^Q3w!7gtR7G@e9iUs(}5T^*5W1Ad*PR^LR$&ErqP3ZN2Lla-WQ(V2hL
zBm>f#v|RqM{lrnALvW?tJRo85q^Ct>yLX2Ls+tbHsdi{njxCbAde`Nuqz<5HieYy&
zc=K76lFX@UXA=2SAoLUo5gnv|=q)cOQgaC45?`TUX@SGZucIj@nW=xm+j1I^LmLp_
zVJjtfDVHiAJBpOYO<)6hv_K3fL|r#7o!1DTUK;8W7($>3aPMk|f5!ngxTIK$Dc!lW
zS=1w``}6-zb9khNMfp<;M}rl9Il?q?X^k7?vk5_Wj}EXU)ET2WQ7-8a)~!83)w~a|
zeR`4Uiigb~LNf9f_+zWNYBM3c23%orjoRdu)C01K4?>)e>1>w^9Sw$@?KM9CU_jNh
z8e=^lPlsm$b-(Ad+g36@{_5PkH>fWrZS;|r3l!s#tCr<
zG$;8bNMi7&bzwy=yv83PJ;G2yvq4c^F0c8)@Kpn5x&4|Mix*?pgc%DWT_%<(zJAgL
zsU>gNmyPQHTECpb5byLHBAUSNrD;p?!rqfV;1)819ETy=nR~DW>RYp-sB87IqiW-q
zm>3!G%zy@AoAXMKu@>aT-VrVtf@^p+TnIB9|0aLZdJC33M2YMdKsA{0N+*c!BR@aI
zr7q`~)~3%A%nVySM1s^_g=Buw_lHuOL07ex4+;L|
zVl5=Et^7UU#$rspEJwrVAelq$&RQl7WlU?^|1PP)8NHwfA5k9=?*K*f;0FZ2AW_`3
z00_-Aoi+XrO&TnPs$(=#aIgej&@K7AxGeC1ssp06L?kNuc%MlHHLfUK@+DFulMs?s
zu}NHKKE&1hMD7-^)fPCtvhbyBRVVv_dlFX8-ytp7B=PAhz0O(7r!wk7d6j7Pke3fO
zGGyQYQC%sa8aS5Q0N>Tf;n>MM)u|e~g}1${^QLUh9I~?6#!|&0&R>#W{qxrpRafI%
z52%si;pS!==(UQ*72HSx$2L{#h@jaub3SnrT&co&`ee^mS2SIXmv78t_I!KzI^DVZ
zh!0aV0doo#^07}Fkmzh&2tym0aJwot5eGRVy0sBkK^R~!w$L*z=D7
z9_=$#+u3gUFC(72kE%fZ33Y8#o_RFk0f_6Es6QVLcZjx24D!sFh`XJ*nyEf!!RH?;
zW#D6xn#vEL2#cjCE;Rs*h1D{Pzz%y`Qe6%iQr4V5PfsT774>_rXsRe7v6-uY5=pPoYDLN_1rp*M2&4$TeR!d{FPRcL4xgi3@q=e3@q6y
zz>DnG7d;CbGAu+65>Zw{`#gQ>-7jIR5wKs-h$DXu4JHxMtMzS!Gp278`5wydcgU~S
z)T689BLY!glN}^$*|_=vdVb$KdxWOyQbpSuTX0tLfvIh!%L#KJe`k3pCQbII#NvH>K&U)lPZ1bYLK(`~c67ZMRdZq_VBERM_T&M&?Bm$#g
zYpz<4b+AvjhT9;>aBH)bkb%f=0CP?KzNFZ&nVX$r8Z~9>krZ+$13LolR&Vna7@?~<
zyc!&?UDE1`JH_BxRi)Zv*ESVKQy{VghyqtjC6D@iq?s0k58Tu{OVeVfI0Xr1Dl8g5
z{~k>DARjS35fcO<+fFXr!#Y{7xIMV+32bd19PJSh@shwJcGh*O{05h1pZN-(Bl^89
z{vjkmEMTvEAM=GZ}h>MvCkbnlGLt~3NnIt^V3WeST@DG;0YLA
z9Rl%1el`)C8PA`j5i3U3I*4;&w(zopJw+O3_nSWu!q+kOa973jE=dS4*pnp~5hx~|
z$=FfC2YsBqezHS3tMgySfiT$-Fig5$X{S8f&%YntdE2En%La%B4h3Dl
z0R!bDwsq$#r`^>u&nxmoEs`GdB8WnrYOi6y((8J{=m=m`I+-*=koHPD71xGmBJyQx
zcNy_?eIMxX)G?gd06#(gW?Q1Ro{-ffAjxf*Mt%>o_a0!)p?1rTXj3|+$D5QuQzPI^
zD`_a)!Qkm`Mic0qpj%M185NJBeP|g*2XVLv175Q&saNB=n3ia7
z(qD_spQ8G7M0cCNFu#875WY5Op59nFynH~J3aSU|jUQRL4rXgrrUT4We8}M3FPu5`
z0X}$A(+Y`vu~a@}el2y6=LEXn`3`tZ?-dM44aDr;)^BYR_mm0?7)$n2Z!#4Al*~hZ
zR}%43EKkbp*&e2lAK&;1rJ0|1IuaK`C^~`pEiD~D=I9J(aHw~up6E%;D7q<@0tImC
zvE4L%i`OKwL7<&WeU^y?X4E^5ow|l(xRiP%Vgh41FtMHzX2%By=vD&`x>o{rmQAT4
zEC?yon0OqtK#+?#M!PFoKXk3}DbAkSIP
zTvcR&1}#8oN=EYE^hFN`l**mR07jIUjha_}#U%SX=B)Df`5Pu-RV)PFE|*s9RK39Y
zX+uYfQ_^#2S2gn*z2{vE89SXY=8(jt-HxyfA7w>hUoKJw0|MbPJ%Iqhv4pcARJ8d=
z5Zh8-E6SF>hWvzE8d?sy7gobYp|&Dds%vtyL`Da=9Ofto1cl%%G<|J?uXf=JskKLJ
zCrTE1IA4cb{f!(4&J|n=oN{0Bc;+KkEB8w1+N>>03L{F7{Tk>NeokeSy%jj7sJb92
zP`w!C>VVgXUo`=;c~RsZSdeclqH-`WZ-=cBC^s?+M9cfqUZJF33!ixj3$jn$tpU!*
zEhlV}C86Q`3M3sh-FC`h!-K`fK8$`Q9Et|@1%t>VXPiKbpfak~IZmIyq_)l7L@WTT
zLY_}>Fk!Cq=Vu3#r&zuL?9FB0Lwvo>UpN1pi;tHHv)&5~Bi0Hvti3gW6jL%=2KC+>
z;0}*d91z==y5xcJ$o@y#xzPp2G_l33Z~Hh#VNLLX{XPWtkv(nxWr1swKl{~M4l-i!
zh0T5d->NF*kmP6b6SzF@#HQardHtMz{*3MnA@m6E#U&Tq<31I&MG7^YL_sHj1^Z%0
zLap;!f>GrcZQTw_I#(rW>L`;R(5KNV9w}pA%pL+B`&OcB;o?L<+%s&wVfX9en40C(
zR$8}qefki(1X}cj@9@akUb0AevA!{d<@QFGIM{1sYY18FWzw&W{s@3+)MNa-#F?Dn
zAop>a#&4m6T)CdIZ~K5b<9s3BE0u>l1&}EZUjsXVCJh-SWu`i6lEI34DSv(?_qi{m
zERm(y*Z#gsnCvIE3*_K2;IVeNLvnjKK+I{TfchvzX~q1J^oqRbn0&aI*L(ymr8mU)
zk)Lp^2udF(#P3&5Z{%KI
z*~V(d^9^M(oPZ{VGIa76mIW9V1pw@QR3Lv{2u&H-qgPV$O2S-^roxrxXA_HWcBnsbHWeQ;9B!ysfBx!G`s#hB1NY3{H?C`H51!YtceYJwUC*a?`D^{6)*5l7YO1ch
z2w6Tv3T$?F1h^oa%n^7W;(Nnmp-U-|_OXAU@5r)iVu9rKY@kI)%Se=u1)NX9(J<)ywL~sDW77yC#zDr<`
z9}A&_@~bNvqZUrO`zwJU|G4{v7A&>~4KLP~Jp90!pCRj{L54fuF5zf`XCBlPJJLiv7vzlg3
z8Z?Q*Mm*;zx5h^btdy|KAE%Y>iRPuq$Maq)^`tE-45L30WVe|>B?UsT+v%XUL4ay)
zlXqVcWFtI2^b08IFA1?T*ku*K5007N-mb|RuX%eoF@uus1R4T7`=A48jxfi-a}b5R
zCyYfM0&3kqSfQ@JyQC>nwo{s*FzHmgtZW2HL}q_$lf5>tIRMW)|1_X!pEa`T#+b{n
z+BBwQBLmCh3ey!~S{}~yh%mI{uk
zr|_#ehC}*b?}**1QtZaZP>LFdSQ4qZN*_gJW4{uQ)v&DNr3!rbBYl>crb6ivX$@rj7do!f7p%0|}|BR|Rs7o~p9Mxy%^g93>P?)1==azIyaM
zGKoHoOMlBGxv>vjwY(OU>1#nu)j2)hE46N5FJ7&Q;s!SB4I5(wTfJe;B-jsA%txz|
zQcH8>(UK%1W*ikb-IOd3RW*#9GgD3&FTwzzqiwulE)vKSc@&>(k7ny7vIW*#kUqRD
z1UvprUq2G1_JLDK>5=^YXVNMoIAuvYdB&?Y?q50TbunMzu9*K<0pH0;{OwlVF!L$%
znJ7X?pk4{w+^K&LW@{zsJ(M=XDhX5U%h+a2CHrJ!yZxQVgZ0h7_PczpOhWuxXoxxV
zingw*b2Ww6JFk30;n9xE%Gld=(a)%Gw*G9n_lB*OHK)LoL@6n8#O
ziP#qL%gm_&K0lOD;{;<-Vmub`j|C$rQGkC=`5UemxoBzUR|@2fSED?vsV(=OWSmlg
z`FH~)A(YtoOwiCnN5@Od8p~j#QE=i5of9}*mFZ9X`*R8Q!?c22?Z)R9e1OF|@Qh_p
zP8ys4MW!Wyh5f=kZPAkmP^Dd;O!cTCs~~?-*@LZnDoAYn6NZYuB;YJvzU7mb7I9SsjWx?YuoBZjH!=dbz2Q_U4J=C*$sUi$?t
za4@y)r`j|d2NZzjS5!D&vA^JYofJ_J*8nrY_h%F}E#1e{5Lm3-4p|18(hD_b7Nm+n
z))Go_*%)hAp`1cZO#sns{^|&$7N1?|=0o+>wFz9M7!El*8e#UP1WuwqJ1MV8G?J)k
zoNAi1Lj`CHAiZ}7gt$L=2Xh#k6FLH)aU}(vo$+lj&eb*#?x;g|l^}Ehgp_u&^e+yA
zNLv~JL9I;@T%m&ay0lCk%|@>@h|WL$ww$iB5JEebCOxADy#fA9fl|2AAAI@3zsh${
z4QPX{7nA^j1>B0j14uYO4wwPq&7Y+*la8n%4h^LQyM||jl!YfIE|#y*Qz4`WX!@k~
zro_1vn5FCO3!8Q@Ov>{fjUI=k`G>9P=;yD&7QiPVCbOlR%Kw`sZvpW%y=}?
zJRVW)&lk<4r)l-c1MGS%%s5JuY{Xim>E>|Jsl_HA!lp4XsI&zhX$jFS^p!2=0kGsi
z#gn$A62~0Znm(b@Hb0q$QCf&Mod=E4>NNQgoPJ!|EmdYIi~VT+{A~Uh-vuB!vZd7?
zsMZR>Yp^?$*FiNLk)#v~JpU%V30Z|>(nBb&`&D4PDzte#TZ(zrH+Na5cSHoik_}wU
zZ1~bRegj4pacW>u6Tejlz5xZ7k>)yKfSxvgR9mjE_dZRN&SNP=I;%!6qn)BqvKUm@
zlhr#Y9}v)~Op_D99l;zuQD+f075*RIl@JbCqFquE|E$JZla12?4dVu0g0ZlGc8F1p
zT>g~pE`RD%wD^=jF2W!cvrj7vS`cw6&o}adcKU~0(m#ZbdNx0*E^9dbCYsJ*98qAe)}_A#6UczpR&RrotepM^WI
zFRN;9YOlLNY_3)kU7+d?I>0bma#k2EcyG+wB{MVh;J8|7$ogqQH)o&jfKgntXu2Z{
zUn;|-t+zXttsHDDeYQv1Ka8B^s8g_S6$pvhQJ&_}m>cR}5YL7ThgqNsGtjgK>F-`x
zd-)hwE(CH5to$Mj)Wy+34fvfaCLn@-43+y=^N4gBFB6u0VmqfgqiS5qpBLrKPoG27}64@
zKd1EIx!6GSH@Z%rAc=x;;&f_gIFs1tI^+auVS~Wo=}z2sGyn)KFk|xj;@WU&9;y^Q
zx{p_XgoT`>(f3PmN(d8w1JuD0$QM)`P*W6mCV7b`NQqpJAEOgefQP;QRvqE)V)VaLucN6=RolxJNfu&gUY
zQ!Il82-pE91{~Pc28wSjzCwFhYN=|nBr11{@EW*;>|#;DPI-29}VhF`ia7M+$cSsjl5ib}1hG?qn9B!Nm%
zICkzvQ%8LEl)mMK=^mF4gFNrFhyDEfXV|9AhOGjc%$?`WkJG>yU5IpBHH|;gV=KRS
z)y@)|QuTwoRuyG~g*49{?7H3?LTgQT+G5NY^}HceDws7An=q__0#AtoDrCnEI0E*
z37>IMVBs+kZloQS(-+v0_;k0FVdf9mgHW2s-yuy#2K7{d9^1w&uGz~^(j}qux4gRs14j$mG_65>iSEL*qVZI@dfdo+SIan7V1ASetLAM4S
zd8_cm7Js^O+Y|#rkhT%nwVmdJoSP+BwGm6(9}ml<$~pt_i##7fo@g7elPq$gnzn(_
z?Lg%~HzOL2L<#uh%0DOMR1jdOHRb1ILr1r-fGy12e6Cc20Q~h{9`N(u*b_`^Fi-Kt
zBvXvmXM=_uL_)yx!I`n3)*_8oKt88Xky84I0)P0NTTxS~ig6p*7Izb>0lF+QEBWhJ
zc0-MN$c5kY?X3rhtUc144glhSp<`NtvQ{c$TkP(R1ZX`x;rzE?)h;HhxmN*wAeXKK
z2tzgSY_#dy^%GCZnv0BSQWjuZ)!jo{OSw_Ar=3FI16H*3e?pPNIJi@08<%}!2fpS4h37krAE_
z_ET&`;BAP@&A;U@54|;9f&g#WiG#|}s*ey)2(3tYa-OGGHS-Cjt&_bIf#0%`Tk6RN6LRehE7pfnYr`2?iWCYTnFMa1c
zPD(IKa2G>yPyrI?FS+p0$%8N%tdw~A;H^^7XOm42nNcu#
z^=T8oH9oD%my)!dt(Hb{4+xGB2>P#b!W}$F(zPBTWtG6AN(JNa^~137li?ugO2PPm
zsmm7aVLmE6H!u{JL+6t32gtj>tUP(-*1PFIl6D~R?GY8~;LoO|W@M@4{oE!-%l5<(au5E2!2UN8);s_(f
z(GzJOWGck&fd3;F{i(9}L&f(wIvmc(&1v6
z(V=r|xE3`?3xPREYk^LQm+L5XTP+xfn`ki^f7LP9%LW2cE=e|efSX_4_?;+@wi~0S
ziQk8#rQ(kP+A{IS!ENLKUML6-Rb3ECrGigKQ9*!Yx=Dl=$@d>M}4xIKy
zTNoZ+q~|~mL#F{Ss0tufiOm<^%6e^8G7UXVp24Y$x_NV?+RLfl_dw;p&dDtrVxU1M
zVs9+v6$mi@`1u_X16ypH9KSb~#xk&*_05vbDVp1fIG
z3v^7TzOuKrn;l_tzyl{ny-QN*0L9kgnd`PZTC)I=twJVN6)V)8{1}EyGTlkgC3=T)
zZbw`vfH+heQR?9nCZ}mdt-6>3f!zEe!*q6zW_dQWI2&BD_qbJ`%r-ws=XQuBYnSCR
zg&pHIEoQ}zV_SkpeQ^cjg1^7p2s!&6_k!xr2HX*2iQ-(la^{jf6?6%hDp)}&)IRK>
zptyxOmwE*?TxV$T3`i~l-4Qs@mGf)9#<-+&WdqCHxpc=s$ueNmrZ>Tzg08Bd@-#lq
zQUVk1Vf6G99^|rx9*$mTE>EY+t&WRfkT#ijO&UIcbI)pUha?X2WKK|dxR`RIvjQJr
z_7Jxff#XygS`BbPFvbWGi;aF#1&DHFex0{2Cm7~K$nW9~{in%O`;1@!`&1gQ|K7Ck
z8b9#_B$*m$QQ*a4LwfcP`W_5=?qhEhC7ulxw}-5N^mrR%siw6Ma(yPj{6ib>4{t
zg6Jjf0y=0wgo5vIhachc0h5r1vPRtd<3Ii`y3BHk_Hf9
zGMq~OCHDw&AcL(b&_v
z1QA25$Wh@HYEpZa_$1Q{rf>w?zXLr-#LB?vA(>gayQA+=x#Z;Bww!d~-ns5a-yua-
z5WsSJa-v7(SkZ*QoKc(5hvoC;Ph~US1vKag6@8>C>hn;afMO~`O;Gl|6sL5g>hFPU
zOx(DpSADgO%fS+HxDF^9_s^M%ox_4no(+NCg30C9J5iHM#NBdIJL%+T)PnQyU_h9E
zzCkb$Y_FY)n9Brm6m|w*G!jrDeAaPG+m6teT*2m)lOkvWLQLlws$heDq6gOj=*wvH
zbJ_O@&m3T+y%pYcjR3eE_J`PY_RWrn%wCICTY+##@S{_Eks$s(kbmfjN#9N)b4Ewt
zY*$T!ib1oCj4%kBQZ9+oPeAo@l7`zY5JKgs*p7%ofnrg)w;W->l}vE8H0bpb1MLHw
z0&8jBVaLzta@He)laEM{=L*-GH9{k=kGti^yyCmbXn(}rU*l_APK^1WDbhvZ)#DL>
z%Z4@K`|J(nR$nR)kJ9VsyeFV#M}x;~3qfX>%{)S>3pUEYJ$8m8%Gl1aM39S1-pjlr
zdzv7eZRx|Kdb)yWFP|t~<3wfa^M-S$Q(B%pyd@y0U>MfS77cT#90FdsIdGR_!r`kr
zNZm@NQbpK}n|Bz!Xj)wm2EwKqp_;JM%UljnlzsNyM*YyvDiEs#GUI6iHaHK#LaQYT_GoC;x9u$)}q{$=H
zy6i0iM(AL`5v7tKM-9=aQL0JMq`u0u%#oRZ!4`SOe6i{Fz-%0?t6`{1!}s!?<^J}!
zIw*YySs+O9fuuuDpt0V;7Ow%nL2B$^JIFhDxQ*{oOO+dd3jsXmGcWFVjLnOpJ{H-t
zB?-qVIeS2mIexha=pbgKL^9dtHL7@eODa+LF7;~|!JkC&Ow~qamC5IvKT|{~^2a$jz9(kug`Dp@^w(*!9v
zj^eH{d1R2*3HC5Mc(|Jcq1NWG{2+nCXawj6=`CT`vt}v3hm&do^vWcRk|PqO87R}TDe#06FWg?gk<_!0+cCYz&F0TGvE5lg
z(UZ-;oZ2aZ1Z(2aAT0PL$}CLum(C
zxeO01B812_V5E~~+C1R3QVvf6aJXrl8$E34{3}lp5U;_n@<2t>AUDAIBcN?{ih3vL
zrTk*j^qj19;DM$Gd4?=M;MW&Iz<9@`zpxSHxF=+JTETz0u8C8g0!#YJ^5a_t=xN1P
z`l4h}RMz+<-Cyo&yRCm0u0?}j_9+wYd_{L$bjok{U