Location: PHPKode > scripts > Genghis > genghis-1.1.0/genghis-1.1.0/genghis.php
<?php

/**
 * Genghis v1.1.0
 *
 * The single-file MongoDB admin app
 *
 * http://genghisapp.com
 *
 * @author Justin Hileman <hide@address.com>
 */
class Api extends App { const ROUTE_PATTERN = '~^/?servers(?:/(?P<server>[^/]+)(?P<databases>/databases(?:/(?P<database>[^/]+)(?P<collections>/collections(?:/(?P<collection>[^/]+)(?P<documents>/documents(?:/(?P<document>[^/]+))?)?)?)?)?)?)?/?$~'; const CONVERT_JSON_ROUTE = '~/?convert-json/?$~'; const CHECK_STATUS_ROUTE = '~/?check-status/?$~'; const PAGE_LIMIT = 50; protected $servers; public function run() { try { return parent::run(); } catch (HttpException $e) { $msg = $e->getMessage() ? $e->getMessage() : Response::getStatusText($e->getStatus()); $response = new JsonResponse(array('error' => $msg), $e->getStatus()); $response->render(); } } public function route($method, $path) { if (preg_match(self::CHECK_STATUS_ROUTE, $path)) { return $this->checkStatus(); } if (preg_match(self::CONVERT_JSON_ROUTE, $path)) { $decoder = new JsonDecoder(); return new JsonResponse($decoder->decode(file_get_contents('php://input'))); } $p = array(); if (preg_match(self::ROUTE_PATTERN, $path, $p)) { foreach ($p as $i => $val) { if (is_numeric($i) || empty($val)) { unset($p[$i]); } } if (isset($p['documents'])) { if (isset($p['document'])) { switch ($method) { case 'GET': return $this->findDocument($p['server'], $p['database'], $p['collection'], $p['document']); case 'PUT': return $this->updateDocument($p['server'], $p['database'], $p['collection'], $p['document'], $this->getRequestData()); case 'DELETE': return $this->removeDocument($p['server'], $p['database'], $p['collection'], $p['document']); default: throw new HttpException(405); } } else { switch ($method) { case 'GET': return $this->findDocuments( $p['server'], $p['database'], $p['collection'], (string) $this->getQueryParam('q', ''), (int) $this->getQueryParam('page', 1) ); case 'POST': return $this->insertDocument($p['server'], $p['database'], $p['collection'], $this->getRequestData()); case 'DELETE': return $this->truncateCollection($p['server'], $p['database'], $p['collection']); default: throw new HttpException(405); } } } elseif (isset($p['collections'])) { if (isset($p['collection'])) { switch ($method) { case 'GET': return $this->selectCollection($p['server'], $p['database'], $p['collection']); case 'DELETE': return $this->dropCollection($p['server'], $p['database'], $p['collection']); default: throw new HttpException(405); } } else { switch ($method) { case 'GET': return $this->listCollections($p['server'], $p['database']); case 'POST': return $this->createCollection($p['server'], $p['database'], $this->getRequestData()); default: throw new HttpException(405); } } } elseif (isset($p['databases'])) { if (isset($p['database'])) { switch ($method) { case 'GET': return $this->selectDatabase($p['server'], $p['database']); case 'DELETE': return $this->dropDatabase($p['server'], $p['database']); default: throw new HttpException(405); } } else { switch ($method) { case 'GET': return $this->listDatabases($p['server']); case 'POST': return $this->createDatabase($p['server'], $this->getRequestData()); default: throw new HttpException(405); } } } else { if (isset($p['server'])) { switch ($method) { case 'GET': return $this->showServer($p['server']); case 'DELETE': return $this->removeServer($p['server']); default: throw new HttpException(405); } } else { switch ($method) { case 'GET': return $this->listServers(); case 'POST': return $this->addServer($this->getRequestData()); default: throw new HttpException(405); } } } } throw new HttpException(404); } protected function checkStatus() { $alerts = array(); if (!class_exists('Mongo', false)) { $alerts[] = array( 'level' => 'error', 'msg' => '<strong>Mongo PHP class not found.</strong> ' . 'Have you installed and enabled the PECL Mongo drivers?', ); } return new JsonResponse(compact('alerts')); } protected function listServers() { $this->initServers(); $servers = array(); foreach (array_keys($this->servers) as $name) { $servers[] = $this->dumpServer($name); } return new JsonResponse($servers); } protected function addServer(array $data) { if (!isset($data['name'])) { throw new HttpException(400, 'Server name must be specified'); } $dsn = $data['name']; if (strpos($dsn, '://') === false) { $dsn = 'mongodb://'.$dsn; } else if (strpos($dsn, 'mongodb://') !== 0) { throw new HttpException(400, 'Malformed server dsn'); } $chunks = parse_url($dsn); if ($chunks === false || isset($chunks['query']) || isset($chunks['fragment']) || !isset($chunks['host'])) { throw new HttpException(400, 'Malformed server dsn'); } $name = $chunks['host']; if (isset($chunks['user'])) { $name = $chunks['user'].'@'.$name; } if (isset($chunks['port']) && $chunks['port'] !== 27017) { $name .= ':'.$chunks['port']; } $this->initServers(); $this->servers[$name] = $dsn; $this->saveServers(); return $this->showServer($name); } protected function removeServer($name) { $this->initServers(); if (isset($this->servers[$name])) { unset($this->servers[$name]); $this->saveServers(); return new JsonResponse(array('success' => true)); } throw new HttpException(404); } protected function showServer($name) { $this->initServers(); if (isset($this->servers[$name])) { return new JsonResponse($this->dumpServer($name)); } else { throw new HttpException(404); } } protected function dumpServer($name) { try { $res = $this->getMongo($name)->listDBs(); $dbs = array_map(function($db) { return $db['name']; }, $res['databases']); return array( 'id' => $name, 'name' => $name, 'size' => $res['totalSize'], 'count' => count($dbs), 'databases' => $dbs, ); } catch (Exception $e) { return array( 'id' => $name, 'name' => $name, 'error' => 'Unable to connect to Mongo server at "'.$name.'".', ); } } protected function initServers() { if (!isset($this->servers)) { if (isset($_COOKIE['genghis_servers']) && $servers = json_decode($_COOKIE['genghis_servers'], true)) { $this->servers = $servers; } else { $this->servers = array('localhost' => 'localhost:27017'); } } } protected function saveServers() { setcookie('genghis_servers', json_encode($this->servers), time()+60*60*24*365, '/'); } protected function dumpDatabase($server, $database) { $dbs = $this->getMongo($server)->listDBs(); foreach ($dbs['databases'] as $db) { if ($db['name'] == $database) { $colls = array(); foreach ($this->getDatabase($server, $database)->listCollections() as $coll) { $colls[] = $coll->getName(); } return array( 'id' => $db['name'], 'name' => $db['name'], 'count' => count($colls), 'collections' => $colls, 'size' => $db['sizeOnDisk'], ); } } } protected function selectDatabase($server, $database) { if ($db = $this->dumpDatabase($server, $database)) { return new JsonResponse($db); } throw new HttpException(404); } protected function dropDatabase($server, $database) { $this->getDatabase($server, $database)->drop(); return new JsonResponse(array('success' => true)); } protected function listDatabases($server) { $dbs = array(); $mongo = $this->getMongo($server); $res = $this->getMongo($server)->listDBs(); foreach ($res['databases'] as $db) { $dbs[] = $this->dumpDatabase($server, $db['name']); } return new JsonResponse($dbs); } protected function createDatabase($server, array $data) { if (!isset($data['name'])) { throw new HttpException(400, 'Database name must be specified'); } $this->getCollection($server, $data['name'], '__genghis_tmp_collection__')->drop(); return $this->selectDatabase($server, $data['name']); } protected function dumpCollection($server, $database, $collection) { foreach ($this->getDatabase($server, $database)->listCollections() as $coll) { if ($coll->getName() == $collection) { return array( 'id' => $coll->getName(), 'name' => $coll->getName(), 'count' => $coll->count(), 'indexes' => $coll->getIndexInfo(), ); } } } public function selectCollection($server, $database, $collection) { if ($coll = $this->dumpCollection($server, $database, $collection)) { return new JsonResponse($coll); } throw new HttpException(404); } public function truncateCollection($server, $database, $collection) { if ($coll = $this->getCollection($server, $database, $collection)) { $coll->remove(array()); return $this->selectCollection($server, $database, $collection); } throw new HttpException(404); } public function dropCollection($server, $database, $collection) { if ($coll = $this->getCollection($server, $database, $collection)) { $coll->drop(); return new JsonResponse(array('success' => true)); } throw new HttpException(404); } public function listCollections($server, $database) { $colls = array(); foreach ($this->getDatabase($server, $database)->listCollections() as $coll) { $colls[] = $this->dumpCollection($server, $database, $coll->getName()); } return new JsonResponse($colls); } public function createCollection($server, $database, array $data = array()) { if (!isset($data['name'])) { throw new HttpException(400, 'Database name must be specified'); } $this->getDatabase($server, $database)->createCollection($data['name']); return $this->selectCollection($server, $database, $data['name']); } public function findDocument($server, $database, $collection, $document) { $doc = $this->getCollection($server, $database, $collection)->findOne(array( '_id' => new MongoId($document), )); if ($doc) { return new JsonResponse($doc); } throw new HttpException(404); } public function updateDocument($server, $database, $collection, $document, array $data) { $coll = $this->getCollection($server, $database, $collection); $query = array('_id' => new MongoId($document)); if ($coll->findOne($query)) { $result = $coll->update($query, $data, array('safe' => true)); if (isset($result['ok']) && $result['ok']) { return $this->findDocument($server, $database, $collection, $document); } else { throw new HttpException(); } } else { throw new HttpException(404); } } public function removeDocument($server, $database, $collection, $document) { $coll = $this->getCollection($server, $database, $collection); $query = array('_id' => new MongoId($document)); if ($coll->findOne($query)) { $result = $coll->remove($query, array('safe' => true)); if (isset($result['ok']) && $result['ok']) { return new JsonResponse(array('success' => true)); } else { throw new HttpException(); } } else { throw new HttpException(404); } } public function findDocuments($server, $database, $collection, $query = null, $page = 1) { $offset = self::PAGE_LIMIT * ($page - 1); $cursor = $this->getCollection($server, $database, $collection) ->find($query ? $this->decodeJson($query) : array()) ->limit(self::PAGE_LIMIT) ->skip($offset); $count = $cursor->count(); return new JsonResponse(array( 'count' => $count, 'page' => $page, 'pages' => max(1, ceil($count / self::PAGE_LIMIT)), 'per_page' => self::PAGE_LIMIT, 'offset' => $offset, 'documents' => array_values(iterator_to_array($cursor)), )); } public function insertDocument($server, $database, $collection, array $data = null) { if (empty($data)) { throw new HttpException(400, 'Malformed document'); } $result = $this->getCollection($server, $database, $collection) ->insert($data, array('safe' => true)); if (isset($result['ok']) && $result['ok']) { return new JsonResponse($data); } else { throw new HttpException(); } } protected function decodeJson($data) { try { $decoder = new JsonDecoder(); return $this->thunkMongoQuery($decoder->decode($data)); } catch (JsonException $e) { throw new HttpException(400, 'Malformed document'); } } protected function thunkMongoQuery(array $query) { foreach ($query as $key => $val) { if (is_array($val)) { if (isset($val['$id']) && count($val) == 1) { $query[$key] = new MongoId($val['$id']); } else if(count($val) == 2 && isset($val['sec']) && isset($val['usec'])) { $query[$key] = new MongoDate($val['sec'], $val['usec']); } else { $query[$key] = $this->thunkMongoQuery($val); } } else if ($val instanceof JsonRegex) { $query[$key] = new MongoRegex($val->pattern); } } return $query; } protected function getRequestData() { return $this->decodeJson(file_get_contents('php://input')); } protected function getMongo($server) { $this->initServers(); if (isset($this->servers[$server])) { return new Mongo($this->servers[$server]); } } protected function getDatabase($server, $database) { return $this->getMongo($server)->selectDB($database); } protected function getCollection($server, $database, $collection) { return $this->getDatabase($server, $database)->selectCollection($collection); } }
class App { protected $assets = array(); protected $assetEtags = array(); protected $baseUrl; public function run() { try { $response = $this->route($this->getRequestMethod(), $this->getRequestPath()); if ($response instanceof Response) { $response->render(); } else { throw new HttpException(500); } } catch (HttpException $e) { $errorResponse = $this->renderTemplate( 'error.html.mustache', $e->getStatus(), array( 'message' => $e->getMessage(), 'status' => $e->getStatus(), ) ); $errorResponse->render(); } } public function route($method, $path) { if ($this->isJsonRequest()) { try { $api = new Api(); return $api->route($method, $path); } catch (HttpException $e) { $msg = $e->getMessage() ? $e->getMessage() : Response::getStatusText($e->getStatus()); return new JsonResponse(array('error' => $msg, 'status' => $e->getStatus()), $e->getStatus()); } } else { if (strpos($path, '/assets/') === 0) { return $this->getAsset(substr($path, 8)); } else { return $this->renderTemplate('index.html.mustache'); } break; } } protected function isJsonRequest() { if (in_array($this->getRequestMethod(), array('POST', 'PUT'))) { $type = isset($_SERVER['CONTENT_TYPE']) ? $_SERVER['CONTENT_TYPE'] : 'x-www-form-urlencoded'; } else { $type = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : 'text/html'; } return strpos($type, 'application/json') !== false || strpos($type, 'application/javascript') !== false; } protected function getBaseUrl() { if (!isset($this->baseUrl)) { $this->baseUrl = $this->prepareBaseUrl(); } return $this->baseUrl; } protected function prepareBaseUrl() { $filename = basename($_SERVER['SCRIPT_FILENAME']); foreach (array('SCRIPT_NAME', 'PHP_SELF', 'ORIG_SCRIPT_NAME') as $key) { if (isset($_SERVER[$key]) && basename($_SERVER[$key]) == $filename) { $baseUrl = $_SERVER[$key]; break; } } if (!isset($baseUrl)) { $path = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : ''; $file = isset($_SERVER['SCRIPT_FILENAME']) ? $_SERVER['SCRIPT_FILENAME'] : ''; $chunks = array_reverse(explode('/', trim($file, '/'))); $index = 0; $last = count($chunks); $baseUrl = ''; do { $seg = $segs[$index]; $baseUrl = '/'.$seg.$baseUrl; ++$index; } while (($last > $index) && (false !== ($pos = strpos($path, $baseUrl))) && (0 != $pos)); } $requestUri = $_SERVER['REQUEST_URI']; if ($baseUrl && 0 === strpos($requestUri, $baseUrl)) { return $baseUrl; } if ($baseUrl && 0 === strpos($requestUri, dirname($baseUrl))) { return rtrim(dirname($baseUrl), '/'); } $truncatedRequestUri = $requestUri; if (($pos = strpos($requestUri, '?')) !== false) { $truncatedRequestUri = substr($requestUri, 0, $pos); } $basename = basename($baseUrl); if (empty($basename) || !strpos($truncatedRequestUri, $basename)) { return ''; } if ((strlen($requestUri) >= strlen($baseUrl)) && ((false !== ($pos = strpos($requestUri, $baseUrl))) && ($pos !== 0))) { $baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl)); } return rtrim($baseUrl, '/'); } protected function getRequestMethod() { return $_SERVER['REQUEST_METHOD']; } protected function getRequestPath() { return isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '/'; } protected function getQueryParams() { global $_GET; return $_GET; } protected function getQueryParam($name, $default = null) { $params = $this->getQueryParams(); if (isset($params[$name])) { return $params[$name]; } else { return $default; } } protected function renderTemplate($name, $status = 200, array $vars = array()) { $this->initAssets(); $defaults = array( 'base_url' => $this->getBaseUrl(), ); return new Response(strtr($this->assets[$name], $this->prepareVars(array_merge($defaults, $vars))), $status); } protected function prepareVars($vars) { $ret = array(); foreach ($vars as $name => $var) { $ret['{{ '.$name.' }}'] = $var; } return $ret; } protected function getAsset($name) { $this->initAssets(); if (isset($this->assets[$name])) { return new AssetResponse($name, $this->assets[$name], array( 'Last-Modified' => gmdate("D, d M Y H:i:s", filemtime(__FILE__))." GMT", 'Etag' => sprintf('"%s"', $this->assetEtags[$name]), )); } throw new HttpException(404); } protected function initAssets() { if (empty($this->assets)) { $data = file_get_contents(__FILE__, false, null, __COMPILER_HALT_OFFSET__); foreach (preg_split("/^@@(?=[\w\d\.]+( [\w\d\.]+)?$)/m", $data, -1) as $asset) { if (trim($asset)) { list($line, $content) = explode("\n", $asset, 2); list($name, $etag) = explode(" ", $line, 2); $this->assets[$name] = trim($content); $this->assetEtags[$name] = $etag; } } } } }
class AssetResponse extends Response { protected $headers; public function __construct($name, $content, $headers = array()) { parent::__construct($content); $this->name = $name; $this->headers = array_merge(array('Content-type' => $this->getContentType()), $headers); } protected function getContentType() { $parts = explode('.', $this->name); $ext = array_pop($parts); switch ($ext) { case "js": return "application/x-javascript"; case "json": return "application/json"; case "css": return "text/css"; case "html": case "htm": case "php": return "text/html"; case "txt": return "text/plain"; default: return "unknown/" . trim($ext); } } }
class HttpException extends Exception { protected $status; public function __construct($status = 500, $msg = '') { $this->status = $status; parent::__construct(empty($msg) ? Response::getStatusText($status) : $msg); } public function getStatus() { return $this->status; } }
class JsonDecoder { const SLICE = 1; const IN_STR = 2; const IN_ARR = 3; const IN_OBJ = 4; const IN_CMT = 5; const IN_REGEX = 6; function __construct() { $this->_mb_strlen = function_exists('mb_strlen'); $this->_mb_convert_encoding = function_exists('mb_convert_encoding'); $this->_mb_substr = function_exists('mb_substr'); } var $_mb_strlen = false; var $_mb_substr = false; var $_mb_convert_encoding = false; function utf162utf8($utf16) { if($this->_mb_convert_encoding) { return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); } $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); switch(true) { case ((0x7F & $bytes) == $bytes): return chr(0x7F & $bytes); case (0x07FF & $bytes) == $bytes: return chr(0xC0 | (($bytes >> 6) & 0x1F)) . chr(0x80 | ($bytes & 0x3F)); case (0xFFFF & $bytes) == $bytes: return chr(0xE0 | (($bytes >> 12) & 0x0F)) . chr(0x80 | (($bytes >> 6) & 0x3F)) . chr(0x80 | ($bytes & 0x3F)); } return ''; } function utf82utf16($utf8) { if($this->_mb_convert_encoding) { return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); } switch($this->strlen8($utf8)) { case 1: return $utf8; case 2: return chr(0x07 & (ord($utf8{0}) >> 2)) . chr((0xC0 & (ord($utf8{0}) << 6)) | (0x3F & ord($utf8{1}))); case 3: return chr((0xF0 & (ord($utf8{0}) << 4)) | (0x0F & (ord($utf8{1}) >> 2))) . chr((0xC0 & (ord($utf8{1}) << 6)) | (0x7F & ord($utf8{2}))); } return ''; } function reduce_string($str) { $str = preg_replace(array( '#^\s*//(.+)$#m', '#^\s*/\*(.+)\*/#Us', '#/\*(.+)\*/\s*$#Us' ), '', $str); return trim($str); } function decode($str) { $str = $this->reduce_string($str); switch (strtolower($str)) { case 'true': return true; case 'false': return false; case 'null': return null; default: $m = array(); if (is_numeric($str)) { return ((float)$str == (integer)$str) ? (integer)$str : (float)$str; } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { $delim = $this->substr8($str, 0, 1); $chrs = $this->substr8($str, 1, -1); $utf8 = ''; $strlen_chrs = $this->strlen8($chrs); for ($c = 0; $c < $strlen_chrs; ++$c) { $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); $ord_chrs_c = ord($chrs{$c}); switch (true) { case $substr_chrs_c_2 == '\b': $utf8 .= chr(0x08); ++$c; break; case $substr_chrs_c_2 == '\t': $utf8 .= chr(0x09); ++$c; break; case $substr_chrs_c_2 == '\n': $utf8 .= chr(0x0A); ++$c; break; case $substr_chrs_c_2 == '\f': $utf8 .= chr(0x0C); ++$c; break; case $substr_chrs_c_2 == '\r': $utf8 .= chr(0x0D); ++$c; break; case $substr_chrs_c_2 == '\\"': case $substr_chrs_c_2 == '\\\'': case $substr_chrs_c_2 == '\\\\': case $substr_chrs_c_2 == '\\/': if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || ($delim == "'" && $substr_chrs_c_2 != '\\"')) { $utf8 .= $chrs{++$c}; } break; case preg_match('/\\\u[0-9A-F]{4}/i', $this->substr8($chrs, $c, 6)): $utf16 = chr(hexdec($this->substr8($chrs, ($c + 2), 2))) . chr(hexdec($this->substr8($chrs, ($c + 4), 2))); $utf8 .= $this->utf162utf8($utf16); $c += 5; break; case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): $utf8 .= $chrs{$c}; break; case ($ord_chrs_c & 0xE0) == 0xC0: $utf8 .= $this->substr8($chrs, $c, 2); ++$c; break; case ($ord_chrs_c & 0xF0) == 0xE0: $utf8 .= $this->substr8($chrs, $c, 3); $c += 2; break; case ($ord_chrs_c & 0xF8) == 0xF0: $utf8 .= $this->substr8($chrs, $c, 4); $c += 3; break; case ($ord_chrs_c & 0xFC) == 0xF8: $utf8 .= $this->substr8($chrs, $c, 5); $c += 4; break; case ($ord_chrs_c & 0xFE) == 0xFC: $utf8 .= $this->substr8($chrs, $c, 6); $c += 5; break; } } return $utf8; } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { if ($str{0} == '[') { $stk = array(self::IN_ARR); $arr = array(); } else { $stk = array(self::IN_OBJ); $obj = array(); } array_push($stk, array('what' => self::SLICE, 'where' => 0, 'delim' => false)); $chrs = $this->substr8($str, 1, -1); $chrs = $this->reduce_string($chrs); if ($chrs == '') { if (reset($stk) == self::IN_ARR) { return $arr; } else { return $obj; } } $strlen_chrs = $this->strlen8($chrs); for ($c = 0; $c <= $strlen_chrs; ++$c) { $top = end($stk); $substr_chrs_c_2 = $this->substr8($chrs, $c, 2); if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == self::SLICE))) { $slice = $this->substr8($chrs, $top['where'], ($c - $top['where'])); array_push($stk, array('what' => self::SLICE, 'where' => ($c + 1), 'delim' => false)); if (reset($stk) == self::IN_ARR) { array_push($arr, $this->decode($slice)); } elseif (reset($stk) == self::IN_OBJ) { $parts = array(); if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:/Uis', $slice, $parts)) { $key = $this->decode($parts[1]); $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); $obj[$key] = $val; } elseif (preg_match('/^\s*([\p{L}\p{Nl}$_][\p{L}\p{Nl}$\p{Mn}\p{Mc}\p{Nd}\p{Pc}]*)\s*:/Uis', $slice, $parts)) { $key = $parts[1]; $val = $this->decode(trim(substr($slice, strlen($parts[0])), ", \t\n\r\0\x0B")); $obj[$key] = $val; } else { throw new JsonException(); } } } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != self::IN_STR)) { array_push($stk, array('what' => self::IN_STR, 'where' => $c, 'delim' => $chrs{$c})); } elseif (($chrs{$c} == $top['delim']) && ($top['what'] == self::IN_STR) && (($this->strlen8($this->substr8($chrs, 0, $c)) - $this->strlen8(rtrim($this->substr8($chrs, 0, $c), '\\'))) % 2 != 1)) { array_pop($stk); } elseif (($chrs{$c} == '[') && in_array($top['what'], array(self::SLICE, self::IN_ARR, self::IN_OBJ))) { array_push($stk, array('what' => self::IN_ARR, 'where' => $c, 'delim' => false)); } elseif (($chrs{$c} == ']') && ($top['what'] == self::IN_ARR)) { array_pop($stk); } elseif (($chrs{$c} == '{') && in_array($top['what'], array(self::SLICE, self::IN_ARR, self::IN_OBJ))) { array_push($stk, array('what' => self::IN_OBJ, 'where' => $c, 'delim' => false)); } elseif (($chrs{$c} == '}') && ($top['what'] == self::IN_OBJ)) { array_pop($stk); } elseif (($substr_chrs_c_2 == '/*') && in_array($top['what'], array(self::SLICE, self::IN_ARR, self::IN_OBJ))) { array_push($stk, array('what' => self::IN_CMT, 'where' => $c, 'delim' => false)); $c++; } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == self::IN_CMT)) { array_pop($stk); $c++; for ($i = $top['where']; $i <= $c; ++$i) $chrs = substr_replace($chrs, ' ', $i, 1); } } if (in_array($top['what'], array(self::IN_CMT, self::IN_STR))) { throw new JsonException(); } if (reset($stk) == self::IN_ARR) { return $arr; } elseif (reset($stk) == self::IN_OBJ) { return $obj; } } elseif (preg_match('/^\/.*\/$/s', $str)) { return new JsonRegex($str); } else { throw new JsonException(); } } } function strlen8( $str ) { if ( $this->_mb_strlen ) { return mb_strlen( $str, "8bit" ); } return strlen( $str ); } function substr8( $string, $start, $length=false ) { if ( $length === false ) { $length = $this->strlen8( $string ) - $start; } if ( $this->_mb_substr ) { return mb_substr( $string, $start, $length, "8bit" ); } return substr( $string, $start, $length ); } } class JsonRegex { public $pattern; public function __construct($pattern) { $this->pattern = $pattern; } public function __toString() { return $this->getPattern(); } } class JsonException extends Exception {}
class JsonResponse extends Response { public function renderHeaders() { $this->headers['Content-type'] = 'application/json'; $this->headers['Cache-Control'] = 'no-cache, must-revalidate'; $this->headers['Expires'] = 'Wed, 04 Aug 1982 00:00:00 GMT'; parent::renderHeaders(); } public function renderContent() { print(json_encode($this->data)); } }
class RedirectResponse extends Response { public function __construct($url, $status = 301) { parent::__construct($url, $status); } public function render() { header(sprintf('Location: %s', $this->data), $this->status); } }
class Response { protected static $statusCodes = array( 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 204 => 'No Content', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 400 => 'Bad Request', 401 => 'Unauthorized', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 412 => 'Precondition Failed', 415 => 'Unsupported Media Type', 417 => 'Expectation Failed', 500 => 'Internal Server Error', 501 => 'Not Implemented', ); protected $data = ''; protected $status = 200; protected $headers = array(); public function __construct($data, $status = 200, $headers = array()) { $this->data = $data; $this->status = $status; $this->headers = $headers; } public function render() { $this->renderHeaders(); $this->renderContent(); } public static function getStatusText($status) { if (isset(self::$statusCodes[$status])) { return self::$statusCodes[$status]; } } protected function renderHeaders() { header(sprintf('HTTP/1.0 %s %s', $this->status, self::$statusCodes[$this->status])); foreach ($this->headers as $name => $val) { header(sprintf('%s: %s', $name, $val)); } } protected function renderContent() { print((string) $this->data); } }


$app = new App;
$app->run();

__halt_compiler();

@@index.html.mustache caa75029a0fcc9e6a65517129d3ff6e6
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Genghis</title> <link rel="shortcut icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADL0lEQVRYw8VW r1fbQBy/P2X8SNpcAsgZYHJ7o0zyUhRvRS6ojap1ap1hGFaTIgCzGmqKADME NTU1MRVFVGwiIqIVERWfJYHA5Zq7lO5ty3ufd9f7fu/z+eT6vcuRlZUV/E+Q 5eXlqBO2syCeGxM+lY9kEf9tkH8hkmlgaWlpIpA2xsfCNg2y+fxcIiOb1gAv mMXJ5hJRggiGTqHl81BVBYqiBq0atblgjOo6jCjPANU0aAGobkg5iUzsQdQw AmENytwrfLTP0XH6cL0RRiMPrutF7c++g9bpAbbmVWjURKvTRbfbRau2J+Um sQArxifpmor3p214mObx0G514N//8ntndy9wD15DaCCeoGs5HHXcVKmxP4IX rIQ/FtsZOccJAzyILGgYFB/O+7wsbq8bKG+/SORulw/R7rlM1owG9LCQ7lu6 8Q3Jdx+hWV6PYizYeXvHnYkVEOVGBkRkelDt1XZSvnO4mUqSnKfjy/Wvx5Xg amBiBXgDjzDRGTLq7jXeCAQnUcRxo4lms4lauSjJ0yUGNuuJqu+d7UqJZgWh lIJF9N+H/QJrYIyrT5tCkrt5FPngMEoDpfoEf8LAgyjTL1QuGAMe6gUdvFl2 jrb6Dke2DZvHqY3PbwvTG3iAeRbUfPwM0ShpUgNm3RGeBWEhiuYSUYAW64wB wKmb0dkene9BPG5jFGtd8dnYrYkNsIQsKN1Hb8zuZxt5jQqJKF3HrmXBsnZh mlUMBOZ5EFEgRKPnMzRD2FtKYEKcHyP32k7soPbhYw3wLyw1sFa5Sq6le4Od BSX49ErE1UUcdRl534El0YgMhFslLRiON2+5L43n4GDnOeYXFqEEd4FcLgdV Ce8Gi5h79hL2j0Ei3amXpKtFYvF4z/J9TQtqwZ8srKHbx81lC99PTvD9/DK6 I4w4r+PBBVYF/AkDWdDW9tEe+HjK4zlNbKRxTWsgXFp+zPragDPwIP78j+EN HDSqJWTxhm0Iwg+IxJNYhVmyUKlUUK1Wo9YqmdFyp4nIuEiWw2mQZVqWS7KI ZzU1LRdR462k3l2x475obNa4KCZdgTgpC7yBLM6EARGpEhwu0xr4E/wGQ3S1 MEjLIesAAAAASUVORK5CYII="> <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Rokkitt:400,700"> <link type="text/css" rel="stylesheet" href="{{ base_url }}/assets/style.css"> <script type="text/template" id="alert-template"><div class="alert-message<% if (block) { %> block-message<% } %> <%= level %>"> <a class="close" href="#">×</a> <% if (block) { %> <p><%= msg %></p> <% } else { %> <%= msg %> <% } %> </div></script> <script type="text/template" id="collection-row-template"><td> <a href="<%= obj.url() %>" class="name value"><%= obj.get('name') %></a> </td> <td> <span class="documents value"><%= obj.get('count') %></span> </td> <td> <span class="indexes has-details value"><%= obj.get('indexes').length %></span> <div class="details" title="<%= obj.get('indexes').length %> Index<% if (obj.get('indexes').length != 1) { %>es<% } %>"> <% if (obj.get('indexes').length> 0) { %> <ul class="index-details"> <% _.each(obj.get('indexes'), function(index) { %> <li><%= Genghis.Util.formatJSON(index.key) %></li> <% }); %> </ul> <% } else { %> <em>None.</em> <% } %> </div> </td> <td class="action-column"> <button class="btn small danger destroy">Remove</button> </td></script> <script type="text/template" id="collections-template"><header><h2>Collections</h2></header> <div class="content"> <table class="zebra-striped bordered-table"> <thead> <tr> <th>name</th> <th>documents</th> <th>indexes</th> <th></th> </tr> </thead> <tbody> </tbody> </table> </div> <div class="add-form inactive"> <input class="name span4" type="text" size="30"> <button class="show btn">Add collection</button> <button class="add btn primary">Add collection</button> <button class="cancel btn">Cancel</button> </div></script> <script type="text/template" id="database-row-template"><td> <a href="<%= obj.url() %>" class="name value"><%= obj.get('name') %></a> </td> <td> <span class="collections has-details value"><%= obj.get('count') %></span> <div class="details" title="<%= obj.get('count') %> Collection<% if (obj.get('count') != 1) { %>s<% } %>"> <% if (obj.get('count')> 0) { %> <ul> <% _.each(_.first(obj.get('collections'), 15), function(collection) { %> <li><%= collection %></li> <% }); %> <% if (obj.get('count')> 15) { %> <li>&hellip;</li> <% } %> </ul> <% } else { %> <em>None.</em> <% } %> </div> </td> <td> <span class="size value"><%= Genghis.Util.humanizeSize(obj.get('size')) %></span> </td> <td class="action-column"> <button class="btn small danger destroy">Remove</button> </td></script> <script type="text/template" id="databases-template"><header><h2>Databases</h2></header> <div class="content"> <table class="zebra-striped bordered-table"> <thead> <tr> <th>name</th> <th>collections</th> <th>size</th> <th></th> </tr> </thead> <tbody> </tbody> </table> </div> <div class="add-form inactive"> <input class="name span4" type="text" size="30"> <button class="show btn">Add database</button> <button class="add btn primary">Add database</button> <button class="cancel btn">Cancel</button> </div></script> <script type="text/template" id="document-view-template"><div class="well"> <div class="document-actions"> <button class="save btn small primary">Save</button> <button class="cancel btn small">Cancel</button> <button class="edit btn small">Edit</button> <button class="destroy btn small danger">Delete</button> </div> <h3> <a class="id" href="<%= obj.url() %>"><%= obj.id %></a> </h3> <div class="document"><%= obj.prettyPrint() %></div> </div></script> <script type="text/template" id="document-template"><header><h2><%= model.id %></h2></header> <div class="content document-wrapper"></div></script> <script type="text/template" id="documents-template"><header><h2>Documents</h2></header> <div class="controls"> <button class="add-document btn large">Add document</button> <div class="pagination-wrapper top"></div> </div> <div class="content document-wrapper"></div> <div class="controls"> <button class="add-document btn large">Add document</button> <div class="pagination-wrapper top"></div> </div></script> <script type="text/template" id="nav-section-menu-template"><% _.each(collection.toArray().slice(0, 10), function(m) { %> <li<% if (m.id == model.id) { %> class="active"<% } %>><a href="<%= m.url() %>"> <%= m.id %> <span><%= Genghis.Util.humanizeCount(m.get('count') || 0) %></span> </a></li> <% }); %> <% if (collection.size()> 10) { %> <li class="divider"></li> <li><a href="<%= collection.url %>">More &raquo;</a></li> <% } %></script> <script type="text/template" id="nav-section-template"><a href="#" class="dropdown-toggle"><%= model.id %></a> <ul class="menu-dropdown"></ul></script> <script type="text/template" id="nav-template"><ul class="nav"> <li class="dropdown server"></li> <li class="dropdown database"></li> <li class="dropdown collection"></li> </ul> <form><input id="navbar-query" name="q" type="text" value="<%= Genghis.Util.escape(query) %>" /></form></script> <script type="text/template" id="new-document-template"><div id="new-document" class="modal editor"> <div class="modal-header"> <a href="#" class="close">×</a> <h3>New Document</h3> </div> <div class="modal-body"> <div class="wrapper"> <div id="editor-new" class="genghis-document-editor"></div> </div> </div> <div class="modal-footer"> <button class="btn primary save">Save</button> <button class="btn secondary cancel">Cancel</button> </div> </div></script> <script type="text/template" id="pagination-template"><div class="pagination"> <ul> <li class="prev<% if (page == 1) print(' disabled'); %>"> <a<% if (page != 1) { %> href="<%= url(prev) %>"<% } %>>&larr; Previous</a> </li> <% if (start> 1) { %> <li class="first"><a href="<%= url(1) %>">1</a></li> <li class="disabled"><a>&hellip;</a></li> <% } %> <% for (var i = start; i <= end; i++) { %> <li<% if (page == i) print(' class="active"'); %>><a href="<%= url(i) %>"><%= i %></a></li> <% } %> <% if (end < pages) { %> <li class="disabled"><a>&hellip;</a></li> <li class="last"><a href="<%= url(pages) %>"><%= pages %></a></li> <% } %> <li class="next<% if (page == pages) print(' disabled'); %>"> <a<% if (page != pages) { %> href="<%= url(next) %>"<% } %>>Next &rarr;</a> </li> </ul> </div></script> <script type="text/template" id="popover-template"><div class="popover below"> <div class="arrow"></div> <div class="inner"> <h3 class="title"><%= title %></h3> <div class="content"><%= content %></div> </div> </div></script> <script type="text/template" id="server-row-template"><% if (obj.get('error')) { %> <td> <span class="value"><%= obj.get('name') %></span> <span class="label important" title="<%= Genghis.Util.escape(obj.get('error')) %>">Error</span> </td> <td></td> <td></td> <% } else { %> <td> <a href="<%= obj.url() %>" class="name value"><%= obj.get('name') %></a> </td> <td> <span class="databases has-details value"><%= obj.get('count') %></span> <div class="details" title="<%= obj.get('count') %> Database<% if (obj.get('count') != 1) { %>s<% } %>"> <% if (obj.get('count')> 0) { %> <ul> <% _.each(_.first(obj.get('databases'), 15), function(database) { %> <li><%= database %></li> <% }); %> <% if (obj.get('count')> 15) { %> <li>&hellip;</li> <% } %> </ul> <% } else { %> <em>None.</em> <% } %> </div> </td> <td> <span class="size value"><%= Genghis.Util.humanizeSize(obj.get('size')) %></span> </td> <% } %> <td class="action-column"> <button class="btn small danger destroy">Remove</button> </td></script> <script type="text/template" id="servers-template"><header><h2>Servers</h2></header> <div class="content"> <table class="zebra-striped bordered-table"> <thead> <tr> <th>name</th> <th>databases</th> <th>size</th> <th></th> </tr> </thead> <tbody> </tbody> </table> </div> <div class="add-form inactive"> <span class="input-append"> <input class="name span4" type="text" size="30"> <span class="add-on help" title="user:hide@address.com:27017">?</span> </span> <button class="show btn">Add server</button> <button class="add btn primary">Add server</button> <button class="cancel btn">Cancel</button> </div></script> <script type="text/javascript" src="{{ base_url }}/assets/script.js"></script> <script type="text/javascript">jQuery(function() { Genghis.boot('{{ base_url }}'); });</script> </head> <body> <header class="topbar"> <div class="topbar-inner"> <div class="container fixed"> <h3><a class="magic logo" href="{{ base_url }}">Genghis</a></h3> <nav></nav> </div> </div> </header> <noscript><h1>You won&#146;t get far in life without JavaScript&hellip;</h1></noscript> <section id="genghis" class="container fluid"> <aside id="alerts"></aside> <section id="servers"></section> <section id="databases"></section> <section id="collections"></section> <section id="documents"></section> <section id="document"><header></header></section> <section id="error"></section> </section> <footer class="container"><p>Genghis, by <a href="http://justinhileman.info">Justin Hileman</a>.</p></footer> </body> </html>

@@error.html.mustache c6620e6f79543e4134d2576d29f4be21
<!DOCTYPE html> <html> <head> <title>Genghis &mdash; {{ status }}: {{ message }}</title> <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Rokkitt:400,700"> <link type="text/css" rel="stylesheet" href="{{ base_url }}/assets/style.css"> </head> <body> <div class="topbar"> <div class="fill"> <div class="container fixed"> <h3><a class="magic logo" href="{{ base_url }}">Genghis</a></h3> <nav></nav> </div> </div> </div> <section id="genghis" class="container fluid"> <section id="error" style="display:block;"> <header><h2>{{ status }}: {{ message }}</h2></header> <div class="content"> <p> If you think you've reached this message in error, please press <strong>0</strong> to speak with an operator. Otherwise, hang up and try again. </p> </div> </section> </section> <footer class="container"><p>Genghis, by <a href="http://justinhileman.info">Justin Hileman</a>.</p></footer> </body> </html>

@@style.css ec79253e7d3c053c6e8864cc9348cf27
/**
 * Genghis v1.1.0
 *
 * The single-file MongoDB admin app
 *
 * http://genghisapp.com
 *
 * @author Justin Hileman <hide@address.com>
 */
html,body{margin:0;padding:0}h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,cite,code,del,dfn,em,img,q,s,samp,small,strike,strong,sub,sup,tt,var,dd,dl,dt,li,ol,ul,fieldset,form,label,legend,button,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:400;font-style:normal;font-size:100%;line-height:1;font-family:inherit}table{border-collapse:collapse;border-spacing:0}ol,ul{list-style:none}q:before,q:after,blockquote:before,blockquote:after{content:""}html{overflow-y:scroll;font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted}a:hover,a:active{outline:0}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0;-ms-interpolation-mode:bicubic}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}body{background-color:#fff;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;line-height:18px;color:#404040}.container{width:940px;margin-left:auto;margin-right:auto;zoom:1}.container:before,.container:after{display:table;content:"";zoom:1}.container:after{clear:both}.container-fluid{position:relative;min-width:940px;padding-left:20px;padding-right:20px;zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:"";zoom:1}.container-fluid:after{clear:both}.container-fluid > .sidebar{position:absolute;top:0;left:20px;width:220px}.container-fluid > .content{margin-left:240px}a{color:#0069d6;text-decoration:none;line-height:inherit;font-weight:inherit}a:hover{color:#00438a;text-decoration:underline}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.row{zoom:1;margin-left:-20px}.row:before,.row:after{display:table;content:"";zoom:1}.row:after{clear:both}.row > [class*="span"]{display:inline;float:left;margin-left:20px}.span1{width:40px}.span2{width:100px}.span3{width:160px}.span4{width:220px}.span5{width:280px}.span6{width:340px}.span7{width:400px}.span8{width:460px}.span9{width:520px}.span10{width:580px}.span11{width:640px}.span12{width:700px}.span13{width:760px}.span14{width:820px}.span15{width:880px}.span16{width:940px}.span17{width:1000px}.span18{width:1060px}.span19{width:1120px}.span20{width:1180px}.span21{width:1240px}.span22{width:1300px}.span23{width:1360px}.span24{width:1420px}.row > .offset1{margin-left:80px}.row > .offset2{margin-left:140px}.row > .offset3{margin-left:200px}.row > .offset4{margin-left:260px}.row > .offset5{margin-left:320px}.row > .offset6{margin-left:380px}.row > .offset7{margin-left:440px}.row > .offset8{margin-left:500px}.row > .offset9{margin-left:560px}.row > .offset10{margin-left:620px}.row > .offset11{margin-left:680px}.row > .offset12{margin-left:740px}.span-one-third{width:300px}.span-two-thirds{width:620px}.offset-one-third{margin-left:340px}.offset-two-thirds{margin-left:660px}p{font-size:13px;font-weight:400;line-height:18px;margin-bottom:9px}p small{font-size:11px;color:#bfbfbf}h1,h2,h3,h4,h5,h6{font-weight:700;color:#404040}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#bfbfbf}h1{margin-bottom:18px;font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}h2 small{font-size:14px}h3,h4,h5,h6{line-height:36px}h3{font-size:18px}h3 small{font-size:14px}h4{font-size:16px}h4 small{font-size:12px}h5{font-size:14px}h6{font-size:13px;color:#bfbfbf;text-transform:uppercase}ul,ol{margin:0 0 18px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}ul{list-style:disc}ol{list-style:decimal}li{line-height:18px;color:#808080}ul.unstyled{list-style:none;margin-left:0}dl{margin-bottom:18px}dl dt,dl dd{line-height:18px}dl dt{font-weight:700}dl dd{margin-left:9px}hr{margin:20px 0 19px;border:0;border-bottom:1px solid #eee}strong{font-style:inherit;font-weight:700}em{font-style:italic;font-weight:inherit;line-height:inherit}.muted{color:#bfbfbf}blockquote{margin-bottom:18px;border-left:5px solid #eee;padding-left:15px}blockquote p{font-size:14px;font-weight:300;line-height:18px;margin-bottom:0}blockquote small{display:block;font-size:12px;font-weight:300;line-height:18px;color:#bfbfbf}blockquote small:before{content:'\2014 \00A0'}address{display:block;line-height:18px;margin-bottom:18px}code,pre{padding:0 3px 2px;font-family:Monaco,Andale Mono,Courier New,monospace;font-size:12px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{background-color:#fee9cc;color:rgba(0,0,0,0.75);padding:1px 3px}pre{background-color:#f5f5f5;display:block;padding:8.5px;margin:0 0 18px;line-height:18px;font-size:12px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;white-space:pre;white-space:pre-wrap;word-wrap:break-word}form{margin-bottom:18px}fieldset{margin-bottom:18px;padding-top:18px}fieldset legend{display:block;padding-left:150px;font-size:19.5px;line-height:1;color:#404040;*padding:0 0 5px 145px;*line-height:1.5}form .clearfix{margin-bottom:18px;zoom:1}form .clearfix:before,form .clearfix:after{display:table;content:"";zoom:1}form .clearfix:after{clear:both}label,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:400;line-height:normal}label{padding-top:6px;font-size:13px;line-height:18px;float:left;width:130px;text-align:right;color:#404040}form .input{margin-left:150px}input[type=checkbox],input[type=radio]{cursor:pointer}input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;font-size:13px;line-height:18px;color:#808080;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}select{padding:initial}input[type=checkbox],input[type=radio]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:none}input[type=file]{background-color:#fff;padding:initial;border:initial;line-height:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}input[type=button],input[type=reset],input[type=submit]{width:auto;height:auto}select,input[type=file]{height:27px;*height:auto;line-height:27px;*margin-top:4px}select[multiple]{height:inherit;background-color:#fff}textarea{height:auto}.uneditable-input{background-color:#fff;display:block;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);cursor:not-allowed}:-moz-placeholder{color:#bfbfbf}::-webkit-input-placeholder{color:#bfbfbf}input,textarea{-webkit-transform-style:preserve-3d;-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.1)}input:focus,textarea:focus{outline:0;border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6)}input[type=file]:focus,input[type=checkbox]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:1px dotted #666}form .clearfix.error > label,form .clearfix.error .help-block,form .clearfix.error .help-inline{color:#b94a48}form .clearfix.error input,form .clearfix.error textarea{color:#b94a48;border-color:#ee5f5b}form .clearfix.error input:focus,form .clearfix.error textarea:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}form .clearfix.error .input-prepend .add-on,form .clearfix.error .input-append .add-on{color:#b94a48;background-color:#fce6e6;border-color:#b94a48}form .clearfix.warning > label,form .clearfix.warning .help-block,form .clearfix.warning .help-inline{color:#c09853}form .clearfix.warning input,form .clearfix.warning textarea{color:#c09853;border-color:#ccae64}form .clearfix.warning input:focus,form .clearfix.warning textarea:focus{border-color:#be9a3f;-webkit-box-shadow:0 0 6px #e5d6b1;-moz-box-shadow:0 0 6px #e5d6b1;box-shadow:0 0 6px #e5d6b1}form .clearfix.warning .input-prepend .add-on,form .clearfix.warning .input-append .add-on{color:#c09853;background-color:#d2b877;border-color:#c09853}form .clearfix.success > label,form .clearfix.success .help-block,form .clearfix.success .help-inline{color:#468847}form .clearfix.success input,form .clearfix.success textarea{color:#468847;border-color:#57a957}form .clearfix.success input:focus,form .clearfix.success textarea:focus{border-color:#458845;-webkit-box-shadow:0 0 6px #9acc9a;-moz-box-shadow:0 0 6px #9acc9a;box-shadow:0 0 6px #9acc9a}form .clearfix.success .input-prepend .add-on,form .clearfix.success .input-append .add-on{color:#468847;background-color:#bcddbc;border-color:#468847}.input-mini,input.mini,textarea.mini,select.mini{width:60px}.input-small,input.small,textarea.small,select.small{width:90px}.input-medium,input.medium,textarea.medium,select.medium{width:150px}.input-large,input.large,textarea.large,select.large{width:210px}.input-xlarge,input.xlarge,textarea.xlarge,select.xlarge{width:270px}.input-xxlarge,input.xxlarge,textarea.xxlarge,select.xxlarge{width:530px}textarea.xxlarge{overflow-y:auto}input.span1,textarea.span1{display:inline-block;float:none;width:30px;margin-left:0}input.span2,textarea.span2{display:inline-block;float:none;width:90px;margin-left:0}input.span3,textarea.span3{display:inline-block;float:none;width:150px;margin-left:0}input.span4,textarea.span4{display:inline-block;float:none;width:210px;margin-left:0}input.span5,textarea.span5{display:inline-block;float:none;width:270px;margin-left:0}input.span6,textarea.span6{display:inline-block;float:none;width:330px;margin-left:0}input.span7,textarea.span7{display:inline-block;float:none;width:390px;margin-left:0}input.span8,textarea.span8{display:inline-block;float:none;width:450px;margin-left:0}input.span9,textarea.span9{display:inline-block;float:none;width:510px;margin-left:0}input.span10,textarea.span10{display:inline-block;float:none;width:570px;margin-left:0}input.span11,textarea.span11{display:inline-block;float:none;width:630px;margin-left:0}input.span12,textarea.span12{display:inline-block;float:none;width:690px;margin-left:0}input.span13,textarea.span13{display:inline-block;float:none;width:750px;margin-left:0}input.span14,textarea.span14{display:inline-block;float:none;width:810px;margin-left:0}input.span15,textarea.span15{display:inline-block;float:none;width:870px;margin-left:0}input.span16,textarea.span16{display:inline-block;float:none;width:930px;margin-left:0}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed}.actions{background:#f5f5f5;margin-top:18px;margin-bottom:18px;padding:17px 20px 18px 150px;border-top:1px solid #ddd;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.actions .secondary-action{float:right}.actions .secondary-action a{line-height:30px}.actions .secondary-action a:hover{text-decoration:underline}.help-inline,.help-block{font-size:13px;line-height:18px;color:#bfbfbf}.help-inline{padding-left:5px;*position:relative;*top:-5px}.help-block{display:block;max-width:600px}.inline-inputs{color:#808080}.inline-inputs span{padding:0 2px 0 1px}.input-prepend input,.input-append input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend .add-on,.input-append .add-on{position:relative;background:#f5f5f5;border:1px solid #ccc;z-index:2;float:left;display:block;width:auto;min-width:16px;height:18px;padding:4px 4px 4px 5px;margin-right:-1px;font-weight:400;line-height:18px;color:#bfbfbf;text-align:center;text-shadow:0 1px 0#fff;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend .active,.input-append .active{background:#a9dba9;border-color:#46a546}.input-prepend .add-on{*margin-top:1px}.input-append input{float:left;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .add-on{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;margin-right:0;margin-left:-1px}.inputs-list{margin:0 0 5px;width:100%}.inputs-list li{display:block;padding:0;width:100%}.inputs-list label{display:block;float:none;width:auto;padding:0;margin-left:20px;line-height:18px;text-align:left;white-space:normal}.inputs-list label strong{color:#808080}.inputs-list label small{font-size:11px;font-weight:400}.inputs-list .inputs-list{margin-left:25px;margin-bottom:10px;padding-top:0}.inputs-list:first-child{padding-top:6px}.inputs-list li + li{padding-top:2px}.inputs-list input[type=radio],.inputs-list input[type=checkbox]{margin-bottom:0;margin-left:-20px;float:left}.form-stacked{padding-left:20px}.form-stacked fieldset{padding-top:9px}.form-stacked legend{padding-left:0}.form-stacked label{display:block;float:none;width:auto;font-weight:700;text-align:left;line-height:20px;padding-top:0}.form-stacked .clearfix{margin-bottom:9px}.form-stacked .clearfix div.input{margin-left:0}.form-stacked .inputs-list{margin-bottom:0}.form-stacked .inputs-list li{padding-top:0}.form-stacked .inputs-list li label{font-weight:400;padding-top:0}.form-stacked div.clearfix.error{padding-top:10px;padding-bottom:10px;padding-left:10px;margin-top:0;margin-left:-10px}.form-stacked .actions{margin-left:-20px;padding-left:20px}table{width:100%;margin-bottom:18px;padding:0;font-size:13px;border-collapse:collapse}table th,table td{padding:10px 10px 9px;line-height:18px;text-align:left}table th{padding-top:9px;font-weight:700;vertical-align:middle}table td{vertical-align:top;border-top:1px solid #ddd}table tbody th{border-top:1px solid #ddd;vertical-align:top}.condensed-table th,.condensed-table td{padding:5px 5px 4px}.bordered-table{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.bordered-table th + th,.bordered-table td + td,.bordered-table th + td{border-left:1px solid #ddd}.bordered-table thead tr:first-child th:first-child,.bordered-table tbody tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0}.bordered-table thead tr:first-child th:last-child,.bordered-table tbody tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0}.bordered-table tbody tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px}.bordered-table tbody tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0}table .span1{width:20px}table .span2{width:60px}table .span3{width:100px}table .span4{width:140px}table .span5{width:180px}table .span6{width:220px}table .span7{width:260px}table .span8{width:300px}table .span9{width:340px}table .span10{width:380px}table .span11{width:420px}table .span12{width:460px}table .span13{width:500px}table .span14{width:540px}table .span15{width:580px}table .span16{width:620px}.zebra-striped tbody tr:nth-child(odd) td,.zebra-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.zebra-striped tbody tr:hover td,.zebra-striped tbody tr:hover th{background-color:#f5f5f5}table .header{cursor:pointer}table .header:after{content:"";float:right;margin-top:7px;border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:hidden}table .headerSortUp,table .headerSortDown{background-color:rgba(141,192,219,0.25);text-shadow:0 1px 1px rgba(255,255,255,0.75)}table .header:hover:after{visibility:visible}table .headerSortDown:after,table .headerSortDown:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}table .headerSortUp:after{border-bottom:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:.6;-moz-opacity:.6;opacity:.6}table .blue{color:#049cdb;border-bottom-color:#049cdb}table .headerSortUp.blue,table .headerSortDown.blue{background-color:#ade6fe}table .green{color:#46a546;border-bottom-color:#46a546}table .headerSortUp.green,table .headerSortDown.green{background-color:#cdeacd}table .red{color:#9d261d;border-bottom-color:#9d261d}table .headerSortUp.red,table .headerSortDown.red{background-color:#f4c8c5}table .yellow{color:#ffc40d;border-bottom-color:#ffc40d}table .headerSortUp.yellow,table .headerSortDown.yellow{background-color:#fff6d9}table .orange{color:#f89406;border-bottom-color:#f89406}table .headerSortUp.orange,table .headerSortDown.orange{background-color:#fee9cc}table .purple{color:#7a43b6;border-bottom-color:#7a43b6}table .headerSortUp.purple,table .headerSortDown.purple{background-color:#e2d5f0}.topbar{height:40px;position:fixed;top:0;left:0;right:0;z-index:10000;overflow:visible}.topbar a{color:#bfbfbf;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.topbar h3 a:hover,.topbar .brand:hover,.topbar ul .active > a{background-color:#333;background-color:rgba(255,255,255,0.05);color:#fff;text-decoration:none}.topbar h3{position:relative}.topbar h3 a,.topbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;color:#fff;font-size:20px;font-weight:200;line-height:1}.topbar p{margin:0;line-height:40px}.topbar p a:hover{background-color:transparent;color:#fff}.topbar form{float:left;margin:5px 0 0 0;position:relative;filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1}.topbar form.pull-right{float:right}.topbar input{background-color:#444;background-color:rgba(255,255,255,0.3);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:normal;font-weight:13px;line-height:1;padding:4px 9px;color:#fff;color:rgba(255,255,255,0.75);border:1px solid #111;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.25);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.25);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.25);-webkit-transform-style:preserve-3d;-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.topbar input:-moz-placeholder{color:#e6e6e6}.topbar input::-webkit-input-placeholder{color:#e6e6e6}.topbar input:hover{background-color:#bfbfbf;background-color:rgba(255,255,255,0.5);color:#fff}.topbar input:focus,.topbar input.focused{outline:0;background-color:#fff;color:#404040;text-shadow:0 1px 0#fff;border:0;padding:5px 10px;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.topbar-inner,.topbar .fill{background-color:#222;background-color:#222;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#333),to(#222));background-image:-moz-linear-gradient(top,#333,#222);background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#333),color-stop(100%,#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1)}.topbar div > ul,.nav{display:block;float:left;margin:0 10px 0 0;position:relative;left:0}.topbar div > ul > li,.nav > li{display:block;float:left}.topbar div > ul a,.nav a{display:block;float:none;padding:10px 10px 11px;line-height:19px;text-decoration:none}.topbar div > ul a:hover,.nav a:hover{color:#fff;text-decoration:none}.topbar div > ul .active > a,.nav .active > a{background-color:#222;background-color:rgba(0,0,0,0.5)}.topbar div > ul.secondary-nav,.nav.secondary-nav{float:right;margin-left:10px;margin-right:0}.topbar div > ul.secondary-nav .menu-dropdown,.nav.secondary-nav .menu-dropdown,.topbar div > ul.secondary-nav .dropdown-menu,.nav.secondary-nav .dropdown-menu{right:0;border:0}.topbar div > ul a.menu:hover,.nav a.menu:hover,.topbar div > ul li.open .menu,.nav li.open .menu,.topbar div > ul .dropdown-toggle:hover,.nav .dropdown-toggle:hover,.topbar div > ul .dropdown.open .dropdown-toggle,.nav .dropdown.open .dropdown-toggle{background:#444;background:rgba(255,255,255,0.05)}.topbar div > ul .menu-dropdown,.nav .menu-dropdown,.topbar div > ul .dropdown-menu,.nav .dropdown-menu{background-color:#333}.topbar div > ul .menu-dropdown a.menu,.nav .menu-dropdown a.menu,.topbar div > ul .dropdown-menu a.menu,.nav .dropdown-menu a.menu,.topbar div > ul .menu-dropdown .dropdown-toggle,.nav .menu-dropdown .dropdown-toggle,.topbar div > ul .dropdown-menu .dropdown-toggle,.nav .dropdown-menu .dropdown-toggle{color:#fff}.topbar div > ul .menu-dropdown a.menu.open,.nav .menu-dropdown a.menu.open,.topbar div > ul .dropdown-menu a.menu.open,.nav .dropdown-menu a.menu.open,.topbar div > ul .menu-dropdown .dropdown-toggle.open,.nav .menu-dropdown .dropdown-toggle.open,.topbar div > ul .dropdown-menu .dropdown-toggle.open,.nav .dropdown-menu .dropdown-toggle.open{background:#444;background:rgba(255,255,255,0.05)}.topbar div > ul .menu-dropdown li a,.nav .menu-dropdown li a,.topbar div > ul .dropdown-menu li a,.nav .dropdown-menu li a{color:#999;text-shadow:0 1px 0 rgba(0,0,0,0.5)}.topbar div > ul .menu-dropdown li a:hover,.nav .menu-dropdown li a:hover,.topbar div > ul .dropdown-menu li a:hover,.nav .dropdown-menu li a:hover{background-color:#191919;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#292929),to(#191919));background-image:-moz-linear-gradient(top,#292929,#191919);background-image:-ms-linear-gradient(top,#292929,#191919);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#292929),color-stop(100%,#191919));background-image:-webkit-linear-gradient(top,#292929,#191919);background-image:-o-linear-gradient(top,#292929,#191919);background-image:linear-gradient(top,#292929,#191919);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929',endColorstr='#191919',GradientType=0);color:#fff}.topbar div > ul .menu-dropdown .active a,.nav .menu-dropdown .active a,.topbar div > ul .dropdown-menu .active a,.nav .dropdown-menu .active a{color:#fff}.topbar div > ul .menu-dropdown .divider,.nav .menu-dropdown .divider,.topbar div > ul .dropdown-menu .divider,.nav .dropdown-menu .divider{background-color:#222;border-color:#444}.topbar ul .menu-dropdown li a,.topbar ul .dropdown-menu li a{padding:4px 15px}li.menu,.dropdown{position:relative}a.menu:after,.dropdown-toggle:after{width:0;height:0;display:inline-block;content:"&darr;";text-indent:-99999px;vertical-align:top;margin-top:8px;margin-left:4px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid#fff;filter:alpha(opacity=50);-khtml-opacity:.5;-moz-opacity:.5;opacity:.5}.menu-dropdown,.dropdown-menu{background-color:#fff;float:left;display:none;position:absolute;top:40px;z-index:900;min-width:160px;max-width:220px;_width:160px;margin-left:0;margin-right:0;padding:6px 0;zoom:1;border-color:#999;border-color:rgba(0,0,0,0.2);border-style:solid;border-width:0 1px 1px;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:0 2px 4px rgba(0,0,0,0.2);-moz-box-shadow:0 2px 4px rgba(0,0,0,0.2);box-shadow:0 2px 4px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.menu-dropdown li,.dropdown-menu li{float:none;display:block;background-color:none}.menu-dropdown .divider,.dropdown-menu .divider{height:1px;margin:5px 0;overflow:hidden;background-color:#eee;border-bottom:1px solid#fff}.topbar .dropdown-menu a,.dropdown-menu a{display:block;padding:4px 15px;clear:both;font-weight:400;line-height:18px;color:#808080;text-shadow:0 1px 0#fff}.topbar .dropdown-menu a:hover,.dropdown-menu a:hover,.topbar .dropdown-menu a.hover,.dropdown-menu a.hover{background-color:#ddd;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#eee),to(#ddd));background-image:-moz-linear-gradient(top,#eee,#ddd);background-image:-ms-linear-gradient(top,#eee,#ddd);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#eee),color-stop(100%,#ddd));background-image:-webkit-linear-gradient(top,#eee,#ddd);background-image:-o-linear-gradient(top,#eee,#ddd);background-image:linear-gradient(top,#eee,#ddd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee',endColorstr='#dddddd',GradientType=0);color:#404040;text-decoration:none;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.025),inset 0 -1px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.025),inset 0 -1px rgba(0,0,0,0.025);box-shadow:inset 0 1px 0 rgba(0,0,0,0.025),inset 0 -1px rgba(0,0,0,0.025)}.open .menu,.dropdown.open .menu,.open .dropdown-toggle,.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,0.3)}.open .menu-dropdown,.dropdown.open .menu-dropdown,.open .dropdown-menu,.dropdown.open .dropdown-menu{display:block}.tabs,.pills{margin:0 0 18px;padding:0;list-style:none;zoom:1}.tabs:before,.pills:before,.tabs:after,.pills:after{display:table;content:"";zoom:1}.tabs:after,.pills:after{clear:both}.tabs > li,.pills > li{float:left}.tabs > li > a,.pills > li > a{display:block}.tabs{border-color:#ddd;border-style:solid;border-width:0 0 1px}.tabs > li{position:relative;margin-bottom:-1px}.tabs > li > a{padding:0 15px;margin-right:2px;line-height:34px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.tabs > li > a:hover{text-decoration:none;background-color:#eee;border-color:#eee #eee #ddd}.tabs .active > a,.tabs .active > a:hover{color:#808080;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.tabs .menu-dropdown,.tabs .dropdown-menu{top:35px;border-width:1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.tabs a.menu:after,.tabs .dropdown-toggle:after{border-top-color:#999;margin-top:15px;margin-left:5px}.tabs li.open.menu .menu,.tabs .open.dropdown .dropdown-toggle{border-color:#999}.tabs li.open a.menu:after,.tabs .dropdown.open .dropdown-toggle:after{border-top-color:#555}.pills a{margin:5px 3px 5px 0;padding:0 15px;line-height:30px;text-shadow:0 1px 1px#fff;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pills a:hover{color:#fff;text-decoration:none;text-shadow:0 1px 1px rgba(0,0,0,0.25);background-color:#00438a}.pills .active a{color:#fff;text-shadow:0 1px 1px rgba(0,0,0,0.25);background-color:#0069d6}.pills-vertical > li{float:none}.tab-content > .tab-pane,.pill-content > .pill-pane{display:none}.tab-content > .active,.pill-content > .active{display:block}.breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#f5f5f5;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#fff),to(#f5f5f5));background-image:-moz-linear-gradient(top,#fff,#f5f5f5);background-image:-ms-linear-gradient(top,#fff,#f5f5f5);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#f5f5f5));background-image:-webkit-linear-gradient(top,#fff,#f5f5f5);background-image:-o-linear-gradient(top,#fff,#f5f5f5);background-image:linear-gradient(top,#fff,#f5f5f5);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#f5f5f5',GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff}.breadcrumb li{display:inline;text-shadow:0 1px 0#fff}.breadcrumb .divider{padding:0 5px;color:#bfbfbf}.breadcrumb .active a{color:#404040}.hero-unit{background-color:#f5f5f5;margin-bottom:30px;padding:60px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px}.hero-unit p{font-size:18px;font-weight:200;line-height:27px}footer{margin-top:17px;padding-top:17px;border-top:1px solid #eee}.page-header{margin-bottom:17px;border-bottom:1px solid #ddd;-webkit-box-shadow:0 1px 0 rgba(255,255,255,0.5);-moz-box-shadow:0 1px 0 rgba(255,255,255,0.5);box-shadow:0 1px 0 rgba(255,255,255,0.5)}.page-header h1{margin-bottom:8px}.btn.danger,.alert-message.danger,.btn.danger:hover,.alert-message.danger:hover,.btn.error,.alert-message.error,.btn.error:hover,.alert-message.error:hover,.btn.success,.alert-message.success,.btn.success:hover,.alert-message.success:hover,.btn.info,.alert-message.info,.btn.info:hover,.alert-message.info:hover{color:#fff}.btn .close,.alert-message .close{font-family:Arial,sans-serif;line-height:18px}.btn.danger,.alert-message.danger,.btn.error,.alert-message.error{background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#ee5f5b),to(#c43c35));background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-ms-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ee5f5b),color-stop(100%,#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(top,#ee5f5b,#c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn.success,.alert-message.success{background-color:#57a957;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#62c462),to(#57a957));background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-ms-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#62c462),color-stop(100%,#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(top,#62c462,#57a957);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',endColorstr='#57a957',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#57a957 #57a957 #3d773d;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn.info,.alert-message.info{background-color:#339bb9;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#5bc0de),to(#339bb9));background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-ms-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#5bc0de),color-stop(100%,#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(top,#5bc0de,#339bb9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',endColorstr='#339bb9',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#339bb9 #339bb9 #22697d;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn{cursor:pointer;display:inline-block;background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),color-stop(25%,#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(#fff,#fff 25%,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#fff 25%,#e6e6e6);background-image:-ms-linear-gradient(#fff,#fff 25%,#e6e6e6);background-image:-o-linear-gradient(#fff,#fff 25%,#e6e6e6);background-image:linear-gradient(#fff,#fff 25%,#e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);padding:5px 14px 6px;text-shadow:0 1px 1px rgba(255,255,255,0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-webkit-transform-style:preserve-3d;-webkit-transition:.1s linear all;-moz-transition:.1s linear all;-ms-transition:.1s linear all;-o-transition:.1s linear all;transition:.1s linear all}.btn:hover{background-position:0 -15px;color:#333;text-decoration:none}.btn:focus{outline:1px dotted #666}.btn.primary{color:#fff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#049cdb),to(#0064cd));background-image:-moz-linear-gradient(top,#049cdb,#0064cd);background-image:-ms-linear-gradient(top,#049cdb,#0064cd);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#049cdb),color-stop(100%,#0064cd));background-image:-webkit-linear-gradient(top,#049cdb,#0064cd);background-image:-o-linear-gradient(top,#049cdb,#0064cd);background-image:linear-gradient(top,#049cdb,#0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb',endColorstr='#0064cd',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn.active,.btn:active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:.65;-moz-opacity:.65;opacity:.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn[disabled]{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:.65;-moz-opacity:.65;opacity:.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn.large{font-size:15px;line-height:normal;padding:9px 14px 9px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn.small{padding:7px 9px 7px;font-size:11px}:root .alert-message,:root .btn{border-radius:0 \0}button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0}.close{float:right;color:#000;font-size:20px;font-weight:700;line-height:13.5px;text-shadow:0 1px 0#fff;filter:alpha(opacity=25);-khtml-opacity:.25;-moz-opacity:.25;opacity:.25}.close:hover{color:#000;text-decoration:none;filter:alpha(opacity=40);-khtml-opacity:.4;-moz-opacity:.4;opacity:.4}.alert-message{position:relative;padding:7px 15px;margin-bottom:18px;color:#404040;background-color:#eedc94;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#fceec1),to(#eedc94));background-image:-moz-linear-gradient(top,#fceec1,#eedc94);background-image:-ms-linear-gradient(top,#fceec1,#eedc94);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fceec1),color-stop(100%,#eedc94));background-image:-webkit-linear-gradient(top,#fceec1,#eedc94);background-image:-o-linear-gradient(top,#fceec1,#eedc94);background-image:linear-gradient(top,#fceec1,#eedc94);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1',endColorstr='#eedc94',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#eedc94 #eedc94 #e4c652;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);text-shadow:0 1px 0 rgba(255,255,255,0.5);border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25)}.alert-message .close{margin-top:1px;*margin-top:0}.alert-message a{font-weight:700;color:#404040}.alert-message.danger p a,.alert-message.error p a,.alert-message.success p a,.alert-message.info p a{color:#fff}.alert-message h5{line-height:18px}.alert-message p{margin-bottom:0}.alert-message div{margin-top:5px;margin-bottom:2px;line-height:28px}.alert-message .btn{-webkit-box-shadow:0 1px 0 rgba(255,255,255,0.25);-moz-box-shadow:0 1px 0 rgba(255,255,255,0.25);box-shadow:0 1px 0 rgba(255,255,255,0.25)}.alert-message.block-message{background-image:none;background-color:#fdf5d9;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);padding:14px;border-color:#fceec1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.alert-message.block-message ul,.alert-message.block-message p{margin-right:30px}.alert-message.block-message ul{margin-bottom:0}.alert-message.block-message li{color:#404040}.alert-message.block-message .alert-actions{margin-top:5px}.alert-message.block-message.error,.alert-message.block-message.success,.alert-message.block-message.info{color:#404040;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.alert-message.block-message.error{background-color:#fddfde;border-color:#fbc7c6}.alert-message.block-message.success{background-color:#d1eed1;border-color:#bfe7bf}.alert-message.block-message.info{background-color:#ddf4fb;border-color:#c6edf9}.alert-message.block-message.danger p a,.alert-message.block-message.error p a,.alert-message.block-message.success p a,.alert-message.block-message.info p a{color:#404040}.pagination{height:36px;margin:18px 0}.pagination ul{float:left;margin:0;border:1px solid #ddd;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination li{display:inline}.pagination a{float:left;padding:0 14px;line-height:34px;border-right:1px solid;border-right-color:#ddd;border-right-color:rgba(0,0,0,0.15);*border-right-color:#ddd;text-decoration:none}.pagination a:hover,.pagination .active a{background-color:#c7eefe}.pagination .disabled a,.pagination .disabled a:hover{background-color:transparent;color:#bfbfbf}.pagination .next a{border:0}.well{background-color:#f5f5f5;margin-bottom:20px;padding:19px;min-height:20px;border:1px solid #eee;border:1px solid rgba(0,0,0,0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.modal-backdrop{background-color:#000;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{filter:alpha(opacity=80);-khtml-opacity:.8;-moz-opacity:.8;opacity:.8}.modal{position:fixed;top:50%;left:50%;z-index:11000;width:560px;margin:-250px 0 0 -280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal .close{margin-top:7px}.modal.fade{-webkit-transform-style:preserve-3d;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-ms-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%}.modal.fade.in{top:50%}.modal-header{border-bottom:1px solid #eee;padding:5px 15px}.modal-body{padding:15px}.modal-body form{margin-bottom:0}.modal-footer{background-color:#f5f5f5;padding:14px 15px 15px;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff;zoom:1;margin-bottom:0}.modal-footer:before,.modal-footer:after{display:table;content:"";zoom:1}.modal-footer:after{clear:both}.modal-footer .btn{float:right;margin-left:5px}.modal .popover,.modal .twipsy{z-index:12000}.twipsy{display:block;position:absolute;visibility:visible;padding:5px;font-size:11px;z-index:1000;filter:alpha(opacity=80);-khtml-opacity:.8;-moz-opacity:.8;opacity:.8}.twipsy.fade.in{filter:alpha(opacity=80);-khtml-opacity:.8;-moz-opacity:.8;opacity:.8}.twipsy.above .twipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid#000}.twipsy.left .twipsy-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid#000}.twipsy.below .twipsy-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid#000}.twipsy.right .twipsy-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid#000}.twipsy-inner{padding:3px 8px;background-color:#000;color:#fff;text-align:center;max-width:200px;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.twipsy-arrow{position:absolute;width:0;height:0}.popover{position:absolute;top:0;left:0;z-index:1000;padding:5px;display:none}.popover.above .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid#000}.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid#000}.popover.below .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid#000}.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid#000}.popover .arrow{position:absolute;width:0;height:0}.popover .inner{background:#000;background:rgba(0,0,0,0.8);padding:3px;overflow:hidden;width:280px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3)}.popover .title{background-color:#f5f5f5;padding:9px 15px;line-height:1;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;border-bottom:1px solid #eee}.popover .content{background-color:#fff;padding:14px;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.popover .content p,.popover .content ul,.popover .content ol{margin-bottom:0}.fade{-webkit-transform-style:preserve-3d;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-ms-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear;opacity:0}.fade.in{opacity:1}.label{padding:1px 3px 2px;font-size:9.75px;font-weight:700;color:#fff;text-transform:uppercase;white-space:nowrap;background-color:#bfbfbf;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.label.important{background-color:#c43c35}.label.warning{background-color:#f89406}.label.success{background-color:#46a546}.label.notice{background-color:#62cffc}.media-grid{margin-left:-20px;margin-bottom:0;zoom:1}.media-grid:before,.media-grid:after{display:table;content:"";zoom:1}.media-grid:after{clear:both}.media-grid li{display:inline}.media-grid a{float:left;padding:4px;margin:0 0 18px 20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}.media-grid a img{display:block}.media-grid a:hover{border-color:#0069d6;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.container{padding-left:20px;padding-right:20px;width:auto;min-width:480px;max-width:1400px}.topbar{height:60px}.topbar h3 a{font-size:32px;padding:16px 20px 12px}.topbar ul .menu-dropdown li a{padding-right:45px;position:relative}.topbar ul .menu-dropdown li a span{padding:0 6px;display:inline-block;position:absolute;top:50%;right:10px;margin-top:-8px;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;line-height:16px;color:#666;background-color:rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.3),0 1px 0 rgba(255,255,255,0.2);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.3),0 1px 0 rgba(255,255,255,0.2);box-shadow:inset 0 1px 0 rgba(0,0,0,0.3),0 1px 0 rgba(255,255,255,0.2)}.topbar ul .menu-dropdown li a:hover span{color:#CCC}.topbar form{padding-left:20px;margin:15px 0 15px -10px}.nav .dropdown-toggle,.nav .dropdown-toggle:hover,.nav .dropdown.open .dropdown-toggle,.topbar form{background:transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAiCAQAAADMxIBtAAABLUlEQVQoz2NgYPzPxMDEgAaY/7OrsGMIruJs4GFAE2aU4vooxCCCrpb7pbiaNAMbqiBblfhsRQYpNAN4xH5qcuuju0Fwj5qfIYMYqiB7gPI+cwYjdMvk3lmLuzBwoQoKzTMqdGHQQhVkNdG55s3sw8CIKqx4wc0ojEEGVVC4wa4jgsEJzQAlk9sx/CnolilvC/BNR3eYcJrbkiy2GFTLhLM8FmUzRKKqVN0f4prBoIMSVtpm1+K4klGDUHyiY3kEgxWa5ic+8lEMgshCnIH6+7wYXFHVie8183NlkEMJe36lz3bsrgzMKFHXrDrJjEEDVbPYc205YwZOZCEmbYlnmqiOBmreJhOlyiCEKsj/X5ZDES0tJfFuE0VXx/6WT0EA1THAEP/PgR7aDNgSLQDySzbpQ/g6wQAAAABJRU5ErkJggg==') center left no-repeat}.nav > li > a{padding:20px 10px 21px 20px;height:19px;line-height:19px;white-space:nowrap;color:#EEE}.nav > li > a:hover{background-color:transparent}.nav > li > a:after{display:none}.nav .menu-dropdown{background-color:rgba(41,41,41,0.95);top:60px;max-width:350px}footer{border-top:none}html,body{margin:0;padding:0;color:#111;background-color:#D3D3D3;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPwAAADmCAYAAADx5uiaAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFiklEQVR4nO3csY4bRxRE0ddc/v8fi+NAWsCZbeEVrEadkyhZNMiZuSNGdWbma2Zes+/H8nlnZj7LZ34tnzfz81o+gXObr+f255zZv56J+75+PROhA38owUMRwUMRwUMRwUMRwUMRwUMRwUMRwUMRwUMRwUMRwUMRwUMRwUMRwUMRwUMRwUMRwUORMz+jP4Fzt+d+tj/j95mJz3nDmTP701Gpe5Q4c/t6PnPBZNj7eZ71vbBzTuolsi1xk27Zikv4PM+zGtI558z+vY/8sg189+3dPT/poYngoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgocj712bYttSLJDEOmdjeS1zTbd8DpruHnnPLgOe2xGdcv0fvvx38p0sMTiZeTM9kFlG3z0x899dkHvwbFmYT1rv0kx6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KCB6KvOdn9NvbWa+5YzNsJvPdE2duO7N/jxLbiIkRy8Q9mnPOj+0zt6VGLBMjgbesl85kgr9lHHJb6p6nXk7bVl8iftJDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDke9Nu8RI4Psf/+q/SYwuJsY2E/tziT2/M/sv/NTn3PbMHdfz+9w17/n5wN+w3HoCZyYkHqbPLI8Zzj3DmJ/JDKJun/m1fF6En/RQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQ5D2ZbbPEVlpi0+6WgcSUxPdP7M8l7vsNG3Trw5jvyQz6fWb/oU/coMTK6jN3DE5GYn+eZ/W7n3NuedHP7N/39WfeT3ooIngoIngoIngoIngoIngoIngoIngoIngoIngoIngoIngoIngoIngoIngoIngoIngoIngoIngo8r1pt72dlRhyTA1jJiQ22BJnrg9OnnMS24M3jIImOlq/lu8JXczneVbPPedsDwTO3PUS2faZ/eBfc8cSbuI/pK/JvJRXP6ef9FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FBE8FAktml30ZjhDbt2t+zkJT7nLd995oJn6T0zn8DgZGLQb2b/gia+e2JhNrXamlgWviHQ9XHIyYyCrj9LftJDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDEcFDkffMfJ1zfvzfH+RfOBN4QZ1zbhnG3HZmZnto9DV3fPfEZ3zNBeOl7wkM5f2y/RJJrOC+Zn94cAJnPrP/kN4yNPrM/rOUejElrufqs+QnPRQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBQRPBR5//o3Ef72vldigyyxZ5cYh0xs2t2y6ZY4N7HjeGb/eYqMWN6wMjoz83meZ/WznnMSNz7yqynw3RNLxTe9RLZ95oLxUj/poYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgoYjgocj7n//kt7wmsEV2zkmMBN6w6Zfaiku88BNjmzfcoyuu5/eI5fYFTQSfGjNMPKCJNdxt11zP0IDnFeOlY8QS+F2ChyKChyKChyKChyKChyKChyKChyKChyKChyKChyKChyKChyKChyKChyKChyKChyKChyKChyLvmfkKnPua/V23M5mdvBv2/L532P50kSHHc05ixPKWYczVPv8CiVTGPJBHFUsAAAAASUVORK5CYII=")}body{padding-top:60px}h1,h2,h3,body > footer{font-family:"Rokkitt",serif;font-weight:700}body > footer{font-weight:400;text-align:center}a:link,a:visited{color:#0058e1}a:hover,a:active{color:#111}noscript h1{font-size:2.2em;text-align:center;margin:80px 40px}.document-wrapper article h3{line-height:1;margin-bottom:10px}.document-wrapper .document{color:#111;position:relative}.document-wrapper .document .prop:after{content:':';color:#998;padding-right:.5em}.document-wrapper .document .null,.document-wrapper .document .bool{color:#0086b3}.document-wrapper .document .num{color:#40A070}.document-wrapper .document .string{color:#D20}.document-wrapper .document .string .value{color:#D14}.document-wrapper .document .string a:link .value,.document-wrapper .document .string a:visited .value{text-decoration:underline}.document-wrapper .document .string a:hover .value,.document-wrapper .document .string a:active .value{color:#0058E1}.document-wrapper .document .db-ref .db-ref-ref .string .value,.document-wrapper .document .db-ref .db-ref-id .string .value,.document-wrapper .document .db-ref .db-ref-db .string .value{cursor:pointer;border-bottom:1px dotted #D14}.document-wrapper .document .db-ref .db-ref-ref .string .value:hover,.document-wrapper .document .db-ref .db-ref-id .string .value:hover,.document-wrapper .document .db-ref .db-ref-db .string .value:hover{color:#0058E1;border-bottom:1px solid #0058E1}.document-wrapper .document .collapser{position:absolute;left:-1.5em;padding:0 .5em;color:#998;cursor:pointer}.document-wrapper .document .ellipsis{color:#998;cursor:pointer}.document-wrapper .document .ellipsis .summary{padding-left:5px;font-style:italic}.document-wrapper .document .fn{color:#458}.document-wrapper .document ul{list-style:none;margin:0 0 0 2em;padding:0}.document-wrapper .document li{position:relative;color:#111}.document-wrapper .document li:after{content:','}.document-wrapper .document li:last-of-type:after{content:''}aside#alerts{margin-top:20px}body > section{min-height:150px}body > section section{background-color:#fff;margin:20px 0;padding:20px;border:1px solid #AAA;border-radius:4px;box-shadow:0 1px 5px rgba(0,0,0,0.1),inset 0 1px 0 white}body > section section > header{background-color:#d8d8d8;min-height:40px;margin:-20px -20px 20px;padding:0 20px;border-top-left-radius:4px;border-top-right-radius:4px;background-image:-moz-linear-gradient(-90deg,#e4e4e4,#d8d8d8);background-image:-webkit-gradient(linear,0 top,0 bottom,from(#e4e4e4),to(#d8d8d8));box-shadow:inset 0 1px 0 rgba(255,255,255,0.6)}body > section section > header h2{margin:0;line-height:40px}body > section section > .content{min-height:100px;-webkit-transition:.1s linear all;-moz-transition:.1s linear all;-ms-transition:.1s linear all;-o-transition:.1s linear all;transition:.1s linear all}body > section section > p:first-child{margin-top:0}body > section section > p:last-child{margin-bottom:0}body > section section.spinning{height:180px}body > section section.spinning header h2{background:transparent url('data:image/gif;base64,R0lGODlhEAALAPQAAN7e3oiIiNHR0c3NzdbW1omJiYiIiJeXl7Ozs6enp8bGxpKSkqCgoLa2tqmpqcjIyJSUlIiIiKKiotXV1dDQ0Nra2pqamtLS0tnZ2cXFxb29vcvLy9jY2AAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA') left center no-repeat;text-indent:-10000em}body > section section.spinning .controls,body > section section.spinning .add-form,body > section section.spinning .content{display:none}body > section section .details{display:none}body > section section .has-details{border-bottom:1px dotted#998;cursor:default}.add-form button.show{display:none}.add-form.inactive button,.add-form.inactive input,.add-form.inactive .input-append{display:none}.add-form.inactive button.show{display:inherit}.add-form.inactive .help{display:none}.add-form span.input-append .add-on{margin-right:4px}.add-form .help{cursor:default}#query-editor{width:888px;height:100px;position:relative;-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.1);margin:0 0 10px;padding:4px;border:1px solid #CCC;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}tr td.action-column{padding:5px 10px 0;text-align:right}tr td.action-column button{visibility:hidden;-o-transition-property:color,background,box-shadow;-moz-transition-property:color,background,box-shadow;-webkit-transition-property:color,background,box-shadow;transition-property:color,background,box-shadow}tr:hover td.action-column button{visibility:inherit}section#servers .alert-message.error{padding:3px 10px;font-weight:700}section#servers tr.spinning td:first-child{padding-left:35px;background:transparent url('data:image/gif;base64,R0lGODlhEAALAPQAAP///zMzM+Hh4dnZ2e7u7jc3NzMzM1dXV5qamn9/f8fHx05OTm5ubqGhoYKCgsrKylFRUTY2NnFxcerq6t/f3/b29l9fX+Li4vT09MTExLKystTU1PHx8QAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA') 10px center no-repeat}section#servers tr input{display:none}section#servers tr.editing span.name{display:none}section#servers tr.editing input{display:inherit}.index-details{color:#111;list-style:none;margin:0}.index-details > li{display:block;margin-bottom:5px}.index-details > li ul,.index-details > li li{display:inline-block;list-style:none;margin:0;padding:0}.index-details > li li{color:#111}.index-details > li li:after{content:',';padding-right:.25em}.index-details > li li:last-of-type:after{content:'';padding-right:0}.index-details > li .prop:after{content:':';color:#998;padding-right:.25em}.index-details > li .num{color:#40A070}.document-wrapper div.well{overflow-x:auto}.document-wrapper div.well h3 a{color:#333}.document-wrapper div.well h3 a:hover,.document-wrapper div.well h3 a:active{color:#0058e1}.document-wrapper article{position:relative}.document-wrapper article div.document-actions{position:absolute;right:20px;z-index:10}.document-wrapper article div.document-actions button.save,.document-wrapper article div.document-actions button.cancel{display:none}.document-wrapper article div.document-actions button.edit,.document-wrapper article div.document-actions button.destroy{visibility:hidden}.document-wrapper article:hover div.document-actions button.edit,.document-wrapper article:hover div.document-actions button.destroy{visibility:inherit}.document-wrapper article div.well{-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.document-wrapper article.edit div.document-actions{margin-top:20px}.document-wrapper article.edit div.document-actions button.edit,.document-wrapper article.edit div.document-actions button.destroy{display:none}.document-wrapper article.edit div.document-actions button.save,.document-wrapper article.edit div.document-actions button.cancel{display:inline-block}.document-wrapper article.edit div.well{padding:0;height:400px;border-color:rgba(82,168,236,0.8);background-color:#fff;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);zoom:1}.document-wrapper article.edit div.well h3{display:none}.document-wrapper article.edit div.well:before,.document-wrapper article.edit div.well:after{display:table;content:"";zoom:1}.document-wrapper article.edit div.well:after{clear:both}.document-wrapper article.edit div.well .genghis-document-editor{position:relative;left:1px;right:1px;height:400px}.document-wrapper article.edit div.well .genghis-document-editor .ace_scroller{background-color:transparent}section#documents .controls{zoom:1;margin-bottom:20px}section#documents .controls:before,section#documents .controls:after{display:table;content:"";zoom:1}section#documents .controls:after{clear:both}section#documents .controls .add-document{float:left}section#documents .controls .pagination{margin:0}section#documents .controls .pagination ul{float:right}section#documents .controls .pagination ul li.disabled a{cursor:default}section#document article h3{display:none}.modal.editor{width:820px;margin-left:-410px}.modal.editor .wrapper{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:1px solid rgba(82,168,236,0.8);background-color:#fff;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 3px rgba(0,0,0,0.1),0 0 8px rgba(82,168,236,0.6);zoom:1}.modal.editor .wrapper:before,.modal.editor .wrapper:after{display:table;content:"";zoom:1}.modal.editor .wrapper:after{clear:both}.modal.editor .genghis-document-editor{height:250px;position:relative}.modal.editor .genghis-document-editor .ace_scroller{background-color:transparent}@media screen and (max-width:860px){.modal.editor{left:20px;right:20px;width:auto;margin-left:0}table th,table td{padding:5px 5px 4px}table td.action-column .btn.small{padding:5px 9px;margin:-4px 0}}.appriseOverlay{background-color:#000;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;filter:alpha(opacity=80);-khtml-opacity:.8;-moz-opacity:.8;opacity:.8}.appriseOverlay.fade{opacity:0}.appriseOuter{position:fixed;top:50%;left:50%;z-index:11000;width:560px;margin:-250px 0 0 -280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;width:auto;top:inherit;left:inherit;margin:0;min-width:200px;min-height:50px;max-width:75%;display:none}.appriseOuter .close{margin-top:7px}.appriseOuter.fade{-webkit-transform-style:preserve-3d;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-ms-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out;top:-25%}.appriseOuter.fade.in{top:50%}.appriseInner{padding:15px}.appriseInner button{cursor:pointer;display:inline-block;background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),color-stop(25%,#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(#fff,#fff 25%,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#fff 25%,#e6e6e6);background-image:-ms-linear-gradient(#fff,#fff 25%,#e6e6e6);background-image:-o-linear-gradient(#fff,#fff 25%,#e6e6e6);background-image:linear-gradient(#fff,#fff 25%,#e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);padding:5px 14px 6px;text-shadow:0 1px 1px rgba(255,255,255,0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-webkit-transform-style:preserve-3d;-webkit-transition:.1s linear all;-moz-transition:.1s linear all;-ms-transition:.1s linear all;-o-transition:.1s linear all;transition:.1s linear all}.appriseInner button.danger,.appriseInner button.danger:hover,.appriseInner button.error,.appriseInner button.error:hover,.appriseInner button.success,.appriseInner button.success:hover,.appriseInner button.info,.appriseInner button.info:hover{color:#fff}.appriseInner button .close{font-family:Arial,sans-serif;line-height:18px}.appriseInner button.danger,.appriseInner button.error{background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#ee5f5b),to(#c43c35));background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-ms-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ee5f5b),color-stop(100%,#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(top,#ee5f5b,#c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.appriseInner button.success{background-color:#57a957;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#62c462),to(#57a957));background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-ms-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#62c462),color-stop(100%,#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(top,#62c462,#57a957);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462',endColorstr='#57a957',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#57a957 #57a957 #3d773d;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.appriseInner button.info{background-color:#339bb9;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#5bc0de),to(#339bb9));background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-ms-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#5bc0de),color-stop(100%,#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(top,#5bc0de,#339bb9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de',endColorstr='#339bb9',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#339bb9 #339bb9 #22697d;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.appriseInner button:hover{background-position:0 -15px;color:#333;text-decoration:none}.appriseInner button:focus{outline:1px dotted #666}.appriseInner button.primary{color:#fff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#049cdb),to(#0064cd));background-image:-moz-linear-gradient(top,#049cdb,#0064cd);background-image:-ms-linear-gradient(top,#049cdb,#0064cd);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#049cdb),color-stop(100%,#0064cd));background-image:-webkit-linear-gradient(top,#049cdb,#0064cd);background-image:-o-linear-gradient(top,#049cdb,#0064cd);background-image:linear-gradient(top,#049cdb,#0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb',endColorstr='#0064cd',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.appriseInner button.active,.appriseInner button:active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.25),0 1px 2px rgba(0,0,0,0.05)}.appriseInner button.disabled{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:.65;-moz-opacity:.65;opacity:.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.appriseInner button[disabled]{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:.65;-moz-opacity:.65;opacity:.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.appriseInner button.large{font-size:15px;line-height:normal;padding:9px 14px 9px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.appriseInner button.small{padding:7px 9px 7px;font-size:11px}.appriseInner button[value="ok"]{color:#fff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear,left top,left bottom,from(#049cdb),to(#0064cd));background-image:-moz-linear-gradient(top,#049cdb,#0064cd);background-image:-ms-linear-gradient(top,#049cdb,#0064cd);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#049cdb),color-stop(100%,#0064cd));background-image:-webkit-linear-gradient(top,#049cdb,#0064cd);background-image:-o-linear-gradient(top,#049cdb,#0064cd);background-image:linear-gradient(top,#049cdb,#0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb',endColorstr='#0064cd',GradientType=0);text-shadow:0 -1px 0 rgba(0,0,0,0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.appriseInner button:last-child{margin-left:0}.aButtons{background-color:#f5f5f5;padding:14px 15px 15px;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0#fff;-moz-box-shadow:inset 0 1px 0#fff;box-shadow:inset 0 1px 0#fff;zoom:1;margin-bottom:0;margin:20px -15px -15px}.aButtons:before,.aButtons:after{display:table;content:"";zoom:1}.aButtons:after{clear:both}.aButtons .btn{float:right;margin-left:5px}.aButtons button{float:right;margin-left:5px}.aTextbox{width:94%;min-width:180px;display:block;margin:20px auto 0}

@@script.js 8b64e63ea778d3c36583c39974ac6ba3
/**
 * Genghis v1.1.0
 *
 * The single-file MongoDB admin app
 *
 * http://genghisapp.com
 *
 * @author Justin Hileman <hide@address.com>
 */
(function(c,h){function m(d,q,b){if(b===h&&d.nodeType===1)if(b="data-"+q.replace(Ja,"$1-$2").toLowerCase(),b=d.getAttribute(b),typeof b==="string"){try{b=b==="true"?true:b==="false"?false:b==="null"?null:!g.isNaN(b)?parseFloat(b):N.test(b)?g.parseJSON(b):b}catch(a){}g.data(d,q,b)}else b=h;return b}function b(d){for(var q in d)if(q!=="toJSON")return false;return true}function f(d,q,b){var a=q+"defer",e=q+"queue",c=q+"mark",f=g.data(d,a,h,true);f&&(b==="queue"||!g.data(d,e,h,true))&&(b==="mark"||!g.data(d,
c,h,true))&&setTimeout(function(){!g.data(d,e,h,true)&&!g.data(d,c,h,true)&&(g.removeData(d,a,true),f.resolve())},0)}function n(){return false}function j(){return true}function a(d,q,b){var a=g.extend({},b[0]);a.type=d;a.originalEvent={};a.liveFired=h;g.event.handle.call(q,a);a.isDefaultPrevented()&&b[0].preventDefault()}function e(d){var q,b,a,e,c,f,k,j,n,p,h,s=[];e=[];c=g._data(this,"events");if(!(d.liveFired===this||!c||!c.live||d.target.disabled||d.button&&d.type==="click")){d.namespace&&(h=RegExp("(^|\\.)"+
d.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)"));d.liveFired=this;var m=c.live.slice(0);for(k=0;k<m.length;k++)c=m[k],c.origType.replace(da,"")===d.type?e.push(c.selector):m.splice(k--,1);e=g(d.target).closest(e,d.currentTarget);for(j=0,n=e.length;j<n;j++){p=e[j];for(k=0;k<m.length;k++)if(c=m[k],p.selector===c.selector&&(!h||h.test(c.namespace))&&!p.elem.disabled){f=p.elem;a=null;if(c.preType==="mouseenter"||c.preType==="mouseleave")d.type=c.preType,(a=g(d.relatedTarget).closest(c.selector)[0])&&
g.contains(f,a)&&(a=f);(!a||a!==f)&&s.push({elem:f,handleObj:c,level:p.level})}}for(j=0,n=s.length;j<n;j++){e=s[j];if(b&&e.level>b)break;d.currentTarget=e.elem;d.data=e.handleObj.data;d.handleObj=e.handleObj;h=e.handleObj.origHandler.apply(e.elem,arguments);if(h===false||d.isPropagationStopped())if(b=e.level,h===false&&(q=false),d.isImmediatePropagationStopped())break}return q}}function k(d,q){return(d&&d!=="*"?d+".":"")+q.replace(Ka,"`").replace(La,"&")}function v(d,q,b){q=q||0;if(g.isFunction(q))return g.grep(d,
function(d,g){return!!q.call(d,g,d)===b});else if(q.nodeType)return g.grep(d,function(d){return d===q===b});else if(typeof q==="string"){var a=g.grep(d,function(d){return d.nodeType===1});if(Ma.test(q))return g.filter(q,a,!b);else q=g.filter(q,a)}return g.grep(d,function(d){return g.inArray(d,q)>=0===b})}function y(d,q){if(q.nodeType===1&&g.hasData(d)){var b=g.expando,a=g.data(d),e=g.data(q,a);if(a=a[b]){var c=a.events,e=e[b]=g.extend({},a);if(c){delete e.handle;e.events={};for(var f in c){b=0;for(a=
c[f].length;b<a;b++)g.event.add(q,f+(c[f][b].namespace?".":"")+c[f][b].namespace,c[f][b],c[f][b].data)}}}}}function t(d,q){var b;if(q.nodeType===1){q.clearAttributes&&q.clearAttributes();q.mergeAttributes&&q.mergeAttributes(d);b=q.nodeName.toLowerCase();if(b==="object")q.outerHTML=d.outerHTML;else if(b==="input"&&(d.type==="checkbox"||d.type==="radio")){if(d.checked)q.defaultChecked=q.checked=d.checked;if(q.value!==d.value)q.value=d.value}else if(b==="option")q.selected=d.defaultSelected;else if(b===
"input"||b==="textarea")q.defaultValue=d.defaultValue;q.removeAttribute(g.expando)}}function r(d){return"getElementsByTagName"in d?d.getElementsByTagName("*"):"querySelectorAll"in d?d.querySelectorAll("*"):[]}function x(d){if(d.type==="checkbox"||d.type==="radio")d.defaultChecked=d.checked}function p(d){g.nodeName(d,"input")?x(d):"getElementsByTagName"in d&&g.grep(d.getElementsByTagName("input"),x)}function w(d,q){q.src?g.ajax({url:q.src,async:false,dataType:"script"}):g.globalEval((q.text||q.textContent||
q.innerHTML||"").replace(Na,"/*$0*/"));q.parentNode&&q.parentNode.removeChild(q)}function A(d,q,b){var a=q==="width"?d.offsetWidth:d.offsetHeight,e=q==="width"?Oa:Pa;if(a>0)return b!=="border"&&g.each(e,function(){b||(a-=parseFloat(g.css(d,"padding"+this))||0);b==="margin"?a+=parseFloat(g.css(d,b+this))||0:a-=parseFloat(g.css(d,"border"+this+"Width"))||0}),a+"px";a=T(d,q,q);if(a<0||a==null)a=d.style[q]||0;a=parseFloat(a)||0;b&&g.each(e,function(){a+=parseFloat(g.css(d,"padding"+this))||0;b!=="padding"&&
(a+=parseFloat(g.css(d,"border"+this+"Width"))||0);b==="margin"&&(a+=parseFloat(g.css(d,b+this))||0)});return a+"px"}function z(d){return function(q,b){var P;typeof q!=="string"&&(b=q,q="*");if(g.isFunction(b))for(var a=q.toLowerCase().split(ma),e=0,c=a.length,f,k;e<c;e++)f=a[e],(k=/^\+/.test(f))&&(f=f.substr(1)||"*"),P=d[f]=d[f]||[],f=P,f[k?"unshift":"push"](b)}}function s(d,q,g,b,a,e){a=a||q.dataTypes[0];e=e||{};e[a]=true;for(var a=d[a],c=0,f=a?a.length:0,k=d===ea,j;c<f&&(k||!j);c++)j=a[c](q,g,
b),typeof j==="string"&&(!k||e[j]?j=h:(q.dataTypes.unshift(j),j=s(d,q,g,b,j,e)));if((k||!j)&&!e["*"])j=s(d,q,g,b,"*",e);return j}function o(d,q){var b,a,e=g.ajaxSettings.flatOptions||{};for(b in q)q[b]!==h&&((e[b]?d:a||(a={}))[b]=q[b]);a&&g.extend(true,d,a)}function B(d,q,b,a){if(g.isArray(q))g.each(q,function(q,e){b||Qa.test(d)?a(d,e):B(d+"["+(typeof e==="object"||g.isArray(e)?q:"")+"]",e,b,a)});else if(!b&&q!=null&&typeof q==="object")for(var e in q)B(d+"["+e+"]",q[e],b,a);else a(d,q)}function D(){try{return new c.XMLHttpRequest}catch(d){}}
function C(){setTimeout(G,0);return Y=g.now()}function G(){Y=h}function E(d,q){var b={};g.each(na.concat.apply([],na.slice(0,q)),function(){b[this]=d});return b}function H(d){if(!fa[d]){var q=u.body,b=g("<"+d+">").appendTo(q),a=b.css("display");b.remove();if(a==="none"||a===""){if(!I)I=u.createElement("iframe"),I.frameBorder=I.width=I.height=0;q.appendChild(I);if(!U||!I.createElement)U=(I.contentWindow||I.contentDocument).document,U.write((u.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),
U.close();b=U.createElement(d);U.body.appendChild(b);a=g.css(b,"display");q.removeChild(I)}fa[d]=a}return fa[d]}function L(d){return g.isWindow(d)?d:d.nodeType===9?d.defaultView||d.parentWindow:false}var u=c.document,Z=c.navigator,F=c.location,g=function(){function d(){if(!q.isReady){try{u.documentElement.doScroll("left")}catch(g){setTimeout(d,1);return}q.ready()}}var q=function(d,g){return new q.fn.init(d,g,a)},g=c.jQuery,b=c.$,a,e=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,f=/\S/,k=/^\s+/,j=/\s+$/,
n=/\d/,p=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,s=/^[\],:{}\s]*$/,m=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,r=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,o=/(?:^|:|,)(?:\s*\[)+/g,x=/(webkit)[ \/]([\w.]+)/,w=/(opera)(?:.*version)?[ \/]([\w.]+)/,B=/(msie) ([\w.]+)/,A=/(mozilla)(?:.*? rv:([\w.]+))?/,y=/-([a-z]|[0-9])/ig,v=/^-ms-/,z=function(d,q){return(q+"").toUpperCase()},t=Z.userAgent,D,F,C=Object.prototype.toString,G=Object.prototype.hasOwnProperty,L=Array.prototype.push,E=Array.prototype.slice,
M=String.prototype.trim,Q=Array.prototype.indexOf,H={};q.fn=q.prototype={constructor:q,init:function(d,g,b){var a;if(!d)return this;if(d.nodeType)return this.context=this[0]=d,this.length=1,this;if(d==="body"&&!g&&u.body)return this.context=u,this[0]=u.body,this.selector=d,this.length=1,this;if(typeof d==="string")if((a=d.charAt(0)==="<"&&d.charAt(d.length-1)===">"&&d.length>=3?[null,d,null]:e.exec(d))&&(a[1]||!g))if(a[1])return b=(g=g instanceof q?g[0]:g)?g.ownerDocument||g:u,(d=p.exec(d))?q.isPlainObject(g)?
(d=[u.createElement(d[1])],q.fn.attr.call(d,g,true)):d=[b.createElement(d[1])]:(d=q.buildFragment([a[1]],[b]),d=(d.cacheable?q.clone(d.fragment):d.fragment).childNodes),q.merge(this,d);else{if((g=u.getElementById(a[2]))&&g.parentNode){if(g.id!==a[2])return b.find(d);this.length=1;this[0]=g}this.context=u;this.selector=d;return this}else return!g||g.jquery?(g||b).find(d):this.constructor(g).find(d);else if(q.isFunction(d))return b.ready(d);if(d.selector!==h)this.selector=d.selector,this.context=d.context;
return q.makeArray(d,this)},selector:"",jquery:"1.6.3",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(d){return d==null?this.toArray():d<0?this[this.length+d]:this[d]},pushStack:function(d,g,b){var a=this.constructor();q.isArray(d)?L.apply(a,d):q.merge(a,d);a.prevObject=this;a.context=this.context;if(g==="find")a.selector=this.selector+(this.selector?" ":"")+b;else if(g)a.selector=this.selector+"."+g+"("+b+")";return a},each:function(d,g){return q.each(this,
d,g)},ready:function(d){q.bindReady();D.done(d);return this},eq:function(d){return d===-1?this.slice(d):this.slice(d,+d+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(d){return this.pushStack(q.map(this,function(q,g){return d.call(q,g,q)}))},end:function(){return this.prevObject||this.constructor(null)},push:L,sort:[].sort,splice:[].splice};q.fn.init.prototype=
q.fn;q.extend=q.fn.extend=function(){var d,g,b,a,e,c=arguments[0]||{},f=1,k=arguments.length,j=false;typeof c==="boolean"&&(j=c,c=arguments[1]||{},f=2);typeof c!=="object"&&!q.isFunction(c)&&(c={});k===f&&(c=this,--f);for(;f<k;f++)if((d=arguments[f])!=null)for(g in d)b=c[g],a=d[g],c!==a&&(j&&a&&(q.isPlainObject(a)||(e=q.isArray(a)))?(e?(e=false,b=b&&q.isArray(b)?b:[]):b=b&&q.isPlainObject(b)?b:{},c[g]=q.extend(j,b,a)):a!==h&&(c[g]=a));return c};q.extend({noConflict:function(d){if(c.$===q)c.$=b;if(d&&
c.jQuery===q)c.jQuery=g;return q},isReady:false,readyWait:1,holdReady:function(d){d?q.readyWait++:q.ready(true)},ready:function(d){if(d===true&&!--q.readyWait||d!==true&&!q.isReady){if(!u.body)return setTimeout(q.ready,1);q.isReady=true;d!==true&&--q.readyWait>0||(D.resolveWith(u,[q]),q.fn.trigger&&q(u).trigger("ready").unbind("ready"))}},bindReady:function(){if(!D){D=q._Deferred();if(u.readyState==="complete")return setTimeout(q.ready,1);if(u.addEventListener)u.addEventListener("DOMContentLoaded",
F,false),c.addEventListener("load",q.ready,false);else if(u.attachEvent){u.attachEvent("onreadystatechange",F);c.attachEvent("onload",q.ready);var g=false;try{g=c.frameElement==null}catch(b){}u.documentElement.doScroll&&g&&d()}}},isFunction:function(d){return q.type(d)==="function"},isArray:Array.isArray||function(d){return q.type(d)==="array"},isWindow:function(d){return d&&typeof d==="object"&&"setInterval"in d},isNaN:function(d){return d==null||!n.test(d)||isNaN(d)},type:function(d){return d==
null?String(d):H[C.call(d)]||"object"},isPlainObject:function(d){if(!d||q.type(d)!=="object"||d.nodeType||q.isWindow(d))return false;try{if(d.constructor&&!G.call(d,"constructor")&&!G.call(d.constructor.prototype,"isPrototypeOf"))return false}catch(g){return false}for(var b in d);return b===h||G.call(d,b)},isEmptyObject:function(d){for(var q in d)return false;return true},error:function(d){throw d;},parseJSON:function(d){if(typeof d!=="string"||!d)return null;d=q.trim(d);if(c.JSON&&c.JSON.parse)return c.JSON.parse(d);
if(s.test(d.replace(m,"@").replace(r,"]").replace(o,"")))return(new Function("return "+d))();q.error("Invalid JSON: "+d)},parseXML:function(d){var g,b;try{c.DOMParser?(b=new DOMParser,g=b.parseFromString(d,"text/xml")):(g=new ActiveXObject("Microsoft.XMLDOM"),g.async="false",g.loadXML(d))}catch(a){g=h}(!g||!g.documentElement||g.getElementsByTagName("parsererror").length)&&q.error("Invalid XML: "+d);return g},noop:function(){},globalEval:function(d){d&&f.test(d)&&(c.execScript||function(d){c.eval.call(c,
d)})(d)},camelCase:function(d){return d.replace(v,"ms-").replace(y,z)},nodeName:function(d,g){return d.nodeName&&d.nodeName.toUpperCase()===g.toUpperCase()},each:function(d,g,b){var a,e=0,c=d.length,f=c===h||q.isFunction(d);if(b)if(f)for(a in d){if(g.apply(d[a],b)===false)break}else for(;e<c;){if(g.apply(d[e++],b)===false)break}else if(f)for(a in d){if(g.call(d[a],a,d[a])===false)break}else for(;e<c;)if(g.call(d[e],e,d[e++])===false)break;return d},trim:M?function(d){return d==null?"":M.call(d)}:
function(d){return d==null?"":d.toString().replace(k,"").replace(j,"")},makeArray:function(d,g){var b=g||[];if(d!=null){var a=q.type(d);d.length==null||a==="string"||a==="function"||a==="regexp"||q.isWindow(d)?L.call(b,d):q.merge(b,d)}return b},inArray:function(d,g){if(!g)return-1;if(Q)return Q.call(g,d);for(var q=0,b=g.length;q<b;q++)if(g[q]===d)return q;return-1},merge:function(d,g){var q=d.length,b=0;if(typeof g.length==="number")for(var a=g.length;b<a;b++)d[q++]=g[b];else for(;g[b]!==h;)d[q++]=
g[b++];d.length=q;return d},grep:function(d,g,q){for(var b=[],a,q=!!q,e=0,c=d.length;e<c;e++)a=!!g(d[e],e),q!==a&&b.push(d[e]);return b},map:function(d,g,b){var a,e,c=[],f=0,k=d.length;if(d instanceof q||k!==h&&typeof k==="number"&&(k>0&&d[0]&&d[k-1]||k===0||q.isArray(d)))for(;f<k;f++)a=g(d[f],f,b),a!=null&&(c[c.length]=a);else for(e in d)a=g(d[e],e,b),a!=null&&(c[c.length]=a);return c.concat.apply([],c)},guid:1,proxy:function(d,g){if(typeof g==="string")var b=d[g],g=d,d=b;if(!q.isFunction(d))return h;
var a=E.call(arguments,2),b=function(){return d.apply(g,a.concat(E.call(arguments)))};b.guid=d.guid=d.guid||b.guid||q.guid++;return b},access:function(d,g,b,a,e,c){var f=d.length;if(typeof g==="object"){for(var k in g)q.access(d,k,g[k],a,e,b);return d}if(b!==h){a=!c&&a&&q.isFunction(b);for(k=0;k<f;k++)e(d[k],g,a?b.call(d[k],k,e(d[k],g)):b,c);return d}return f?e(d[0],g):h},now:function(){return(new Date).getTime()},uaMatch:function(d){d=d.toLowerCase();d=x.exec(d)||w.exec(d)||B.exec(d)||d.indexOf("compatible")<
0&&A.exec(d)||[];return{browser:d[1]||"",version:d[2]||"0"}},sub:function(){function d(g,b){return new d.fn.init(g,b)}q.extend(true,d,this);d.superclass=this;d.fn=d.prototype=this();d.fn.constructor=d;d.sub=this.sub;d.fn.init=function(b,a){a&&a instanceof q&&!(a instanceof d)&&(a=d(a));return q.fn.init.call(this,b,a,g)};d.fn.init.prototype=d.fn;var g=d(u);return d},browser:{}});q.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(d,g){H["[object "+g+"]"]=g.toLowerCase()});
t=q.uaMatch(t);if(t.browser)q.browser[t.browser]=true,q.browser.version=t.version;if(q.browser.webkit)q.browser.safari=true;f.test("\u00a0")&&(k=/^[\s\xA0]+/,j=/[\s\xA0]+$/);a=q(u);u.addEventListener?F=function(){u.removeEventListener("DOMContentLoaded",F,false);q.ready()}:u.attachEvent&&(F=function(){u.readyState==="complete"&&(u.detachEvent("onreadystatechange",F),q.ready())});return q}(),M="done fail isResolved isRejected promise then always pipe".split(" "),Q=[].slice;g.extend({_Deferred:function(){var d=
[],b,a,e,c={done:function(){if(!e){var a=arguments,f,k,j,n,p;b&&(p=b,b=0);for(f=0,k=a.length;f<k;f++)j=a[f],n=g.type(j),n==="array"?c.done.apply(c,j):n==="function"&&d.push(j);p&&c.resolveWith(p[0],p[1])}return this},resolveWith:function(g,c){if(!e&&!b&&!a){c=c||[];a=1;try{for(;d[0];)d.shift().apply(g,c)}finally{b=[g,c],a=0}}return this},resolve:function(){c.resolveWith(this,arguments);return this},isResolved:function(){return!(!a&&!b)},cancel:function(){e=1;d=[];return this}};return c},Deferred:function(d){var b=
g._Deferred(),a=g._Deferred(),e;g.extend(b,{then:function(d,g){b.done(d).fail(g);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:a.done,rejectWith:a.resolveWith,reject:a.resolve,isRejected:a.isResolved,pipe:function(d,a){return g.Deferred(function(e){g.each({done:[d,"resolve"],fail:[a,"reject"]},function(d,a){var c=a[0],f=a[1],k;if(g.isFunction(c))b[d](function(){if((k=c.apply(this,arguments))&&g.isFunction(k.promise))k.promise().then(e.resolve,e.reject);
else e[f+"With"](this===b?e:this,[k])});else b[d](e[f])})}).promise()},promise:function(d){if(d==null){if(e)return e;e=d={}}for(var g=M.length;g--;)d[M[g]]=b[M[g]];return d}});b.done(a.cancel).fail(b.cancel);delete b.cancel;d&&d.call(b,b);return b},when:function(d){function b(d){return function(g){a[d]=arguments.length>1?Q.call(arguments,0):g;--f||k.resolveWith(k,Q.call(a,0))}}var a=arguments,e=0,c=a.length,f=c,k=c<=1&&d&&g.isFunction(d.promise)?d:g.Deferred();if(c>1){for(;e<c;e++)a[e]&&g.isFunction(a[e].promise)?
a[e].promise().then(b(e),k.reject):--f;f||k.resolveWith(k,a)}else k!==d&&k.resolveWith(k,c?[d]:[]);return k.promise()}});g.support=function(){var d=u.createElement("div"),b=u.documentElement,a,e,c,f,k,j;d.setAttribute("className","t");d.innerHTML="   <link><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type=checkbox>";a=d.getElementsByTagName("*");e=d.getElementsByTagName("a")[0];if(!a||!a.length||!e)return{};c=u.createElement("select");f=c.appendChild(u.createElement("option"));
a=d.getElementsByTagName("input")[0];k={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:a.value==="on",optSelected:f.selected,getSetAttribute:d.className!=="t",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,
inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};a.checked=true;k.noCloneChecked=a.cloneNode(true).checked;c.disabled=true;k.optDisabled=!f.disabled;try{delete d.test}catch(n){k.deleteExpando=false}!d.addEventListener&&d.attachEvent&&d.fireEvent&&(d.attachEvent("onclick",function(){k.noCloneEvent=false}),d.cloneNode(true).fireEvent("onclick"));a=u.createElement("input");a.value="t";a.setAttribute("type","radio");k.radioValue=a.value==="t";a.setAttribute("checked","checked");
d.appendChild(a);e=u.createDocumentFragment();e.appendChild(d.firstChild);k.checkClone=e.cloneNode(true).cloneNode(true).lastChild.checked;d.innerHTML="";d.style.width=d.style.paddingLeft="1px";c=u.getElementsByTagName("body")[0];e=u.createElement(c?"div":"body");f={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};c&&g.extend(f,{position:"absolute",left:"-1000px",top:"-1000px"});for(j in f)e.style[j]=f[j];e.appendChild(d);b=c||b;b.insertBefore(e,b.firstChild);k.appendChecked=
a.checked;k.boxModel=d.offsetWidth===2;if("zoom"in d.style)d.style.display="inline",d.style.zoom=1,k.inlineBlockNeedsLayout=d.offsetWidth===2,d.style.display="",d.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=d.offsetWidth!==2;d.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";c=d.getElementsByTagName("td");a=c[0].offsetHeight===0;c[0].style.display="";c[1].style.display="none";k.reliableHiddenOffsets=a&&c[0].offsetHeight===0;d.innerHTML=
"";if(u.defaultView&&u.defaultView.getComputedStyle)a=u.createElement("div"),a.style.width="0",a.style.marginRight="0",d.appendChild(a),k.reliableMarginRight=(parseInt((u.defaultView.getComputedStyle(a,null)||{marginRight:0}).marginRight,10)||0)===0;e.innerHTML="";b.removeChild(e);if(d.attachEvent)for(j in{submit:1,change:1,focusin:1})b="on"+j,a=b in d,a||(d.setAttribute(b,"return;"),a=typeof d[b]==="function"),k[j+"Bubbles"]=a;e=e=c=f=c=a=d=a=null;return k}();g.boxModel=g.support.boxModel;var N=
/^(?:\{.*\}|\[.*\])$/,Ja=/([a-z])([A-Z])/g;g.extend({cache:{},uuid:0,expando:"jQuery"+(g.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(d){d=d.nodeType?g.cache[d[g.expando]]:d[g.expando];return!!d&&!b(d)},data:function(d,b,a,e){if(g.acceptData(d)){var c=g.expando,f=typeof b==="string",k=d.nodeType,j=k?g.cache:d,n=k?d[g.expando]:d[g.expando]&&g.expando;if(n&&(!e||!n||!j[n]||j[n][c])||!(f&&a===h)){if(!n)k?
d[g.expando]=n=++g.uuid:n=g.expando;if(!j[n]&&(j[n]={},!k))j[n].toJSON=g.noop;if(typeof b==="object"||typeof b==="function")e?j[n][c]=g.extend(j[n][c],b):j[n]=g.extend(j[n],b);d=j[n];e&&(d[c]||(d[c]={}),d=d[c]);a!==h&&(d[g.camelCase(b)]=a);if(b==="events"&&!d[b])return d[c]&&d[c].events;f?(a=d[b],a==null&&(a=d[g.camelCase(b)])):a=d;return a}}},removeData:function(d,a,e){if(g.acceptData(d)){var c,f=g.expando,k=d.nodeType,j=k?g.cache:d,n=k?d[g.expando]:g.expando;if(j[n]){if(a&&(c=e?j[n][f]:j[n]))if(c[a]||
(a=g.camelCase(a)),delete c[a],!b(c))return;if(e&&(delete j[n][f],!b(j[n])))return;a=j[n][f];g.support.deleteExpando||!j.setInterval?delete j[n]:j[n]=null;if(a){j[n]={};if(!k)j[n].toJSON=g.noop;j[n][f]=a}else k&&(g.support.deleteExpando?delete d[g.expando]:d.removeAttribute?d.removeAttribute(g.expando):d[g.expando]=null)}}},_data:function(d,b,a){return g.data(d,b,a,true)},acceptData:function(d){if(d.nodeName){var b=g.noData[d.nodeName.toLowerCase()];if(b)return!(b===true||d.getAttribute("classid")!==
b)}return true}});g.fn.extend({data:function(d,b){var a=null;if(typeof d==="undefined"){if(this.length&&(a=g.data(this[0]),this[0].nodeType===1))for(var e=this[0].attributes,c,f=0,k=e.length;f<k;f++)c=e[f].name,c.indexOf("data-")===0&&(c=g.camelCase(c.substring(5)),m(this[0],c,a[c]));return a}else if(typeof d==="object")return this.each(function(){g.data(this,d)});var j=d.split(".");j[1]=j[1]?"."+j[1]:"";return b===h?(a=this.triggerHandler("getData"+j[1]+"!",[j[0]]),a===h&&this.length&&(a=g.data(this[0],
d),a=m(this[0],d,a)),a===h&&j[1]?this.data(j[0]):a):this.each(function(){var a=g(this),e=[j[0],b];a.triggerHandler("setData"+j[1]+"!",e);g.data(this,d,b);a.triggerHandler("changeData"+j[1]+"!",e)})},removeData:function(d){return this.each(function(){g.removeData(this,d)})}});g.extend({_mark:function(d,a){d&&(a=(a||"fx")+"mark",g.data(d,a,(g.data(d,a,h,true)||0)+1,true))},_unmark:function(d,a,b){d!==true&&(b=a,a=d,d=false);if(a){var b=b||"fx",e=b+"mark";(d=d?0:(g.data(a,e,h,true)||1)-1)?g.data(a,e,
d,true):(g.removeData(a,e,true),f(a,b,"mark"))}},queue:function(d,a,b){if(d){var a=(a||"fx")+"queue",e=g.data(d,a,h,true);b&&(!e||g.isArray(b)?e=g.data(d,a,g.makeArray(b),true):e.push(b));return e||[]}},dequeue:function(d,a){var a=a||"fx",b=g.queue(d,a),e=b.shift();e==="inprogress"&&(e=b.shift());e&&(a==="fx"&&b.unshift("inprogress"),e.call(d,function(){g.dequeue(d,a)}));b.length||(g.removeData(d,a+"queue",true),f(d,a,"queue"))}});g.fn.extend({queue:function(d,a){typeof d!=="string"&&(a=d,d="fx");
return a===h?g.queue(this[0],d):this.each(function(){var b=g.queue(this,d,a);d==="fx"&&b[0]!=="inprogress"&&g.dequeue(this,d)})},dequeue:function(d){return this.each(function(){g.dequeue(this,d)})},delay:function(d,a){d=g.fx?g.fx.speeds[d]||d:d;a=a||"fx";return this.queue(a,function(){var b=this;setTimeout(function(){g.dequeue(b,a)},d)})},clearQueue:function(d){return this.queue(d||"fx",[])},promise:function(d){function a(){--f||b.resolveWith(e,[e])}typeof d!=="string"&&(d=h);var d=d||"fx",b=g.Deferred(),
e=this,c=e.length,f=1,k=d+"defer",j=d+"queue";d+="mark";for(var n;c--;)if(n=g.data(e[c],k,h,true)||(g.data(e[c],j,h,true)||g.data(e[c],d,h,true))&&g.data(e[c],k,g._Deferred(),true))f++,n.done(a);a();return b.promise()}});var oa=/[\n\t\r]/g,ga=/\s+/,Ra=/\r/g,Sa=/^(?:button|input)$/i,Ta=/^(?:button|input|object|select|textarea)$/i,Ua=/^a(?:rea)?$/i,pa=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,K,qa;g.fn.extend({attr:function(d,
a){return g.access(this,d,a,true,g.attr)},removeAttr:function(d){return this.each(function(){g.removeAttr(this,d)})},prop:function(d,a){return g.access(this,d,a,true,g.prop)},removeProp:function(d){d=g.propFix[d]||d;return this.each(function(){try{this[d]=h,delete this[d]}catch(a){}})},addClass:function(d){var a,b,e,c,f,k,j;if(g.isFunction(d))return this.each(function(a){g(this).addClass(d.call(this,a,this.className))});if(d&&typeof d==="string"){a=d.split(ga);for(b=0,e=this.length;b<e;b++)if(c=this[b],
c.nodeType===1)if(!c.className&&a.length===1)c.className=d;else{f=" "+c.className+" ";for(k=0,j=a.length;k<j;k++)~f.indexOf(" "+a[k]+" ")||(f+=a[k]+" ");c.className=g.trim(f)}}return this},removeClass:function(d){var a,b,e,c,f,k,j;if(g.isFunction(d))return this.each(function(a){g(this).removeClass(d.call(this,a,this.className))});if(d&&typeof d==="string"||d===h){a=(d||"").split(ga);for(b=0,e=this.length;b<e;b++)if(c=this[b],c.nodeType===1&&c.className)if(d){f=(" "+c.className+" ").replace(oa," ");
for(k=0,j=a.length;k<j;k++)f=f.replace(" "+a[k]+" "," ");c.className=g.trim(f)}else c.className=""}return this},toggleClass:function(d,a){var b=typeof d,e=typeof a==="boolean";return g.isFunction(d)?this.each(function(b){g(this).toggleClass(d.call(this,b,this.className,a),a)}):this.each(function(){if(b==="string")for(var c,f=0,k=g(this),j=a,n=d.split(ga);c=n[f++];)j=e?j:!k.hasClass(c),k[j?"addClass":"removeClass"](c);else if(b==="undefined"||b==="boolean")this.className&&g._data(this,"__className__",
this.className),this.className=this.className||d===false?"":g._data(this,"__className__")||""})},hasClass:function(d){for(var d=" "+d+" ",a=0,b=this.length;a<b;a++)if(this[a].nodeType===1&&(" "+this[a].className+" ").replace(oa," ").indexOf(d)>-1)return true;return false},val:function(d){var a,b,e=this[0];if(!arguments.length){if(e){if((a=g.valHooks[e.nodeName.toLowerCase()]||g.valHooks[e.type])&&"get"in a&&(b=a.get(e,"value"))!==h)return b;b=e.value;return typeof b==="string"?b.replace(Ra,""):b==
null?"":b}return h}var c=g.isFunction(d);return this.each(function(b){var e=g(this);if(this.nodeType===1&&(b=c?d.call(this,b,e.val()):d,b==null?b="":typeof b==="number"?b+="":g.isArray(b)&&(b=g.map(b,function(d){return d==null?"":d+""})),a=g.valHooks[this.nodeName.toLowerCase()]||g.valHooks[this.type],!a||!("set"in a)||a.set(this,b,"value")===h))this.value=b})}});g.extend({valHooks:{option:{get:function(d){var a=d.attributes.value;return!a||a.specified?d.value:d.text}},select:{get:function(d){var a,
b=d.selectedIndex,e=[],c=d.options,d=d.type==="select-one";if(b<0)return null;for(var f=d?b:0,k=d?b+1:c.length;f<k;f++)if(a=c[f],a.selected&&(g.support.optDisabled?!a.disabled:a.getAttribute("disabled")===null)&&(!a.parentNode.disabled||!g.nodeName(a.parentNode,"optgroup"))){a=g(a).val();if(d)return a;e.push(a)}return d&&!e.length&&c.length?g(c[b]).val():e},set:function(d,a){var b=g.makeArray(a);g(d).find("option").each(function(){this.selected=g.inArray(g(this).val(),b)>=0});if(!b.length)d.selectedIndex=
-1;return b}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attrFix:{tabindex:"tabIndex"},attr:function(d,a,b,e){var c=d.nodeType;if(!d||c===3||c===8||c===2)return h;if(e&&a in g.attrFn)return g(d)[a](b);if(!("getAttribute"in d))return g.prop(d,a,b);var f,k;if(e=c!==1||!g.isXMLDoc(d))a=g.attrFix[a]||a,(k=g.attrHooks[a])||(pa.test(a)?k=qa:K&&(k=K));return b!==h?b===null?(g.removeAttr(d,a),h):k&&"set"in k&&e&&(f=k.set(d,b,a))!==h?f:(d.setAttribute(a,""+
b),b):k&&"get"in k&&e&&(f=k.get(d,a))!==null?f:(f=d.getAttribute(a),f===null?h:f)},removeAttr:function(d,a){var b;if(d.nodeType===1&&(a=g.attrFix[a]||a,g.attr(d,a,""),d.removeAttribute(a),pa.test(a)&&(b=g.propFix[a]||a)in d))d[b]=false},attrHooks:{type:{set:function(d,a){if(Sa.test(d.nodeName)&&d.parentNode)g.error("type property can't be changed");else if(!g.support.radioValue&&a==="radio"&&g.nodeName(d,"input")){var b=d.value;d.setAttribute("type",a);if(b)d.value=b;return a}}},value:{get:function(d,
a){return K&&g.nodeName(d,"button")?K.get(d,a):a in d?d.value:null},set:function(d,a,b){if(K&&g.nodeName(d,"button"))return K.set(d,a,b);d.value=a}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(d,a,b){var e=d.nodeType;if(!d||e===3||e===8||e===2)return h;var c,
f;if(e!==1||!g.isXMLDoc(d))a=g.propFix[a]||a,f=g.propHooks[a];return b!==h?f&&"set"in f&&(c=f.set(d,b,a))!==h?c:d[a]=b:f&&"get"in f&&(c=f.get(d,a))!==null?c:d[a]},propHooks:{tabIndex:{get:function(d){var a=d.getAttributeNode("tabindex");return a&&a.specified?parseInt(a.value,10):Ta.test(d.nodeName)||Ua.test(d.nodeName)&&d.href?0:h}}}});g.attrHooks.tabIndex=g.propHooks.tabIndex;qa={get:function(d,a){var b;return g.prop(d,a)===true||(b=d.getAttributeNode(a))&&b.nodeValue!==false?a.toLowerCase():h},
set:function(d,a,b){a===false?g.removeAttr(d,b):(a=g.propFix[b]||b,a in d&&(d[a]=true),d.setAttribute(b,b.toLowerCase()));return b}};if(!g.support.getSetAttribute)K=g.valHooks.button={get:function(d,a){var b;return(b=d.getAttributeNode(a))&&b.nodeValue!==""?b.nodeValue:h},set:function(d,a,b){var g=d.getAttributeNode(b);g||(g=u.createAttribute(b),d.setAttributeNode(g));return g.nodeValue=a+""}},g.each(["width","height"],function(d,a){g.attrHooks[a]=g.extend(g.attrHooks[a],{set:function(d,b){if(b===
"")return d.setAttribute(a,"auto"),b}})});g.support.hrefNormalized||g.each(["href","src","width","height"],function(d,a){g.attrHooks[a]=g.extend(g.attrHooks[a],{get:function(d){d=d.getAttribute(a,2);return d===null?h:d}})});if(!g.support.style)g.attrHooks.style={get:function(d){return d.style.cssText.toLowerCase()||h},set:function(d,a){return d.style.cssText=""+a}};if(!g.support.optSelected)g.propHooks.selected=g.extend(g.propHooks.selected,{get:function(){return null}});g.support.checkOn||g.each(["radio",
"checkbox"],function(){g.valHooks[this]={get:function(d){return d.getAttribute("value")===null?"on":d.value}}});g.each(["radio","checkbox"],function(){g.valHooks[this]=g.extend(g.valHooks[this],{set:function(d,a){if(g.isArray(a))return d.checked=g.inArray(g(d).val(),a)>=0}})});var da=/\.(.*)$/,ha=/^(?:textarea|input|select)$/i,Ka=/\./g,La=/ /g,Va=/[^\w\s.|`]/g,Wa=function(d){return d.replace(Va,"\\$&")};g.event={add:function(d,a,b,e){if(!(d.nodeType===3||d.nodeType===8)){if(b===false)b=n;else if(!b)return;
var c,f;if(b.handler)c=b,b=c.handler;if(!b.guid)b.guid=g.guid++;if(f=g._data(d)){var k=f.events,j=f.handle;if(!k)f.events=k={};if(!j)f.handle=j=function(d){return typeof g!=="undefined"&&(!d||g.event.triggered!==d.type)?g.event.handle.apply(j.elem,arguments):h};j.elem=d;for(var a=a.split(" "),p,s=0,m;p=a[s++];){f=c?g.extend({},c):{handler:b,data:e};p.indexOf(".")>-1?(m=p.split("."),p=m.shift(),f.namespace=m.slice(0).sort().join(".")):(m=[],f.namespace="");f.type=p;if(!f.guid)f.guid=b.guid;var r=k[p],
u=g.event.special[p]||{};if(!r&&(r=k[p]=[],!u.setup||u.setup.call(d,e,m,j)===false))d.addEventListener?d.addEventListener(p,j,false):d.attachEvent&&d.attachEvent("on"+p,j);if(u.add&&(u.add.call(d,f),!f.handler.guid))f.handler.guid=b.guid;r.push(f);g.event.global[p]=true}d=null}}},global:{},remove:function(d,a,b,e){if(!(d.nodeType===3||d.nodeType===8)){b===false&&(b=n);var c,f,k=0,j,p,s,m,r,u,o=g.hasData(d)&&g._data(d),x=o&&o.events;if(o&&x){if(a&&a.type)b=a.handler,a=a.type;if(!a||typeof a==="string"&&
a.charAt(0)===".")for(c in a=a||"",x)g.event.remove(d,c+a);else{for(a=a.split(" ");c=a[k++];)if(m=c,j=c.indexOf(".")<0,p=[],j||(p=c.split("."),c=p.shift(),s=RegExp("(^|\\.)"+g.map(p.slice(0).sort(),Wa).join("\\.(?:.*\\.)?")+"(\\.|$)")),r=x[c])if(b){m=g.event.special[c]||{};for(f=e||0;f<r.length;f++)if(u=r[f],b.guid===u.guid){if(j||s.test(u.namespace))e==null&&r.splice(f--,1),m.remove&&m.remove.call(d,u);if(e!=null)break}if(r.length===0||e!=null&&r.length===1)(!m.teardown||m.teardown.call(d,p)===false)&&
g.removeEvent(d,c,o.handle),delete x[c]}else for(f=0;f<r.length;f++)if(u=r[f],j||s.test(u.namespace))g.event.remove(d,m,u.handler,f),r.splice(f--,1);if(g.isEmptyObject(x)){if(a=o.handle)a.elem=null;delete o.events;delete o.handle;g.isEmptyObject(o)&&g.removeData(d,h,true)}}}}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(d,a,b,e){var f=d.type||d,k=[],j;f.indexOf("!")>=0&&(f=f.slice(0,-1),j=true);f.indexOf(".")>=0&&(k=f.split("."),f=k.shift(),k.sort());if(b&&!g.event.customEvent[f]||
g.event.global[f]){d=typeof d==="object"?d[g.expando]?d:new g.Event(f,d):new g.Event(f);d.type=f;d.exclusive=j;d.namespace=k.join(".");d.namespace_re=RegExp("(^|\\.)"+k.join("\\.(?:.*\\.)?")+"(\\.|$)");if(e||!b)d.preventDefault(),d.stopPropagation();if(b){if(!(b.nodeType===3||b.nodeType===8)){d.result=h;d.target=b;a=a!=null?g.makeArray(a):[];a.unshift(d);k=b;e=f.indexOf(":")<0?"on"+f:"";do{j=g._data(k,"handle");d.currentTarget=k;j&&j.apply(k,a);if(e&&g.acceptData(k)&&k[e]&&k[e].apply(k,a)===false)d.result=
false,d.preventDefault();k=k.parentNode||k.ownerDocument||k===d.target.ownerDocument&&c}while(k&&!d.isPropagationStopped());if(!d.isDefaultPrevented()){var n,k=g.event.special[f]||{};if((!k._default||k._default.call(b.ownerDocument,d)===false)&&!(f==="click"&&g.nodeName(b,"a"))&&g.acceptData(b)){try{if(e&&b[f])(n=b[e])&&(b[e]=null),g.event.triggered=f,b[f]()}catch(p){}n&&(b[e]=n);g.event.triggered=h}}return d.result}}else g.each(g.cache,function(){var b=this[g.expando];b&&b.events&&b.events[f]&&g.event.trigger(d,
a,b.handle.elem)})}},handle:function(d){var d=g.event.fix(d||c.event),a=((g._data(this,"events")||{})[d.type]||[]).slice(0),b=!d.exclusive&&!d.namespace,e=Array.prototype.slice.call(arguments,0);e[0]=d;d.currentTarget=this;for(var f=0,k=a.length;f<k;f++){var j=a[f];if(b||d.namespace_re.test(j.namespace)){d.handler=j.handler;d.data=j.data;d.handleObj=j;j=j.handler.apply(this,e);if(j!==h)d.result=j,j===false&&(d.preventDefault(),d.stopPropagation());if(d.isImmediatePropagationStopped())break}}return d.result},
props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(d){if(d[g.expando])return d;for(var a=d,d=g.Event(a),b=this.props.length,e;b;)e=this.props[--b],d[e]=a[e];if(!d.target)d.target=d.srcElement||u;if(d.target.nodeType===
3)d.target=d.target.parentNode;if(!d.relatedTarget&&d.fromElement)d.relatedTarget=d.fromElement===d.target?d.toElement:d.fromElement;if(d.pageX==null&&d.clientX!=null)b=d.target.ownerDocument||u,a=b.documentElement,b=b.body,d.pageX=d.clientX+(a&&a.scrollLeft||b&&b.scrollLeft||0)-(a&&a.clientLeft||b&&b.clientLeft||0),d.pageY=d.clientY+(a&&a.scrollTop||b&&b.scrollTop||0)-(a&&a.clientTop||b&&b.clientTop||0);if(d.which==null&&(d.charCode!=null||d.keyCode!=null))d.which=d.charCode!=null?d.charCode:d.keyCode;
if(!d.metaKey&&d.ctrlKey)d.metaKey=d.ctrlKey;if(!d.which&&d.button!==h)d.which=d.button&1?1:d.button&2?3:d.button&4?2:0;return d},guid:1E8,proxy:g.proxy,special:{ready:{setup:g.bindReady,teardown:g.noop},live:{add:function(d){g.event.add(this,k(d.origType,d.selector),g.extend({},d,{handler:e,guid:d.handler.guid}))},remove:function(d){g.event.remove(this,k(d.origType,d.selector),d)}},beforeunload:{setup:function(d,a,b){if(g.isWindow(this))this.onbeforeunload=b},teardown:function(d,a){if(this.onbeforeunload===
a)this.onbeforeunload=null}}}};g.removeEvent=u.removeEventListener?function(d,a,b){d.removeEventListener&&d.removeEventListener(a,b,false)}:function(d,a,b){d.detachEvent&&d.detachEvent("on"+a,b)};g.Event=function(d,a){if(!this.preventDefault)return new g.Event(d,a);d&&d.type?(this.originalEvent=d,this.type=d.type,this.isDefaultPrevented=d.defaultPrevented||d.returnValue===false||d.getPreventDefault&&d.getPreventDefault()?j:n):this.type=d;a&&g.extend(this,a);this.timeStamp=g.now();this[g.expando]=
true};g.Event.prototype={preventDefault:function(){this.isDefaultPrevented=j;var d=this.originalEvent;if(d)d.preventDefault?d.preventDefault():d.returnValue=false},stopPropagation:function(){this.isPropagationStopped=j;var d=this.originalEvent;if(d)d.stopPropagation&&d.stopPropagation(),d.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=j;this.stopPropagation()},isDefaultPrevented:n,isPropagationStopped:n,isImmediatePropagationStopped:n};var ra=function(d){var a=
d.relatedTarget,b=false,e=d.type;d.type=d.data;if(a!==this&&(a&&(b=g.contains(this,a)),!b))g.event.handle.apply(this,arguments),d.type=e},sa=function(d){d.type=d.data;g.event.handle.apply(this,arguments)};g.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(d,a){g.event.special[d]={setup:function(b){g.event.add(this,a,b&&b.selector?sa:ra,d)},teardown:function(d){g.event.remove(this,a,d&&d.selector?sa:ra)}}});if(!g.support.submitBubbles)g.event.special.submit={setup:function(){if(g.nodeName(this,
"form"))return false;else g.event.add(this,"click.specialSubmit",function(d){var b=d.target,e=g.nodeName(b,"input")?b.type:"";(e==="submit"||e==="image")&&g(b).closest("form").length&&a("submit",this,arguments)}),g.event.add(this,"keypress.specialSubmit",function(d){var b=d.target,e=g.nodeName(b,"input")?b.type:"";(e==="text"||e==="password")&&g(b).closest("form").length&&d.keyCode===13&&a("submit",this,arguments)})},teardown:function(){g.event.remove(this,".specialSubmit")}};if(!g.support.changeBubbles){var W,
ta=function(d){var a=g.nodeName(d,"input")?d.type:"",b=d.value;if(a==="radio"||a==="checkbox")b=d.checked;else if(a==="select-multiple")b=d.selectedIndex>-1?g.map(d.options,function(d){return d.selected}).join("-"):"";else if(g.nodeName(d,"select"))b=d.selectedIndex;return b},aa=function(d,a){var b=d.target,e,c;if(ha.test(b.nodeName)&&!b.readOnly&&(e=g._data(b,"_change_data"),c=ta(b),(d.type!=="focusout"||b.type!=="radio")&&g._data(b,"_change_data",c),!(e===h||c===e)))if(e!=null||c)d.type="change",
d.liveFired=h,g.event.trigger(d,a,b)};g.event.special.change={filters:{focusout:aa,beforedeactivate:aa,click:function(d){var a=d.target,b=g.nodeName(a,"input")?a.type:"";(b==="radio"||b==="checkbox"||g.nodeName(a,"select"))&&aa.call(this,d)},keydown:function(d){var a=d.target,b=g.nodeName(a,"input")?a.type:"";(d.keyCode===13&&!g.nodeName(a,"textarea")||d.keyCode===32&&(b==="checkbox"||b==="radio")||b==="select-multiple")&&aa.call(this,d)},beforeactivate:function(d){d=d.target;g._data(d,"_change_data",
ta(d))}},setup:function(){if(this.type==="file")return false;for(var d in W)g.event.add(this,d+".specialChange",W[d]);return ha.test(this.nodeName)},teardown:function(){g.event.remove(this,".specialChange");return ha.test(this.nodeName)}};W=g.event.special.change.filters;W.focus=W.beforeactivate}g.support.focusinBubbles||g.each({focus:"focusin",blur:"focusout"},function(d,a){function b(d){var e=g.event.fix(d);e.type=a;e.originalEvent={};g.event.trigger(e,null,e.target);e.isDefaultPrevented()&&d.preventDefault()}
var e=0;g.event.special[a]={setup:function(){e++===0&&u.addEventListener(d,b,true)},teardown:function(){--e===0&&u.removeEventListener(d,b,true)}}});g.each(["bind","one"],function(d,a){g.fn[a]=function(d,b,e){var c;if(typeof d==="object"){for(var f in d)this[a](f,b,d[f],e);return this}if(arguments.length===2||b===false)e=b,b=h;a==="one"?(c=function(d){g(this).unbind(d,c);return e.apply(this,arguments)},c.guid=e.guid||g.guid++):c=e;if(d==="unload"&&a!=="one")this.one(d,b,e);else{f=0;for(var k=this.length;f<
k;f++)g.event.add(this[f],d,c,b)}return this}});g.fn.extend({unbind:function(d,a){if(typeof d==="object"&&!d.preventDefault)for(var b in d)this.unbind(b,d[b]);else{b=0;for(var e=this.length;b<e;b++)g.event.remove(this[b],d,a)}return this},delegate:function(d,a,b,e){return this.live(a,b,e,d)},undelegate:function(d,a,b){return arguments.length===0?this.unbind("live"):this.die(a,null,b,d)},trigger:function(d,a){return this.each(function(){g.event.trigger(d,a,this)})},triggerHandler:function(d,a){if(this[0])return g.event.trigger(d,
a,this[0],true)},toggle:function(d){var a=arguments,b=d.guid||g.guid++,e=0,c=function(b){var c=(g.data(this,"lastToggle"+d.guid)||0)%e;g.data(this,"lastToggle"+d.guid,c+1);b.preventDefault();return a[c].apply(this,arguments)||false};for(c.guid=b;e<a.length;)a[e++].guid=b;return this.click(c)},hover:function(d,a){return this.mouseenter(d).mouseleave(a||d)}});var ia={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};g.each(["live","die"],function(d,a){g.fn[a]=function(d,
b,e,c){var f=0,j,p,m=c||this.selector,s=c?this:g(this.context);if(typeof d==="object"&&!d.preventDefault){for(j in d)s[a](j,b,d[j],m);return this}if(a==="die"&&!d&&c&&c.charAt(0)===".")return s.unbind(c),this;if(b===false||g.isFunction(b))e=b||n,b=h;for(d=(d||"").split(" ");(c=d[f++])!=null;)if(j=da.exec(c),p="",j&&(p=j[0],c=c.replace(da,"")),c==="hover")d.push("mouseenter"+p,"mouseleave"+p);else if(j=c,ia[c]?(d.push(ia[c]+p),c+=p):c=(ia[c]||c)+p,a==="live"){p=0;for(var r=s.length;p<r;p++)g.event.add(s[p],
"live."+k(c,m),{data:b,selector:m,handler:e,origType:c,origHandler:e,preType:j})}else s.unbind("live."+k(c,m),e);return this}});g.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(d,a){g.fn[a]=function(d,b){b==null&&(b=d,d=null);return arguments.length>0?this.bind(a,d,b):this.trigger(a)};g.attrFn&&(g.attrFn[a]=true)});(function(){function d(d,
a,b,e,g,c){for(var g=0,f=e.length;g<f;g++){var k=e[g];if(k){for(var j=false,k=k[d];k;){if(k.sizcache===b){j=e[k.sizset];break}if(k.nodeType===1&&!c)k.sizcache=b,k.sizset=g;if(k.nodeName.toLowerCase()===a){j=k;break}k=k[d]}e[g]=j}}}function a(d,b,e,g,c,f){for(var c=0,k=g.length;c<k;c++){var j=g[c];if(j){for(var n=false,j=j[d];j;){if(j.sizcache===e){n=g[j.sizset];break}if(j.nodeType===1){if(!f)j.sizcache=e,j.sizset=c;if(typeof b!=="string"){if(j===b){n=true;break}}else if(p.filter(b,[j]).length>0){n=
j;break}}j=j[d]}g[c]=n}}}var b=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,c=Object.prototype.toString,f=false,k=true,j=/\\/g,n=/\W/;[0,0].sort(function(){k=false;return 0});var p=function(d,a,e,g){var e=e||[],f=a=a||u;if(a.nodeType!==1&&a.nodeType!==9)return[];if(!d||typeof d!=="string")return e;var k,j,n,h,q,r=true,o=p.isXML(a),w=[],B=d;do if(b.exec(""),k=b.exec(B))if(B=k[3],w.push(k[1]),k[2]){h=k[3];break}while(k);
if(w.length>1&&s.exec(d))if(w.length===2&&m.relative[w[0]])j=y(w[0]+w[1],a);else for(j=m.relative[w[0]]?[a]:p(w.shift(),a);w.length;)d=w.shift(),m.relative[d]&&(d+=w.shift()),j=y(d,j);else if(!g&&w.length>1&&a.nodeType===9&&!o&&m.match.ID.test(w[0])&&!m.match.ID.test(w[w.length-1])&&(k=p.find(w.shift(),a,o),a=k.expr?p.filter(k.expr,k.set)[0]:k.set[0]),a){k=g?{expr:w.pop(),set:x(g)}:p.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&a.parentNode?a.parentNode:a,o);j=k.expr?p.filter(k.expr,k.set):
k.set;for(w.length>0?n=x(j):r=false;w.length;)k=q=w.pop(),m.relative[q]?k=w.pop():q="",k==null&&(k=a),m.relative[q](n,k,o)}else n=[];n||(n=j);n||p.error(q||d);if(c.call(n)==="[object Array]")if(r)if(a&&a.nodeType===1)for(d=0;n[d]!=null;d++)n[d]&&(n[d]===true||n[d].nodeType===1&&p.contains(a,n[d]))&&e.push(j[d]);else for(d=0;n[d]!=null;d++)n[d]&&n[d].nodeType===1&&e.push(j[d]);else e.push.apply(e,n);else x(n,e);h&&(p(h,f,e,g),p.uniqueSort(e));return e};p.uniqueSort=function(d){if(B&&(f=k,d.sort(B),
f))for(var a=1;a<d.length;a++)d[a]===d[a-1]&&d.splice(a--,1);return d};p.matches=function(d,a){return p(d,null,null,a)};p.matchesSelector=function(d,a){return p(a,null,null,[d]).length>0};p.find=function(d,a,b){var e;if(!d)return[];for(var g=0,c=m.order.length;g<c;g++){var f,k=m.order[g];if(f=m.leftMatch[k].exec(d)){var n=f[1];f.splice(1,1);if(n.substr(n.length-1)!=="\\"&&(f[1]=(f[1]||"").replace(j,""),e=m.find[k](f,a,b),e!=null)){d=d.replace(m.match[k],"");break}}}e||(e=typeof a.getElementsByTagName!==
"undefined"?a.getElementsByTagName("*"):[]);return{set:e,expr:d}};p.filter=function(d,a,b,e){for(var g,c,f=d,k=[],j=a,n=a&&a[0]&&p.isXML(a[0]);d&&a.length;){for(var s in m.filter)if((g=m.leftMatch[s].exec(d))!=null&&g[2]){var q,r,u=m.filter[s];r=g[1];c=false;g.splice(1,1);if(r.substr(r.length-1)!=="\\"){j===k&&(k=[]);if(m.preFilter[s])if(g=m.preFilter[s](g,j,b,k,e,n)){if(g===true)continue}else c=q=true;if(g)for(var o=0;(r=j[o])!=null;o++)if(r){q=u(r,g,o,j);var x=e^!!q;b&&q!=null?x?c=true:j[o]=false:
x&&(k.push(r),c=true)}if(q!==h){b||(j=k);d=d.replace(m.match[s],"");if(!c)return[];break}}}if(d===f)if(c==null)p.error(d);else break;f=d}return j};p.error=function(d){throw"Syntax error, unrecognized expression: "+d;};var m=p.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(d){return d.getAttribute("href")},type:function(d){return d.getAttribute("type")}},relative:{"+":function(d,a){var b=
typeof a==="string",e=b&&!n.test(a),b=b&&!e;e&&(a=a.toLowerCase());for(var e=0,g=d.length,c;e<g;e++)if(c=d[e]){for(;(c=c.previousSibling)&&c.nodeType!==1;);d[e]=b||c&&c.nodeName.toLowerCase()===a?c||false:c===a}b&&p.filter(a,d,true)},">":function(d,a){var b,e=typeof a==="string",g=0,c=d.length;if(e&&!n.test(a))for(a=a.toLowerCase();g<c;g++){if(b=d[g])b=b.parentNode,d[g]=b.nodeName.toLowerCase()===a?b:false}else{for(;g<c;g++)(b=d[g])&&(d[g]=e?b.parentNode:b.parentNode===a);e&&p.filter(a,d,true)}},
"":function(b,g,c){var f,k=e++,j=a;typeof g==="string"&&!n.test(g)&&(f=g=g.toLowerCase(),j=d);j("parentNode",g,k,b,f,c)},"~":function(b,g,c){var f,k=e++,j=a;typeof g==="string"&&!n.test(g)&&(f=g=g.toLowerCase(),j=d);j("previousSibling",g,k,b,f,c)}},find:{ID:function(d,a,b){if(typeof a.getElementById!=="undefined"&&!b)return(d=a.getElementById(d[1]))&&d.parentNode?[d]:[]},NAME:function(d,a){if(typeof a.getElementsByName!=="undefined"){for(var b=[],e=a.getElementsByName(d[1]),g=0,c=e.length;g<c;g++)e[g].getAttribute("name")===
d[1]&&b.push(e[g]);return b.length===0?null:b}},TAG:function(d,a){if(typeof a.getElementsByTagName!=="undefined")return a.getElementsByTagName(d[1])}},preFilter:{CLASS:function(d,a,b,e,g,c){d=" "+d[1].replace(j,"")+" ";if(c)return d;for(var c=0,f;(f=a[c])!=null;c++)f&&(g^(f.className&&(" "+f.className+" ").replace(/[\t\n\r]/g," ").indexOf(d)>=0)?b||e.push(f):b&&(a[c]=false));return false},ID:function(d){return d[1].replace(j,"")},TAG:function(d){return d[1].replace(j,"").toLowerCase()},CHILD:function(d){if(d[1]===
"nth"){d[2]||p.error(d[0]);d[2]=d[2].replace(/^\+|\s*/g,"");var a=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(d[2]==="even"&&"2n"||d[2]==="odd"&&"2n+1"||!/\D/.test(d[2])&&"0n+"+d[2]||d[2]);d[2]=a[1]+(a[2]||1)-0;d[3]=a[3]-0}else d[2]&&p.error(d[0]);d[0]=e++;return d},ATTR:function(d,a,b,e,g,c){a=d[1]=d[1].replace(j,"");!c&&m.attrMap[a]&&(d[1]=m.attrMap[a]);d[4]=(d[4]||d[5]||"").replace(j,"");d[2]==="~="&&(d[4]=" "+d[4]+" ");return d},PSEUDO:function(d,a,e,g,c){if(d[1]==="not")if((b.exec(d[3])||"").length>1||
/^\w/.test(d[3]))d[3]=p(d[3],null,null,a);else return d=p.filter(d[3],a,e,1^c),e||g.push.apply(g,d),false;else if(m.match.POS.test(d[0])||m.match.CHILD.test(d[0]))return true;return d},POS:function(d){d.unshift(true);return d}},filters:{enabled:function(d){return d.disabled===false&&d.type!=="hidden"},disabled:function(d){return d.disabled===true},checked:function(d){return d.checked===true},selected:function(d){return d.selected===true},parent:function(d){return!!d.firstChild},empty:function(d){return!d.firstChild},
has:function(d,a,b){return!!p(b[3],d).length},header:function(d){return/h\d/i.test(d.nodeName)},text:function(d){var a=d.getAttribute("type"),b=d.type;return d.nodeName.toLowerCase()==="input"&&"text"===b&&(a===b||a===null)},radio:function(d){return d.nodeName.toLowerCase()==="input"&&"radio"===d.type},checkbox:function(d){return d.nodeName.toLowerCase()==="input"&&"checkbox"===d.type},file:function(d){return d.nodeName.toLowerCase()==="input"&&"file"===d.type},password:function(d){return d.nodeName.toLowerCase()===
"input"&&"password"===d.type},submit:function(d){var a=d.nodeName.toLowerCase();return(a==="input"||a==="button")&&"submit"===d.type},image:function(d){return d.nodeName.toLowerCase()==="input"&&"image"===d.type},reset:function(d){var a=d.nodeName.toLowerCase();return(a==="input"||a==="button")&&"reset"===d.type},button:function(d){var a=d.nodeName.toLowerCase();return a==="input"&&"button"===d.type||a==="button"},input:function(d){return/input|select|textarea|button/i.test(d.nodeName)},focus:function(d){return d===
d.ownerDocument.activeElement}},setFilters:{first:function(d,a){return a===0},last:function(d,a,b,e){return a===e.length-1},even:function(d,a){return a%2===0},odd:function(d,a){return a%2===1},lt:function(d,a,b){return a<b[3]-0},gt:function(d,a,b){return a>b[3]-0},nth:function(d,a,b){return b[3]-0===a},eq:function(d,a,b){return b[3]-0===a}},filter:{PSEUDO:function(d,a,b,e){var g=a[1],c=m.filters[g];if(c)return c(d,b,a,e);else if(g==="contains")return(d.textContent||d.innerText||p.getText([d])||"").indexOf(a[3])>=
0;else if(g==="not"){a=a[3];b=0;for(e=a.length;b<e;b++)if(a[b]===d)return false;return true}else p.error(g)},CHILD:function(d,a){var b=a[1],e=d;switch(b){case "only":case "first":for(;e=e.previousSibling;)if(e.nodeType===1)return false;if(b==="first")return true;e=d;case "last":for(;e=e.nextSibling;)if(e.nodeType===1)return false;return true;case "nth":var b=a[2],g=a[3];if(b===1&&g===0)return true;var c=a[0],f=d.parentNode;if(f&&(f.sizcache!==c||!d.nodeIndex)){for(var k=0,e=f.firstChild;e;e=e.nextSibling)if(e.nodeType===
1)e.nodeIndex=++k;f.sizcache=c}e=d.nodeIndex-g;return b===0?e===0:e%b===0&&e/b>=0}},ID:function(d,a){return d.nodeType===1&&d.getAttribute("id")===a},TAG:function(d,a){return a==="*"&&d.nodeType===1||d.nodeName.toLowerCase()===a},CLASS:function(d,a){return(" "+(d.className||d.getAttribute("class"))+" ").indexOf(a)>-1},ATTR:function(d,a){var b=a[1],b=m.attrHandle[b]?m.attrHandle[b](d):d[b]!=null?d[b]:d.getAttribute(b),e=b+"",g=a[2],c=a[4];return b==null?g==="!=":g==="="?e===c:g==="*="?e.indexOf(c)>=
0:g==="~="?(" "+e+" ").indexOf(c)>=0:!c?e&&b!==false:g==="!="?e!==c:g==="^="?e.indexOf(c)===0:g==="$="?e.substr(e.length-c.length)===c:g==="|="?e===c||e.substr(0,c.length+1)===c+"-":false},POS:function(d,a,b,e){var g=m.setFilters[a[2]];if(g)return g(d,b,a,e)}}},s=m.match.POS,r=function(d,a){return"\\"+(a-0+1)},o;for(o in m.match)m.match[o]=RegExp(m.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),m.leftMatch[o]=RegExp(/(^(?:.|\r|\n)*?)/.source+m.match[o].source.replace(/\\(\d+)/g,r));var x=function(d,
a){d=Array.prototype.slice.call(d,0);return a?(a.push.apply(a,d),a):d};try{Array.prototype.slice.call(u.documentElement.childNodes,0)}catch(w){x=function(d,a){var b=0,e=a||[];if(c.call(d)==="[object Array]")Array.prototype.push.apply(e,d);else if(typeof d.length==="number")for(var g=d.length;b<g;b++)e.push(d[b]);else for(;d[b];b++)e.push(d[b]);return e}}var B,A;u.documentElement.compareDocumentPosition?B=function(d,a){return d===a?(f=true,0):!d.compareDocumentPosition||!a.compareDocumentPosition?
d.compareDocumentPosition?-1:1:d.compareDocumentPosition(a)&4?-1:1}:(B=function(d,a){if(d===a)return f=true,0;else if(d.sourceIndex&&a.sourceIndex)return d.sourceIndex-a.sourceIndex;var b,e,g=[],c=[];b=d.parentNode;e=a.parentNode;var k=b;if(b===e)return A(d,a);else if(b){if(!e)return 1}else return-1;for(;k;)g.unshift(k),k=k.parentNode;for(k=e;k;)c.unshift(k),k=k.parentNode;b=g.length;e=c.length;for(k=0;k<b&&k<e;k++)if(g[k]!==c[k])return A(g[k],c[k]);return k===b?A(d,c[k],-1):A(g[k],a,1)},A=function(d,
a,b){if(d===a)return b;for(d=d.nextSibling;d;){if(d===a)return-1;d=d.nextSibling}return 1});p.getText=function(d){for(var a="",b,e=0;d[e];e++)b=d[e],b.nodeType===3||b.nodeType===4?a+=b.nodeValue:b.nodeType!==8&&(a+=p.getText(b.childNodes));return a};(function(){var d=u.createElement("div"),a="script"+(new Date).getTime(),b=u.documentElement;d.innerHTML="<a name='"+a+"'/>";b.insertBefore(d,b.firstChild);if(u.getElementById(a))m.find.ID=function(d,a,b){if(typeof a.getElementById!=="undefined"&&!b)return(a=
a.getElementById(d[1]))?a.id===d[1]||typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id").nodeValue===d[1]?[a]:h:[]},m.filter.ID=function(d,a){var b=typeof d.getAttributeNode!=="undefined"&&d.getAttributeNode("id");return d.nodeType===1&&b&&b.nodeValue===a};b.removeChild(d);b=d=null})();(function(){var d=u.createElement("div");d.appendChild(u.createComment(""));if(d.getElementsByTagName("*").length>0)m.find.TAG=function(d,a){var b=a.getElementsByTagName(d[1]);if(d[1]==="*"){for(var e=
[],g=0;b[g];g++)b[g].nodeType===1&&e.push(b[g]);b=e}return b};d.innerHTML="<a href='#'></a>";if(d.firstChild&&typeof d.firstChild.getAttribute!=="undefined"&&d.firstChild.getAttribute("href")!=="#")m.attrHandle.href=function(d){return d.getAttribute("href",2)};d=null})();u.querySelectorAll&&function(){var d=p,a=u.createElement("div");a.innerHTML="<p class='TEST'></p>";if(!(a.querySelectorAll&&a.querySelectorAll(".TEST").length===0)){p=function(a,b,e,g){b=b||u;if(!g&&!p.isXML(b)){var c=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(a);
if(c&&(b.nodeType===1||b.nodeType===9))if(c[1])return x(b.getElementsByTagName(a),e);else if(c[2]&&m.find.CLASS&&b.getElementsByClassName)return x(b.getElementsByClassName(c[2]),e);if(b.nodeType===9){if(a==="body"&&b.body)return x([b.body],e);else if(c&&c[3]){var f=b.getElementById(c[3]);if(f&&f.parentNode){if(f.id===c[3])return x([f],e)}else return x([],e)}try{return x(b.querySelectorAll(a),e)}catch(k){}}else if(b.nodeType===1&&b.nodeName.toLowerCase()!=="object"){var c=b,j=(f=b.getAttribute("id"))||
"__sizzle__",n=b.parentNode,s=/^\s*[+~]/.test(a);f?j=j.replace(/'/g,"\\$&"):b.setAttribute("id",j);if(s&&n)b=b.parentNode;try{if(!s||n)return x(b.querySelectorAll("[id='"+j+"'] "+a),e)}catch(h){}finally{f||c.removeAttribute("id")}}}return d(a,b,e,g)};for(var b in d)p[b]=d[b];a=null}}();(function(){var d=u.documentElement,a=d.matchesSelector||d.mozMatchesSelector||d.webkitMatchesSelector||d.msMatchesSelector;if(a){var b=!a.call(u.createElement("div"),"div"),e=false;try{a.call(u.documentElement,"[test!='']:sizzle")}catch(g){e=
true}p.matchesSelector=function(d,g){g=g.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!p.isXML(d))try{if(e||!m.match.PSEUDO.test(g)&&!/!=/.test(g)){var c=a.call(d,g);if(c||!b||d.document&&d.document.nodeType!==11)return c}}catch(f){}return p(g,null,null,[d]).length>0}}})();(function(){var d=u.createElement("div");d.innerHTML="<div class='test e'></div><div class='test'></div>";if(d.getElementsByClassName&&d.getElementsByClassName("e").length!==0&&(d.lastChild.className="e",d.getElementsByClassName("e").length!==
1))m.order.splice(1,0,"CLASS"),m.find.CLASS=function(d,a,b){if(typeof a.getElementsByClassName!=="undefined"&&!b)return a.getElementsByClassName(d[1])},d=null})();p.contains=u.documentElement.contains?function(d,a){return d!==a&&(d.contains?d.contains(a):true)}:u.documentElement.compareDocumentPosition?function(d,a){return!!(d.compareDocumentPosition(a)&16)}:function(){return false};p.isXML=function(d){return(d=(d?d.ownerDocument||d:0).documentElement)?d.nodeName!=="HTML":false};var y=function(d,
a){for(var b,e=[],g="",c=a.nodeType?[a]:a;b=m.match.PSEUDO.exec(d);)g+=b[0],d=d.replace(m.match.PSEUDO,"");d=m.relative[d]?d+"*":d;b=0;for(var f=c.length;b<f;b++)p(d,c[b],e);return p.filter(g,e)};g.find=p;g.expr=p.selectors;g.expr[":"]=g.expr.filters;g.unique=p.uniqueSort;g.text=p.getText;g.isXMLDoc=p.isXML;g.contains=p.contains})();var Xa=/Until$/,Ya=/^(?:parents|prevUntil|prevAll)/,Za=/,/,Ma=/^.[^:#\[\.,]*$/,$a=Array.prototype.slice,ua=g.expr.match.POS,ab={children:true,contents:true,next:true,
prev:true};g.fn.extend({find:function(d){var a=this,b,e;if(typeof d!=="string")return g(d).filter(function(){for(b=0,e=a.length;b<e;b++)if(g.contains(a[b],this))return true});var c=this.pushStack("","find",d),f,k,j;for(b=0,e=this.length;b<e;b++)if(f=c.length,g.find(d,this[b],c),b>0)for(k=f;k<c.length;k++)for(j=0;j<f;j++)if(c[j]===c[k]){c.splice(k--,1);break}return c},has:function(d){var a=g(d);return this.filter(function(){for(var d=0,b=a.length;d<b;d++)if(g.contains(this,a[d]))return true})},not:function(d){return this.pushStack(v(this,
d,false),"not",d)},filter:function(d){return this.pushStack(v(this,d,true),"filter",d)},is:function(d){return!!d&&(typeof d==="string"?g.filter(d,this).length>0:this.filter(d).length>0)},closest:function(d,a){var b=[],e,c,f=this[0];if(g.isArray(d)){var k,j={},n=1;if(f&&d.length){for(e=0,c=d.length;e<c;e++)k=d[e],j[k]||(j[k]=ua.test(k)?g(k,a||this.context):k);for(;f&&f.ownerDocument&&f!==a;){for(k in j)e=j[k],(e.jquery?e.index(f)>-1:g(f).is(e))&&b.push({selector:k,elem:f,level:n});f=f.parentNode;n++}}return b}k=
ua.test(d)||typeof d!=="string"?g(d,a||this.context):0;for(e=0,c=this.length;e<c;e++)for(f=this[e];f;)if(k?k.index(f)>-1:g.find.matchesSelector(f,d)){b.push(f);break}else if(f=f.parentNode,!f||!f.ownerDocument||f===a||f.nodeType===11)break;b=b.length>1?g.unique(b):b;return this.pushStack(b,"closest",d)},index:function(d){return!d?this[0]&&this[0].parentNode?this.prevAll().length:-1:typeof d==="string"?g.inArray(this[0],g(d)):g.inArray(d.jquery?d[0]:d,this)},add:function(d,a){var b=typeof d==="string"?
g(d,a):g.makeArray(d&&d.nodeType?[d]:d),e=g.merge(this.get(),b);return this.pushStack(!b[0]||!b[0].parentNode||b[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:g.unique(e))},andSelf:function(){return this.add(this.prevObject)}});g.each({parent:function(d){return(d=d.parentNode)&&d.nodeType!==11?d:null},parents:function(d){return g.dir(d,"parentNode")},parentsUntil:function(d,a,b){return g.dir(d,"parentNode",b)},next:function(d){return g.nth(d,2,"nextSibling")},
prev:function(d){return g.nth(d,2,"previousSibling")},nextAll:function(d){return g.dir(d,"nextSibling")},prevAll:function(d){return g.dir(d,"previousSibling")},nextUntil:function(d,a,b){return g.dir(d,"nextSibling",b)},prevUntil:function(d,a,b){return g.dir(d,"previousSibling",b)},siblings:function(d){return g.sibling(d.parentNode.firstChild,d)},children:function(d){return g.sibling(d.firstChild)},contents:function(d){return g.nodeName(d,"iframe")?d.contentDocument||d.contentWindow.document:g.makeArray(d.childNodes)}},
function(d,a){g.fn[d]=function(b,e){var c=g.map(this,a,b),f=$a.call(arguments);Xa.test(d)||(e=b);e&&typeof e==="string"&&(c=g.filter(e,c));c=this.length>1&&!ab[d]?g.unique(c):c;if((this.length>1||Za.test(e))&&Ya.test(d))c=c.reverse();return this.pushStack(c,d,f.join(","))}});g.extend({filter:function(d,a,b){b&&(d=":not("+d+")");return a.length===1?g.find.matchesSelector(a[0],d)?[a[0]]:[]:g.find.matches(d,a)},dir:function(d,a,b){for(var e=[],d=d[a];d&&d.nodeType!==9&&(b===h||d.nodeType!==1||!g(d).is(b));)d.nodeType===
1&&e.push(d),d=d[a];return e},nth:function(d,a,b){for(var a=a||1,e=0;d;d=d[b])if(d.nodeType===1&&++e===a)break;return d},sibling:function(d,a){for(var b=[];d;d=d.nextSibling)d.nodeType===1&&d!==a&&b.push(d);return b}});var bb=/ jQuery\d+="(?:\d+|null)"/g,ja=/^\s+/,va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,wa=/<([\w:]+)/,cb=/<tbody/i,db=/<|&#?\w+;/,xa=/<(?:script|object|embed|option|style)/i,ya=/checked\s*(?:[^=]|=\s*.checked.)/i,eb=/\/(java|ecma)script/i,Na=/^\s*<!(?:\[CDATA\[|\-\-)/,
J={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};J.optgroup=J.option;J.tbody=J.tfoot=J.colgroup=J.caption=J.thead;J.th=J.td;if(!g.support.htmlSerialize)J._default=[1,"div<div>","</div>"];g.fn.extend({text:function(d){return g.isFunction(d)?
this.each(function(a){var b=g(this);b.text(d.call(this,a,b.text()))}):typeof d!=="object"&&d!==h?this.empty().append((this[0]&&this[0].ownerDocument||u).createTextNode(d)):g.text(this)},wrapAll:function(d){if(g.isFunction(d))return this.each(function(a){g(this).wrapAll(d.call(this,a))});if(this[0]){var a=g(d,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&a.insertBefore(this[0]);a.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(d){return g.isFunction(d)?this.each(function(a){g(this).wrapInner(d.call(this,a))}):this.each(function(){var a=g(this),b=a.contents();b.length?b.wrapAll(d):a.append(d)})},wrap:function(d){return this.each(function(){g(this).wrapAll(d)})},unwrap:function(){return this.parent().each(function(){g.nodeName(this,"body")||g(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(d){this.nodeType===1&&this.appendChild(d)})},prepend:function(){return this.domManip(arguments,
true,function(d){this.nodeType===1&&this.insertBefore(d,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(d){this.parentNode.insertBefore(d,this)});else if(arguments.length){var d=g(arguments[0]);d.push.apply(d,this.toArray());return this.pushStack(d,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(d){this.parentNode.insertBefore(d,this.nextSibling)});else if(arguments.length){var d=
this.pushStack(this,"after",arguments);d.push.apply(d,g(arguments[0]).toArray());return d}},remove:function(d,a){for(var b=0,e;(e=this[b])!=null;b++)if(!d||g.filter(d,[e]).length)!a&&e.nodeType===1&&(g.cleanData(e.getElementsByTagName("*")),g.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var d=0,a;(a=this[d])!=null;d++)for(a.nodeType===1&&g.cleanData(a.getElementsByTagName("*"));a.firstChild;)a.removeChild(a.firstChild);return this},clone:function(d,a){d=
d==null?false:d;a=a==null?d:a;return this.map(function(){return g.clone(this,d,a)})},html:function(d){if(d===h)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(bb,""):null;else if(typeof d==="string"&&!xa.test(d)&&(g.support.leadingWhitespace||!ja.test(d))&&!J[(wa.exec(d)||["",""])[1].toLowerCase()]){d=d.replace(va,"<$1></$2>");try{for(var a=0,b=this.length;a<b;a++)if(this[a].nodeType===1)g.cleanData(this[a].getElementsByTagName("*")),this[a].innerHTML=d}catch(e){this.empty().append(d)}}else g.isFunction(d)?
this.each(function(a){var b=g(this);b.html(d.call(this,a,b.html()))}):this.empty().append(d);return this},replaceWith:function(d){if(this[0]&&this[0].parentNode){if(g.isFunction(d))return this.each(function(a){var b=g(this),e=b.html();b.replaceWith(d.call(this,a,e))});typeof d!=="string"&&(d=g(d).detach());return this.each(function(){var a=this.nextSibling,b=this.parentNode;g(this).remove();a?g(a).before(d):g(b).append(d)})}else return this.length?this.pushStack(g(g.isFunction(d)?d():d),"replaceWith",
d):this},detach:function(d){return this.remove(d,true)},domManip:function(d,a,b){var e,c,f,k=d[0],j=[];if(!g.support.checkClone&&arguments.length===3&&typeof k==="string"&&ya.test(k))return this.each(function(){g(this).domManip(d,a,b,true)});if(g.isFunction(k))return this.each(function(e){var c=g(this);d[0]=k.call(this,e,a?c.html():h);c.domManip(d,a,b)});if(this[0]){e=k&&k.parentNode;e=g.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:g.buildFragment(d,this,
j);f=e.fragment;if(c=f.childNodes.length===1?f=f.firstChild:f.firstChild){a=a&&g.nodeName(c,"tr");c=0;for(var n=this.length,p=n-1;c<n;c++)b.call(a?g.nodeName(this[c],"table")?this[c].getElementsByTagName("tbody")[0]||this[c].appendChild(this[c].ownerDocument.createElement("tbody")):this[c]:this[c],e.cacheable||n>1&&c<p?g.clone(f,true,true):f)}j.length&&g.each(j,w)}return this}});g.buildFragment=function(d,a,b){var e,c,f,k;a&&a[0]&&(k=a[0].ownerDocument||a[0]);k.createDocumentFragment||(k=u);if(d.length===
1&&typeof d[0]==="string"&&d[0].length<512&&k===u&&d[0].charAt(0)==="<"&&!xa.test(d[0])&&(g.support.checkClone||!ya.test(d[0])))c=true,(f=g.fragments[d[0]])&&f!==1&&(e=f);e||(e=k.createDocumentFragment(),g.clean(d,k,e,b));c&&(g.fragments[d[0]]=f?e:1);return{fragment:e,cacheable:c}};g.fragments={};g.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(d,a){g.fn[d]=function(b){var e=[],b=g(b),c=this.length===1&&this[0].parentNode;if(c&&
c.nodeType===11&&c.childNodes.length===1&&b.length===1)return b[a](this[0]),this;else{for(var c=0,f=b.length;c<f;c++){var k=(c>0?this.clone(true):this).get();g(b[c])[a](k);e=e.concat(k)}return this.pushStack(e,d,b.selector)}}});g.extend({clone:function(d,a,b){var e=d.cloneNode(true),c,f,k;if((!g.support.noCloneEvent||!g.support.noCloneChecked)&&(d.nodeType===1||d.nodeType===11)&&!g.isXMLDoc(d)){t(d,e);c=r(d);f=r(e);for(k=0;c[k];++k)f[k]&&t(c[k],f[k])}if(a&&(y(d,e),b)){c=r(d);f=r(e);for(k=0;c[k];++k)y(c[k],
f[k])}return e},clean:function(d,a,b,e){a=a||u;typeof a.createElement==="undefined"&&(a=a.ownerDocument||a[0]&&a[0].ownerDocument||u);for(var c=[],f,k=0,j;(j=d[k])!=null;k++)if(typeof j==="number"&&(j+=""),j){if(typeof j==="string")if(db.test(j)){j=j.replace(va,"<$1></$2>");f=(wa.exec(j)||["",""])[1].toLowerCase();var n=J[f]||J._default,m=n[0],s=a.createElement("div");for(s.innerHTML=n[1]+j+n[2];m--;)s=s.lastChild;if(!g.support.tbody){m=cb.test(j);n=f==="table"&&!m?s.firstChild&&s.firstChild.childNodes:
n[1]==="<table>"&&!m?s.childNodes:[];for(f=n.length-1;f>=0;--f)g.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!g.support.leadingWhitespace&&ja.test(j)&&s.insertBefore(a.createTextNode(ja.exec(j)[0]),s.firstChild);j=s.childNodes}else j=a.createTextNode(j);var h;if(!g.support.appendChecked)if(j[0]&&typeof(h=j.length)==="number")for(f=0;f<h;f++)p(j[f]);else p(j);j.nodeType?c.push(j):c=g.merge(c,j)}if(b){d=function(d){return!d.type||eb.test(d.type)};for(k=0;c[k];k++)e&&
g.nodeName(c[k],"script")&&(!c[k].type||c[k].type.toLowerCase()==="text/javascript")?e.push(c[k].parentNode?c[k].parentNode.removeChild(c[k]):c[k]):(c[k].nodeType===1&&(a=g.grep(c[k].getElementsByTagName("script"),d),c.splice.apply(c,[k+1,0].concat(a))),b.appendChild(c[k]))}return c},cleanData:function(d){for(var a,b,e=g.cache,c=g.expando,f=g.event.special,k=g.support.deleteExpando,j=0,n;(n=d[j])!=null;j++)if(!n.nodeName||!g.noData[n.nodeName.toLowerCase()])if(b=n[g.expando]){if((a=e[b]&&e[b][c])&&
a.events){for(var p in a.events)f[p]?g.event.remove(n,p):g.removeEvent(n,p,a.handle);if(a.handle)a.handle.elem=null}k?delete n[g.expando]:n.removeAttribute&&n.removeAttribute(g.expando);delete e[b]}}});var ka=/alpha\([^)]*\)/i,fb=/opacity=([^)]*)/,gb=/([A-Z]|^ms)/g,za=/^-?\d+(?:px)?$/i,hb=/^-?\d/,ib=/^([\-+])=([\-+.\de]+)/,jb={position:"absolute",visibility:"hidden",display:"block"},Oa=["Left","Right"],Pa=["Top","Bottom"],T,Aa,Ba;g.fn.css=function(d,a){return arguments.length===2&&a===h?this:g.access(this,
d,a,true,function(d,a,b){return b!==h?g.style(d,a,b):g.css(d,a)})};g.extend({cssHooks:{opacity:{get:function(d,a){if(a){var b=T(d,"opacity","opacity");return b===""?"1":b}else return d.style.opacity}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":g.support.cssFloat?"cssFloat":"styleFloat"},style:function(d,a,b,e){if(d&&!(d.nodeType===3||d.nodeType===8||!d.style)){var c,f=g.camelCase(a),k=d.style,j=g.cssHooks[f],
a=g.cssProps[f]||f;if(b!==h){e=typeof b;if(e==="string"&&(c=ib.exec(b)))b=+(c[1]+1)*+c[2]+parseFloat(g.css(d,a)),e="number";if(!(b==null||e==="number"&&isNaN(b)))if(e==="number"&&!g.cssNumber[f]&&(b+="px"),!j||!("set"in j)||(b=j.set(d,b))!==h)try{k[a]=b}catch(n){}}else return j&&"get"in j&&(c=j.get(d,false,e))!==h?c:k[a]}},css:function(d,a,b){var e,c,a=g.camelCase(a);c=g.cssHooks[a];a=g.cssProps[a]||a;a==="cssFloat"&&(a="float");if(c&&"get"in c&&(e=c.get(d,true,b))!==h)return e;else if(T)return T(d,
a)},swap:function(d,a,b){var e={},c;for(c in a)e[c]=d.style[c],d.style[c]=a[c];b.call(d);for(c in a)d.style[c]=e[c]}});g.curCSS=g.css;g.each(["height","width"],function(d,a){g.cssHooks[a]={get:function(d,b,e){var c;if(b){if(d.offsetWidth!==0)return A(d,a,e);else g.swap(d,jb,function(){c=A(d,a,e)});return c}},set:function(d,a){if(za.test(a)){if(a=parseFloat(a),a>=0)return a+"px"}else return a}}});if(!g.support.opacity)g.cssHooks.opacity={get:function(d,a){return fb.test((a&&d.currentStyle?d.currentStyle.filter:
d.style.filter)||"")?parseFloat(RegExp.$1)/100+"":a?"1":""},set:function(d,a){var b=d.style,e=d.currentStyle,c=g.isNaN(a)?"":"alpha(opacity="+a*100+")",f=e&&e.filter||b.filter||"";b.zoom=1;if(a>=1&&g.trim(f.replace(ka,""))===""&&(b.removeAttribute("filter"),e&&!e.filter))return;b.filter=ka.test(f)?f.replace(ka,c):f+" "+c}};g(function(){if(!g.support.reliableMarginRight)g.cssHooks.marginRight={get:function(d,a){var b;g.swap(d,{display:"inline-block"},function(){b=a?T(d,"margin-right","marginRight"):
d.style.marginRight});return b}}});u.defaultView&&u.defaultView.getComputedStyle&&(Aa=function(d,a){var b,e,a=a.replace(gb,"-$1").toLowerCase();if(!(e=d.ownerDocument.defaultView))return h;if(e=e.getComputedStyle(d,null))b=e.getPropertyValue(a),b===""&&!g.contains(d.ownerDocument.documentElement,d)&&(b=g.style(d,a));return b});u.documentElement.currentStyle&&(Ba=function(d,a){var b,e=d.currentStyle&&d.currentStyle[a],c=d.runtimeStyle&&d.runtimeStyle[a],g=d.style;if(!za.test(e)&&hb.test(e)){b=g.left;
if(c)d.runtimeStyle.left=d.currentStyle.left;g.left=a==="fontSize"?"1em":e||0;e=g.pixelLeft+"px";g.left=b;if(c)d.runtimeStyle.left=c}return e===""?"auto":e});T=Aa||Ba;if(g.expr&&g.expr.filters)g.expr.filters.hidden=function(d){var a=d.offsetHeight;return d.offsetWidth===0&&a===0||!g.support.reliableHiddenOffsets&&(d.style.display||g.css(d,"display"))==="none"},g.expr.filters.visible=function(d){return!g.expr.filters.hidden(d)};var kb=/%20/g,Qa=/\[\]$/,Ca=/\r?\n/g,lb=/#.*$/,mb=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,
nb=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ob=/^(?:GET|HEAD)$/,pb=/^\/\//,Da=/\?/,qb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,rb=/^(?:select|textarea)/i,ma=/\s+/,sb=/([?&])_=[^&]*/,Ea=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,Fa=g.fn.load,ea={},Ga={},O,R,Ha=["*/"]+["*"];try{O=F.href}catch(yb){O=u.createElement("a"),O.href="",O=O.href}R=Ea.exec(O.toLowerCase())||[];g.fn.extend({load:function(d,a,b){if(typeof d!==
"string"&&Fa)return Fa.apply(this,arguments);else if(!this.length)return this;var e=d.indexOf(" ");if(e>=0)var c=d.slice(e,d.length),d=d.slice(0,e);e="GET";a&&(g.isFunction(a)?(b=a,a=h):typeof a==="object"&&(a=g.param(a,g.ajaxSettings.traditional),e="POST"));var f=this;g.ajax({url:d,type:e,dataType:"html",data:a,complete:function(d,a,e){e=d.responseText;d.isResolved()&&(d.done(function(d){e=d}),f.html(c?g("<div>").append(e.replace(qb,"")).find(c):e));b&&f.each(b,[e,a,d])}});return this},serialize:function(){return g.param(this.serializeArray())},
serializeArray:function(){return this.map(function(){return this.elements?g.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||rb.test(this.nodeName)||nb.test(this.type))}).map(function(d,a){var b=g(this).val();return b==null?null:g.isArray(b)?g.map(b,function(d){return{name:a.name,value:d.replace(Ca,"\r\n")}}):{name:a.name,value:b.replace(Ca,"\r\n")}}).get()}});g.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(d,
a){g.fn[a]=function(d){return this.bind(a,d)}});g.each(["get","post"],function(d,a){g[a]=function(d,b,e,c){g.isFunction(b)&&(c=c||e,e=b,b=h);return g.ajax({type:a,url:d,data:b,success:e,dataType:c})}});g.extend({getScript:function(d,a){return g.get(d,h,a,"script")},getJSON:function(d,a,b){return g.get(d,a,b,"json")},ajaxSetup:function(d,a){a?o(d,g.ajaxSettings):(a=d,d=g.ajaxSettings);o(d,a);return d},ajaxSettings:{url:O,isLocal:/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/.test(R[1]),
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Ha},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":c.String,"text html":true,"text json":g.parseJSON,"text xml":g.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:z(ea),ajaxTransport:z(Ga),ajax:function(d,
a){function b(d,a,m,s){if(A!==2){A=2;w&&clearTimeout(w);x=h;u=s||"";z.readyState=d>0?4:0;var r,o,B,s=a;if(m){var q=e,v=z,t=q.contents,D=q.dataTypes,Z=q.responseFields,F,C,G,L;for(C in Z)C in m&&(v[Z[C]]=m[C]);for(;D[0]==="*";)D.shift(),F===h&&(F=q.mimeType||v.getResponseHeader("content-type"));if(F)for(C in t)if(t[C]&&t[C].test(F)){D.unshift(C);break}if(D[0]in m)G=D[0];else{for(C in m){if(!D[0]||q.converters[C+" "+D[0]]){G=C;break}L||(L=C)}G=G||L}G?(G!==D[0]&&D.unshift(G),m=m[G]):m=void 0}else m=
h;if(d>=200&&d<300||d===304){if(e.ifModified){if(F=z.getResponseHeader("Last-Modified"))g.lastModified[p]=F;if(F=z.getResponseHeader("Etag"))g.etag[p]=F}if(d===304)s="notmodified",r=true;else try{F=e;F.dataFilter&&(m=F.dataFilter(m,F.dataType));var E=F.dataTypes;C={};var M,X,Q=E.length,H,N=E[0],S,J,P,I,K;for(M=1;M<Q;M++){if(M===1)for(X in F.converters)typeof X==="string"&&(C[X.toLowerCase()]=F.converters[X]);S=N;N=E[M];if(N==="*")N=S;else if(S!=="*"&&S!==N){J=S+" "+N;P=C[J]||C["* "+N];if(!P)for(I in K=
h,C)if(H=I.split(" "),H[0]===S||H[0]==="*")if(K=C[H[1]+" "+N]){I=C[I];I===true?P=K:K===true&&(P=I);break}!P&&!K&&g.error("No conversion from "+J.replace(" "," to "));P!==true&&(m=P?P(m):K(I(m)))}}o=m;s="success";r=true}catch(O){s="parsererror",B=O}}else if(B=s,!s||d)s="error",d<0&&(d=0);z.status=d;z.statusText=""+(a||s);r?k.resolveWith(c,[o,s,z]):k.rejectWith(c,[z,s,B]);z.statusCode(n);n=h;y&&f.trigger("ajax"+(r?"Success":"Error"),[z,e,r?o:B]);j.resolveWith(c,[z,s]);y&&(f.trigger("ajaxComplete",[z,
e]),--g.active||g.event.trigger("ajaxStop"))}}typeof d==="object"&&(a=d,d=h);var a=a||{},e=g.ajaxSetup({},a),c=e.context||e,f=c!==e&&(c.nodeType||c instanceof g)?g(c):g.event,k=g.Deferred(),j=g._Deferred(),n=e.statusCode||{},p,m={},r={},u,o,x,w,B,A=0,y,v,z={readyState:0,setRequestHeader:function(d,a){if(!A){var b=d.toLowerCase(),d=r[b]=r[b]||d;m[d]=a}return this},getAllResponseHeaders:function(){return A===2?u:null},getResponseHeader:function(d){var a;if(A===2){if(!o)for(o={};a=mb.exec(u);)o[a[1].toLowerCase()]=
a[2];a=o[d.toLowerCase()]}return a===h?null:a},overrideMimeType:function(d){if(!A)e.mimeType=d;return this},abort:function(d){d=d||"abort";x&&x.abort(d);b(0,d);return this}};k.promise(z);z.success=z.done;z.error=z.fail;z.complete=j.done;z.statusCode=function(d){if(d){var a;if(A<2)for(a in d)n[a]=[n[a],d[a]];else a=d[z.status],z.then(a,a)}return this};e.url=((d||e.url)+"").replace(lb,"").replace(pb,R[1]+"//");e.dataTypes=g.trim(e.dataType||"*").toLowerCase().split(ma);if(e.crossDomain==null)B=Ea.exec(e.url.toLowerCase()),
e.crossDomain=!(!B||!(B[1]!=R[1]||B[2]!=R[2]||(B[3]||(B[1]==="http:"?80:443))!=(R[3]||(R[1]==="http:"?80:443))));if(e.data&&e.processData&&typeof e.data!=="string")e.data=g.param(e.data,e.traditional);s(ea,e,a,z);if(A===2)return false;y=e.global;e.type=e.type.toUpperCase();e.hasContent=!ob.test(e.type);y&&g.active++===0&&g.event.trigger("ajaxStart");if(!e.hasContent&&(e.data&&(e.url+=(Da.test(e.url)?"&":"?")+e.data,delete e.data),p=e.url,e.cache===false)){B=g.now();var t=e.url.replace(sb,"$1_="+B);
e.url=t+(t===e.url?(Da.test(e.url)?"&":"?")+"_="+B:"")}(e.data&&e.hasContent&&e.contentType!==false||a.contentType)&&z.setRequestHeader("Content-Type",e.contentType);e.ifModified&&(p=p||e.url,g.lastModified[p]&&z.setRequestHeader("If-Modified-Since",g.lastModified[p]),g.etag[p]&&z.setRequestHeader("If-None-Match",g.etag[p]));z.setRequestHeader("Accept",e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", "+Ha+"; q=0.01":""):e.accepts["*"]);for(v in e.headers)z.setRequestHeader(v,
e.headers[v]);if(e.beforeSend&&(e.beforeSend.call(c,z,e)===false||A===2))return z.abort(),false;for(v in{success:1,error:1,complete:1})z[v](e[v]);if(x=s(Ga,e,a,z)){z.readyState=1;y&&f.trigger("ajaxSend",[z,e]);e.async&&e.timeout>0&&(w=setTimeout(function(){z.abort("timeout")},e.timeout));try{A=1,x.send(m,b)}catch(D){A<2?b(-1,D):g.error(D)}}else b(-1,"No Transport");return z},param:function(d,a){var b=[],e=function(d,a){a=g.isFunction(a)?a():a;b[b.length]=encodeURIComponent(d)+"="+encodeURIComponent(a)};
if(a===h)a=g.ajaxSettings.traditional;if(g.isArray(d)||d.jquery&&!g.isPlainObject(d))g.each(d,function(){e(this.name,this.value)});else for(var c in d)B(c,d[c],a,e);return b.join("&").replace(kb,"+")}});g.extend({active:0,lastModified:{},etag:{}});var tb=g.now(),ba=/(\=)\?(&|$)|\?\?/i;g.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return g.expando+"_"+tb++}});g.ajaxPrefilter("json jsonp",function(d,a,b){a=d.contentType==="application/x-www-form-urlencoded"&&typeof d.data==="string";if(d.dataTypes[0]===
"jsonp"||d.jsonp!==false&&(ba.test(d.url)||a&&ba.test(d.data))){var e,f=d.jsonpCallback=g.isFunction(d.jsonpCallback)?d.jsonpCallback():d.jsonpCallback,k=c[f],j=d.url,n=d.data,p="$1"+f+"$2";d.jsonp!==false&&(j=j.replace(ba,p),d.url===j&&(a&&(n=n.replace(ba,p)),d.data===n&&(j+=(/\?/.test(j)?"&":"?")+d.jsonp+"="+f)));d.url=j;d.data=n;c[f]=function(d){e=[d]};b.always(function(){c[f]=k;if(e&&g.isFunction(k))c[f](e[0])});d.converters["script json"]=function(){e||g.error(f+" was not called");return e[0]};
d.dataTypes[0]="json";return"script"}});g.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(d){g.globalEval(d);return d}}});g.ajaxPrefilter("script",function(d){if(d.cache===h)d.cache=false;if(d.crossDomain)d.type="GET",d.global=false});g.ajaxTransport("script",function(d){if(d.crossDomain){var a,b=u.head||u.getElementsByTagName("head")[0]||u.documentElement;
return{send:function(e,c){a=u.createElement("script");a.async="async";if(d.scriptCharset)a.charset=d.scriptCharset;a.src=d.url;a.onload=a.onreadystatechange=function(d,e){if(e||!a.readyState||/loaded|complete/.test(a.readyState))a.onload=a.onreadystatechange=null,b&&a.parentNode&&b.removeChild(a),a=h,e||c(200,"success")};b.insertBefore(a,b.firstChild)},abort:function(){if(a)a.onload(0,1)}}}});var la=c.ActiveXObject?function(){for(var d in V)V[d](0,1)}:false,ub=0,V;g.ajaxSettings.xhr=c.ActiveXObject?
function(){var d;if(!(d=!this.isLocal&&D()))a:{try{d=new c.ActiveXObject("Microsoft.XMLHTTP");break a}catch(a){}d=void 0}return d}:D;(function(d){g.extend(g.support,{ajax:!!d,cors:!!d&&"withCredentials"in d})})(g.ajaxSettings.xhr());g.support.ajax&&g.ajaxTransport(function(d){if(!d.crossDomain||g.support.cors){var a;return{send:function(b,e){var f=d.xhr(),k,j;d.username?f.open(d.type,d.url,d.async,d.username,d.password):f.open(d.type,d.url,d.async);if(d.xhrFields)for(j in d.xhrFields)f[j]=d.xhrFields[j];
d.mimeType&&f.overrideMimeType&&f.overrideMimeType(d.mimeType);!d.crossDomain&&!b["X-Requested-With"]&&(b["X-Requested-With"]="XMLHttpRequest");try{for(j in b)f.setRequestHeader(j,b[j])}catch(n){}f.send(d.hasContent&&d.data||null);a=function(b,c){var j,n,p,m,s;try{if(a&&(c||f.readyState===4)){a=h;if(k)f.onreadystatechange=g.noop,la&&delete V[k];if(c)f.readyState!==4&&f.abort();else{j=f.status;p=f.getAllResponseHeaders();m={};if((s=f.responseXML)&&s.documentElement)m.xml=s;m.text=f.responseText;try{n=
f.statusText}catch(r){n=""}!j&&d.isLocal&&!d.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(u){c||e(-1,u)}m&&e(j,n,m,p)};!d.async||f.readyState===4?a():(k=++ub,la&&(V||(V={},g(c).unload(la)),V[k]=a),f.onreadystatechange=a)},abort:function(){a&&a(0,1)}}}});var fa={},I,U,vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,na=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],Y;g.fn.extend({show:function(d,
a,b){if(d||d===0)return this.animate(E("show",3),d,a,b);else{for(var b=0,e=this.length;b<e;b++)if(d=this[b],d.style){a=d.style.display;if(!g._data(d,"olddisplay")&&a==="none")a=d.style.display="";a===""&&g.css(d,"display")==="none"&&g._data(d,"olddisplay",H(d.nodeName))}for(b=0;b<e;b++)if(d=this[b],d.style&&(a=d.style.display,a===""||a==="none"))d.style.display=g._data(d,"olddisplay")||"";return this}},hide:function(d,a,b){if(d||d===0)return this.animate(E("hide",3),d,a,b);else{d=0;for(a=this.length;d<
a;d++)this[d].style&&(b=g.css(this[d],"display"),b!=="none"&&!g._data(this[d],"olddisplay")&&g._data(this[d],"olddisplay",b));for(d=0;d<a;d++)if(this[d].style)this[d].style.display="none";return this}},_toggle:g.fn.toggle,toggle:function(d,a,b){var e=typeof d==="boolean";g.isFunction(d)&&g.isFunction(a)?this._toggle.apply(this,arguments):d==null||e?this.each(function(){var a=e?d:g(this).is(":hidden");g(this)[a?"show":"hide"]()}):this.animate(E("toggle",3),d,a,b);return this},fadeTo:function(d,a,b,
e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:a},d,b,e)},animate:function(d,a,b,e){var c=g.speed(a,b,e);if(g.isEmptyObject(d))return this.each(c.complete,[false]);d=g.extend({},d);return this[c.queue===false?"each":"queue"](function(){var q;c.queue===false&&g._mark(this);var a=g.extend({},c),b=this.nodeType===1,e=b&&g(this).is(":hidden"),f,k,j,n,p;a.animatedProperties={};for(j in d){f=g.camelCase(j);j!==f&&(d[f]=d[j],delete d[j]);k=d[f];g.isArray(k)?(a.animatedProperties[f]=
k[1],q=d[f]=k[0],k=q):a.animatedProperties[f]=a.specialEasing&&a.specialEasing[f]||a.easing||"swing";if(k==="hide"&&e||k==="show"&&!e)return a.complete.call(this);if(b&&(f==="height"||f==="width"))if(a.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],g.css(this,"display")==="inline"&&g.css(this,"float")==="none")g.support.inlineBlockNeedsLayout?(k=H(this.nodeName),k==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display=
"inline-block"}if(a.overflow!=null)this.style.overflow="hidden";for(j in d)if(b=new g.fx(this,a,j),k=d[j],vb.test(k))b[k==="toggle"?e?"show":"hide":k]();else f=wb.exec(k),n=b.cur(),f?(k=parseFloat(f[2]),p=f[3]||(g.cssNumber[j]?"":"px"),p!=="px"&&(g.style(this,j,(k||1)+p),n*=(k||1)/b.cur(),g.style(this,j,n+p)),f[1]&&(k=(f[1]==="-="?-1:1)*k+n),b.custom(n,k,p)):b.custom(n,k,"");return true})},stop:function(d,a){d&&this.queue([]);this.each(function(){var d=g.timers,b=d.length;for(a||g._unmark(true,this);b--;)if(d[b].elem===
this){if(a)d[b](true);d.splice(b,1)}});a||this.dequeue();return this}});g.each({slideDown:E("show",1),slideUp:E("hide",1),slideToggle:E("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(d,a){g.fn[d]=function(d,b,e){return this.animate(a,d,b,e)}});g.extend({speed:function(d,a,b){var e=d&&typeof d==="object"?g.extend({},d):{complete:b||!b&&a||g.isFunction(d)&&d,duration:d,easing:b&&a||a&&!g.isFunction(a)&&a};e.duration=g.fx.off?0:typeof e.duration===
"number"?e.duration:e.duration in g.fx.speeds?g.fx.speeds[e.duration]:g.fx.speeds._default;e.old=e.complete;e.complete=function(d){g.isFunction(e.old)&&e.old.call(this);e.queue!==false?g.dequeue(this):d!==false&&g._unmark(this)};return e},easing:{linear:function(d,a,b,e){return b+e*d},swing:function(d,a,b,e){return(-Math.cos(d*Math.PI)/2+0.5)*e+b}},timers:[],fx:function(d,a,b){this.options=a;this.elem=d;this.prop=b;a.orig=a.orig||{}}});g.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,
this.now,this);(g.fx.step[this.prop]||g.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var d,a=g.css(this.elem,this.prop);return isNaN(d=parseFloat(a))?!a||a==="auto"?0:a:d},custom:function(d,a,b){function e(d){return c.step(d)}var c=this,f=g.fx;this.startTime=Y||C();this.start=d;this.end=a;this.unit=b||this.unit||(g.cssNumber[this.prop]?"":"px");this.now=this.start;this.pos=this.state=0;e.elem=
this.elem;e()&&g.timers.push(e)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=g.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());g(this.elem).show()},hide:function(){this.options.orig[this.prop]=g.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(d){var a=Y||C(),b=true,e=this.elem,c=this.options,f;if(d||a>=c.duration+this.startTime){this.now=this.end;
this.pos=this.state=1;this.update();c.animatedProperties[this.prop]=true;for(f in c.animatedProperties)c.animatedProperties[f]!==true&&(b=false);if(b){c.overflow!=null&&!g.support.shrinkWrapBlocks&&g.each(["","X","Y"],function(d,a){e.style["overflow"+a]=c.overflow[d]});c.hide&&g(e).hide();if(c.hide||c.show)for(var k in c.animatedProperties)g.style(e,k,c.orig[k]);c.complete.call(e)}return false}else c.duration==Infinity?this.now=a:(d=a-this.startTime,this.state=d/c.duration,this.pos=g.easing[c.animatedProperties[this.prop]](this.state,
d,0,1,c.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return true}};g.extend(g.fx,{tick:function(){for(var d=g.timers,a=0;a<d.length;++a)d[a]()||d.splice(a--,1);d.length||g.fx.stop()},interval:13,stop:function(){clearInterval(ca);ca=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(d){g.style(d.elem,"opacity",d.now)},_default:function(d){d.elem.style&&d.elem.style[d.prop]!=null?d.elem.style[d.prop]=(d.prop==="width"||d.prop==="height"?Math.max(0,d.now):
d.now)+d.unit:d.elem[d.prop]=d.now}}});if(g.expr&&g.expr.filters)g.expr.filters.animated=function(d){return g.grep(g.timers,function(a){return d===a.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;g.fn.offset="getBoundingClientRect"in u.documentElement?function(d){var a=this[0],b;if(d)return this.each(function(a){g.offset.setOffset(this,d,a)});if(!a||!a.ownerDocument)return null;if(a===a.ownerDocument.body)return g.offset.bodyOffset(a);try{b=a.getBoundingClientRect()}catch(e){}var c=
a.ownerDocument,f=c.documentElement;if(!b||!g.contains(f,a))return b?{top:b.top,left:b.left}:{top:0,left:0};a=c.body;c=L(c);return{top:b.top+(c.pageYOffset||g.support.boxModel&&f.scrollTop||a.scrollTop)-(f.clientTop||a.clientTop||0),left:b.left+(c.pageXOffset||g.support.boxModel&&f.scrollLeft||a.scrollLeft)-(f.clientLeft||a.clientLeft||0)}}:function(d){var a=this[0];if(d)return this.each(function(a){g.offset.setOffset(this,d,a)});if(!a||!a.ownerDocument)return null;if(a===a.ownerDocument.body)return g.offset.bodyOffset(a);
g.offset.initialize();var b,e=a.offsetParent,c=a.ownerDocument,f=c.documentElement,k=c.body;b=(c=c.defaultView)?c.getComputedStyle(a,null):a.currentStyle;for(var j=a.offsetTop,n=a.offsetLeft;(a=a.parentNode)&&a!==k&&a!==f;){if(g.offset.supportsFixedPosition&&b.position==="fixed")break;b=c?c.getComputedStyle(a,null):a.currentStyle;j-=a.scrollTop;n-=a.scrollLeft;if(a===e){j+=a.offsetTop;n+=a.offsetLeft;if(g.offset.doesNotAddBorder&&(!g.offset.doesAddBorderForTableAndCells||!xb.test(a.nodeName)))j+=
parseFloat(b.borderTopWidth)||0,n+=parseFloat(b.borderLeftWidth)||0;e=a.offsetParent}g.offset.subtractsBorderForOverflowNotVisible&&b.overflow!=="visible"&&(j+=parseFloat(b.borderTopWidth)||0,n+=parseFloat(b.borderLeftWidth)||0)}if(b.position==="relative"||b.position==="static")j+=k.offsetTop,n+=k.offsetLeft;g.offset.supportsFixedPosition&&b.position==="fixed"&&(j+=Math.max(f.scrollTop,k.scrollTop),n+=Math.max(f.scrollLeft,k.scrollLeft));return{top:j,left:n}};g.offset={initialize:function(){var d=
u.body,a=u.createElement("div"),b,e,c,f=parseFloat(g.css(d,"marginTop"))||0;g.extend(a.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});a.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.insertBefore(a,
d.firstChild);b=a.firstChild;e=b.firstChild;c=b.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=c.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";b.style.overflow="hidden";b.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=d.offsetTop!==f;d.removeChild(a);g.offset.initialize=
g.noop},bodyOffset:function(d){var a=d.offsetTop,b=d.offsetLeft;g.offset.initialize();g.offset.doesNotIncludeMarginInBodyOffset&&(a+=parseFloat(g.css(d,"marginTop"))||0,b+=parseFloat(g.css(d,"marginLeft"))||0);return{top:a,left:b}},setOffset:function(d,a,b){var e=g.css(d,"position");if(e==="static")d.style.position="relative";var c=g(d),f=c.offset(),k=g.css(d,"top"),j=g.css(d,"left"),n={},p={};(e==="absolute"||e==="fixed")&&g.inArray("auto",[k,j])>-1?(p=c.position(),e=p.top,j=p.left):(e=parseFloat(k)||
0,j=parseFloat(j)||0);g.isFunction(a)&&(a=a.call(d,b,f));if(a.top!=null)n.top=a.top-f.top+e;if(a.left!=null)n.left=a.left-f.left+j;"using"in a?a.using.call(d,n):c.css(n)}};g.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),e=this.offset(),c=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();e.top-=parseFloat(g.css(a,"marginTop"))||0;e.left-=parseFloat(g.css(a,"marginLeft"))||0;c.top+=parseFloat(g.css(b[0],"borderTopWidth"))||0;c.left+=parseFloat(g.css(b[0],
"borderLeftWidth"))||0;return{top:e.top-c.top,left:e.left-c.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||u.body;a&&!Ia.test(a.nodeName)&&g.css(a,"position")==="static";)a=a.offsetParent;return a})}});g.each(["Left","Top"],function(a,b){var e="scroll"+b;g.fn[e]=function(b){var c,f;if(b===h){c=this[0];return!c?null:(f=L(c))?"pageXOffset"in f?f[a?"pageYOffset":"pageXOffset"]:g.support.boxModel&&f.document.documentElement[e]||f.document.body[e]:c[e]}return this.each(function(){(f=
L(this))?f.scrollTo(!a?b:g(f).scrollLeft(),a?b:g(f).scrollTop()):this[e]=b})}});g.each(["Height","Width"],function(a,b){var e=b.toLowerCase();g.fn["inner"+b]=function(){var a=this[0];return a&&a.style?parseFloat(g.css(a,e,"padding")):null};g.fn["outer"+b]=function(a){var d=this[0];return d&&d.style?parseFloat(g.css(d,e,a?"margin":"border")):null};g.fn[e]=function(a){var d=this[0];if(!d)return a==null?null:this;if(g.isFunction(a))return this.each(function(d){var b=g(this);b[e](a.call(this,d,b[e]()))});
if(g.isWindow(d)){var c=d.document.documentElement["client"+b],f=d.document.body;return d.document.compatMode==="CSS1Compat"&&c||f&&f["client"+b]||c}else return d.nodeType===9?Math.max(d.documentElement["client"+b],d.body["scroll"+b],d.documentElement["scroll"+b],d.body["offset"+b],d.documentElement["offset"+b]):a===h?(d=g.css(d,e),c=parseFloat(d),g.isNaN(c)?d:c):this.css(e,typeof a==="string"?a:a+"px")}});c.jQuery=c.$=g})(window);
(function(c){c.fn.hoverIntent=function(h,m){var b={sensitivity:7,interval:100,timeout:0},b=c.extend(b,m?{over:h,out:m}:h),f,n,j,a,e=function(a){f=a.pageX;n=a.pageY},k=function(m,h){h.hoverIntent_t=clearTimeout(h.hoverIntent_t);if(Math.abs(j-f)+Math.abs(a-n)<b.sensitivity)return c(h).unbind("mousemove",e),h.hoverIntent_s=1,b.over.apply(h,[m]);else j=f,a=n,h.hoverIntent_t=setTimeout(function(){k(m,h)},b.interval)},v=function(f){var n=jQuery.extend({},f),m=this;if(m.hoverIntent_t)m.hoverIntent_t=clearTimeout(m.hoverIntent_t);
if(f.type=="mouseenter"){if(j=n.pageX,a=n.pageY,c(m).bind("mousemove",e),m.hoverIntent_s!=1)m.hoverIntent_t=setTimeout(function(){k(n,m)},b.interval)}else if(c(m).unbind("mousemove",e),m.hoverIntent_s==1)m.hoverIntent_t=setTimeout(function(){m.hoverIntent_t=clearTimeout(m.hoverIntent_t);m.hoverIntent_s=0;b.out.apply(m,[n])},b.timeout)};return this.bind("mouseenter",v).bind("mouseleave",v)}})(jQuery);
(function(c){c.extend({tablesorter:new function(){function m(a,e){b(a+","+((new Date).getTime()-e.getTime())+"ms")}function b(a){typeof console!="undefined"&&typeof console.debug!="undefined"?console.log(a):alert(a)}function f(e,f){if(e.config.debug)var k="";if(e.tBodies.length!=0){var j=e.tBodies[0].rows;if(j[0])for(var p=[],m=j[0].cells.length,h=0;h<m;h++){var r=false;c.metadata&&c(f[h]).metadata()&&c(f[h]).metadata().sorter?r=n(c(f[h]).metadata().sorter):e.config.headers[h]&&e.config.headers[h].sorter&&
(r=n(e.config.headers[h].sorter));if(!r)a:{for(var r=e,o=j,x=-1,g=h,w=s.length,A=false,v=false,y=true;v==""&&y;)x++,o[x]?(A=o[x].cells[g],v=c.trim(a(r.config,A)),r.config.debug&&b("Checking if value was empty on row:"+x)):y=false;for(o=1;o<w;o++)if(s[o].is(v,r,A)){r=s[o];break a}r=s[0]}e.config.debug&&(k+="column:"+h+" parser:"+r.id+"\n");p.push(r)}e.config.debug&&b(k);return p}}function n(a){for(var b=s.length,e=0;e<b;e++)if(s[e].id.toLowerCase()==a.toLowerCase())return s[e];return false}function j(b){if(b.config.debug)var e=
new Date;for(var f=b.tBodies[0]&&b.tBodies[0].rows.length||0,k=b.tBodies[0].rows[0]&&b.tBodies[0].rows[0].cells.length||0,j=b.config.parsers,n={row:[],normalized:[]},p=0;p<f;++p){var s=c(b.tBodies[0].rows[p]),h=[];if(s.hasClass(b.config.cssChildRow))n.row[n.row.length-1]=n.row[n.row.length-1].add(s);else{n.row.push(s);for(var r=0;r<k;++r)h.push(j[r].format(a(b.config,s[0].cells[r]),b,s[0].cells[r]));h.push(n.normalized.length);n.normalized.push(h)}}b.config.debug&&m("Building cache for "+f+" rows:",
e);return n}function a(a,b){var e="";if(!b)return"";if(!a.supportsTextContent)a.supportsTextContent=b.textContent||false;return e=a.textExtraction=="simple"?a.supportsTextContent?b.textContent:b.childNodes[0]&&b.childNodes[0].hasChildNodes()?b.childNodes[0].innerHTML:b.innerHTML:typeof a.textExtraction=="function"?a.textExtraction(b):c(b).text()}function e(a,b){if(a.config.debug)var e=new Date;for(var f=b.row,k=b.normalized,j=k.length,n=k[0].length-1,p=c(a.tBodies[0]),s=[],h=0;h<j;h++){var g=k[h][n];
s.push(f[g]);if(!a.config.appender)for(var r=f[g].length,o=0;o<r;o++)p[0].appendChild(f[g][o])}a.config.appender&&a.config.appender(a,s);s=null;a.config.debug&&m("Rebuilt table:",e);t(a);setTimeout(function(){c(a).trigger("sortEnd")},0)}function k(a){if(a.config.debug)var e=new Date;var f=h(a);$tableHeaders=c(a.config.selectorHeaders,a).each(function(b){this.column=f[this.parentNode.rowIndex+"-"+this.cellIndex];this.count=this.order=typeof a.config.sortInitialOrder!="Number"?a.config.sortInitialOrder.toLowerCase()==
"desc"?1:0:a.config.sortInitialOrder==1?1:0;var e;e=c.metadata&&c(this).metadata().sorter===false?true:false;e||(e=a.config.headers[b]&&a.config.headers[b].sorter===false?true:false);if(e)this.sortDisabled=true;if(y(a,b))this.order=this.lockedOrder=y(a,b);this.sortDisabled||(e=c(this).addClass(a.config.cssHeader),a.config.onRenderHeader&&a.config.onRenderHeader.apply(e));a.config.headerList[b]=this});a.config.debug&&(m("Built headers:",e),b($tableHeaders));return $tableHeaders}function h(a){for(var b=
[],e={},a=a.getElementsByTagName("THEAD")[0].getElementsByTagName("TR"),c=0;c<a.length;c++)for(var f=a[c].cells,k=0;k<f.length;k++){var j=f[k],n=j.parentNode.rowIndex,p=n+"-"+j.cellIndex,m=j.rowSpan||1,j=j.colSpan||1,g;typeof b[n]=="undefined"&&(b[n]=[]);for(var s=0;s<b[n].length+1;s++)if(typeof b[n][s]=="undefined"){g=s;break}e[p]=g;for(s=n;s<n+m;s++){typeof b[s]=="undefined"&&(b[s]=[]);for(var p=b[s],r=g;r<g+j;r++)p[r]="x"}}return e}function y(a,b){return a.config.headers[b]&&a.config.headers[b].lockedOrder?
a.config.headers[b].lockedOrder:false}function t(a){for(var b=a.config.widgets,e=b.length,c=0;c<e;c++)r(b[c]).format(a)}function r(a){for(var b=o.length,e=0;e<b;e++)if(o[e].id.toLowerCase()==a.toLowerCase())return o[e]}function x(a,b){for(var e=b.length,c=0;c<e;c++)if(b[c][0]==a)return true;return false}function p(a,b,e,f){b.removeClass(f[0]).removeClass(f[1]);var k=[];b.each(function(){this.sortDisabled||(k[this.column]=c(this))});a=e.length;for(b=0;b<a;b++)k[e[b][0]].addClass(f[e[b][1]])}function w(a){if(a.config.widthFixed){var b=
c("<colgroup>");c("tr:first td",a.tBodies[0]).each(function(){b.append(c("<col>").css("width",c(this).width()))});c(a).prepend(b)}}function A(a,b,e){if(a.config.debug)var c=new Date;for(var f="var sortWrapper = function(a,b) {",k=b.length,j=0;j<k;j++){var n=b[j][0],p=b[j][1],n=a.config.parsers[n].type=="text"?p==0?z("text","asc",n):z("text","desc",n):p==0?z("numeric","asc",n):z("numeric","desc",n),s="e"+j;f+="var "+s+" = "+n;f+="if("+s+") { return "+s+"; } ";f+="else { "}j=e.normalized[0].length-
1;f+="return a["+j+"]-b["+j+"];";for(j=0;j<k;j++)f+="}; ";f+="return 0; ";f+="}; ";a.config.debug&&m("Evaling expression:"+f,new Date);eval(f);e.normalized.sort(sortWrapper);a.config.debug&&m("Sorting on "+b.toString()+" and dir "+p+" time:",c);return e}function z(a,b,e){var c="a["+e+"]",e="b["+e+"]";if(a=="text"&&b=="asc")return"("+c+" == "+e+" ? 0 : ("+c+" === null ? Number.POSITIVE_INFINITY : ("+e+" === null ? Number.NEGATIVE_INFINITY : ("+c+" < "+e+") ? -1 : 1 )));";else if(a=="text"&&b=="desc")return"("+
c+" == "+e+" ? 0 : ("+c+" === null ? Number.POSITIVE_INFINITY : ("+e+" === null ? Number.NEGATIVE_INFINITY : ("+e+" < "+c+") ? -1 : 1 )));";else if(a=="numeric"&&b=="asc")return"("+c+" === null && "+e+" === null) ? 0 :("+c+" === null ? Number.POSITIVE_INFINITY : ("+e+" === null ? Number.NEGATIVE_INFINITY : "+c+" - "+e+"));";else if(a=="numeric"&&b=="desc")return"("+c+" === null && "+e+" === null) ? 0 :("+c+" === null ? Number.POSITIVE_INFINITY : ("+e+" === null ? Number.NEGATIVE_INFINITY : "+e+" - "+
c+"));"}var s=[],o=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:"/.|,/g",onRenderHeader:null,selectorHeaders:"thead th",debug:false};this.benchmark=m;this.construct=
function(b){return this.each(function(){if(this.tHead&&this.tBodies){var n,m,s,h;this.config={};h=c.extend(this.config,c.tablesorter.defaults,b);n=c(this);c.data(this,"tablesorter",h);m=k(this);this.config.parsers=f(this,m);s=j(this);var o=[h.cssDesc,h.cssAsc];w(this);m.click(function(a){var b=n[0].tBodies[0]&&n[0].tBodies[0].rows.length||0;if(!this.sortDisabled&&b>0){n.trigger("sortStart");c(this);b=this.column;this.order=this.count++%2;if(this.lockedOrder)this.order=this.lockedOrder;if(a[h.sortMultiSortKey])if(x(b,
h.sortList))for(a=0;a<h.sortList.length;a++){var f=h.sortList[a],k=h.headerList[f[0]];if(f[0]==b)k.count=f[1],k.count++,f[1]=k.count%2}else h.sortList.push([b,this.order]);else{h.sortList=[];if(h.sortForce!=null){f=h.sortForce;for(a=0;a<f.length;a++)f[a][0]!=b&&h.sortList.push(f[a])}h.sortList.push([b,this.order])}setTimeout(function(){p(n[0],m,h.sortList,o);e(n[0],A(n[0],h.sortList,s))},1);return false}}).mousedown(function(){if(h.cancelSelection)return this.onselectstart=function(){return false},
false});n.bind("update",function(){var a=this;setTimeout(function(){a.config.parsers=f(a,m);s=j(a)},1)}).bind("updateCell",function(b,e){var c=this.config,f=[e.parentNode.rowIndex-1,e.cellIndex];s.normalized[f[0]][f[1]]=c.parsers[f[1]].format(a(c,e),e)}).bind("sorton",function(a,b){c(this).trigger("sortStart");h.sortList=b;for(var f=h.sortList,k=this.config,g=f.length,j=0;j<g;j++){var n=f[j],r=k.headerList[n[0]];r.count=n[1];r.count++}p(this,m,f,o);e(this,A(this,f,s))}).bind("appendCache",function(){e(this,
s)}).bind("applyWidgetId",function(a,b){r(b).format(this)}).bind("applyWidgets",function(){t(this)});if(c.metadata&&c(this).metadata()&&c(this).metadata().sortlist)h.sortList=c(this).metadata().sortlist;h.sortList.length>0&&n.trigger("sorton",[h.sortList]);t(this)}})};this.addParser=function(a){for(var b=s.length,e=true,c=0;c<b;c++)s[c].id.toLowerCase()==a.id.toLowerCase()&&(e=false);e&&s.push(a)};this.addWidget=function(a){o.push(a)};this.formatFloat=function(a){a=parseFloat(a);return isNaN(a)?0:
a};this.formatInt=function(a){a=parseInt(a);return isNaN(a)?0:a};this.isDigit=function(a){return/^[-+]?\d*$/.test(c.trim(a.replace(/[,.']/g,"")))};this.clearTableBody=function(a){c.browser.msie?function(){for(;this.firstChild;)this.removeChild(this.firstChild)}.apply(a.tBodies[0]):a.tBodies[0].innerHTML=""}}});c.fn.extend({tablesorter:c.tablesorter.construct});var h=c.tablesorter;h.addParser({id:"text",is:function(){return true},format:function(m){return c.trim(m.toLocaleLowerCase())},type:"text"});
h.addParser({id:"digit",is:function(m,b){return c.tablesorter.isDigit(m,b.config)},format:function(m){return c.tablesorter.formatFloat(m)},type:"numeric"});h.addParser({id:"currency",is:function(c){return/^[\u00c2\u00a3$\u00e2\u201a\u00ac?.]/.test(c)},format:function(m){return c.tablesorter.formatFloat(m.replace(RegExp(/[\u00c2\u00a3$\u00e2\u201a\u00ac]/g),""))},type:"numeric"});h.addParser({id:"ipAddress",is:function(c){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(c)},format:function(m){for(var m=
m.split("."),b="",f=m.length,n=0;n<f;n++){var j=m[n];b+=j.length==2?"0"+j:j}return c.tablesorter.formatFloat(b)},type:"numeric"});h.addParser({id:"url",is:function(c){return/^(https?|ftp|file):\/\/$/.test(c)},format:function(c){return jQuery.trim(c.replace(RegExp(/(https?|ftp|file):\/\//),""))},type:"text"});h.addParser({id:"isoDate",is:function(c){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(c)},format:function(m){return c.tablesorter.formatFloat(m!=""?(new Date(m.replace(RegExp(/-/g),"/"))).getTime():
"0")},type:"numeric"});h.addParser({id:"percent",is:function(m){return/\%$/.test(c.trim(m))},format:function(m){return c.tablesorter.formatFloat(m.replace(RegExp(/%/g),""))},type:"numeric"});h.addParser({id:"usLongDate",is:function(c){return c.match(RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/))},format:function(m){return c.tablesorter.formatFloat((new Date(m)).getTime())},type:"numeric"});h.addParser({id:"shortDate",is:function(c){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(c)},
format:function(m,b){var f=b.config,m=m.replace(/\-/g,"/");if(f.dateFormat=="us")m=m.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2");else if(f.dateFormat=="uk")m=m.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1");else if(f.dateFormat=="dd/mm/yy"||f.dateFormat=="dd-mm-yy")m=m.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3");return c.tablesorter.formatFloat((new Date(m)).getTime())},type:"numeric"});h.addParser({id:"time",is:function(c){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(c)},
format:function(m){return c.tablesorter.formatFloat((new Date("2000/01/01 "+m)).getTime())},type:"numeric"});h.addParser({id:"metadata",is:function(){return false},format:function(m,b,f){m=b.config;m=!m.parserMetadataName?"sortValue":m.parserMetadataName;return c(f).metadata()[m]},type:"numeric"});h.addWidget({id:"zebra",format:function(m){if(m.config.debug)var b=new Date;var f,n=-1,j;c("tr:visible",m.tBodies[0]).each(function(){f=c(this);f.hasClass(m.config.cssChildRow)||n++;j=n%2==0;f.removeClass(m.config.widgetZebra.css[j?
0:1]).addClass(m.config.widgetZebra.css[j?1:0])});m.config.debug&&c.tablesorter.benchmark("Applying Zebra widget",b)}})})(jQuery);
(function(){var c=this,h=c._,m={},b=Array.prototype,f=Object.prototype,n=b.slice,j=b.unshift,a=f.toString,e=f.hasOwnProperty,k=b.forEach,v=b.map,y=b.reduce,t=b.reduceRight,r=b.filter,x=b.every,p=b.some,w=b.indexOf,A=b.lastIndexOf,f=Array.isArray,z=Object.keys,s=Function.prototype.bind,o=function(a){return new E(a)};typeof module!=="undefined"&&module.exports?(module.exports=o,o._=o):c._=o;o.VERSION="1.1.7";var B=o.each=o.forEach=function(a,b,c){if(a!=null)if(k&&a.forEach===k)a.forEach(b,c);else if(a.length===
+a.length)for(var f=0,j=a.length;f<j;f++){if(f in a&&b.call(c,a[f],f,a)===m)break}else for(f in a)if(e.call(a,f)&&b.call(c,a[f],f,a)===m)break};o.map=function(a,b,e){var c=[];if(a==null)return c;if(v&&a.map===v)return a.map(b,e);B(a,function(a,f,k){c[c.length]=b.call(e,a,f,k)});return c};o.reduce=o.foldl=o.inject=function(a,b,e,c){var f=e!==void 0;a==null&&(a=[]);if(y&&a.reduce===y)return c&&(b=o.bind(b,c)),f?a.reduce(b,e):a.reduce(b);B(a,function(a,k,j){f?e=b.call(c,e,a,k,j):(e=a,f=true)});if(!f)throw new TypeError("Reduce of empty array with no initial value");
return e};o.reduceRight=o.foldr=function(a,b,e,c){a==null&&(a=[]);if(t&&a.reduceRight===t)return c&&(b=o.bind(b,c)),e!==void 0?a.reduceRight(b,e):a.reduceRight(b);a=(o.isArray(a)?a.slice():o.toArray(a)).reverse();return o.reduce(a,b,e,c)};o.find=o.detect=function(a,b,e){var c;D(a,function(a,f,k){if(b.call(e,a,f,k))return c=a,true});return c};o.filter=o.select=function(a,b,e){var c=[];if(a==null)return c;if(r&&a.filter===r)return a.filter(b,e);B(a,function(a,f,k){b.call(e,a,f,k)&&(c[c.length]=a)});
return c};o.reject=function(a,b,e){var c=[];if(a==null)return c;B(a,function(a,f,k){b.call(e,a,f,k)||(c[c.length]=a)});return c};o.every=o.all=function(a,b,e){var c=true;if(a==null)return c;if(x&&a.every===x)return a.every(b,e);B(a,function(a,f,k){if(!(c=c&&b.call(e,a,f,k)))return m});return c};var D=o.some=o.any=function(a,b,e){var b=b||o.identity,c=false;if(a==null)return c;if(p&&a.some===p)return a.some(b,e);B(a,function(a,f,k){if(c|=b.call(e,a,f,k))return m});return!!c};o.include=o.contains=function(a,
b){var e=false;if(a==null)return e;if(w&&a.indexOf===w)return a.indexOf(b)!=-1;D(a,function(a){if(e=a===b)return true});return e};o.invoke=function(a,b){var e=n.call(arguments,2);return o.map(a,function(a){return(b.call?b||a:a[b]).apply(a,e)})};o.pluck=function(a,b){return o.map(a,function(a){return a[b]})};o.max=function(a,b,e){if(!b&&o.isArray(a))return Math.max.apply(Math,a);var c={computed:-Infinity};B(a,function(a,f,k){f=b?b.call(e,a,f,k):a;f>=c.computed&&(c={value:a,computed:f})});return c.value};
o.min=function(a,b,e){if(!b&&o.isArray(a))return Math.min.apply(Math,a);var c={computed:Infinity};B(a,function(a,f,k){f=b?b.call(e,a,f,k):a;f<c.computed&&(c={value:a,computed:f})});return c.value};o.sortBy=function(a,b,e){return o.pluck(o.map(a,function(a,c,f){return{value:a,criteria:b.call(e,a,c,f)}}).sort(function(a,b){var e=a.criteria,c=b.criteria;return e<c?-1:e>c?1:0}),"value")};o.groupBy=function(a,b){var e={};B(a,function(a,c){var f=b(a,c);(e[f]||(e[f]=[])).push(a)});return e};o.sortedIndex=
function(a,b,e){e||(e=o.identity);for(var c=0,f=a.length;c<f;){var k=c+f>>1;e(a[k])<e(b)?c=k+1:f=k}return c};o.toArray=function(a){return!a?[]:a.toArray?a.toArray():o.isArray(a)?n.call(a):o.isArguments(a)?n.call(a):o.values(a)};o.size=function(a){return o.toArray(a).length};o.first=o.head=function(a,b,e){return b!=null&&!e?n.call(a,0,b):a[0]};o.rest=o.tail=function(a,b,e){return n.call(a,b==null||e?1:b)};o.last=function(a){return a[a.length-1]};o.compact=function(a){return o.filter(a,function(a){return!!a})};
o.flatten=function(a){return o.reduce(a,function(a,b){if(o.isArray(b))return a.concat(o.flatten(b));a[a.length]=b;return a},[])};o.without=function(a){return o.difference(a,n.call(arguments,1))};o.uniq=o.unique=function(a,b){return o.reduce(a,function(a,e,c){if(0==c||(b===true?o.last(a)!=e:!o.include(a,e)))a[a.length]=e;return a},[])};o.union=function(){return o.uniq(o.flatten(arguments))};o.intersection=o.intersect=function(a){var b=n.call(arguments,1);return o.filter(o.uniq(a),function(a){return o.every(b,
function(b){return o.indexOf(b,a)>=0})})};o.difference=function(a,b){return o.filter(a,function(a){return!o.include(b,a)})};o.zip=function(){for(var a=n.call(arguments),b=o.max(o.pluck(a,"length")),e=Array(b),c=0;c<b;c++)e[c]=o.pluck(a,""+c);return e};o.indexOf=function(a,b,e){if(a==null)return-1;var c;if(e)return e=o.sortedIndex(a,b),a[e]===b?e:-1;if(w&&a.indexOf===w)return a.indexOf(b);for(e=0,c=a.length;e<c;e++)if(a[e]===b)return e;return-1};o.lastIndexOf=function(a,b){if(a==null)return-1;if(A&&
a.lastIndexOf===A)return a.lastIndexOf(b);for(var e=a.length;e--;)if(a[e]===b)return e;return-1};o.range=function(a,b,e){arguments.length<=1&&(b=a||0,a=0);for(var e=arguments[2]||1,c=Math.max(Math.ceil((b-a)/e),0),f=0,k=Array(c);f<c;)k[f++]=a,a+=e;return k};o.bind=function(a,b){if(a.bind===s&&s)return s.apply(a,n.call(arguments,1));var e=n.call(arguments,2);return function(){return a.apply(b,e.concat(n.call(arguments)))}};o.bindAll=function(a){var b=n.call(arguments,1);b.length==0&&(b=o.functions(a));
B(b,function(b){a[b]=o.bind(a[b],a)});return a};o.memoize=function(a,b){var c={};b||(b=o.identity);return function(){var f=b.apply(this,arguments);return e.call(c,f)?c[f]:c[f]=a.apply(this,arguments)}};o.delay=function(a,b){var e=n.call(arguments,2);return setTimeout(function(){return a.apply(a,e)},b)};o.defer=function(a){return o.delay.apply(o,[a,1].concat(n.call(arguments,1)))};var C=function(a,b,e){var c;return function(){var f=this,k=arguments,j=function(){c=null;a.apply(f,k)};e&&clearTimeout(c);
if(e||!c)c=setTimeout(j,b)}};o.throttle=function(a,b){return C(a,b,false)};o.debounce=function(a,b){return C(a,b,true)};o.once=function(a){var b=false,e;return function(){if(b)return e;b=true;return e=a.apply(this,arguments)}};o.wrap=function(a,b){return function(){var e=[a].concat(n.call(arguments));return b.apply(this,e)}};o.compose=function(){var a=n.call(arguments);return function(){for(var b=n.call(arguments),e=a.length-1;e>=0;e--)b=[a[e].apply(this,b)];return b[0]}};o.after=function(a,b){return function(){if(--a<
1)return b.apply(this,arguments)}};o.keys=z||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[],c;for(c in a)e.call(a,c)&&(b[b.length]=c);return b};o.values=function(a){return o.map(a,o.identity)};o.functions=o.methods=function(a){var b=[],e;for(e in a)o.isFunction(a[e])&&b.push(e);return b.sort()};o.extend=function(a){B(n.call(arguments,1),function(b){for(var e in b)b[e]!==void 0&&(a[e]=b[e])});return a};o.defaults=function(a){B(n.call(arguments,1),function(b){for(var e in b)a[e]==
null&&(a[e]=b[e])});return a};o.clone=function(a){return o.isArray(a)?a.slice():o.extend({},a)};o.tap=function(a,b){b(a);return a};o.isEqual=function(a,b){if(a===b)return true;var e=typeof a;if(e!=typeof b)return false;if(a==b)return true;if(!a&&b||a&&!b)return false;if(a._chain)a=a._wrapped;if(b._chain)b=b._wrapped;if(a.isEqual)return a.isEqual(b);if(b.isEqual)return b.isEqual(a);if(o.isDate(a)&&o.isDate(b))return a.getTime()===b.getTime();if(o.isNaN(a)&&o.isNaN(b))return false;if(o.isRegExp(a)&&
o.isRegExp(b))return a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline;if(e!=="object")return false;if(a.length&&a.length!==b.length)return false;var e=o.keys(a),c=o.keys(b);if(e.length!=c.length)return false;for(var f in a)if(!(f in b)||!o.isEqual(a[f],b[f]))return false;return true};o.isEmpty=function(a){if(o.isArray(a)||o.isString(a))return a.length===0;for(var b in a)if(e.call(a,b))return false;return true};o.isElement=function(a){return!!(a&&a.nodeType==
1)};o.isArray=f||function(b){return a.call(b)==="[object Array]"};o.isObject=function(a){return a===Object(a)};o.isArguments=function(a){return!(!a||!e.call(a,"callee"))};o.isFunction=function(a){return!(!a||!a.constructor||!a.call||!a.apply)};o.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};o.isNumber=function(a){return!!(a===0||a&&a.toExponential&&a.toFixed)};o.isNaN=function(a){return a!==a};o.isBoolean=function(a){return a===true||a===false};o.isDate=function(a){return!(!a||
!a.getTimezoneOffset||!a.setUTCFullYear)};o.isRegExp=function(a){return!(!a||!a.test||!a.exec||!(a.ignoreCase||a.ignoreCase===false))};o.isNull=function(a){return a===null};o.isUndefined=function(a){return a===void 0};o.noConflict=function(){c._=h;return this};o.identity=function(a){return a};o.times=function(a,b,e){for(var c=0;c<a;c++)b.call(e,c)};o.mixin=function(a){B(o.functions(a),function(b){L(b,o[b]=a[b])})};var G=0;o.uniqueId=function(a){var b=G++;return a?a+b:b};o.templateSettings={evaluate:/<%([\s\S]+?)%>/g,
interpolate:/<%=([\s\S]+?)%>/g};o.template=function(a,b){var e=o.templateSettings,e="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(e.interpolate,function(a,b){return"',"+b.replace(/\\'/g,"'")+",'"}).replace(e.evaluate||null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",e=new Function("obj",
e);return b?e(b):e};var E=function(a){this._wrapped=a};o.prototype=E.prototype;var H=function(a,b){return b?o(a).chain():a},L=function(a,b){E.prototype[a]=function(){var a=n.call(arguments);j.call(a,this._wrapped);return H(b.apply(o,a),this._chain)}};o.mixin(o);B("pop,push,reverse,shift,sort,splice,unshift".split(","),function(a){var e=b[a];E.prototype[a]=function(){e.apply(this._wrapped,arguments);return H(this._wrapped,this._chain)}});B(["concat","join","slice"],function(a){var e=b[a];E.prototype[a]=
function(){return H(e.apply(this._wrapped,arguments),this._chain)}});E.prototype.chain=function(){this._chain=true;return this};E.prototype.value=function(){return this._wrapped}})();
(function(){var c=this,h=c.Backbone,m;m=typeof exports!=="undefined"?exports:c.Backbone={};m.VERSION="0.5.3";var b=c._;if(!b&&typeof require!=="undefined")b=require("underscore")._;var f=c.jQuery||c.Zepto;m.noConflict=function(){c.Backbone=h;return this};m.emulateHTTP=false;m.emulateJSON=false;m.Events={bind:function(a,b,e){var c=this._callbacks||(this._callbacks={});(c[a]||(c[a]=[])).push([b,e]);return this},unbind:function(a,b){var e;if(a){if(e=this._callbacks)if(b){e=e[a];if(!e)return this;for(var c=
0,f=e.length;c<f;c++)if(e[c]&&b===e[c][0]){e[c]=null;break}}else e[a]=[]}else this._callbacks={};return this},trigger:function(a){var b,e,c,f,k=2;if(!(e=this._callbacks))return this;for(;k--;)if(b=k?a:"all",b=e[b])for(var j=0,n=b.length;j<n;j++)(c=b[j])?(f=k?Array.prototype.slice.call(arguments,1):arguments,c[0].apply(c[1]||this,f)):(b.splice(j,1),j--,n--);return this}};m.Model=function(a,e){var c;a||(a={});if(c=this.defaults)b.isFunction(c)&&(c=c.call(this)),a=b.extend({},c,a);this.attributes={};
this._escapedAttributes={};this.cid=b.uniqueId("c");this.set(a,{silent:true});this._changed=false;this._previousAttributes=b.clone(this.attributes);if(e&&e.collection)this.collection=e.collection;this.initialize(a,e)};b.extend(m.Model.prototype,m.Events,{_previousAttributes:null,_changed:false,idAttribute:"id",initialize:function(){},toJSON:function(){return b.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.attributes[a];
return this._escapedAttributes[a]=(b==null?"":""+b).replace(/&(?!\w+;|#\d+;|#x[\da-f]+;)/gi,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")},has:function(a){return this.attributes[a]!=null},set:function(a,e){e||(e={});if(!a)return this;if(a.attributes)a=a.attributes;var c=this.attributes,f=this._escapedAttributes;if(!e.silent&&this.validate&&!this._performValidation(a,e))return false;if(this.idAttribute in a)this.id=a[this.idAttribute];
var k=this._changing;this._changing=true;for(var j in a){var n=a[j];if(!b.isEqual(c[j],n))c[j]=n,delete f[j],this._changed=true,e.silent||this.trigger("change:"+j,this,n,e)}!k&&!e.silent&&this._changed&&this.change(e);this._changing=false;return this},unset:function(a,b){if(!(a in this.attributes))return this;b||(b={});var e={};e[a]=void 0;if(!b.silent&&this.validate&&!this._performValidation(e,b))return false;delete this.attributes[a];delete this._escapedAttributes[a];a==this.idAttribute&&delete this.id;
this._changed=true;b.silent||(this.trigger("change:"+a,this,void 0,b),this.change(b));return this},clear:function(a){a||(a={});var b,e=this.attributes,c={};for(b in e)c[b]=void 0;if(!a.silent&&this.validate&&!this._performValidation(c,a))return false;this.attributes={};this._escapedAttributes={};this._changed=true;if(!a.silent){for(b in e)this.trigger("change:"+b,this,void 0,a);this.change(a)}return this},fetch:function(a){a||(a={});var b=this,e=a.success;a.success=function(c,f,k){if(!b.set(b.parse(c,
k),a))return false;e&&e(b,c)};a.error=z(a.error,b,a);return(this.sync||m.sync).call(this,"read",this,a)},save:function(a,b){b||(b={});if(a&&!this.set(a,b))return false;var e=this,c=b.success;b.success=function(a,f,k){if(!e.set(e.parse(a,k),b))return false;c&&c(e,a,k)};b.error=z(b.error,e,b);var f=this.isNew()?"create":"update";return(this.sync||m.sync).call(this,f,this,b)},destroy:function(a){a||(a={});if(this.isNew())return this.trigger("destroy",this,this.collection,a);var b=this,e=a.success;a.success=
function(c){b.trigger("destroy",b,b.collection,a);e&&e(b,c)};a.error=z(a.error,b,a);return(this.sync||m.sync).call(this,"delete",this,a)},url:function(){var a=w(this.collection)||this.urlRoot||A();return this.isNew()?a:a+(a.charAt(a.length-1)=="/"?"":"/")+encodeURIComponent(this.id)},parse:function(a){return a},clone:function(){return new this.constructor(this)},isNew:function(){return this.id==null},change:function(a){this.trigger("change",this,a);this._previousAttributes=b.clone(this.attributes);
this._changed=false},hasChanged:function(a){return a?this._previousAttributes[a]!=this.attributes[a]:this._changed},changedAttributes:function(a){a||(a=this.attributes);var e=this._previousAttributes,c=false,f;for(f in a)b.isEqual(e[f],a[f])||(c=c||{},c[f]=a[f]);return c},previous:function(a){return!a||!this._previousAttributes?null:this._previousAttributes[a]},previousAttributes:function(){return b.clone(this._previousAttributes)},_performValidation:function(a,b){var e=this.validate(a);return e?
(b.error?b.error(this,e,b):this.trigger("error",this,e,b),false):true}});m.Collection=function(a,e){e||(e={});if(e.comparator)this.comparator=e.comparator;b.bindAll(this,"_onModelEvent","_removeReference");this._reset();a&&this.reset(a,{silent:true});this.initialize.apply(this,arguments)};b.extend(m.Collection.prototype,m.Events,{model:m.Model,initialize:function(){},toJSON:function(){return this.map(function(a){return a.toJSON()})},add:function(a,e){if(b.isArray(a))for(var c=0,f=a.length;c<f;c++)this._add(a[c],
e);else this._add(a,e);return this},remove:function(a,e){if(b.isArray(a))for(var c=0,f=a.length;c<f;c++)this._remove(a[c],e);else this._remove(a,e);return this},get:function(a){return a==null?null:this._byId[a.id!=null?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},sort:function(a){a||(a={});if(!this.comparator)throw Error("Cannot sort a set without a comparator");this.models=this.sortBy(this.comparator);a.silent||this.trigger("reset",this,a);
return this},pluck:function(a){return b.map(this.models,function(b){return b.get(a)})},reset:function(a,b){a||(a=[]);b||(b={});this.each(this._removeReference);this._reset();this.add(a,{silent:true});b.silent||this.trigger("reset",this,b);return this},fetch:function(a){a||(a={});var b=this,e=a.success;a.success=function(c,f,k){b[a.add?"add":"reset"](b.parse(c,k),a);e&&e(b,c)};a.error=z(a.error,b,a);return(this.sync||m.sync).call(this,"read",this,a)},create:function(a,b){var e=this;b||(b={});a=this._prepareModel(a,
b);if(!a)return false;var c=b.success;b.success=function(a,f,k){e.add(a,b);c&&c(a,f,k)};a.save(null,b);return a},parse:function(a){return a},chain:function(){return b(this.models).chain()},_reset:function(){this.length=0;this.models=[];this._byId={};this._byCid={}},_prepareModel:function(a,b){if(a instanceof m.Model){if(!a.collection)a.collection=this}else{var e=a,a=new this.model(e,{collection:this});a.validate&&!a._performValidation(e,b)&&(a=false)}return a},_add:function(a,b){b||(b={});a=this._prepareModel(a,
b);if(!a)return false;var e=this.getByCid(a);if(e)throw Error(["Can't add the same model to a set twice",e.id]);this._byId[a.id]=a;this._byCid[a.cid]=a;this.models.splice(b.at!=null?b.at:this.comparator?this.sortedIndex(a,this.comparator):this.length,0,a);a.bind("all",this._onModelEvent);this.length++;b.silent||a.trigger("add",a,this,b);return a},_remove:function(a,b){b||(b={});a=this.getByCid(a)||this.get(a);if(!a)return null;delete this._byId[a.id];delete this._byCid[a.cid];this.models.splice(this.indexOf(a),
1);this.length--;b.silent||a.trigger("remove",a,this,b);this._removeReference(a);return a},_removeReference:function(a){this==a.collection&&delete a.collection;a.unbind("all",this._onModelEvent)},_onModelEvent:function(a,b,e,c){(a=="add"||a=="remove")&&e!=this||(a=="destroy"&&this._remove(b,c),b&&a==="change:"+b.idAttribute&&(delete this._byId[b.previous(b.idAttribute)],this._byId[b.id]=b),this.trigger.apply(this,arguments))}});b.each("forEach,each,map,reduce,reduceRight,find,detect,filter,select,reject,every,all,some,any,include,contains,invoke,max,min,sortBy,sortedIndex,toArray,size,first,rest,last,without,indexOf,lastIndexOf,isEmpty,groupBy".split(","),
function(a){m.Collection.prototype[a]=function(){return b[a].apply(b,[this.models].concat(b.toArray(arguments)))}});m.Router=function(a){a||(a={});if(a.routes)this.routes=a.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var n=/:([\w\d]+)/g,j=/\*([\w\d]+)/g,a=/[-[\]{}()+?.,\\^$|#\s]/g;b.extend(m.Router.prototype,m.Events,{initialize:function(){},route:function(a,e,c){m.history||(m.history=new m.History);b.isRegExp(a)||(a=this._routeToRegExp(a));m.history.route(a,b.bind(function(b){b=
this._extractParameters(a,b);c.apply(this,b);this.trigger.apply(this,["route:"+e].concat(b))},this))},navigate:function(a,b){m.history.navigate(a,b)},_bindRoutes:function(){if(this.routes){var a=[],b;for(b in this.routes)a.unshift([b,this.routes[b]]);b=0;for(var e=a.length;b<e;b++)this.route(a[b][0],a[b][1],this[a[b][1]])}},_routeToRegExp:function(b){b=b.replace(a,"\\$&").replace(n,"([^/]*)").replace(j,"(.*?)");return RegExp("^"+b+"$")},_extractParameters:function(a,b){return a.exec(b).slice(1)}});
m.History=function(){this.handlers=[];b.bindAll(this,"checkUrl")};var e=/^#*/,k=/msie [\w.]+/,v=false;b.extend(m.History.prototype,{interval:50,getFragment:function(a,b){if(a==null)if(this._hasPushState||b){var a=window.location.pathname,c=window.location.search;c&&(a+=c);a.indexOf(this.options.root)==0&&(a=a.substr(this.options.root.length))}else a=window.location.hash;return decodeURIComponent(a.replace(e,""))},start:function(a){if(v)throw Error("Backbone.history has already been started");this.options=
b.extend({},{root:"/"},this.options,a);this._wantsPushState=!!this.options.pushState;this._hasPushState=!(!this.options.pushState||!window.history||!window.history.pushState);var a=this.getFragment(),c=document.documentMode;if(c=k.exec(navigator.userAgent.toLowerCase())&&(!c||c<=7))this.iframe=f('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(a);this._hasPushState?f(window).bind("popstate",this.checkUrl):"onhashchange"in window&&!c?f(window).bind("hashchange",
this.checkUrl):setInterval(this.checkUrl,this.interval);this.fragment=a;v=true;a=window.location;c=a.pathname==this.options.root;if(this._wantsPushState&&!this._hasPushState&&!c)return this.fragment=this.getFragment(null,true),window.location.replace(this.options.root+"#"+this.fragment),true;else if(this._wantsPushState&&this._hasPushState&&c&&a.hash)this.fragment=a.hash.replace(e,""),window.history.replaceState({},document.title,a.protocol+"//"+a.host+this.options.root+this.fragment);if(!this.options.silent)return this.loadUrl()},
route:function(a,b){this.handlers.unshift({route:a,callback:b})},checkUrl:function(){var a=this.getFragment();a==this.fragment&&this.iframe&&(a=this.getFragment(this.iframe.location.hash));if(a==this.fragment||a==decodeURIComponent(this.fragment))return false;this.iframe&&this.navigate(a);this.loadUrl()||this.loadUrl(window.location.hash)},loadUrl:function(a){var e=this.fragment=this.getFragment(a);return b.any(this.handlers,function(a){if(a.route.test(e))return a.callback(e),true})},navigate:function(a,
b){var c=(a||"").replace(e,"");if(!(this.fragment==c||this.fragment==decodeURIComponent(c))){if(this._hasPushState){var f=window.location;c.indexOf(this.options.root)!=0&&(c=this.options.root+c);this.fragment=c;window.history.pushState({},document.title,f.protocol+"//"+f.host+c)}else if(window.location.hash=this.fragment=c,this.iframe&&c!=this.getFragment(this.iframe.location.hash))this.iframe.document.open().close(),this.iframe.location.hash=c;b&&this.loadUrl(a)}}});m.View=function(a){this.cid=b.uniqueId("view");
this._configure(a||{});this._ensureElement();this.delegateEvents();this.initialize.apply(this,arguments)};var y=/^(\S+)\s*(.*)$/,t="model,collection,el,id,attributes,className,tagName".split(",");b.extend(m.View.prototype,m.Events,{tagName:"div",$:function(a){return f(a,this.el)},initialize:function(){},render:function(){return this},remove:function(){f(this.el).remove();return this},make:function(a,b,e){a=document.createElement(a);b&&f(a).attr(b);e&&f(a).html(e);return a},delegateEvents:function(a){if(a||
(a=this.events)){b.isFunction(a)&&(a=a.call(this));f(this.el).unbind(".delegateEvents"+this.cid);for(var e in a){var c=this[a[e]];if(!c)throw Error('Event "'+a[e]+'" does not exist');var k=e.match(y),j=k[1],k=k[2],c=b.bind(c,this);j+=".delegateEvents"+this.cid;k===""?f(this.el).bind(j,c):f(this.el).delegate(k,j,c)}}},_configure:function(a){this.options&&(a=b.extend({},this.options,a));for(var e=0,c=t.length;e<c;e++){var f=t[e];a[f]&&(this[f]=a[f])}this.options=a},_ensureElement:function(){if(this.el){if(b.isString(this.el))this.el=
f(this.el).get(0)}else{var a=this.attributes||{};if(this.id)a.id=this.id;if(this.className)a["class"]=this.className;this.el=this.make(this.tagName,a)}}});m.Model.extend=m.Collection.extend=m.Router.extend=m.View.extend=function(a,b){var e=p(this,a,b);e.extend=this.extend;return e};var r={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};m.sync=function(a,e,c){var k=r[a],c=b.extend({type:k,dataType:"json"},c);if(!c.url)c.url=w(e)||A();if(!c.data&&e&&(a=="create"||a=="update"))c.contentType=
"application/json",c.data=JSON.stringify(e.toJSON());if(m.emulateJSON)c.contentType="application/x-www-form-urlencoded",c.data=c.data?{model:c.data}:{};if(m.emulateHTTP&&(k==="PUT"||k==="DELETE")){if(m.emulateJSON)c.data._method=k;c.type="POST";c.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",k)}}if(c.type!=="GET"&&!m.emulateJSON)c.processData=false;return f.ajax(c)};var x=function(){},p=function(a,e,c){var f;f=e&&e.hasOwnProperty("constructor")?e.constructor:function(){return a.apply(this,
arguments)};b.extend(f,a);x.prototype=a.prototype;f.prototype=new x;e&&b.extend(f.prototype,e);c&&b.extend(f,c);f.prototype.constructor=f;f.__super__=a.prototype;return f},w=function(a){return!a||!a.url?null:b.isFunction(a.url)?a.url():a.url},A=function(){throw Error('A "url" property or function must be specified');},z=function(a,b,e){return function(c){a?a(b,c,e):b.trigger("error",b,c,e)}}}).call(this);
(function(){var c=function(){return this}();if(c.require&&c.define)require.packaged=true;else{var h=function(b,c,j){if(typeof b!=="string")h.original?h.original.apply(window,arguments):(console.error("dropping module because define wasn't a string."),console.trace());else{arguments.length==2&&(j=c);if(!define.modules)define.modules={};define.modules[b]=j}};if(c.define)h.original=c.define;c.define=h;var m=function(c,n){if(Object.prototype.toString.call(c)==="[object Array]"){for(var j=[],a=0,e=c.length;a<
e;++a){var k=b(c[a]);if(!k&&m.original)return m.original.apply(window,arguments);j.push(k)}n&&n.apply(null,j)}else if(typeof c==="string"){j=b(c);if(!j&&m.original)return m.original.apply(window,arguments);n&&n();return j}else if(m.original)return m.original.apply(window,arguments)};if(c.require)m.original=c.require;c.require=m;require.packaged=true;var b=function(b){var c=define.modules[b];if(c==null)return console.error("Missing module: "+b),null;if(typeof c==="function"){var j={};c(require,j,{id:b,
uri:""});return define.modules[b]=j}return c}}})();
define("pilot/fixoldbrowsers",["require","exports","module"],function(){if(!Function.prototype.bind){var c=Array.prototype.slice;Function.prototype.bind=function(a){var b=this;if(typeof b.apply!=="function"||typeof b.call!=="function")return new TypeError;var e=c.call(arguments),f=function B(){if(this instanceof B){var a=Object.create(b.prototype);b.apply(a,e.concat(c.call(arguments)));return a}else return b.call.apply(b,e.concat(c.call(arguments)))};f.length=typeof b==="function"?Math.max(b.length-
e.length,0):0;return f}}var h=Function.prototype.call,m=Object.prototype,b=h.bind(m.hasOwnProperty),f,n,j,a,e;if(e=b(m,"__defineGetter__"))f=h.bind(m.__defineGetter__),n=h.bind(m.__defineSetter__),j=h.bind(m.__lookupGetter__),a=h.bind(m.__lookupSetter__);if(!Array.isArray)Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"};if(!Array.prototype.forEach)Array.prototype.forEach=function(a,b){for(var e=+this.length,c=0;c<e;c++)c in this&&a.call(b,this[c],c,this)};if(!Array.prototype.map)Array.prototype.map=
function(a,b){var e=+this.length;if(typeof a!=="function")throw new TypeError;for(var c=Array(e),f=0;f<e;f++)f in this&&(c[f]=a.call(b,this[f],f,this));return c};if(!Array.prototype.filter)Array.prototype.filter=function(a,b){for(var e=[],c=0;c<this.length;c++)a.call(b,this[c])&&e.push(this[c]);return e};if(!Array.prototype.every)Array.prototype.every=function(a,b){for(var e=0;e<this.length;e++)if(!a.call(b,this[e]))return false;return true};if(!Array.prototype.some)Array.prototype.some=function(a,
b){for(var e=0;e<this.length;e++)if(a.call(b,this[e]))return true;return false};if(!Array.prototype.reduce)Array.prototype.reduce=function(a){var b=+this.length;if(typeof a!=="function")throw new TypeError;if(b===0&&arguments.length===1)throw new TypeError;var e=0;if(arguments.length>=2)var c=arguments[1];else{do{if(e in this){c=this[e++];break}if(++e>=b)throw new TypeError;}while(1)}for(;e<b;e++)e in this&&(c=a.call(null,c,this[e],e,this));return c};if(!Array.prototype.reduceRight)Array.prototype.reduceRight=
function(a){var b=+this.length;if(typeof a!=="function")throw new TypeError;if(b===0&&arguments.length===1)throw new TypeError;b-=1;if(arguments.length>=2)var e=arguments[1];else{do{if(b in this){e=this[b--];break}if(--b<0)throw new TypeError;}while(1)}for(;b>=0;b--)b in this&&(e=a.call(null,e,this[b],b,this));return e};if(!Array.prototype.indexOf)Array.prototype.indexOf=function(a,e){var c=this.length;if(!c)return-1;var f=e||0;if(f>=c)return-1;for(f<0&&(f+=c);f<c;f++)if(b(this,f)&&a===this[f])return f;
return-1};if(!Array.prototype.lastIndexOf)Array.prototype.lastIndexOf=function(a,e){var c=this.length;if(!c)return-1;var f=e||c;f<0&&(f+=c);for(f=Math.min(f,c-1);f>=0;f--)if(b(this,f)&&a===this[f])return f;return-1};if(!Object.getPrototypeOf)Object.getPrototypeOf=function(a){return a.__proto__||a.constructor.prototype};if(!Object.getOwnPropertyDescriptor)Object.getOwnPropertyDescriptor=function(c,f){if(typeof c!=="object"&&typeof c!=="function"||c===null)throw new TypeError("Object.getOwnPropertyDescriptor called on a non-object: "+
c);if(b(c,f)){var k,n;if(e){var p=c.__proto__;c.__proto__=m;k=j(c,f);n=a(c,f);c.__proto__=p;if(k||n){if(k)descriptor.get=k;if(n)descriptor.set=n;return descriptor}}descriptor.value=c[f];return descriptor}};if(!Object.getOwnPropertyNames)Object.getOwnPropertyNames=function(a){return Object.keys(a)};if(!Object.create)Object.create=function(a,b){var e;if(a===null)e={__proto__:null};else{if(typeof a!=="object")throw new TypeError("typeof prototype["+typeof a+"] != 'object'");e=function(){};e.prototype=
a;e=new e;e.__proto__=a}typeof b!=="undefined"&&Object.defineProperties(e,b);return e};if(!Object.defineProperty)Object.defineProperty=function(c,k,p){if(typeof c!=="object"&&typeof c!=="function")throw new TypeError("Object.defineProperty called on non-object: "+c);if(typeof c!=="object"||c===null)throw new TypeError("Property description must be an object: "+p);if(b(p,"value")){if(e&&(j(c,k)||a(c,k)))c.__proto__=m,delete c[k];c[k]=p.value}else{if(!e)throw new TypeError("getters & setters can not be defined on this javascript engine");
b(p,"get")&&f(c,k,p.get);b(p,"set")&&n(c,k,p.set)}return c};if(!Object.defineProperties)Object.defineProperties=function(a,e){for(var c in e)b(e,c)&&Object.defineProperty(a,c,e[c]);return a};if(!Object.seal)Object.seal=function(a){return a};if(!Object.freeze)Object.freeze=function(a){return a};try{Object.freeze(function(){})}catch(k){Object.freeze=function(a){return function(b){return typeof b==="function"?b:a(b)}}(Object.freeze)}if(!Object.preventExtensions)Object.preventExtensions=function(a){return a};
if(!Object.isSealed)Object.isSealed=function(){return false};if(!Object.isFrozen)Object.isFrozen=function(){return false};if(!Object.isExtensible)Object.isExtensible=function(){return true};if(!Object.keys){var v=true,y="toString,toLocaleString,valueOf,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,constructor".split(","),t=y.length,r;for(r in{toString:null})v=false;Object.keys=function A(a){if(typeof a!=="object"&&typeof a!=="function"||a===null)throw new TypeError("Object.keys called on a non-object");
var A=[],e;for(e in a)b(a,e)&&A.push(e);if(v)for(e=0;e<t;e++){var c=y[e];b(a,c)&&A.push(c)}return A}}if(!Date.prototype.toISOString)Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+(this.getUTCMonth()+1)+"-"+this.getUTCDate()+"T"+this.getUTCHours()+":"+this.getUTCMinutes()+":"+this.getUTCSeconds()+"Z"};if(!Date.now)Date.now=function(){return(new Date).getTime()};if(!Date.prototype.toJSON)Date.prototype.toJSON=function(){if(typeof this.toISOString!=="function")throw new TypeError;
return this.toISOString()};isNaN(Date.parse("T00:00"))&&(Date=function(a){var b=function(e,c,f,k,j,n,p){var m=arguments.length;return this instanceof a?(m=m===1&&String(e)===e?new a(b.parse(e)):m>=7?new a(e,c,f,k,j,n,p):m>=6?new a(e,c,f,k,j,n):m>=5?new a(e,c,f,k,j):m>=4?new a(e,c,f,k):m>=3?new a(e,c,f):m>=2?new a(e,c):m>=1?new a(e):new a,m.constructor=b,m):a.apply(this,arguments)},e=RegExp("^(?:((?:[+-]\\d\\d)?\\d\\d\\d\\d)(?:-(\\d\\d)(?:-(\\d\\d))?)?)?(?:T(\\d\\d):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?)?(?:Z|([+-])(\\d\\d):(\\d\\d))?$"),
c;for(c in a)b[c]=a[c];b.now=a.now;b.UTC=a.UTC;b.prototype=a.prototype;b.prototype.constructor=b;b.parse=function(b){var c=e.exec(b);if(c){c.shift();for(var f=c[0]===void 0,k=0;k<10;k++)k!==7&&(c[k]=+(c[k]||(k<3?1:0)),k===1&&c[k]--);if(f)return((c[3]*60+c[4])*60+c[5])*1E3+c[6];f=(c[8]*60+c[9])*6E4;c[6]==="-"&&(f=-f);return a.UTC.apply(this,c.slice(0,7))+f}return a.parse.apply(this,arguments)};return b}(Date));if(!String.prototype.trim){var x=/^\s\s*/,p=/\s\s*$/;String.prototype.trim=function(){return String(this).replace(x,
"").replace(p,"")}}});
define("ace/ace","require,exports,module,pilot/index,pilot/fixoldbrowsers,pilot/plugin_manager,pilot/dom,pilot/event,ace/editor,ace/edit_session,ace/undomanager,ace/virtual_renderer,ace/theme/textmate,pilot/environment".split(","),function(c,h){c("pilot/index");c("pilot/fixoldbrowsers");var m=c("pilot/plugin_manager").catalog;m.registerPlugins(["pilot/index"]);var b=c("pilot/dom"),f=c("pilot/event"),n=c("ace/editor").Editor,j=c("ace/edit_session").EditSession,a=c("ace/undomanager").UndoManager,e=
c("ace/virtual_renderer").VirtualRenderer;h.edit=function(k){typeof k=="string"&&(k=document.getElementById(k));var h=new j(b.getInnerText(k));h.setUndoManager(new a);k.innerHTML="";var y=new n(new e(k,c("ace/theme/textmate")));y.setSession(h);var t=c("pilot/environment").create();m.startupPlugins({env:t}).then(function(){t.document=h;t.editor=y;y.resize();f.addListener(window,"resize",function(){y.resize()});k.env=t});y.env=t;return y}});
define("pilot/index","require,exports,module,pilot/fixoldbrowsers,pilot/types/basic,pilot/types/command,pilot/types/settings,pilot/commands/settings,pilot/commands/basic,pilot/settings/canon,pilot/canon".split(","),function(c,h){h.startup=function(m,b){c("pilot/fixoldbrowsers");c("pilot/types/basic").startup(m,b);c("pilot/types/command").startup(m,b);c("pilot/types/settings").startup(m,b);c("pilot/commands/settings").startup(m,b);c("pilot/commands/basic").startup(m,b);c("pilot/settings/canon").startup(m,
b);c("pilot/canon").startup(m,b)};h.shutdown=function(m,b){c("pilot/types/basic").shutdown(m,b);c("pilot/types/command").shutdown(m,b);c("pilot/types/settings").shutdown(m,b);c("pilot/commands/settings").shutdown(m,b);c("pilot/commands/basic").shutdown(m,b);c("pilot/settings/canon").shutdown(m,b);c("pilot/canon").shutdown(m,b)}});
define("pilot/types/basic",["require","exports","module","pilot/types"],function(c,h){function m(a){if(!Array.isArray(a.data)&&typeof a.data!=="function")throw Error("instances of SelectionType need typeSpec.data to be an array or function that returns an array:"+JSON.stringify(a));Object.keys(a).forEach(function(b){this[b]=a[b]},this)}function b(a){if(typeof a.defer!=="function")throw Error("Instances of DeferredType need typeSpec.defer to be a function that returns a type");Object.keys(a).forEach(function(b){this[b]=
a[b]},this)}function f(a){if(a instanceof j)this.subtype=a;else if(typeof a==="string"){if(this.subtype=n.getType(a),this.subtype==null)throw Error("Unknown array subtype: "+a);}else throw Error("Can' handle array subtype");}var n=c("pilot/types"),j=n.Type,a=n.Conversion,e=n.Status,k=new j;k.stringify=function(a){return a};k.parse=function(b){if(typeof b!="string")throw Error("non-string passed to text.parse()");return new a(b)};k.name="text";var v=new j;v.stringify=function(a){return!a?null:""+a};
v.parse=function(b){if(typeof b!="string")throw Error("non-string passed to number.parse()");if(b.replace(/\s/g,"").length===0)return new a(null,e.INCOMPLETE,"");var c=new a(parseInt(b,10));if(isNaN(c.value))c.status=e.INVALID,c.message="Can't convert \""+b+'" to a number.';return c};v.decrement=function(a){return a-1};v.increment=function(a){return a+1};v.name="number";m.prototype=new j;m.prototype.stringify=function(a){return a};m.prototype.parse=function(b){if(typeof b!="string")throw Error("non-string passed to parse()");
if(!this.data)throw Error("Missing data on selection type extension.");var c=false,f,k=[];(typeof this.data==="function"?this.data():this.data).forEach(function(a){b==a?(f=this.fromString(a),c=true):a.indexOf(b)===0&&k.push(this.fromString(a))},this);if(c)return new a(f);else if(this.noMatch&&this.noMatch(),k.length>0){var j="Possibilities"+(b.length===0?"":" for '"+b+"'");return new a(null,e.INCOMPLETE,j,k)}else return new a(null,e.INVALID,"Can't use '"+b+"'.",k)};m.prototype.fromString=function(a){return a};
m.prototype.decrement=function(a){var b=typeof this.data==="function"?this.data():this.data;a==null?a=b.length-1:(a=this.stringify(a),a=b.indexOf(a),a=a===0?b.length-1:a-1);return this.fromString(b[a])};m.prototype.increment=function(a){var b=typeof this.data==="function"?this.data():this.data;a==null?a=0:(a=this.stringify(a),a=b.indexOf(a),a=a===b.length-1?0:a+1);return this.fromString(b[a])};m.prototype.name="selection";h.SelectionType=m;var y=new m({name:"bool",data:["true","false"],stringify:function(a){return""+
a},fromString:function(a){return a==="true"?true:false}});b.prototype=new j;b.prototype.stringify=function(a){return this.defer().stringify(a)};b.prototype.parse=function(a){return this.defer().parse(a)};b.prototype.decrement=function(a){var b=this.defer();return b.decrement?b.decrement(a):void 0};b.prototype.increment=function(a){var b=this.defer();return b.increment?b.increment(a):void 0};b.prototype.name="deferred";h.DeferredType=b;f.prototype=new j;f.prototype.stringify=function(a){return a.join(" ")};
f.prototype.parse=function(a){return this.defer().parse(a)};f.prototype.name="array";var t=false;h.startup=function(){t||(t=true,n.registerType(k),n.registerType(v),n.registerType(y),n.registerType(m),n.registerType(b),n.registerType(f))};h.shutdown=function(){t=false;n.unregisterType(k);n.unregisterType(v);n.unregisterType(y);n.unregisterType(m);n.unregisterType(b);n.unregisterType(f)}});
define("pilot/types",["require","exports","module"],function(c,h){function m(){}function b(b,a){if(b.substr(-2)==="[]"){var e=b.slice(0,-2);return new n.array(e)}e=n[b];typeof e==="function"&&(e=new e(a));return e}var f={VALID:{toString:function(){return"VALID"},valueOf:function(){return 0}},INCOMPLETE:{toString:function(){return"INCOMPLETE"},valueOf:function(){return 1}},INVALID:{toString:function(){return"INVALID"},valueOf:function(){return 2}},combine:function(b){for(var a=f.VALID,e=0;e<b.length;e++)b[e].valueOf()>
a.valueOf()&&(a=b[e]);return a}};h.Status=f;h.Conversion=function(b,a,e,c){this.value=b;this.status=a||f.VALID;this.message=e;this.predictions=c||[]};m.prototype={stringify:function(){throw Error("not implemented");},parse:function(){throw Error("not implemented");},name:void 0,increment:function(){},decrement:function(){},getDefault:function(){return this.parse("")}};h.Type=m;var n={};h.registerType=function(b){if(typeof b==="object")if(b instanceof m){if(!b.name)throw Error("All registered types must have a name");
n[b.name]=b}else throw Error("Can't registerType using: "+b);else if(typeof b==="function"){if(!b.prototype.name)throw Error("All registered types must have a name");n[b.prototype.name]=b}else throw Error("Unknown type: "+b);};h.registerTypes=function(b){Object.keys(b).forEach(function(a){var e=b[a];e.name=a;h.registerType(e)})};h.deregisterType=function(b){delete n[b.name]};h.getType=function(c){if(typeof c==="string")return b(c);if(typeof c==="object"){if(!c.name)throw Error("Missing 'name' member to typeSpec");
return b(c.name,c)}throw Error("Can't extract type from "+c);}});define("pilot/types/command","require,exports,module,pilot/canon,pilot/types/basic,pilot/types".split(","),function(c,h){var m=c("pilot/canon"),b=c("pilot/types/basic").SelectionType,f=c("pilot/types"),n=new b({name:"command",data:function(){return m.getCommandNames()},stringify:function(b){return b.name},fromString:function(b){return m.getCommand(b)}});h.startup=function(){f.registerType(n)};h.shutdown=function(){f.unregisterType(n)}});
define("pilot/canon","require,exports,module,pilot/console,pilot/stacktrace,pilot/oop,pilot/useragent,pilot/keys,pilot/event_emitter,pilot/typecheck,pilot/catalog,pilot/types,pilot/lang".split(","),function(c,h){function m(a,b,e,c){return(c&&a.toLowerCase()||a).replace(/(?:^\s+|\n|\s+$)/g,"").split(RegExp("[\\s ]*"+b+"[\\s ]*","g"),e||999)}function b(a,b,e){for(var c,f=0,a=m(a,"\\-",null,true),k=0,j=a.length;k<j;++k)r.KEY_MODS[a[k]]?f|=r.KEY_MODS[a[k]]:c=a[k]||"-";if(e==null)return{key:c,hashId:f};
else(e[f]||(e[f]={}))[c]=b}function f(a){var e=a.bindKey,c=e[G],f=D,k=C;if(!e.sender)throw Error("All key bindings must have a sender");if(!e.mac&&e.mac!==null)throw Error("All key bindings must have a mac key binding");if(!e.win&&e.win!==null)throw Error("All key bindings must have a windows key binding");if(e[G])if(typeof e.sender=="string")m(e.sender,"\\|",null,true).forEach(function(e){f[e]||(f[e]={});c.split("|").forEach(function(c){b(c,a,f[e])})});else if(p.isFunction(e.sender))e={command:a,
sender:e.sender},keyData=b(c),k[keyData.hashId]||(k[keyData.hashId]={}),k[keyData.hashId][keyData.key]?k[keyData.hashId][keyData.key].push(e):k[keyData.hashId][keyData.key]=[e];else throw Error("Key binding must have a sender that is a string or function");}function n(a,b,e,c){p.isNumber(c)&&(c=r.keyCodeToString(c));for(var f=(C[e]||{})[c]||[],k=0;k<f.length;k++)if(f[k].sender(a,b,e,c))return f[k].command;return(a=D[b])&&a[e]&&a[e][c]}function j(a,b){var e=b.type;b.type=z.getType(e);if(b.type==null)throw Error("In "+
a+"/"+b.name+": can't find type for: "+JSON.stringify(e));}function a(a,b){for(var e=a.args,c=a.command.params,f=0;f<c.length;f++){var k=c[f];if(a.getParamStatus(k)!=A.VALID||k.defaultValue===null){var j=k.description;k.defaultValue===null&&(j+=" (optional)");if(j=prompt(j,k.defaultValue||""))e[k.name]=j;else{b();return}}}b()}function e(b,e,c,f,j){function n(){b.exec(e,p.args,p);!p.isAsync&&!p.isDone&&p.done()}typeof b==="string"&&(b=B[b]);if(!b)return false;var p=new k({sender:c,command:b,args:f||
{},typed:j});if(p.getStatus()==A.INVALID)return v.error("Canon.exec: Invalid parameter(s) passed to "+b.name),false;else{if(p.getStatus()==A.INCOMPLETE){var m,c=e[c];if(!c||!c.getArgsProvider||!(m=c.getArgsProvider()))m=a;m(p,function(){p.getStatus()==A.VALID&&n()})}else n();return true}}function k(a){a=a||{};this.command=a.command;this.args=a.args;this.typed=a.typed;this._begunOutput=false;this.start=new Date;this.end=null;this.error=this.completed=false}var v=c("pilot/console");c("pilot/stacktrace");
var y=c("pilot/oop"),t=c("pilot/useragent"),r=c("pilot/keys"),x=c("pilot/event_emitter").EventEmitter,p=c("pilot/typecheck"),w=c("pilot/catalog"),A=c("pilot/types").Status,z=c("pilot/types"),s=c("pilot/lang"),o={name:"command",description:"A command is a bit of functionality with optional typed arguments which can do something small like moving the cursor around the screen, or large like cloning a project from VCS.",indexOn:"name"};h.startup=function(){w.addExtensionSpec(o)};h.shutdown=function(){w.removeExtensionSpec(o)};
var B={},D={},C={},G=t.isMac?"mac":"win",E=[];h.removeCommand=function(a){var b=typeof a==="string"?a:a.name,a=B[b];delete B[b];s.arrayRemove(E,b);var b=D,e;for(e in b)for(var c in b[e])for(var f in b[e][c])b[e][c][f]==a&&delete b[e][c][f];var k=C;for(e in k)for(c in k[e])k[e][c].forEach(function(b,f){b.command==a&&k[e][c].splice(f,1)})};h.addCommand=function(a){if(!a.name)throw Error("All registered commands must have a name");if(a.params==null)a.params=[];if(!Array.isArray(a.params))throw Error("command.params must be an array in "+
a.name);a.params.forEach(function(b){if(!b.name)throw Error("In "+a.name+": all params must have a name");j(a.name,b)},this);B[a.name]=a;a.bindKey&&f(a);E.push(a.name);E.sort()};h.getCommand=function(a){return B[a]};h.getCommandNames=function(){return E};h.findKeyCommand=n;h.exec=e;h.execKeyCommand=function(a,b,c,f){return(c=n(a,b,c,f))?e(c,a,b,{}):false};h.upgradeType=j;y.implement(h,x);var H=[];y.implement(k.prototype,x);k.prototype.getParamStatus=function(a){var b=this.args||{};if(a.name in b){if(b[a.name]==
null)return a.defaultValue===null?A.VALID:A.INCOMPLETE;var e,b=b[a.name].toString();try{e=a.type.parse(b)}catch(c){return A.INVALID}if(e.status!=A.VALID)return e.status}else if(a.defaultValue===void 0)return A.INCOMPLETE;return A.VALID};k.prototype.getParamNameStatus=function(a){for(var b=this.command.params||[],e=0;e<b.length;e++)if(b[e].name==a)return this.getParamStatus(b[e]);throw"Parameter '"+a+"' not defined on command '"+this.command.name+"'";};k.prototype.getStatus=function(){var a=this.command.params;
if(!a||a.length==0)return A.VALID;for(var b=[],e=0;e<a.length;e++)b.push(this.getParamStatus(a[e]));return A.combine(b)};k.prototype._beginOutput=function(){this._begunOutput=true;this.outputs=[];for(H.push(this);H.length>100;)H.shiftObject();h._dispatchEvent("output",{requests:H,request:this})};k.prototype.doneWithError=function(a){this.error=true;this.done(a)};k.prototype.async=function(){this.isAsync=true;this._begunOutput||this._beginOutput()};k.prototype.output=function(a){this._begunOutput||
this._beginOutput();typeof a!=="string"&&!(a instanceof Node)&&(a=a.toString());this.outputs.push(a);this.isDone=true;this._dispatchEvent("output",{});return this};k.prototype.done=function(a){this.completed=true;this.end=new Date;this.duration=this.end.getTime()-this.start.getTime();a&&this.output(a);if(!this.isDone)this.isDone=true,this._dispatchEvent("output",{})};h.Request=k});
define("pilot/console",["require","exports","module"],function(c,h){var m=function(){},b="assert,count,debug,dir,dirxml,error,group,groupEnd,info,log,profile,profileEnd,time,timeEnd,trace,warn".split(",");typeof window==="undefined"?b.forEach(function(b){h[b]=function(){var c=Array.prototype.slice.call(arguments);postMessage(JSON.stringify({op:"log",method:b,args:c}))}}):b.forEach(function(b){h[b]=window.console&&window.console[b]?Function.prototype.bind.call(window.console[b],window.console):m})});
define("pilot/stacktrace",["require","exports","module","pilot/useragent","pilot/console"],function(c,h){function m(){}var b=c("pilot/useragent"),f=c("pilot/console"),n=b.isGecko?"firefox":b.isOpera?"opera":"other",j={chrome:function(a){var b=a.stack;return!b?(f.log(a),[]):b.replace(/^.*?\n/,"").replace(/^.*?\n/,"").replace(/^.*?\n/,"").replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@").split("\n")},firefox:function(a){var b=a.stack;if(!b)return f.log(a),
[];b=b.replace(/(?:\n@:0)?\s+$/m,"");b=b.replace(/^\(/gm,"{anonymous}(");return b.split("\n")},opera:function(a){var a=a.message.split("\n"),b=/Line\s+(\d+).*?script\s+(http\S+)(?:.*?in\s+function\s+(\S+))?/i,e,c,f;for(e=4,c=0,f=a.length;e<f;e+=2)b.test(a[e])&&(a[c++]=(RegExp.$3?RegExp.$3+"()@"+RegExp.$2+RegExp.$1:"{anonymous}()@"+RegExp.$2+":"+RegExp.$1)+" -- "+a[e+1].replace(/^\s+/,""));a.splice(c,a.length-c);return a},other:function(a){for(var b=/function\s*([\w\-$]+)?\s*\(/i,e=[],c=0,f,j;a&&e.length<
10;){f=b.test(a.toString())?RegExp.$1||"{anonymous}":"{anonymous}";j=Array.prototype.slice.call(a.arguments);var n=e,m=c++;f+="(";for(var h=0;h<j.length;++h){var z=j[h];typeof z=="object"?j[h]="#object":typeof z=="function"?j[h]="#function":typeof z=="string"&&(j[h]='"'+z+'"')}j=j.join(",");n[m]=f+j+")";if(a===a.caller&&window.opera)break;a=a.caller}return e}};m.prototype={sourceCache:{},ajax:function(a){var b=this.createXMLHTTPObject();if(b)return b.open("GET",a,false),b.setRequestHeader("User-Agent",
"XMLHTTP/1.0"),b.send(""),b.responseText},createXMLHTTPObject:function(){for(var a,b=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}],e=0;e<b.length;e++)try{return a=b[e](),this.createXMLHTTPObject=b[e],a}catch(c){}},getSource:function(a){a in this.sourceCache||(this.sourceCache[a]=this.ajax(a).split("\n"));return this.sourceCache[a]},guessFunctions:function(a){for(var b=
0;b<a.length;++b){var e=a[b],c=/{anonymous}\(.*\)@(\w+:\/\/([-\w\.]+)+(:\d+)?[^:]+):(\d+):?(\d+)?/.exec(e);if(c){var f=c[1],c=c[4];f&&c&&(f=this.guessFunctionName(f,c),a[b]=e.replace("{anonymous}",f))}}return a},guessFunctionName:function(a,b){try{return this.guessFunctionNameFromLines(b,this.getSource(a))}catch(e){return"getSource failed with url: "+a+", exception: "+e.toString()}},guessFunctionNameFromLines:function(a,b){for(var e=/function ([^(]*)\(([^)]*)\)/,c=/['"]?([0-9A-Za-z_]+)['"]?\s*[:=]\s*(function|eval|new Function)/,
f="",j=0;j<10;++j)if(f=b[a-j]+f,f!==void 0){var n=c.exec(f);if(n)return n[1];else n=e.exec(f);if(n&&n[1])return n[1]}return"(?)"}};var a=new m,e=[/http:\/\/localhost:4020\/sproutcore.js:/];h.ignoreFramesMatching=function(a){e.push(a)};h.Trace=function(b,e){this._ex=b;this._stack=j[n](b);if(e)this._stack=a.guessFunctions(this._stack)};h.Trace.prototype.log=function(a){a<=0&&(a=999999999);for(var b=0,c=0;c<this._stack.length&&b<a;c++){var j=this._stack[c],n=true;e.forEach(function(a){a.test(j)&&(n=
false)});n&&(f.debug(j),b++)}}});
define("pilot/useragent",["require","exports","module"],function(c,h){var m=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),b=navigator.userAgent;h.isWin=m=="win";h.isMac=m=="mac";h.isLinux=m=="linux";h.isIE=!+"\u000b1";h.isGecko=h.isMozilla=window.controllers&&window.navigator.product==="Gecko";h.isOldGecko=h.isGecko&&/rv\:1/.test(navigator.userAgent);h.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]";h.isWebKit=parseFloat(b.split("WebKit/")[1])||
void 0;h.isChrome=parseFloat(b.split(" Chrome/")[1])||void 0;h.isAIR=b.indexOf("AdobeAIR")>=0;h.isIPad=b.indexOf("iPad")>=0;h.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"};h.getOS=function(){return h.isMac?h.OS.MAC:h.isLinux?h.OS.LINUX:h.OS.WINDOWS}});
define("pilot/oop",["require","exports","module"],function(c,h){h.inherits=function(){var c=function(){};return function(b,f){c.prototype=f.prototype;b.super_=f.prototype;b.prototype=new c;b.prototype.constructor=b}}();h.mixin=function(c,b){for(var f in b)c[f]=b[f]};h.implement=function(c,b){h.mixin(c,b)}});
define("pilot/keys",["require","exports","module","pilot/oop"],function(c,h){var m=c("pilot/oop"),b=function(){var b={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",
120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:'"'}};for(i in b.FUNCTION_KEYS){var c=b.FUNCTION_KEYS[i].toUpperCase();
b[c]=parseInt(i,10)}m.mixin(b,b.MODIFIER_KEYS);m.mixin(b,b.PRINTABLE_KEYS);m.mixin(b,b.FUNCTION_KEYS);return b}();m.mixin(h,b);h.keyCodeToString=function(c){return(b[c]||String.fromCharCode(c)).toLowerCase()}});
define("pilot/event_emitter",["require","exports","module"],function(c,h){var m={};m._emit=m._dispatchEvent=function(b,c){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[b];if(n&&n.length){c=c||{};c.type=b;for(var j=0;j<n.length;j++)n[j](c)}};m.on=m.addEventListener=function(b,c){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[b];n||(n=this._eventRegistry[b]=[]);n.indexOf(c)==-1&&n.push(c)};m.removeListener=m.removeEventListener=function(b,c){this._eventRegistry=
this._eventRegistry||{};var n=this._eventRegistry[b];if(n){var j=n.indexOf(c);j!==-1&&n.splice(j,1)}};m.removeAllListeners=function(b){this._eventRegistry&&(this._eventRegistry[b]=[])};h.EventEmitter=m});
define("pilot/typecheck",["require","exports","module"],function(c,h){var m=Object.prototype.toString;h.isString=function(b){return b&&m.call(b)==="[object String]"};h.isBoolean=function(b){return b&&m.call(b)==="[object Boolean]"};h.isNumber=function(b){return b&&m.call(b)==="[object Number]"&&isFinite(b)};h.isObject=function(b){return b!==void 0&&(b===null||typeof b=="object"||Array.isArray(b)||h.isFunction(b))};h.isFunction=function(b){return b&&m.call(b)==="[object Function]"}});
define("pilot/catalog",["require","exports","module"],function(c,h){var m={};h.addExtensionSpec=function(b){m[b.name]=b};h.removeExtensionSpec=function(b){typeof b==="string"?delete m[b]:delete m[b.name]};h.getExtensionSpec=function(b){return m[b]};h.getExtensionSpecs=function(){return Object.keys(m)}});
define("pilot/lang",["require","exports","module"],function(c,h){h.stringReverse=function(b){return b.split("").reverse().join("")};h.stringRepeat=function(b,c){return Array(c+1).join(b)};var m=/^\s\s*/,b=/\s\s*$/;h.stringTrimLeft=function(b){return b.replace(m,"")};h.stringTrimRight=function(c){return c.replace(b,"")};h.copyObject=function(b){var c={},j;for(j in b)c[j]=b[j];return c};h.copyArray=function(b){var c=[];for(i=0,l=b.length;i<l;i++)c[i]=b[i]&&typeof b[i]=="object"?this.copyObject(b[i]):
b[i];return c};h.deepCopy=function(b){if(typeof b!="object")return b;var c=b.constructor(),j;for(j in b)c[j]=typeof b[j]=="object"?this.deepCopy(b[j]):b[j];return c};h.arrayToMap=function(b){for(var c={},j=0;j<b.length;j++)c[b[j]]=1;return c};h.arrayRemove=function(b,c){for(var j=0;j<=b.length;j++)c===b[j]&&b.splice(j,1)};h.escapeRegExp=function(b){return b.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")};h.deferredCall=function(b){var c=null,j=function(){c=null;b()},a=function(b){c||(c=setTimeout(j,b||
0));return a};a.schedule=a;a.call=function(){this.cancel();b();return a};a.cancel=function(){clearTimeout(c);c=null;return a};return a}});
define("pilot/types/settings","require,exports,module,pilot/types/basic,pilot/types,pilot/settings".split(","),function(c,h){var m=c("pilot/types/basic").SelectionType,b=c("pilot/types/basic").DeferredType,f=c("pilot/types"),n=c("pilot/settings").settings,j,a=new m({name:"setting",data:function(){return k.settings.getSettingNames()},stringify:function(a){j=a;return a.name},fromString:function(a){return j=n.getSetting(a)},noMatch:function(){j=null}}),e=new b({name:"settingValue",defer:function(){return j?
j.type:f.getType("text")},getDefault:function(){var a=this.parse("");if(j){var b=j.get();if(a.predictions.length===0)a.predictions.push(b);else{for(var e=false;;){var c=a.predictions.indexOf(b);if(c===-1)break;a.predictions.splice(c,1);e=true}e&&a.predictions.push(b)}}return a}}),k;h.startup=function(b){k=b.env;f.registerType(a);f.registerType(e)};h.shutdown=function(){f.unregisterType(a);f.unregisterType(e)}});
define("pilot/settings","require,exports,module,pilot/console,pilot/oop,pilot/types,pilot/event_emitter,pilot/catalog".split(","),function(c,h){function m(b,e){this._settings=e;Object.keys(b).forEach(function(a){this[a]=b[a]},this);this.type=a.getType(this.type);if(this.type==null)throw Error("In "+this.name+": can't find type for: "+JSON.stringify(b.type));if(!this.name)throw Error("Setting.name == undefined. Ignoring.",this);if(!this.defaultValue===void 0)throw Error("Setting.defaultValue == undefined",
this);if(this.onChange)this.on("change",this.onChange.bind(this));this.set(this.defaultValue)}function b(a){this._deactivated={};this._settings={};this._settingNames=[];a&&this.setPersister(a)}function f(){}var n=c("pilot/console"),j=c("pilot/oop"),a=c("pilot/types"),e=c("pilot/event_emitter").EventEmitter,k=c("pilot/catalog"),v={name:"setting",description:"A setting is something that the application offers as a way to customize how it works",register:"env.settings.addSetting",indexOn:"name"};h.startup=
function(){k.addExtensionSpec(v)};h.shutdown=function(){k.removeExtensionSpec(v)};m.prototype={get:function(){return this.value},set:function(a){if(this.value!==a)this.value=a,this._settings.persister&&this._settings.persister.persistValue(this._settings,this.name,a),this._dispatchEvent("change",{setting:this,value:a})},resetValue:function(){this.set(this.defaultValue)},toString:function(){return this.name}};j.implement(m.prototype,e);b.prototype={addSetting:function(a){a=new m(a,this);this._settings[a.name]=
a;this._settingNames.push(a.name);this._settingNames.sort()},addSettings:function(a){Object.keys(a).forEach(function(b){var e=a[b];if(!("name"in e))e.name=b;this.addSetting(e)},this)},removeSetting:function(a){a=typeof a==="string"?a:a.name;delete this._settings[a];util.arrayRemove(this._settingNames,a);settings.removeAllListeners("change")},removeSettings:function(a){Object.keys(a).forEach(function(b){var e=a[b];if(!("name"in e))e.name=b;this.removeSettings(e)},this)},getSettingNames:function(){return this._settingNames},
getSetting:function(a){return this._settings[a]},setPersister:function(a){(this._persister=a)&&a.loadInitialValues(this)},resetAll:function(){this.getSettingNames().forEach(function(a){this.resetValue(a)},this)},_list:function(){var a=[];this.getSettingNames().forEach(function(b){a.push({key:b,value:this.getSetting(b).get()})},this);return a},_loadDefaultValues:function(){this._loadFromObject(this._getDefaultValues())},_loadFromObject:function(a){for(var b in a)if(a.hasOwnProperty(b)){var e=this._settings[b];
e?(e=e.type.parse(a[b]),this.set(b,e)):this.set(b,a[b])}},_saveToObject:function(){return this.getSettingNames().map(function(a){return this._settings[a].type.stringify(this.get(a))}.bind(this))},_getDefaultValues:function(){return this.getSettingNames().map(function(a){return this._settings[a].spec.defaultValue}.bind(this))}};h.settings=new b;f.prototype={loadInitialValues:function(a){a._loadDefaultValues();var b=cookie.get("settings");a._loadFromObject(JSON.parse(b))},persistValue:function(a){try{var b=
JSON.stringify(a._saveToObject());cookie.set("settings",b)}catch(e){n.error("Unable to JSONify the settings! "+e)}}};h.CookiePersister=f});
define("pilot/commands/settings",["require","exports","module","pilot/canon"],function(c,h){var m={name:"set",params:[{name:"setting",type:"setting",description:"The name of the setting to display or alter",defaultValue:null},{name:"value",type:"settingValue",description:"The new value for the chosen setting",defaultValue:null}],description:"define and show settings",exec:function(b,c,a){var e;c.setting?c.value===void 0?e="<strong>"+setting.name+"</strong> = "+setting.get():(c.setting.set(c.value),
e="Setting: <strong>"+c.setting.name+"</strong> = "+c.setting.get()):(c=b.settings.getSettingNames(),e="",c.sort(function(a,b){return a.localeCompare(b)}),c.forEach(function(a){a=b.settings.getSetting(a);e+='<a class="setting" href="https://wiki.mozilla.org/Labs/Skywriter/Settings#'+a.name+'" title="View external documentation on setting: '+a.name+'" target="_blank">'+a.name+"</a> = "+a.value+"<br/>"}));a.done(e)}},b={name:"unset",params:[{name:"setting",type:"setting",description:"The name of the setting to return to defaults"}],
description:"unset a setting entirely",exec:function(b,c,a){var e=b.settings.get(c.setting);e?(e.reset(),a.done("Reset "+e.name+" to default: "+b.settings.get(c.setting))):a.doneWithError("No setting with the name <strong>"+c.setting+"</strong>.")}},f=c("pilot/canon");h.startup=function(){f.addCommand(m);f.addCommand(b)};h.shutdown=function(){f.removeCommand(m);f.removeCommand(b)}});
define("pilot/commands/basic",["require","exports","module","pilot/typecheck","pilot/canon"],function(c,h){var m=c("pilot/typecheck"),b=c("pilot/canon"),f={name:"help",params:[{name:"search",type:"text",description:"Search string to narrow the output.",defaultValue:null}],description:"Get help on the available commands.",exec:function(c,a,e){var c=[],f=b.getCommand(a.search);if(f&&f.exec)c.push(f.description?f.description:"No description for "+a.search);else{var n=false;if(f)c.push("<h2>Sub-Commands of "+
f.name+"</h2>"),c.push("<p>"+f.description+"</p>");else if(a.search){if(a.search=="hidden")a.search="",n=true;c.push("<h2>Commands starting with '"+a.search+"':</h2>")}else c.push("<h2>Available Commands:</h2>");var m=b.getCommandNames();m.sort();c.push("<table>");for(var h=0;h<m.length;h++)if(f=b.getCommand(m[h]),n||!f.hidden)if(f.description!==void 0&&!(a.search&&f.name.indexOf(a.search)!==0)&&(a.search||f.name.indexOf(" ")==-1)&&!(f&&f.name==a.search))c.push("<tr>"),c.push('<th class="right">'+
f.name+"</th>"),c.push("<td>"+f.description+"</td>"),c.push("</tr>");c.push("</table>")}e.done(c.join(""))}},n={name:"eval",params:[{name:"javascript",type:"text",description:"The JavaScript to evaluate"}],description:"evals given js code and show the result",hidden:true,exec:function(b,a,e){var c,b=a.javascript;try{c=eval(b)}catch(f){c="<b>Error: "+f.message+"</b>"}var n=a="",h;if(m.isFunction(c))a=(c+"").replace(/\n/g,"<br>").replace(/ /g,"&#160"),n="function";else if(m.isObject(c)){var n=Array.isArray(c)?
"array":"object",r=[],x;for(h in c)c.hasOwnProperty(h)&&(x=m.isFunction(c[h])?"[function]":m.isObject(c[h])?"[object]":c[h],r.push({name:h,value:x}));r.sort(function(a,b){return a.name.toLowerCase()<b.name.toLowerCase()?-1:1});for(h=0;h<r.length;h++)a+="<b>"+r[h].name+"</b>: "+r[h].value+"<br>"}else a=c,n=typeof c;e.done("Result for eval <b>'"+b+"'</b> (type: "+n+"): <br><br>"+a)}},b=c("pilot/canon");h.startup=function(){b.addCommand(f);b.addCommand(n)};h.shutdown=function(){b.removeCommand(f);b.removeCommand(n)}});
define("pilot/settings/canon",["require","exports","module"],function(c,h){var m={name:"historyLength",description:"How many typed commands do we recall for reference?",type:"number",defaultValue:50};h.startup=function(b){b.env.settings.addSetting(m)};h.shutdown=function(b){b.env.settings.removeSetting(m)}});
define("pilot/plugin_manager",["require","exports","module","pilot/promise"],function(c,h){var m=c("pilot/promise").Promise;h.REASONS={APP_STARTUP:1,APP_SHUTDOWN:2,PLUGIN_ENABLE:3,PLUGIN_DISABLE:4,PLUGIN_INSTALL:5,PLUGIN_UNINSTALL:6,PLUGIN_UPGRADE:7,PLUGIN_DOWNGRADE:8};h.Plugin=function(b){this.name=b;this.status=this.INSTALLED};h.Plugin.prototype={NEW:0,INSTALLED:1,REGISTERED:2,STARTED:3,UNREGISTERED:4,SHUTDOWN:5,install:function(b,f){var n=new m;if(this.status>this.NEW)return n.resolve(this),n;
c([this.name],function(c){c.install&&c.install(b,f);this.status=this.INSTALLED;n.resolve(this)}.bind(this));return n},register:function(b,f){var n=new m;if(this.status!=this.INSTALLED)return n.resolve(this),n;c([this.name],function(c){c.register&&c.register(b,f);this.status=this.REGISTERED;n.resolve(this)}.bind(this));return n},startup:function(b,f){var f=f||h.REASONS.APP_STARTUP,n=new m;if(this.status!=this.REGISTERED)return n.resolve(this),n;c([this.name],function(c){c.startup&&c.startup(b,f);this.status=
this.STARTED;n.resolve(this)}.bind(this));return n},shutdown:function(b,f){this.status==this.STARTED&&(pluginModule=c(this.name),pluginModule.shutdown&&pluginModule.shutdown(b,f))}};h.PluginCatalog=function(){this.plugins={}};h.PluginCatalog.prototype={registerPlugins:function(b,c,n){var j=[];b.forEach(function(a){var b=this.plugins[a];b===void 0&&(b=new h.Plugin(a),this.plugins[a]=b,j.push(b.register(c,n)))}.bind(this));return m.group(j)},startupPlugins:function(b,c){var n=[],j;for(j in this.plugins)n.push(this.plugins[j].startup(b,
c));return m.group(n)}};h.catalog=new h.PluginCatalog});
define("pilot/promise",["require","exports","module","pilot/console","pilot/stacktrace"],function(c,h){var m=c("pilot/console");c("pilot/stacktrace");var b=0,f=[],n=[];Promise=function(){this._status=0;this._value=void 0;this._onSuccessHandlers=[];this._onErrorHandlers=[];this._id=b++;f[this._id]=this};Promise.prototype.isPromise=true;Promise.prototype.isComplete=function(){return this._status!=0};Promise.prototype.isResolved=function(){return this._status==1};Promise.prototype.isRejected=function(){return this._status==
-1};Promise.prototype.then=function(b,a){typeof b==="function"&&(this._status===1?b.call(null,this._value):this._status===0&&this._onSuccessHandlers.push(b));typeof a==="function"&&(this._status===-1?a.call(null,this._value):this._status===0&&this._onErrorHandlers.push(a));return this};Promise.prototype.chainPromise=function(b){var a=new Promise;a._chainedFrom=this;this.then(function(e){try{a.resolve(b(e))}catch(c){a.reject(c)}},function(b){a.reject(b)});return a};Promise.prototype.resolve=function(b){return this._complete(this._onSuccessHandlers,
1,b,"resolve")};Promise.prototype.reject=function(b){return this._complete(this._onErrorHandlers,-1,b,"reject")};Promise.prototype._complete=function(b,a,e,c){if(this._status!=0)return m.group("Promise already closed"),m.error("Attempted "+c+"() with ",e),m.error("Previous status = ",this._status,", previous value = ",this._value),m.trace(),this._completeTrace&&(m.error("Trace of previous completion:"),this._completeTrace.log(5)),m.groupEnd(),this;this._status=a;this._value=e;b.forEach(function(a){a.call(null,
this._value)},this);this._onSuccessHandlers.length=0;this._onErrorHandlers.length=0;delete f[this._id];for(n.push(this);n.length>20;)n.shift();return this};Promise.group=function(b){b instanceof Array||(b=Array.prototype.slice.call(arguments));if(b.length===0)return(new Promise).resolve([]);var a=new Promise,e=[],c=0,f=function(f){return function(n){e[f]=n;c++;a._status!==-1&&c===b.length&&a.resolve(e)}};b.forEach(function(b,e){var c=f(e),k=a.reject.bind(a);b.then(c,k)});return a};h.Promise=Promise;
h._outstanding=f;h._recent=n});
define("pilot/dom",["require","exports","module"],function(c,h){h.createElement=function(c,b){return document.createElementNS?document.createElementNS(b||"http://www.w3.org/1999/xhtml",c):document.createElement(c)};h.setText=function(c,b){if(c.innerText!==void 0)c.innerText=b;if(c.textContent!==void 0)c.textContent=b};document.documentElement.classList?(h.hasCssClass=function(c,b){return c.classList.contains(b)},h.addCssClass=function(c,b){c.classList.add(b)},h.removeCssClass=function(c,b){c.classList.remove(b)},
h.toggleCssClass=function(c,b){return c.classList.toggle(b)}):(h.hasCssClass=function(c,b){return c.className.split(/\s+/g).indexOf(b)!==-1},h.addCssClass=function(c,b){h.hasCssClass(c,b)||(c.className+=" "+b)},h.removeCssClass=function(c,b){for(var f=c.className.split(/\s+/g);;){var n=f.indexOf(b);if(n==-1)break;f.splice(n,1)}c.className=f.join(" ")},h.toggleCssClass=function(c,b){for(var f=c.className.split(/\s+/g),n=true;;){var j=f.indexOf(b);if(j==-1)break;n=false;f.splice(j,1)}n&&f.push(b);c.className=
f.join(" ");return n});h.setCssClass=function(c,b,f){f?h.addCssClass(c,b):h.removeCssClass(c,b)};h.importCssString=function(c,b){b=b||document;if(b.createStyleSheet)b.createStyleSheet().cssText=c;else{var f=b.createElementNS?b.createElementNS("http://www.w3.org/1999/xhtml","style"):b.createElement("style");f.appendChild(b.createTextNode(c));(b.getElementsByTagName("head")[0]||b.documentElement).appendChild(f)}};h.getInnerWidth=function(c){return parseInt(h.computedStyle(c,"paddingLeft"))+parseInt(h.computedStyle(c,
"paddingRight"))+c.clientWidth};h.getInnerHeight=function(c){return parseInt(h.computedStyle(c,"paddingTop"))+parseInt(h.computedStyle(c,"paddingBottom"))+c.clientHeight};window.pageYOffset!==void 0?(h.getPageScrollTop=function(){return window.pageYOffset},h.getPageScrollLeft=function(){return window.pageXOffset}):(h.getPageScrollTop=function(){return document.body.scrollTop},h.getPageScrollLeft=function(){return document.body.scrollLeft});h.computedStyle=window.getComputedStyle?function(c,b){return b?
(window.getComputedStyle(c,"")||{})[b]||"":window.getComputedStyle(c,"")||{}}:function(c,b){return b?c.currentStyle[b]:c.currentStyle};h.scrollbarWidth=function(){var c=h.createElement("p");c.style.width="100%";c.style.minWidth="0px";c.style.height="200px";var b=h.createElement("div"),f=b.style;f.position="absolute";f.left="-10000px";f.overflow="hidden";f.width="200px";f.minWidth="0px";f.height="150px";b.appendChild(c);var n=document.body||document.documentElement;n.appendChild(b);var j=c.offsetWidth;
f.overflow="scroll";c=c.offsetWidth;if(j==c)c=b.clientWidth;n.removeChild(b);return j-c};h.setInnerHtml=function(c,b){var f=c.cloneNode(false);f.innerHTML=b;c.parentNode.replaceChild(f,c);return f};h.setInnerText=function(c,b){document.body&&"textContent"in document.body?c.textContent=b:c.innerText=b};h.getInnerText=function(c){return document.body&&"textContent"in document.body?c.textContent:c.innerText||c.textContent||""};h.getParentWindow=function(c){return c.defaultView||c.parentWindow};h.getSelectionStart=
function(c){var b;try{b=c.selectionStart||0}catch(f){b=0}return b};h.setSelectionStart=function(c,b){return c.selectionStart=b};h.getSelectionEnd=function(c){var b;try{b=c.selectionEnd||0}catch(f){b=0}return b};h.setSelectionEnd=function(c,b){return c.selectionEnd=b}});
define("pilot/event","require,exports,module,pilot/keys,pilot/useragent,pilot/dom".split(","),function(c,h){function m(c,a,e){var k=0,k=f.isOpera&&f.isMac?0|(a.metaKey?1:0)|(a.altKey?2:0)|(a.shiftKey?4:0)|(a.ctrlKey?8:0):0|(a.ctrlKey?1:0)|(a.altKey?2:0)|(a.shiftKey?4:0)|(a.metaKey?8:0);if(e in b.MODIFIER_KEYS){switch(b.MODIFIER_KEYS[e]){case "Alt":k=2;break;case "Shift":k=4;break;case "Ctrl":k=1;break;default:k=8}e=0}if(k&8&&(e==91||e==93))e=0;return k==0&&!(e in b.FUNCTION_KEYS)?false:c(a,k,e)}var b=
c("pilot/keys"),f=c("pilot/useragent"),n=c("pilot/dom");h.addListener=function(b,a,e){if(b.addEventListener)return b.addEventListener(a,e,false);if(b.attachEvent){var c=function(){e(window.event)};e._wrapper=c;b.attachEvent("on"+a,c)}};h.removeListener=function(b,a,e){if(b.removeEventListener)return b.removeEventListener(a,e,false);b.detachEvent&&b.detachEvent("on"+a,e._wrapper||e)};h.stopEvent=function(b){h.stopPropagation(b);h.preventDefault(b);return false};h.stopPropagation=function(b){b.stopPropagation?
b.stopPropagation():b.cancelBubble=true};h.preventDefault=function(b){b.preventDefault?b.preventDefault():b.returnValue=false};h.getDocumentX=function(b){return b.clientX?b.clientX+n.getPageScrollLeft():b.pageX};h.getDocumentY=function(b){return b.clientY?b.clientY+n.getPageScrollTop():b.pageY};h.getButton=function(b){if(b.type=="dblclick")return 0;else if(b.type=="contextmenu")return 2;return b.preventDefault?b.button:{1:0,2:2,4:1}[b.button]};h.capture=document.documentElement.setCapture?function(b,
a,e){function c(f){a&&a(f);e&&e();h.removeListener(b,"mousemove",a);h.removeListener(b,"mouseup",c);h.removeListener(b,"losecapture",c);b.releaseCapture()}h.addListener(b,"mousemove",a);h.addListener(b,"mouseup",c);h.addListener(b,"losecapture",c);b.setCapture()}:function(b,a,e){function c(b){a(b);b.stopPropagation()}function f(b){a&&a(b);e&&e();document.removeEventListener("mousemove",c,true);document.removeEventListener("mouseup",f,true);b.stopPropagation()}document.addEventListener("mousemove",
c,true);document.addEventListener("mouseup",f,true)};h.addMouseWheelListener=function(b,a){var e=function(b){b.wheelDelta!==void 0?b.wheelDeltaX!==void 0?(b.wheelX=-b.wheelDeltaX/8,b.wheelY=-b.wheelDeltaY/8):(b.wheelX=0,b.wheelY=-b.wheelDelta/8):b.axis&&b.axis==b.HORIZONTAL_AXIS?(b.wheelX=(b.detail||0)*5,b.wheelY=0):(b.wheelX=0,b.wheelY=(b.detail||0)*5);a(b)};h.addListener(b,"DOMMouseScroll",e);h.addListener(b,"mousewheel",e)};h.addMultiMouseDownListener=function(b,a,e,c,n){var m=0,t,r,x=function(b){m+=
1;if(m==1)t=b.clientX,r=b.clientY,setTimeout(function(){m=0},c||600);var f=h.getButton(b)==a;if(!f||Math.abs(b.clientX-t)>5||Math.abs(b.clientY-r)>5)m=0;m==e&&(m=0,n(b));if(f)return h.preventDefault(b)};h.addListener(b,"mousedown",x);f.isIE&&h.addListener(b,"dblclick",x)};h.addCommandKeyListener=function(b,a){var e=h.addListener;if(f.isOldGecko){var c=null;e(b,"keydown",function(a){c=a.keyCode});e(b,"keypress",function(b){return m(a,b,c)})}else{var n=null;e(b,"keydown",function(b){n=b.keyIdentifier||
b.keyCode;return m(a,b,b.keyCode)});f.isMac&&f.isOpera&&e(b,"keypress",function(b){if(n!==(b.keyIdentifier||b.keyCode))return m(a,b,b.keyCode);else n=null})}}});
define("ace/editor","require,exports,module,pilot/fixoldbrowsers,pilot/oop,pilot/event,pilot/lang,pilot/useragent,ace/keyboard/textinput,ace/mouse_handler,ace/keyboard/keybinding,ace/edit_session,ace/search,ace/range,pilot/event_emitter".split(","),function(c,h){c("pilot/fixoldbrowsers");var m=c("pilot/oop");c("pilot/event");var b=c("pilot/lang"),f=c("pilot/useragent"),n=c("ace/keyboard/textinput").TextInput,j=c("ace/mouse_handler").MouseHandler,a=c("ace/keyboard/keybinding").KeyBinding,e=c("ace/edit_session").EditSession,
k=c("ace/search").Search,v=c("ace/range").Range,y=c("pilot/event_emitter").EventEmitter,t=function(b,c){this.container=b.getContainerElement();this.renderer=b;this.textInput=new n(b.getTextAreaContainer(),this);this.keyBinding=new a(this);if(!f.isIPad)this.$mouseHandler=new j(this);this.$blockScrolling=0;this.$search=(new k).set({wrap:true});this.setSession(c||new e(""))};(function(){m.implement(this,y);this.$forwardEvents={gutterclick:1,gutterdblclick:1};this.$originalAddEventListener=this.addEventListener;
this.$originalRemoveEventListener=this.removeEventListener;this.addEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.addEventListener(a,b):this.$originalAddEventListener(a,b)};this.removeEventListener=function(a,b){return this.$forwardEvents[a]?this.renderer.removeEventListener(a,b):this.$originalRemoveEventListener(a,b)};this.setKeyboardHandler=function(a){this.keyBinding.setKeyboardHandler(a)};this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()};
this.setSession=function(a){if(this.session!=a){if(this.session){var b=this.session;this.session.removeEventListener("change",this.$onDocumentChange);this.session.removeEventListener("changeMode",this.$onChangeMode);this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate);this.session.removeEventListener("changeTabSize",this.$onChangeTabSize);this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode);
this.session.removeEventListener("onChangeFold",this.$onChangeFold);this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker);this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint);this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation);this.session.removeEventListener("changeOverwrite",this.$onCursorChange);var e=this.session.getSelection();e.removeEventListener("changeCursor",
this.$onCursorChange);e.removeEventListener("changeSelection",this.$onSelectionChange);this.session.setScrollTopRow(this.renderer.getScrollTopRow())}this.session=a;this.$onDocumentChange=this.onDocumentChange.bind(this);a.addEventListener("change",this.$onDocumentChange);this.renderer.setSession(a);this.$onChangeMode=this.onChangeMode.bind(this);a.addEventListener("changeMode",this.$onChangeMode);this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this);a.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate);
this.$onChangeTabSize=this.renderer.updateText.bind(this.renderer);a.addEventListener("changeTabSize",this.$onChangeTabSize);this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this);a.addEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.$onChangeWrapMode=this.onChangeWrapMode.bind(this);a.addEventListener("changeWrapMode",this.$onChangeWrapMode);this.$onChangeFold=this.onChangeFold.bind(this);a.addEventListener("changeFold",this.$onChangeFold);this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this);
this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.$onChangeBackMarker=this.onChangeBackMarker.bind(this);this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker);this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this);this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint);this.$onChangeAnnotation=this.onChangeAnnotation.bind(this);this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation);this.$onCursorChange=
this.onCursorChange.bind(this);this.session.addEventListener("changeOverwrite",this.$onCursorChange);this.selection=a.getSelection();this.selection.addEventListener("changeCursor",this.$onCursorChange);this.$onSelectionChange=this.onSelectionChange.bind(this);this.selection.addEventListener("changeSelection",this.$onSelectionChange);this.onChangeMode();this.onCursorChange();this.onSelectionChange();this.onChangeFrontMarker();this.onChangeBackMarker();this.onChangeBreakpoint();this.onChangeAnnotation();
this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit();this.renderer.scrollToRow(a.getScrollTopRow());this.renderer.updateFull();this._dispatchEvent("changeSession",{session:a,oldSession:b})}};this.getSession=function(){return this.session};this.getSelection=function(){return this.selection};this.resize=function(){this.renderer.onResize()};this.setTheme=function(a){this.renderer.setTheme(a)};this.getTheme=function(){return this.renderer.getTheme()};this.setStyle=function(a){this.renderer.setStyle(a)};
this.unsetStyle=function(a){this.renderer.unsetStyle(a)};this.setFontSize=function(a){this.container.style.fontSize=a};this.$highlightBrackets=function(){if(this.session.$bracketHighlight)this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null;if(!this.$highlightPending){var a=this;this.$highlightPending=true;setTimeout(function(){a.$highlightPending=false;var b=a.session.findMatchingBracket(a.getCursorPosition());if(b)b=new v(b.row,b.column,b.row,b.column+1),
a.session.$bracketHighlight=a.session.addMarker(b,"ace_bracket","text")},10)}};this.focus=function(){var a=this;f.isIE||setTimeout(function(){a.textInput.focus()});this.textInput.focus()};this.isFocused=function(){return this.textInput.isFocused()};this.blur=function(){this.textInput.blur()};this.onFocus=function(){this.renderer.showCursor();this.renderer.visualizeFocus();this._dispatchEvent("focus")};this.onBlur=function(){this.renderer.hideCursor();this.renderer.visualizeBlur();this._dispatchEvent("blur")};
this.onDocumentChange=function(a){var a=a.data,b=a.range;this.renderer.updateLines(b.start.row,b.start.row==b.end.row&&a.action!="insertLines"&&a.action!="removeLines"?b.end.row:Infinity);this.renderer.updateCursor()};this.onTokenizerUpdate=function(a){a=a.data;this.renderer.updateLines(a.first,a.last)};this.onCursorChange=function(){this.renderer.updateCursor();this.$blockScrolling||this.renderer.scrollCursorIntoView();this.renderer.moveTextAreaToCursor(this.textInput.getElement());this.$highlightBrackets();
this.$updateHighlightActiveLine()};this.$updateHighlightActiveLine=function(){var a=this.getSession();a.$highlightLineMarker&&a.removeMarker(a.$highlightLineMarker);a.$highlightLineMarker=null;if(this.getHighlightActiveLine()&&(this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var b=this.getCursorPosition(),e=this.session.getFoldLine(b.row),b=e?new v(e.start.row,0,e.end.row+1,0):new v(b.row,0,b.row+1,0);a.$highlightLineMarker=a.addMarker(b,"ace_active_line","background")}};this.onSelectionChange=
function(){var a=this.getSession();a.$selectionMarker&&a.removeMarker(a.$selectionMarker);a.$selectionMarker=null;if(this.selection.isEmpty())this.$updateHighlightActiveLine();else{var b=this.selection.getRange(),e=this.getSelectionStyle();a.$selectionMarker=a.addMarker(b,"ace_selection",e)}this.$highlightSelectedWord&&this.session.getMode().highlightSelection(this)};this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()};this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()};
this.onChangeBreakpoint=function(){this.renderer.setBreakpoints(this.session.getBreakpoints())};this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())};this.onChangeMode=function(){this.renderer.updateText()};this.onChangeWrapLimit=function(){this.renderer.updateFull()};this.onChangeWrapMode=function(){this.renderer.onResize(true)};this.onChangeFold=function(){this.$updateHighlightActiveLine();this.renderer.updateFull()};this.getCopyText=function(){return this.selection.isEmpty()?
"":this.session.getTextRange(this.getSelectionRange())};this.onCut=function(){!this.$readOnly&&!this.selection.isEmpty()&&(this.session.remove(this.getSelectionRange()),this.clearSelection())};this.insert=function(a){if(!this.$readOnly){var b=this.session,e=b.getMode(),c=this.getCursorPosition();if(this.getBehavioursEnabled()){var f=e.transformAction(b.getState(c.row),"insertion",this,b,a);if(f)a=f.text}a=a.replace("\t",this.session.getTabString());if(this.selection.isEmpty()){if(this.session.getOverwrite()){var k=
new v.fromPoints(c,c);k.end.column+=a.length;this.session.remove(k)}}else c=this.session.remove(this.getSelectionRange()),this.clearSelection();this.clearSelection();var j=c.column,n=b.getState(c.row),h=e.checkOutdent(n,b.getLine(c.row),a),k=b.getLine(c.row),m=e.getNextLineIndent(n,k.slice(0,c.column),b.getTabString()),y=b.insert(c,a);f&&f.selection&&(f.selection.length==2?this.selection.setSelectionRange(new v(c.row,j+f.selection[0],c.row,j+f.selection[1])):this.selection.setSelectionRange(new v(c.row+
f.selection[0],f.selection[1],c.row+f.selection[2],f.selection[3])));n=b.getState(c.row);if(b.getDocument().isNewLine(a)){this.moveCursorTo(c.row+1,0);a=b.getTabSize();e=Number.MAX_VALUE;for(f=c.row+1;f<=y.row;++f){n=0;k=b.getLine(f);for(j=0;j<k.length;++j)if(k.charAt(j)=="\t")n+=a;else if(k.charAt(j)==" ")n+=1;else break;/[^\s]/.test(k)&&(e=Math.min(n,e))}for(f=c.row+1;f<=y.row;++f){n=e;k=b.getLine(f);for(j=0;j<k.length&&n>0;++j)k.charAt(j)=="\t"?n-=a:k.charAt(j)==" "&&(n-=1);b.remove(new v(f,0,
f,j))}b.indentRows(c.row+1,y.row,m)}else h&&e.autoOutdent(n,b,c.row)}};this.onTextInput=function(a,b){if(b&&a.length==1)this.keyBinding.onCommandKey({},0,null,a)||this.insert(a);else this.keyBinding.onTextInput(a)};this.onCommandKey=function(a,b,e){this.keyBinding.onCommandKey(a,b,e)};this.setOverwrite=function(a){this.session.setOverwrite(a)};this.getOverwrite=function(){return this.session.getOverwrite()};this.toggleOverwrite=function(){this.session.toggleOverwrite()};this.setScrollSpeed=function(a){this.$mouseHandler.setScrollSpeed(a)};
this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed()};this.$selectionStyle="line";this.setSelectionStyle=function(a){if(this.$selectionStyle!=a)this.$selectionStyle=a,this.onSelectionChange(),this._dispatchEvent("changeSelectionStyle",{data:a})};this.getSelectionStyle=function(){return this.$selectionStyle};this.$highlightActiveLine=true;this.setHighlightActiveLine=function(a){if(this.$highlightActiveLine!=a)this.$highlightActiveLine=a,this.$updateHighlightActiveLine()};this.getHighlightActiveLine=
function(){return this.$highlightActiveLine};this.$highlightSelectedWord=true;this.setHighlightSelectedWord=function(a){if(this.$highlightSelectedWord!=a)(this.$highlightSelectedWord=a)?this.session.getMode().highlightSelection(this):this.session.getMode().clearSelectionHighlight(this)};this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord};this.setShowInvisibles=function(a){this.getShowInvisibles()!=a&&this.renderer.setShowInvisibles(a)};this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()};
this.setShowPrintMargin=function(a){this.renderer.setShowPrintMargin(a)};this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()};this.setPrintMarginColumn=function(a){this.renderer.setPrintMarginColumn(a)};this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()};this.$readOnly=false;this.setReadOnly=function(a){this.$readOnly=a};this.getReadOnly=function(){return this.$readOnly};this.$modeBehaviours=true;this.setBehavioursEnabled=function(a){this.$modeBehaviours=
a};this.getBehavioursEnabled=function(){return this.$modeBehaviours};this.removeRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())};this.removeLeft=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLeft();var a=this.getSelectionRange();if(this.getBehavioursEnabled()){var b=this.session,e=b.getState(a.start.row),b=b.getMode().transformAction(e,"deletion",this,b,a);
b!==false&&(a=b)}this.session.remove(a);this.clearSelection()}};this.removeWordRight=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection())};this.removeWordLeft=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection())};this.removeToLineStart=function(){this.$readOnly||(this.selection.isEmpty()&&this.selection.selectLineStart(),
this.session.remove(this.getSelectionRange()),this.clearSelection())};this.removeToLineEnd=function(){if(!this.$readOnly){this.selection.isEmpty()&&this.selection.selectLineEnd();var a=this.getSelectionRange();if(a.start.column==a.end.column&&a.start.row==a.end.row)a.end.column=0,a.end.row++;this.session.remove(a);this.clearSelection()}};this.splitLine=function(){if(!this.$readOnly){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var a=this.getCursorPosition();
this.insert("\n");this.moveCursorToPosition(a)}};this.transposeLetters=function(){if(!this.$readOnly&&this.selection.isEmpty()){var a=this.getCursorPosition(),b=a.column;if(b!=0){var e=this.session.getLine(a.row);b<e.length?(e=e.charAt(b)+e.charAt(b-1),a=new v(a.row,b-1,a.row,b+1)):(e=e.charAt(b-1)+e.charAt(b-2),a=new v(a.row,b-2,a.row,b));this.session.replace(a,e)}}};this.indent=function(){if(!this.$readOnly){var a=this.session,e=this.getSelectionRange();if(e.start.row<e.end.row||e.start.column<
e.end.column)e=this.$getSelectedRows(),a.indentRows(e.first,e.last,"\t");else{if(this.session.getUseSoftTabs())var e=a.getTabSize(),c=this.getCursorPosition(),a=a.documentToScreenColumn(c.row,c.column),a=b.stringRepeat(" ",e-a%e);else a="\t";return this.onTextInput(a)}}};this.blockOutdent=function(){this.$readOnly||this.session.outdentRows(this.session.getSelection().getRange())};this.toggleCommentLines=function(){if(!this.$readOnly){var a=this.session.getState(this.getCursorPosition().row),b=this.$getSelectedRows();
this.session.getMode().toggleCommentLines(a,this.session,b.first,b.last)}};this.removeLines=function(){if(!this.$readOnly){var a=this.$getSelectedRows();this.session.remove(a.last==0||a.last+1<this.session.getLength()?new v(a.first,0,a.last+1,0):new v(a.first-1,this.session.getLine(a.first).length,a.last,this.session.getLine(a.last).length));this.clearSelection()}};this.moveLinesDown=function(){this.$readOnly||this.$moveLines(function(a,b){return this.session.moveLinesDown(a,b)})};this.moveLinesUp=
function(){this.$readOnly||this.$moveLines(function(a,b){return this.session.moveLinesUp(a,b)})};this.moveText=function(a,b){return this.$readOnly?null:this.session.moveText(a,b)};this.copyLinesUp=function(){this.$readOnly||this.$moveLines(function(a,b){this.session.duplicateLines(a,b);return 0})};this.copyLinesDown=function(){this.$readOnly||this.$moveLines(function(a,b){return this.session.duplicateLines(a,b)})};this.$moveLines=function(a){var b=this.$getSelectedRows(),e=a.call(this,b.first,b.last),
c=this.selection;c.setSelectionAnchor(b.last+e+1,0);c.$moveSelection(function(){c.moveCursorTo(b.first+e,0)})};this.$getSelectedRows=function(){var a=this.getSelectionRange().collapseRows();return{first:a.start.row,last:a.end.row}};this.onCompositionStart=function(){this.renderer.showComposition(this.getCursorPosition())};this.onCompositionUpdate=function(a){this.renderer.setCompositionText(a)};this.onCompositionEnd=function(){this.renderer.hideComposition()};this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()};
this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()};this.isRowVisible=function(a){return a>=this.getFirstVisibleRow()&&a<=this.getLastVisibleRow()};this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1};this.$getPageDownRow=function(){return this.renderer.getScrollBottomRow()};this.$getPageUpRow=function(){var a=this.renderer.getScrollTopRow(),b=this.renderer.getScrollBottomRow();return a-(b-a)};this.selectPageDown=
function(){var a=this.$getPageDownRow()+Math.floor(this.$getVisibleRowCount()/2);this.scrollPageDown();var b=this.getSelection(),e=this.session.documentToScreenPosition(b.getSelectionLead()),a=this.session.screenToDocumentPosition(a,e.column);b.selectTo(a.row,a.column)};this.selectPageUp=function(){var a=this.renderer.getScrollTopRow()-this.renderer.getScrollBottomRow(),b=this.$getPageUpRow()+Math.round(a/2);this.scrollPageUp();var a=this.getSelection(),e=this.session.documentToScreenPosition(a.getSelectionLead()),
b=this.session.screenToDocumentPosition(b,e.column);a.selectTo(b.row,b.column)};this.gotoPageDown=function(){var a=this.$getPageDownRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a);this.getSelection().moveCursorToScreen(a,b)};this.gotoPageUp=function(){var a=this.$getPageUpRow(),b=this.getCursorPositionScreen().column;this.scrollToRow(a);this.getSelection().moveCursorToScreen(a,b)};this.scrollPageDown=function(){this.scrollToRow(this.$getPageDownRow())};this.scrollPageUp=function(){this.renderer.scrollToRow(this.$getPageUpRow())};
this.scrollToRow=function(a){this.renderer.scrollToRow(a)};this.scrollToLine=function(a,b){this.renderer.scrollToLine(a,b)};this.centerSelection=function(){var a=this.getSelectionRange();this.renderer.scrollToLine(Math.floor(a.start.row+(a.end.row-a.start.row)/2),true)};this.getCursorPosition=function(){return this.selection.getCursor()};this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())};this.getSelectionRange=function(){return this.selection.getRange()};
this.selectAll=function(){this.$blockScrolling+=1;this.selection.selectAll();this.$blockScrolling-=1};this.clearSelection=function(){this.selection.clearSelection()};this.moveCursorTo=function(a,b){this.selection.moveCursorTo(a,b)};this.moveCursorToPosition=function(a){this.selection.moveCursorToPosition(a)};this.gotoLine=function(a,b){this.selection.clearSelection();this.$blockScrolling+=1;this.moveCursorTo(a-1,b||0);this.$blockScrolling-=1;this.isRowVisible(this.getCursorPosition().row)||this.scrollToLine(a,
true)};this.navigateTo=function(a,b){this.clearSelection();this.moveCursorTo(a,b)};this.navigateUp=function(a){this.selection.clearSelection();this.selection.moveCursorBy(-(a||1),0)};this.navigateDown=function(a){this.selection.clearSelection();this.selection.moveCursorBy(a||1,0)};this.navigateLeft=function(a){if(this.selection.isEmpty())for(a=a||1;a--;)this.selection.moveCursorLeft();else this.moveCursorToPosition(this.getSelectionRange().start);this.clearSelection()};this.navigateRight=function(a){if(this.selection.isEmpty())for(a=
a||1;a--;)this.selection.moveCursorRight();else this.moveCursorToPosition(this.getSelectionRange().end);this.clearSelection()};this.navigateLineStart=function(){this.selection.moveCursorLineStart();this.clearSelection()};this.navigateLineEnd=function(){this.selection.moveCursorLineEnd();this.clearSelection()};this.navigateFileEnd=function(){this.selection.moveCursorFileEnd();this.clearSelection()};this.navigateFileStart=function(){this.selection.moveCursorFileStart();this.clearSelection()};this.navigateWordRight=
function(){this.selection.moveCursorWordRight();this.clearSelection()};this.navigateWordLeft=function(){this.selection.moveCursorWordLeft();this.clearSelection()};this.replace=function(a,b){b&&this.$search.set(b);var e=this.$search.find(this.session);e&&(this.$tryReplace(e,a),e!==null&&this.selection.setSelectionRange(e))};this.replaceAll=function(a,b){b&&this.$search.set(b);var e=this.$search.findAll(this.session);if(e.length){var c=this.getSelectionRange();this.clearSelection();this.selection.moveCursorTo(0,
0);this.$blockScrolling+=1;for(var f=e.length-1;f>=0;--f)this.$tryReplace(e[f],a);this.selection.setSelectionRange(c);this.$blockScrolling-=1}};this.$tryReplace=function(a,b){b=this.$search.replace(this.session.getTextRange(a),b);return b!==null?(a.end=this.session.replace(a,b),a):null};this.getLastSearchOptions=function(){return this.$search.getOptions()};this.find=function(a,b){this.clearSelection();b=b||{};b.needle=a;this.$search.set(b);this.$find()};this.findNext=function(a){a=a||{};if(typeof a.backwards==
"undefined")a.backwards=false;this.$search.set(a);this.$find()};this.findPrevious=function(a){a=a||{};if(typeof a.backwards=="undefined")a.backwards=true;this.$search.set(a);this.$find()};this.$find=function(a){this.selection.isEmpty()||this.$search.set({needle:this.session.getTextRange(this.getSelectionRange())});typeof a!="undefined"&&this.$search.set({backwards:a});if(a=this.$search.find(this.session))this.gotoLine(a.end.row+1,a.end.column),this.selection.setSelectionRange(a)};this.undo=function(){this.session.getUndoManager().undo()};
this.redo=function(){this.session.getUndoManager().redo()};this.destroy=function(){this.renderer.destroy()}}).call(t.prototype);h.Editor=t});
define("ace/keyboard/textinput","require,exports,module,pilot/event,pilot/useragent,pilot/dom".split(","),function(c,h){var m=c("pilot/event"),b=c("pilot/useragent"),f=c("pilot/dom");h.TextInput=function(c,j){function a(a){if(!t&&(a=a||k.value)){if(a.charCodeAt(a.length-1)==h.charCodeAt(0)){if(a=a.slice(0,-1))j.onTextInput(a,!r)}else j.onTextInput(a,!r);if(!e())return false}r=t=false;k.value=h;k.select()}function e(){return document.activeElement===k}var k=f.createElement("textarea");k.style.left=
"-10000px";c.appendChild(k);var h=String.fromCharCode(0);a();var y=false,t=false,r=false,x="",p=function(b){setTimeout(function(){y||a(b.data)},0)},w=function(){b.isIE&&k.value.charCodeAt(0)>128||setTimeout(function(){y||a()},0)},A=function(){y=true;j.onCompositionStart();b.isGecko||setTimeout(z,0)},z=function(){if(y)j.onCompositionUpdate(k.value)},s=function(){y=false;j.onCompositionEnd()},o=function(b){t=true;var e=j.getCopyText();e?k.value=e:b.preventDefault();k.select();setTimeout(function(){a()},
0)},B=function(b){t=true;var e=j.getCopyText();e?(k.value=e,j.onCut()):b.preventDefault();k.select();setTimeout(function(){a()},0)};m.addCommandKeyListener(k,j.onCommandKey.bind(j));if(b.isIE){var D={13:1,27:1};m.addListener(k,"keyup",function(a){y&&(!k.value||D[a.keyCode])&&setTimeout(s,0);(k.value.charCodeAt(0)|0)<129||(y?z():A())})}k.attachEvent?m.addListener(k,"propertychange",w):b.isChrome||b.isSafari?m.addListener(k,"textInput",p):b.isIE?m.addListener(k,"textinput",p):m.addListener(k,"input",
p);m.addListener(k,"paste",function(b){r=true;b.clipboardData&&b.clipboardData.getData?(a(b.clipboardData.getData("text/plain")),b.preventDefault()):w()});b.isIE?(m.addListener(k,"beforecopy",function(a){var b=j.getCopyText();b?clipboardData.setData("Text",b):a.preventDefault()}),m.addListener(c,"keydown",function(a){if(a.ctrlKey&&a.keyCode==88){var b=j.getCopyText();b&&(clipboardData.setData("Text",b),j.onCut());m.preventDefault(a)}})):(m.addListener(k,"copy",o),m.addListener(k,"cut",B));m.addListener(k,
"compositionstart",A);b.isGecko&&m.addListener(k,"text",z);b.isWebKit&&m.addListener(k,"keyup",z);m.addListener(k,"compositionend",s);m.addListener(k,"blur",function(){j.onBlur()});m.addListener(k,"focus",function(){j.onFocus();k.select()});this.focus=function(){j.onFocus();k.select();k.focus()};this.blur=function(){k.blur()};this.isFocused=e;this.getElement=function(){return k};this.onContextMenu=function(a,b){if(a){if(!x)x=k.style.cssText;k.style.cssText="position:fixed; z-index:1000;left:"+(a.x-
2)+"px; top:"+(a.y-2)+"px;"}if(b)k.value=""};this.onContextMenuClose=function(){setTimeout(function(){if(x)k.style.cssText=x,x="";a()},0)}}});
define("ace/mouse_handler","require,exports,module,pilot/event,pilot/dom,pilot/browser_focus".split(","),function(c,h){var m=c("pilot/event"),b=c("pilot/dom"),f=c("pilot/browser_focus").BrowserFocus,n=1,j=function(a){this.editor=a;this.browserFocus=new f;m.addListener(a.container,"mousedown",function(b){a.focus();return m.preventDefault(b)});m.addListener(a.container,"selectstart",function(a){return m.preventDefault(a)});var b=a.renderer.getMouseEventTarget();m.addListener(b,"mousedown",this.onMouseDown.bind(this));
m.addMultiMouseDownListener(b,0,2,500,this.onMouseDoubleClick.bind(this));m.addMultiMouseDownListener(b,0,3,600,this.onMouseTripleClick.bind(this));m.addMultiMouseDownListener(b,0,4,600,this.onMouseQuadClick.bind(this));m.addMouseWheelListener(b,this.onMouseWheel.bind(this))};(function(){this.$scrollSpeed=1;this.setScrollSpeed=function(a){this.$scrollSpeed=a};this.getScrollSpeed=function(){return this.$scrollSpeed};this.$getEventPosition=function(a){var b=m.getDocumentX(a),a=m.getDocumentY(a),b=this.editor.renderer.screenToTextCoordinates(b,
a);b.row=Math.max(0,Math.min(b.row,this.editor.session.getLength()-1));return b};this.$distance=function(a,b,c,f){return Math.sqrt(Math.pow(c-a,2)+Math.pow(f-b,2))};this.onMouseDown=function(a){function e(b){a.shiftKey?h.selection.selectToPosition(b):r.$clickSelection||(h.moveCursorToPosition(b),h.selection.clearSelection(b.row,b.column));w=n}if(this.browserFocus.isFocused()&&!((new Date).getTime()-this.browserFocus.lastFocus<20)&&this.editor.isFocused()){var c=m.getDocumentX(a),f=m.getDocumentY(a),
j=this.$getEventPosition(a),h=this.editor,r=this,x=h.getSelectionRange(),p=x.isEmpty(),w=0,A=false,A=m.getButton(a);if(A!==0)p&&h.moveCursorToPosition(j),A==2&&(h.textInput.onContextMenu({x:c,y:f},p),m.capture(h.container,function(){},h.textInput.onContextMenuClose));else if(A=h.session.getFoldAt(j.row,j.column,1))h.selection.setSelectionRange(A.range);else{(A=!h.getReadOnly()&&!p&&x.contains(j.row,j.column))||e(j);var z,s;h.getOverwrite();var o=(new Date).getTime(),B,D;m.capture(h.container,function(a){z=
m.getDocumentX(a);s=m.getDocumentY(a)},function(){clearInterval(C);if(w==0)e(j);else if(w==2&&(b.removeCssClass(h.container,"ace_dragging"),h.session.removeMarker(dragSelectionMarker),!r.$clickSelection&&!B&&(h.moveCursorToPosition(j),h.selection.clearSelection(j.row,j.column)),B))if(D.contains(B.row,B.column))B=null;else{h.clearSelection();var a=h.moveText(D,B);a?h.selection.setSelectionRange(a):B=null}r.$clickSelection=null;w=0});var C=setInterval(function(){if(!(z===void 0||s===void 0)){if(w==
0){var a=r.$distance(c,f,z,s),j=(new Date).getTime();a>5?(w=n,a=h.renderer.screenToTextCoordinates(z,s),a.row=Math.max(0,Math.min(a.row,h.session.getLength()-1)),e(a)):j-o>250&&(w=2,D=h.getSelectionRange(),a=h.getSelectionStyle(),dragSelectionMarker=h.session.addMarker(D,"ace_selection",a),h.clearSelection(),b.addCssClass(h.container,"ace_dragging"))}if(w==2)B=h.renderer.screenToTextCoordinates(z,s),B.row=Math.max(0,Math.min(B.row,h.session.getLength()-1)),h.moveCursorToPosition(B);else if(w==n)a=
h.renderer.screenToTextCoordinates(z,s),a.row=Math.max(0,Math.min(a.row,h.session.getLength()-1)),r.$clickSelection?r.$clickSelection.contains(a.row,a.column)?h.selection.setSelectionRange(r.$clickSelection):(j=r.$clickSelection.compare(a.row,a.column)==-1?r.$clickSelection.end:r.$clickSelection.start,h.selection.setSelectionAnchor(j.row,j.column),h.selection.selectToPosition(a)):h.selection.selectToPosition(a),h.renderer.scrollCursorIntoView()}},20);return m.preventDefault(a)}}};this.onMouseDoubleClick=
function(a){var b=this.editor,a=this.$getEventPosition(a),c=b.session.getFoldAt(a.row,a.column,1);c?b.session.expandFold(c):(b.moveCursorToPosition(a),b.selection.selectWord(),this.$clickSelection=b.getSelectionRange())};this.onMouseTripleClick=function(a){this.editor.moveCursorToPosition(this.$getEventPosition(a));this.editor.selection.selectLine();this.$clickSelection=this.editor.getSelectionRange()};this.onMouseQuadClick=function(){this.editor.selectAll();this.$clickSelection=this.editor.getSelectionRange()};
this.onMouseWheel=function(a){var b=this.$scrollSpeed*2;this.editor.renderer.scrollBy(a.wheelX*b,a.wheelY*b);return m.preventDefault(a)}}).call(j.prototype);h.MouseHandler=j});
define("pilot/browser_focus","require,exports,module,pilot/oop,pilot/event,pilot/event_emitter".split(","),function(c,h){var m=c("pilot/oop"),b=c("pilot/event"),f=c("pilot/event_emitter").EventEmitter,n=function(c){c=c||window;this.lastFocus=(new Date).getTime();this._isFocused=true;var a=this;b.addListener(c,"blur",function(){a._setFocused(false)});b.addListener(c,"focus",function(){a._setFocused(true)})};(function(){m.implement(this,f);this.isFocused=function(){return this._isFocused};this._setFocused=
function(b){if(this._isFocused!=b){if(b)this.lastFocus=(new Date).getTime();this._isFocused=b;this._emit("changeFocus")}}}).call(n.prototype);h.BrowserFocus=n});
define("ace/keyboard/keybinding","require,exports,module,pilot/useragent,pilot/keys,pilot/event,pilot/settings,pilot/canon,ace/commands/default_commands".split(","),function(c,h){c("pilot/useragent");var m=c("pilot/keys"),b=c("pilot/event");c("pilot/settings");var f=c("pilot/canon");c("ace/commands/default_commands");var n=function(b){this.$editor=b;this.$data={};this.$keyboardHandler=null};(function(){this.setKeyboardHandler=function(b){if(this.$keyboardHandler!=b)this.$data={},this.$keyboardHandler=
b};this.getKeyboardHandler=function(){return this.$keyboardHandler};this.$callKeyboardHandler=function(c,a,e,k){var n={editor:this.$editor},h;this.$keyboardHandler&&(h=this.$keyboardHandler.handleKeyboard(this.$data,a,e,k,c));if(!h||!h.command)h=a!=0||k!=0?{command:f.findKeyCommand(n,"editor",a,e)}:{command:"inserttext",args:{text:e}};a=false;h&&(a=f.exec(h.command,n,"editor",h.args))&&b.stopEvent(c);return a};this.onCommandKey=function(b,a,e,c){c||(c=m.keyCodeToString(e));return this.$callKeyboardHandler(b,
a,c,e)};this.onTextInput=function(b){return this.$callKeyboardHandler({},0,b,0)}}).call(n.prototype);h.KeyBinding=n});
define("ace/commands/default_commands",["require","exports","module","pilot/lang","pilot/canon"],function(c){function h(b,c){return{win:b,mac:c,sender:"editor"}}var m=c("pilot/lang"),c=c("pilot/canon");c.addCommand({name:"null",exec:function(){}});c.addCommand({name:"selectall",bindKey:h("Ctrl-A","Command-A"),exec:function(b){b.editor.selectAll()}});c.addCommand({name:"removeline",bindKey:h("Ctrl-D","Command-D"),exec:function(b){b.editor.removeLines()}});c.addCommand({name:"gotoline",bindKey:h("Ctrl-L",
"Command-L"),exec:function(b){var c=parseInt(prompt("Enter line number:"));isNaN(c)||b.editor.gotoLine(c)}});c.addCommand({name:"togglecomment",bindKey:h("Ctrl-7","Command-7"),exec:function(b){b.editor.toggleCommentLines()}});c.addCommand({name:"findnext",bindKey:h("Ctrl-K","Command-G"),exec:function(b){b.editor.findNext()}});c.addCommand({name:"findprevious",bindKey:h("Ctrl-Shift-K","Command-Shift-G"),exec:function(b){b.editor.findPrevious()}});c.addCommand({name:"find",bindKey:h("Ctrl-F","Command-F"),
exec:function(b){var c=prompt("Find:");b.editor.find(c)}});c.addCommand({name:"replace",bindKey:h("Ctrl-R","Command-Option-F"),exec:function(b){var c=prompt("Find:");if(c){var n=prompt("Replacement:");n&&b.editor.replace(n,{needle:c})}}});c.addCommand({name:"replaceall",bindKey:h("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(b){var c=prompt("Find:");if(c){var n=prompt("Replacement:");n&&b.editor.replaceAll(n,{needle:c})}}});c.addCommand({name:"undo",bindKey:h("Ctrl-Z","Command-Z"),exec:function(b){b.editor.undo()}});
c.addCommand({name:"redo",bindKey:h("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(b){b.editor.redo()}});c.addCommand({name:"overwrite",bindKey:h("Insert","Insert"),exec:function(b){b.editor.toggleOverwrite()}});c.addCommand({name:"copylinesup",bindKey:h("Ctrl-Alt-Up","Command-Option-Up"),exec:function(b){b.editor.copyLinesUp()}});c.addCommand({name:"movelinesup",bindKey:h("Alt-Up","Option-Up"),exec:function(b){b.editor.moveLinesUp()}});c.addCommand({name:"selecttostart",bindKey:h("Ctrl-Shift-Home|Alt-Shift-Up",
"Command-Shift-Up"),exec:function(b){b.editor.getSelection().selectFileStart()}});c.addCommand({name:"gotostart",bindKey:h("Ctrl-Home|Ctrl-Up","Command-Home|Command-Up"),exec:function(b){b.editor.navigateFileStart()}});c.addCommand({name:"selectup",bindKey:h("Shift-Up","Shift-Up"),exec:function(b){b.editor.getSelection().selectUp()}});c.addCommand({name:"golineup",bindKey:h("Up","Up|Ctrl-P"),exec:function(b,c){b.editor.navigateUp(c.times)}});c.addCommand({name:"copylinesdown",bindKey:h("Ctrl-Alt-Down",
"Command-Option-Down"),exec:function(b){b.editor.copyLinesDown()}});c.addCommand({name:"movelinesdown",bindKey:h("Alt-Down","Option-Down"),exec:function(b){b.editor.moveLinesDown()}});c.addCommand({name:"selecttoend",bindKey:h("Ctrl-Shift-End|Alt-Shift-Down","Command-Shift-Down"),exec:function(b){b.editor.getSelection().selectFileEnd()}});c.addCommand({name:"gotoend",bindKey:h("Ctrl-End|Ctrl-Down","Command-End|Command-Down"),exec:function(b){b.editor.navigateFileEnd()}});c.addCommand({name:"selectdown",
bindKey:h("Shift-Down","Shift-Down"),exec:function(b){b.editor.getSelection().selectDown()}});c.addCommand({name:"golinedown",bindKey:h("Down","Down|Ctrl-N"),exec:function(b,c){b.editor.navigateDown(c.times)}});c.addCommand({name:"selectwordleft",bindKey:h("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(b){b.editor.getSelection().selectWordLeft()}});c.addCommand({name:"gotowordleft",bindKey:h("Ctrl-Left","Option-Left"),exec:function(b){b.editor.navigateWordLeft()}});c.addCommand({name:"selecttolinestart",
bindKey:h("Alt-Shift-Left","Command-Shift-Left"),exec:function(b){b.editor.getSelection().selectLineStart()}});c.addCommand({name:"gotolinestart",bindKey:h("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(b){b.editor.navigateLineStart()}});c.addCommand({name:"selectleft",bindKey:h("Shift-Left","Shift-Left"),exec:function(b){b.editor.getSelection().selectLeft()}});c.addCommand({name:"gotoleft",bindKey:h("Left","Left|Ctrl-B"),exec:function(b,c){b.editor.navigateLeft(c.times)}});c.addCommand({name:"selectwordright",
bindKey:h("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(b){b.editor.getSelection().selectWordRight()}});c.addCommand({name:"gotowordright",bindKey:h("Ctrl-Right","Option-Right"),exec:function(b){b.editor.navigateWordRight()}});c.addCommand({name:"selecttolineend",bindKey:h("Alt-Shift-Right","Command-Shift-Right"),exec:function(b){b.editor.getSelection().selectLineEnd()}});c.addCommand({name:"gotolineend",bindKey:h("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(b){b.editor.navigateLineEnd()}});
c.addCommand({name:"selectright",bindKey:h("Shift-Right","Shift-Right"),exec:function(b){b.editor.getSelection().selectRight()}});c.addCommand({name:"gotoright",bindKey:h("Right","Right|Ctrl-F"),exec:function(b,c){b.editor.navigateRight(c.times)}});c.addCommand({name:"selectpagedown",bindKey:h("Shift-PageDown","Shift-PageDown"),exec:function(b){b.editor.selectPageDown()}});c.addCommand({name:"pagedown",bindKey:h(null,"PageDown"),exec:function(b){b.editor.scrollPageDown()}});c.addCommand({name:"gotopagedown",
bindKey:h("PageDown","Option-PageDown|Ctrl-V"),exec:function(b){b.editor.gotoPageDown()}});c.addCommand({name:"selectpageup",bindKey:h("Shift-PageUp","Shift-PageUp"),exec:function(b){b.editor.selectPageUp()}});c.addCommand({name:"pageup",bindKey:h(null,"PageUp"),exec:function(b){b.editor.scrollPageUp()}});c.addCommand({name:"gotopageup",bindKey:h("PageUp","Option-PageUp"),exec:function(b){b.editor.gotoPageUp()}});c.addCommand({name:"selectlinestart",bindKey:h("Shift-Home","Shift-Home"),exec:function(b){b.editor.getSelection().selectLineStart()}});
c.addCommand({name:"selectlineend",bindKey:h("Shift-End","Shift-End"),exec:function(b){b.editor.getSelection().selectLineEnd()}});c.addCommand({name:"del",bindKey:h("Delete","Delete|Ctrl-D"),exec:function(b){b.editor.removeRight()}});c.addCommand({name:"backspace",bindKey:h("Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(b){b.editor.removeLeft()}});c.addCommand({name:"removetolinestart",
bindKey:h(null,"Option-Backspace"),exec:function(b){b.editor.removeToLineStart()}});c.addCommand({name:"removetolineend",bindKey:h(null,"Ctrl-K"),exec:function(b){b.editor.removeToLineEnd()}});c.addCommand({name:"removewordleft",bindKey:h("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(b){b.editor.removeWordLeft()}});c.addCommand({name:"removewordright",bindKey:h(null,"Alt-Delete"),exec:function(b){b.editor.removeWordRight()}});c.addCommand({name:"outdent",bindKey:h("Shift-Tab",
"Shift-Tab"),exec:function(b){b.editor.blockOutdent()}});c.addCommand({name:"indent",bindKey:h("Tab","Tab"),exec:function(b){b.editor.indent()}});c.addCommand({name:"inserttext",exec:function(b,c){b.editor.insert(m.stringRepeat(c.text||"",c.times||1))}});c.addCommand({name:"centerselection",bindKey:h(null,"Ctrl-L"),exec:function(b){b.editor.centerSelection()}});c.addCommand({name:"splitline",bindKey:h(null,"Ctrl-O"),exec:function(b){b.editor.splitLine()}});c.addCommand({name:"transposeletters",bindKey:h("Ctrl-T",
"Ctrl-T"),exec:function(b){b.editor.transposeLetters()}})});
define("ace/edit_session","require,exports,module,pilot/oop,pilot/lang,pilot/event_emitter,ace/selection,ace/mode/text,ace/range,ace/document,ace/background_tokenizer,ace/edit_session/folding".split(","),function(c,h){var m=c("pilot/oop"),b=c("pilot/lang"),f=c("pilot/event_emitter").EventEmitter,n=c("ace/selection").Selection,j=c("ace/mode/text").Mode,a=c("ace/range").Range,e=c("ace/document").Document,k=c("ace/background_tokenizer").BackgroundTokenizer,v=function(a,b){this.$modified=true;this.$breakpoints=
[];this.$frontMarkers={};this.$backMarkers={};this.$markerId=1;this.$rowCache=[];this.$wrapData=[];this.$foldData=[];this.$foldData.toString=function(){var a="";this.forEach(function(b){a+="\n"+b.toString()});return a};a instanceof e?this.setDocument(a):this.setDocument(new e(a));this.selection=new n(this);b?this.setMode(b):this.setMode(new j)};(function(){function e(a){return a<4352?false:a>=4352&&a<=4447||a>=4515&&a<=4519||a>=4602&&a<=4607||a>=9001&&a<=9002||a>=11904&&a<=11929||a>=11931&&a<=12019||
a>=12032&&a<=12245||a>=12272&&a<=12283||a>=12288&&a<=12350||a>=12353&&a<=12438||a>=12441&&a<=12543||a>=12549&&a<=12589||a>=12593&&a<=12686||a>=12688&&a<=12730||a>=12736&&a<=12771||a>=12784&&a<=12830||a>=12832&&a<=12871||a>=12880&&a<=13054||a>=13056&&a<=19903||a>=19968&&a<=42124||a>=42128&&a<=42182||a>=43360&&a<=43388||a>=44032&&a<=55203||a>=55216&&a<=55238||a>=55243&&a<=55291||a>=63744&&a<=64255||a>=65040&&a<=65049||a>=65072&&a<=65106||a>=65108&&a<=65126||a>=65128&&a<=65131||a>=65281&&a<=65376||a>=
65504&&a<=65510}m.implement(this,f);this.setDocument=function(a){if(this.doc)throw Error("Document is already set");this.doc=a;a.on("change",this.onChange.bind(this));this.on("changeFold",this.onChangeFold.bind(this))};this.getDocument=function(){return this.doc};this.$resetRowCache=function(a){if(a==0)this.$rowCache=[];else for(var b=this.$rowCache,c=0;c<b.length;c++)if(b[c].docRow>=a){b.splice(c,b.length);break}};this.onChangeFold=function(a){this.$resetRowCache(a.data.start.row)};this.onChange=
function(a){var b=a.data;this.$modified=true;this.$resetRowCache(b.range.start.row);var c=this.$updateInternalDataOnChange(a);!this.$fromUndo&&this.$undoManager&&!b.ignore&&(this.$deltasDoc.push(b),c&&c.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:c}),this.$informUndoManager.schedule());this.bgTokenizer.start(b.range.start.row);this._dispatchEvent("change",a)};this.setValue=function(a){this.doc.setValue(a);this.selection.moveCursorTo(0,0);this.selection.clearSelection();this.$resetRowCache(0);
this.$deltas=[];this.$deltasDoc=[];this.$deltasFold=[];this.getUndoManager().reset()};this.getValue=this.toString=function(){return this.doc.getValue()};this.getSelection=function(){return this.selection};this.getState=function(a){return this.bgTokenizer.getState(a)};this.getTokens=function(a,b){return this.bgTokenizer.getTokens(a,b)};this.setUndoManager=function(a){this.$undoManager=a;this.$resetRowCache(0);this.$deltas=[];this.$deltasDoc=[];this.$deltasFold=[];this.$informUndoManager&&this.$informUndoManager.cancel();
if(a){var c=this;this.$syncInformUndoManager=function(){c.$informUndoManager.cancel();if(c.$deltasFold.length)c.$deltas.push({group:"fold",deltas:c.$deltasFold}),c.$deltasFold=[];if(c.$deltasDoc.length)c.$deltas.push({group:"doc",deltas:c.$deltasDoc}),c.$deltasDoc=[];c.$deltas.length>0&&a.execute({action:"aceupdate",args:[c.$deltas,c]});c.$deltas=[]};this.$informUndoManager=b.deferredCall(this.$syncInformUndoManager)}};this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}};
this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager};this.getTabString=function(){return this.getUseSoftTabs()?b.stringRepeat(" ",this.getTabSize()):"\t"};this.$useSoftTabs=true;this.setUseSoftTabs=function(a){if(this.$useSoftTabs!==a)this.$useSoftTabs=a};this.getUseSoftTabs=function(){return this.$useSoftTabs};this.$tabSize=4;this.setTabSize=function(a){if(!(isNaN(a)||this.$tabSize===a))this.$modified=true,this.$tabSize=a,this._dispatchEvent("changeTabSize")};this.getTabSize=
function(){return this.$tabSize};this.isTabStop=function(a){return this.$useSoftTabs&&a.column%this.$tabSize==0};this.$overwrite=false;this.setOverwrite=function(a){if(this.$overwrite!=a)this.$overwrite=a,this._dispatchEvent("changeOverwrite")};this.getOverwrite=function(){return this.$overwrite};this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)};this.getBreakpoints=function(){return this.$breakpoints};this.setBreakpoints=function(a){this.$breakpoints=[];for(var b=0;b<a.length;b++)this.$breakpoints[a[b]]=
true;this._dispatchEvent("changeBreakpoint",{})};this.clearBreakpoints=function(){this.$breakpoints=[];this._dispatchEvent("changeBreakpoint",{})};this.setBreakpoint=function(a){this.$breakpoints[a]=true;this._dispatchEvent("changeBreakpoint",{})};this.clearBreakpoint=function(a){delete this.$breakpoints[a];this._dispatchEvent("changeBreakpoint",{})};this.getBreakpoints=function(){return this.$breakpoints};this.addMarker=function(a,b,c,e){var f=this.$markerId++,a={range:a,type:c||"line",renderer:typeof c==
"function"?c:null,clazz:b,inFront:!!e};e?(this.$frontMarkers[f]=a,this._dispatchEvent("changeFrontMarker")):(this.$backMarkers[f]=a,this._dispatchEvent("changeBackMarker"));return f};this.removeMarker=function(a){var b=this.$frontMarkers[a]||this.$backMarkers[a];if(b){var c=b.inFront?this.$frontMarkers:this.$backMarkers;b&&(delete c[a],this._dispatchEvent(b.inFront?"changeFrontMarker":"changeBackMarker"))}};this.getMarkers=function(a){return a?this.$frontMarkers:this.$backMarkers};this.setAnnotations=
function(a){this.$annotations={};for(var b=0;b<a.length;b++){var c=a[b],e=c.row;this.$annotations[e]?this.$annotations[e].push(c):this.$annotations[e]=[c]}this._dispatchEvent("changeAnnotation",{})};this.getAnnotations=function(){return this.$annotations};this.clearAnnotations=function(){this.$annotations={};this._dispatchEvent("changeAnnotation",{})};this.$detectNewLine=function(a){this.$autoNewLine=(a=a.match(/^.*?(\r?\n)/m))?a[1]:"\n"};this.getWordRange=function(b,c){var e=this.getLine(b),f=false;
c>0&&(f=!!e.charAt(c-1).match(this.tokenRe));f||(f=!!e.charAt(c).match(this.tokenRe));var f=f?this.tokenRe:this.nonTokenRe,k=c;if(k>0){do k--;while(k>=0&&e.charAt(k).match(f));k++}for(var j=c;j<e.length&&e.charAt(j).match(f);)j++;return new a(b,k,b,j)};this.setNewLineMode=function(a){this.doc.setNewLineMode(a)};this.getNewLineMode=function(){return this.doc.getNewLineMode()};this.$useWorker=true;this.setUseWorker=function(a){if(this.$useWorker!=a)this.$useWorker=a,this.$stopWorker(),a&&this.$startWorker()};
this.getUseWorker=function(){return this.$useWorker};this.onReloadTokenizer=function(a){this.bgTokenizer.start(a.data.first);this._dispatchEvent("tokenizerUpdate",a)};this.$mode=null;this.setMode=function(a){if(this.$mode!==a){this.$mode=a;this.$stopWorker();this.$useWorker&&this.$startWorker();var b=a.getTokenizer();if(b.addEventListener!==void 0){var c=this.onReloadTokenizer.bind(this);b.addEventListener("update",c)}if(this.bgTokenizer)this.bgTokenizer.setTokenizer(b);else{this.bgTokenizer=new k(b);
var e=this;this.bgTokenizer.addEventListener("update",function(a){e._dispatchEvent("tokenizerUpdate",a)})}this.bgTokenizer.setDocument(this.getDocument());this.bgTokenizer.start(0);this.tokenRe=a.tokenRe;this.nonTokenRe=a.nonTokenRe;this._dispatchEvent("changeMode")}};this.$stopWorker=function(){this.$worker&&this.$worker.terminate();this.$worker=null};this.$startWorker=function(){if(typeof Worker!=="undefined"&&!c.noWorker)try{this.$worker=this.$mode.createWorker(this)}catch(a){console.log("Could not load worker"),
console.log(a),this.$worker=null}else this.$worker=null};this.getMode=function(){return this.$mode};this.$scrollTop=0;this.setScrollTopRow=function(a){if(this.$scrollTop!==a)this.$scrollTop=a,this._dispatchEvent("changeScrollTop")};this.getScrollTopRow=function(){return this.$scrollTop};this.getWidth=function(){this.$computeWidth();return this.width};this.getScreenWidth=function(){this.$computeWidth();return this.screenWidth};this.$computeWidth=function(a){if(this.$modified||a){this.$modified=false;
for(var a=this.doc.getAllLines(),b=0,c=0,e=0;e<a.length;e++){var f=this.getFoldLine(e),k;k=a[e];if(f)e=f.range.end,k=this.getFoldDisplayLine(f),e=e.row;b=Math.max(b,k.length);this.$useWrapMode||(c=Math.max(c,this.$getStringScreenWidth(k)[0]))}this.width=b;this.screenWidth=this.$useWrapMode?this.$wrapLimit:c}};this.getLine=function(a){return this.doc.getLine(a)};this.getLines=function(a,b){return this.doc.getLines(a,b)};this.getLength=function(){return this.doc.getLength()};this.getTextRange=function(a){return this.doc.getTextRange(a)};
this.findMatchingBracket=function(a){if(a.column==0)return null;var b=this.getLine(a.row).charAt(a.column-1);if(b=="")return null;b=b.match(/([\(\[\{])|([\)\]\}])/);return!b?null:b[1]?this.$findClosingBracket(b[1],a):this.$findOpeningBracket(b[2],a)};this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"};this.$findOpeningBracket=function(a,b){for(var c=this.$brackets[a],e=b.column-2,f=b.row,k=1,j=this.getLine(f);;){for(;e>=0;){var n=j.charAt(e);if(n==c){if(k-=1,k==0)return{row:f,column:e}}else n==
a&&(k+=1);e-=1}f-=1;if(f<0)break;j=this.getLine(f);e=j.length-1}return null};this.$findClosingBracket=function(a,b){for(var c=this.$brackets[a],e=b.column,f=b.row,k=1,j=this.getLine(f),n=this.getLength();;){for(;e<j.length;){var h=j.charAt(e);if(h==c){if(k-=1,k==0)return{row:f,column:e}}else h==a&&(k+=1);e+=1}f+=1;if(f>=n)break;j=this.getLine(f);e=0}return null};this.insert=function(a,b){return this.doc.insert(a,b)};this.remove=function(a){return this.doc.remove(a)};this.undoChanges=function(a,b){if(a.length){this.$fromUndo=
true;for(var c=null,e=a.length-1;e!=-1;e--)delta=a[e],delta.group=="doc"?(this.doc.revertDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,true,c)):delta.deltas.forEach(function(a){this.addFolds(a.folds)},this);this.$fromUndo=false;c&&!b&&this.selection.setSelectionRange(c);return c}};this.redoChanges=function(a,b){if(a.length){this.$fromUndo=true;for(var c=null,e=0;e<a.length;e++)delta=a[e],delta.group=="doc"&&(this.doc.applyDeltas(delta.deltas),c=this.$getUndoSelection(delta.deltas,false,
c));this.$fromUndo=false;c&&!b&&this.selection.setSelectionRange(c);return c}};this.$getUndoSelection=function(b,c,e){function f(a){a=a.action=="insertText"||a.action=="insertLines";return c?!a:a}var k=b[0],j,n;j=f(k)?k.range.clone():a.fromPoints(k.range.start,k.range.start);for(var h=1;h<b.length;h++)k=b[h],f(k)?(n=k.range.start,j.compare(n.row,n.column)==-1&&j.setStart(k.range.start),n=k.range.end,j.compare(n.row,n.column)==1&&j.setEnd(k.range.end)):(n=k.range.start,j.compare(n.row,n.column)==-1&&
(j=a.fromPoints(k.range.start,k.range.start)));e!=null&&(b=e.compareRange(j),b==1?j.setStart(e.start):b==-1&&j.setEnd(e.end));return j};this.replace=function(a,b){return this.doc.replace(a,b)};this.moveText=function(b,c){var e=this.getTextRange(b);this.remove(b);var f=c.row,k=c.column;!b.isMultiLine()&&b.start.row==f&&b.end.column<k&&(k-=e.length);if(b.isMultiLine()&&b.end.row<f){var j=this.doc.$split(e);f-=j.length-1}var j=f+b.end.row-b.start.row,n=b.isMultiLine()?b.end.column:k+b.end.column-b.start.column,
f=new a(f,k,j,n);this.insert(f.start,e);return f};this.indentRows=function(a,b,c){for(c=c.replace(/\t/g,this.getTabString());a<=b;a++)this.insert({row:a,column:0},c)};this.outdentRows=function(b){for(var b=b.collapseRows(),c=new a(0,0,0,0),e=this.getTabSize(),f=b.start.row;f<=b.end.row;++f){var k=this.getLine(f);c.start.row=f;c.end.row=f;for(var j=0;j<e;++j)if(k.charAt(j)!=" ")break;j<e&&k.charAt(j)=="\t"?(c.start.column=j,c.end.column=j+1):(c.start.column=0,c.end.column=j);this.remove(c)}};this.moveLinesUp=
function(a,b){if(a<=0)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a-1,c);return-1};this.moveLinesDown=function(a,b){if(b>=this.doc.getLength()-1)return 0;var c=this.doc.removeLines(a,b);this.doc.insertLines(a+1,c);return 1};this.duplicateLines=function(a,b){var a=this.$clipRowToDocument(a),b=this.$clipRowToDocument(b),c=this.getLines(a,b);this.doc.insertLines(a,c);return b-a+1};this.$clipRowToDocument=function(a){return Math.max(0,Math.min(a,this.doc.getLength()-1))};this.$clipPositionToDocument=
function(a,b){b=Math.max(0,b);if(a<0)b=a=0;else{var c=this.doc.getLength();a>=c?(a=c-1,b=this.doc.getLine(c-1).length):b=Math.min(this.doc.getLine(a).length,b)}return{row:a,column:b}};this.$wrapLimit=80;this.$useWrapMode=false;this.$wrapLimitRange={min:null,max:null};this.setUseWrapMode=function(a){if(a!=this.$useWrapMode){this.$useWrapMode=a;this.$modified=true;this.$resetRowCache(0);if(a){a=this.getLength();this.$wrapData=[];for(i=0;i<a;i++)this.$wrapData.push([]);this.$updateWrapData(0,a-1)}this._dispatchEvent("changeWrapMode")}};
this.getUseWrapMode=function(){return this.$useWrapMode};this.setWrapLimitRange=function(a,b){if(this.$wrapLimitRange.min!==a||this.$wrapLimitRange.max!==b)this.$wrapLimitRange.min=a,this.$wrapLimitRange.max=b,this.$modified=true,this._dispatchEvent("changeWrapMode")};this.adjustWrapLimit=function(a){a=this.$constrainWrapLimit(a);return a!=this.$wrapLimit&&a>0?(this.$wrapLimit=a,this.$modified=true,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._dispatchEvent("changeWrapLimit")),
true):false};this.$constrainWrapLimit=function(a){var b=this.$wrapLimitRange.min;b&&(a=Math.max(b,a));(b=this.$wrapLimitRange.max)&&(a=Math.min(b,a));return Math.max(1,a)};this.getWrapLimit=function(){return this.$wrapLimit};this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}};this.$updateInternalDataOnChange=function(a){var b=this.$useWrapMode,c,e=a.data.action,f=a.data.range.start.row,k=a.data.range.end.row,j=a.data.range.start,n=a.data.range.end,
h=null;e.indexOf("Lines")!=-1?(k=e=="insertLines"?f+a.data.lines.length:f,c=a.data.lines.length):c=k-f;if(c!=0)if(e.indexOf("remove")!=-1){b&&this.$wrapData.splice(f,c);e=this.$foldData;h=this.getFoldsInRange(a.data.range);this.removeFolds(h);var a=this.getFoldLine(n.row),m=0;if(a){a.addRemoveChars(n.row,n.column,j.column-n.column);a.shiftRow(-c);if((k=this.getFoldLine(f))&&k!==a)k.merge(a),a=k;m=e.indexOf(a)+1}for(;m<e.length;m++)a=e[m],a.start.row>=n.row&&a.shiftRow(-c);k=f}else{if(b){e=[f,0];for(a=
0;a<c;a++)e.push([]);this.$wrapData.splice.apply(this.$wrapData,e)}e=this.$foldData;a=this.getFoldLine(f);m=0;a&&(m=a.range.compareInside(j.row,j.column),m==0?(a=a.split(j.row,j.column),a.shiftRow(c),a.addRemoveChars(k,0,n.column-j.column)):m==-1&&(a.addRemoveChars(f,0,n.column-j.column),a.shiftRow(c)),m=e.indexOf(a)+1);for(;m<e.length;m++)a=e[m],a.start.row>=f&&a.shiftRow(c)}else c=Math.abs(a.data.range.start.column-a.data.range.end.column),e.indexOf("remove")!=-1&&(h=this.getFoldsInRange(a.data.range),
this.removeFolds(h),c=-c),(a=this.getFoldLine(f))&&a.addRemoveChars(f,j.column,c);b&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!");b&&this.$updateWrapData(f,k);return h};this.$updateWrapData=function(a,c){for(var e=this.doc.getAllLines(),f=this.getTabSize(),k=this.$wrapData,m=this.$wrapLimit,v,y,C=a,c=Math.min(c,e.length-1);C<=c;){if(y=this.getFoldLine(C)){v=[];for(y.walk(function(a,b,c,f){if(a){a=this.$getDisplayTokens(a,v.length);
a[0]=j;for(b=1;b<a.length;b++)a[b]=n}else a=this.$getDisplayTokens(e[b].substring(f,c),v.length);v=v.concat(a)}.bind(this),y.end.row,e[y.end.row].length+1);v.length!=0&&v[v.length-1]>=h;)v.pop()}else v=this.$getDisplayTokens(b.stringTrimRight(e[C]));k[C]=this.$computeWrapSplits(v,m,f);C=this.getRowFoldEnd(C)+1}};var j=3,n=4,h=10;this.$computeWrapSplits=function(a,b){function c(b){var f=a.slice(k,b),j=f.length;f.join("").replace(/12/g,function(){j-=1}).replace(/2/g,function(){j-=1});m+=j;e.push(m);
k=b}if(a.length==0)return[];this.getTabSize();for(var e=[],f=a.length,k=0,m=0;f-k>b;){var v=k+b;if(a[v]>=h){for(;a[v]>=h;)v++;c(v)}else if(a[v]==j||a[v]==n){for(;v!=k-1;v--)if(a[v]==j)break;if(!(v>k)){for(v=k+b;v<a.length;v++)if(a[v]!=n)break;if(v==a.length)break}c(v)}else{for(;v!=k-1;v--)if(a[v]>=j){v++;break}v>k?c(v):(v=k+b,c(k+b))}}return e};this.$getDisplayTokens=function(a,b){for(var c=[],f,b=b||0,k=0;k<a.length;k++)if(f=a.charCodeAt(k),f==9){f=this.getScreenTabSize(c.length+b);c.push(11);for(var j=
1;j<f;j++)c.push(12)}else f==32?c.push(h):e(f)?c.push(1,2):c.push(1);return c};this.$getStringScreenWidth=function(a,b,c){if(b==0)return[0,0];b==null&&(b=c+a.length*Math.max(this.getTabSize(),2));var c=c||0,f,k;for(k=0;k<a.length;k++)if(f=a.charCodeAt(k),c+=f==9?this.getScreenTabSize(c):e(f)?2:1,c>b)break;return[c,k]};this.getRowLength=function(a){return!this.$useWrapMode||!this.$wrapData[a]?1:this.$wrapData[a].length+1};this.getRowHeight=function(a,b){return this.getRowLength(b)*a.lineHeight};this.getScreenLastRowColumn=
function(a){return this.documentToScreenColumn(a,this.doc.getLine(a).length)};this.getDocumentLastRowColumn=function(a,b){return this.getScreenLastRowColumn(this.documentToScreenRow(a,b))};this.getDocumentLastRowColumnPosition=function(a,b){return this.screenToDocumentPosition(this.documentToScreenRow(a,b),Number.MAX_VALUE/10)};this.getRowSplitData=function(a){if(this.$useWrapMode)return this.$wrapData[a]};this.getScreenTabSize=function(a){return this.$tabSize-a%this.$tabSize};this.screenToDocumentRow=
function(a,b){return this.screenToDocumentPosition(a,b).row};this.screenToDocumentColumn=function(a,b){return this.screenToDocumentPosition(a,b).column};this.screenToDocumentPosition=function(a,b){if(a<0)return{row:0,column:0};var c,e=0,f=0,k,j=0,n=0;c=this.$rowCache;for(var h=0;h<c.length;h++)if(c[h].screenRow<a)j=c[h].screenRow,e=c[h].docRow;else break;for(var m=!c.length||h==c.length,v=this.getLength()-1,x=(h=this.getNextFold(e))?h.start.row:Infinity;j<=a;){n=this.getRowLength(e);if(j+n-1>=a||
e>=v)break;else j+=n,e++,e>x&&(e=h.end.row+1,x=(h=this.getNextFold(e))?h.start.row:Infinity);m&&c.push({docRow:e,screenRow:j})}h&&h.start.row<=e?c=this.getFoldDisplayLine(h):(c=this.getLine(e),h=null);n=[];if(this.$useWrapMode&&(n=this.$wrapData[e]))k=n[a-j],a>j&&n.length&&(f=n[a-j-1]||n[n.length-1],c=c.substring(f));f+=this.$getStringScreenWidth(c,b)[1];if(j+n.length<a)f=Number.MAX_VALUE;this.$useWrapMode?f>=k&&(f=k-1):f=Math.min(f,c.length);return h?h.idxToPosition(f):{row:e,column:f}};this.documentToScreenPosition=
function(a,b){var c=typeof b==="undefined"?this.$clipPositionToDocument(a.row,a.column):this.$clipPositionToDocument(a,b),a=c.row,b=c.column,e;if(this.$useWrapMode&&(e=this.$wrapData,a>e.length-1))return{row:this.getScreenLength(),column:e.length==0?0:e[e.length-1].length-1};var c=0,f=null,f=null;if(f=this.getFoldAt(a,b,1))a=f.start.row,b=f.start.column;for(var k,f=0,j=this.$rowCache,n=0;n<j.length;n++)if(j[n].docRow<a)c=j[n].screenRow,f=j[n].docRow;else break;for(var h=!j.length||n==j.length,m=(n=
this.getNextFold(f))?n.start.row:Infinity;f<a;){if(f>=m){k=n.end.row+1;if(k>a)break;m=(n=this.getNextFold(k))?n.start.row:Infinity}else k=f+1;c+=this.getRowLength(f);f=k;h&&j.push({docRow:f,screenRow:c})}j="";n&&f>=m?(j=this.getFoldDisplayLine(n,a,b),f=n.start.row):(j=this.getLine(a).substring(0,b),f=a);if(this.$useWrapMode){e=e[f];for(f=0;j.length>=e[f];)c++,f++;j=j.substring(e[f-1]||0,j.length)}return{row:c,column:this.$getStringScreenWidth(j)[0]}};this.documentToScreenColumn=function(a,b){return this.documentToScreenPosition(a,
b).column};this.documentToScreenRow=function(a,b){return this.documentToScreenPosition(a,b).row};this.getScreenLength=function(){var a=0,b=null;if(this.$useWrapMode)for(var c=0;c<this.$wrapData.length;c++)(b=this.getFoldLine(c,null))?(c=b.end.row,a+=1):a+=this.$wrapData[c].length+1;else for(var a=this.getLength(),c=this.$foldData,e=0;e<c.length;e++)b=c[e],a-=b.end.row-b.start.row;return a}}).call(v.prototype);c("ace/edit_session/folding").Folding.call(v.prototype);h.EditSession=v});
define("ace/selection","require,exports,module,pilot/oop,pilot/lang,pilot/event_emitter,ace/range".split(","),function(c,h){var m=c("pilot/oop"),b=c("pilot/lang"),f=c("pilot/event_emitter").EventEmitter,n=c("ace/range").Range,j=function(a){this.session=a;this.doc=a.getDocument();this.clearSelection();this.selectionLead=this.doc.createAnchor(0,0);this.selectionAnchor=this.doc.createAnchor(0,0);var b=this;this.selectionLead.on("change",function(a){b._dispatchEvent("changeCursor");b.$isEmpty||b._dispatchEvent("changeSelection");
!b.$preventUpdateDesiredColumnOnChange&&a.old.column!=a.value.column&&b.$updateDesiredColumn()});this.selectionAnchor.on("change",function(){b.$isEmpty||b._dispatchEvent("changeSelection")})};(function(){m.implement(this,f);this.isEmpty=function(){return this.$isEmpty||this.selectionAnchor.row==this.selectionLead.row&&this.selectionAnchor.column==this.selectionLead.column};this.isMultiLine=function(){return this.isEmpty()?false:this.getRange().isMultiLine()};this.getCursor=function(){return this.selectionLead.getPosition()};
this.setSelectionAnchor=function(a,b){this.selectionAnchor.setPosition(a,b);if(this.$isEmpty)this.$isEmpty=false,this._dispatchEvent("changeSelection")};this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.selectionAnchor.getPosition()};this.getSelectionLead=function(){return this.selectionLead.getPosition()};this.shiftSelection=function(a){if(this.$isEmpty)this.moveCursorTo(this.selectionLead.row,this.selectionLead.column+a);else{var b=this.getSelectionAnchor(),c=
this.getSelectionLead(),f=this.isBackwards();(!f||b.column!==0)&&this.setSelectionAnchor(b.row,b.column+a);(f||c.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(c.row,c.column+a)})}};this.isBackwards=function(){var a=this.selectionAnchor,b=this.selectionLead;return a.row>b.row||a.row==b.row&&a.column>b.column};this.getRange=function(){var a=this.selectionAnchor,b=this.selectionLead;return this.isEmpty()?n.fromPoints(b,b):this.isBackwards()?n.fromPoints(b,a):n.fromPoints(a,b)};this.clearSelection=
function(){if(!this.$isEmpty)this.$isEmpty=true,this._dispatchEvent("changeSelection")};this.selectAll=function(){var a=this.doc.getLength()-1;this.setSelectionAnchor(a,this.doc.getLine(a).length);this.moveCursorTo(0,0)};this.setSelectionRange=function(a,b){b?(this.setSelectionAnchor(a.end.row,a.end.column),this.selectTo(a.start.row,a.start.column)):(this.setSelectionAnchor(a.start.row,a.start.column),this.selectTo(a.end.row,a.end.column));this.$updateDesiredColumn()};this.$updateDesiredColumn=function(){var a=
this.getCursor();this.$desiredColumn=this.session.documentToScreenColumn(a.row,a.column)};this.$moveSelection=function(a){var b=this.selectionLead;this.$isEmpty&&this.setSelectionAnchor(b.row,b.column);a.call(this)};this.selectTo=function(a,b){this.$moveSelection(function(){this.moveCursorTo(a,b)})};this.selectToPosition=function(a){this.$moveSelection(function(){this.moveCursorToPosition(a)})};this.selectUp=function(){this.$moveSelection(this.moveCursorUp)};this.selectDown=function(){this.$moveSelection(this.moveCursorDown)};
this.selectRight=function(){this.$moveSelection(this.moveCursorRight)};this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)};this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)};this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)};this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)};this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)};this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)};
this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)};this.selectWord=function(){var a=this.getCursor();this.setSelectionRange(this.session.getWordRange(a.row,a.column))};this.selectLine=function(){var a=this.selectionLead.row,b,c=this.session.getFoldLine(a);c?(a=c.start.row,b=c.end.row):b=a;this.setSelectionAnchor(a,0);this.$moveSelection(function(){this.moveCursorTo(b+1,0)})};this.moveCursorUp=function(){this.moveCursorBy(-1,0)};this.moveCursorDown=function(){this.moveCursorBy(1,
0)};this.moveCursorLeft=function(){var a=this.selectionLead.getPosition(),b;(b=this.session.getFoldAt(a.row,a.column,-1))?this.moveCursorTo(b.start.row,b.start.column):a.column==0?a.row>0&&this.moveCursorTo(a.row-1,this.doc.getLine(a.row-1).length):(b=this.session.getTabSize(),this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column-b,a.column).split(" ").length-1==b?this.moveCursorBy(0,-b):this.moveCursorBy(0,-1))};this.moveCursorRight=function(){var a=this.selectionLead.getPosition();if(a=
this.session.getFoldAt(a.row,a.column,1))this.moveCursorTo(a.end.row,a.end.column);else if(this.selectionLead.column==this.doc.getLine(this.selectionLead.row).length)this.selectionLead.row<this.doc.getLength()-1&&this.moveCursorTo(this.selectionLead.row+1,0);else{var b=this.session.getTabSize(),a=this.selectionLead;this.session.isTabStop(a)&&this.doc.getLine(a.row).slice(a.column,a.column+b).split(" ").length-1==b?this.moveCursorBy(0,b):this.moveCursorBy(0,1)}};this.moveCursorLineStart=function(){var a=
this.selectionLead.row,b=this.selectionLead.column,c=this.session.screenToDocumentPosition(this.session.documentToScreenRow(a,b),0),a=this.session.getDisplayLine(a,null,c.row,c.column).match(/^\s*/);a[0].length==b?this.moveCursorTo(c.row,c.column):this.moveCursorTo(c.row,c.column+a[0].length)};this.moveCursorLineEnd=function(){var a=this.selectionLead,a=this.session.getDocumentLastRowColumnPosition(a.row,a.column);this.moveCursorTo(a.row,a.column)};this.moveCursorFileEnd=function(){var a=this.doc.getLength()-
1,b=this.doc.getLine(a).length;this.moveCursorTo(a,b)};this.moveCursorFileStart=function(){this.moveCursorTo(0,0)};this.moveCursorWordRight=function(){var a=this.selectionLead.row,b=this.selectionLead.column,c=this.doc.getLine(a),f=c.substring(b);this.session.nonTokenRe.lastIndex=0;this.session.tokenRe.lastIndex=0;var j;if(j=this.session.getFoldAt(a,b,1))this.moveCursorTo(j.end.row,j.end.column);else if(b==c.length)this.moveCursorRight();else{if(this.session.nonTokenRe.exec(f))b+=this.session.nonTokenRe.lastIndex,
this.session.nonTokenRe.lastIndex=0;else if(this.session.tokenRe.exec(f))b+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(a,b)}};this.moveCursorWordLeft=function(){var a=this.selectionLead.row,c=this.selectionLead.column,f;if(f=this.session.getFoldAt(a,c,-1))this.moveCursorTo(f.start.row,f.start.column);else if(c==0)this.moveCursorLeft();else{f=this.session.getFoldStringAt(a,c,-1);f==null&&(f=this.doc.getLine(a).substring(0,c));f=b.stringReverse(f);this.session.nonTokenRe.lastIndex=
0;this.session.tokenRe.lastIndex=0;if(this.session.nonTokenRe.exec(f))c-=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0;else if(this.session.tokenRe.exec(f))c-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(a,c)}};this.moveCursorBy=function(a,b){var c=this.session.documentToScreenPosition(this.selectionLead.row,this.selectionLead.column),c=this.session.screenToDocumentPosition(c.row+a,b==0&&this.$desiredColumn||c.column);this.moveCursorTo(c.row,
c.column+b,b==0)};this.moveCursorToPosition=function(a){this.moveCursorTo(a.row,a.column)};this.moveCursorTo=function(a,b,c){var f=this.session.getFoldAt(a,b,1);if(f)a=f.start.row,b=f.start.column;this.$preventUpdateDesiredColumnOnChange=true;this.selectionLead.setPosition(a,b);this.$preventUpdateDesiredColumnOnChange=false;c||this.$updateDesiredColumn(this.selectionLead.column)};this.moveCursorToScreen=function(a,b,c){b=this.session.screenToDocumentPosition(a,b);a=b.row;b=b.column;this.moveCursorTo(a,
b,c)}}).call(j.prototype);h.Selection=j});
define("ace/range",["require","exports","module"],function(c,h){var m=function(b,c,n,j){this.start={row:b,column:c};this.end={row:n,column:j}};(function(){this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"};this.contains=function(b,c){return this.compare(b,c)==0};this.compareRange=function(b){var c;c=b.end;b=b.start;c=this.compare(c.row,c.column);return c==1?(c=this.compare(b.row,b.column),c==1?2:c==0?1:0):c==-1?-2:(c=this.compare(b.row,
b.column),c==-1?-1:c==1?42:0)};this.containsRange=function(b){b=this.compareRange(b);return b==-1||b==0||b==1};this.isEnd=function(b,c){return this.end.row==b&&this.end.column==c};this.isStart=function(b,c){return this.start.row==b&&this.start.column==c};this.setStart=function(b,c){typeof b=="object"?(this.start.column=b.column,this.start.row=b.row):(this.start.row=b,this.start.column=c)};this.setEnd=function(b,c){typeof b=="object"?(this.end.column=b.column,this.end.row=b.row):(this.end.row=b,this.end.column=
c)};this.inside=function(b,c){return this.compare(b,c)==0&&!this.isEnd(b,c)&&!this.isStart(b,c)?true:false};this.insideStart=function(b,c){return this.compare(b,c)==0&&!this.isEnd(b,c)?true:false};this.insideEnd=function(b,c){return this.compare(b,c)==0&&!this.isStart(b,c)?true:false};this.compare=function(b,c){return!this.isMultiLine()&&b===this.start.row?c<this.start.column?-1:c>this.end.column?1:0:b<this.start.row?-1:b>this.end.row?1:this.start.row===b?c>=this.start.column?0:-1:this.end.row===
b?c<=this.end.column?0:1:0};this.compareStart=function(b,c){return this.start.row==b&&this.start.column==c?-1:this.compare(b,c)};this.compareEnd=function(b,c){return this.end.row==b&&this.end.column==c?1:this.compare(b,c)};this.compareInside=function(b,c){return this.end.row==b&&this.end.column==c?1:this.start.row==b&&this.start.column==c?-1:this.compare(b,c)};this.clipRows=function(b,c){if(this.end.row>c)var n={row:c+1,column:0};if(this.start.row>c)var j={row:c+1,column:0};this.start.row<b&&(j={row:b,
column:0});this.end.row<b&&(n={row:b,column:0});return m.fromPoints(j||this.start,n||this.end)};this.extend=function(b,c){var n=this.compare(b,c);if(n==0)return this;else if(n==-1)var j={row:b,column:c};else var a={row:b,column:c};return m.fromPoints(j||this.start,a||this.end)};this.isEmpty=function(){return this.start.row==this.end.row&&this.start.column==this.end.column};this.isMultiLine=function(){return this.start.row!==this.end.row};this.clone=function(){return m.fromPoints(this.start,this.end)};
this.collapseRows=function(){return this.end.column==0?new m(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new m(this.start.row,0,this.end.row,0)};this.toScreenRange=function(b){var c=b.documentToScreenPosition(this.start),b=b.documentToScreenPosition(this.end);return new m(c.row,c.column,b.row,b.column)}}).call(m.prototype);m.fromPoints=function(b,c){return new m(b.row,b.column,c.row,c.column)};h.Range=m});
define("ace/mode/text","require,exports,module,ace/tokenizer,ace/mode/text_highlight_rules,ace/mode/behaviour,ace/unicode".split(","),function(c,h){var m=c("ace/tokenizer").Tokenizer,b=c("ace/mode/text_highlight_rules").TextHighlightRules,f=c("ace/mode/behaviour").Behaviour,n=c("ace/unicode"),j=function(){this.$tokenizer=new m((new b).getRules());this.$behaviour=new f};(function(){this.tokenRe=RegExp("^["+n.packages.L+n.packages.Mn+n.packages.Mc+n.packages.Nd+n.packages.Pc+"\\$_]+","g");this.nonTokenRe=
RegExp("^(?:[^"+n.packages.L+n.packages.Mn+n.packages.Mc+n.packages.Nd+n.packages.Pc+"\\$_]|s])+","g");this.getTokenizer=function(){return this.$tokenizer};this.toggleCommentLines=function(){};this.getNextLineIndent=function(){return""};this.checkOutdent=function(){return false};this.autoOutdent=function(){};this.$getIndent=function(a){return(a=a.match(/^(\s+)/))?a[1]:""};this.createWorker=function(){return null};this.highlightSelection=function(a){var b=a.session;if(!b.$selectionOccurrences)b.$selectionOccurrences=
[];b.$selectionOccurrences.length&&this.clearSelectionHighlight(a);var c=a.getSelectionRange();if(!c.isEmpty()&&!c.isMultiLine()){var f=c.start.column-1,j=c.end.column+1,n=b.getLine(c.start.row),h=n.length,m=n.substring(Math.max(f,0),Math.min(j,h));if(!(f>=0&&/^[\w\d]/.test(m)||j<=h&&/[\w\d]$/.test(m)))if(m=n.substring(c.start.column,c.end.column),/^[\w\d]+$/.test(m)){var p=a.getCursorPosition(),c={wrap:true,wholeWord:true,caseSensitive:true,needle:m},f=a.$search.getOptions();a.$search.set(c);a.$search.findAll(b).forEach(function(a){a.contains(p.row,
p.column)||(a=b.addMarker(a,"ace_selected_word","text"),b.$selectionOccurrences.push(a))});a.$search.set(f)}}};this.clearSelectionHighlight=function(a){if(a.session.$selectionOccurrences)a.session.$selectionOccurrences.forEach(function(b){a.session.removeMarker(b)}),a.session.$selectionOccurrences=[]};this.createModeDelegates=function(a){if(this.$embeds){this.$modes={};for(var b=0;b<this.$embeds.length;b++)a[this.$embeds[b]]&&(this.$modes[this.$embeds[b]]=new a[this.$embeds[b]]);for(var c=["toggleCommentLines",
"getNextLineIndent","checkOutdent","autoOutdent","transformAction"],b=0;b<c.length;b++)(function(a){var f=c[b],j=a[f];a[c[b]]=function(){return this.$delegator(f,arguments,j)}})(this)}};this.$delegator=function(a,b,c){for(var f=b[0],j=0;j<this.$embeds.length;j++)if(this.$modes[this.$embeds[j]]){var n=f.split(this.$embeds[j]);if(!n[0]&&n[1])return b[0]=n[1],c=this.$modes[this.$embeds[j]],c[a].apply(c,b)}a=c.apply(this,b);return c?a:void 0};this.transformAction=function(a,b,c,f,j){if(this.$behaviour){var n=
this.$behaviour.getBehaviours(),h;for(h in n)if(n[h][b]){var m=n[h][b].apply(this,arguments);if(m!==false)return m}}return false}}).call(j.prototype);h.Mode=j});
define("ace/tokenizer",["require","exports","module"],function(c,h){var m=function(b){this.rules=b;this.regExps={};this.matchMappings={};for(var c in this.rules){for(var b=this.rules[c],n=[],j=0,a=this.matchMappings[c]={},e=0;e<b.length;e++){var k=RegExp("(?:("+b[e].regex+")|(.))").exec("a").length-2,h=b[e].regex.replace(/\\([0-9]+)/g,function(a,b){return"\\"+(parseInt(b,10)+j+1)});a[j]={rule:e,len:k};j+=k;n.push(h)}this.regExps[c]=RegExp("(?:("+n.join(")|(")+")|(.))","g")}};(function(){this.getLineTokens=
function(b,c){var n=c,j=this.rules[n],a=this.matchMappings[n],e=this.regExps[n];e.lastIndex=0;for(var k,h=[],m=0,t={type:null,value:""};k=e.exec(b);){for(var r="text",x=null,p=[k[0]],w=0;w<k.length-2;w++)if(k[w+1]!==void 0){x=j[a[w].rule];a[w].len>1&&(p=k.slice(w+2,w+1+a[w].len));r=typeof x.token=="function"?x.token.apply(this,p):x.token;if((k=x.next)&&k!==n)n=k,j=this.rules[n],a=this.matchMappings[n],m=e.lastIndex,e=this.regExps[n],e.lastIndex=m;break}if(p[0]){typeof r=="string"&&(p=[p.join("")],
r=[r]);for(w=0;w<p.length;w++)(!x||x.merge||r[w]==="text")&&t.type===r[w]?t.value+=p[w]:(t.type&&h.push(t),t={type:r[w],value:p[w]})}if(m==b.length)break;m=e.lastIndex}t.type&&h.push(t);return{tokens:h,state:n}}}).call(m.prototype);h.Tokenizer=m});
define("ace/mode/text_highlight_rules",["require","exports","module","pilot/lang"],function(c,h){var m=c("pilot/lang"),b=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{token:"text",regex:".+"}]}};(function(){this.addRules=function(b,c){for(var j in b){for(var a=b[j],e=0;e<a.length;e++){var k=a[e];k.next=k.next?c+k.next:c+j}this.$rules[c+j]=a}};this.getRules=function(){return this.$rules};this.embedRules=function(b,c,j,a){b=(new b).getRules();if(a)for(var e=0;e<a.length;e++)a[e]=c+
a[e];else for(e in a=[],b)a.push(c+e);this.addRules(b,c);for(e=0;e<a.length;e++)Array.prototype.unshift.apply(this.$rules[a[e]],m.deepCopy(j));if(!this.$embeds)this.$embeds=[];this.$embeds.push(c)};this.getEmbeds=function(){return this.$embeds}}).call(b.prototype);h.TextHighlightRules=b});
define("ace/mode/behaviour",["require","exports","module"],function(c,h){var m=function(){this.$behaviours={}};(function(){this.add=function(b,c,n){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[b]:this.$behaviours[b]={}}this.$behaviours[b][c]=n};this.addBehaviours=function(b){for(var c in b)for(var n in b[c])this.add(c,n,b[c][n])};this.remove=function(b){this.$behaviours&&this.$behaviours[b]&&delete this.$behaviours[b]};this.inherit=function(b,c){this.addBehaviours(typeof b===
"function"?(new b).getBehaviours(c):b.getBehaviours(c))};this.getBehaviours=function(b){if(b){for(var c={},n=0;n<b.length;n++)this.$behaviours[b[n]]&&(c[b[n]]=this.$behaviours[b[n]]);return c}else return this.$behaviours}}).call(m.prototype);h.Behaviour=m});
define("ace/unicode",["require","exports","module"],function(c,h){h.packages={};var m={L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",
Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",
Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",
M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",
Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",
Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",
Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",
Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",
P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",
Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",
Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",
S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",
Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",
So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",
Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",
Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"},
b=/\w{4}/g,f;for(f in m)h.packages[f]=m[f].replace(b,"\\u$&")});
define("ace/document","require,exports,module,pilot/oop,pilot/event_emitter,ace/range,ace/anchor".split(","),function(c,h){var m=c("pilot/oop"),b=c("pilot/event_emitter").EventEmitter,f=c("ace/range").Range,n=c("ace/anchor").Anchor,j=function(a){this.$lines=[];Array.isArray(a)?this.insertLines(0,a):a.length==0?this.$lines=[""]:this.insert({row:0,column:0},a)};(function(){m.implement(this,b);this.setValue=function(a){var b=this.getLength();this.remove(new f(0,0,b,this.getLine(b-1).length));this.insert({row:0,
column:0},a)};this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())};this.createAnchor=function(a,b){return new n(this,a,b)};this.$split="aaa".split(/a/).length==0?function(a){return a.replace(/\r\n|\r/g,"\n").split("\n")}:function(a){return a.split(/\r\n|\r|\n/)};this.$detectNewLine=function(a){this.$autoNewLine=(a=a.match(/^.*?(\r?\n)/m))?a[1]:"\n"};this.getNewLineCharacter=function(){switch(this.$newLineMode){case "windows":return"\r\n";case "unix":return"\n";case "auto":return this.$autoNewLine}};
this.$autoNewLine="\n";this.$newLineMode="auto";this.setNewLineMode=function(a){if(this.$newLineMode!==a)this.$newLineMode=a};this.getNewLineMode=function(){return this.$newLineMode};this.isNewLine=function(a){return a=="\r\n"||a=="\r"||a=="\n"};this.getLine=function(a){return this.$lines[a]||""};this.getLines=function(a,b){return this.$lines.slice(a,b+1)};this.getAllLines=function(){return this.getLines(0,this.getLength())};this.getLength=function(){return this.$lines.length};this.getTextRange=function(a){if(a.start.row==
a.end.row)return this.$lines[a.start.row].substring(a.start.column,a.end.column);else{var b=[];b.push(this.$lines[a.start.row].substring(a.start.column));b.push.apply(b,this.getLines(a.start.row+1,a.end.row-1));b.push(this.$lines[a.end.row].substring(0,a.end.column));return b.join(this.getNewLineCharacter())}};this.$clipPosition=function(a){var b=this.getLength();if(a.row>=b)a.row=Math.max(0,b-1),a.column=this.getLine(b-1).length;return a};this.insert=function(a,b){if(b.length==0)return a;a=this.$clipPosition(a);
this.getLength()<=1&&this.$detectNewLine(b);var c=this.$split(b),f=c.splice(0,1)[0],j=c.length==0?null:c.splice(c.length-1,1)[0],a=this.insertInLine(a,f);j!==null&&(a=this.insertNewLine(a),a=this.insertLines(a.row,c),a=this.insertInLine(a,j||""));return a};this.insertLines=function(a,b){if(b.length==0)return{row:a,column:0};var c=[a,0];c.push.apply(c,b);this.$lines.splice.apply(this.$lines,c);c=new f(a,0,a+b.length,0);this._dispatchEvent("change",{data:{action:"insertLines",range:c,lines:b}});return c.end};
this.insertNewLine=function(a){var a=this.$clipPosition(a),b=this.$lines[a.row]||"";this.$lines[a.row]=b.substring(0,a.column);this.$lines.splice(a.row+1,0,b.substring(a.column,b.length));b={row:a.row+1,column:0};this._dispatchEvent("change",{data:{action:"insertText",range:f.fromPoints(a,b),text:this.getNewLineCharacter()}});return b};this.insertInLine=function(a,b){if(b.length==0)return a;var c=this.$lines[a.row]||"";this.$lines[a.row]=c.substring(0,a.column)+b+c.substring(a.column);c={row:a.row,
column:a.column+b.length};this._dispatchEvent("change",{data:{action:"insertText",range:f.fromPoints(a,c),text:b}});return c};this.remove=function(a){a.start=this.$clipPosition(a.start);a.end=this.$clipPosition(a.end);if(a.isEmpty())return a.start;var b=a.start.row,c=a.end.row;if(a.isMultiLine()){var f=a.start.column==0?b:b+1,j=c-1;a.end.column>0&&this.removeInLine(c,0,a.end.column);j>=f&&this.removeLines(f,j);f!=b&&(this.removeInLine(b,a.start.column,this.getLine(b).length),this.removeNewLine(a.start.row))}else this.removeInLine(b,
a.start.column,a.end.column);return a.start};this.removeInLine=function(a,b,c){if(b!=c){var j=new f(a,b,a,c),n=this.getLine(a),h=n.substring(b,c),b=n.substring(0,b)+n.substring(c,n.length);this.$lines.splice(a,1,b);this._dispatchEvent("change",{data:{action:"removeText",range:j,text:h}});return j.start}};this.removeLines=function(a,b){var c=new f(a,0,b+1,0),j=this.$lines.splice(a,b-a+1);this._dispatchEvent("change",{data:{action:"removeLines",range:c,nl:this.getNewLineCharacter(),lines:j}});return j};
this.removeNewLine=function(a){var b=this.getLine(a),c=this.getLine(a+1),j=new f(a,b.length,a+1,0);this.$lines.splice(a,2,b+c);this._dispatchEvent("change",{data:{action:"removeText",range:j,text:this.getNewLineCharacter()}})};this.replace=function(a,b){if(b.length==0&&a.isEmpty())return a.start;if(b==this.getTextRange(a))return a.end;this.remove(a);return b?this.insert(a.start,b):a.start};this.applyDeltas=function(a){for(var b=0;b<a.length;b++){var c=a[b],j=f.fromPoints(c.range.start,c.range.end);
c.action=="insertLines"?this.insertLines(j.start.row,c.lines):c.action=="insertText"?this.insert(j.start,c.text):c.action=="removeLines"?this.removeLines(j.start.row,j.end.row-1):c.action=="removeText"&&this.remove(j)}};this.revertDeltas=function(a){for(var b=a.length-1;b>=0;b--){var c=a[b],j=f.fromPoints(c.range.start,c.range.end);c.action=="insertLines"?this.removeLines(j.start.row,j.end.row-1):c.action=="insertText"?this.remove(j):c.action=="removeLines"?this.insertLines(j.start.row,c.lines):c.action==
"removeText"&&this.insert(j.start,c.text)}}}).call(j.prototype);h.Document=j});
define("ace/anchor",["require","exports","module","pilot/oop","pilot/event_emitter"],function(c,h){var m=c("pilot/oop"),b=c("pilot/event_emitter").EventEmitter;(function(){m.implement(this,b);this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)};this.getDocument=function(){return this.document};this.onChange=function(b){var b=b.data,c=b.range;if(!(c.start.row==c.end.row&&c.start.row!=this.row)&&!(c.start.row>this.row)&&!(c.start.row==this.row&&c.start.column>this.column)){var j=
this.row,a=this.column;if(b.action==="insertText")c.start.row===j&&c.start.column<=a?c.start.row===c.end.row?a+=c.end.column-c.start.column:(a-=c.start.column,j+=c.end.row-c.start.row):c.start.row!==c.end.row&&c.start.row<j&&(j+=c.end.row-c.start.row);else if(b.action==="insertLines")c.start.row<=j&&(j+=c.end.row-c.start.row);else if(b.action=="removeText")c.start.row==j&&c.start.column<a?a=c.end.column>=a?c.start.column:Math.max(0,a-(c.end.column-c.start.column)):c.start.row!==c.end.row&&c.start.row<
j?(c.end.row==j&&(a=Math.max(0,a-c.end.column)+c.start.column),j-=c.end.row-c.start.row):c.end.row==j&&(j-=c.end.row-c.start.row,a=Math.max(0,a-c.end.column)+c.start.column);else if(b.action=="removeLines"&&c.start.row<=j)c.end.row<=j?j-=c.end.row-c.start.row:(j=c.start.row,a=0);this.setPosition(j,a,true)}};this.setPosition=function(b,c,j){b=j?{row:b,column:c}:this.$clipPositionToDocument(b,c);if(!(this.row==b.row&&this.column==b.column))c={row:this.row,column:this.column},this.row=b.row,this.column=
b.column,this._dispatchEvent("change",{old:c,value:b})};this.detach=function(){this.document.removeEventListener("change",this.$onChange)};this.$clipPositionToDocument=function(b,c){var j={};b>=this.document.getLength()?(j.row=Math.max(0,this.document.getLength()-1),j.column=this.document.getLine(j.row).length):b<0?(j.row=0,j.column=0):(j.row=b,j.column=Math.min(this.document.getLine(j.row).length,Math.max(0,c)));if(c<0)j.column=0;return j}}).call((h.Anchor=function(b,c,j){this.document=b;typeof j==
"undefined"?this.setPosition(c.row,c.column):this.setPosition(c,j);this.$onChange=this.onChange.bind(this);b.on("change",this.$onChange)}).prototype)});
define("ace/background_tokenizer",["require","exports","module","pilot/oop","pilot/event_emitter"],function(c,h){var m=c("pilot/oop"),b=c("pilot/event_emitter").EventEmitter,f=function(b){this.running=false;this.lines=[];this.currentLine=0;this.tokenizer=b;var c=this;this.$worker=function(){if(c.running){for(var a=new Date,b=c.currentLine,f=0,n=c.doc.getLength();c.currentLine<n;)if(c.lines[c.currentLine]=c.$tokenizeRows(c.currentLine,c.currentLine)[0],c.currentLine++,f+=1,f%5==0&&new Date-a>20){c.fireUpdateEvent(b,
c.currentLine-1);c.running=setTimeout(c.$worker,20);return}c.running=false;c.fireUpdateEvent(b,n-1)}}};(function(){m.implement(this,b);this.setTokenizer=function(b){this.tokenizer=b;this.lines=[];this.start(0)};this.setDocument=function(b){this.doc=b;this.lines=[];this.stop()};this.fireUpdateEvent=function(b,c){this._dispatchEvent("update",{data:{first:b,last:c}})};this.start=function(b){this.currentLine=Math.min(b||0,this.currentLine,this.doc.getLength());this.lines.splice(this.currentLine,this.lines.length);
this.stop();this.running=setTimeout(this.$worker,700)};this.stop=function(){this.running&&clearTimeout(this.running);this.running=false};this.getTokens=function(b,c){return this.$tokenizeRows(b,c)};this.getState=function(b){return this.$tokenizeRows(b,b)[0].state};this.$tokenizeRows=function(b,c){if(!this.doc)return[];var a=[],e="start",f=false;if(b>0&&this.lines[b-1])e=this.lines[b-1].state,f=true;else if(b==0)e="start",f=true;else if(this.lines.length>0)e=this.lines[this.lines.length-1].state;for(var h=
this.doc.getLines(b,c),m=b;m<=c;m++)if(this.lines[m])t=this.lines[m],e=t.state,a.push(t);else{var t=this.tokenizer.getLineTokens(h[m-b]||"",e),e=t.state;a.push(t);f&&(this.lines[m]=t)}return a}}).call(f.prototype);h.BackgroundTokenizer=f});
define("ace/edit_session/folding","require,exports,module,ace/range,ace/edit_session/fold_line,ace/edit_session/fold".split(","),function(c,h){c("ace/range");var m=c("ace/edit_session/fold_line").FoldLine,b=c("ace/edit_session/fold").Fold;h.Folding=function(){this.getFoldAt=function(b,c,j){var a=this.getFoldLine(b);if(!a)return null;for(var a=a.folds,e=0;e<a.length;e++){var k=a[e];if(k.range.contains(b,c)&&!(j==1&&k.range.isEnd(b,c))&&!(j==-1&&k.range.isStart(b,c)))return k}};this.getFoldsInRange=
function(b){var b=b.clone(),c=b.end,j=this.$foldData,a=[];b.start.column+=1;c.column-=1;for(c=0;c<j.length;c++){var e=j[c].range.compareRange(b);if(e!=2){if(e==-2)break;for(var k=j[c].folds,h=0;h<k.length;h++){var m=k[h],e=m.range.compareRange(b);if(e==-2)break;else if(e==2)continue;else if(e==42)break;a.push(m)}}}return a};this.getFoldStringAt=function(b,c,j,a){a=a||this.getFoldLine(b);if(!a)return null;for(var e={end:{column:0}},k=0;k<a.folds.length;k++){var h=a.folds[k],m=h.range.compareEnd(b,
c);if(m==-1){var t=this.getLine(h.start.row).substring(e.end.column,h.start.column);break}else if(m==0)return null;e=h}t||(t=this.getLine(h.start.row).substring(e.end.column));return j==-1?t.substring(0,c-e.end.column):j==1?t.substring(c-e.end.column):t};this.getFoldLine=function(b,c){var j=this.$foldData,a=0;c&&(a=j.indexOf(c));for(a==-1&&(a=0);a<j.length;a++){var e=j[a];if(e.start.row<=b&&e.end.row>=b)return e;else if(e.end.row>b)break}return null};this.getNextFold=function(b,c){var j=this.$foldData,
a=0;c&&(a=j.indexOf(c));for(a==-1&&(a=0);a<j.length;a++){var e=j[a];if(e.end.row>=b)return e}return null};this.getFoldedRowCount=function(b,c){for(var j=this.$foldData,a=c-b+1,e=0;e<j.length;e++){var k=j[e],h=k.end.row,k=k.start.row;if(h>=c){k<c&&(k>=b?a-=c-k:a=0);break}else h>=b&&(a-=k>=b?h-k:h-b+1)}return a};this.$addFoldLine=function(b){this.$foldData.push(b);this.$foldData.sort(function(b,c){return b.start.row-c.start.row});return b};this.addFold=function(c,n){var j=this.$foldData,a=false,e=c instanceof
b?c:new b(n,c),k=e.start.row,h=e.start.column,y=e.end.row,t=e.end.column;if(e.placeholder.length<2)throw"Placeholder has to be at least 2 characters";if(k==y&&t-h<2)throw"The range has to be at least 2 characters width";var r=this.getFoldAt(k,h,1);if(r&&r.range.isEnd(y,t)&&r.range.isStart(k,h))return e;if((r=this.getFoldAt(k,h,1))&&!r.range.isStart(k,h))throw"A fold can't start inside of an already existing fold";if((r=this.getFoldAt(y,t,-1))&&!r.range.isEnd(y,t))throw"A fold can't end inside of an already existing fold";
if(y>=this.doc.getLength())throw"End of fold is outside of the document.";if(t>this.getLine(y).length||h>this.getLine(k).length)throw"End of fold is outside of the document.";h=this.getFoldsInRange(e.range);if(h.length>0)this.removeFolds(h),e.subFolds=h;for(h=0;h<j.length;h++){var x=j[h];if(y==x.start.row){x.addFold(e);a=true;break}else if(k==x.end.row){x.addFold(e);a=true;if(!e.sameRow&&(foldLineNext=j[h+1])&&foldLineNext.start.row==y){x.merge(foldLineNext);break}break}else if(y<=x.start.row)break}a||
(x=this.$addFoldLine(new m(this.$foldData,e)));this.$useWrapMode&&this.$updateWrapData(x.start.row,x.start.row);this.$modified=true;this._dispatchEvent("changeFold",{data:e});return e};this.addFolds=function(b){b.forEach(function(b){this.addFold(b)},this)};this.removeFold=function(b){var c=b.foldLine,j=c.start.row,a=c.end.row,e=this.$foldData,k=c.folds;k.length==1?e.splice(e.indexOf(c),1):c.range.isEnd(b.end.row,b.end.column)?(k.pop(),c.end.row=k[k.length-1].end.row,c.end.column=k[k.length-1].end.column):
c.range.isStart(b.start.row,b.start.column)?(k.shift(),c.start.row=k[0].start.row,c.start.column=k[0].start.column):b.sameRow?k.splice(k.indexOf(b),1):(e=c.split(b.start.row,b.start.column),e.folds.shift(),c.start.row=k[0].start.row,c.start.column=k[0].start.column,this.$addFoldLine(e));this.$useWrapMode&&this.$updateWrapData(j,a);this.$modified=true;this._dispatchEvent("changeFold",{data:b})};this.removeFolds=function(b){for(var c=[],j=0;j<b.length;j++)c.push(b[j]);c.forEach(function(a){this.removeFold(a)},
this);this.$modified=true};this.expandFold=function(b){this.removeFold(b);b.subFolds.forEach(function(b){this.addFold(b)},this);b.subFolds=[]};this.expandFolds=function(b){b.forEach(function(b){this.expandFold(b)},this)};this.isRowFolded=function(b,c){return!!this.getFoldLine(b,c)};this.getRowFoldEnd=function(b,c){var j=this.getFoldLine(b,c);return j?j.end.row:b};this.getFoldDisplayLine=function(b,c,j,a,e){if(a==null)a=b.start.row,e=0;if(c==null)c=b.end.row,j=this.getLine(c).length;var k=this.doc,
h="";b.walk(function(b,c,f,j){if(!(c<a)){if(c==a){if(f<e)return;j=Math.max(e,j)}h+=b?b:k.getLine(c).substring(j,f)}}.bind(this),c,j);return h};this.getDisplayLine=function(b,c,j,a){var e=this.getFoldLine(b);return e?this.getFoldDisplayLine(e,b,c,j,a):(b=this.doc.getLine(b),b.substring(a||0,c||b.length))};this.$cloneFoldData=function(){var b=[];return b=this.$foldData.map(function(c){c=c.folds.map(function(b){return b.clone()});return new m(b,c)})}}});
define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(c,h){function m(c,h){this.foldData=c;Array.isArray(h)?this.folds=h:h=this.folds=[h];var j=h[h.length-1];this.range=new b(h[0].start.row,h[0].start.column,j.end.row,j.end.column);this.start=this.range.start;this.end=this.range.end;this.folds.forEach(function(a){a.setFoldLine(this)},this)}var b=c("ace/range").Range;(function(){this.shiftRow=function(b){this.start.row+=b;this.end.row+=b;this.folds.forEach(function(c){c.start.row+=
b;c.end.row+=b})};this.addFold=function(b){if(b.sameRow){if(b.start.row<this.startRow||b.endRow>this.endRow)throw"Can't add a fold to this FoldLine as it has no connection";this.folds.push(b);this.folds.sort(function(b,c){return-b.range.compareEnd(c.start.row,c.start.column)});if(this.range.compareEnd(b.start.row,b.start.column)>0)this.end.row=b.end.row,this.end.column=b.end.column;else if(this.range.compareStart(b.end.row,b.end.column)<0)this.start.row=b.start.row,this.start.column=b.start.column}else if(b.start.row==
this.end.row)this.folds.push(b),this.end.row=b.end.row,this.end.column=b.end.column;else if(b.end.row==this.start.row)this.folds.unshift(b),this.start.row=b.start.row,this.start.column=b.start.column;else throw"Trying to add fold to FoldRow that doesn't have a matching row";b.foldLine=this};this.containsRow=function(b){return b>=this.start.row&&b<=this.end.row};this.walk=function(b,c,j){var a=0,e=this.folds,k,h,m;m=true;if(c==null)c=this.end.row,j=this.end.column;for(var t=0;t<e.length;t++){k=e[t];
h=k.range.compareStart(c,j);if(h==-1){b(null,c,j,a,m);return}m=b(null,k.start.row,k.start.column,a,m);if((m=!m&&b(k.placeholder,k.start.row,k.start.column,a))||h==0)return;m=!k.sameRow;a=k.end.column}b(null,c,j,a,m)};this.getNextFoldTo=function(b,c){for(var j,a,e=0;e<this.folds.length;e++)if(j=this.folds[e],a=j.range.compareEnd(b,c),a==-1)return{fold:j,kind:"after"};else if(a==0)return{fold:j,kind:"inside"};return null};this.addRemoveChars=function(b,c,j){var a=this.getNextFoldTo(b,c),e;if(a)if(e=
a.fold,a.kind=="inside"&&e.start.column!=c&&e.start.row!=b)throw"Moving characters inside of a fold should never be reached";else if(e.start.row==b){b=this.folds;c=b.indexOf(e);for(c==0&&(this.start.column+=j);c<b.length;c++){e=b[c];e.start.column+=j;if(!e.sameRow)return;e.end.column+=j}this.end.column+=j}};this.split=function(b,c){var j=this.getNextFoldTo(b,c).fold,a=this.folds,e=this.foldData;if(!j)return null;var j=a.indexOf(j),k=a[j-1];this.end.row=k.end.row;this.end.column=k.end.column;a=a.splice(j,
a.length-j);a=new m(e,a);e.splice(e.indexOf(this)+1,0,a);return a};this.merge=function(b){for(var c=b.folds,j=0;j<c.length;j++)this.addFold(c[j]);c=this.foldData;c.splice(c.indexOf(b),1)};this.toString=function(){var b=[this.range.toString()+": ["];this.folds.forEach(function(c){b.push("  "+c.toString())});b.push("]");return b.join("\n")};this.idxToPosition=function(b){for(var c=0,j,a=0;a<this.folds.length;a++){j=this.folds[a];b-=j.start.column-c;if(b<0)return{row:j.start.row,column:j.start.column+
b};b-=j.placeholder.length;if(b<0)return j.start;c=j.end.column}return{row:this.end.row,column:this.end.column+b}}}).call(m.prototype);h.FoldLine=m});
define("ace/edit_session/fold",["require","exports","module"],function(c,h){var m=h.Fold=function(b,c){this.foldLine=null;this.placeholder=c;this.range=b;this.start=b.start;this.end=b.end;this.sameRow=b.start.row==b.end.row;this.subFolds=[]};(function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()};this.setFoldLine=function(b){this.foldLine=b;this.subFolds.forEach(function(c){c.setFoldLine(b)})};this.clone=function(){var b=this.range.clone(),c=new m(b,this.placeholder);
this.subFolds.forEach(function(b){c.subFolds.push(b.clone())});return c}}).call(m.prototype)});
define("ace/search","require,exports,module,pilot/lang,pilot/oop,ace/range".split(","),function(c,h){var m=c("pilot/lang"),b=c("pilot/oop"),f=c("ace/range").Range,n=function(){this.$options={needle:"",backwards:false,wrap:false,caseSensitive:false,wholeWord:false,scope:n.ALL,regExp:false}};n.ALL=1;n.SELECTION=2;(function(){this.set=function(c){b.mixin(this.$options,c);return this};this.getOptions=function(){return m.copyObject(this.$options)};this.find=function(b){if(!this.$options.needle)return null;
var a=null;(this.$options.backwards?this.$backwardMatchIterator(b):this.$forwardMatchIterator(b)).forEach(function(b){a=b;return true});return a};this.findAll=function(b){if(!this.$options.needle)return[];var a=[];(this.$options.backwards?this.$backwardMatchIterator(b):this.$forwardMatchIterator(b)).forEach(function(b){a.push(b)});return a};this.replace=function(b,a){var c=this.$assembleRegExp(),f=c.exec(b);return f&&f[0].length==b.length?this.$options.regExp?b.replace(c,a):a:null};this.$forwardMatchIterator=
function(b){var a=this.$assembleRegExp(),c=this;return{forEach:function(f){c.$forwardLineIterator(b).forEach(function(b,j,h){j&&(b=b.substring(j));var n=[];b.replace(a,function(a){n.push({str:a,offset:j+arguments[arguments.length-2]});return a});for(b=0;b<n.length;b++){var m=n[b],m=c.$rangeFromMatch(h,m.offset,m.str.length);if(f(m))return true}})}}};this.$backwardMatchIterator=function(b){var a=this.$assembleRegExp(),c=this;return{forEach:function(f){c.$backwardLineIterator(b).forEach(function(b,
j,h){j&&(b=b.substring(j));var n=[];b.replace(a,function(a,b){n.push({str:a,offset:j+b});return a});for(b=n.length-1;b>=0;b--){var m=n[b],m=c.$rangeFromMatch(h,m.offset,m.str.length);if(f(m))return true}})}}};this.$rangeFromMatch=function(b,a,c){return new f(b,a,b,a+c)};this.$assembleRegExp=function(){var b=this.$options.regExp?this.$options.needle:m.escapeRegExp(this.$options.needle);this.$options.wholeWord&&(b="\\b"+b+"\\b");var a="g";this.$options.caseSensitive||(a+="i");return RegExp(b,a)};this.$forwardLineIterator=
function(b){function a(a){var n=b.getLine(a);c&&a==f.end.row&&(n=n.substring(0,f.end.column));p&&a==h.row&&(n=n.substring(0,h.column));return n}var c=this.$options.scope==n.SELECTION,f=b.getSelection().getRange(),h=b.getSelection().getCursor(),m=c?f.start.row:0,t=c?f.start.column:0,r=c?f.end.row:b.getLength()-1,x=this.$options.wrap,p=false;return{forEach:function(b){var c=h.row,e=a(c),f=h.column,k=false;for(p=false;!b(e,f,c);){if(k)break;c++;f=0;if(c>r)if(x)c=m,f=t,p=true;else break;c==h.row&&(k=
true);e=a(c)}}}};this.$backwardLineIterator=function(b){var a=this.$options.scope==n.SELECTION,c=b.getSelection().getRange(),f=a?c.end:c.start,h=a?c.start.row:0,m=a?c.start.column:0,t=a?c.end.row:b.getLength()-1,r=this.$options.wrap;return{forEach:function(n){for(var p=f.row,w=b.getLine(p).substring(0,f.column),A=0,z=false,s=false;!n(w,A,p);){if(z)break;p--;A=0;if(p<h)if(r)p=t,s=true;else break;p==f.row&&(z=true);w=b.getLine(p);a&&(p==h?A=m:p==t&&(w=w.substring(0,c.end.column)));if(s&&p==f.row)A=
f.column}}}}}).call(n.prototype);h.Search=n});
define("ace/undomanager",["require","exports","module"],function(c,h){var m=function(){this.reset()};(function(){this.execute=function(b){var c=b.args[0];this.$doc=b.args[1];this.$undoStack.push(c);this.$redoStack=[]};this.undo=function(b){var c=this.$undoStack.pop(),h=null;c&&(h=this.$doc.undoChanges(c,b),this.$redoStack.push(c));return h};this.redo=function(b){var c=this.$redoStack.pop(),h=null;c&&(h=this.$doc.redoChanges(c,b),this.$undoStack.push(c));return h};this.reset=function(){this.$undoStack=
[];this.$redoStack=[]};this.hasUndo=function(){return this.$undoStack.length>0};this.hasRedo=function(){return this.$redoStack.length>0}}).call(m.prototype);h.UndoManager=m});
define("ace/virtual_renderer","require,exports,module,pilot/oop,pilot/dom,pilot/event,pilot/useragent,ace/layer/gutter,ace/layer/marker,ace/layer/text,ace/layer/cursor,ace/scrollbar,ace/renderloop,pilot/event_emitter,text/ace/css/editor.css".split(","),function(c,h){var m=c("pilot/oop"),b=c("pilot/dom"),f=c("pilot/event"),n=c("pilot/useragent"),j=c("ace/layer/gutter").Gutter,a=c("ace/layer/marker").Marker,e=c("ace/layer/text").Text,k=c("ace/layer/cursor").Cursor,v=c("ace/scrollbar").ScrollBar,y=c("ace/renderloop").RenderLoop,
t=c("pilot/event_emitter").EventEmitter,r=c("text/ace/css/editor.css");b.importCssString(r);r=function(c,h){this.container=c;b.addCssClass(this.container,"ace_editor");this.setTheme(h);this.$gutter=b.createElement("div");this.$gutter.className="ace_gutter";this.container.appendChild(this.$gutter);this.scroller=b.createElement("div");this.scroller.className="ace_scroller";this.container.appendChild(this.scroller);this.content=b.createElement("div");this.content.className="ace_content";this.scroller.appendChild(this.content);
this.$gutterLayer=new j(this.$gutter);this.$markerBack=new a(this.content);var n=this.$textLayer=new e(this.content);this.canvas=n.element;this.$markerFront=new a(this.content);this.characterWidth=n.getCharacterWidth();this.lineHeight=n.getLineHeight();this.$cursorLayer=new k(this.content);this.$cursorPadding=8;this.$horizScrollAlwaysVisible=this.$horizScroll=true;this.scrollBar=new v(c);this.scrollBar.addEventListener("scroll",this.onScroll.bind(this));this.scrollTop=0;this.cursorPos={row:0,column:0};
var m=this;this.$textLayer.addEventListener("changeCharaterSize",function(){m.characterWidth=n.getCharacterWidth();m.lineHeight=n.getLineHeight();m.$updatePrintMargin();m.onResize(true);m.$loop.schedule(m.CHANGE_FULL)});f.addListener(this.$gutter,"click",this.$onGutterClick.bind(this));f.addListener(this.$gutter,"dblclick",this.$onGutterClick.bind(this));this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0};this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,
characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1};this.$loop=new y(this.$renderChanges.bind(this));this.$loop.schedule(this.CHANGE_FULL);this.setPadding(4);this.$updatePrintMargin()};(function(){this.showGutter=true;this.CHANGE_CURSOR=1;this.CHANGE_MARKER=2;this.CHANGE_GUTTER=4;this.CHANGE_SCROLL=8;this.CHANGE_LINES=16;this.CHANGE_TEXT=32;this.CHANGE_SIZE=64;this.CHANGE_MARKER_BACK=128;this.CHANGE_MARKER_FRONT=256;this.CHANGE_FULL=512;m.implement(this,t);this.setSession=function(a){this.session=
a;this.$cursorLayer.setSession(a);this.$markerBack.setSession(a);this.$markerFront.setSession(a);this.$gutterLayer.setSession(a);this.$textLayer.setSession(a);this.$loop.schedule(this.CHANGE_FULL)};this.updateLines=function(a,b){b===void 0&&(b=Infinity);if(this.$changedLines){if(this.$changedLines.firstRow>a)this.$changedLines.firstRow=a;if(this.$changedLines.lastRow<b)this.$changedLines.lastRow=b}else this.$changedLines={firstRow:a,lastRow:b};this.$loop.schedule(this.CHANGE_LINES)};this.updateText=
function(){this.$loop.schedule(this.CHANGE_TEXT)};this.updateFull=function(){this.$loop.schedule(this.CHANGE_FULL)};this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()};this.onResize=function(a){var c=this.CHANGE_SIZE,e=this.$size,f=b.getInnerHeight(this.container);if(a||e.height!=f)e.height=f,this.scroller.style.height=f+"px",e.scrollerHeight=this.scroller.clientHeight,this.scrollBar.setHeight(e.scrollerHeight),this.session&&(this.scrollToY(this.getScrollTop()),c|=this.CHANGE_FULL);
f=b.getInnerWidth(this.container);if(a||e.width!=f){e.width=f;var k=this.showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=k+"px";e.scrollerWidth=Math.max(0,f-k-this.scrollBar.getWidth());this.scroller.style.width=e.scrollerWidth+"px";if(this.session.getUseWrapMode()&&this.adjustWrapLimit()||a)c|=this.CHANGE_FULL}this.$loop.schedule(c)};this.adjustWrapLimit=function(){return this.session.adjustWrapLimit(Math.floor((this.$size.scrollerWidth-this.$padding*2)/this.characterWidth)-1)};this.$onGutterClick=
function(a){var b=f.getDocumentX(a),c=f.getDocumentY(a);this._dispatchEvent("gutter"+a.type,{row:this.screenToTextCoordinates(b,c).row,htmlEvent:a})};this.setShowInvisibles=function(a){this.$textLayer.setShowInvisibles(a)&&this.$loop.schedule(this.CHANGE_TEXT)};this.getShowInvisibles=function(){return this.$textLayer.showInvisibles};this.$showPrintMargin=true;this.setShowPrintMargin=function(a){this.$showPrintMargin=a;this.$updatePrintMargin()};this.getShowPrintMargin=function(){return this.$showPrintMargin};
this.$printMarginColumn=80;this.setPrintMarginColumn=function(a){this.$printMarginColumn=a;this.$updatePrintMargin()};this.getPrintMarginColumn=function(){return this.$printMarginColumn};this.getShowGutter=function(){return this.showGutter};this.setShowGutter=function(a){if(this.showGutter!==a)this.$gutter.style.display=a?"block":"none",this.showGutter=a,this.onResize(true)};this.$updatePrintMargin=function(){var a;if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl)a=b.createElement("div"),
a.className="ace_print_margin_layer",this.$printMarginEl=b.createElement("div"),this.$printMarginEl.className="ace_print_margin",a.appendChild(this.$printMarginEl),this.content.insertBefore(a,this.$textLayer.element);a=this.$printMarginEl.style;a.left=this.characterWidth*this.$printMarginColumn+this.$padding*2+"px";a.visibility=this.$showPrintMargin?"visible":"hidden"}};this.getContainerElement=function(){return this.container};this.getMouseEventTarget=function(){return this.content};this.getTextAreaContainer=
function(){return this.container};this.moveTextAreaToCursor=function(a){if(!n.isIE){var b=this.$cursorLayer.getPixelPosition();if(b){var c=this.content.getBoundingClientRect(),e=this.layerConfig.offset;a.style.left=c.left+b.left+this.$padding+"px";a.style.top=c.top+b.top-this.scrollTop+e+"px"}}};this.getFirstVisibleRow=function(){return this.layerConfig.firstRow};this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)};this.getLastFullyVisibleRow=
function(){return this.layerConfig.firstRow-1+Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight)};this.getLastVisibleRow=function(){return this.layerConfig.lastRow};this.$padding=null;this.setPadding=function(a){this.$padding=a;this.$textLayer.setPadding(a);this.$cursorLayer.setPadding(a);this.$markerFront.setPadding(a);this.$markerBack.setPadding(a);this.$loop.schedule(this.CHANGE_FULL);this.$updatePrintMargin()};this.getHScrollBarAlwaysVisible=function(){return this.$horizScrollAlwaysVisible};
this.setHScrollBarAlwaysVisible=function(a){if(this.$horizScrollAlwaysVisible!=a)this.$horizScrollAlwaysVisible=a,(!this.$horizScrollAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)};this.onScroll=function(a){this.scrollToY(a.data)};this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight);this.scrollBar.setScrollTop(this.scrollTop)};this.$renderChanges=function(a){a&&this.session&&((a&this.CHANGE_FULL||a&this.CHANGE_SIZE||a&this.CHANGE_TEXT||
a&this.CHANGE_LINES||a&this.CHANGE_SCROLL)&&this.$computeLayerConfig(),a&this.CHANGE_FULL?(this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$updateScrollBar()):a&this.CHANGE_SCROLL?(a&this.CHANGE_TEXT||a&this.CHANGE_LINES?this.$textLayer.update(this.layerConfig):this.$textLayer.scrollLines(this.layerConfig),this.showGutter&&
this.$gutterLayer.update(this.layerConfig),this.$markerBack.update(this.layerConfig),this.$markerFront.update(this.layerConfig),this.$cursorLayer.update(this.layerConfig),this.$updateScrollBar()):(a&this.CHANGE_TEXT?(this.$textLayer.update(this.layerConfig),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):a&this.CHANGE_LINES?(this.$updateLines(),this.$updateScrollBar(),this.showGutter&&this.$gutterLayer.update(this.layerConfig)):a&this.CHANGE_GUTTER&&this.showGutter&&this.$gutterLayer.update(this.layerConfig),
a&this.CHANGE_CURSOR&&this.$cursorLayer.update(this.layerConfig),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(this.layerConfig),a&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(this.layerConfig),a&this.CHANGE_SIZE&&this.$updateScrollBar()))};this.$computeLayerConfig=function(){var a=this.session,b=this.scrollTop%this.lineHeight,c=this.$size.scrollerHeight+this.lineHeight,e=this.$getLongestLine(),f=this.$horizScrollAlwaysVisible||this.$size.scrollerWidth-
e<0,k=this.$horizScroll!==f;this.$horizScroll=f;if(k)this.scroller.style.overflowX=f?"scroll":"hidden";f=this.session.getScreenLength()*this.lineHeight;this.scrollTop=Math.max(0,Math.min(this.scrollTop,f-this.$size.scrollerHeight));var j=Math.ceil(c/this.lineHeight)-1,h=Math.max(0,Math.round((this.scrollTop-b)/this.lineHeight)),j=h+j,n,b={lineHeight:this.lineHeight},h=a.screenToDocumentRow(h,0);if(n=a.getFoldLine(h))h=n.start.row;n=a.documentToScreenRow(h,0);c=a.getRowHeight(b,h);j=Math.min(a.screenToDocumentRow(j,
0),a.getLength()-1);c=this.$size.scrollerHeight+a.getRowHeight(b,j)+c;b=this.scrollTop-n*this.lineHeight;this.layerConfig={width:e,padding:this.$padding,firstRow:h,firstRowScreen:n,lastRow:j,lineHeight:this.lineHeight,characterWidth:this.characterWidth,minHeight:c,maxHeight:f,offset:b,height:this.$size.scrollerHeight};this.$gutterLayer.element.style.marginTop=-b+"px";this.content.style.marginTop=-b+"px";this.content.style.width=e+"px";this.content.style.height=c+"px";if(this.$desiredScrollLeft)this.scrollToX(this.$desiredScrollLeft),
this.$desiredScrollLeft=0;if(k)this.onResize(true)};this.$updateLines=function(){var a=this.$changedLines.firstRow,b=this.$changedLines.lastRow;this.$changedLines=null;var c=this.layerConfig;if(c.width!=this.$getLongestLine())return this.$textLayer.update(c);!(a>c.lastRow+1)&&!(b<c.firstRow)&&(b===Infinity?(this.showGutter&&this.$gutterLayer.update(c),this.$textLayer.update(c)):this.$textLayer.updateLines(c,a,b))};this.$getLongestLine=function(){var a=this.session.getScreenWidth()+1;this.$textLayer.showInvisibles&&
(a+=1);return Math.max(this.$size.scrollerWidth,Math.round(a*this.characterWidth))};this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(true));this.$loop.schedule(this.CHANGE_MARKER_FRONT)};this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers());this.$loop.schedule(this.CHANGE_MARKER_BACK)};this.addGutterDecoration=function(a,b){this.$gutterLayer.addGutterDecoration(a,b);this.$loop.schedule(this.CHANGE_GUTTER)};this.removeGutterDecoration=
function(a,b){this.$gutterLayer.removeGutterDecoration(a,b);this.$loop.schedule(this.CHANGE_GUTTER)};this.setBreakpoints=function(a){this.$gutterLayer.setBreakpoints(a);this.$loop.schedule(this.CHANGE_GUTTER)};this.setAnnotations=function(a){this.$gutterLayer.setAnnotations(a);this.$loop.schedule(this.CHANGE_GUTTER)};this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)};this.hideCursor=function(){this.$cursorLayer.hideCursor()};this.showCursor=function(){this.$cursorLayer.showCursor()};
this.scrollCursorIntoView=function(){if(this.$size.scrollerHeight!==0){var a=this.$cursorLayer.getPixelPosition(),b=a.left+this.$padding,a=a.top;this.scrollTop>a&&this.scrollToY(a);this.scrollTop+this.$size.scrollerHeight<a+this.lineHeight&&this.scrollToY(a+this.lineHeight-this.$size.scrollerHeight);a=this.scroller.scrollLeft;a>b&&this.scrollToX(b);if(a+this.$size.scrollerWidth<b+this.characterWidth)b>this.layerConfig.width?this.$desiredScrollLeft=b+2*this.characterWidth:this.scrollToX(Math.round(b+
this.characterWidth-this.$size.scrollerWidth))}};this.getScrollTop=function(){return this.scrollTop};this.getScrollLeft=function(){return this.scroller.scrollLeft};this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight};this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)};this.scrollToRow=function(a){this.scrollToY(a*this.lineHeight)};this.scrollToLine=function(a,b){for(var c={lineHeight:this.lineHeight},e=0,
f=1;f<a;f++)e+=this.session.getRowHeight(c,f-1);b&&(e-=this.$size.scrollerHeight/2);this.scrollToY(e)};this.scrollToY=function(a){a=Math.max(0,a);if(this.scrollTop!==a)this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=a};this.scrollToX=function(a){a<=this.$padding&&(a=0);this.scroller.scrollLeft=a};this.scrollBy=function(a,b){b&&this.scrollToY(this.scrollTop+b);a&&this.scrollToX(this.scroller.scrollLeft+a)};this.screenToTextCoordinates=function(a,c){var e=this.scroller.getBoundingClientRect(),
f=Math.round((a+this.scroller.scrollLeft-e.left-this.$padding-b.getPageScrollLeft())/this.characterWidth);return this.session.screenToDocumentPosition(Math.floor((c+this.scrollTop-e.top-b.getPageScrollTop())/this.lineHeight),Math.max(f,0))};this.textToScreenCoordinates=function(a,b){var c=this.scroller.getBoundingClientRect(),e=this.session.documentToScreenPosition(a,b),f=this.$padding+Math.round(e.column*this.characterWidth),e=e.row*this.lineHeight;return{pageX:c.left+f-this.getScrollLeft(),pageY:c.top+
e-this.getScrollTop()}};this.visualizeFocus=function(){b.addCssClass(this.container,"ace_focus")};this.visualizeBlur=function(){b.removeCssClass(this.container,"ace_focus")};this.showComposition=function(){if(!this.$composition)this.$composition=b.createElement("div"),this.$composition.className="ace_composition",this.content.appendChild(this.$composition);this.$composition.innerHTML="&#160;";var a=this.$cursorLayer.getPixelPosition(),c=this.$composition.style;c.top=a.top+"px";c.left=a.left+this.$padding+
"px";c.height=this.lineHeight+"px";this.hideCursor()};this.setCompositionText=function(a){b.setInnerText(this.$composition,a)};this.hideComposition=function(){this.showCursor();if(this.$composition){var a=this.$composition.style;a.top="-10000px";a.left="-10000px"}};this.setTheme=function(a){function e(a){f.$theme&&b.removeCssClass(f.container,f.$theme);f.$theme=a?a.cssClass:null;f.$theme&&b.addCssClass(f.container,f.$theme);if(f.$size)f.$size.width=0,f.onResize()}var f=this;this.$themeValue=a;!a||
typeof a=="string"?c([a||"ace/theme/textmate"],function(a){e(a)}):e(a)};this.getTheme=function(){return this.$themeValue};this.setStyle=function(a){b.addCssClass(this.container,a)};this.unsetStyle=function(a){b.removeCssClass(this.container,a)};this.destroy=function(){this.$textLayer.destroy();this.$cursorLayer.destroy()}}).call(r.prototype);h.VirtualRenderer=r});
define("ace/layer/gutter",["require","exports","module","pilot/dom"],function(c,h){var m=c("pilot/dom"),b=function(b){this.element=m.createElement("div");this.element.className="ace_layer ace_gutter-layer";b.appendChild(this.element);this.$breakpoints=[];this.$annotations=[];this.$decorations=[]};(function(){this.setSession=function(b){this.session=b};this.addGutterDecoration=function(b,c){this.$decorations[b]||(this.$decorations[b]="");this.$decorations[b]+=" ace_"+c};this.removeGutterDecoration=
function(b,c){this.$decorations[b]=this.$decorations[b].replace(" ace_"+c,"")};this.setBreakpoints=function(b){this.$breakpoints=b.concat()};this.setAnnotations=function(b){this.$annotations=[];for(var c in b)if(b.hasOwnProperty(c)){var j=b[c];if(j)for(var a=this.$annotations[c]={text:[]},e=0;e<j.length;e++){var k=j[e];a.text.push(k.text.replace(/"/g,"&quot;").replace(/'/g,"&#8217;").replace(/</,"&lt;"));k=k.type;if(k=="error")a.className="ace_error";else if(k=="warning"&&a.className!="ace_error")a.className=
"ace_warning";else if(k=="info"&&!a.className)a.className="ace_info"}}};this.update=function(b){this.$config=b;for(var c={className:"",text:[]},j=[],a=b.firstRow,e=b.lastRow,k=this.session.getNextFold(a),h=k?k.start.row:Infinity;;){a>h&&(a=k.end.row+1,h=(k=this.session.getNextFold(a))?k.start.row:Infinity);if(a>e)break;var y=this.$annotations[a]||c;j.push("<div class='ace_gutter-cell",this.$decorations[a]||"",this.$breakpoints[a]?" ace_breakpoint ":" ",y.className,"' title='",y.text.join("\n"),"' style='height:",
b.lineHeight,"px;'>",a+1);for(y=this.session.getRowLength(a)-1;y--;)j.push("</div><div class='ace_gutter-cell' style='height:",b.lineHeight,"px'>&brvbar;</div>");j.push("</div>");a++}this.element=m.setInnerHtml(this.element,j.join(""));this.element.style.height=b.minHeight+"px"}}).call(b.prototype);h.Gutter=b});
define("ace/layer/marker",["require","exports","module","ace/range","pilot/dom"],function(c,h){var m=c("ace/range").Range,b=c("pilot/dom"),f=function(c){this.element=b.createElement("div");this.element.className="ace_layer ace_marker-layer";c.appendChild(this.element)};(function(){this.$padding=0;this.setPadding=function(b){this.$padding=b};this.setSession=function(b){this.session=b};this.setMarkers=function(b){this.markers=b};this.update=function(c){if(c=c||this.config){this.config=c;var f=[],a;
for(a in this.markers){var e=this.markers[a],k=e.range.clipRows(c.firstRow,c.lastRow);if(!k.isEmpty())if(k=k.toScreenRange(this.session),e.renderer){var h=this.$getTop(k.start.row,c),m=Math.round(this.$padding+k.start.column*c.characterWidth);e.renderer(f,k,m,h,c)}else k.isMultiLine()?e.type=="text"?this.drawTextMarker(f,k,e.clazz,c):this.drawMultiLineMarker(f,k,e.clazz,c,e.type):this.drawSingleLineMarker(f,k,e.clazz,c,null,e.type)}this.element=b.setInnerHtml(this.element,f.join(""))}};this.$getTop=
function(b,c){return(b-c.firstRowScreen)*c.lineHeight};this.drawTextMarker=function(b,c,a,e){var f=c.start.row,h=new m(f,c.start.column,f,this.session.getScreenLastRowColumn(f));this.drawSingleLineMarker(b,h,a,e,1,"text");f=c.end.row;h=new m(f,0,f,c.end.column);this.drawSingleLineMarker(b,h,a,e,0,"text");for(f=c.start.row+1;f<c.end.row;f++)h.start.row=f,h.end.row=f,h.end.column=this.session.getScreenLastRowColumn(f),this.drawSingleLineMarker(b,h,a,e,1,"text")};this.drawMultiLineMarker=function(b,
c,a,e,f){var f=f==="background"?0:this.$padding,h=e.lineHeight,m=Math.round(e.width-c.start.column*e.characterWidth),t=this.$getTop(c.start.row,e),r=Math.round(f+c.start.column*e.characterWidth);b.push("<div class='",a,"' style='","height:",h,"px;","width:",m,"px;","top:",t,"px;","left:",r,"px;'></div>");t=this.$getTop(c.end.row,e);m=Math.round(c.end.column*e.characterWidth);b.push("<div class='",a,"' style='","height:",h,"px;","width:",m,"px;","top:",t,"px;","left:",f,"px;'></div>");h=(c.end.row-
c.start.row-1)*e.lineHeight;if(!(h<0))t=this.$getTop(c.start.row+1,e),m=e.width,b.push("<div class='",a,"' style='","height:",h,"px;","width:",m,"px;","top:",t,"px;","left:",f,"px;'></div>")};this.drawSingleLineMarker=function(b,c,a,e,f,h){var m=h==="background"?0:this.$padding,t=e.lineHeight,f=h==="background"?e.width:Math.round((c.end.column+(f||0)-c.start.column)*e.characterWidth),h=this.$getTop(c.start.row,e),c=Math.round(m+c.start.column*e.characterWidth);b.push("<div class='",a,"' style='",
"height:",t,"px;","width:",f,"px;","top:",h,"px;","left:",c,"px;'></div>")}}).call(f.prototype);h.Marker=f});
define("ace/layer/text","require,exports,module,pilot/oop,pilot/dom,pilot/lang,pilot/useragent,pilot/event_emitter".split(","),function(c,h){var m=c("pilot/oop"),b=c("pilot/dom"),f=c("pilot/lang"),n=c("pilot/useragent"),j=c("pilot/event_emitter").EventEmitter,a=function(a){this.element=b.createElement("div");this.element.className="ace_layer ace_text-layer";this.element.style.width="auto";a.appendChild(this.element);this.$characterSize=this.$measureSizes()||{width:0,height:0};this.$pollSizeChanges()};
(function(){m.implement(this,j);this.EOF_CHAR="&para;";this.EOL_CHAR="&not;";this.TAB_CHAR="&rarr;";this.SPACE_CHAR="&middot;";this.$padding=0;this.setPadding=function(a){this.$padding=a;this.element.style.padding="0 "+a+"px"};this.getLineHeight=function(){return this.$characterSize.height||1};this.getCharacterWidth=function(){return this.$characterSize.width||1};this.checkForSizeChanges=function(){var a=this.$measureSizes();if(a&&(this.$characterSize.width!==a.width||this.$characterSize.height!==
a.height))this.$characterSize=a,this._dispatchEvent("changeCharaterSize",{data:a})};this.$pollSizeChanges=function(){var a=this;this.$pollSizeChangesTimer=setInterval(function(){a.checkForSizeChanges()},500)};this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1};this.$measureSizes=function(){if(!this.$measureNode){var a=this.$measureNode=b.createElement("div"),c=a.style;c.width=c.height="auto";c.left=c.top="-40000px";c.visibility="hidden";c.position="absolute";c.overflow=
"visible";c.whiteSpace="nowrap";a.innerHTML=f.stringRepeat("Xy",1E3);if(document.body)document.body.appendChild(a);else{for(c=this.element.parentNode;!b.hasCssClass(c,"ace_editor");)c=c.parentNode;c.appendChild(a)}}var c=this.$measureNode.style,a=b.computedStyle(this.element),j;for(j in this.$fontStyles)c[j]=a[j];j={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/2E3};return j.width==0&&j.height==0?null:j};this.setSession=function(a){this.session=a};this.showInvisibles=false;
this.setShowInvisibles=function(a){if(this.showInvisibles==a)return false;this.showInvisibles=a;return true};this.$tabStrings=[];this.$computeTabString=function(){for(var a=this.session.getTabSize(),b=this.$tabStrings=[0],c=1;c<a+1;c++)this.showInvisibles?b.push("<span class='ace_invisible'>"+this.TAB_CHAR+Array(c).join("&#160;")+"</span>"):b.push(Array(c+1).join("&#160;"))};this.updateLines=function(a,c,f){this.$computeTabString();(this.config.lastRow!=a.lastRow||this.config.firstRow!=a.firstRow)&&
this.scrollLines(a);this.config=a;for(var j=Math.max(c,a.firstRow),f=Math.min(f,a.lastRow),c=this.element.childNodes,h=0,a=a.firstRow;a<j;a++){var n=this.session.getFoldLine(a);if(n)if(n.containsRow(j))break;else a=n.end.row;h++}for(;j<=f;j++)if(a=c[h++]){var n=[],m=this.session.getTokens(j,j);this.$renderLine(n,j,m[0].tokens,true);b.setInnerHtml(a,n.join(""));j=this.session.getRowFoldEnd(j)}};this.scrollLines=function(a){this.$computeTabString();var b=this.config;this.config=a;if(!b||b.lastRow<a.firstRow)return this.update(a);
if(a.lastRow<b.firstRow)return this.update(a);var c=this.element;if(b.firstRow<a.firstRow)for(var f=this.session.getFoldedRowCount(b.firstRow,a.firstRow-1);f>0;f--)c.removeChild(c.firstChild);if(b.lastRow>a.lastRow)for(f=this.session.getFoldedRowCount(a.lastRow+1,b.lastRow);f>0;f--)c.removeChild(c.lastChild);a.firstRow<b.firstRow&&(f=this.$renderLinesFragment(a,a.firstRow,b.firstRow-1),c.firstChild?c.insertBefore(f,c.firstChild):c.appendChild(f));a.lastRow>b.lastRow&&(f=this.$renderLinesFragment(a,
b.lastRow+1,a.lastRow),c.appendChild(f))};this.$renderLinesFragment=function(a,c,f){for(var a=document.createDocumentFragment(),j=this.session.getNextFold(c),h=j?j.start.row:Infinity;;){c>h&&(c=j.end.row+1,h=(j=this.session.getNextFold(c))?j.start.row:Infinity);if(c>f)break;var n=b.createElement("div"),m=[],p=this.session.getTokens(c,c);p.length==1&&this.$renderLine(m,c,p[0].tokens,false);n.innerHTML=m.join("");for(n=n.childNodes;n.length;)a.appendChild(n[0]);c++}return a};this.update=function(a){this.$computeTabString();
this.config=a;for(var c=[],f=a.lastRow,a=a.firstRow,j=this.session.getNextFold(a),h=j?j.start.row:Infinity;;){a>h&&(a=j.end.row+1,h=(j=this.session.getNextFold(a))?j.start.row:Infinity);if(a>f)break;var n=this.session.getTokens(a,a);n.length==1&&this.$renderLine(c,a,n[0].tokens,false);a++}this.element=b.setInnerHtml(this.element,c.join(""))};this.$textToken={text:true,rparen:true,lparen:true};this.$renderToken=function(a,b,c,f){var j=this,h=f.replace(/\t|&|<|( +)|([\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000])|[\u1100-\u115F]|[\u11A3-\u11A7]|[\u11FA-\u11FF]|[\u2329-\u232A]|[\u2E80-\u2E99]|[\u2E9B-\u2EF3]|[\u2F00-\u2FD5]|[\u2FF0-\u2FFB]|[\u3000-\u303E]|[\u3041-\u3096]|[\u3099-\u30FF]|[\u3105-\u312D]|[\u3131-\u318E]|[\u3190-\u31BA]|[\u31C0-\u31E3]|[\u31F0-\u321E]|[\u3220-\u3247]|[\u3250-\u32FE]|[\u3300-\u4DBF]|[\u4E00-\uA48C]|[\uA490-\uA4C6]|[\uA960-\uA97C]|[\uAC00-\uD7A3]|[\uD7B0-\uD7C6]|[\uD7CB-\uD7FB]|[\uF900-\uFAFF]|[\uFE10-\uFE19]|[\uFE30-\uFE52]|[\uFE54-\uFE66]|[\uFE68-\uFE6B]|[\uFF01-\uFF60]|[\uFFE0-\uFFE6]/g,
function(a,c,e,f){return a.charCodeAt(0)==32?Array(a.length+1).join("&#160;"):a=="\t"?(a=j.session.getScreenTabSize(b+f),b+=a-1,j.$tabStrings[a]):a=="&"?n.isOldGecko?"&":"&amp;":a=="<"?"&lt;":a.match(/[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/)?j.showInvisibles?"<span class='ace_invisible'>"+Array(a.length+1).join(j.SPACE_CHAR)+"</span>":"&#160;":(b+=1,"<span class='ace_cjk' style='width:"+j.config.characterWidth*2+"px'>"+a+"</span>")});
this.$textToken[c.type]?a.push(h):(c="ace_"+c.type.replace(/\./g," ace_"),a.push("<span class='",c,"'>",h,"</span>"));return b+f.length};this.$renderLineCore=function(a,b,c,f,j){var h=0,n=0,m,w=0;m=!f||f.length==0?Number.MAX_VALUE:f[0];j||a.push("<div class='ace_line' style='height:",this.config.lineHeight,"px","'>");for(var A=0;A<c.length;A++){var z=c[A],s=z.value;if(h+s.length<m)w=this.$renderToken(a,w,z,s),h+=s.length;else{for(;h+s.length>=m;)this.$renderToken(a,w,z,s.substring(0,m-h)),s=s.substring(m-
h),h=m,j||a.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px","'>"),n++,w=0,m=f[n]||Number.MAX_VALUE;s.length!=0&&(h+=s.length,w=this.$renderToken(a,w,z,s))}}this.showInvisibles&&(b!==this.session.getLength()-1?a.push("<span class='ace_invisible'>"+this.EOL_CHAR+"</span>"):a.push("<span class='ace_invisible'>"+this.EOF_CHAR+"</span>"));a.push("</div>")};this.$renderLine=function(a,b,c,f){if(this.session.isRowFolded(b))this.$renderFoldLine(a,b,c,f);else{var j=this.session.getRowSplitData(b);
this.$renderLineCore(a,b,c,j,f)}};this.$renderFoldLine=function(a,b,c,f){var j=this.session.getFoldLine(b),h=[];j.walk(function(a,b,e,f,j){if(a)h.push({type:"fold",value:a});else{if(j)c=this.session.getTokens(b,b)[0].tokens;if(c.length!=0)a:{a=c;for(j=b=0;j+a[b].value.length<f;)if(j+=a[b].value.length,b++,b==a.length)break a;if(j!=f){var k=a[b].value.substring(f-j);k.length>e-f&&(k=k.substring(0,e-f));h.push({type:a[b].type,value:k});j=f+k.length;b+=1}for(;j<e;)k=a[b].value,k.length+j>e&&(k=k.substring(0,
e-j)),h.push({type:a[b].type,value:k}),j+=k.length,b+=1}}}.bind(this),j.end.row,this.session.getLine(j.end.row).length);this.$renderLineCore(a,b,h,this.session.$useWrapMode?this.session.$wrapData[b]:null,f)};this.destroy=function(){clearInterval(this.$pollSizeChangesTimer);this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode);delete this.$measureNode}}).call(a.prototype);h.Text=a});
define("ace/layer/cursor",["require","exports","module","pilot/dom"],function(c,h){var m=c("pilot/dom"),b=function(b){this.element=m.createElement("div");this.element.className="ace_layer ace_cursor-layer";b.appendChild(this.element);this.cursor=m.createElement("div");this.cursor.className="ace_cursor ace_hidden";this.element.appendChild(this.cursor);this.isVisible=false};(function(){this.$padding=0;this.setPadding=function(b){this.$padding=b};this.setSession=function(b){this.session=b};this.hideCursor=
function(){this.isVisible=false;m.addCssClass(this.cursor,"ace_hidden");clearInterval(this.blinkId)};this.showCursor=function(){this.isVisible=true;m.removeCssClass(this.cursor,"ace_hidden");this.cursor.style.visibility="visible";this.restartTimer()};this.restartTimer=function(){clearInterval(this.blinkId);if(this.isVisible){var b=this.cursor;this.blinkId=setInterval(function(){b.style.visibility="hidden";setTimeout(function(){b.style.visibility="visible"},400)},1E3)}};this.getPixelPosition=function(b){if(!this.config||
!this.session)return{left:0,top:0};var c=this.session.documentToScreenPosition(this.session.selection.getCursor());return{left:Math.round(this.$padding+c.column*this.config.characterWidth),top:(c.row-(b?this.config.firstRowScreen:0))*this.config.lineHeight}};this.update=function(b){this.config=b;this.pixelPos=this.getPixelPosition(true);this.cursor.style.left=this.pixelPos.left+"px";this.cursor.style.top=this.pixelPos.top+"px";this.cursor.style.width=b.characterWidth+"px";this.cursor.style.height=
b.lineHeight+"px";b=this.session.getOverwrite();if(b!=this.overwrite)(this.overwrite=b)?m.addCssClass(this.cursor,"ace_overwrite"):m.removeCssClass(this.cursor,"ace_overwrite");this.restartTimer()};this.destroy=function(){clearInterval(this.blinkId)}}).call(b.prototype);h.Cursor=b});
define("ace/scrollbar","require,exports,module,pilot/oop,pilot/dom,pilot/event,pilot/event_emitter".split(","),function(c,h){var m=c("pilot/oop"),b=c("pilot/dom"),f=c("pilot/event"),n=c("pilot/event_emitter").EventEmitter,j=function(a){this.element=b.createElement("div");this.element.className="ace_sb";this.inner=b.createElement("div");this.element.appendChild(this.inner);a.appendChild(this.element);this.width=b.scrollbarWidth();this.element.style.width=(this.width||15)+"px";f.addListener(this.element,
"scroll",this.onScroll.bind(this))};(function(){m.implement(this,n);this.onScroll=function(){this._dispatchEvent("scroll",{data:this.element.scrollTop})};this.getWidth=function(){return this.width};this.setHeight=function(a){this.element.style.height=a+"px"};this.setInnerHeight=function(a){this.inner.style.height=a+"px"};this.setScrollTop=function(a){this.element.scrollTop=a}}).call(j.prototype);h.ScrollBar=j});
define("ace/renderloop",["require","exports","module","pilot/event"],function(c,h){var m=c("pilot/event"),b=function(b){this.onRender=b;this.pending=false;this.changes=0};(function(){this.schedule=function(b){this.changes|=b;if(!this.pending){this.pending=true;var c=this;this.setTimeoutZero(function(){c.pending=false;var b=c.changes;c.changes=0;c.onRender(b)})}};(this.setTimeoutZero=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||
window.msRequestAnimationFrame)?this.setTimeoutZero=this.setTimeoutZero.bind(window):window.postMessage?(this.messageName="zero-timeout-message",this.setTimeoutZero=function(b){if(!this.attached){var c=this;m.addListener(window,"message",function(b){c.callback&&b.data==c.messageName&&(m.stopPropagation(b),c.callback())});this.attached=true}this.callback=b;window.postMessage(this.messageName,"*")}):this.setTimeoutZero=function(b){setTimeout(b,0)}}).call(b.prototype);h.RenderLoop=b});
define("ace/theme/textmate",["require","exports","module","pilot/dom"],function(c,h){c("pilot/dom").importCssString(".ace-tm .ace_editor {  border: 2px solid rgb(159, 159, 159);}.ace-tm .ace_editor.ace_focus {  border: 2px solid #327fbd;}.ace-tm .ace_gutter {  width: 50px;  background: #e8e8e8;  color: #333;  overflow : hidden;}.ace-tm .ace_gutter-layer {  width: 100%;  text-align: right;}.ace-tm .ace_gutter-layer .ace_gutter-cell {  padding-right: 6px;}.ace-tm .ace_print_margin {  width: 1px;  background: #e8e8e8;}.ace-tm .ace_text-layer {  cursor: text;}.ace-tm .ace_cursor {  border-left: 2px solid black;}.ace-tm .ace_cursor.ace_overwrite {  border-left: 0px;  border-bottom: 1px solid black;}        .ace-tm .ace_line .ace_invisible {  color: rgb(191, 191, 191);}.ace-tm .ace_line .ace_keyword {  color: blue;}.ace-tm .ace_line .ace_constant.ace_buildin {  color: rgb(88, 72, 246);}.ace-tm .ace_line .ace_constant.ace_language {  color: rgb(88, 92, 246);}.ace-tm .ace_line .ace_constant.ace_library {  color: rgb(6, 150, 14);}.ace-tm .ace_line .ace_invalid {  background-color: rgb(153, 0, 0);  color: white;}.ace-tm .ace_line .ace_fold {    background-color: #E4E4E4;    border-radius: 3px;}.ace-tm .ace_line .ace_support.ace_function {  color: rgb(60, 76, 114);}.ace-tm .ace_line .ace_support.ace_constant {  color: rgb(6, 150, 14);}.ace-tm .ace_line .ace_support.ace_type,.ace-tm .ace_line .ace_support.ace_class {  color: rgb(109, 121, 222);}.ace-tm .ace_line .ace_keyword.ace_operator {  color: rgb(104, 118, 135);}.ace-tm .ace_line .ace_string {  color: rgb(3, 106, 7);}.ace-tm .ace_line .ace_comment {  color: rgb(76, 136, 107);}.ace-tm .ace_line .ace_comment.ace_doc {  color: rgb(0, 102, 255);}.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {  color: rgb(128, 159, 191);}.ace-tm .ace_line .ace_constant.ace_numeric {  color: rgb(0, 0, 205);}.ace-tm .ace_line .ace_variable {  color: rgb(49, 132, 149);}.ace-tm .ace_line .ace_xml_pe {  color: rgb(104, 104, 91);}.ace-tm .ace_marker-layer .ace_selection {  background: rgb(181, 213, 255);}.ace-tm .ace_marker-layer .ace_step {  background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {  background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {  margin: -1px 0 0 -1px;  border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active_line {  background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_marker-layer .ace_selected_word {  background: rgb(250, 250, 255);  border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_string.ace_regex {  color: rgb(255, 0, 0)}");
h.cssClass="ace-tm"});define("pilot/environment",["require","exports","module","pilot/settings"],function(c,h){var m=c("pilot/settings").settings;h.create=function(){return{settings:m}}});define("text/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints {  color: #000;  position: absolute;  border: 1px solid rgba(230, 230, 230, 0.8);  background: rgba(250, 250, 250, 0.8);  -moz-border-radius-topleft: 10px;  -moz-border-radius-topright: 10px;  border-top-left-radius: 10px; border-top-right-radius: 10px;  z-index: 1000;  padding: 8px;  display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }");
define("text/cockpit/ui/request_view.css",[],".cptRowIn {  display: box; display: -moz-box; display: -webkit-box;  box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;  box-align: center; -moz-box-align: center; -webkit-box-align: center;  color: #333;  background-color: #EEE;  width: 100%;  font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped {  box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;  font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea {  color: #000; font-size: 120%;  background: transparent; padding: 3px;  border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }");
define("text/ace/css/editor.css",[],'.ace_editor {    position: absolute;    overflow: hidden;    font-family: Monaco, "Menlo", "Courier New", monospace;    font-size: 12px;}.ace_scroller {    position: absolute;    overflow-x: scroll;    overflow-y: hidden;}.ace_content {    position: absolute;    box-sizing: border-box;    -moz-box-sizing: border-box;    -webkit-box-sizing: border-box;}.ace_composition {    position: absolute;    background: #555;    color: #DDD;    z-index: 4;}.ace_gutter {    position: absolute;    overflow-x: hidden;    overflow-y: hidden;    height: 100%;}.ace_gutter-cell.ace_error {    background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B");    background-repeat: no-repeat;    background-position: 4px center;}.ace_gutter-cell.ace_warning {    background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B");    background-repeat: no-repeat;    background-position: 4px center;}.ace_editor .ace_sb {    position: absolute;    overflow-x: hidden;    overflow-y: scroll;    right: 0;}.ace_editor .ace_sb div {    position: absolute;    width: 1px;    left: 0;}.ace_editor .ace_print_margin_layer {    z-index: 0;    position: absolute;    overflow: hidden;    margin: 0;    left: 0;    height: 100%;    width: 100%;}.ace_editor .ace_print_margin {    position: absolute;    height: 100%;}.ace_editor textarea {    position: fixed;    z-index: -1;    width: 10px;    height: 30px;    opacity: 0;    background: transparent;    appearance: none;    -moz-appearance: none;    border: none;    resize: none;    outline: none;    overflow: hidden;}.ace_layer {    z-index: 1;    position: absolute;    overflow: hidden;    white-space: nowrap;    height: 100%;    width: 100%;}.ace_text-layer {    color: black;}.ace_cjk {    display: inline-block;    text-align: center;}.ace_cursor-layer {    z-index: 4;    cursor: text;    /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor {    z-index: 4;    position: absolute;}.ace_cursor.ace_hidden {    opacity: 0.2;}.ace_line {    white-space: nowrap;}.ace_marker-layer {    cursor: text;    pointer-events: none;}.ace_marker-layer .ace_step {    position: absolute;    z-index: 3;}.ace_marker-layer .ace_selection {    position: absolute;    z-index: 4;}.ace_marker-layer .ace_bracket {    position: absolute;    z-index: 5;}.ace_marker-layer .ace_active_line {    position: absolute;    z-index: 2;}.ace_marker-layer .ace_selected_word {    position: absolute;    z-index: 6;    box-sizing: border-box;    -moz-box-sizing: border-box;    -webkit-box-sizing: border-box;}.ace_line .ace_fold {    cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {  cursor: move;}');
define("text/build/demo/styles.css",[],"html {    height: 100%;    width: 100%;    overflow: hidden;}body {    overflow: hidden;    margin: 0;    padding: 0;    height: 100%;    width: 100%;    font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;    font-size: 12px;    background: rgb(14, 98, 165);    color: white;}#logo {    padding: 15px;    margin-left: 65px;}#editor {    position: absolute;    top:  0px;    left: 280px;    bottom: 0px;    right: 0px;    background: white;}#controls {    padding: 5px;}#controls td {    text-align: right;}#controls td + td {    text-align: left;}#cockpitInput {    position: absolute;    left: 280px;    right: 0px;    bottom: 0;    border: none; outline: none;    font-family: consolas, courier, monospace;    font-size: 120%;}#cockpitOutput {    padding: 10px;    margin: 0 15px;    border: 1px solid #AAA;    -moz-border-radius-topleft: 10px;    -moz-border-radius-topright: 10px;    border-top-left-radius: 4px; border-top-right-radius: 4px;    background: #DDD; color: #000;}");
define("text/build_support/style.css",[],"body {    margin:0;    padding:0;    background-color:#e6f5fc;    }H2, H3, H4 {    font-family:Trebuchet MS;    font-weight:bold;    margin:0;    padding:0;}H2 {    font-size:28px;    color:#263842;    padding-bottom:6px;}H3 {    font-family:Trebuchet MS;    font-weight:bold;    font-size:22px;    color:#253741;    margin-top:43px;    margin-bottom:8px;}H4 {    font-family:Trebuchet MS;    font-weight:bold;    font-size:21px;    color:#222222;    margin-bottom:4px;}P {    padding:13px 0;    margin:0;    line-height:22px;}UL{    line-height : 22px;}PRE{    background : #333;    color : white;    padding : 10px;}#header {    height : 227px;    position:relative;    overflow:hidden;    background: url(images/background.png) repeat-x 0 0;    border-bottom:1px solid #c9e8fa;   }#header .content .signature {    font-family:Trebuchet MS;    font-size:11px;    color:#ebe4d6;    position:absolute;    bottom:5px;    right:42px;    letter-spacing : 1px;}.content {    width:970px;    position:relative;    overflow:hidden;    margin:0 auto;}#header .content {    height:184px;    margin-top:22px;}#header .content .logo {    width  : 282px;    height : 184px;    background:url(images/logo.png) no-repeat 0 0;    position:absolute;    top:0;    left:0;}#header .content .title {    width  : 605px;    height : 58px;    background:url(images/ace.png) no-repeat 0 0;    position:absolute;    top:98px;    left:329px;}#wrapper {    background:url(images/body_background.png) repeat-x 0 0;    min-height:250px;}#wrapper .content {    font-family:Arial;    font-size:14px;    color:#222222;    width:1000px;}#wrapper .content .column1 {    position:relative;    overflow:hidden;    float:left;    width:315px;    margin-right:31px;}#wrapper .content .column2 {    position:relative;    overflow:hidden;    float:left;    width:600px;    padding-top:47px;}.fork_on_github {    width:310px;    height:80px;    background:url(images/fork_on_github.png) no-repeat 0 0;    position:relative;    overflow:hidden;    margin-top:49px;    cursor:pointer;}.fork_on_github:hover {    background-position:0 -80px;}.divider {    height:3px;    background-color:#bedaea;    margin-bottom:3px;}.menu {    padding:23px 0 0 24px;}UL.content-list {    padding:15px;    margin:0;}UL.menu-list {    padding:0;    margin:0 0 20px 0;    list-style-type:none;    line-height : 16px;}UL.menu-list LI {    color:#2557b4;    font-family:Trebuchet MS;    font-size:14px;    padding:7px 0;    border-bottom:1px dotted #d6e2e7;}UL.menu-list LI:last-child {    border-bottom:0;}A {    color:#2557b4;    text-decoration:none;}A:hover {    text-decoration:underline;}P#first{    background : rgba(255,255,255,0.5);    padding : 20px;    font-size : 16px;    line-height : 24px;    margin : 0 0 20px 0;}#footer {    height:40px;    position:relative;    overflow:hidden;    background:url(images/bottombar.png) repeat-x 0 0;    position:relative;    margin-top:40px;}UL.menu-footer {    padding:0;    margin:8px 11px 0 0;    list-style-type:none;    float:right;}UL.menu-footer LI {    color:white;    font-family:Arial;    font-size:12px;    display:inline-block;    margin:0 1px;}UL.menu-footer LI A {    color:#8dd0ff;    text-decoration:none;}UL.menu-footer LI A:hover {    text-decoration:underline;}");
define("text/demo/styles.css",[],"html {    height: 100%;    width: 100%;    overflow: hidden;}body {    overflow: hidden;    margin: 0;    padding: 0;    height: 100%;    width: 100%;    font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;    font-size: 12px;    background: rgb(14, 98, 165);    color: white;}#logo {    padding: 15px;    margin-left: 65px;}#editor {    position: absolute;    top:  0px;    left: 280px;    bottom: 0px;    right: 0px;    background: white;}#controls {    padding: 5px;}#controls td {    text-align: right;}#controls td + td {    text-align: left;}#cockpitInput {    position: absolute;    left: 280px;    right: 0px;    bottom: 0;    border: none; outline: none;    font-family: consolas, courier, monospace;    font-size: 120%;}#cockpitOutput {    padding: 10px;    margin: 0 15px;    border: 1px solid #AAA;    -moz-border-radius-topleft: 10px;    -moz-border-radius-topright: 10px;    border-top-left-radius: 4px; border-top-right-radius: 4px;    background: #DDD; color: #000;}");
define("text/deps/csslint/demos/demo.css",[],'@charset "UTF-8";@import url("booya.css") print,screen;@import "whatup.css" screen;@import "wicked.css";@namespace "http://www.w3.org/1999/xhtml";@namespace svg "http://www.w3.org/2000/svg";li.inline #foo {  background: url("something.png");  display: inline;  padding-left: 3px;  padding-right: 7px;  border-right: 1px dotted #066;}li.last.first {  display: inline;  padding-left: 3px !important;  padding-right: 3px;  border-right: 0px;}@media print {    li.inline {      color: black;    }@charset "UTF-8"; @page {  margin: 10%;  counter-increment: page;  @top-center {    font-family: sans-serif;    font-weight: bold;    font-size: 2em;    content: counter(page);  }}');
define("text/deps/requirejs/dist/ie.css",[],"body .sect {    display: none;}#content ul.index {    list-style: none;}");define("text/deps/requirejs/dist/main.css",[],'@font-face {    font-family: Inconsolata;    src: url("fonts/Inconsolata.ttf");}* {    -moz-box-sizing: border-box;    -webkit-box-sizing: border-box;    box-sizing: border-box;    margin: 0;    padding: 0;}body {    font-size: 12px;    line-height: 21px;    background-color: #fff;    font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;    color: #0a0a0a;}#wrapper {    margin: 0;}#grid {    position: fixed;    top: 0;    left: 0;    width: 796px;    background-image: url("i/grid.png");    z-index: 100;}pre {    line-height: 18px;    font-size: 13px;    margin: 7px 0 21px;    padding: 5px 10px;    overflow: auto;    background-color: #fafafa;    border: 1px solid #e6e6e6;    -moz-border-radius: 5px;    -webkit-border-radius: 5px;    border-radius: 5px;    -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);    -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);}/*    typography stuff*/.mono {    font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}.sans {    font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;}.serif {    font-family: "Georgia", Times New Roman, Times, serif;}a {    color: #2e87dd;    text-decoration: none;}a:hover {    text-decoration: underline;}/*    navigation*/#navBg {    background-color: #f2f2f2;    background-image: url("i/shadow.png");    background-position: right top;    background-repeat: repeat-y;    width: 220px;    position: fixed;    top: 0;    left: 0;    z-index: 0;}#nav {    background-image: url("i/logo.png");    background-repeat: no-repeat;    background-position: center 10px;    width: 220px;    float: left;    margin: 0;    padding: 150px 20px 0;    font-size: 13px;    text-shadow: 1px 1px #fff;    position: relative;    z-index: 1;}#nav .homeImageLink {    position: absolute;    display: block;    top: 10px;    left: 0;    width: 220px;    height: 138px;}#nav ul {    list-style-type:none;    padding: 0;    margin: 21px 0 0 0;}#nav ul li {    width: 100%;}#nav ul li.version {    text-align: center;    color: #4d4d4d;}#nav h1 {    color: #4d4d4d;    text-align: center;    font-size: 15px;    font-weight: normal;    text-transform: uppercase;    letter-spacing: 3px;}span.spacer {    color: #2e87dd;    margin: 0 3px 0 5px;    background-image: url("i/dot.png");    background-repeat: repeat-x;    background-position: left 13px;}/*    icons*/span.icon {    width: 16px;    display: block;    background-image: url("i/sprite.png");    background-repeat: no-repeat;}span.icon.home {    background-position: center 5px;}span.icon.start {    background-position: center -27px;}span.icon.download {    background-position: center -59px;}span.icon.api {    background-position: center -89px;}span.icon.optimize {    background-position: center -119px;}span.icon.script {    background-position: center -150px;}span.icon.question {    background-position: center -182px;}span.icon.requirement {    background-position: center -214px;}span.icon.history {    background-position: center -247px;}span.icon.help {    background-position: center -279px;}span.icon.blog {    background-position: center -311px;}span.icon.twitter {    background-position: center -343px;}span.icon.git {    background-position: center -375px;}span.icon.fork {    background-position: center -407px;}/*    content*/#content {    margin: 0 0 0 220px;    padding: 0 20px;    background-color: #fff;    font-family: "Georgia", Times New Roman, Times, serif;    position: relative;}#content p {    padding: 7px 0;    color: #333;    font-size: 14px;}#content h1,#content h2,#content h3,#content h4,#content h5 {    font-weight: normal;    padding: 21px 0 7px;}#content h1 {    font-size: 21px;}#content h2 {    padding: 0 0 18px 0;    margin: 0 0 7px 0;    font-weight: normal;    font-size: 21px;    line-height: 24px;    text-align: center;    color: #222;    background-image: url("i/arrow.png");    background-repeat: no-repeat;    background-position: center bottom;    font-family: "Inconsolata", Andale Mono, Monaco, Monospace;    text-transform: uppercase;    letter-spacing: 2px;    text-shadow: 1px 1px 0 #fff;}#content h2 a {    color: #222;}#content h2 a:hover,#content h3 a:hover,#content h4 a:hover {    text-decoration: none;}span.sectionMark {    display: block;    color: #aaa;    text-shadow: 1px 1px 0 #fff;    font-size: 15px;    font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content h3 {    font-size: 17px;}#content h4 {    padding-top: 0;    font-size: 15px;}#content h5 {    font-size: 10px;}#content ul {    list-style-type: disc;}#content ul,#content ol {    /* border-left: 1px solid #333; */    color: #333;    font-size: 14px;    list-style-position: outside;    margin: 7px 0 21px 0;    /* padding: 0 0 0 28px; */}#content ul {    font-style: italic;}#content ol {    border: none;    list-style-position: inside;    padding: 0;    font-family: "Georgia", Times New Roman, Times, serif;}#content ul ul,#content ol ol {    border: none;    padding: 0;    margin: 0 0 0 28px;}#content .section {    padding: 48px 0;    background-image: url("i/line.png");    background-repeat: no-repeat;    background-position: center bottom;    width: 576px;    margin: 0 auto;}#content .section .subSection {    padding: 0 0 0 48px;    margin: 28px 0 0 0;    display: block;    border-left: 2px solid #ddd;}#content .section:last-child {    background-image: none;}#content .note {    color: #222;    background-color: #ffff99;    padding: 5px 10px;    margin: 7px 0;    display: inline-block;}/*    page directory*/#content #directory.section {    background-color: #fff;    width: 576px;}#content #directory.section ul ul ul {    margin: 0 0 0 48px;}#content #directory.section ul ul li {    background-image: url("i/sprite.png");    background-repeat: no-repeat;    background-position: left -437px;    padding-left: 18px;    font-style: normal;}#content #directory h1 {    padding: 0 0 65px 0;    margin: 0 0 14px 0;    font-weight: normal;    font-size: 21px;    text-align: center;    text-transform: uppercase;    letter-spacing: 2px;    color: #222;    background-image: url("i/arrow-x.png");    background-repeat: no-repeat;    background-position: center bottom;    font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index {    padding: 0;    background-color: transparent;    border: none;    -moz-box-shadow: none;    font-style: normal;    font-family: "Inconsolata", Andale Mono, Monaco, Monospace;}#content ul.index li {    width: 100%;    font-size: 15px;    color: #333;    padding: 0 0 7px 0;}/*    intro page specific*/#content #intro {    width: 576px;    margin: 0 auto;    padding: 21px 0;}#content #intro p,#content #intro h1 {    font-size: 19px;    line-height: 28px;    color: green;    letter-spacing: 2px;    padding: 0 0 28px 0;}#content #intro p:last-child,#content #intro h1:last-child {    padding: 0;}#content #intro p a {    color: green;    text-decoration: underline;}/*    download page*/#content h4 a.download {    -webkit-border-radius: 5px;    -moz-border-radius: 5px;    background-color: #F2F2F2;    background-image: url("i/sprite.png"), -moz-linear-gradient(center top , #FAFAFA 0%, #F2F2F2 100%);    background-image: url("i/sprite.png"), -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fafafa), color-stop(100%, #f2f2f2));    background-position: 7px -58px, center center;    background-repeat: no-repeat, no-repeat;    border: 1px solid #CCCCCC;    color: #333333;    font-size: 12px;    margin: 0 0 0 5px;    padding: 0 10px 0 25px;    text-shadow: 1px 1px 0 #FFFFFF;}/*    footer*/#footer {    color: #4d4d4d;    padding: 65px 20px 20px;    margin: 20px 0 0 220px;    text-align: center;    display: block;    font-size: 13px;    background-image: url("i/arrow-x.png");    background-repeat: no-repeat;    background-position: center top;    background-color: #fff;}#footer .line {    display: block;}#footer .line a {    color: #4d4d4d;    text-decoration: underline;}/*    Pygments manni style*/code {background-color: #fafafa; color: #333;}code .comment {color: green; font-style: italic}code .comment.preproc {color: #099; font-style: normal}code .comment.special {font-weight: bold}code .keyword {color: #069; font-weight: bold}code .keyword.pseudo {font-weight: normal}code .keyword.type {color: #078}code .operator {color: #555}code .operator.word {color: #000; font-weight: bold}code .name.builtin {color: #366}code .name.function {color: #c0f}code .name.class {color: #0a8; font-weight: bold}code .name.namespace {color: #0cf; font-weight: bold}code .name.exception {color: #c00; font-weight: bold}code .name.variable {color: #033}code .name.constant {color: #360}code .name.label {color: #99f}code .name.entity {color: #999; font-weight: bold}code .name.attribute {color: #309}code .name.tag {color: #309; font-weight: bold}code .name.decorator {color: #99f}code .string {color: #c30}code .string.doc {font-style: italic}code .string.interpol {color: #a00}code .string.escape {color: #c30; font-weight: bold}code .string.regex {color: #3aa}code .string.symbol {color: #fc3}code .string.other {color: #c30}code .number {color: #f60}/*    webkit scroll bars*/pre::-webkit-scrollbar {    width: 6px;    height: 6px;}pre::-webkit-scrollbar-button:start:decrement,pre::-webkit-scrollbar-button:end:increment {    display: block;    height: 0;    width: 0;}pre::-webkit-scrollbar-button:vertical:increment,pre::-webkit-scrollbar-button:horizontal:increment {    background-color: transparent;    display: block;    height: 0;    width: 0;}pre::-webkit-scrollbar-track-piece {    -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:vertical {    background-color: #aaa;    -webkit-border-radius: 3px;}pre::-webkit-scrollbar-thumb:horizontal {    background-color: #aaa;    -webkit-border-radius: 3px;}/*    hbox*/.hbox {\tdisplay: -webkit-box;\t-webkit-box-orient: horizontal;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: horizontal;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: horizontal;\tbox-align: stretch;\twidth: 100%;}.hbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.vbox {\tdisplay: -webkit-box;\t-webkit-box-orient: vertical;\t-webkit-box-align: stretch;\tdisplay: -moz-box;\t-moz-box-orient: vertical;\t-moz-box-align: stretch;\tdisplay: box;\tbox-orient: vertical;\tbox-align: stretch;}.vbox > * {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;\tdisplay: block;}.spacer {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.reverse {\t-webkit-box-direction: reverse;\t-moz-box-direction: reverse;\tbox-direction: reverse;}.boxFlex0 {\t-webkit-box-flex: 0;\t-moz-box-flex: 0;\tbox-flex: 0;}.boxFlex1, .boxFlex {\t-webkit-box-flex: 1;\t-moz-box-flex: 1;\tbox-flex: 1;}.boxFlex2 {\t-webkit-box-flex: 2;\t-moz-box-flex: 2;\tbox-flex: 2;}.boxGroup1 {\t-webkit-box-flex-group: 1;\t-moz-box-flex-group: 1;\tbox-flex-group: 1;}.boxGroup2 {\t-webkit-box-flex-group: 2;\t-moz-box-flex-group: 2;\tbox-flex-group: 2;}.start {\t-webkit-box-pack: start;\t-moz-box-pack: start;\tbox-pack: start;}.end {\t-webkit-box-pack: end;\t-moz-box-pack: end;\tbox-pack: end;}.center {\t-webkit-box-pack: center;\t-moz-box-pack: center;\tbox-pack: center;}/*    clearfix*/.clearfix:after {\tcontent: ".";\tdisplay: block;\tclear: both;\tvisibility: hidden;\tline-height: 0;\theight: 0;}html[xmlns] .clearfix {\tdisplay: block;}* html .clearfix {\theight: 1%;}');
define("text/lib/ace/css/editor.css",[],'.ace_editor {    position: absolute;    overflow: hidden;    font-family: Monaco, "Menlo", "Courier New", monospace;    font-size: 12px;}.ace_scroller {    position: absolute;    overflow-x: scroll;    overflow-y: hidden;}.ace_content {    position: absolute;    box-sizing: border-box;    -moz-box-sizing: border-box;    -webkit-box-sizing: border-box;}.ace_composition {    position: absolute;    background: #555;    color: #DDD;    z-index: 4;}.ace_gutter {    position: absolute;    overflow-x: hidden;    overflow-y: hidden;    height: 100%;}.ace_gutter-cell.ace_error {    background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%F5or%F5%87%88%F5nr%F4ns%EBmq%F5z%7F%DDJT%DEKS%DFOW%F1Yc%F2ah%CE(7%CE)8%D18E%DD%40M%F2KZ%EBU%60%F4%60m%DCir%C8%16(%C8%19*%CE%255%F1%3FR%F1%3FS%E6%AB%B5%CA%5DI%CEn%5E%F7%A2%9A%C9G%3E%E0a%5B%F7%89%85%F5yy%F6%82%80%ED%82%80%FF%BF%BF%E3%C4%C4%FF%FF%FF%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%25%00%2C%00%00%00%00%10%00%10%00%00%06p%C0%92pH%2C%1A%8F%C8%D2H%93%E1d4%23%E4%88%D3%09mB%1DN%B48%F5%90%40%60%92G%5B%94%20%3E%22%D2%87%24%FA%20%24%C5%06A%00%20%B1%07%02B%A38%89X.v%17%82%11%13q%10%0Fi%24%0F%8B%10%7BD%12%0Ei%09%92%09%0EpD%18%15%24%0A%9Ci%05%0C%18F%18%0B%07%04%01%04%06%A0H%18%12%0D%14%0D%12%A1I%B3%B4%B5IA%00%3B");    background-repeat: no-repeat;    background-position: 4px center;}.ace_gutter-cell.ace_warning {    background-image: url("data:image/gif,GIF89a%10%00%10%00%D5%00%00%FF%DBr%FF%DE%81%FF%E2%8D%FF%E2%8F%FF%E4%96%FF%E3%97%FF%E5%9D%FF%E6%9E%FF%EE%C1%FF%C8Z%FF%CDk%FF%D0s%FF%D4%81%FF%D5%82%FF%D5%83%FF%DC%97%FF%DE%9D%FF%E7%B8%FF%CCl%7BQ%13%80U%15%82W%16%81U%16%89%5B%18%87%5B%18%8C%5E%1A%94d%1D%C5%83-%C9%87%2F%C6%84.%C6%85.%CD%8B2%C9%871%CB%8A3%CD%8B5%DC%98%3F%DF%9BB%E0%9CC%E1%A5U%CB%871%CF%8B5%D1%8D6%DB%97%40%DF%9AB%DD%99B%E3%B0p%E7%CC%AE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00!%F9%04%01%00%00%2F%00%2C%00%00%00%00%10%00%10%00%00%06a%C0%97pH%2C%1A%8FH%A1%ABTr%25%87%2B%04%82%F4%7C%B9X%91%08%CB%99%1C!%26%13%84*iJ9(%15G%CA%84%14%01%1A%97%0C%03%80%3A%9A%3E%81%84%3E%11%08%B1%8B%20%02%12%0F%18%1A%0F%0A%03\'F%1C%04%0B%10%16%18%10%0B%05%1CF%1D-%06%07%9A%9A-%1EG%1B%A0%A1%A0U%A4%A5%A6BA%00%3B");    background-repeat: no-repeat;    background-position: 4px center;}.ace_editor .ace_sb {    position: absolute;    overflow-x: hidden;    overflow-y: scroll;    right: 0;}.ace_editor .ace_sb div {    position: absolute;    width: 1px;    left: 0;}.ace_editor .ace_print_margin_layer {    z-index: 0;    position: absolute;    overflow: hidden;    margin: 0;    left: 0;    height: 100%;    width: 100%;}.ace_editor .ace_print_margin {    position: absolute;    height: 100%;}.ace_editor textarea {    position: fixed;    z-index: -1;    width: 10px;    height: 30px;    opacity: 0;    background: transparent;    appearance: none;    -moz-appearance: none;    border: none;    resize: none;    outline: none;    overflow: hidden;}.ace_layer {    z-index: 1;    position: absolute;    overflow: hidden;    white-space: nowrap;    height: 100%;    width: 100%;}.ace_text-layer {    color: black;}.ace_cjk {    display: inline-block;    text-align: center;}.ace_cursor-layer {    z-index: 4;    cursor: text;    /* setting pointer-events: none; here will break mouse wheel scrolling in Safari */}.ace_cursor {    z-index: 4;    position: absolute;}.ace_cursor.ace_hidden {    opacity: 0.2;}.ace_line {    white-space: nowrap;}.ace_marker-layer {    cursor: text;    pointer-events: none;}.ace_marker-layer .ace_step {    position: absolute;    z-index: 3;}.ace_marker-layer .ace_selection {    position: absolute;    z-index: 4;}.ace_marker-layer .ace_bracket {    position: absolute;    z-index: 5;}.ace_marker-layer .ace_active_line {    position: absolute;    z-index: 2;}.ace_marker-layer .ace_selected_word {    position: absolute;    z-index: 6;    box-sizing: border-box;    -moz-box-sizing: border-box;    -webkit-box-sizing: border-box;}.ace_line .ace_fold {    cursor: pointer;}.ace_dragging .ace_marker-layer, .ace_dragging .ace_text-layer {  cursor: move;}');
define("text/node_modules/uglify-js/docstyle.css",[],'html { font-family: "Lucida Grande","Trebuchet MS",sans-serif; font-size: 12pt; }body { max-width: 60em; }.title  { text-align: center; }.todo   { color: red; }.done   { color: green; }.tag    { background-color:lightblue; font-weight:normal }.target { }.timestamp { color: grey }.timestamp-kwd { color: CadetBlue }p.verse { margin-left: 3% }pre {  border: 1pt solid #AEBDCC;  background-color: #F3F5F7;  padding: 5pt;  font-family: monospace;  font-size: 90%;  overflow:auto;}pre.src {  background-color: #eee; color: #112; border: 1px solid #000;}table { border-collapse: collapse; }td, th { vertical-align: top; }dt { font-weight: bold; }div.figure { padding: 0.5em; }div.figure p { text-align: center; }.linenr { font-size:smaller }.code-highlighted {background-color:#ffff00;}.org-info-js_info-navigation { border-style:none; }#org-info-js_console-label { font-size:10px; font-weight:bold;  white-space:nowrap; }.org-info-js_search-highlight {background-color:#ffff00; color:#000000;  font-weight:bold; }sup {  vertical-align: baseline;  position: relative;  top: -0.5em;  font-size: 80%;}sup a:link, sup a:visited {  text-decoration: none;  color: #c00;}sup a:before { content: "["; color: #999; }sup a:after { content: "]"; color: #999; }h1.title { border-bottom: 4px solid #000; padding-bottom: 5px; margin-bottom: 2em; }#postamble {  color: #777;  font-size: 90%;  padding-top: 1em; padding-bottom: 1em; border-top: 1px solid #999;  margin-top: 2em;  padding-left: 2em;  padding-right: 2em;  text-align: right;}#postamble p { margin: 0; }#footnotes { border-top: 1px solid #000; }h1 { font-size: 200% }h2 { font-size: 175% }h3 { font-size: 150% }h4 { font-size: 125% }h1, h2, h3, h4 { font-family: "Bookman",Georgia,"Times New Roman",serif; font-weight: normal; }@media print {  html { font-size: 11pt; }}');
define("text/support/cockpit/lib/cockpit/ui/cli_view.css",[],"#cockpitInput { padding-left: 16px; }.cptOutput { overflow: auto; position: absolute; z-index: 999; display: none; }.cptCompletion { padding: 0; position: absolute; z-index: -1000; }.cptCompletion.VALID { background: #FFF; }.cptCompletion.INCOMPLETE { background: #DDD; }.cptCompletion.INVALID { background: #DDD; }.cptCompletion span { color: #FFF; }.cptCompletion span.INCOMPLETE { color: #DDD; border-bottom: 2px dotted #F80; }.cptCompletion span.INVALID { color: #DDD; border-bottom: 2px dotted #F00; }span.cptPrompt { color: #66F; font-weight: bold; }.cptHints {  color: #000;  position: absolute;  border: 1px solid rgba(230, 230, 230, 0.8);  background: rgba(250, 250, 250, 0.8);  -moz-border-radius-topleft: 10px;  -moz-border-radius-topright: 10px;  border-top-left-radius: 10px; border-top-right-radius: 10px;  z-index: 1000;  padding: 8px;  display: none;}.cptFocusPopup { display: block; }.cptFocusPopup.cptNoPopup { display: none; }.cptHints ul { margin: 0; padding: 0 15px; }.cptGt { font-weight: bold; font-size: 120%; }");
define("text/support/cockpit/lib/cockpit/ui/request_view.css",[],".cptRowIn {  display: box; display: -moz-box; display: -webkit-box;  box-orient: horizontal; -moz-box-orient: horizontal; -webkit-box-orient: horizontal;  box-align: center; -moz-box-align: center; -webkit-box-align: center;  color: #333;  background-color: #EEE;  width: 100%;  font-family: consolas, courier, monospace;}.cptRowIn > * { padding-left: 2px; padding-right: 2px; }.cptRowIn > img { cursor: pointer; }.cptHover { display: none; }.cptRowIn:hover > .cptHover { display: block; }.cptRowIn:hover > .cptHover.cptHidden { display: none; }.cptOutTyped {  box-flex: 1; -moz-box-flex: 1; -webkit-box-flex: 1;  font-weight: bold; color: #000; font-size: 120%;}.cptRowOutput { padding-left: 10px; line-height: 1.2em; }.cptRowOutput strong,.cptRowOutput b,.cptRowOutput th,.cptRowOutput h1,.cptRowOutput h2,.cptRowOutput h3 { color: #000; }.cptRowOutput a { font-weight: bold; color: #666; text-decoration: none; }.cptRowOutput a: hover { text-decoration: underline; cursor: pointer; }.cptRowOutput input[type=password],.cptRowOutput input[type=text],.cptRowOutput textarea {  color: #000; font-size: 120%;  background: transparent; padding: 3px;  border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;}.cptRowOutput table,.cptRowOutput td,.cptRowOutput th { border: 0; padding: 0 2px; }.cptRowOutput .right { text-align: right; }");
define("text/tool/Theme.tmpl.css",[],".%cssClass% .ace_editor {  border: 2px solid rgb(159, 159, 159);}.%cssClass% .ace_editor.ace_focus {  border: 2px solid #327fbd;}.%cssClass% .ace_gutter {  width: 50px;  background: #e8e8e8;  color: #333;  overflow : hidden;}.%cssClass% .ace_gutter-layer {  width: 100%;  text-align: right;}.%cssClass% .ace_gutter-layer .ace_gutter-cell {  padding-right: 6px;}.%cssClass% .ace_print_margin {  width: 1px;  background: %printMargin%;}.%cssClass% .ace_scroller {  background-color: %background%;}.%cssClass% .ace_text-layer {  cursor: text;  color: %foreground%;}.%cssClass% .ace_cursor {  border-left: 2px solid %cursor%;}.%cssClass% .ace_cursor.ace_overwrite {  border-left: 0px;  border-bottom: 1px solid %overwrite%;} .%cssClass% .ace_marker-layer .ace_selection {  background: %selection%;}.%cssClass% .ace_marker-layer .ace_step {  background: %step%;}.%cssClass% .ace_marker-layer .ace_bracket {  margin: -1px 0 0 -1px;  border: 1px solid %bracket%;}.%cssClass% .ace_marker-layer .ace_active_line {  background: %active_line%;}       .%cssClass% .ace_invisible {  %invisible%}.%cssClass% .ace_keyword {  %keyword%}.%cssClass% .ace_keyword.ace_operator {  %keyword.operator%}.%cssClass% .ace_constant {  %constant%}.%cssClass% .ace_constant.ace_language {  %constant.language%}.%cssClass% .ace_constant.ace_library {  %constant.library%}.%cssClass% .ace_constant.ace_numeric {  %constant.numeric%}.%cssClass% .ace_invalid {  %invalid%}.%cssClass% .ace_invalid.ace_illegal {  %invalid.illegal%}.%cssClass% .ace_invalid.ace_deprecated {  %invalid.deprecated%}.%cssClass% .ace_support {  %support%}.%cssClass% .ace_support.ace_function {  %support.function%}.%cssClass% .ace_function.ace_buildin {  %function.buildin%}.%cssClass% .ace_string {  %string%}.%cssClass% .ace_string.ace_regexp {  %string.regexp%}.%cssClass% .ace_comment {  %comment%}.%cssClass% .ace_comment.ace_doc {  %comment.doc%}.%cssClass% .ace_comment.ace_doc.ace_tag {  %comment.doc.tag%}.%cssClass% .ace_variable {  %variable%}.%cssClass% .ace_variable.ace_language {  %variable.language%}.%cssClass% .ace_xml_pe {  %xml_pe%}.%cssClass% .ace_collab.ace_user1 {  %collab.user1%   }");
define("text/styles.css",[],"html {    height: 100%;    width: 100%;    overflow: hidden;}body {    overflow: hidden;    margin: 0;    padding: 0;    height: 100%;    width: 100%;    font-family: Arial, Helvetica, sans-serif, Tahoma, Verdana, sans-serif;    font-size: 12px;    background: rgb(14, 98, 165);    color: white;}#logo {    padding: 15px;    margin-left: 65px;}#editor {    position: absolute;    top:  0px;    left: 280px;    bottom: 0px;    right: 0px;    background: white;}#controls {    padding: 5px;}#controls td {    text-align: right;}#controls td + td {    text-align: left;}#cockpitInput {    position: absolute;    left: 280px;    right: 0px;    bottom: 0;    border: none; outline: none;    font-family: consolas, courier, monospace;    font-size: 120%;}#cockpitOutput {    padding: 10px;    margin: 0 15px;    border: 1px solid #AAA;    -moz-border-radius-topleft: 10px;    -moz-border-radius-topright: 10px;    border-top-left-radius: 4px; border-top-right-radius: 4px;    background: #DDD; color: #000;}");
require(["ace/ace"],function(c){window.ace=c});
define("ace/mode/json","require,exports,module,pilot/oop,ace/mode/text,ace/tokenizer,ace/mode/json_highlight_rules,ace/mode/matching_brace_outdent,ace/range,ace/mode/behaviour/cstyle".split(","),function(c,h){var m=c("pilot/oop"),b=c("ace/mode/text").Mode,f=c("ace/tokenizer").Tokenizer,n=c("ace/mode/json_highlight_rules").JsonHighlightRules,j=c("ace/mode/matching_brace_outdent").MatchingBraceOutdent;c("ace/range");var a=c("ace/mode/behaviour/cstyle").CstyleBehaviour,e=function(){this.$tokenizer=new f((new n).getRules());
this.$outdent=new j;this.$behaviour=new a};m.inherits(e,b);(function(){this.getNextLineIndent=function(a,b,c){var e=this.$getIndent(b);this.$tokenizer.getLineTokens(b,a);a=="start"&&b.match(/^.*[\{\(\[]\s*$/)&&(e+=c);return e};this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)};this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}).call(e.prototype);h.Mode=e});
define("ace/mode/json_highlight_rules","require,exports,module,pilot/oop,pilot/lang,ace/mode/text_highlight_rules".split(","),function(c,h){var m=c("pilot/oop");c("pilot/lang");var b=c("ace/mode/text_highlight_rules").TextHighlightRules,f=function(){this.$rules={start:[{token:"string",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",
regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"lparen",regex:"[[({]"},{token:"rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}]}};m.inherits(f,b);h.JsonHighlightRules=f});
define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(c,h){var m=c("ace/range").Range,b=function(){};(function(){this.checkOutdent=function(b,c){return/^\s+$/.test(b)?/^\s*\}/.test(c):false};this.autoOutdent=function(b,c){var j=b.getLine(c).match(/^(\s*\})/);if(!j)return 0;var j=j[1].length,a=b.findMatchingBracket({row:c,column:j});if(!a||a.row==c)return 0;a=this.$getIndent(b.getLine(a.row));b.replace(new m(c,0,c,j-1),a)};this.$getIndent=function(b){return(b=
b.match(/^(\s+)/))?b[1]:""}}).call(b.prototype);h.MatchingBraceOutdent=b});
define("ace/mode/behaviour/cstyle",["require","exports","module","pilot/oop","ace/mode/behaviour"],function(c,h){var m=c("pilot/oop"),b=c("ace/mode/behaviour").Behaviour,f=function(){this.add("braces","insertion",function(b,c,a,e,f){if(f=="{")return b=a.getSelectionRange(),e=e.doc.getTextRange(b),e!==""?{text:"{"+e+"}",selection:false}:{text:"{}",selection:[1,1]};if(f=="}"){if(a=a.getCursorPosition(),c=e.doc.getLine(a.row),f=c.substring(a.column,a.column+1),f=="}"&&e.$findOpeningBracket("}",{column:a.column+
1,row:a.row})!==null)return{text:"",selection:[1,1]}}else if(f=="\n"&&(a=a.getCursorPosition(),c=e.doc.getLine(a.row),f=c.substring(a.column,a.column+1),f=="}")){a=e.findMatchingBracket({row:a.row,column:a.column+1});if(!a)return false;b=this.getNextLineIndent(b,c.substring(0,c.length-1),e.getTabString());e=this.$getIndent(e.doc.getLine(a.row));return{text:"\n"+b+"\n"+e,selection:[1,b.length,1,b.length]}}return false});this.add("braces","deletion",function(b,c,a,e,f){b=e.doc.getTextRange(f);return!f.isMultiLine()&&
b=="{"&&e.doc.getLine(f.start.row).substring(f.end.column,f.end.column+1)=="}"?(f.end.column++,f):false});this.add("parens","insertion",function(b,c,a,e,f){if(f=="(")return b=a.getSelectionRange(),e=e.doc.getTextRange(b),e!==""?{text:"("+e+")",selection:false}:{text:"()",selection:[1,1]};return f==")"&&(b=a.getCursorPosition(),e.doc.getLine(b.row).substring(b.column,b.column+1)==")"&&e.$findOpeningBracket(")",{column:b.column+1,row:b.row})!==null)?{text:"",selection:[1,1]}:false});this.add("parens",
"deletion",function(b,c,a,e,f){b=e.doc.getTextRange(f);return!f.isMultiLine()&&b=="("&&e.doc.getLine(f.start.row).substring(f.start.column+1,f.start.column+2)==")"?(f.end.column++,f):false});this.add("string_dquotes","insertion",function(b,c,a,e,f){if(f=='"'){b=a.getSelectionRange();c=e.doc.getTextRange(b);if(c!=="")return{text:'"'+c+'"',selection:false};a=a.getCursorPosition();c=e.doc.getLine(a.row);if(c.substring(a.column-1,a.column)=="\\")return false;for(var e=e.getTokens(b.start.row,b.start.row)[0].tokens,
f=0,h,m=-1,t=0;t<e.length;t++){h=e[t];h.type=="string"?m=-1:m<0&&(m=h.value.indexOf('"'));if(h.value.length+f>b.start.column)break;f+=e[t].value.length}if(!h||m<0&&h.type!=="comment"&&(h.type!=="string"||b.start.column!==h.value.length+f-1&&h.value.lastIndexOf('"')===h.value.length-1))return{text:'""',selection:[1,1]};if(h&&h.type==="string"&&c.substring(a.column,a.column+1)=='"')return{text:"",selection:[1,1]}}return false});this.add("string_dquotes","deletion",function(b,c,a,e,f){b=e.doc.getTextRange(f);
return!f.isMultiLine()&&b=='"'&&e.doc.getLine(f.start.row).substring(f.start.column+1,f.start.column+2)=='"'?(f.end.column++,f):false})};m.inherits(f,b);h.CstyleBehaviour=f});
define("ace/theme/git-hubby",["require","exports","module"],function(c,h){c("pilot/dom").importCssString(".ace--git-hubby .ace_editor{border:2px solid rgb(159, 159, 159);}.ace--git-hubby .ace_editor.ace_focus{border:2px solid #327fbd;}.ace--git-hubby .ace_gutter{width:50px; background:#e8e8e8; color:#333; overflow :hidden;}.ace--git-hubby .ace_gutter-layer{width:100%; text-align:right;}.ace--git-hubby .ace_gutter-layer .ace_gutter-cell{padding-right:6px;}.ace--git-hubby .ace_print_margin{width:1px; background:#e8e8e8;}.ace--git-hubby .ace_scroller{background-color:#FFF;}.ace--git-hubby .ace_text-layer{cursor:text; color:#000000;}.ace--git-hubby .ace_cursor{border-left:2px solid #000000;}.ace--git-hubby .ace_cursor.ace_overwrite{border-left:0px; border-bottom:1px solid #000000;}.ace--git-hubby .ace_marker-layer .ace_selection{background:#BCD5FA;}.ace--git-hubby .ace_marker-layer .ace_step{background:rgb(198, 219, 174);}.ace--git-hubby .ace_marker-layer .ace_bracket{margin:-1px 0 0 -1px; border:1px solid #BFBFBF;}.ace--git-hubby .ace_marker-layer .ace_active_line{background:rgba(0, 0, 0, 0.071);}.ace--git-hubby .ace_invisible{color:#BFBFBF;}.ace--git-hubby .ace_keyword{color:#000000;}.ace--git-hubby .ace_constant.ace_language{color:#000000;}.ace--git-hubby .ace_constant.ace_numeric{color:#009999;}.ace--git-hubby .ace_string{color:#DD1144;}.ace--git-hubby .ace_string.ace_regexp{color:#009926;}.ace--git-hubby .ace_comment{font-style:italic; color:#999988;}.ace--git-hubby .ace_variable.ace_language{color:#108888;}.ace--git-hubby .ace_entity.ace_other.ace_attribute-name{color:#0A8585;}.ace--git-hubby .ace_markup.ace_underline{text-decoration:underline;}");h.cssClass=
"ace--git-hubby"});
function apprise(c,h,m){var b={confirm:false,verify:false,input:false,animate:false,textOk:"Ok",textCancel:"Cancel",textYes:"Yes",textNo:"No"};if(h)for(var f in b)typeof h[f]=="undefined"&&(h[f]=b[f]);b=$(document).height();f=$(document).width();$("body").append('<div class="appriseOverlay" id="aOverlay"></div>');$(".appriseOverlay").css("height",b).css("width",f).fadeIn(100);$("body").append('<div class="appriseOuter"></div>');$(".appriseOuter").append('<div class="appriseInner"></div>');$(".appriseInner").append(c);
$(".appriseOuter").css("left",($(window).width()-$(".appriseOuter").width())/2+$(window).scrollLeft()+"px");h?h.animate?(c=h.animate,isNaN(c)&&(c=400),$(".appriseOuter").css("top","-200px").show().animate({top:"100px"},c)):$(".appriseOuter").css("top","100px").fadeIn(200):$(".appriseOuter").css("top","100px").fadeIn(200);h&&h.input&&(typeof h.input=="string"?$(".appriseInner").append('<div class="aInput"><input type="text" class="aTextbox" t="aTextbox" value="'+h.input+'" /></div>'):$(".appriseInner").append('<div class="aInput"><input type="text" class="aTextbox" t="aTextbox" /></div>'),
$(".aTextbox").focus());$(".appriseInner").append('<div class="aButtons"></div>');h?h.confirm||h.input?($(".aButtons").append('<button value="ok">'+h.textOk+"</button>"),$(".aButtons").append('<button value="cancel">'+h.textCancel+"</button>")):h.verify?($(".aButtons").append('<button value="ok">'+h.textYes+"</button>"),$(".aButtons").append('<button value="cancel">'+h.textNo+"</button>")):$(".aButtons").append('<button value="ok">'+h.textOk+"</button>"):$(".aButtons").append('<button value="ok">Ok</button>');
$(document).keydown(function(b){$(".appriseOverlay").is(":visible")&&(b.keyCode==13&&$('.aButtons > button[value="ok"]').click(),b.keyCode==27&&$('.aButtons > button[value="cancel"]').click())});var n=$(".aTextbox").val();n||(n=false);$(".aTextbox").keyup(function(){n=$(this).val()});$(".aButtons > button").click(function(){$(".appriseOverlay").remove();$(".appriseOuter").remove();if(m){var b=$(this).attr("value");b=="ok"?h?h.input?m(n):m(true):m(true):b=="cancel"&&m(false)}})}
(function(c){var h;c(document).ready(function(){var b=(document.body||document.documentElement).style;c.support.transition=b.transition!==void 0||b.WebkitTransition!==void 0||b.MozTransition!==void 0||b.MsTransition!==void 0||b.OTransition!==void 0;c.support.transition&&(h="TransitionEnd",c.browser.webkit?h="webkitTransitionEnd":c.browser.mozilla?h="transitionend":c.browser.opera&&(h="oTransitionEnd"))});var m=function(b,f){this.$element=c(b);this.options=f;this.enabled=true;this.fixTitle()};m.prototype=
{show:function(){var b,f,h,j,a,e;if(this.hasContent()&&this.enabled){a=this.tip();this.setContent();this.options.animate&&a.addClass("fade");a.remove().css({top:0,left:0,display:"block"}).prependTo(document.body);b=c.extend({},this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight});f=a[0].offsetWidth;h=a[0].offsetHeight;j=typeof this.options.placement=="function"?this.options.placement.apply(this,[a[0],this.$element[0]]):this.options.placement;switch(j){case "below":e=
{top:b.top+b.height+this.options.offset,left:b.left+b.width/2-f/2};break;case "above":e={top:b.top-h-this.options.offset,left:b.left+b.width/2-f/2};break;case "left":e={top:b.top+b.height/2-h/2,left:b.left-f-this.options.offset};break;case "right":e={top:b.top+b.height/2-h/2,left:b.left+b.width+this.options.offset}}a.css(e).addClass(j).addClass("in")}},setContent:function(){var b=this.tip();b.find(".twipsy-inner")[this.options.html?"html":"text"](this.getTitle());b[0].className="twipsy"},hide:function(){function b(){f.remove()}
var f=this.tip();f.removeClass("in");c.support.transition&&this.$tip.hasClass("fade")?f.bind(h,b):b()},fixTitle:function(){var b=this.$element;if(b.attr("title")||typeof b.attr("data-original-title")!="string")b.attr("data-original-title",b.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getTitle:function(){var b,c=this.$element,h=this.options;this.fixTitle();typeof h.title=="string"?b=c.attr(h.title=="title"?"data-original-title":h.title):typeof h.title=="function"&&
(b=h.title.call(c[0]));return(b=(""+b).replace(/(^\s*|\s*$)/,""))||h.fallback},tip:function(){if(!this.$tip)this.$tip=c('<div class="twipsy" />').html(this.options.template);return this.$tip},validate:function(){if(!this.$element[0].parentNode)this.hide(),this.options=this.$element=null},enable:function(){this.enabled=true},disable:function(){this.enabled=false},toggleEnabled:function(){this.enabled=!this.enabled}};c.fn.twipsy=function(b){c.fn.twipsy.initWith.call(this,b,m,"twipsy");return this};
c.fn.twipsy.initWith=function(b,f,h){function j(a){var e=c.data(a,h);e||(e=new f(a,c.fn.twipsy.elementOptions(a,b)),c.data(a,h,e));return e}function a(){var a=j(this);a.hoverState="in";b.delayIn==0?a.show():(a.fixTitle(),setTimeout(function(){a.hoverState=="in"&&a.show()},b.delayIn))}function e(){var a=j(this);a.hoverState="out";b.delayOut==0?a.hide():setTimeout(function(){a.hoverState=="out"&&a.hide()},b.delayOut)}var k,m,y;if(b===true)return this.data(h);else if(typeof b=="string"){if(k=this.data(h))k[b]();
return this}b=c.extend({},c.fn[h].defaults,b);b.live||this.each(function(){j(this)});b.trigger!="manual"&&(k=b.live?"live":"bind",m=b.trigger=="hover"?"mouseenter":"focus",y=b.trigger=="hover"?"mouseleave":"blur",this[k](m,a)[k](y,e));return this};c.fn.twipsy.Twipsy=m;c.fn.twipsy.defaults={animate:true,delayIn:0,delayOut:0,fallback:"",placement:"above",html:false,live:false,offset:0,title:"title",trigger:"hover",template:'<div class="twipsy-arrow"></div><div class="twipsy-inner"></div>'};c.fn.twipsy.elementOptions=
function(b,f){return c.extend({},f,c(b).data())}})(window.jQuery||window.ender);
(function(c){var h=function(h,b){this.$element=c(h);this.options=b;this.enabled=true;this.fixTitle()};h.prototype=c.extend({},c.fn.twipsy.Twipsy.prototype,{setContent:function(){var c=this.tip();c.find(".title")[this.options.html?"html":"text"](this.getTitle());c.find(".content p")[this.options.html?"html":"text"](this.getContent());c[0].className="popover"},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var c;typeof this.options.content=="string"?c=this.options.content:
typeof this.options.content=="function"&&(c=this.options.content.call(this.$element[0]));return c},tip:function(){if(!this.$tip)this.$tip=c('<div class="popover" />').html(this.options.template);return this.$tip}});c.fn.popover=function(m){typeof m=="object"&&(m=c.extend({},c.fn.popover.defaults,m));c.fn.twipsy.initWith.call(this,m,h,"popover");return this};c.fn.popover.defaults=c.extend({},c.fn.twipsy.defaults,{placement:"right",template:'<div class="arrow"></div><div class="inner"><h3 class="title"></h3><div class="content"><p></p></div></div>'})})(window.jQuery||
window.ender);
(function(c){function h(){var a=this,b=setTimeout(function(){a.$element.unbind(j);m.call(a)},500);this.$element.one(j,function(){clearTimeout(b);m.call(a)})}function m(){this.$element.hide().trigger("hidden");b.call(this)}function b(a){var b=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.settings.backdrop){var h=c.support.transition&&b;this.$backdrop=c('<div class="modal-backdrop '+b+'" />').appendTo(document.body);this.settings.backdrop!="static"&&this.$backdrop.click(c.proxy(this.hide,this));
this.$backdrop.addClass("in");h?this.$backdrop.one(j,a):a()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),c.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(j,c.proxy(f,this)):f.call(this)):a&&a()}function f(){this.$backdrop.remove();this.$backdrop=null}function n(){var a=this;this.isShown&&this.settings.keyboard?c(document).bind("keyup.modal",function(b){b.which==27&&a.hide()}):this.isShown||c(document).unbind("keyup.modal")}var j;c(document).ready(function(){var a=
(document.body||document.documentElement).style;c.support.transition=a.transition!==void 0||a.WebkitTransition!==void 0||a.MozTransition!==void 0||a.MsTransition!==void 0||a.OTransition!==void 0;c.support.transition&&(j="TransitionEnd",c.browser.webkit?j="webkitTransitionEnd":c.browser.mozilla?j="transitionend":c.browser.opera&&(j="oTransitionEnd"))});var a=function(a,b){this.settings=c.extend({},c.fn.modal.defaults,b);this.$element=c(a).delegate(".close","click.modal",c.proxy(this.hide,this));this.settings.show&&
this.show();return this};a.prototype={toggle:function(){return this[!this.isShown?"show":"hide"]()},show:function(){var a=this;this.isShown=true;this.$element.trigger("show");n.call(this);b.call(this,function(){var b=c.support.transition&&a.$element.hasClass("fade");a.$element.appendTo(document.body).show();a.$element.addClass("in");b?a.$element.one(j,function(){a.$element.trigger("shown")}):a.$element.trigger("shown")});return this},hide:function(a){a&&a.preventDefault();if(!this.isShown)return this;
this.isShown=false;n.call(this);this.$element.trigger("hide").removeClass("in");c.support.transition&&this.$element.hasClass("fade")?h.call(this):m.call(this);return this}};c.fn.modal=function(b){var f=this.data("modal");if(!f)return typeof b=="string"&&(b={show:/show|toggle/.test(b)}),this.each(function(){c(this).data("modal",new a(this,b))});if(b===true)return f;if(typeof b=="string")f[b]();else f&&f.toggle();return this};c.fn.modal.Modal=a;c.fn.modal.defaults={backdrop:false,keyboard:false,show:false};
c(document).ready(function(){c("body").delegate("[data-controls-modal]","click",function(a){a.preventDefault();a=c(this).data("show",true);c("#"+a.attr("data-controls-modal")).modal(a.data())})})})(window.jQuery||window.ender);jQuery.tablesorter.addParser({id:"size",is:function(c){return c.trim().match(/^\d+(\.\d+)? (Bytes|KB|MB|GB|TB|PB)$/)},format:function(c){c=c.trim().split(" ");return parseFloat(c.shift())*Math.pow(1024,_.indexOf("Bytes,KB,MB,GB,TB,PB".split(","),c.shift()))},type:"numeric"});
window.Genghis={Base:{},Models:{},Collections:{},Views:{},boot:function(c){c+=c.charAt(c.length-1)=="/"?"":"/";window.App=new Genghis.Views.App({base_url:c});Backbone.history.start({pushState:true,root:c})}};
Genghis.Util={route:function(c){return c.replace(Genghis.baseUrl,"").replace(/^\//,"")},parseQuery:function(c){var h={};c.length&&_.each(c.split("&"),function(c){var c=c.split("="),b=c.shift();h[b]=c.join("=")});return h},buildQuery:function(c){return _.map(c,function(c,m){return m+"="+c}).join("&")},humanizeSize:function(c){if(c==0)return"n/a";var h=parseInt(Math.floor(Math.log(c)/Math.log(1024)));return(h==0?c/Math.pow(1024,h):(c/Math.pow(1024,h)).toFixed(1))+" "+"Bytes,KB,MB,GB,TB,PB".split(",")[h]},
humanizeCount:function(c){var h="",c=c||0;c>1E3&&(c=Math.floor(c/1E3),h=" k");c>1E3&&(c=Math.floor(c/1E3),h=" M");return c>1E3?"...":c+h},escape:function(c){if(c)return String(c).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},formatJSON:function(c){function h(b,c,a){return'<span class="'+c+'">'+(a?b:b!=null?b.toString().replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):"")+"</span>"}function m(c){var j=typeof c,a=[];c==
null?a.push(h("null","null")):c&&c.constructor==Array?a.push(b(c)):j=="object"?a.push(f(c)):j=="number"?a.push(h(c,"num")):j=="string"?(j=h(c,"value"),/^https?:\/\/[^\s]+$/.test(c)&&(j='<a href="'+c+'">'+j+"</a>"),a.push(h('"'+j+'"',"string",true))):j=="boolean"&&a.push(h(c,"bool"));return a.join("")}function b(b){b=_.map(b,function(b){return"<li>"+m(b)+"</li>"});return b.length?'[<ul class="array">'+b.join("")+"</ul>]":"[ ]"}function f(b){var c=_.detect(b,function(a,b){return _.include(["$id","_id"],
b)})&&_.detect(b,function(a,b){return b==="$ref"}),a="obj"+(c?" db-ref":""),b=_.map(b,function(a,b){return"<li"+(c&&_.include(["$ref","$id","_id","$db"],b)?' class="db-ref-'+b.substring(1)+'"':"")+">"+h(b,"prop")+m(a)+"</li>"});return b.length?'{<ul class="'+a+'">'+b.join("")+"</ul>}":"{ }"}return m(c)},attachCollapsers:function(c,h){$('<div class="collapser">-</div>').prependTo($(".document ul",c).parent("li, .document")).click(function(c){function b(b){var a=$(_.detect(b.find("> li > span.prop"),
function(a){return/^\s*(name|title)\s*/i.test($(a).text())})).siblings("span");a.length==0&&(a=$(_.detect(b.find("> li > span:not(.prop)"),function(a){a=$(a);return a.hasClass("num")||a.hasClass("boolean")||a.hasClass("string")&&a.text().length<64})));return a.length?'<span class="summary">'+a.siblings(".prop").text()+": "+a.text()+"</span>":""}var f=$(this).parent(),h=f.children("ul"),f=f.children(".collapser");h.is(":visible")?(h.hide(),$('<span class="ellipsis"> '+b(h)+" &hellip; </span>").insertBefore(h).click(arguments.callee),
f.text("+")):(h.siblings(".ellipsis").remove(),h.show(),f.text("-"));c.preventDefault()});h&&$(".document > .collapser",c).click()}};
Genghis.Base.RowView=Backbone.View.extend({tagName:"tr",events:{"click a.name":"navigate","click button.destroy":"destroy"},initialize:function(){_.bindAll(this,"render","navigate","remove","destroy");this.model.bind("change",this.render);this.model.bind("destroy",this.remove)},render:function(){$(this.el).html(this.template(this.model));$(this.el).find(".label[title]").twipsy({placement:"below"});this.$(".has-details").popover({html:true,content:function(){return $(this).siblings(".details").html()},
title:function(){return $(this).siblings(".details").attr("title")},trigger:"manual"}).hoverIntent(function(){$(this).popover("show")},function(){$(this).popover("hide")});return this},navigate:function(c){c.preventDefault();App.Router.navigate(Genghis.Util.route($(c.target).attr("href")),true)},remove:function(){$(this.el).remove()},destroy:function(){var c=this.model;apprise("Really? There is no undo.",{confirm:true,textOk:"<strong>Yes</strong>, delete "+(c.has("name")?c.get("name"):"")+" forever"},
function(h){h&&c.destroy()})}});
Genghis.Base.SectionView=Backbone.View.extend({events:{"click .add-form button.show":"showAddForm","click .add-form button.add":"submitAddForm","click .add-form button.cancel":"closeAddForm","keyup .add-form input.name":"updateOnKeyup"},initialize:function(){_.bindAll(this,"render","updateTitle","showAddForm","submitAddForm","closeAddForm","updateOnKeyup","addModel","addModelAndUpdate","addAll");this.model&&this.model.bind("change",this.updateTitle);this.collection&&(this.collection.bind("reset",
this.render),this.collection.bind("add",this.addModelAndUpdate));this.render()},render:function(){$(this.el).html(this.template({}));this.addForm=this.$(".add-form");this.addButton=this.$(".add-form button.add");this.addInput=this.$(".add-form input");this.cancelButton=this.$(".add-form button.cancel");this.addAll();this.$(".help",this.addForm).twipsy();var c={};c[this.$("table thead th").length-1]={sorter:false};this.$("table").tablesorter({headers:c,textExtraction:function(c){return $(".value",
c).text()||$(c).text()}});this.collection.size()&&this.$("table").trigger("sorton",[[[0,0]]]);return this},updateTitle:function(){this.$("> header h2").text(this.formatTitle(this.model))},showAddForm:function(){this.addForm.removeClass("inactive");this.addInput.focus()},submitAddForm:function(){this.collection.create({name:this.addInput.val()});this.closeAddForm()},closeAddForm:function(){this.addForm.addClass("inactive");this.addInput.val("")},updateOnKeyup:function(c){c.keyCode==13&&this.submitAddForm();
c.keyCode==27&&this.closeAddForm()},addModel:function(c){c=new this.rowView({model:c});this.$("table tbody").append(c.render().el)},addModelAndUpdate:function(c){this.addModel(c);this.$("table").trigger("update")},addAll:function(){this.$("table tbody").html("");this.collection.each(this.addModel);$(this.el).removeClass("spinning")}});Genghis.Models.Alert=Backbone.Model.extend({defaults:{level:"warning",block:false}});Genghis.Models.Collection=Backbone.Model.extend({});Genghis.Models.Database=Backbone.Model.extend({});
Genghis.Models.Document=Backbone.Model.extend({initialize:function(){_.bindAll(this,"prettyPrint","JSONish");var c=this.get("_id");if(c)this.id=c.$id||c},parse:function(c){if(c._id)this.id=c._id.$id||c._id;return c},url:function(){var c=(!this.collection||!this.collection.url?null:_.isFunction(this.collection.url)?this.collection.url():this.collection.url)||this.urlRoot||urlError(),c=c.split("?").shift();return this.isNew()?c:c+(c.charAt(c.length-1)=="/"?"":"/")+encodeURIComponent(this.id)},prettyPrint:function(){return Genghis.Util.formatJSON(this.toJSON())},
JSONish:function(){return JSON.stringify(this.toJSON(),null,4)}});Genghis.Models.Pagination=Backbone.Model.extend({defaults:{page:1,pages:1,limit:50,count:0,total:0},initialize:function(){_.bindAll(this,"decrementTotal")},decrementTotal:function(){this.set({total:this.get("total")-1,count:this.get("count")-1})}});
Genghis.Models.Selection=Backbone.Model.extend({defaults:{server:null,database:null,collection:null,query:null,page:null},initialize:function(){_.bindAll(this,"select","update","nextPage","previousPage");this.bind("change",this.update);this.Pagination=new Genghis.Models.Pagination;this.Servers=new Genghis.Collections.Servers;this.CurrentServer=new Genghis.Models.Server;this.Databases=new Genghis.Collections.Databases;this.CurrentDatabase=new Genghis.Models.Database;this.Collections=new Genghis.Collections.Collections;
this.CurrentCollection=new Genghis.Models.Collection;this.Documents=new Genghis.Collections.Documents;this.CurrentDocument=new Genghis.Models.Document},select:function(c,h,m,b,f,n){this.set({server:c||null,database:h||null,collection:m||null,document:b||null,query:f||null,page:n||null})},update:function(){var c=this.get("server"),h=this.get("database"),m=this.get("collection"),b=this.get("document"),f=this.get("query"),n=this.get("page"),j=Genghis.baseUrl,a={};j+="servers";this.Servers.url=j;this.Servers.fetch();
c?(j=j+"/"+c,this.CurrentServer.url=j,this.CurrentServer.fetch(),j+="/databases",this.Databases.url=j,this.Databases.fetch()):(this.CurrentServer.clear(),this.Databases.reset());h?(j=j+"/"+h,this.CurrentDatabase.url=j,this.CurrentDatabase.fetch(),j+="/collections",this.Collections.url=j,this.Collections.fetch()):(this.CurrentDatabase.clear(),this.Collections.reset());if(m){j=j+"/"+m;this.CurrentCollection.url=j;this.CurrentCollection.fetch();j+="/documents";c="";if(f||n){if(f)a.q=encodeURIComponent(f);
if(n)a.page=encodeURIComponent(n);c="?"+Genghis.Util.buildQuery(a)}this.Documents.url=j+c;this.Documents.fetch()}else this.CurrentCollection.clear(),this.Documents.reset();if(b)this.CurrentDocument.id=b,this.CurrentDocument.urlRoot=j,this.CurrentDocument.fetch()},nextPage:function(){return 1+(this.get("page")||1)},previousPage:function(){return Math.max(1,(this.get("page")||1)-1)}});Genghis.Models.Server=Backbone.Model.extend({});
Genghis.Collections.Alerts=Backbone.Collection.extend({model:Genghis.Models.Alert,initialize:function(){_.bindAll(this,"handleError")},handleError:function(c){if(c.readyState!=0){try{data=JSON.parse(c.responseText)}catch(h){data={error:c.responseText}}msg=data.error||"<strong>FAIL</strong> An unexpected server error has occurred.";this.add({level:"error",msg:msg,block:!msg.search(/<(p|ul|ol|div)[ >]/)})}}});Genghis.Collections.Collections=Backbone.Collection.extend({model:Genghis.Models.Collection});
Genghis.Collections.Databases=Backbone.Collection.extend({model:Genghis.Models.Database});Genghis.Collections.Documents=Backbone.Collection.extend({model:Genghis.Models.Document,parse:function(c){Genghis.Selection.Pagination.set({page:c.page,pages:c.pages,count:c.documents.length,total:c.count});return c.documents}});Genghis.Collections.Servers=Backbone.Collection.extend({model:Genghis.Models.Server});
Genghis.Views.Alert=Backbone.View.extend({tagName:"div",template:_.template($("#alert-template").html()),events:{"click a.close":"destroy"},initialize:function(){_.bindAll(this,"render","remove","destroy");this.model.bind("change",this.render);this.model.bind("destroy",this.remove)},render:function(){$(this.el).html(this.template(this.model.toJSON()));return this},destroy:function(){this.model.destroy()},remove:function(){$(this.el).remove()}});
Genghis.Views.Alerts=Backbone.View.extend({el:"aside#alerts",initialize:function(){_.bindAll(this,"render","addModel");this.collection.bind("reset",this.render);this.collection.bind("add",this.addModel)},render:function(){$(this.el).html("");return this},addModel:function(c){c=new Genghis.Views.Alert({model:c});$(this.el).append(c.render().el)}});
Genghis.Views.App=Backbone.View.extend({el:"section#genghis",initialize:function(){_.bindAll(this,"showSection");Genghis.baseUrl=this.options.base_url;Genghis.Selection=new Genghis.Models.Selection;Genghis.Alerts=new Genghis.Collections.Alerts;this.NavView=new Genghis.Views.Nav({model:Genghis.Selection});this.AlertsView=new Genghis.Views.Alerts({collection:Genghis.Alerts});this.ServersView=new Genghis.Views.Servers({collection:Genghis.Selection.Servers});this.DatabasesView=new Genghis.Views.Databases({model:Genghis.Selection.CurrentServer,
collection:Genghis.Selection.Databases});this.CollectionsView=new Genghis.Views.Collections({model:Genghis.Selection.CurrentDatabase,collection:Genghis.Selection.Collections});this.DocumentsView=new Genghis.Views.Documents({collection:Genghis.Selection.Documents});this.DocumentView=new Genghis.Views.Document({model:Genghis.Selection.CurrentDocument});this.Router=new Genghis.Router;$(".topbar a.logo").click(function(c){c.preventDefault();App.Router.navigate("",true)});$.getJSON(Genghis.baseUrl+"check-status").error(Genghis.Alerts.handleError).success(function(c){_.each(c.alerts,
function(c){Genghis.Alerts.add(_.extend({block:!c.msg.search(/<(p|ul|ol|div)[ >]/i)},c))})});Genghis.Selection.change()},showSection:function(c){this.$("section").hide().filter("#"+(_.isArray(c)?c.join(",#"):c)).addClass("spinning").show();$(document).scrollTop(0)}});Genghis.Views.CollectionRow=Genghis.Base.RowView.extend({template:_.template($("#collection-row-template").html())});
Genghis.Views.Collections=Genghis.Base.SectionView.extend({el:"section#collections",template:_.template($("#collections-template").html()),rowView:Genghis.Views.CollectionRow,formatTitle:function(c){return c.id?c.id+" collections":"Collections"}});
Genghis.Views.DatabaseRow=Genghis.Base.RowView.extend({template:_.template($("#database-row-template").html()),destroy:function(){var c=this.model;apprise("<strong>Deleting is forever.</strong><br><br>Type <strong>DELETE</strong> to continue:",{input:true,textOk:"Delete "+c.get("name")+" forever"},function(h){h=="DELETE"?c.destroy():apprise("<strong>Phew. That was close.</strong><br><br>"+c.get("name")+" was not deleted.")})}});
Genghis.Views.Databases=Genghis.Base.SectionView.extend({el:"section#databases",template:_.template($("#databases-template").html()),rowView:Genghis.Views.DatabaseRow,formatTitle:function(c){return c.id?c.id+" databases":"Databases"}});
Genghis.Views.Document=Backbone.View.extend({el:"section#document",template:_.template($("#document-template").html()),initialize:function(){_.bindAll(this,"render");this.model.bind("change",this.render)},render:function(){var c=new Genghis.Views.DocumentView({model:this.model});$(this.el).removeClass("spinning").html(this.template({model:this.model}));this.$(".content").html(c.render().el);Genghis.Util.attachCollapsers(c.el);return this}});
Genghis.Views.DocumentView=Backbone.View.extend({tagName:"article",template:_.template($("#document-view-template").html()),events:{"click a.id":"navigate","click button.edit":"openEditDialog","click button.save":"saveDocument","click button.cancel":"cancelEdit","click button.destroy":"destroy","click .db-ref-ref .value":"navigateColl","click .db-ref-db .value":"navigateDb","click .db-ref-id .value":"navigateId"},initialize:function(){_.bindAll(this,"render","updateDocument","navigate","openEditDialog",
"cancelEdit","saveDocument","destroy","remove","navigateColl","navigateDb","navigateId");this.model.bind("change",this.updateDocument);this.model.bind("destroy",this.remove)},render:function(){$(this.el).html(this.template(this.model));return this},updateDocument:function(){this.$(".document").html(this.model.prettyPrint()).show();Genghis.Util.attachCollapsers(this.el)},navigate:function(c){c.preventDefault();App.Router.navigate(Genghis.Util.route($(c.target).attr("href")),true)},navigateDb:function(c){c=
$(c.target).parents(".db-ref").find(".db-ref-db .value").text();App.Router.redirectToDatabase(Genghis.Selection.CurrentServer.id,c)},navigateColl:function(c){var h=$(c.target).parents(".db-ref"),c=h.find(".db-ref-db  .value").text()||Genghis.Selection.CurrentDatabase.id,h=h.find(".db-ref-ref .value").text();App.Router.redirectToCollection(Genghis.Selection.CurrentServer.id,c,h)},navigateId:function(c){var h=$(c.target).parents(".db-ref"),c=h.find(".db-ref-db  .value").text()||Genghis.Selection.CurrentDatabase.id,
m=h.find(".db-ref-ref .value").text()||Genghis.Selection.CurrentCollection.id,h=h.find(".db-ref-id  .value").text();App.Router.redirectToDocument(Genghis.Selection.CurrentServer.id,c,m,h)},openEditDialog:function(){var c=this.$(".well"),h=Math.max(180,Math.min(600,c.height()+40));$(this.el).addClass("edit");c.height(h);c=$('<div id="editor-'+this.model.id+'" class="genghis-document-editor"></div>').text(this.model.JSONish()).appendTo(c).height(h);this.$(".document").hide();this.editor=ace.edit("editor-"+
this.model.id);this.editor.setTheme("ace/theme/git-hubby");this.editor.setHighlightActiveLine(false);this.editor.setShowPrintMargin(false);this.editor.renderer.setShowGutter(false);h=require("ace/mode/json").Mode;this.editor.getSession().setMode(new h);c.resize(_.throttle(this.editor.resize,100))},cancelEdit:function(){$(this.el).removeClass("edit");this.editor.destroy();this.$(".genghis-document-editor").remove();this.updateDocument();this.$(".well").height("auto")},saveDocument:function(){var c=
this.model,h=this.cancelEdit;$.ajax({type:"POST",url:Genghis.baseUrl+"convert-json",data:this.editor.getSession().getValue(),contentType:"application/json",async:false,success:function(m){c.clear({silent:true});c.set(m);c.save();h()},dataType:"json"})},destroy:function(){var c=this.model;apprise("Really? There is no undo.",{confirm:true,textCancel:"Cancel",textOk:"<strong>Yes</strong>, delete document forever"},function(h){h&&(c.destroy(),Genghis.Selection.Pagination.decrementTotal())})},remove:function(){$(this.el).remove()}});
Genghis.Views.Documents=Backbone.View.extend({el:"section#documents",template:_.template($("#documents-template").html()),events:{"click button.add-document":"createDocument"},initialize:function(){_.bindAll(this,"render","addAll","addDocument","createDocument");this.collection.bind("reset",this.addAll,this);this.collection.bind("add",this.addDocument,this);this.render()},render:function(){$(this.el).html(this.template({}));this.HeaderView=new Genghis.Views.DocumentsHeader({model:Genghis.Selection.Pagination});
this.NewDocumentView=new Genghis.Views.NewDocument({collection:Genghis.Selection.Documents});this.PaginationView=new Genghis.Views.Pagination({el:this.$(".pagination-wrapper"),model:Genghis.Selection.Pagination,collection:this.collection});this.addAll();return this},addAll:function(){this.$(".content").html("");this.collection.each(this.addDocument);$(this.el).removeClass("spinning")},addDocument:function(c){c=(new Genghis.Views.DocumentView({model:c})).render();this.$(".content").append(c.el);Genghis.Util.attachCollapsers(c.el,
this.collection.size()>3)},createDocument:function(){this.NewDocumentView.show()}});
Genghis.Views.DocumentsHeader=Backbone.View.extend({el:"section#documents > header h2",initialize:function(){_.bindAll(this,"render");this.model.bind("change",this.render)},render:function(){var c,h=this.model.get("count"),m=this.model.get("page");this.model.get("pages");var b=this.model.get("limit"),f=this.model.get("total");c=""+f+" document"+(f!=1?"s":"");if(f!=h){var n=(m-1)*b+1,h=Math.min((m-1)*b+h,f);c=""+n+" - "+h+" of "+c}$(this.el).html(c);return this}});
Genghis.Views.Nav=Backbone.View.extend({el:".topbar nav",template:_.template($("#nav-template").html()),events:{"keypress input#navbar-query":"findDocuments","click a":"navigate"},initialize:function(){_.bindAll(this,"render","toggleSections","updateQuery","findDocuments","navigate");this.model.bind("change",this.toggleSections);this.model.bind("change",this.updateQuery);$("body").bind("click",function(){$(".dropdown-toggle, .menu").parent("li").removeClass("open")});this.render()},render:function(){$(this.el).html(this.template({query:this.model.get("query")}));
this.ServerNavView=new Genghis.Views.NavSection({el:$("li.server",this.el),model:this.model.CurrentServer,collection:this.model.Servers});this.DatabaseNavView=new Genghis.Views.NavSection({el:$("li.database",this.el),model:this.model.CurrentDatabase,collection:this.model.Databases});this.CollectionNavView=new Genghis.Views.NavSection({el:$("li.collection",this.el),model:this.model.CurrentCollection,collection:this.model.Collections});return this},toggleSections:function(){$(this.ServerNavView.el).toggle(this.model.get("server")!=
null);$(this.DatabaseNavView.el).toggle(this.model.get("database")!=null);$(this.CollectionNavView.el).toggle(this.model.get("collection")!=null);this.$("form").toggle(this.model.get("collection")!=null)},updateQuery:function(){var c=(this.model.get("query")||this.model.get("document")||"").trim().replace(/^\{\s*\}$/,"").replace(/^\{\s*(['"]?)_id\1\s*:\s*\{\s*(['"]?)\$id\2\s*:\s*(["'])([a-z\d]+)\3\s*\}\s*\}$/,"$4");this.$("input#navbar-query").val(c)},findDocuments:function(c){c.keyCode==13&&(c.preventDefault(),
c=$(c.target).val(),c=Genghis.Util.route(this.model.CurrentCollection.url+"/documents")+(c.match(/^([a-z\d]+)$/i)?"/"+c:"?"+Genghis.Util.buildQuery({q:encodeURIComponent(c)})),App.Router.navigate(c,true))},navigate:function(c){c.preventDefault();App.Router.navigate(Genghis.Util.route($(c.target).attr("href")),true)}});
Genghis.Views.NavSection=Backbone.View.extend({template:_.template($("#nav-section-template").html()),menuTemplate:_.template($("#nav-section-menu-template").html()),initialize:function(){_.bindAll(this,"render");this.model.bind("change",this.updateLink,this);this.collection.bind("reset",this.renderMenu,this);this.render()},render:function(){$(this.el).html(this.template({model:this.model}));this.$(".dropdown-toggle").hoverIntent(function(c){$(c.target).parent("li").addClass("open").siblings("li").removeClass("open")},
$.noop);return this},updateLink:function(){this.$("a.dropdown-toggle").text(this.model.id?this.model.id:"").attr("href",this.model.id?this.model.url:"")},renderMenu:function(){this.$("ul.menu-dropdown").html(this.menuTemplate({model:this.model,collection:this.collection}))}});
Genghis.Views.NewDocument=Backbone.View.extend({el:"#new-document",template:_.template($("#new-document-template").html()),initialize:function(){_.bindAll(this,"render","show","resizeEditor","closeModal","cancelEdit","saveDocument");this.render()},render:function(){this.el=$(this.template()).hide().appendTo("body");this.modal=this.el.modal({backdrop:true});this.modal.bind("hide",this.cancelEdit);this.editor=ace.edit("editor-new");this.editor.setTheme("ace/theme/git-hubby");this.editor.setHighlightActiveLine(false);
this.editor.setShowPrintMargin(false);this.editor.renderer.setShowGutter(false);var c=require("ace/mode/json").Mode;this.editor.getSession().setMode(new c);$(window).resize(_.throttle(this.resizeEditor,100));this.modal.bind("shown",this.resizeEditor);this.modal.find("button.cancel").bind("click",this.closeModal);this.modal.find("button.save").bind("click",this.saveDocument);return this},show:function(){this.el.find("#editor-new").height($(window).height()-250);this.editor.getSession().setValue("{\n    \n}\n");
this.modal.css({marginTop:30-this.el.height()/2+"px"}).modal("show")},resizeEditor:function(){this.editor.resize()},closeModal:function(){this.modal.modal("hide")},cancelEdit:function(){this.editor.getSession().setValue("")},saveDocument:function(){var c=this.collection,h=this.closeModal;$.ajax({type:"POST",url:Genghis.baseUrl+"convert-json",data:this.editor.getSession().getValue(),contentType:"application/json",async:false,success:function(m){c.create(m,{success:function(b){h();App.Router.navigate(Genghis.Util.route(b.url()),
true)}})},dataType:"json"})}});
Genghis.Views.Pagination=Backbone.View.extend({template:_.template($("#pagination-template").html()),events:{"click a":"navigate"},initialize:function(){_.bindAll(this,"render","urlTemplate","navigate");this.model.bind("change",this.render)},render:function(){if(this.model.get("pages")==1)$(this.el).hide();else{var c=Math.ceil(4.5),h=this.model.get("page"),m=this.model.get("pages"),b=h>c?Math.max(h-(c-3),1):1,f=m-h>c?Math.min(h+(c-3),m):m,c=f==m?Math.max(m-6,1):b,b=b==1?Math.min(c+6,m):f;b>=m-2&&
(b=m);c<=3&&(c=1);var n=this.urlTemplate();$(this.el).html(this.template(_.extend(this.model.toJSON(),{page:h,pages:m,start:c,end:b,prev:Math.max(1,h-1),next:Math.min(h+1,m),url:function(b){return n.replace("{{ page }}",b)}}))).show()}return this},urlTemplate:function(){var c=this.collection.url.split("?"),h=c.shift(),c=Genghis.Util.parseQuery(c.join("?"));return h+"?"+Genghis.Util.buildQuery(_.extend(c,{page:"{{ page }}"}))},navigate:function(c){c.preventDefault();(c=$(c.target).attr("href"))&&App.Router.navigate(Genghis.Util.route(c),
true)}});Genghis.Views.ServerRow=Genghis.Base.RowView.extend({template:_.template($("#server-row-template").html())});Genghis.Views.Servers=Genghis.Base.SectionView.extend({el:"section#servers",template:_.template($("#servers-template").html()),rowView:Genghis.Views.ServerRow,updateTitle:function(){}});
Genghis.Router=Backbone.Router.extend({routes:{"":"index",servers:"redirectToIndex","servers/:server":"server","servers/:server/databases":"redirectToServer","servers/:server/databases/:database":"database","servers/:server/databases/:database/collections":"redirectToDatabase","servers/:server/databases/:database/collections/:collection":"collection","servers/:server/databases/:database/collections/:collection/documents":"redirectToCollection","servers/:server/databases/:database/collections/:collection/documents?*query":"collectionQuery",
"servers/:server/databases/:database/collections/:collection/documents/:documentId":"document","*path":"notFound"},index:function(){document.title="Genghis";Genghis.Selection.select();App.showSection("servers")},redirectToIndex:function(){this.navigate("",true)},server:function(c){document.title=this.buildTitle(c);Genghis.Selection.select(c);App.showSection("databases")},redirectToServer:function(c){this.navigate("servers/"+c,true)},database:function(c,h){document.title=this.buildTitle(c,h);Genghis.Selection.select(c,
h);App.showSection("collections")},redirectToDatabase:function(c,h){this.navigate("servers/"+c+"/databases/"+h,true)},collection:function(c,h,m){document.title=this.buildTitle(c,h,m);Genghis.Selection.select(c,h,m);App.showSection("documents")},redirectToCollection:function(c,h,m){this.navigate("servers/"+c+"/databases/"+h+"/collections/"+m,true)},collectionQuery:function(c,h,m,b){document.title=this.buildTitle(c,h,m,"Query results");b=Genghis.Util.parseQuery(b);Genghis.Selection.select(c,h,m,null,
b.q,b.page);App.showSection("documents")},document:function(c,h,m,b){document.title=this.buildTitle(c,h,m,b);Genghis.Selection.select(c,h,m,b);App.showSection("document")},redirectToDocument:function(c,h,m,b){this.navigate("servers/"+c+"/databases/"+h+"/collections/"+m+"/documents/"+b,true)},notFound:function(c){if(c.replace(/\/$/,"")==Genghis.baseUrl.replace(/\/$/,""))return App.Router.navigate("",true);document.title=this.buildTitle("404: Not Found");$("section#genghis section#error").html("<header><h2>404: Not Found</h2></header><p>If you think you've reached this message in error, please press <strong>0</strong> to speak with an operator. Otherwise, hang up and try again.</p>");
App.showSection("error")},buildTitle:function(){var c=Array.prototype.slice.call(arguments);return c.length?"Genghis \u2014 "+c.join(" \u203a "):"Genghis"}});

Return current item: Genghis