├── .editorconfig ├── .eslintrc.js ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ └── nodejs.yml ├── .gitignore ├── .stylelintrc.js ├── .travis.yml ├── LICENSE ├── README.md ├── config ├── site.config.js ├── webpack.config.js ├── webpack.loaders.js └── webpack.plugins.js ├── dist ├── 404.html ├── app.1fbf3c8c20a227f13670.js ├── app.1fbf3c8c20a227f13670.js.map ├── app.c05b66e3a5fcf271f54d.js ├── app.c05b66e3a5fcf271f54d.js.map ├── easysfp.js ├── easysfp.js.map ├── images │ ├── favicons │ │ ├── android-chrome-144x144.png │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-256x256.png │ │ ├── android-chrome-36x36.png │ │ ├── android-chrome-384x384.png │ │ ├── android-chrome-48x48.png │ │ ├── android-chrome-512x512.png │ │ ├── android-chrome-72x72.png │ │ ├── android-chrome-96x96.png │ │ ├── apple-touch-icon-1024x1024.png │ │ ├── apple-touch-icon-114x114.png │ │ ├── apple-touch-icon-120x120.png │ │ ├── apple-touch-icon-144x144.png │ │ ├── apple-touch-icon-152x152.png │ │ ├── apple-touch-icon-167x167.png │ │ ├── apple-touch-icon-180x180.png │ │ ├── apple-touch-icon-57x57.png │ │ ├── apple-touch-icon-60x60.png │ │ ├── apple-touch-icon-72x72.png │ │ ├── apple-touch-icon-76x76.png │ │ ├── apple-touch-icon-precomposed.png │ │ ├── apple-touch-icon.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ └── manifest.json │ └── logo.25d7158fa49a55318a202060fad534a3.png ├── index.html ├── robots.txt ├── sitemap.xml └── style.8361be0ee024f416832d.css ├── netlify.toml ├── package-lock.json ├── package.json └── src ├── 404.html ├── app └── index.js ├── images ├── favicon.png └── logo.png ├── index.html ├── robots.txt ├── script ├── index.js ├── packages_db.json ├── store.js ├── ui-handlers.js └── utils.js └── stylesheets ├── _base.scss ├── _layout.scss ├── _utils.scss ├── _variables.scss ├── components ├── _buttons.scss ├── _highlight.scss └── _typography.scss ├── pages └── _landing.scss └── styles.scss /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | indent_size = 2 8 | indent_style = space 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "extends": "airbnb-base", 3 | "env": { 4 | "browser": true, 5 | "node": true 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Type command '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Additional context** 32 | Add any other context about the problem here. 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- 1 | name: Node CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | strategy: 11 | matrix: 12 | node-version: [12.x] 13 | 14 | steps: 15 | - uses: actions/checkout@v1 16 | - name: Use Node.js ${{ matrix.node-version }} 17 | uses: actions/setup-node@v1 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | - name: npm install and build 21 | run: | 22 | npm install 23 | npm run build:dist --if-present 24 | env: 25 | CI: true 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | 3 | ## Node.js 4 | lib-cov 5 | *.seed 6 | *.log 7 | *.csv 8 | *.dat 9 | *.out 10 | *.pid 11 | *.gz 12 | pids 13 | logs 14 | results 15 | npm-debug.log 16 | node_modules 17 | 18 | ## Sass 19 | .sass-cache 20 | 21 | ## OS X 22 | .DS_Store 23 | .AppleDouble 24 | .LSOverride 25 | Icon 26 | ._* 27 | .Spotlight-V100 28 | .Trashes 29 | 30 | ## Windows 31 | Thumbs.db 32 | ehthumbs.db 33 | Desktop.ini 34 | $RECYCLE.BIN/ 35 | -------------------------------------------------------------------------------- /.stylelintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "extends": "stylelint-config-standard", 3 | "plugins": ["stylelint-scss"], 4 | "rules": { 5 | "at-rule-no-unknown": null, 6 | "scss/at-rule-no-unknown": true, 7 | "no-descending-specificity": null 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - node 5 | - lts/* 6 | 7 | install: 8 | - SKIP_SETUP=true npm install 9 | 10 | script: 11 | - npm run lint:styles 12 | - npm run lint:js 13 | - npm run build:dist 14 | 15 | dist: trusty 16 | sudo: false 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 5x 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Easy Steam free packages script 2 | 3 | Script for automation activation free packages (games, movies, DLC, etc.) on Steam platform. It register as more as possible free packages to you Steam account. 4 | The database contains more than 10,000 (check faq section for details) packages that will be added and available in the library forever after activation. 5 | 6 | Based on [SteamDB](https://steamdb.info/freepackages/) script and package list. Provide more futures, like visualization of progress, possibility of continuous activation, passed already registered products, etc. 7 | 8 | * Homepage: [https://5x.github.io/easy-steam-free-packages](https://5x.github.io/easy-steam-free-packages) 9 | 10 | ## Instruction of usage 11 | 12 | 1. Copy [script](https://github.com/5x/easy-steam-free-packages/blob/master/dist/easysfp.js) to Clipboard 13 | 1. Open your [licenses and product key activations](https://store.steampowered.com/account/licenses/) page 14 | 1. Open developer tools in your browser, [read more here](https://webmasters.stackexchange.com/a/77337) 15 | 1. Paste script to console 16 | 1. Wait for it to finish, it may take a while 17 | 1. Enjoy 18 | 19 | ## FAQ 20 | **Why it take so long to complete the script?** 21 | 22 | The Steam API has limitation for only 50 packages activation per one hour. 23 | 24 | **Why not all available packages will be registered to you account?** 25 | 26 | Some of packages like DLC, require to activate first base game first. Some can be not available on you region, or have other restrict. 27 | 28 | **Can i be banned for use this script?** 29 | 30 | No, this is Steam built-in feature. This script does not violate service terms of usage. Use this at your own risk, the author assumes no responsibility. 31 | 32 | **What's the point of this?** 33 | 34 | If some of this free packages will be removed or will be paid at future, you still be able to play them for free. A few games when installed give you +1 Games on your profile. 35 | 36 | 37 | ## Support & Contributing 38 | Anyone is welcome to contribute. If you decide to get involved, please take a moment and check out the following: 39 | 40 | * [Bug reports](.github/ISSUE_TEMPLATE/bug_report.md) 41 | * [Feature requests](.github/ISSUE_TEMPLATE/feature_request.md) 42 | 43 | ## License 44 | 45 | The code is available under the [MIT license](LICENSE). 46 | -------------------------------------------------------------------------------- /config/site.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | let ROOT = process.env.PWD; 5 | 6 | if (!ROOT) { 7 | ROOT = process.cwd(); 8 | } 9 | 10 | const config = { 11 | // Your website's name, used for favicon meta tags 12 | site_name: 'easy-steam-free-packages', 13 | 14 | // Your website's description, used for favicon meta tags 15 | site_description: 'Script for automation activation free packages(games, movies, DLC, etc.) on Steam platform.', 16 | 17 | // Your website's URL, used for sitemap 18 | site_url: 'https://github.com/5x/easy-steam-free-packages/', 19 | 20 | // Google Analytics tracking ID (leave blank to disable) 21 | googleAnalyticsUA: '', 22 | 23 | // The viewport meta tag added to your HTML page's tag 24 | viewport: 'width=device-width,initial-scale=1', 25 | 26 | // Source file for favicon generation. 512x512px recommended. 27 | favicon: path.join(ROOT, '/src/images/favicon.png'), 28 | 29 | // Local development URL 30 | dev_host: 'localhost', 31 | 32 | // Local development port 33 | port: process.env.PORT || 8000, 34 | 35 | // Advanced configuration, edit with caution! 36 | env: process.env.NODE_ENV, 37 | root: ROOT, 38 | paths: { 39 | config: 'config', 40 | src: 'src', 41 | dist: 'dist', 42 | }, 43 | package: JSON.parse( 44 | fs.readFileSync(path.join(ROOT, '/package.json'), {encoding: 'utf-8'}), 45 | ), 46 | }; 47 | 48 | module.exports = config; 49 | -------------------------------------------------------------------------------- /config/webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | const config = require('./site.config'); 4 | const loaders = require('./webpack.loaders'); 5 | const plugins = require('./webpack.plugins'); 6 | 7 | const appConfig = { 8 | context: path.join(config.root, config.paths.src), 9 | entry: { 10 | app: [ 11 | path.join(config.root, config.paths.src, 'app/index.js'), 12 | path.join(config.root, config.paths.src, 'stylesheets/styles.scss'), 13 | ], 14 | }, 15 | output: { 16 | path: path.join(config.root, config.paths.dist), 17 | publicPath: config.site_url, 18 | filename: '[name].[hash].js', 19 | }, 20 | mode: ['production', 'development'].includes(config.env) 21 | ? config.env 22 | : 'development', 23 | devtool: config.env === 'production' 24 | ? 'hidden-source-map' 25 | : 'cheap-eval-source-map', 26 | devServer: { 27 | contentBase: path.join(config.root, config.paths.src), 28 | watchContentBase: true, 29 | hot: true, 30 | open: true, 31 | port: config.port, 32 | host: config.dev_host, 33 | }, 34 | module: { 35 | rules: loaders, 36 | }, 37 | plugins, 38 | }; 39 | 40 | const libraryConfig = { 41 | context: path.join(config.root, config.paths.src), 42 | entry: { 43 | easysfp: path.join(config.root, config.paths.src, 'script/index.js'), 44 | }, 45 | output: { 46 | library: 'easysfp', 47 | libraryTarget: 'var', 48 | path: path.join(config.root, config.paths.dist), 49 | filename: '[name].js', 50 | }, 51 | mode: ['production', 'development'].includes(config.env) 52 | ? config.env 53 | : 'development', 54 | devtool: config.env === 'production' 55 | ? 'hidden-source-map' 56 | : 'cheap-eval-source-map', 57 | module: { 58 | rules: loaders, 59 | }, 60 | }; 61 | 62 | 63 | module.exports = [appConfig, libraryConfig]; 64 | -------------------------------------------------------------------------------- /config/webpack.loaders.js: -------------------------------------------------------------------------------- 1 | const MiniCssExtractPlugin = require('mini-css-extract-plugin'); 2 | const config = require('./site.config'); 3 | 4 | // Define common loader constants 5 | const sourceMap = config.env !== 'production'; 6 | 7 | // HTML loaders 8 | const html = { 9 | test: /\.(html)$/, 10 | use: [ 11 | { 12 | loader: 'html-loader', 13 | options: { 14 | interpolate: true, 15 | }, 16 | }, 17 | ], 18 | }; 19 | 20 | // Javascript loaders 21 | const js = { 22 | test: /\.js(x)?$/, 23 | exclude: /node_modules/, 24 | use: [ 25 | { 26 | loader: 'babel-loader', 27 | options: { 28 | presets: ['@babel/preset-env'], 29 | }, 30 | }, 31 | 'eslint-loader', 32 | ], 33 | }; 34 | 35 | // Style loaders 36 | const styleLoader = { 37 | loader: 'style-loader', 38 | options: { 39 | sourceMap, 40 | }, 41 | }; 42 | 43 | const cssLoader = { 44 | loader: 'css-loader', 45 | options: { 46 | sourceMap, 47 | }, 48 | }; 49 | 50 | const postcssLoader = { 51 | loader: 'postcss-loader', 52 | options: { 53 | plugins: [ 54 | require('autoprefixer')(), 55 | ], 56 | sourceMap, 57 | }, 58 | }; 59 | 60 | const css = { 61 | test: /\.css$/, 62 | use: [ 63 | config.env === 'production' ? MiniCssExtractPlugin.loader : styleLoader, 64 | cssLoader, 65 | postcssLoader, 66 | ], 67 | }; 68 | 69 | const sass = { 70 | test: /\.s[c|a]ss$/, 71 | use: [ 72 | config.env === 'production' ? MiniCssExtractPlugin.loader : styleLoader, 73 | cssLoader, 74 | postcssLoader, 75 | { 76 | loader: 'sass-loader', 77 | options: { 78 | sourceMap, 79 | }, 80 | }, 81 | ], 82 | }; 83 | 84 | const less = { 85 | test: /\.less$/, 86 | use: [ 87 | config.env === 'production' ? MiniCssExtractPlugin.loader : styleLoader, 88 | cssLoader, 89 | postcssLoader, 90 | { 91 | loader: 'less-loader', 92 | options: { 93 | sourceMap, 94 | }, 95 | }, 96 | ], 97 | }; 98 | 99 | // Image loaders 100 | const imageLoader = { 101 | loader: 'image-webpack-loader', 102 | options: { 103 | bypassOnDebug: true, 104 | gifsicle: { 105 | interlaced: false, 106 | }, 107 | optipng: { 108 | optimizationLevel: 7, 109 | }, 110 | pngquant: { 111 | quality: '65-90', 112 | speed: 4, 113 | }, 114 | mozjpeg: { 115 | progressive: true, 116 | }, 117 | }, 118 | }; 119 | 120 | const images = { 121 | test: /\.(gif|png|jpe?g|svg)$/i, 122 | exclude: /fonts/, 123 | use: [ 124 | 'file-loader?name=images/[name].[hash].[ext]', 125 | config.env === 'production' ? imageLoader : null, 126 | ].filter(Boolean), 127 | }; 128 | 129 | // Font loaders 130 | const fonts = { 131 | test: /\.(woff|woff2|eot|ttf|otf|svg)$/, 132 | exclude: /images/, 133 | use: [ 134 | { 135 | loader: 'file-loader', 136 | query: { 137 | name: '[name].[hash].[ext]', 138 | outputPath: 'fonts/', 139 | }, 140 | }, 141 | ], 142 | }; 143 | 144 | // Video loaders 145 | const videos = { 146 | test: /\.(mp4|webm)$/, 147 | use: [ 148 | { 149 | loader: 'file-loader', 150 | query: { 151 | name: '[name].[hash].[ext]', 152 | outputPath: 'images/', 153 | }, 154 | }, 155 | ], 156 | }; 157 | 158 | module.exports = [ 159 | html, 160 | js, 161 | css, 162 | sass, 163 | less, 164 | images, 165 | fonts, 166 | videos, 167 | ]; 168 | -------------------------------------------------------------------------------- /config/webpack.plugins.js: -------------------------------------------------------------------------------- 1 | const webpack = require('webpack'); 2 | const cssnano = require('cssnano'); 3 | const glob = require('glob'); 4 | const path = require('path'); 5 | const fs = require('fs'); 6 | 7 | const WebpackBar = require('webpackbar'); 8 | const CleanWebpackPlugin = require('clean-webpack-plugin'); 9 | const HTMLWebpackPlugin = require('html-webpack-plugin'); 10 | const StyleLintPlugin = require('stylelint-webpack-plugin'); 11 | const WebappWebpackPlugin = require('webapp-webpack-plugin'); 12 | const MiniCssExtractPlugin = require('mini-css-extract-plugin'); 13 | const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); 14 | const RobotstxtPlugin = require('robotstxt-webpack-plugin').default; 15 | const SitemapPlugin = require('sitemap-webpack-plugin').default; 16 | 17 | const config = require('./site.config'); 18 | 19 | // Hot module replacement 20 | const hmr = new webpack.HotModuleReplacementPlugin(); 21 | 22 | // Optimize CSS assets 23 | const optimizeCss = new OptimizeCssAssetsPlugin({ 24 | assetNameRegExp: /\.css$/g, 25 | cssProcessor: cssnano, 26 | cssProcessorPluginOptions: { 27 | preset: [ 28 | 'default', 29 | { 30 | discardComments: { 31 | removeAll: true, 32 | }, 33 | }, 34 | ], 35 | }, 36 | canPrint: true, 37 | }); 38 | 39 | // Generate robots.txt 40 | const robots = new RobotstxtPlugin({ 41 | sitemap: `${config.site_url}/sitemap.xml`, 42 | host: config.site_url, 43 | }); 44 | 45 | // Clean webpack 46 | const clean = new CleanWebpackPlugin(['dist'], { 47 | root: config.root, 48 | }); 49 | 50 | // Stylelint 51 | const stylelint = new StyleLintPlugin(); 52 | 53 | // Extract CSS 54 | const cssExtract = new MiniCssExtractPlugin({ 55 | filename: 'style.[contenthash].css', 56 | }); 57 | 58 | // HTML generation 59 | const paths = []; 60 | const generateHTMLPlugins = () => glob.sync('./src/**/*.html').map((dir) => { 61 | const filename = path.basename(dir); 62 | 63 | if (filename !== '404.html') { 64 | paths.push(filename); 65 | } 66 | 67 | return new HTMLWebpackPlugin({ 68 | filename, 69 | template: path.join(config.root, config.paths.src, filename), 70 | meta: { 71 | viewport: config.viewport, 72 | }, 73 | inject: 'body', 74 | chunks: ['app'], 75 | }); 76 | }); 77 | 78 | // Sitemap 79 | const sitemap = new SitemapPlugin(config.site_url, paths, { 80 | priority: 1.0, 81 | lastmodrealtime: true, 82 | }); 83 | 84 | // Favicons 85 | const favicons = new WebappWebpackPlugin({ 86 | logo: config.favicon, 87 | prefix: 'images/favicons/', 88 | favicons: { 89 | appName: config.site_name, 90 | appDescription: config.site_description, 91 | developerName: null, 92 | developerURL: null, 93 | icons: { 94 | android: true, 95 | appleIcon: true, 96 | appleStartup: false, 97 | coast: false, 98 | favicons: true, 99 | firefox: false, 100 | windows: false, 101 | yandex: false, 102 | }, 103 | }, 104 | }); 105 | 106 | // Webpack bar 107 | const webpackBar = new WebpackBar({ 108 | color: '#ff6469', 109 | }); 110 | 111 | // Google analytics 112 | const CODE = ``; 113 | 114 | class GoogleAnalyticsPlugin { 115 | constructor({id}) { 116 | this.id = id; 117 | } 118 | 119 | apply(compiler) { 120 | compiler.hooks.compilation.tap('GoogleAnalyticsPlugin', (compilation) => { 121 | HTMLWebpackPlugin.getHooks(compilation).beforeEmit.tapAsync( 122 | 'GoogleAnalyticsPlugin', 123 | (data, cb) => { 124 | data.html = data.html.replace('', `${CODE.replace('{{ID}}', this.id) }`); 125 | cb(null, data); 126 | }, 127 | ); 128 | }); 129 | } 130 | } 131 | 132 | const google = new GoogleAnalyticsPlugin({ 133 | id: config.googleAnalyticsUA, 134 | }); 135 | 136 | module.exports = [ 137 | clean, 138 | stylelint, 139 | cssExtract, 140 | ...generateHTMLPlugins(), 141 | fs.existsSync(config.favicon) && favicons, 142 | config.env === 'production' && optimizeCss, 143 | config.env === 'production' && robots, 144 | config.env === 'production' && sitemap, 145 | config.googleAnalyticsUA && google, 146 | webpackBar, 147 | config.env === 'development' && hmr, 148 | ].filter(Boolean); 149 | -------------------------------------------------------------------------------- /dist/404.html: -------------------------------------------------------------------------------- 1 | 404 Page not found

Page Not Found

Sorry, but the page you were trying to view does not exist.

Return to home page -------------------------------------------------------------------------------- /dist/app.1fbf3c8c20a227f13670.js: -------------------------------------------------------------------------------- 1 | !function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="https://github.com/5x/easy-steam-free-packages/",n(n.s=1)}([function(t,e,n){ 2 | /*! 3 | * clipboard.js v2.0.6 4 | * https://clipboardjs.com/ 5 | * 6 | * Licensed MIT © Zeno Rocha 7 | */ 8 | var r;r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=6)}([function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(t),r.removeAllRanges(),r.addRange(o),e=r.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function o(){r.off(t,o),e.apply(n,arguments)}return o._=e,this.on(t,o,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;r0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=o()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=o()(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}(),u=n(1),l=n.n(u),s=n(2),f=n.n(s),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=f()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new c({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return y("action",t)}},{key:"defaultTarget",value:function(t){var e=y("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return y("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(l.a);function y(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}e.default=p}]).default},t.exports=r()},function(t,e,n){n(2),t.exports=n(3)},function(t,e,n){"use strict";n.r(e);var r=n(0),o=n.n(r),i=document.querySelectorAll(".--copy"),a=(new o.a(i),document.getElementById("esfps"));fetch("https://raw.githubusercontent.com/5x/easy-steam-free-packages/gh-pages/easysfp.js",{headers:{"Content-Type":"text/plain"}}).then((function(t){return t.text()})).then((function(t){a.value=t}))},function(t,e,n){}]); -------------------------------------------------------------------------------- /dist/app.1fbf3c8c20a227f13670.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///app.193bc63354073d9fb6f2.js"],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","factory","element","selectedText","nodeName","focus","isReadOnly","hasAttribute","setAttribute","select","setSelectionRange","length","removeAttribute","selection","window","getSelection","range","document","createRange","selectNodeContents","removeAllRanges","addRange","toString","E","on","callback","ctx","e","this","push","fn","once","self","listener","off","apply","arguments","_","emit","data","slice","evtArr","len","evts","liveEvents","TinyEmitter","is","delegate","target","type","Error","string","TypeError","node","addEventListener","destroy","removeEventListener","listenNode","nodeList","Array","forEach","listenNodeList","selector","body","listenSelector","undefined","HTMLElement","nodeType","String","closest","_delegate","useCapture","listenerFn","delegateTarget","elements","querySelectorAll","map","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","__webpack_exports__","src_select","select_default","_typeof","iterator","obj","constructor","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","clipboard_action","ClipboardAction","options","instance","_classCallCheck","resolveOptions","initSelection","action","container","emitter","text","trigger","selectFake","selectTarget","_this","isRTL","documentElement","getAttribute","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","appendChild","copyText","removeChild","succeeded","execCommand","err","handleResult","clearSelection","activeElement","blur","set","_action","_target","tiny_emitter","tiny_emitter_default","listen","listen_default","clipboard_typeof","clipboard_createClass","clipboard_Clipboard","_Emitter","Clipboard","clipboard_classCallCheck","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","listenClick","subClass","superClass","setPrototypeOf","_inherits","defaultAction","defaultTarget","defaultText","_this2","onClick","currentTarget","clipboardAction","getAttributeValue","querySelector","actions","support","queryCommandSupported","a","suffix","attribute","clipboard__WEBPACK_IMPORTED_MODULE_0__","clipboard__WEBPACK_IMPORTED_MODULE_0___default","copyElements","esfpsContainerElement","getElementById","fetch","headers","Content-Type","then","response"],"mappings":"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","file":"app.1fbf3c8c20a227f13670.js","sourceRoot":""} -------------------------------------------------------------------------------- /dist/app.c05b66e3a5fcf271f54d.js: -------------------------------------------------------------------------------- 1 | !function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="https://github.com/5x/easy-steam-free-packages/",n(n.s=1)}([function(t,e,n){ 2 | /*! 3 | * clipboard.js v2.0.6 4 | * https://clipboardjs.com/ 5 | * 6 | * Licensed MIT © Zeno Rocha 7 | */ 8 | var r;r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=6)}([function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),o=document.createRange();o.selectNodeContents(t),r.removeAllRanges(),r.addRange(o),e=r.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function o(){r.off(t,o),e.apply(n,arguments)}return o._=e,this.on(t,o,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;r0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=o()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=o()(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}(),u=n(1),l=n.n(u),s=n(2),f=n.n(s),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=f()(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new c({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return y("action",t)}},{key:"defaultTarget",value:function(t){var e=y("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return y("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(l.a);function y(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}e.default=p}]).default},t.exports=r()},function(t,e,n){n(2),t.exports=n(3)},function(t,e,n){"use strict";n.r(e);var r=n(0),o=n.n(r),i=document.querySelectorAll(".--copy"),a=(new o.a(i),document.getElementById("esfps"));fetch("https://raw.githubusercontent.com/5x/easy-steam-free-packages/gh-pages/easysfp.js",{headers:{"Content-Type":"text/plain"}}).then((function(t){return t.text()})).then((function(t){a.value=t}))},function(t,e,n){}]); -------------------------------------------------------------------------------- /dist/app.c05b66e3a5fcf271f54d.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///app.193bc63354073d9fb6f2.js"],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","factory","element","selectedText","nodeName","focus","isReadOnly","hasAttribute","setAttribute","select","setSelectionRange","length","removeAttribute","selection","window","getSelection","range","document","createRange","selectNodeContents","removeAllRanges","addRange","toString","E","on","callback","ctx","e","this","push","fn","once","self","listener","off","apply","arguments","_","emit","data","slice","evtArr","len","evts","liveEvents","TinyEmitter","is","delegate","target","type","Error","string","TypeError","node","addEventListener","destroy","removeEventListener","listenNode","nodeList","Array","forEach","listenNodeList","selector","body","listenSelector","undefined","HTMLElement","nodeType","String","closest","_delegate","useCapture","listenerFn","delegateTarget","elements","querySelectorAll","map","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","parentNode","__webpack_exports__","src_select","select_default","_typeof","iterator","obj","constructor","_createClass","defineProperties","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","clipboard_action","ClipboardAction","options","instance","_classCallCheck","resolveOptions","initSelection","action","container","emitter","text","trigger","selectFake","selectTarget","_this","isRTL","documentElement","getAttribute","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","createElement","style","fontSize","border","padding","margin","position","yPosition","pageYOffset","scrollTop","top","appendChild","copyText","removeChild","succeeded","execCommand","err","handleResult","clearSelection","activeElement","blur","set","_action","_target","tiny_emitter","tiny_emitter_default","listen","listen_default","clipboard_typeof","clipboard_createClass","clipboard_Clipboard","_Emitter","Clipboard","clipboard_classCallCheck","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","listenClick","subClass","superClass","setPrototypeOf","_inherits","defaultAction","defaultTarget","defaultText","_this2","onClick","currentTarget","clipboardAction","getAttributeValue","querySelector","actions","support","queryCommandSupported","a","suffix","attribute","clipboard__WEBPACK_IMPORTED_MODULE_0__","clipboard__WEBPACK_IMPORTED_MODULE_0___default","copyElements","esfpsContainerElement","getElementById","fetch","headers","Content-Type","then","response"],"mappings":"CAAS,SAAUA,GAET,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAJ,EAAQG,GAAUK,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBO,EAAIT,EAGxBE,EAAoBQ,EAAIT,EAGxBC,EAAoBS,EAAI,SAASP,EAASQ,EAAMC,GAC3CX,EAAoBY,EAAEV,EAASQ,IAClCG,OAAOC,eAAeZ,EAASQ,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEX,EAAoBiB,EAAI,SAASf,GACX,oBAAXgB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeZ,EAASgB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,KAQvDpB,EAAoBqB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQpB,EAAoBoB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAzB,EAAoBiB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOpB,EAAoBS,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRxB,EAAoB4B,EAAI,SAASzB,GAChC,IAAIQ,EAASR,GAAUA,EAAOoB,WAC7B,WAAwB,OAAOpB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBS,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRX,EAAoBY,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG9B,EAAoBiC,EAAI,kDAIjBjC,EAAoBA,EAAoBkC,EAAI,GAnFpD,CAsFC,CAEJ,SAAU/B,EAAQD,EAASF;;;;;;;AAQjC,IAAiDmC,IAIxC,WACT,OAAgB,SAAUrC,GAEhB,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAJ,EAAQG,GAAUK,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QA0Df,OArDAF,EAAoBO,EAAIT,EAGxBE,EAAoBQ,EAAIT,EAGxBC,EAAoBS,EAAI,SAASP,EAASQ,EAAMC,GAC3CX,EAAoBY,EAAEV,EAASQ,IAClCG,OAAOC,eAAeZ,EAASQ,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEX,EAAoBiB,EAAI,SAASf,GACX,oBAAXgB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeZ,EAASgB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeZ,EAAS,aAAc,CAAEkB,OAAO,KAQvDpB,EAAoBqB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQpB,EAAoBoB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAzB,EAAoBiB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOpB,EAAoBS,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRxB,EAAoB4B,EAAI,SAASzB,GAChC,IAAIQ,EAASR,GAAUA,EAAOoB,WAC7B,WAAwB,OAAOpB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBS,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRX,EAAoBY,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG9B,EAAoBiC,EAAI,GAIjBjC,EAAoBA,EAAoBkC,EAAI,GAnF7C,CAsFN,CAEJ,SAAU/B,EAAQD,GA4CxBC,EAAOD,QA1CP,SAAgBkC,GACZ,IAAIC,EAEJ,GAAyB,WAArBD,EAAQE,SACRF,EAAQG,QAERF,EAAeD,EAAQhB,WAEtB,GAAyB,UAArBgB,EAAQE,UAA6C,aAArBF,EAAQE,SAAyB,CACtE,IAAIE,EAAaJ,EAAQK,aAAa,YAEjCD,GACDJ,EAAQM,aAAa,WAAY,IAGrCN,EAAQO,SACRP,EAAQQ,kBAAkB,EAAGR,EAAQhB,MAAMyB,QAEtCL,GACDJ,EAAQU,gBAAgB,YAG5BT,EAAeD,EAAQhB,UAEtB,CACGgB,EAAQK,aAAa,oBACrBL,EAAQG,QAGZ,IAAIQ,EAAYC,OAAOC,eACnBC,EAAQC,SAASC,cAErBF,EAAMG,mBAAmBjB,GACzBW,EAAUO,kBACVP,EAAUQ,SAASL,GAEnBb,EAAeU,EAAUS,WAG7B,OAAOnB,IAQL,SAAUlC,EAAQD,GAExB,SAASuD,KAKTA,EAAE1B,UAAY,CACZ2B,GAAI,SAAUhD,EAAMiD,EAAUC,GAC5B,IAAIC,EAAIC,KAAKD,IAAMC,KAAKD,EAAI,IAO5B,OALCA,EAAEnD,KAAUmD,EAAEnD,GAAQ,KAAKqD,KAAK,CAC/BC,GAAIL,EACJC,IAAKA,IAGAE,MAGTG,KAAM,SAAUvD,EAAMiD,EAAUC,GAC9B,IAAIM,EAAOJ,KACX,SAASK,IACPD,EAAKE,IAAI1D,EAAMyD,GACfR,EAASU,MAAMT,EAAKU,WAItB,OADAH,EAASI,EAAIZ,EACNG,KAAKJ,GAAGhD,EAAMyD,EAAUP,IAGjCY,KAAM,SAAU9D,GAMd,IALA,IAAI+D,EAAO,GAAGC,MAAMpE,KAAKgE,UAAW,GAChCK,IAAWb,KAAKD,IAAMC,KAAKD,EAAI,KAAKnD,IAAS,IAAIgE,QACjDtE,EAAI,EACJwE,EAAMD,EAAO9B,OAETzC,EAAIwE,EAAKxE,IACfuE,EAAOvE,GAAG4D,GAAGK,MAAMM,EAAOvE,GAAGwD,IAAKa,GAGpC,OAAOX,MAGTM,IAAK,SAAU1D,EAAMiD,GACnB,IAAIE,EAAIC,KAAKD,IAAMC,KAAKD,EAAI,IACxBgB,EAAOhB,EAAEnD,GACToE,EAAa,GAEjB,GAAID,GAAQlB,EACV,IAAK,IAAIvD,EAAI,EAAGwE,EAAMC,EAAKhC,OAAQzC,EAAIwE,EAAKxE,IACtCyE,EAAKzE,GAAG4D,KAAOL,GAAYkB,EAAKzE,GAAG4D,GAAGO,IAAMZ,GAC9CmB,EAAWf,KAAKc,EAAKzE,IAY3B,OAJC0E,EAAiB,OACdjB,EAAEnD,GAAQoE,SACHjB,EAAEnD,GAENoD,OAIX3D,EAAOD,QAAUuD,EACjBtD,EAAOD,QAAQ6E,YAActB,GAKvB,SAAUtD,EAAQD,EAASF,GAEjC,IAAIgF,EAAKhF,EAAoB,GACzBiF,EAAWjF,EAAoB,GA6FnCG,EAAOD,QAlFP,SAAgBgF,EAAQC,EAAMxB,GAC1B,IAAKuB,IAAWC,IAASxB,EACrB,MAAM,IAAIyB,MAAM,8BAGpB,IAAKJ,EAAGK,OAAOF,GACX,MAAM,IAAIG,UAAU,oCAGxB,IAAKN,EAAGhB,GAAGL,GACP,MAAM,IAAI2B,UAAU,qCAGxB,GAAIN,EAAGO,KAAKL,GACR,OAsBR,SAAoBK,EAAMJ,EAAMxB,GAG5B,OAFA4B,EAAKC,iBAAiBL,EAAMxB,GAErB,CACH8B,QAAS,WACLF,EAAKG,oBAAoBP,EAAMxB,KA3B5BgC,CAAWT,EAAQC,EAAMxB,GAE/B,GAAIqB,EAAGY,SAASV,GACjB,OAsCR,SAAwBU,EAAUT,EAAMxB,GAKpC,OAJAkC,MAAM9D,UAAU+D,QAAQxF,KAAKsF,GAAU,SAASL,GAC5CA,EAAKC,iBAAiBL,EAAMxB,MAGzB,CACH8B,QAAS,WACLI,MAAM9D,UAAU+D,QAAQxF,KAAKsF,GAAU,SAASL,GAC5CA,EAAKG,oBAAoBP,EAAMxB,QA9ChCoC,CAAeb,EAAQC,EAAMxB,GAEnC,GAAIqB,EAAGK,OAAOH,GACf,OA0DR,SAAwBc,EAAUb,EAAMxB,GACpC,OAAOsB,EAAS9B,SAAS8C,KAAMD,EAAUb,EAAMxB,GA3DpCuC,CAAehB,EAAQC,EAAMxB,GAGpC,MAAM,IAAI2B,UAAU,+EAgEtB,SAAUnF,EAAQD,GAQxBA,EAAQqF,KAAO,SAASnE,GACpB,YAAiB+E,IAAV/E,GACAA,aAAiBgF,aACE,IAAnBhF,EAAMiF,UASjBnG,EAAQ0F,SAAW,SAASxE,GACxB,IAAI+D,EAAOtE,OAAOkB,UAAUyB,SAASlD,KAAKc,GAE1C,YAAiB+E,IAAV/E,IACU,sBAAT+D,GAAyC,4BAATA,IAChC,WAAY/D,IACK,IAAjBA,EAAMyB,QAAgB3C,EAAQqF,KAAKnE,EAAM,MASrDlB,EAAQmF,OAAS,SAASjE,GACtB,MAAwB,iBAAVA,GACPA,aAAiBkF,QAS5BpG,EAAQ8D,GAAK,SAAS5C,GAGlB,MAAgB,sBAFLP,OAAOkB,UAAUyB,SAASlD,KAAKc,KAQxC,SAAUjB,EAAQD,EAASF,GAEjC,IAAIuG,EAAUvG,EAAoB,GAYlC,SAASwG,EAAUpE,EAAS4D,EAAUb,EAAMxB,EAAU8C,GAClD,IAAIC,EAAavC,EAASE,MAAMP,KAAMQ,WAItC,OAFAlC,EAAQoD,iBAAiBL,EAAMuB,EAAYD,GAEpC,CACHhB,QAAS,WACLrD,EAAQsD,oBAAoBP,EAAMuB,EAAYD,KAgD1D,SAAStC,EAAS/B,EAAS4D,EAAUb,EAAMxB,GACvC,OAAO,SAASE,GACZA,EAAE8C,eAAiBJ,EAAQ1C,EAAEqB,OAAQc,GAEjCnC,EAAE8C,gBACFhD,EAASrD,KAAK8B,EAASyB,IAKnC1D,EAAOD,QA3CP,SAAkB0G,EAAUZ,EAAUb,EAAMxB,EAAU8C,GAElD,MAAyC,mBAA9BG,EAASpB,iBACTgB,EAAUnC,MAAM,KAAMC,WAIb,mBAATa,EAGAqB,EAAU7E,KAAK,KAAMwB,UAAUkB,MAAM,KAAMC,YAI9B,iBAAbsC,IACPA,EAAWzD,SAAS0D,iBAAiBD,IAIlCf,MAAM9D,UAAU+E,IAAIxG,KAAKsG,GAAU,SAAUxE,GAChD,OAAOoE,EAAUpE,EAAS4D,EAAUb,EAAMxB,EAAU8C,SA4BtD,SAAUtG,EAAQD,GAOxB,GAAuB,oBAAZ6G,UAA4BA,QAAQhF,UAAUiF,QAAS,CAC9D,IAAIC,EAAQF,QAAQhF,UAEpBkF,EAAMD,QAAUC,EAAMC,iBACND,EAAME,oBACNF,EAAMG,mBACNH,EAAMI,kBACNJ,EAAMK,sBAoB1BnH,EAAOD,QAVP,SAAkBkC,EAAS4D,GACvB,KAAO5D,GAvBc,IAuBHA,EAAQiE,UAAiC,CACvD,GAA+B,mBAApBjE,EAAQ4E,SACf5E,EAAQ4E,QAAQhB,GAClB,OAAO5D,EAETA,EAAUA,EAAQmF,cASpB,SAAUpH,EAAQqH,EAAqBxH,GAE7C,aACAA,EAAoBiB,EAAEuG,GAGtB,IAAIC,EAAazH,EAAoB,GACjC0H,EAA8B1H,EAAoB4B,EAAE6F,GAGpDE,EAA4B,mBAAXzG,QAAoD,iBAApBA,OAAO0G,SAAwB,SAAUC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,mBAAX3G,QAAyB2G,EAAIC,cAAgB5G,QAAU2G,IAAQ3G,OAAOa,UAAY,gBAAkB8F,GAElQE,EAAe,WAAc,SAASC,EAAiB9C,EAAQ+C,GAAS,IAAK,IAAI7H,EAAI,EAAGA,EAAI6H,EAAMpF,OAAQzC,IAAK,CAAE,IAAI8H,EAAaD,EAAM7H,GAAI8H,EAAWnH,WAAamH,EAAWnH,aAAc,EAAOmH,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAMvH,OAAOC,eAAeoE,EAAQgD,EAAWxG,IAAKwG,IAAiB,OAAO,SAAUG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAYtG,UAAWuG,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GA8PcG,EAnPM,WAInC,SAASC,EAAgBC,IAb7B,SAAyBC,EAAUN,GAAe,KAAMM,aAAoBN,GAAgB,MAAM,IAAI/C,UAAU,qCAcxGsD,CAAgB9E,KAAM2E,GAEtB3E,KAAK+E,eAAeH,GACpB5E,KAAKgF,gBAwOT,OA/NAf,EAAaU,EAAiB,CAAC,CAC3B/G,IAAK,iBACLN,MAAO,WACH,IAAIsH,EAAUpE,UAAUzB,OAAS,QAAsBsD,IAAjB7B,UAAU,GAAmBA,UAAU,GAAK,GAElFR,KAAKiF,OAASL,EAAQK,OACtBjF,KAAKkF,UAAYN,EAAQM,UACzBlF,KAAKmF,QAAUP,EAAQO,QACvBnF,KAAKoB,OAASwD,EAAQxD,OACtBpB,KAAKoF,KAAOR,EAAQQ,KACpBpF,KAAKqF,QAAUT,EAAQS,QAEvBrF,KAAKzB,aAAe,KAQzB,CACCX,IAAK,gBACLN,MAAO,WACC0C,KAAKoF,KACLpF,KAAKsF,aACEtF,KAAKoB,QACZpB,KAAKuF,iBASd,CACC3H,IAAK,aACLN,MAAO,WACH,IAAIkI,EAAQxF,KAERyF,EAAwD,OAAhDpG,SAASqG,gBAAgBC,aAAa,OAElD3F,KAAK4F,aAEL5F,KAAK6F,oBAAsB,WACvB,OAAOL,EAAMI,cAEjB5F,KAAK8F,YAAc9F,KAAKkF,UAAUxD,iBAAiB,QAAS1B,KAAK6F,uBAAwB,EAEzF7F,KAAK+F,SAAW1G,SAAS2G,cAAc,YAEvChG,KAAK+F,SAASE,MAAMC,SAAW,OAE/BlG,KAAK+F,SAASE,MAAME,OAAS,IAC7BnG,KAAK+F,SAASE,MAAMG,QAAU,IAC9BpG,KAAK+F,SAASE,MAAMI,OAAS,IAE7BrG,KAAK+F,SAASE,MAAMK,SAAW,WAC/BtG,KAAK+F,SAASE,MAAMR,EAAQ,QAAU,QAAU,UAEhD,IAAIc,EAAYrH,OAAOsH,aAAenH,SAASqG,gBAAgBe,UAC/DzG,KAAK+F,SAASE,MAAMS,IAAMH,EAAY,KAEtCvG,KAAK+F,SAASnH,aAAa,WAAY,IACvCoB,KAAK+F,SAASzI,MAAQ0C,KAAKoF,KAE3BpF,KAAKkF,UAAUyB,YAAY3G,KAAK+F,UAEhC/F,KAAKzB,aAAeqF,IAAiB5D,KAAK+F,UAC1C/F,KAAK4G,aAQV,CACChJ,IAAK,aACLN,MAAO,WACC0C,KAAK8F,cACL9F,KAAKkF,UAAUtD,oBAAoB,QAAS5B,KAAK6F,qBACjD7F,KAAK8F,YAAc,KACnB9F,KAAK6F,oBAAsB,MAG3B7F,KAAK+F,WACL/F,KAAKkF,UAAU2B,YAAY7G,KAAK+F,UAChC/F,KAAK+F,SAAW,QAQzB,CACCnI,IAAK,eACLN,MAAO,WACH0C,KAAKzB,aAAeqF,IAAiB5D,KAAKoB,QAC1CpB,KAAK4G,aAOV,CACChJ,IAAK,WACLN,MAAO,WACH,IAAIwJ,OAAY,EAEhB,IACIA,EAAYzH,SAAS0H,YAAY/G,KAAKiF,QACxC,MAAO+B,GACLF,GAAY,EAGhB9G,KAAKiH,aAAaH,KAQvB,CACClJ,IAAK,eACLN,MAAO,SAAsBwJ,GACzB9G,KAAKmF,QAAQzE,KAAKoG,EAAY,UAAY,QAAS,CAC/C7B,OAAQjF,KAAKiF,OACbG,KAAMpF,KAAKzB,aACX8G,QAASrF,KAAKqF,QACd6B,eAAgBlH,KAAKkH,eAAerJ,KAAKmC,UAQlD,CACCpC,IAAK,iBACLN,MAAO,WACC0C,KAAKqF,SACLrF,KAAKqF,QAAQ5G,QAEjBY,SAAS8H,cAAcC,OACvBlI,OAAOC,eAAeK,oBAQ3B,CACC5B,IAAK,UAMLN,MAAO,WACH0C,KAAK4F,eAEV,CACChI,IAAK,SACLyJ,IAAK,WACD,IAAIpC,EAASzE,UAAUzB,OAAS,QAAsBsD,IAAjB7B,UAAU,GAAmBA,UAAU,GAAK,OAIjF,GAFAR,KAAKsH,QAAUrC,EAEM,SAAjBjF,KAAKsH,SAAuC,QAAjBtH,KAAKsH,QAChC,MAAM,IAAIhG,MAAM,uDASxBpE,IAAK,WACD,OAAO8C,KAAKsH,UASjB,CACC1J,IAAK,SACLyJ,IAAK,SAAajG,GACd,QAAeiB,IAAXjB,EAAsB,CACtB,IAAIA,GAA8E,iBAAjD,IAAXA,EAAyB,YAAcyC,EAAQzC,KAA6C,IAApBA,EAAOmB,SAWjG,MAAM,IAAIjB,MAAM,+CAVhB,GAAoB,SAAhBtB,KAAKiF,QAAqB7D,EAAOzC,aAAa,YAC9C,MAAM,IAAI2C,MAAM,qFAGpB,GAAoB,QAAhBtB,KAAKiF,SAAqB7D,EAAOzC,aAAa,aAAeyC,EAAOzC,aAAa,aACjF,MAAM,IAAI2C,MAAM,0GAGpBtB,KAAKuH,QAAUnG,IAY3BlE,IAAK,WACD,OAAO8C,KAAKuH,YAIb5C,EAhP4B,GAqPnC6C,EAAetL,EAAoB,GACnCuL,EAAoCvL,EAAoB4B,EAAE0J,GAG1DE,EAASxL,EAAoB,GAC7ByL,EAA8BzL,EAAoB4B,EAAE4J,GAGpDE,EAAqC,mBAAXxK,QAAoD,iBAApBA,OAAO0G,SAAwB,SAAUC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,mBAAX3G,QAAyB2G,EAAIC,cAAgB5G,QAAU2G,IAAQ3G,OAAOa,UAAY,gBAAkB8F,GAE3Q8D,EAAwB,WAAc,SAAS3D,EAAiB9C,EAAQ+C,GAAS,IAAK,IAAI7H,EAAI,EAAGA,EAAI6H,EAAMpF,OAAQzC,IAAK,CAAE,IAAI8H,EAAaD,EAAM7H,GAAI8H,EAAWnH,WAAamH,EAAWnH,aAAc,EAAOmH,EAAWC,cAAe,EAAU,UAAWD,IAAYA,EAAWE,UAAW,GAAMvH,OAAOC,eAAeoE,EAAQgD,EAAWxG,IAAKwG,IAAiB,OAAO,SAAUG,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiBK,EAAYtG,UAAWuG,GAAiBC,GAAaP,EAAiBK,EAAaE,GAAqBF,GAA7gB,GAiBxBuD,EAAsB,SAAUC,GAOhC,SAASC,EAAU3C,EAAST,IAtBhC,SAAkCC,EAAUN,GAAe,KAAMM,aAAoBN,GAAgB,MAAM,IAAI/C,UAAU,qCAuBjHyG,CAAyBjI,KAAMgI,GAE/B,IAAIxC,EAvBZ,SAAoCpF,EAAM5D,GAAQ,IAAK4D,EAAQ,MAAM,IAAI8H,eAAe,6DAAgE,OAAO1L,GAAyB,iBAATA,GAAqC,mBAATA,EAA8B4D,EAAP5D,EAuB9M2L,CAA2BnI,MAAOgI,EAAUI,WAAarL,OAAOsL,eAAeL,IAAYxL,KAAKwD,OAI5G,OAFAwF,EAAMT,eAAeH,GACrBY,EAAM8C,YAAYjD,GACXG,EAsIX,OA/JJ,SAAmB+C,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIhH,UAAU,kEAAoEgH,GAAeD,EAAStK,UAAYlB,OAAOY,OAAO6K,GAAcA,EAAWvK,UAAW,CAAE+F,YAAa,CAAE1G,MAAOiL,EAAUtL,YAAY,EAAOqH,UAAU,EAAMD,cAAc,KAAemE,IAAYzL,OAAO0L,eAAiB1L,OAAO0L,eAAeF,EAAUC,GAAcD,EAASH,UAAYI,GAY7dE,CAAUV,EAAWD,GAuBrBF,EAAsBG,EAAW,CAAC,CAC9BpK,IAAK,iBACLN,MAAO,WACH,IAAIsH,EAAUpE,UAAUzB,OAAS,QAAsBsD,IAAjB7B,UAAU,GAAmBA,UAAU,GAAK,GAElFR,KAAKiF,OAAmC,mBAAnBL,EAAQK,OAAwBL,EAAQK,OAASjF,KAAK2I,cAC3E3I,KAAKoB,OAAmC,mBAAnBwD,EAAQxD,OAAwBwD,EAAQxD,OAASpB,KAAK4I,cAC3E5I,KAAKoF,KAA+B,mBAAjBR,EAAQQ,KAAsBR,EAAQQ,KAAOpF,KAAK6I,YACrE7I,KAAKkF,UAAoD,WAAxC0C,EAAiBhD,EAAQM,WAA0BN,EAAQM,UAAY7F,SAAS8C,OAQtG,CACCvE,IAAK,cACLN,MAAO,SAAqB+H,GACxB,IAAIyD,EAAS9I,KAEbA,KAAKK,SAAWsH,IAAiBtC,EAAS,SAAS,SAAUtF,GACzD,OAAO+I,EAAOC,QAAQhJ,QAS/B,CACCnC,IAAK,UACLN,MAAO,SAAiByC,GACpB,IAAIsF,EAAUtF,EAAE8C,gBAAkB9C,EAAEiJ,cAEhChJ,KAAKiJ,kBACLjJ,KAAKiJ,gBAAkB,MAG3BjJ,KAAKiJ,gBAAkB,IAAIvE,EAAiB,CACxCO,OAAQjF,KAAKiF,OAAOI,GACpBjE,OAAQpB,KAAKoB,OAAOiE,GACpBD,KAAMpF,KAAKoF,KAAKC,GAChBH,UAAWlF,KAAKkF,UAChBG,QAASA,EACTF,QAASnF,SASlB,CACCpC,IAAK,gBACLN,MAAO,SAAuB+H,GAC1B,OAAO6D,EAAkB,SAAU7D,KAQxC,CACCzH,IAAK,gBACLN,MAAO,SAAuB+H,GAC1B,IAAInD,EAAWgH,EAAkB,SAAU7D,GAE3C,GAAInD,EACA,OAAO7C,SAAS8J,cAAcjH,KAUvC,CACCtE,IAAK,cAOLN,MAAO,SAAqB+H,GACxB,OAAO6D,EAAkB,OAAQ7D,KAOtC,CACCzH,IAAK,UACLN,MAAO,WACH0C,KAAKK,SAASsB,UAEV3B,KAAKiJ,kBACLjJ,KAAKiJ,gBAAgBtH,UACrB3B,KAAKiJ,gBAAkB,SAG/B,CAAC,CACDrL,IAAK,cACLN,MAAO,WACH,IAAI2H,EAASzE,UAAUzB,OAAS,QAAsBsD,IAAjB7B,UAAU,GAAmBA,UAAU,GAAK,CAAC,OAAQ,OAEtF4I,EAA4B,iBAAXnE,EAAsB,CAACA,GAAUA,EAClDoE,IAAYhK,SAASiK,sBAMzB,OAJAF,EAAQpH,SAAQ,SAAUiD,GACtBoE,EAAUA,KAAahK,SAASiK,sBAAsBrE,MAGnDoE,MAIRrB,EApJe,CAqJxBP,EAAqB8B,GASvB,SAASL,EAAkBM,EAAQlL,GAC/B,IAAImL,EAAY,kBAAoBD,EAEpC,GAAKlL,EAAQK,aAAa8K,GAI1B,OAAOnL,EAAQqH,aAAa8D,GAGa/F,EAA6B,QAAI,KAGzD,SA97BnBrH,EAAOD,QAAUiC,KAm8Bb,SAAUhC,EAAQD,EAASF,GAEjCA,EAAoB,GACpBG,EAAOD,QAAUF,EAAoB,IAK/B,SAAUG,EAAQqH,EAAqBxH,GAE7C,aACAA,EAAoBiB,EAAEuG,GACD,IAAIgG,EAAyCxN,EAAoB,GAC7DyN,EAA8DzN,EAAoB4B,EAAE4L,GAIzGE,EAAevK,SAAS0D,iBAAiB,WAMzC8G,GAJI,IAAIF,EAA+CJ,EAAEK,GAIjCvK,SAASyK,eAAe,UAEpDC,MADiB,oFACC,CAChBC,QAAS,CACPC,eAAgB,gBAEjBC,MAAK,SAAUC,GAChB,OAAOA,EAAS/E,UACf8E,MAAK,SAAU9E,GAChByE,EAAsBvM,MAAQ8H,MAK1B,SAAU/I,EAAQD,EAASF","file":"app.c05b66e3a5fcf271f54d.js","sourceRoot":""} -------------------------------------------------------------------------------- /dist/easysfp.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack://easysfp/webpack/bootstrap","webpack://easysfp/../node_modules/lodash-es/_freeGlobal.js","webpack://easysfp/../node_modules/webpack/buildin/global.js","webpack://easysfp/../node_modules/lodash-es/_baseHas.js","webpack://easysfp/../node_modules/lodash-es/isArray.js","webpack://easysfp/../node_modules/lodash-es/_root.js","webpack://easysfp/../node_modules/lodash-es/_Symbol.js","webpack://easysfp/../node_modules/lodash-es/_getRawTag.js","webpack://easysfp/../node_modules/lodash-es/_objectToString.js","webpack://easysfp/../node_modules/lodash-es/_baseGetTag.js","webpack://easysfp/../node_modules/lodash-es/isObjectLike.js","webpack://easysfp/../node_modules/lodash-es/isSymbol.js","webpack://easysfp/../node_modules/lodash-es/_isKey.js","webpack://easysfp/../node_modules/lodash-es/isObject.js","webpack://easysfp/../node_modules/lodash-es/isFunction.js","webpack://easysfp/../node_modules/lodash-es/_isMasked.js","webpack://easysfp/../node_modules/lodash-es/_coreJsData.js","webpack://easysfp/../node_modules/lodash-es/_toSource.js","webpack://easysfp/../node_modules/lodash-es/_baseIsNative.js","webpack://easysfp/../node_modules/lodash-es/_getValue.js","webpack://easysfp/../node_modules/lodash-es/_getNative.js","webpack://easysfp/../node_modules/lodash-es/_nativeCreate.js","webpack://easysfp/../node_modules/lodash-es/_hashClear.js","webpack://easysfp/../node_modules/lodash-es/_hashDelete.js","webpack://easysfp/../node_modules/lodash-es/_hashGet.js","webpack://easysfp/../node_modules/lodash-es/_hashHas.js","webpack://easysfp/../node_modules/lodash-es/_hashSet.js","webpack://easysfp/../node_modules/lodash-es/_Hash.js","webpack://easysfp/../node_modules/lodash-es/_listCacheClear.js","webpack://easysfp/../node_modules/lodash-es/eq.js","webpack://easysfp/../node_modules/lodash-es/_assocIndexOf.js","webpack://easysfp/../node_modules/lodash-es/_listCacheDelete.js","webpack://easysfp/../node_modules/lodash-es/_listCacheGet.js","webpack://easysfp/../node_modules/lodash-es/_listCacheHas.js","webpack://easysfp/../node_modules/lodash-es/_listCacheSet.js","webpack://easysfp/../node_modules/lodash-es/_ListCache.js","webpack://easysfp/../node_modules/lodash-es/_Map.js","webpack://easysfp/../node_modules/lodash-es/_mapCacheClear.js","webpack://easysfp/../node_modules/lodash-es/_isKeyable.js","webpack://easysfp/../node_modules/lodash-es/_getMapData.js","webpack://easysfp/../node_modules/lodash-es/_mapCacheDelete.js","webpack://easysfp/../node_modules/lodash-es/_mapCacheGet.js","webpack://easysfp/../node_modules/lodash-es/_mapCacheHas.js","webpack://easysfp/../node_modules/lodash-es/_mapCacheSet.js","webpack://easysfp/../node_modules/lodash-es/_MapCache.js","webpack://easysfp/../node_modules/lodash-es/memoize.js","webpack://easysfp/../node_modules/lodash-es/_memoizeCapped.js","webpack://easysfp/../node_modules/lodash-es/_stringToPath.js","webpack://easysfp/../node_modules/lodash-es/_arrayMap.js","webpack://easysfp/../node_modules/lodash-es/_baseToString.js","webpack://easysfp/../node_modules/lodash-es/toString.js","webpack://easysfp/../node_modules/lodash-es/_castPath.js","webpack://easysfp/../node_modules/lodash-es/_baseIsArguments.js","webpack://easysfp/../node_modules/lodash-es/isArguments.js","webpack://easysfp/../node_modules/lodash-es/_isIndex.js","webpack://easysfp/../node_modules/lodash-es/isLength.js","webpack://easysfp/../node_modules/lodash-es/_toKey.js","webpack://easysfp/../node_modules/lodash-es/_hasPath.js","webpack://easysfp/../node_modules/lodash-es/has.js","webpack://easysfp/./script/store.js","webpack://easysfp/./script/utils.js","webpack://easysfp/../node_modules/lodash-es/noop.js","webpack://easysfp/./script/ui-handlers.js","webpack://easysfp/./script/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","freeGlobal","global","g","this","Function","e","window","Array","isArray","freeSelf","self","nativeObjectToString","toString","symToStringTag","undefined","isOwn","tag","unmasked","result","reIsDeepProp","reIsPlainProp","type","test","uid","maskSrcKey","exec","keys","IE_PROTO","func","funcToString","reIsHostCtor","reIsNative","RegExp","replace","__data__","size","has","data","Hash","entries","index","length","clear","entry","set","other","array","splice","pop","push","ListCache","map","MapCache","memoize","resolver","TypeError","memoized","args","arguments","apply","cache","Cache","rePropName","reEscapeChar","string","charCodeAt","match","number","quote","subString","iteratee","symbolProto","symbolToString","baseToString","propertyIsEnumerable","reIsUint","path","hasFunc","state","operationDelay","packages","registeredCount","getTotalAvailablePackagesCount","getRegisteredCount","getEstimateRemainingTimeInMinutes","remainingCount","Math","round","registerPackage","packageId","modal","Dismiss","renderCurrentStateInformation","ShowBlockingWaitDialog","toFixed","packagesIdsArray","linkRegEx","PAGE_DESTINATION_URL","requiredPageLocationAddress","locationRe","registerPackageToUserAccount","settings","action","sessionid","g_sessionID","subid","jQuery","post","done","location","href","alert","freePackages","forEach","definePackage","each","element","reduce","accumulator","isRegistered","timeout","setTimeout","ShowAlertDialog","reload"],"mappings":"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","file":"easysfp.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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\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// 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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","import { has, isArray } from 'lodash-es';\nimport { MS_IN_MINUTE } from './utils';\n\nconst state = {\n operationDelay: 80000,\n packages: {\n data: {},\n registeredCount: 0,\n },\n};\n\nexport function getTotalAvailablePackagesCount() {\n return Object.keys(state.packages.data).length;\n}\n\nexport function getRegisteredCount() {\n return state.packages.registeredCount;\n}\n\nexport function getRemainingCount() {\n return getTotalAvailablePackagesCount() - getRegisteredCount();\n}\n\nexport function isRegistered(packageId) {\n return has(state.packages.data, packageId) && state.packages.data[packageId] === true;\n}\n\nexport function getEstimateRemainingTimeInMinutes() {\n const remainingCount = getRemainingCount();\n return Math.round(remainingCount * state.operationDelay / MS_IN_MINUTE);\n}\n\nexport function getPercentageOfCompletion() {\n return (getRegisteredCount() / getTotalAvailablePackagesCount() * 100).toFixed(2);\n}\n\nexport function definePackage(packageId) {\n if (!has(state.packages.data, packageId)) {\n state.packages.data[packageId] = false;\n }\n}\n\nexport function definePackagesFromArray(packagesIdsArray) {\n if (!isArray(packagesIdsArray)) {\n return;\n }\n\n packagesIdsArray.forEach((packageId) => {\n definePackage(packageId);\n });\n}\n\nexport function registerPackage(packageId) {\n state.packages.data[packageId] = true;\n state.packages.registeredCount += 1;\n}\n\nexport default state;\n","export const MS_IN_MINUTE = 60000;\n\nexport function escapeStringRegExp(str) {\n return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n}\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","/* global ShowBlockingWaitDialog */\n/* global ShowAlertDialog */\nimport { noop } from 'lodash-es';\n\nimport {\n getPercentageOfCompletion,\n getRegisteredCount,\n getTotalAvailablePackagesCount,\n getEstimateRemainingTimeInMinutes,\n} from './store';\n\nlet modal = {\n Dismiss: noop,\n};\n\nexport function renderProcessingDialog() {\n modal.Dismiss();\n modal = ShowBlockingWaitDialog(\n 'Loading...',\n 'Processing existing products in your account.',\n );\n}\n\nexport function renderCurrentStateInformation() {\n modal.Dismiss();\n modal = ShowBlockingWaitDialog(\n `[${getPercentageOfCompletion()}%] Please wait…`,\n `To you account has been added ${getRegisteredCount()}/${getTotalAvailablePackagesCount()} licenses.\n Time remaining: About ${getEstimateRemainingTimeInMinutes()} minutes.`,\n );\n}\n\nexport function renderCompletedDialog() {\n ShowAlertDialog(\n '[100%] Completed!',\n 'Now in your Steam account registered all available free licenses.',\n 'Reload page',\n ).done(() => {\n window.location.reload();\n });\n}\n","/* global jQuery */\n/* global g_sessionID */\nimport freePackages from './packages_db.json';\nimport { escapeStringRegExp } from './utils';\nimport state, { definePackagesFromArray, registerPackage, isRegistered } from './store';\nimport { renderCurrentStateInformation, renderProcessingDialog, renderCompletedDialog } from './ui-handlers';\n\nconst CHECKOUT_URL = 'https://store.steampowered.com/checkout/addfreelicense';\nconst PAGE_DESTINATION_URL = 'https://store.steampowered.com/account/licenses/';\n\nconst requiredPageLocationAddress = escapeStringRegExp(PAGE_DESTINATION_URL);\nconst locationRe = new RegExp(`^${requiredPageLocationAddress}?$`);\n\nif (window.location.href.match(locationRe) === null || !jQuery('#account_pulldown').length) {\n alert(`Please login to you account in this browser and run this on Steam's account page details: ${PAGE_DESTINATION_URL}`);\n window.location = PAGE_DESTINATION_URL;\n}\n\nfunction loadExistingProducts() {\n const linkRegEx = /javascript:RemoveFreeLicense\\( ([0-9]+), '/;\n\n jQuery('.account_table a').each((index, element) => {\n const match = element.href.match(linkRegEx);\n\n if (match !== null) {\n const packageId = +match[1];\n registerPackage(packageId);\n }\n });\n}\n\nfunction registerPackageToUserAccount(packageId) {\n const settings = {\n action: 'add_to_cart',\n sessionid: g_sessionID,\n subid: packageId,\n };\n\n jQuery.post(CHECKOUT_URL, settings)\n .done(() => {\n registerPackage(packageId);\n renderCurrentStateInformation();\n });\n}\n\nfunction addFreePackagesToAccount() {\n Object.keys(state.packages.data).reduce((accumulator, packageId) => {\n if (isRegistered(packageId)) {\n return accumulator;\n }\n\n const timeout = accumulator * state.operationDelay;\n setTimeout(registerPackageToUserAccount, timeout, packageId);\n\n return accumulator + 1;\n }, 0);\n}\n\nrenderProcessingDialog();\ndefinePackagesFromArray(freePackages.packages);\nloadExistingProducts();\naddFreePackagesToAccount();\nrenderCompletedDialog();\n"],"sourceRoot":""} -------------------------------------------------------------------------------- /dist/images/favicons/android-chrome-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/android-chrome-144x144.png -------------------------------------------------------------------------------- /dist/images/favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /dist/images/favicons/android-chrome-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/android-chrome-256x256.png -------------------------------------------------------------------------------- /dist/images/favicons/android-chrome-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/android-chrome-36x36.png -------------------------------------------------------------------------------- /dist/images/favicons/android-chrome-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/android-chrome-384x384.png -------------------------------------------------------------------------------- /dist/images/favicons/android-chrome-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/android-chrome-48x48.png -------------------------------------------------------------------------------- /dist/images/favicons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/android-chrome-512x512.png -------------------------------------------------------------------------------- /dist/images/favicons/android-chrome-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/android-chrome-72x72.png -------------------------------------------------------------------------------- /dist/images/favicons/android-chrome-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/android-chrome-96x96.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-1024x1024.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-167x167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-167x167.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /dist/images/favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /dist/images/favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /dist/images/favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /dist/images/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/favicons/favicon.ico -------------------------------------------------------------------------------- /dist/images/favicons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "easy-steam-free-packages", 3 | "short_name": "easy-steam-free-packages", 4 | "description": "Script for automation activation free packages(games, movies, DLC, etc.) on Steam platform.", 5 | "dir": "auto", 6 | "lang": "en-US", 7 | "display": "standalone", 8 | "orientation": "any", 9 | "start_url": "/?homescreen=1", 10 | "background_color": "#fff", 11 | "theme_color": "#fff", 12 | "icons": [ 13 | { 14 | "src": "https://github.com/5x/easy-steam-free-packages/images/favicons/android-chrome-36x36.png", 15 | "sizes": "36x36", 16 | "type": "image/png" 17 | }, 18 | { 19 | "src": "https://github.com/5x/easy-steam-free-packages/images/favicons/android-chrome-48x48.png", 20 | "sizes": "48x48", 21 | "type": "image/png" 22 | }, 23 | { 24 | "src": "https://github.com/5x/easy-steam-free-packages/images/favicons/android-chrome-72x72.png", 25 | "sizes": "72x72", 26 | "type": "image/png" 27 | }, 28 | { 29 | "src": "https://github.com/5x/easy-steam-free-packages/images/favicons/android-chrome-96x96.png", 30 | "sizes": "96x96", 31 | "type": "image/png" 32 | }, 33 | { 34 | "src": "https://github.com/5x/easy-steam-free-packages/images/favicons/android-chrome-144x144.png", 35 | "sizes": "144x144", 36 | "type": "image/png" 37 | }, 38 | { 39 | "src": "https://github.com/5x/easy-steam-free-packages/images/favicons/android-chrome-192x192.png", 40 | "sizes": "192x192", 41 | "type": "image/png" 42 | }, 43 | { 44 | "src": "https://github.com/5x/easy-steam-free-packages/images/favicons/android-chrome-256x256.png", 45 | "sizes": "256x256", 46 | "type": "image/png" 47 | }, 48 | { 49 | "src": "https://github.com/5x/easy-steam-free-packages/images/favicons/android-chrome-384x384.png", 50 | "sizes": "384x384", 51 | "type": "image/png" 52 | }, 53 | { 54 | "src": "https://github.com/5x/easy-steam-free-packages/images/favicons/android-chrome-512x512.png", 55 | "sizes": "512x512", 56 | "type": "image/png" 57 | } 58 | ] 59 | } -------------------------------------------------------------------------------- /dist/images/logo.25d7158fa49a55318a202060fad534a3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/dist/images/logo.25d7158fa49a55318a202060fad534a3.png -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | Easy Steam free packages script

Easy Steam free packages script

About

Script for automation activation free packages (games, movies, DLC, etc.) on Steam platform. It register as more as possible free packages to you Steam account. The database contains more than 10,000 (check faq section for details) packages that will be added and available in the library forever after activation.

Based on SteamDB script and package list. Provide more futures, like visualization of progress, possibility of continuous activation, passed already registered products, etc.

Instruction of usage

  1. Copy script to Clipboard
  2. Open your licenses and product key activations page
  3. Open developer tools in your browser, read more here
  4. Paste script (already on you clipboard) to console
  5. Wait for it to finish, it may take a while
  6. Enjoy

FAQ

Why it take so long to complete the script?

The Steam API has limitation for only 50 packages activation per one hour.

Why not all available packages will be registered to you account?

Some of packages like DLC, require to activate first base game first. Some can be not available on you region, or have other restrict.

Can i be banned for use this script?

No, this is Steam built-in feature. This script does not violate service terms of usage. Use this at your own risk, the author assumes no responsibility.

What's the point of this?

If some of this free packages will be removed or will be paid at future, you still be able to play them for free. A few games when installed give you +1 Games on your profile.

Copyright © 2019. Code with ♥ by @5x.
-------------------------------------------------------------------------------- /dist/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Allow: / 3 | Sitemap: https://github.com/5x/easy-steam-free-packages//sitemap.xml 4 | Host: https://github.com 5 | -------------------------------------------------------------------------------- /dist/sitemap.xml: -------------------------------------------------------------------------------- 1 | https://github.com/5x/easy-steam-free-packages/index.html1 -------------------------------------------------------------------------------- /dist/style.8361be0ee024f416832d.css: -------------------------------------------------------------------------------- 1 | html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.42;background-color:#fff;color:#333447}a{color:#e71846;text-decoration:none}a:hover{text-decoration:underline}.hidden{position:absolute;overflow:hidden;width:1px;height:1px;margin-top:-1px;left:-9999999999px;top:-9999999999px}.container,.hidden{box-sizing:border-box}.container{width:860px;margin:0 auto;padding:0 2em}.container--fluid{padding:0;min-width:100%}h1,h2,h3,h4{margin-top:1.08em;margin-bottom:1.08em;line-height:1.2}h1{font-size:3.82em}h2{font-size:2.4em}h3{font-size:2em}h4{font-size:1em}.btn{display:inline-block;color:#333447;background:#fff;text-align:center;box-sizing:border-box;min-width:220px;padding:16px 25px;border-radius:3px}.btn,.btn:hover{text-decoration:none}.btn:hover{box-shadow:inset 0 0 100px 3px hsla(0,0%,100%,.2)}.btn:focus{box-shadow:inset 0 0 100px 3px hsla(0,0%,100%,.5)}.btn--primary{background:#e71846;color:#fff}.highlight-block{border-radius:3px;padding:5px;background-color:#f9f9f9;margin-top:2rem;margin-bottom:2rem}.header{margin-bottom:2rem;background:#282828;color:#fff}.header__hero{text-align:center;padding:4rem 0}.header__title{text-transform:uppercase;margin-top:0;margin-bottom:2rem}.header__actions .btn{margin:0 .5rem}.footer{color:#999;font-size:.84rem;text-align:center;margin-top:4rem;margin-bottom:2rem}.main-content{text-align:justify}.faq-section{margin-bottom:2rem} -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "dist/" 3 | command = "npm run build:dist" 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "easy-steam-free-packages", 3 | "description": "Script for automation activation free packages (games, movies, demos, DLC, etc.) on Steam platform.", 4 | "version": "1.0.0", 5 | "homepage": "https://5x.github.io/easy-steam-free-packages", 6 | "author": { 7 | "name": "@5x", 8 | "url": "https://github.com/5x" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/5x/easy-steam-free-packages.git" 13 | }, 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/5x/easy-steam-free-packages/issues" 17 | }, 18 | "keywords": [ 19 | "Steam", 20 | "Free packages", 21 | "script" 22 | ], 23 | "scripts": { 24 | "start": "cross-env NODE_ENV=development webpack-dev-server --config ./config/webpack.config.js", 25 | "start:dist": "cross-env NODE_ENV=production webpack-dev-server --config ./config/webpack.config.js && http-server ./dist -o", 26 | "lint:js": "./node_modules/.bin/eslint \"src/**/*.js\"", 27 | "lint:styles": "stylelint \"src/**/*.scss\"", 28 | "build:dist": "cross-env NODE_ENV=production webpack --config ./config/webpack.config.js" 29 | }, 30 | "devDependencies": { 31 | "@babel/cli": "^7.2.3", 32 | "@babel/core": "^7.2.2", 33 | "@babel/preset-env": "^7.2.3", 34 | "autoprefixer": "^9.4.3", 35 | "babel-loader": "^8.0.4", 36 | "clean-webpack-plugin": "^1.0.0", 37 | "cross-env": "^5.2.0", 38 | "css-loader": "^2.0.1", 39 | "cssnano": "^4.1.7", 40 | "eslint": "^5.10.0", 41 | "eslint-config-airbnb-base": "^13.1.0", 42 | "eslint-loader": "^2.1.1", 43 | "eslint-plugin-import": "^2.14.0", 44 | "file-loader": "^2.0.0", 45 | "glob": "^7.1.3", 46 | "html-loader": "^0.5.5", 47 | "html-webpack-plugin": "^4.0.0-beta.5", 48 | "http-server": "^0.11.1", 49 | "image-webpack-loader": "^4.6.0", 50 | "less": "^3.9.0", 51 | "less-loader": "^4.1.0", 52 | "mini-css-extract-plugin": "^0.5.0", 53 | "node-sass": "^4.12.0", 54 | "optimize-css-assets-webpack-plugin": "^5.0.1", 55 | "postcss-loader": "^3.0.0", 56 | "postcss-sass": "^0.3.5", 57 | "robotstxt-webpack-plugin": "^4.0.1", 58 | "sass-loader": "^7.1.0", 59 | "sitemap-webpack-plugin": "^0.6.0", 60 | "style-loader": "^0.23.1", 61 | "stylelint": "^8.3.1", 62 | "stylelint-config-standard": "^18.2.0", 63 | "stylelint-scss": "^3.4.3", 64 | "stylelint-webpack-plugin": "^0.10.5", 65 | "webapp-webpack-plugin": "^2.4.0", 66 | "webpack": "^4.27.1", 67 | "webpack-cli": "^3.1.2", 68 | "webpack-merge": "^4.1.5", 69 | "webpackbar": "^3.2.0" 70 | }, 71 | "dependencies": { 72 | "chalk": "^2.4.1", 73 | "clear": "^0.1.0", 74 | "clipboard": "^2.0.4", 75 | "dploy": "^1.2.0", 76 | "enquirer": "^2.2.0", 77 | "figlet": "^1.2.1", 78 | "jquery": "^3.3.1", 79 | "lodash-es": "^4.17.11", 80 | "normalize.css": "^8.0.1", 81 | "reset-css": "^4.0.1", 82 | "sanitize.css": "^8.0.0", 83 | "webpack-dev-server": "^3.1.10" 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /src/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 404 Page not found 6 | 7 | 63 | 64 | 65 |

Page Not Found

66 |

Sorry, but the page you were trying to view does not exist.

67 | Return to home page 68 | 69 | 70 | -------------------------------------------------------------------------------- /src/app/index.js: -------------------------------------------------------------------------------- 1 | import ClipboardJS from 'clipboard'; 2 | 3 | /* eslint-disable no-unused-vars */ 4 | const copyElements = document.querySelectorAll('.--copy'); 5 | const _ = new ClipboardJS(copyElements); 6 | /* eslint-enable no-unused-vars */ 7 | 8 | const esfpsContainerElement = document.getElementById('esfps'); 9 | 10 | const SCRIPT_URL = 'https://raw.githubusercontent.com/5x/easy-steam-free-packages/gh-pages/easysfp.js'; 11 | fetch(SCRIPT_URL, { 12 | headers: { 13 | 'Content-Type': 'text/plain', 14 | }, 15 | }).then(response => response.text()) 16 | .then((text) => { 17 | esfpsContainerElement.value = text; 18 | }); 19 | -------------------------------------------------------------------------------- /src/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/src/images/favicon.png -------------------------------------------------------------------------------- /src/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5x/easy-steam-free-packages/95902c03226a804e5385b85f363fa03b3192d071/src/images/logo.png -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Easy Steam free packages script 6 | 8 | 9 | 10 |
11 |
12 |
13 |
14 | 15 |
16 |

Easy Steam free packages script

17 | 21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |

About

29 |

Script for automation activation free packages (games, movies, DLC, etc.) on Steam platform. It register as 30 | more as possible free packages to you Steam account. The database contains more than 10,000 (check faq 31 | section for details) packages that will be added and available in the library forever after activation.

32 |

Based on SteamDB script and package list. 33 | Provide more futures, like visualization of progress, possibility of continuous activation, passed already 34 | registered products, etc.

35 |
36 |
37 |

Instruction of usage

38 |
39 |
    40 |
  1. Copy script to Clipboard
  2. 41 |
  3. Open your licenses and 42 | product key activations page 43 |
  4. 44 |
  5. 45 | Open developer tools in your browser, 46 | read more here 47 |
  6. 48 |
  7. Paste script (already on you clipboard) to console
  8. 49 |
  9. Wait for it to finish, it may take a while
  10. 50 |
  11. Enjoy
  12. 51 |
52 |
53 |
54 |
55 |

FAQ

56 |
57 |

Why it take so long to complete the script?

58 |

The Steam API has limitation for only 50 packages activation per one hour.

59 |
60 |
61 |

Why not all available packages will be registered to you account?

62 |

Some of packages like DLC, require to activate first base game first. Some can be not available on you 63 | region, or have other restrict.

64 |
65 |
66 |

Can i be banned for use this script?

67 |

No, this is Steam built-in feature. This script does not violate service terms of usage. Use this at your 68 | own risk, the author 69 | assumes no responsibility.

70 |
71 |
72 |

What's the point of this?

73 |

If some of this free packages will be removed or will be paid at future, you still be able to play them 74 | for free. A few games when installed give you +1 Games on your profile.

75 |
76 |
77 |
78 |
79 |
80 | Copyright © 2019. Code with ♥ by @5x. 81 |
82 |
83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /src/robots.txt: -------------------------------------------------------------------------------- 1 | # www.robotstxt.org/ 2 | 3 | # Allow crawling of all content 4 | User-agent: * 5 | Disallow: -------------------------------------------------------------------------------- /src/script/index.js: -------------------------------------------------------------------------------- 1 | /* global jQuery */ 2 | /* global g_sessionID */ 3 | import freePackages from './packages_db.json'; 4 | import { escapeStringRegExp } from './utils'; 5 | import state, { definePackagesFromArray, registerPackage, isRegistered } from './store'; 6 | import { renderCurrentStateInformation, renderProcessingDialog, renderCompletedDialog } from './ui-handlers'; 7 | 8 | const CHECKOUT_URL = 'https://store.steampowered.com/checkout/addfreelicense'; 9 | const PAGE_DESTINATION_URL = 'https://store.steampowered.com/account/licenses/'; 10 | 11 | const requiredPageLocationAddress = escapeStringRegExp(PAGE_DESTINATION_URL); 12 | const locationRe = new RegExp(`^${requiredPageLocationAddress}?$`); 13 | 14 | if (window.location.href.match(locationRe) === null || !jQuery('#account_pulldown').length) { 15 | alert(`Please login to you account in this browser and run this on Steam's account page details: ${PAGE_DESTINATION_URL}`); 16 | window.location = PAGE_DESTINATION_URL; 17 | } 18 | 19 | function loadExistingProducts() { 20 | const linkRegEx = /javascript:RemoveFreeLicense\( ([0-9]+), '/; 21 | 22 | jQuery('.account_table a').each((index, element) => { 23 | const match = element.href.match(linkRegEx); 24 | 25 | if (match !== null) { 26 | const packageId = +match[1]; 27 | registerPackage(packageId); 28 | } 29 | }); 30 | } 31 | 32 | function registerPackageToUserAccount(packageId) { 33 | const settings = { 34 | action: 'add_to_cart', 35 | sessionid: g_sessionID, 36 | subid: packageId, 37 | }; 38 | 39 | jQuery.post(CHECKOUT_URL, settings) 40 | .done(() => { 41 | registerPackage(packageId); 42 | renderCurrentStateInformation(); 43 | }); 44 | } 45 | 46 | function addFreePackagesToAccount() { 47 | Object.keys(state.packages.data).reduce((accumulator, packageId) => { 48 | if (isRegistered(packageId)) { 49 | return accumulator; 50 | } 51 | 52 | const timeout = accumulator * state.operationDelay; 53 | setTimeout(registerPackageToUserAccount, timeout, packageId); 54 | 55 | return accumulator + 1; 56 | }, 0); 57 | } 58 | 59 | renderProcessingDialog(); 60 | definePackagesFromArray(freePackages.packages); 61 | loadExistingProducts(); 62 | addFreePackagesToAccount(); 63 | renderCompletedDialog(); 64 | -------------------------------------------------------------------------------- /src/script/store.js: -------------------------------------------------------------------------------- 1 | import { has, isArray } from 'lodash-es'; 2 | import { MS_IN_MINUTE } from './utils'; 3 | 4 | const state = { 5 | operationDelay: 80000, 6 | packages: { 7 | data: {}, 8 | registeredCount: 0, 9 | }, 10 | }; 11 | 12 | export function getTotalAvailablePackagesCount() { 13 | return Object.keys(state.packages.data).length; 14 | } 15 | 16 | export function getRegisteredCount() { 17 | return state.packages.registeredCount; 18 | } 19 | 20 | export function getRemainingCount() { 21 | return getTotalAvailablePackagesCount() - getRegisteredCount(); 22 | } 23 | 24 | export function isRegistered(packageId) { 25 | return has(state.packages.data, packageId) && state.packages.data[packageId] === true; 26 | } 27 | 28 | export function getEstimateRemainingTimeInMinutes() { 29 | const remainingCount = getRemainingCount(); 30 | return Math.round(remainingCount * state.operationDelay / MS_IN_MINUTE); 31 | } 32 | 33 | export function getPercentageOfCompletion() { 34 | return (getRegisteredCount() / getTotalAvailablePackagesCount() * 100).toFixed(2); 35 | } 36 | 37 | export function definePackage(packageId) { 38 | if (!has(state.packages.data, packageId)) { 39 | state.packages.data[packageId] = false; 40 | } 41 | } 42 | 43 | export function definePackagesFromArray(packagesIdsArray) { 44 | if (!isArray(packagesIdsArray)) { 45 | return; 46 | } 47 | 48 | packagesIdsArray.forEach((packageId) => { 49 | definePackage(packageId); 50 | }); 51 | } 52 | 53 | export function registerPackage(packageId) { 54 | state.packages.data[packageId] = true; 55 | state.packages.registeredCount += 1; 56 | } 57 | 58 | export default state; 59 | -------------------------------------------------------------------------------- /src/script/ui-handlers.js: -------------------------------------------------------------------------------- 1 | /* global ShowBlockingWaitDialog */ 2 | /* global ShowAlertDialog */ 3 | import { noop } from 'lodash-es'; 4 | 5 | import { 6 | getPercentageOfCompletion, 7 | getRegisteredCount, 8 | getTotalAvailablePackagesCount, 9 | getEstimateRemainingTimeInMinutes, 10 | } from './store'; 11 | 12 | let modal = { 13 | Dismiss: noop, 14 | }; 15 | 16 | export function renderProcessingDialog() { 17 | modal.Dismiss(); 18 | modal = ShowBlockingWaitDialog( 19 | 'Loading...', 20 | 'Processing existing products in your account.', 21 | ); 22 | } 23 | 24 | export function renderCurrentStateInformation() { 25 | modal.Dismiss(); 26 | modal = ShowBlockingWaitDialog( 27 | `[${getPercentageOfCompletion()}%] Please wait…`, 28 | `To you account has been added ${getRegisteredCount()}/${getTotalAvailablePackagesCount()} licenses. 29 | Time remaining: About ${getEstimateRemainingTimeInMinutes()} minutes.`, 30 | ); 31 | } 32 | 33 | export function renderCompletedDialog() { 34 | ShowAlertDialog( 35 | '[100%] Completed!', 36 | 'Now in your Steam account registered all available free licenses.', 37 | 'Reload page', 38 | ).done(() => { 39 | window.location.reload(); 40 | }); 41 | } 42 | -------------------------------------------------------------------------------- /src/script/utils.js: -------------------------------------------------------------------------------- 1 | export const MS_IN_MINUTE = 60000; 2 | 3 | export function escapeStringRegExp(str) { 4 | return str.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&'); 5 | } 6 | -------------------------------------------------------------------------------- /src/stylesheets/_base.scss: -------------------------------------------------------------------------------- 1 | @import "~normalize.css"; 2 | 3 | body { 4 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 5 | line-height: 1.42; 6 | background-color: #fff; 7 | color: $text-default-color; 8 | } 9 | 10 | a { 11 | color: $primary-color; 12 | text-decoration: none; 13 | 14 | &:hover { 15 | text-decoration: underline; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/stylesheets/_layout.scss: -------------------------------------------------------------------------------- 1 | .container { 2 | width: 860px; 3 | margin: 0 auto; 4 | box-sizing: border-box; 5 | padding: 0 2em; 6 | 7 | &--fluid { 8 | padding: 0; 9 | min-width: 100%; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/stylesheets/_utils.scss: -------------------------------------------------------------------------------- 1 | .hidden { 2 | box-sizing: border-box; 3 | position: absolute; 4 | overflow: hidden; 5 | width: 1px; 6 | height: 1px; 7 | margin-top: -1px; 8 | left: -9999999999px; 9 | top: -9999999999px; 10 | } 11 | -------------------------------------------------------------------------------- /src/stylesheets/_variables.scss: -------------------------------------------------------------------------------- 1 | $header-bg-color: #282828; 2 | $text-default-color: #333447; 3 | $text-secondary-color: #999; 4 | $primary-color: #e71846; 5 | $light-color: #f9f9f9; 6 | $default-gap-size: 2rem; 7 | -------------------------------------------------------------------------------- /src/stylesheets/components/_buttons.scss: -------------------------------------------------------------------------------- 1 | .btn { 2 | display: inline-block; 3 | text-decoration: none; 4 | color: $text-default-color; 5 | background: #fff; 6 | text-align: center; 7 | box-sizing: border-box; 8 | min-width: 220px; 9 | padding: 16px 25px; 10 | border-radius: 3px; 11 | 12 | &:hover { 13 | text-decoration: none; 14 | box-shadow: inset 0 0 100px 3px rgba(255, 255, 255, 0.2); 15 | } 16 | 17 | &:focus { 18 | box-shadow: inset 0 0 100px 3px rgba(255, 255, 255, 0.5); 19 | } 20 | 21 | &--primary { 22 | background: #e71846; 23 | color: #fff; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/stylesheets/components/_highlight.scss: -------------------------------------------------------------------------------- 1 | .highlight-block { 2 | border-radius: 3px; 3 | padding: 5px; 4 | background-color: $light-color; 5 | margin-top: $default-gap-size; 6 | margin-bottom: $default-gap-size; 7 | } 8 | -------------------------------------------------------------------------------- /src/stylesheets/components/_typography.scss: -------------------------------------------------------------------------------- 1 | h1, 2 | h2, 3 | h3, 4 | h4 { 5 | margin-top: 1.08em; 6 | margin-bottom: 1.08em; 7 | line-height: 1.2; 8 | } 9 | 10 | h1 { 11 | font-size: 3.82em; 12 | } 13 | 14 | h2 { 15 | font-size: 2.4em; 16 | } 17 | 18 | h3 { 19 | font-size: 2em; 20 | } 21 | 22 | h4 { 23 | font-size: 1em; 24 | } 25 | -------------------------------------------------------------------------------- /src/stylesheets/pages/_landing.scss: -------------------------------------------------------------------------------- 1 | .header { 2 | margin-bottom: $default-gap-size; 3 | background: $header-bg-color; 4 | color: #fff; 5 | 6 | &__hero { 7 | text-align: center; 8 | padding: $default-gap-size * 2 0; 9 | } 10 | 11 | &__title { 12 | text-transform: uppercase; 13 | margin-top: 0; 14 | margin-bottom: $default-gap-size; 15 | } 16 | 17 | &__actions .btn { 18 | margin: 0 $default-gap-size / 4; 19 | } 20 | } 21 | 22 | .footer { 23 | color: $text-secondary-color; 24 | font-size: 0.84rem; 25 | text-align: center; 26 | margin-top: $default-gap-size * 2; 27 | margin-bottom: $default-gap-size; 28 | } 29 | 30 | .main-content { 31 | text-align: justify; 32 | } 33 | 34 | .faq-section { 35 | margin-bottom: $default-gap-size; 36 | } 37 | -------------------------------------------------------------------------------- /src/stylesheets/styles.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | @import "base"; 3 | @import "utils"; 4 | @import "layout"; 5 | @import "components/typography"; 6 | @import "components/buttons"; 7 | @import "components/highlight"; 8 | @import "pages/landing"; 9 | --------------------------------------------------------------------------------