global.js.map 208 KB

1
  1. {"version":3,"sources":["webpack:///js/global.js","webpack:///webpack/bootstrap f4729b479e6821871a3c","webpack:///./mobile/src/router/global.js","webpack:///./mobile/src/js/flexible.js","webpack:///./mobile/src/js/global.js","webpack:///./mobile/src/js/zepto.js","webpack:///./mobile/src/images/shareguide.png","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","result","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","s","6","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","setTimeout","appendChild","m","c","value","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","a","b","styleSheet","disabled","cssText","innerHTML","innerText","f","getBoundingClientRect","width","style","fontSize","k","rem","documentElement","g","querySelector","h","j","flexible","warn","getAttribute","match","parseFloat","parseInt","toFixed","navigator","appVersion","q","devicePixelRatio","firstElementChild","r","write","addEventListener","persisted","readyState","body","dpr","refreshRem","rem2px","this","px2rem","lib","$","on","userAgent","toLocaleLowerCase","indexOf","append","remove","_typeof","Symbol","iterator","obj","constructor","Zepto","String","class2type","toString","isFunction","isWindow","isDocument","nodeType","DOCUMENT_NODE","isObject","isPlainObject","getPrototypeOf","likeArray","compact","array","filter","item","flatten","fn","concat","apply","dasherize","str","replace","toLowerCase","classRE","classCache","RegExp","maybeAddPx","cssNumber","defaultDisplay","nodeName","element","display","elementDisplay","getComputedStyle","getPropertyValue","parentNode","removeChild","children","slice","map","childNodes","node","Z","dom","selector","len","extend","target","source","deep","key","isArray","filtered","nodes","funcArg","context","arg","idx","payload","removeAttribute","className","klass","svg","baseVal","deserializeValue","test","parseJSON","traverseNode","fun","classList","camelize","uniq","emptyArray","column-count","columns","font-weight","line-height","opacity","z-index","zoom","fragmentRE","singleTagRE","tagExpanderRE","rootNodeRE","capitalRE","methodAttributes","adjacencyOperators","table","tableRow","containers","tr","tbody","thead","tfoot","td","th","*","readyRE","simpleSelectorRE","zepto","tempParent","propMap","tabindex","readonly","for","class","maxlength","cellspacing","cellpadding","rowspan","colspan","usemap","frameborder","contenteditable","Array","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","parent","temp","qsa","chr","toUpperCase","fragment","html","properties","container","$1","each","attr","isZ","init","trim","find","ready","args","arguments","forEach","found","maybeID","maybeClass","nameOnly","isSimple","getElementById","getElementsByClassName","querySelectorAll","contains","isEmptyObject","isNumeric","val","num","Number","isNaN","isFinite","inArray","elem","camelCase","uuid","support","expr","noop","elements","callback","values","grep","JSON","parse","split","reduce","sort","splice","toArray","el","size","every","not","add","is","excludes","has","eq","first","last","$this","some","closest","collection","_","parents","ancestors","pluck","contents","contentDocument","siblings","child","empty","show","replaceWith","newContent","before","wrap","structure","func","clone","index","wrapAll","cloneNode","wrapInner","self","unwrap","hide","css","toggle","setting","prev","next","originHtml","text","newText","textContent","join","removeAttr","attribute","prop","removeProp","data","attrName","multiple","selected","offset","coordinates","coords","parentOffset","offsetParent","props","top","left","pageXOffset","pageYOffset","Math","round","height","computedStyle","removeProperty","hasClass","addClass","cls","removeClass","toggleClass","when","scrollTop","hasScrollTop","scrollTo","scrollX","scrollLeft","hasScrollLeft","scrollY","position","detach","dimension","dimensionProperty","operator","operatorIndex","inside","argType","arr","copyByClone","nextSibling","firstChild","parentInDocument","insertBefore","ownerDocument","defaultView","zid","_zid","findHandlers","event","ns","matcher","matcherFor","handlers","handler","sel","parts","eventCapture","captureSetting","del","focusinSupported","focus","realEvent","hover","events","delegator","capture","id","set","related","relatedTarget","proxy","compatible","isImmediatePropagationStopped","_args","preventDefault","stopPropagation","removeEventListener","isDefaultPrevented","eventMethods","predicate","sourceMethod","returnTrue","returnFalse","timeStamp","Date","now","defaultPrevented","returnValue","getPreventDefault","createProxy","originalEvent","ignoreProperties","isString","specialEvents","blur","mouseenter","mouseleave","click","mousedown","mouseup","mousemove","proxyFn","unshift","TypeError","bind","unbind","off","one","stopImmediatePropagation","delegate","undelegate","live","die","autoRemove","evt","currentTarget","liveFired","trigger","Event","dispatchEvent","triggerHandler","createEvent","bubbles","initEvent","triggerAndReturn","eventName","triggerGlobal","settings","global","ajaxStart","active","ajaxStop","ajaxBeforeSend","xhr","beforeSend","ajaxSuccess","deferred","success","resolveWith","ajaxComplete","ajaxError","rejectWith","status","complete","ajaxDataFilter","dataFilter","mimeToDataType","mime","htmlType","jsonType","scriptTypeRE","xmlTypeRE","appendQuery","url","query","serializeData","options","processData","param","traditional","dataType","parseArguments","serialize","params","scope","hash","jsonpID","rscript","blankRE","originAnchor","href","location","ajaxJSONP","ajax","responseData","abortTimeout","_callbackName","jsonpCallback","callbackName","originalCallback","abort","errorType","ajaxSettings","XMLHttpRequest","accepts","json","xml","crossDomain","cache","urlAnchor","hashIndex","Deferred","protocol","host","hasPlaceholder","jsonp","headers","setHeader","nativeSetHeader","setRequestHeader","mimeType","overrideMimeType","contentType","onreadystatechange","getResponseHeader","responseType","response","responseText","eval","responseXML","statusText","open","username","password","xhrFields","send","post","getJSON","load","escape","encodeURIComponent","serializeArray","field","checked","elm","submit","nativeGetComputedStyle","pseudoElement","list","mediaQuery","alreadyImportedModules","addStylesToDom","styles","domStyle","stylesInDom","refs","addStyle","listToStyles","newStyles","media","sourceMap","part","insertStyleElement","styleElement","getHeadElement","lastStyleElementInsertedAtTop","styleElementsInsertedAtTop","insertAt","removeStyleElement","createStyleElement","createLinkElement","linkElement","rel","update","singleton","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","btoa","updateLink","applyToTag","newObj","replaceText","cssNode","createTextNode","unescape","stringify","blob","oldSrc","memoize","memo","isOldIE","DEBUG","newList","mayRemove","textStore","replacement","Boolean"],"mappings":"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","file":"js/global.js?v=f4729b47","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/ \t\tif(executeModules) {\n/******/ \t\t\tfor(i=0; i < executeModules.length; i++) {\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\treturn result;\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t6: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"js/\" + chunkId + \".js?v=\" + \"f4729b47\" + \"\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 27);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */,\n/* 1 */,\n/* 2 */,\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n__webpack_require__(17);\n\n__webpack_require__(9);\n\n__webpack_require__(15);\n\n__webpack_require__(10);\n\n/***/ }),\n/* 4 */,\n/* 5 */,\n/* 6 */,\n/* 7 */,\n/* 8 */,\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n!function () {\n var a = \"@charset \\\"utf-8\\\";html{overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html *{outline:0;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}html,body{font-family:sans-serif}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{margin:0;padding:0}input,select,textarea{font-size:100%}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}abbr,acronym{border:0;font-variant:normal}del{text-decoration:line-through}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:500}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:500}q:before,q:after{content:''}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}ins,a{text-decoration:none}\",\n b = document.createElement(\"style\");if (document.getElementsByTagName(\"head\")[0].appendChild(b), b.styleSheet) b.styleSheet.disabled || (b.styleSheet.cssText = a);else try {\n b.innerHTML = a;\n } catch (c) {\n b.innerText = a;\n }\n}();!function (a, b) {\n function c() {\n var b = f.getBoundingClientRect().width;b / i > 540 && (b = 540 * i);var c = b / 10;f.style.fontSize = c + \"px\", k.rem = a.rem = c;\n }var d,\n e = a.document,\n f = e.documentElement,\n g = e.querySelector('meta[name=\"viewport\"]'),\n h = e.querySelector('meta[name=\"flexible\"]'),\n i = 0,\n j = 0,\n k = b.flexible || (b.flexible = {});if (g) {\n console.warn(\"将根据已有的meta标签来设置缩放比例\");var l = g.getAttribute(\"content\").match(/initial\\-scale=([\\d\\.]+)/);l && (j = parseFloat(l[1]), i = parseInt(1 / j));\n } else if (h) {\n var m = h.getAttribute(\"content\");if (m) {\n var n = m.match(/initial\\-dpr=([\\d\\.]+)/),\n o = m.match(/maximum\\-dpr=([\\d\\.]+)/);n && (i = parseFloat(n[1]), j = parseFloat((1 / i).toFixed(2))), o && (i = parseFloat(o[1]), j = parseFloat((1 / i).toFixed(2)));\n }\n }if (!i && !j) {\n var p = (a.navigator.appVersion.match(/android/gi), a.navigator.appVersion.match(/iphone/gi)),\n q = a.devicePixelRatio;i = p ? q >= 3 && (!i || i >= 3) ? 3 : q >= 2 && (!i || i >= 2) ? 2 : 1 : 1, j = 1 / i;\n }if (f.setAttribute(\"data-dpr\", i), !g) if (g = e.createElement(\"meta\"), g.setAttribute(\"name\", \"viewport\"), g.setAttribute(\"content\", \"initial-scale=\" + j + \", maximum-scale=\" + j + \", minimum-scale=\" + j + \", user-scalable=no\"), f.firstElementChild) f.firstElementChild.appendChild(g);else {\n var r = e.createElement(\"div\");r.appendChild(g), e.write(r.innerHTML);\n }a.addEventListener(\"resize\", function () {\n clearTimeout(d), d = setTimeout(c, 300);\n }, !1), a.addEventListener(\"pageshow\", function (a) {\n a.persisted && (clearTimeout(d), d = setTimeout(c, 300));\n }, !1), \"complete\" === e.readyState ? e.body.style.fontSize = 12 * i + \"px\" : e.addEventListener(\"DOMContentLoaded\", function () {\n e.body.style.fontSize = 12 * i + \"px\";\n }, !1), c(), k.dpr = a.dpr = i, k.refreshRem = c, k.rem2px = function (a) {\n var b = parseFloat(a) * this.rem;return \"string\" == typeof a && a.match(/rem$/) && (b += \"px\"), b;\n }, k.px2rem = function (a) {\n var b = parseFloat(a) / this.rem;return \"string\" == typeof a && a.match(/px$/) && (b += \"rem\"), b;\n };\n}(window, window.lib || (window.lib = {}));\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n$('body').on('click', '[node-type=\"share\"]', function () {\n\tif (navigator.userAgent.toLocaleLowerCase().indexOf('micromessenger') > -1) {\n\t\t$('body').append('<section class=\"layer\" id=\"sharelayer\" style=\"display:block;\">\\n\\t <section class=\"shareguide\">\\n\\t <img src=' + __webpack_require__(23) + '>\\n\\t </section>\\n\\t </section>');\n\n\t\t$('#sharelayer').on('click', function () {\n\t\t\t$(this).remove();\n\t\t});\n\t}\n});\n\n/***/ }),\n/* 11 */,\n/* 12 */,\n/* 13 */,\n/* 14 */,\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\nvar Zepto = function () {\n var undefined,\n key,\n $,\n classList,\n emptyArray = [],\n _concat = emptyArray.concat,\n _filter = emptyArray.filter,\n _slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {},\n classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1, 'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n adjacencyOperators = ['after', 'prepend', 'before', 'append'],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize,\n uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray || function (object) {\n return object instanceof Array;\n };\n\n zepto.matches = function (element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false;\n var matchesSelector = element.matches || element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector;\n if (matchesSelector) return matchesSelector.call(element, selector);\n // fall back to performing a selector:\n var match,\n parent = element.parentNode,\n temp = !parent;\n if (temp) (parent = tempParent).appendChild(element);\n match = ~zepto.qsa(parent, selector).indexOf(element);\n temp && tempParent.removeChild(element);\n return match;\n };\n\n function type(obj) {\n return obj == null ? String(obj) : class2type[toString.call(obj)] || \"object\";\n }\n\n function isFunction(value) {\n return type(value) == \"function\";\n }\n function isWindow(obj) {\n return obj != null && obj == obj.window;\n }\n function isDocument(obj) {\n return obj != null && obj.nodeType == obj.DOCUMENT_NODE;\n }\n function isObject(obj) {\n return type(obj) == \"object\";\n }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj);\n\n return 'function' != type && !isWindow(obj) && ('array' == type || length === 0 || typeof length == 'number' && length > 0 && length - 1 in obj);\n }\n\n function compact(array) {\n return _filter.call(array, function (item) {\n return item != null;\n });\n }\n function flatten(array) {\n return array.length > 0 ? $.fn.concat.apply([], array) : array;\n }\n camelize = function camelize(str) {\n return str.replace(/-+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n });\n };\n function dasherize(str) {\n return str.replace(/::/g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\\d])([A-Z])/g, '$1_$2').replace(/_/g, '-').toLowerCase();\n }\n uniq = function uniq(array) {\n return _filter.call(array, function (item, idx) {\n return array.indexOf(item) == idx;\n });\n };\n\n function classRE(name) {\n return name in classCache ? classCache[name] : classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)');\n }\n\n function maybeAddPx(name, value) {\n return typeof value == \"number\" && !cssNumber[dasherize(name)] ? value + \"px\" : value;\n }\n\n function defaultDisplay(nodeName) {\n var element, display;\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName);\n document.body.appendChild(element);\n display = getComputedStyle(element, '').getPropertyValue(\"display\");\n element.parentNode.removeChild(element);\n display == \"none\" && (display = \"block\");\n elementDisplay[nodeName] = display;\n }\n return elementDisplay[nodeName];\n }\n\n function _children(element) {\n return 'children' in element ? _slice.call(element.children) : $.map(element.childNodes, function (node) {\n if (node.nodeType == 1) return node;\n });\n }\n\n function Z(dom, selector) {\n var i,\n len = dom ? dom.length : 0;\n for (i = 0; i < len; i++) {\n this[i] = dom[i];\n }this.length = len;\n this.selector = selector || '';\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function (html, name, properties) {\n var dom, nodes, container;\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1));\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\");\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1;\n if (!(name in containers)) name = '*';\n\n container = containers[name];\n container.innerHTML = '' + html;\n dom = $.each(_slice.call(container.childNodes), function () {\n container.removeChild(this);\n });\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom);\n $.each(properties, function (key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value);else nodes.attr(key, value);\n });\n }\n\n return dom;\n };\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function (dom, selector) {\n return new Z(dom, selector);\n };\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function (object) {\n return object instanceof zepto.Z;\n };\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function (selector, context) {\n var dom;\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z();\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim();\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector)) dom = zepto.fragment(selector, RegExp.$1, context), selector = null;\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector);\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector);\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector;else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector);\n // Wrap DOM nodes.\n else if (isObject(selector)) dom = [selector], selector = null;\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector)) dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null;\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector);\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector);\n };\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function $(selector, context) {\n return zepto.init(selector, context);\n };\n\n function extend(target, source, deep) {\n for (key in source) {\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) target[key] = {};\n if (isArray(source[key]) && !isArray(target[key])) target[key] = [];\n extend(target[key], source[key], deep);\n } else if (source[key] !== undefined) target[key] = source[key];\n }\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function (target) {\n var deep,\n args = _slice.call(arguments, 1);\n if (typeof target == 'boolean') {\n deep = target;\n target = args.shift();\n }\n args.forEach(function (arg) {\n extend(target, arg, deep);\n });\n return target;\n };\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function (element, selector) {\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,\n // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly);\n return element.getElementById && isSimple && maybeID ? // Safari DocumentFragment doesn't have getElementById\n (found = element.getElementById(nameOnly)) ? [found] : [] : element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11 ? [] : _slice.call(isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n );\n };\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector);\n }\n\n $.contains = document.documentElement.contains ? function (parent, node) {\n return parent !== node && parent.contains(node);\n } : function (parent, node) {\n while (node && (node = node.parentNode)) {\n if (node === parent) return true;\n }return false;\n };\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg;\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value);\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value) {\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined;\n\n if (value === undefined) return svg ? klass.baseVal : klass;\n svg ? klass.baseVal = value : node.className = value;\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ? value == \"true\" || (value == \"false\" ? false : value == \"null\" ? null : +value + \"\" == value ? +value : /^[\\[\\{]/.test(value) ? $.parseJSON(value) : value) : value;\n } catch (e) {\n return value;\n }\n }\n\n $.type = type;\n $.isFunction = isFunction;\n $.isWindow = isWindow;\n $.isArray = isArray;\n $.isPlainObject = isPlainObject;\n\n $.isEmptyObject = function (obj) {\n var name;\n for (name in obj) {\n return false;\n }return true;\n };\n\n $.isNumeric = function (val) {\n var num = Number(val),\n type = typeof val === 'undefined' ? 'undefined' : _typeof(val);\n return val != null && type != 'boolean' && (type != 'string' || val.length) && !isNaN(num) && isFinite(num) || false;\n };\n\n $.inArray = function (elem, array, i) {\n return emptyArray.indexOf.call(array, elem, i);\n };\n\n $.camelCase = camelize;\n $.trim = function (str) {\n return str == null ? \"\" : String.prototype.trim.call(str);\n };\n\n // plugin compatibility\n $.uuid = 0;\n $.support = {};\n $.expr = {};\n $.noop = function () {};\n\n $.map = function (elements, callback) {\n var value,\n values = [],\n i,\n key;\n if (likeArray(elements)) for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i);\n if (value != null) values.push(value);\n } else for (key in elements) {\n value = callback(elements[key], key);\n if (value != null) values.push(value);\n }\n return flatten(values);\n };\n\n $.each = function (elements, callback) {\n var i, key;\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++) {\n if (callback.call(elements[i], i, elements[i]) === false) return elements;\n }\n } else {\n for (key in elements) {\n if (callback.call(elements[key], key, elements[key]) === false) return elements;\n }\n }\n\n return elements;\n };\n\n $.grep = function (elements, callback) {\n return _filter.call(elements, callback);\n };\n\n if (window.JSON) $.parseJSON = JSON.parse;\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function concat() {\n var i,\n value,\n args = [];\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i];\n args[i] = zepto.isZ(value) ? value.toArray() : value;\n }\n return _concat.apply(zepto.isZ(this) ? this.toArray() : this, args);\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function map(fn) {\n return $($.map(this, function (el, i) {\n return fn.call(el, i, el);\n }));\n },\n slice: function slice() {\n return $(_slice.apply(this, arguments));\n },\n\n ready: function ready(callback) {\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($);else document.addEventListener('DOMContentLoaded', function () {\n callback($);\n }, false);\n return this;\n },\n get: function get(idx) {\n return idx === undefined ? _slice.call(this) : this[idx >= 0 ? idx : idx + this.length];\n },\n toArray: function toArray() {\n return this.get();\n },\n size: function size() {\n return this.length;\n },\n remove: function remove() {\n return this.each(function () {\n if (this.parentNode != null) this.parentNode.removeChild(this);\n });\n },\n each: function each(callback) {\n emptyArray.every.call(this, function (el, idx) {\n return callback.call(el, idx, el) !== false;\n });\n return this;\n },\n filter: function filter(selector) {\n if (isFunction(selector)) return this.not(this.not(selector));\n return $(_filter.call(this, function (element) {\n return zepto.matches(element, selector);\n }));\n },\n add: function add(selector, context) {\n return $(uniq(this.concat($(selector, context))));\n },\n is: function is(selector) {\n return this.length > 0 && zepto.matches(this[0], selector);\n },\n not: function not(selector) {\n var nodes = [];\n if (isFunction(selector) && selector.call !== undefined) this.each(function (idx) {\n if (!selector.call(this, idx)) nodes.push(this);\n });else {\n var excludes = typeof selector == 'string' ? this.filter(selector) : likeArray(selector) && isFunction(selector.item) ? _slice.call(selector) : $(selector);\n this.forEach(function (el) {\n if (excludes.indexOf(el) < 0) nodes.push(el);\n });\n }\n return $(nodes);\n },\n has: function has(selector) {\n return this.filter(function () {\n return isObject(selector) ? $.contains(this, selector) : $(this).find(selector).size();\n });\n },\n eq: function eq(idx) {\n return idx === -1 ? this.slice(idx) : this.slice(idx, +idx + 1);\n },\n first: function first() {\n var el = this[0];\n return el && !isObject(el) ? el : $(el);\n },\n last: function last() {\n var el = this[this.length - 1];\n return el && !isObject(el) ? el : $(el);\n },\n find: function find(selector) {\n var result,\n $this = this;\n if (!selector) result = $();else if ((typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) == 'object') result = $(selector).filter(function () {\n var node = this;\n return emptyArray.some.call($this, function (parent) {\n return $.contains(parent, node);\n });\n });else if (this.length == 1) result = $(zepto.qsa(this[0], selector));else result = this.map(function () {\n return zepto.qsa(this, selector);\n });\n return result;\n },\n closest: function closest(selector, context) {\n var nodes = [],\n collection = (typeof selector === 'undefined' ? 'undefined' : _typeof(selector)) == 'object' && $(selector);\n this.each(function (_, node) {\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) {\n node = node !== context && !isDocument(node) && node.parentNode;\n }if (node && nodes.indexOf(node) < 0) nodes.push(node);\n });\n return $(nodes);\n },\n parents: function parents(selector) {\n var ancestors = [],\n nodes = this;\n while (nodes.length > 0) {\n nodes = $.map(nodes, function (node) {\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node);\n return node;\n }\n });\n }return filtered(ancestors, selector);\n },\n parent: function parent(selector) {\n return filtered(uniq(this.pluck('parentNode')), selector);\n },\n children: function children(selector) {\n return filtered(this.map(function () {\n return _children(this);\n }), selector);\n },\n contents: function contents() {\n return this.map(function () {\n return this.contentDocument || _slice.call(this.childNodes);\n });\n },\n siblings: function siblings(selector) {\n return filtered(this.map(function (i, el) {\n return _filter.call(_children(el.parentNode), function (child) {\n return child !== el;\n });\n }), selector);\n },\n empty: function empty() {\n return this.each(function () {\n this.innerHTML = '';\n });\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function pluck(property) {\n return $.map(this, function (el) {\n return el[property];\n });\n },\n show: function show() {\n return this.each(function () {\n this.style.display == \"none\" && (this.style.display = '');\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\") this.style.display = defaultDisplay(this.nodeName);\n });\n },\n replaceWith: function replaceWith(newContent) {\n return this.before(newContent).remove();\n },\n wrap: function wrap(structure) {\n var func = isFunction(structure);\n if (this[0] && !func) var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1;\n\n return this.each(function (index) {\n $(this).wrapAll(func ? structure.call(this, index) : clone ? dom.cloneNode(true) : dom);\n });\n },\n wrapAll: function wrapAll(structure) {\n if (this[0]) {\n $(this[0]).before(structure = $(structure));\n var children;\n // drill down to the inmost element\n while ((children = structure.children()).length) {\n structure = children.first();\n }$(structure).append(this);\n }\n return this;\n },\n wrapInner: function wrapInner(structure) {\n var func = isFunction(structure);\n return this.each(function (index) {\n var self = $(this),\n contents = self.contents(),\n dom = func ? structure.call(this, index) : structure;\n contents.length ? contents.wrapAll(dom) : self.append(dom);\n });\n },\n unwrap: function unwrap() {\n this.parent().each(function () {\n $(this).replaceWith($(this).children());\n });\n return this;\n },\n clone: function clone() {\n return this.map(function () {\n return this.cloneNode(true);\n });\n },\n hide: function hide() {\n return this.css(\"display\", \"none\");\n },\n toggle: function toggle(setting) {\n return this.each(function () {\n var el = $(this);(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide();\n });\n },\n prev: function prev(selector) {\n return $(this.pluck('previousElementSibling')).filter(selector || '*');\n },\n next: function next(selector) {\n return $(this.pluck('nextElementSibling')).filter(selector || '*');\n },\n html: function html(_html) {\n return 0 in arguments ? this.each(function (idx) {\n var originHtml = this.innerHTML;\n $(this).empty().append(funcArg(this, _html, idx, originHtml));\n }) : 0 in this ? this[0].innerHTML : null;\n },\n text: function text(_text) {\n return 0 in arguments ? this.each(function (idx) {\n var newText = funcArg(this, _text, idx, this.textContent);\n this.textContent = newText == null ? '' : '' + newText;\n }) : 0 in this ? this.pluck('textContent').join(\"\") : null;\n },\n attr: function attr(name, value) {\n var result;\n return typeof name == 'string' && !(1 in arguments) ? 0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined : this.each(function (idx) {\n if (this.nodeType !== 1) return;\n if (isObject(name)) for (key in name) {\n setAttribute(this, key, name[key]);\n } else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)));\n });\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n this.nodeType === 1 && name.split(' ').forEach(function (attribute) {\n setAttribute(this, attribute);\n }, this);\n });\n },\n prop: function prop(name, value) {\n name = propMap[name] || name;\n return 1 in arguments ? this.each(function (idx) {\n this[name] = funcArg(this, value, idx, this[name]);\n }) : this[0] && this[0][name];\n },\n removeProp: function removeProp(name) {\n name = propMap[name] || name;\n return this.each(function () {\n delete this[name];\n });\n },\n data: function data(name, value) {\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase();\n\n var data = 1 in arguments ? this.attr(attrName, value) : this.attr(attrName);\n\n return data !== null ? deserializeValue(data) : undefined;\n },\n val: function val(value) {\n if (0 in arguments) {\n if (value == null) value = \"\";\n return this.each(function (idx) {\n this.value = funcArg(this, value, idx, this.value);\n });\n } else {\n return this[0] && (this[0].multiple ? $(this[0]).find('option').filter(function () {\n return this.selected;\n }).pluck('value') : this[0].value);\n }\n },\n offset: function offset(coordinates) {\n if (coordinates) return this.each(function (index) {\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n };\n\n if ($this.css('position') == 'static') props['position'] = 'relative';\n $this.css(props);\n });\n if (!this.length) return null;\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0])) return { top: 0, left: 0 };\n var obj = this[0].getBoundingClientRect();\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n };\n },\n css: function css(property, value) {\n if (arguments.length < 2) {\n var element = this[0];\n if (typeof property == 'string') {\n if (!element) return;\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property);\n } else if (isArray(property)) {\n if (!element) return;\n var props = {};\n var computedStyle = getComputedStyle(element, '');\n $.each(property, function (_, prop) {\n props[prop] = element.style[camelize(prop)] || computedStyle.getPropertyValue(prop);\n });\n return props;\n }\n }\n\n var css = '';\n if (type(property) == 'string') {\n if (!value && value !== 0) this.each(function () {\n this.style.removeProperty(dasherize(property));\n });else css = dasherize(property) + \":\" + maybeAddPx(property, value);\n } else {\n for (key in property) {\n if (!property[key] && property[key] !== 0) this.each(function () {\n this.style.removeProperty(dasherize(key));\n });else css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';';\n }\n }\n\n return this.each(function () {\n this.style.cssText += ';' + css;\n });\n },\n index: function index(element) {\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]);\n },\n hasClass: function hasClass(name) {\n if (!name) return false;\n return emptyArray.some.call(this, function (el) {\n return this.test(className(el));\n }, classRE(name));\n },\n addClass: function addClass(name) {\n if (!name) return this;\n return this.each(function (idx) {\n if (!('className' in this)) return;\n classList = [];\n var cls = className(this),\n newName = funcArg(this, name, idx, cls);\n newName.split(/\\s+/g).forEach(function (klass) {\n if (!$(this).hasClass(klass)) classList.push(klass);\n }, this);\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"));\n });\n },\n removeClass: function removeClass(name) {\n return this.each(function (idx) {\n if (!('className' in this)) return;\n if (name === undefined) return className(this, '');\n classList = className(this);\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function (klass) {\n classList = classList.replace(classRE(klass), \" \");\n });\n className(this, classList.trim());\n });\n },\n toggleClass: function toggleClass(name, when) {\n if (!name) return this;\n return this.each(function (idx) {\n var $this = $(this),\n names = funcArg(this, name, idx, className(this));\n names.split(/\\s+/g).forEach(function (klass) {\n (when === undefined ? !$this.hasClass(klass) : when) ? $this.addClass(klass) : $this.removeClass(klass);\n });\n });\n },\n scrollTop: function scrollTop(value) {\n if (!this.length) return;\n var hasScrollTop = 'scrollTop' in this[0];\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset;\n return this.each(hasScrollTop ? function () {\n this.scrollTop = value;\n } : function () {\n this.scrollTo(this.scrollX, value);\n });\n },\n scrollLeft: function scrollLeft(value) {\n if (!this.length) return;\n var hasScrollLeft = 'scrollLeft' in this[0];\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset;\n return this.each(hasScrollLeft ? function () {\n this.scrollLeft = value;\n } : function () {\n this.scrollTo(value, this.scrollY);\n });\n },\n position: function position() {\n if (!this.length) return;\n\n var elem = this[0],\n\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat($(elem).css('margin-top')) || 0;\n offset.left -= parseFloat($(elem).css('margin-left')) || 0;\n\n // Add offsetParent borders\n parentOffset.top += parseFloat($(offsetParent[0]).css('border-top-width')) || 0;\n parentOffset.left += parseFloat($(offsetParent[0]).css('border-left-width')) || 0;\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n };\n },\n offsetParent: function offsetParent() {\n return this.map(function () {\n var parent = this.offsetParent || document.body;\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\") {\n parent = parent.offsetParent;\n }return parent;\n });\n }\n\n // for now\n };$.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function (dimension) {\n var dimensionProperty = dimension.replace(/./, function (m) {\n return m[0].toUpperCase();\n });\n\n $.fn[dimension] = function (value) {\n var offset,\n el = this[0];\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] : isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : (offset = this.offset()) && offset[dimension];else return this.each(function (idx) {\n el = $(this);\n el.css(dimension, funcArg(this, value, idx, el[dimension]()));\n });\n };\n });\n\n function traverseNode(node, fun) {\n fun(node);\n for (var i = 0, len = node.childNodes.length; i < len; i++) {\n traverseNode(node.childNodes[i], fun);\n }\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function (operator, operatorIndex) {\n var inside = operatorIndex % 2; //=> prepend, append\n\n $.fn[operator] = function () {\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType,\n nodes = $.map(arguments, function (arg) {\n var arr = [];\n argType = type(arg);\n if (argType == \"array\") {\n arg.forEach(function (el) {\n if (el.nodeType !== undefined) return arr.push(el);else if ($.zepto.isZ(el)) return arr = arr.concat(el.get());\n arr = arr.concat(zepto.fragment(el));\n });\n return arr;\n }\n return argType == \"object\" || arg == null ? arg : zepto.fragment(arg);\n }),\n parent,\n copyByClone = this.length > 1;\n if (nodes.length < 1) return this;\n\n return this.each(function (_, target) {\n parent = inside ? target : target.parentNode;\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling : operatorIndex == 1 ? target.firstChild : operatorIndex == 2 ? target : null;\n\n var parentInDocument = $.contains(document.documentElement, parent);\n\n nodes.forEach(function (node) {\n if (copyByClone) node = node.cloneNode(true);else if (!parent) return $(node).remove();\n\n parent.insertBefore(node, target);\n if (parentInDocument) traverseNode(node, function (el) {\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && (!el.type || el.type === 'text/javascript') && !el.src) {\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window;\n target['eval'].call(target, el.innerHTML);\n }\n });\n });\n });\n };\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator + 'To' : 'insert' + (operatorIndex ? 'Before' : 'After')] = function (html) {\n $(html)[operator](this);\n return this;\n };\n });\n\n zepto.Z.prototype = Z.prototype = $.fn;\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq;\n zepto.deserializeValue = deserializeValue;\n $.zepto = zepto;\n\n return $;\n}();\n\nwindow.Zepto = Zepto;\nwindow.$ === undefined && (window.$ = Zepto);(function ($) {\n var _zid = 1,\n undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function isString(obj) {\n return typeof obj == 'string';\n },\n handlers = {},\n specialEvents = {},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' };\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents';\n\n function zid(element) {\n return element._zid || (element._zid = _zid++);\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event);\n if (event.ns) var matcher = matcherFor(event.ns);\n return (handlers[zid(element)] || []).filter(function (handler) {\n return handler && (!event.e || handler.e == event.e) && (!event.ns || matcher.test(handler.ns)) && (!fn || zid(handler.fn) === zid(fn)) && (!selector || handler.sel == selector);\n });\n }\n function parse(event) {\n var parts = ('' + event).split('.');\n return { e: parts[0], ns: parts.slice(1).sort().join(' ') };\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del && !focusinSupported && handler.e in focus || !!captureSetting;\n }\n\n function realEvent(type) {\n return hover[type] || focusinSupported && focus[type] || type;\n }\n\n function add(element, events, fn, data, selector, delegator, capture) {\n var id = zid(element),\n set = handlers[id] || (handlers[id] = []);\n events.split(/\\s/).forEach(function (event) {\n if (event == 'ready') return $(document).ready(fn);\n var handler = parse(event);\n handler.fn = fn;\n handler.sel = selector;\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function fn(e) {\n var related = e.relatedTarget;\n if (!related || related !== this && !$.contains(this, related)) return handler.fn.apply(this, arguments);\n };\n handler.del = delegator;\n var callback = delegator || fn;\n handler.proxy = function (e) {\n e = compatible(e);\n if (e.isImmediatePropagationStopped()) return;\n e.data = data;\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args));\n if (result === false) e.preventDefault(), e.stopPropagation();\n return result;\n };\n handler.i = set.length;\n set.push(handler);\n if ('addEventListener' in element) element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n }\n function remove(element, events, fn, selector, capture) {\n var id = zid(element);(events || '').split(/\\s/).forEach(function (event) {\n findHandlers(element, event, fn, selector).forEach(function (handler) {\n delete handlers[id][handler.i];\n if ('removeEventListener' in element) element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n });\n }\n\n $.event = { add: add, remove: remove };\n\n $.proxy = function (fn, context) {\n var args = 2 in arguments && slice.call(arguments, 2);\n if (isFunction(fn)) {\n var proxyFn = function proxyFn() {\n return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments);\n };\n proxyFn._zid = zid(fn);\n return proxyFn;\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn);\n return $.proxy.apply(null, args);\n } else {\n return $.proxy(fn[context], fn);\n }\n } else {\n throw new TypeError(\"expected function\");\n }\n };\n\n $.fn.bind = function (event, data, callback) {\n return this.on(event, data, callback);\n };\n $.fn.unbind = function (event, callback) {\n return this.off(event, callback);\n };\n $.fn.one = function (event, selector, data, callback) {\n return this.on(event, selector, data, callback, 1);\n };\n\n var returnTrue = function returnTrue() {\n return true;\n },\n returnFalse = function returnFalse() {\n return false;\n },\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n };\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event);\n\n $.each(eventMethods, function (name, predicate) {\n var sourceMethod = source[name];\n event[name] = function () {\n this[predicate] = returnTrue;\n return sourceMethod && sourceMethod.apply(source, arguments);\n };\n event[predicate] = returnFalse;\n });\n\n event.timeStamp || (event.timeStamp = Date.now());\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented : 'returnValue' in source ? source.returnValue === false : source.getPreventDefault && source.getPreventDefault()) event.isDefaultPrevented = returnTrue;\n }\n return event;\n }\n\n function createProxy(event) {\n var key,\n proxy = { originalEvent: event };\n for (key in event) {\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key];\n }return compatible(proxy, event);\n }\n\n $.fn.delegate = function (selector, event, callback) {\n return this.on(event, selector, callback);\n };\n $.fn.undelegate = function (selector, event, callback) {\n return this.off(event, selector, callback);\n };\n\n $.fn.live = function (event, callback) {\n $(document.body).delegate(this.selector, event, callback);\n return this;\n };\n $.fn.die = function (event, callback) {\n $(document.body).undelegate(this.selector, event, callback);\n return this;\n };\n\n $.fn.on = function (event, selector, data, callback, one) {\n var autoRemove,\n delegator,\n $this = this;\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.on(type, selector, data, fn, one);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = data, data = selector, selector = undefined;\n if (callback === undefined || data === false) callback = data, data = undefined;\n\n if (callback === false) callback = returnFalse;\n\n return $this.each(function (_, element) {\n if (one) autoRemove = function autoRemove(e) {\n remove(element, e.type, callback);\n return callback.apply(this, arguments);\n };\n\n if (selector) delegator = function delegator(e) {\n var evt,\n match = $(e.target).closest(selector, element).get(0);\n if (match && match !== element) {\n evt = $.extend(createProxy(e), { currentTarget: match, liveFired: element });\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)));\n }\n };\n\n add(element, event, callback, data, selector, delegator || autoRemove);\n });\n };\n $.fn.off = function (event, selector, callback) {\n var $this = this;\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.off(type, selector, fn);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = selector, selector = undefined;\n\n if (callback === false) callback = returnFalse;\n\n return $this.each(function () {\n remove(this, event, callback, selector);\n });\n };\n\n $.fn.trigger = function (event, args) {\n event = isString(event) || $.isPlainObject(event) ? $.Event(event) : compatible(event);\n event._args = args;\n return this.each(function () {\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]();\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event);else $(this).triggerHandler(event, args);\n });\n };\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function (event, args) {\n var e, result;\n this.each(function (i, element) {\n e = createProxy(isString(event) ? $.Event(event) : event);\n e._args = args;\n e.target = element;\n $.each(findHandlers(element, event.type || event), function (i, handler) {\n result = handler.proxy(e);\n if (e.isImmediatePropagationStopped()) return false;\n });\n });\n return result;\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick ' + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave ' + 'change select keydown keypress keyup error').split(' ').forEach(function (event) {\n $.fn[event] = function (callback) {\n return 0 in arguments ? this.bind(event, callback) : this.trigger(event);\n };\n });\n\n $.Event = function (type, props) {\n if (!isString(type)) props = type, type = props.type;\n var event = document.createEvent(specialEvents[type] || 'Events'),\n bubbles = true;\n if (props) for (var name in props) {\n name == 'bubbles' ? bubbles = !!props[name] : event[name] = props[name];\n }event.initEvent(type, bubbles, true);\n return compatible(event);\n };\n})(Zepto);(function ($) {\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a');\n\n originAnchor.href = window.location.href;\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName);\n $(context).trigger(event, data);\n return !event.isDefaultPrevented();\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data);\n }\n\n // Number of active Ajax requests\n $.active = 0;\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart');\n }\n function ajaxStop(settings) {\n if (settings.global && ! --$.active) triggerGlobal(settings, null, 'ajaxStop');\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context;\n if (settings.beforeSend.call(context, xhr, settings) === false || triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) return false;\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]);\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context,\n status = 'success';\n settings.success.call(context, data, status, xhr);\n if (deferred) deferred.resolveWith(context, [data, status, xhr]);\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]);\n ajaxComplete(status, xhr, settings);\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context;\n settings.error.call(context, xhr, type, error);\n if (deferred) deferred.rejectWith(context, [xhr, type, error]);\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]);\n ajaxComplete(type, xhr, settings);\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context;\n settings.complete.call(context, xhr, status);\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]);\n ajaxStop(settings);\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data;\n var context = settings.context;\n return settings.dataFilter.call(context, data, type);\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function (options, deferred) {\n if (!('type' in options)) return $.ajax(options);\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ? _callbackName() : _callbackName) || 'Zepto' + jsonpID++,\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function abort(errorType) {\n $(script).triggerHandler('error', errorType || 'abort');\n },\n xhr = { abort: abort },\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n\n $(script).on('load error', function (e, errorType) {\n clearTimeout(abortTimeout);\n $(script).off().remove();\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred);\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred);\n }\n\n window[callbackName] = originalCallback;\n if (responseData && $.isFunction(originalCallback)) originalCallback(responseData[0]);\n\n originalCallback = responseData = undefined;\n });\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort');\n return xhr;\n }\n\n window[callbackName] = function () {\n responseData = arguments;\n };\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName);\n document.head.appendChild(script);\n\n if (options.timeout > 0) abortTimeout = setTimeout(function () {\n abort('timeout');\n }, options.timeout);\n\n return xhr;\n };\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function xhr() {\n return new window.XMLHttpRequest();\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n };\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0];\n return mime && (mime == htmlType ? 'html' : mime == jsonType ? 'json' : scriptTypeRE.test(mime) ? 'script' : xmlTypeRE.test(mime) && 'xml') || 'text';\n }\n\n function appendQuery(url, query) {\n if (query == '') return url;\n return (url + '&' + query).replace(/[&?]{1,2}/, '?');\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\") options.data = $.param(options.data, options.traditional);\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType)) options.url = appendQuery(options.url, options.data), options.data = undefined;\n }\n\n $.ajax = function (options) {\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor,\n hashIndex;\n for (key in $.ajaxSettings) {\n if (settings[key] === undefined) settings[key] = $.ajaxSettings[key];\n }ajaxStart(settings);\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a');\n urlAnchor.href = settings.url;\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href;\n settings.crossDomain = originAnchor.protocol + '//' + originAnchor.host !== urlAnchor.protocol + '//' + urlAnchor.host;\n }\n\n if (!settings.url) settings.url = window.location.toString();\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex);\n serializeData(settings);\n\n var dataType = settings.dataType,\n hasPlaceholder = /\\?.+=\\?/.test(settings.url);\n if (hasPlaceholder) dataType = 'jsonp';\n\n if (settings.cache === false || (!options || options.cache !== true) && ('script' == dataType || 'jsonp' == dataType)) settings.url = appendQuery(settings.url, '_=' + Date.now());\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder) settings.url = appendQuery(settings.url, settings.jsonp ? settings.jsonp + '=?' : settings.jsonp === false ? '' : 'callback=?');\n return $.ajaxJSONP(settings, deferred);\n }\n\n var mime = settings.accepts[dataType],\n headers = {},\n setHeader = function setHeader(name, value) {\n headers[name.toLowerCase()] = [name, value];\n },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest');\n setHeader('Accept', mime || '*/*');\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0];\n xhr.overrideMimeType && xhr.overrideMimeType(mime);\n }\n if (settings.contentType || settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET') setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded');\n\n if (settings.headers) for (name in settings.headers) {\n setHeader(name, settings.headers[name]);\n }xhr.setRequestHeader = setHeader;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty;\n clearTimeout(abortTimeout);\n var result,\n error = false;\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304 || xhr.status == 0 && protocol == 'file:') {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'));\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob') result = xhr.response;else {\n result = xhr.responseText;\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings);\n if (dataType == 'script') (1, eval)(result);else if (dataType == 'xml') result = xhr.responseXML;else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result);\n } catch (e) {\n error = e;\n }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred);\n }\n\n ajaxSuccess(result, xhr, settings, deferred);\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred);\n }\n }\n };\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort();\n ajaxError(null, 'abort', xhr, settings, deferred);\n return xhr;\n }\n\n var async = 'async' in settings ? settings.async : true;\n xhr.open(settings.type, settings.url, async, settings.username, settings.password);\n\n if (settings.xhrFields) for (name in settings.xhrFields) {\n xhr[name] = settings.xhrFields[name];\n }for (name in headers) {\n nativeSetHeader.apply(xhr, headers[name]);\n }if (settings.timeout > 0) abortTimeout = setTimeout(function () {\n xhr.onreadystatechange = empty;\n xhr.abort();\n ajaxError(null, 'timeout', xhr, settings, deferred);\n }, settings.timeout);\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null);\n return xhr;\n };\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined;\n if (!$.isFunction(success)) dataType = success, success = undefined;\n return {\n url: url,\n data: data,\n success: success,\n dataType: dataType\n };\n }\n\n $.get = function () /* url, data, success, dataType */{\n return $.ajax(parseArguments.apply(null, arguments));\n };\n\n $.post = function () /* url, data, success, dataType */{\n var options = parseArguments.apply(null, arguments);\n options.type = 'POST';\n return $.ajax(options);\n };\n\n $.getJSON = function () /* url, data, success */{\n var options = parseArguments.apply(null, arguments);\n options.dataType = 'json';\n return $.ajax(options);\n };\n\n $.fn.load = function (url, data, success) {\n if (!this.length) return this;\n var self = this,\n parts = url.split(/\\s/),\n selector,\n options = parseArguments(url, data, success),\n callback = options.success;\n if (parts.length > 1) options.url = parts[0], selector = parts[1];\n options.success = function (response) {\n self.html(selector ? $('<div>').html(response.replace(rscript, \"\")).find(selector) : response);\n callback && callback.apply(self, arguments);\n };\n $.ajax(options);\n return this;\n };\n\n var escape = encodeURIComponent;\n\n function serialize(params, obj, traditional, scope) {\n var type,\n array = $.isArray(obj),\n hash = $.isPlainObject(obj);\n $.each(obj, function (key, value) {\n type = $.type(value);\n if (scope) key = traditional ? scope : scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']';\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value);\n // recurse into nested objects\n else if (type == \"array\" || !traditional && type == \"object\") serialize(params, value, traditional, key);else params.add(key, value);\n });\n }\n\n $.param = function (obj, traditional) {\n var params = [];\n params.add = function (key, value) {\n if ($.isFunction(value)) value = value();\n if (value == null) value = \"\";\n this.push(escape(key) + '=' + escape(value));\n };\n serialize(params, obj, traditional);\n return params.join('&').replace(/%20/g, '+');\n };\n})(Zepto);(function ($) {\n $.fn.serializeArray = function () {\n var name,\n type,\n result = [],\n add = function add(value) {\n if (value.forEach) return value.forEach(add);\n result.push({ name: name, value: value });\n };\n if (this[0]) $.each(this[0].elements, function (_, field) {\n type = field.type, name = field.name;\n if (name && field.nodeName.toLowerCase() != 'fieldset' && !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' && (type != 'radio' && type != 'checkbox' || field.checked)) add($(field).val());\n });\n return result;\n };\n\n $.fn.serialize = function () {\n var result = [];\n this.serializeArray().forEach(function (elm) {\n result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value));\n });\n return result.join('&');\n };\n\n $.fn.submit = function (callback) {\n if (0 in arguments) this.bind('submit', callback);else if (this.length) {\n var event = $.Event('submit');\n this.eq(0).trigger(event);\n if (!event.isDefaultPrevented()) this.get(0).submit();\n }\n return this;\n };\n})(Zepto);(function () {\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined);\n } catch (e) {\n var nativeGetComputedStyle = getComputedStyle;\n window.getComputedStyle = function (element, pseudoElement) {\n try {\n return nativeGetComputedStyle(element, pseudoElement);\n } catch (e) {\n return null;\n }\n };\n }\n})();\n\nmodule.exports = Zepto;\n\n/***/ }),\n/* 16 */,\n/* 17 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"../images/8eaa4804.shareguide.png\";\n\n/***/ }),\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(3);\n\n\n/***/ }),\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function () {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\tvar result = [];\n\t\tfor (var i = 0; i < this.length; i++) {\n\t\t\tvar item = this[i];\n\t\t\tif (item[2]) {\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\n\t\t\t} else {\n\t\t\t\tresult.push(item[1]);\n\t\t\t}\n\t\t}\n\t\treturn result.join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function (modules, mediaQuery) {\n\t\tif (typeof modules === \"string\") modules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor (var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif (typeof id === \"number\") alreadyImportedModules[id] = true;\n\t\t}\n\t\tfor (i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif (typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif (mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if (mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nvar stylesInDom = {},\n\tmemoize = function(fn) {\n\t\tvar memo;\n\t\treturn function () {\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\t\treturn memo;\n\t\t};\n\t},\n\tisOldIE = memoize(function() {\n\t\treturn /msie [6-9]\\b/.test(self.navigator.userAgent.toLowerCase());\n\t}),\n\tgetHeadElement = memoize(function () {\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\n\t}),\n\tsingletonElement = null,\n\tsingletonCounter = 0,\n\tstyleElementsInsertedAtTop = [];\n\nmodule.exports = function(list, options) {\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the bottom of <head>.\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list);\n\taddStylesToDom(styles, options);\n\n\treturn function update(newList) {\n\t\tvar mayRemove = [];\n\t\tfor(var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\n\t\t\t\t\tdomStyle.parts[j]();\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction addStylesToDom(styles, options) {\n\tfor(var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles(list) {\n\tvar styles = [];\n\tvar newStyles = {};\n\tfor(var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\t\tif(!newStyles[id])\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse\n\t\t\tnewStyles[id].parts.push(part);\n\t}\n\treturn styles;\n}\n\nfunction insertStyleElement(options, styleElement) {\n\tvar head = getHeadElement();\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\n\tif (options.insertAt === \"top\") {\n\t\tif(!lastStyleElementInsertedAtTop) {\n\t\t\thead.insertBefore(styleElement, head.firstChild);\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\thead.appendChild(styleElement);\n\t\t}\n\t\tstyleElementsInsertedAtTop.push(styleElement);\n\t} else if (options.insertAt === \"bottom\") {\n\t\thead.appendChild(styleElement);\n\t} else {\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\n\t}\n}\n\nfunction removeStyleElement(styleElement) {\n\tstyleElement.parentNode.removeChild(styleElement);\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\n\tif(idx >= 0) {\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement(options) {\n\tvar styleElement = document.createElement(\"style\");\n\tstyleElement.type = \"text/css\";\n\tinsertStyleElement(options, styleElement);\n\treturn styleElement;\n}\n\nfunction createLinkElement(options) {\n\tvar linkElement = document.createElement(\"link\");\n\tlinkElement.rel = \"stylesheet\";\n\tinsertStyleElement(options, linkElement);\n\treturn linkElement;\n}\n\nfunction addStyle(obj, options) {\n\tvar styleElement, update, remove;\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\n\t} else if(obj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\") {\n\t\tstyleElement = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t\tif(styleElement.href)\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\n\t\t};\n\t} else {\n\t\tstyleElement = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle(newObj) {\n\t\tif(newObj) {\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\n\t\t\t\treturn;\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = styleElement.childNodes;\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\n\t\tif (childNodes.length) {\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyleElement.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag(styleElement, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyleElement.setAttribute(\"media\", media)\n\t}\n\n\tif(styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = css;\n\t} else {\n\t\twhile(styleElement.firstChild) {\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\n\t\t}\n\t\tstyleElement.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink(linkElement, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\tif(sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = linkElement.href;\n\n\tlinkElement.href = URL.createObjectURL(blob);\n\n\tif(oldSrc)\n\t\tURL.revokeObjectURL(oldSrc);\n}\n\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// js/global.js?v=f4729b47"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t6: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"js/\" + chunkId + \".js?v=\" + \"f4729b47\" + \"\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 27);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f4729b479e6821871a3c","import '../css/base.css';\nimport '../js/flexible.js';\nimport '../js/zepto.js';\nimport '../js/global.js';\n\n\n// WEBPACK FOOTER //\n// ./mobile/src/router/global.js","!function(){var a=\"@charset \\\"utf-8\\\";html{overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}html *{outline:0;-webkit-text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}html,body{font-family:sans-serif}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{margin:0;padding:0}input,select,textarea{font-size:100%}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}abbr,acronym{border:0;font-variant:normal}del{text-decoration:line-through}address,caption,cite,code,dfn,em,th,var{font-style:normal;font-weight:500}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:500}q:before,q:after{content:''}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}ins,a{text-decoration:none}\",b=document.createElement(\"style\");if(document.getElementsByTagName(\"head\")[0].appendChild(b),b.styleSheet)b.styleSheet.disabled||(b.styleSheet.cssText=a);else try{b.innerHTML=a}catch(c){b.innerText=a}}();!function(a,b){function c(){var b=f.getBoundingClientRect().width;b/i>540&&(b=540*i);var c=b/10;f.style.fontSize=c+\"px\",k.rem=a.rem=c}var d,e=a.document,f=e.documentElement,g=e.querySelector('meta[name=\"viewport\"]'),h=e.querySelector('meta[name=\"flexible\"]'),i=0,j=0,k=b.flexible||(b.flexible={});if(g){console.warn(\"将根据已有的meta标签来设置缩放比例\");var l=g.getAttribute(\"content\").match(/initial\\-scale=([\\d\\.]+)/);l&&(j=parseFloat(l[1]),i=parseInt(1/j))}else if(h){var m=h.getAttribute(\"content\");if(m){var n=m.match(/initial\\-dpr=([\\d\\.]+)/),o=m.match(/maximum\\-dpr=([\\d\\.]+)/);n&&(i=parseFloat(n[1]),j=parseFloat((1/i).toFixed(2))),o&&(i=parseFloat(o[1]),j=parseFloat((1/i).toFixed(2)))}}if(!i&&!j){var p=(a.navigator.appVersion.match(/android/gi),a.navigator.appVersion.match(/iphone/gi)),q=a.devicePixelRatio;i=p?q>=3&&(!i||i>=3)?3:q>=2&&(!i||i>=2)?2:1:1,j=1/i}if(f.setAttribute(\"data-dpr\",i),!g)if(g=e.createElement(\"meta\"),g.setAttribute(\"name\",\"viewport\"),g.setAttribute(\"content\",\"initial-scale=\"+j+\", maximum-scale=\"+j+\", minimum-scale=\"+j+\", user-scalable=no\"),f.firstElementChild)f.firstElementChild.appendChild(g);else{var r=e.createElement(\"div\");r.appendChild(g),e.write(r.innerHTML)}a.addEventListener(\"resize\",function(){clearTimeout(d),d=setTimeout(c,300)},!1),a.addEventListener(\"pageshow\",function(a){a.persisted&&(clearTimeout(d),d=setTimeout(c,300))},!1),\"complete\"===e.readyState?e.body.style.fontSize=12*i+\"px\":e.addEventListener(\"DOMContentLoaded\",function(){e.body.style.fontSize=12*i+\"px\"},!1),c(),k.dpr=a.dpr=i,k.refreshRem=c,k.rem2px=function(a){var b=parseFloat(a)*this.rem;return\"string\"==typeof a&&a.match(/rem$/)&&(b+=\"px\"),b},k.px2rem=function(a){var b=parseFloat(a)/this.rem;return\"string\"==typeof a&&a.match(/px$/)&&(b+=\"rem\"),b}}(window,window.lib||(window.lib={}));\n\n\n// WEBPACK FOOTER //\n// ./mobile/src/js/flexible.js","$('body').on('click','[node-type=\"share\"]',function(){\n\tif(navigator.userAgent.toLocaleLowerCase().indexOf('micromessenger') >-1){\n\t\t$('body').append(`<section class=\"layer\" id=\"sharelayer\" style=\"display:block;\">\n\t <section class=\"shareguide\">\n\t <img src=${require(\"../images/shareguide.png\")}>\n\t </section>\n\t </section>`)\n\n\t $('#sharelayer').on('click',function(){\n\t \t$(this).remove();\n\t })\n\t}\n})\n\n\n// WEBPACK FOOTER //\n// ./mobile/src/js/global.js","/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\n var Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var _zid = 1, undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function(obj){ return typeof obj == 'string' },\n handlers = {},\n specialEvents={},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'\n\n function zid(element) {\n return element._zid || (element._zid = _zid++)\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event)\n if (event.ns) var matcher = matcherFor(event.ns)\n return (handlers[zid(element)] || []).filter(function(handler) {\n return handler\n && (!event.e || handler.e == event.e)\n && (!event.ns || matcher.test(handler.ns))\n && (!fn || zid(handler.fn) === zid(fn))\n && (!selector || handler.sel == selector)\n })\n }\n function parse(event) {\n var parts = ('' + event).split('.')\n return {e: parts[0], ns: parts.slice(1).sort().join(' ')}\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del &&\n (!focusinSupported && (handler.e in focus)) ||\n !!captureSetting\n }\n\n function realEvent(type) {\n return hover[type] || (focusinSupported && focus[type]) || type\n }\n\n function add(element, events, fn, data, selector, delegator, capture){\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n events.split(/\\s/).forEach(function(event){\n if (event == 'ready') return $(document).ready(fn)\n var handler = parse(event)\n handler.fn = fn\n handler.sel = selector\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function(e){\n var related = e.relatedTarget\n if (!related || (related !== this && !$.contains(this, related)))\n return handler.fn.apply(this, arguments)\n }\n handler.del = delegator\n var callback = delegator || fn\n handler.proxy = function(e){\n e = compatible(e)\n if (e.isImmediatePropagationStopped()) return\n e.data = data\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n if (result === false) e.preventDefault(), e.stopPropagation()\n return result\n }\n handler.i = set.length\n set.push(handler)\n if ('addEventListener' in element)\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n }\n function remove(element, events, fn, selector, capture){\n var id = zid(element)\n ;(events || '').split(/\\s/).forEach(function(event){\n findHandlers(element, event, fn, selector).forEach(function(handler){\n delete handlers[id][handler.i]\n if ('removeEventListener' in element)\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n })\n }\n\n $.event = { add: add, remove: remove }\n\n $.proxy = function(fn, context) {\n var args = (2 in arguments) && slice.call(arguments, 2)\n if (isFunction(fn)) {\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n proxyFn._zid = zid(fn)\n return proxyFn\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn)\n return $.proxy.apply(null, args)\n } else {\n return $.proxy(fn[context], fn)\n }\n } else {\n throw new TypeError(\"expected function\")\n }\n }\n\n $.fn.bind = function(event, data, callback){\n return this.on(event, data, callback)\n }\n $.fn.unbind = function(event, callback){\n return this.off(event, callback)\n }\n $.fn.one = function(event, selector, data, callback){\n return this.on(event, selector, data, callback, 1)\n }\n\n var returnTrue = function(){return true},\n returnFalse = function(){return false},\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n }\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event)\n\n $.each(eventMethods, function(name, predicate) {\n var sourceMethod = source[name]\n event[name] = function(){\n this[predicate] = returnTrue\n return sourceMethod && sourceMethod.apply(source, arguments)\n }\n event[predicate] = returnFalse\n })\n\n event.timeStamp || (event.timeStamp = Date.now())\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n 'returnValue' in source ? source.returnValue === false :\n source.getPreventDefault && source.getPreventDefault())\n event.isDefaultPrevented = returnTrue\n }\n return event\n }\n\n function createProxy(event) {\n var key, proxy = { originalEvent: event }\n for (key in event)\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n return compatible(proxy, event)\n }\n\n $.fn.delegate = function(selector, event, callback){\n return this.on(event, selector, callback)\n }\n $.fn.undelegate = function(selector, event, callback){\n return this.off(event, selector, callback)\n }\n\n $.fn.live = function(event, callback){\n $(document.body).delegate(this.selector, event, callback)\n return this\n }\n $.fn.die = function(event, callback){\n $(document.body).undelegate(this.selector, event, callback)\n return this\n }\n\n $.fn.on = function(event, selector, data, callback, one){\n var autoRemove, delegator, $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.on(type, selector, data, fn, one)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = data, data = selector, selector = undefined\n if (callback === undefined || data === false)\n callback = data, data = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(_, element){\n if (one) autoRemove = function(e){\n remove(element, e.type, callback)\n return callback.apply(this, arguments)\n }\n\n if (selector) delegator = function(e){\n var evt, match = $(e.target).closest(selector, element).get(0)\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n }\n }\n\n add(element, event, callback, data, selector, delegator || autoRemove)\n })\n }\n $.fn.off = function(event, selector, callback){\n var $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.off(type, selector, fn)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = selector, selector = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(){\n remove(this, event, callback, selector)\n })\n }\n\n $.fn.trigger = function(event, args){\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n event._args = args\n return this.each(function(){\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event)\n else $(this).triggerHandler(event, args)\n })\n }\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function(event, args){\n var e, result\n this.each(function(i, element){\n e = createProxy(isString(event) ? $.Event(event) : event)\n e._args = args\n e.target = element\n $.each(findHandlers(element, event.type || event), function(i, handler){\n result = handler.proxy(e)\n if (e.isImmediatePropagationStopped()) return false\n })\n })\n return result\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick '+\n 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+\n 'change select keydown keypress keyup error').split(' ').forEach(function(event) {\n $.fn[event] = function(callback) {\n return (0 in arguments) ?\n this.bind(event, callback) :\n this.trigger(event)\n }\n })\n\n $.Event = function(type, props) {\n if (!isString(type)) props = type, type = props.type\n var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true\n if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])\n event.initEvent(type, bubbles, true)\n return compatible(event)\n }\n\n})(Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a')\n\n originAnchor.href = window.location.href\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName)\n $(context).trigger(event, data)\n return !event.isDefaultPrevented()\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\n }\n\n // Number of active Ajax requests\n $.active = 0\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')\n }\n function ajaxStop(settings) {\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context\n if (settings.beforeSend.call(context, xhr, settings) === false ||\n triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)\n return false\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context, status = 'success'\n settings.success.call(context, data, status, xhr)\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])\n ajaxComplete(status, xhr, settings)\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context\n settings.error.call(context, xhr, type, error)\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type])\n ajaxComplete(type, xhr, settings)\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context\n settings.complete.call(context, xhr, status)\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])\n ajaxStop(settings)\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data\n var context = settings.context\n return settings.dataFilter.call(context, data, type)\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function(options, deferred){\n if (!('type' in options)) return $.ajax(options)\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ?\n _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function(errorType) {\n $(script).triggerHandler('error', errorType || 'abort')\n },\n xhr = { abort: abort }, abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n $(script).on('load error', function(e, errorType){\n clearTimeout(abortTimeout)\n $(script).off().remove()\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred)\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred)\n }\n\n window[callbackName] = originalCallback\n if (responseData && $.isFunction(originalCallback))\n originalCallback(responseData[0])\n\n originalCallback = responseData = undefined\n })\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort')\n return xhr\n }\n\n window[callbackName] = function(){\n responseData = arguments\n }\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName)\n document.head.appendChild(script)\n\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\n abort('timeout')\n }, options.timeout)\n\n return xhr\n }\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest()\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n }\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0]\n return mime && ( mime == htmlType ? 'html' :\n mime == jsonType ? 'json' :\n scriptTypeRE.test(mime) ? 'script' :\n xmlTypeRE.test(mime) && 'xml' ) || 'text'\n }\n\n function appendQuery(url, query) {\n if (query == '') return url\n return (url + '&' + query).replace(/[&?]{1,2}/, '?')\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\")\n options.data = $.param(options.data, options.traditional)\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))\n options.url = appendQuery(options.url, options.data), options.data = undefined\n }\n\n $.ajax = function(options){\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor, hashIndex\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n ajaxStart(settings)\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a')\n urlAnchor.href = settings.url\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href\n settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host)\n }\n\n if (!settings.url) settings.url = window.location.toString()\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex)\n serializeData(settings)\n\n var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n if (hasPlaceholder) dataType = 'jsonp'\n\n if (settings.cache === false || (\n (!options || options.cache !== true) &&\n ('script' == dataType || 'jsonp' == dataType)\n ))\n settings.url = appendQuery(settings.url, '_=' + Date.now())\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder)\n settings.url = appendQuery(settings.url,\n settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?')\n return $.ajaxJSONP(settings, deferred)\n }\n\n var mime = settings.accepts[dataType],\n headers = { },\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest')\n setHeader('Accept', mime || '*/*')\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\n }\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))\n setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded')\n\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n xhr.setRequestHeader = setHeader\n\n xhr.onreadystatechange = function(){\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty\n clearTimeout(abortTimeout)\n var result, error = false\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'))\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob')\n result = xhr.response\n else {\n result = xhr.responseText\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings)\n if (dataType == 'script') (1,eval)(result)\n else if (dataType == 'xml') result = xhr.responseXML\n else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)\n } catch (e) { error = e }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred)\n }\n\n ajaxSuccess(result, xhr, settings, deferred)\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred)\n }\n }\n }\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort()\n ajaxError(null, 'abort', xhr, settings, deferred)\n return xhr\n }\n\n var async = 'async' in settings ? settings.async : true\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n xhr.onreadystatechange = empty\n xhr.abort()\n ajaxError(null, 'timeout', xhr, settings, deferred)\n }, settings.timeout)\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null)\n return xhr\n }\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\n if (!$.isFunction(success)) dataType = success, success = undefined\n return {\n url: url\n , data: data\n , success: success\n , dataType: dataType\n }\n }\n\n $.get = function(/* url, data, success, dataType */){\n return $.ajax(parseArguments.apply(null, arguments))\n }\n\n $.post = function(/* url, data, success, dataType */){\n var options = parseArguments.apply(null, arguments)\n options.type = 'POST'\n return $.ajax(options)\n }\n\n $.getJSON = function(/* url, data, success */){\n var options = parseArguments.apply(null, arguments)\n options.dataType = 'json'\n return $.ajax(options)\n }\n\n $.fn.load = function(url, data, success){\n if (!this.length) return this\n var self = this, parts = url.split(/\\s/), selector,\n options = parseArguments(url, data, success),\n callback = options.success\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\n options.success = function(response){\n self.html(selector ?\n $('<div>').html(response.replace(rscript, \"\")).find(selector)\n : response)\n callback && callback.apply(self, arguments)\n }\n $.ajax(options)\n return this\n }\n\n var escape = encodeURIComponent\n\n function serialize(params, obj, traditional, scope){\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n $.each(obj, function(key, value) {\n type = $.type(value)\n if (scope) key = traditional ? scope :\n scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value)\n // recurse into nested objects\n else if (type == \"array\" || (!traditional && type == \"object\"))\n serialize(params, value, traditional, key)\n else params.add(key, value)\n })\n }\n\n $.param = function(obj, traditional){\n var params = []\n params.add = function(key, value) {\n if ($.isFunction(value)) value = value()\n if (value == null) value = \"\"\n this.push(escape(key) + '=' + escape(value))\n }\n serialize(params, obj, traditional)\n return params.join('&').replace(/%20/g, '+')\n }\n})(Zepto)\n\n;(function($){\n $.fn.serializeArray = function() {\n var name, type, result = [],\n add = function(value) {\n if (value.forEach) return value.forEach(add)\n result.push({ name: name, value: value })\n }\n if (this[0]) $.each(this[0].elements, function(_, field){\n type = field.type, name = field.name\n if (name && field.nodeName.toLowerCase() != 'fieldset' &&\n !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' &&\n ((type != 'radio' && type != 'checkbox') || field.checked))\n add($(field).val())\n })\n return result\n }\n\n $.fn.serialize = function(){\n var result = []\n this.serializeArray().forEach(function(elm){\n result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value))\n })\n return result.join('&')\n }\n\n $.fn.submit = function(callback) {\n if (0 in arguments) this.bind('submit', callback)\n else if (this.length) {\n var event = $.Event('submit')\n this.eq(0).trigger(event)\n if (!event.isDefaultPrevented()) this.get(0).submit()\n }\n return this\n }\n\n})(Zepto)\n\n;(function(){\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined)\n } catch(e) {\n var nativeGetComputedStyle = getComputedStyle\n window.getComputedStyle = function(element, pseudoElement){\n try {\n return nativeGetComputedStyle(element, pseudoElement)\n } catch(e) {\n return null\n }\n }\n }\n})()\n\nmodule.exports = Zepto\n\n\n\n\n// WEBPACK FOOTER //\n// ./mobile/src/js/zepto.js","module.exports = \"../images/8eaa4804.shareguide.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./mobile/src/images/shareguide.png\n// module id = 23\n// module chunks = 6","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function() {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\tvar result = [];\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar item = this[i];\n\t\t\tif(item[2]) {\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\n\t\t\t} else {\n\t\t\t\tresult.push(item[1]);\n\t\t\t}\n\t\t}\n\t\treturn result.join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./~/css-loader/lib/css-base.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nvar stylesInDom = {},\n\tmemoize = function(fn) {\n\t\tvar memo;\n\t\treturn function () {\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\t\treturn memo;\n\t\t};\n\t},\n\tisOldIE = memoize(function() {\n\t\treturn /msie [6-9]\\b/.test(self.navigator.userAgent.toLowerCase());\n\t}),\n\tgetHeadElement = memoize(function () {\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\n\t}),\n\tsingletonElement = null,\n\tsingletonCounter = 0,\n\tstyleElementsInsertedAtTop = [];\n\nmodule.exports = function(list, options) {\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the bottom of <head>.\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list);\n\taddStylesToDom(styles, options);\n\n\treturn function update(newList) {\n\t\tvar mayRemove = [];\n\t\tfor(var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\n\t\t\t\t\tdomStyle.parts[j]();\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction addStylesToDom(styles, options) {\n\tfor(var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles(list) {\n\tvar styles = [];\n\tvar newStyles = {};\n\tfor(var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\t\tif(!newStyles[id])\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse\n\t\t\tnewStyles[id].parts.push(part);\n\t}\n\treturn styles;\n}\n\nfunction insertStyleElement(options, styleElement) {\n\tvar head = getHeadElement();\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\n\tif (options.insertAt === \"top\") {\n\t\tif(!lastStyleElementInsertedAtTop) {\n\t\t\thead.insertBefore(styleElement, head.firstChild);\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\thead.appendChild(styleElement);\n\t\t}\n\t\tstyleElementsInsertedAtTop.push(styleElement);\n\t} else if (options.insertAt === \"bottom\") {\n\t\thead.appendChild(styleElement);\n\t} else {\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\n\t}\n}\n\nfunction removeStyleElement(styleElement) {\n\tstyleElement.parentNode.removeChild(styleElement);\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\n\tif(idx >= 0) {\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement(options) {\n\tvar styleElement = document.createElement(\"style\");\n\tstyleElement.type = \"text/css\";\n\tinsertStyleElement(options, styleElement);\n\treturn styleElement;\n}\n\nfunction createLinkElement(options) {\n\tvar linkElement = document.createElement(\"link\");\n\tlinkElement.rel = \"stylesheet\";\n\tinsertStyleElement(options, linkElement);\n\treturn linkElement;\n}\n\nfunction addStyle(obj, options) {\n\tvar styleElement, update, remove;\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\n\t} else if(obj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\") {\n\t\tstyleElement = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t\tif(styleElement.href)\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\n\t\t};\n\t} else {\n\t\tstyleElement = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, styleElement);\n\t\tremove = function() {\n\t\t\tremoveStyleElement(styleElement);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle(newObj) {\n\t\tif(newObj) {\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\n\t\t\t\treturn;\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = styleElement.childNodes;\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\n\t\tif (childNodes.length) {\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyleElement.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag(styleElement, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyleElement.setAttribute(\"media\", media)\n\t}\n\n\tif(styleElement.styleSheet) {\n\t\tstyleElement.styleSheet.cssText = css;\n\t} else {\n\t\twhile(styleElement.firstChild) {\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\n\t\t}\n\t\tstyleElement.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink(linkElement, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\tif(sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = linkElement.href;\n\n\tlinkElement.href = URL.createObjectURL(blob);\n\n\tif(oldSrc)\n\t\tURL.revokeObjectURL(oldSrc);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/style-loader/addStyles.js\n// module id = 32\n// module chunks = 6"],"sourceRoot":""}