├── .gitignore ├── HTTPDecrypt ├── __init__.py ├── app.py ├── globalenv.py ├── log.py ├── scripts │ ├── Export.js │ ├── Export_Template.js │ ├── Export_Template_Instance.js │ ├── Export_iosTemplate.js │ ├── Export_iosTemplate_Instance.js │ ├── common │ │ └── common.js │ ├── doburp.js │ ├── doburp_iosChangeRetvalTemplate.js │ ├── doburp_iostemplate.js │ ├── doburp_template.js │ ├── enumerateNativeMethods.js │ ├── findhook.js │ ├── findhook_iostemplate.js │ ├── findhook_template.js │ ├── findmethods.js │ ├── finds.js │ ├── hooks.js │ ├── index.js │ ├── inspect.js │ └── ui.js ├── socketutil.py ├── static │ ├── css │ │ ├── bootstrap-switch.min.css │ │ ├── bootstrap.min.css │ │ ├── easyui.css │ │ ├── icon.css │ │ ├── style.css │ │ └── zTreeStyle.css │ ├── edit-js │ │ ├── ace.js │ │ ├── ext-beautify.js │ │ ├── ext-elastic_tabstops_lite.js │ │ ├── ext-emmet.js │ │ ├── ext-error_marker.js │ │ ├── ext-keybinding_menu.js │ │ ├── ext-language_tools.js │ │ ├── ext-linking.js │ │ ├── ext-modelist.js │ │ ├── ext-options.js │ │ ├── ext-rtl.js │ │ ├── ext-searchbox.js │ │ ├── ext-settings_menu.js │ │ ├── ext-spellcheck.js │ │ ├── ext-split.js │ │ ├── ext-static_highlight.js │ │ ├── ext-statusbar.js │ │ ├── ext-textarea.js │ │ ├── ext-themelist.js │ │ ├── ext-whitespace.js │ │ ├── frida-gum.d.ts │ │ ├── keybinding-emacs.js │ │ ├── keybinding-sublime.js │ │ ├── keybinding-vim.js │ │ ├── mode-abap.js │ │ ├── mode-abc.js │ │ ├── mode-actionscript.js │ │ ├── mode-ada.js │ │ ├── mode-apache_conf.js │ │ ├── mode-apex.js │ │ ├── mode-applescript.js │ │ ├── mode-asciidoc.js │ │ ├── mode-asl.js │ │ ├── mode-assembly_x86.js │ │ ├── mode-autohotkey.js │ │ ├── mode-batchfile.js │ │ ├── mode-bro.js │ │ ├── mode-c9search.js │ │ ├── mode-c_cpp.js │ │ ├── mode-cirru.js │ │ ├── mode-clojure.js │ │ ├── mode-cobol.js │ │ ├── mode-coffee.js │ │ ├── mode-coldfusion.js │ │ ├── mode-csharp.js │ │ ├── mode-csound_document.js │ │ ├── mode-csound_orchestra.js │ │ ├── mode-csound_score.js │ │ ├── mode-csp.js │ │ ├── mode-css.js │ │ ├── mode-curly.js │ │ ├── mode-d.js │ │ ├── mode-dart.js │ │ ├── mode-diff.js │ │ ├── mode-django.js │ │ ├── mode-dockerfile.js │ │ ├── mode-dot.js │ │ ├── mode-drools.js │ │ ├── mode-edifact.js │ │ ├── mode-eiffel.js │ │ ├── mode-ejs.js │ │ ├── mode-elixir.js │ │ ├── mode-elm.js │ │ ├── mode-erlang.js │ │ ├── mode-forth.js │ │ ├── mode-fortran.js │ │ ├── mode-fsharp.js │ │ ├── mode-fsl.js │ │ ├── mode-ftl.js │ │ ├── mode-gcode.js │ │ ├── mode-gherkin.js │ │ ├── mode-gitignore.js │ │ ├── mode-glsl.js │ │ ├── mode-gobstones.js │ │ ├── mode-golang.js │ │ ├── mode-graphqlschema.js │ │ ├── mode-groovy.js │ │ ├── mode-haml.js │ │ ├── mode-handlebars.js │ │ ├── mode-haskell.js │ │ ├── mode-haskell_cabal.js │ │ ├── mode-haxe.js │ │ ├── mode-hjson.js │ │ ├── mode-html.js │ │ ├── mode-html_elixir.js │ │ ├── mode-html_ruby.js │ │ ├── mode-ini.js │ │ ├── mode-io.js │ │ ├── mode-jack.js │ │ ├── mode-jade.js │ │ ├── mode-java.js │ │ ├── mode-javascript.js │ │ ├── mode-json.js │ │ ├── mode-jsoniq.js │ │ ├── mode-jsp.js │ │ ├── mode-jssm.js │ │ ├── mode-jsx.js │ │ ├── mode-julia.js │ │ ├── mode-kotlin.js │ │ ├── mode-latex.js │ │ ├── mode-less.js │ │ ├── mode-liquid.js │ │ ├── mode-lisp.js │ │ ├── mode-livescript.js │ │ ├── mode-logiql.js │ │ ├── mode-logtalk.js │ │ ├── mode-lsl.js │ │ ├── mode-lua.js │ │ ├── mode-luapage.js │ │ ├── mode-lucene.js │ │ ├── mode-makefile.js │ │ ├── mode-markdown.js │ │ ├── mode-mask.js │ │ ├── mode-matlab.js │ │ ├── mode-maze.js │ │ ├── mode-mel.js │ │ ├── mode-mixal.js │ │ ├── mode-mushcode.js │ │ ├── mode-mysql.js │ │ ├── mode-nix.js │ │ ├── mode-nsis.js │ │ ├── mode-objectivec.js │ │ ├── mode-ocaml.js │ │ ├── mode-pascal.js │ │ ├── mode-perl.js │ │ ├── mode-perl6.js │ │ ├── mode-pgsql.js │ │ ├── mode-php.js │ │ ├── mode-php_laravel_blade.js │ │ ├── mode-pig.js │ │ ├── mode-plain_text.js │ │ ├── mode-powershell.js │ │ ├── mode-praat.js │ │ ├── mode-prolog.js │ │ ├── mode-properties.js │ │ ├── mode-protobuf.js │ │ ├── mode-puppet.js │ │ ├── mode-python.js │ │ ├── mode-r.js │ │ ├── mode-razor.js │ │ ├── mode-rdoc.js │ │ ├── mode-red.js │ │ ├── mode-redshift.js │ │ ├── mode-rhtml.js │ │ ├── mode-rst.js │ │ ├── mode-ruby.js │ │ ├── mode-rust.js │ │ ├── mode-sass.js │ │ ├── mode-scad.js │ │ ├── mode-scala.js │ │ ├── mode-scheme.js │ │ ├── mode-scss.js │ │ ├── mode-sh.js │ │ ├── mode-sjs.js │ │ ├── mode-slim.js │ │ ├── mode-smarty.js │ │ ├── mode-snippets.js │ │ ├── mode-soy_template.js │ │ ├── mode-space.js │ │ ├── mode-sparql.js │ │ ├── mode-sql.js │ │ ├── mode-sqlserver.js │ │ ├── mode-stylus.js │ │ ├── mode-svg.js │ │ ├── mode-swift.js │ │ ├── mode-tcl.js │ │ ├── mode-terraform.js │ │ ├── mode-tex.js │ │ ├── mode-text.js │ │ ├── mode-textile.js │ │ ├── mode-toml.js │ │ ├── mode-tsx.js │ │ ├── mode-turtle.js │ │ ├── mode-twig.js │ │ ├── mode-typescript.js │ │ ├── mode-vala.js │ │ ├── mode-vbscript.js │ │ ├── mode-velocity.js │ │ ├── mode-verilog.js │ │ ├── mode-vhdl.js │ │ ├── mode-visualforce.js │ │ ├── mode-wollok.js │ │ ├── mode-xml.js │ │ ├── mode-xquery.js │ │ ├── mode-yaml.js │ │ ├── snippets │ │ │ ├── abap.js │ │ │ ├── abc.js │ │ │ ├── actionscript.js │ │ │ ├── ada.js │ │ │ ├── apache_conf.js │ │ │ ├── apex.js │ │ │ ├── applescript.js │ │ │ ├── asciidoc.js │ │ │ ├── asl.js │ │ │ ├── assembly_x86.js │ │ │ ├── autohotkey.js │ │ │ ├── batchfile.js │ │ │ ├── bro.js │ │ │ ├── c9search.js │ │ │ ├── c_cpp.js │ │ │ ├── cirru.js │ │ │ ├── clojure.js │ │ │ ├── cobol.js │ │ │ ├── coffee.js │ │ │ ├── coldfusion.js │ │ │ ├── csharp.js │ │ │ ├── csound_document.js │ │ │ ├── csound_orchestra.js │ │ │ ├── csound_score.js │ │ │ ├── csp.js │ │ │ ├── css.js │ │ │ ├── curly.js │ │ │ ├── d.js │ │ │ ├── dart.js │ │ │ ├── diff.js │ │ │ ├── django.js │ │ │ ├── dockerfile.js │ │ │ ├── dot.js │ │ │ ├── drools.js │ │ │ ├── edifact.js │ │ │ ├── eiffel.js │ │ │ ├── ejs.js │ │ │ ├── elixir.js │ │ │ ├── elm.js │ │ │ ├── erlang.js │ │ │ ├── forth.js │ │ │ ├── fortran.js │ │ │ ├── fsharp.js │ │ │ ├── fsl.js │ │ │ ├── ftl.js │ │ │ ├── gcode.js │ │ │ ├── gherkin.js │ │ │ ├── gitignore.js │ │ │ ├── glsl.js │ │ │ ├── gobstones.js │ │ │ ├── golang.js │ │ │ ├── graphqlschema.js │ │ │ ├── groovy.js │ │ │ ├── haml.js │ │ │ ├── handlebars.js │ │ │ ├── haskell.js │ │ │ ├── haskell_cabal.js │ │ │ ├── haxe.js │ │ │ ├── hjson.js │ │ │ ├── html.js │ │ │ ├── html_elixir.js │ │ │ ├── html_ruby.js │ │ │ ├── ini.js │ │ │ ├── io.js │ │ │ ├── jack.js │ │ │ ├── jade.js │ │ │ ├── java.js │ │ │ ├── javascript.js │ │ │ ├── json.js │ │ │ ├── jsoniq.js │ │ │ ├── jsp.js │ │ │ ├── jssm.js │ │ │ ├── jsx.js │ │ │ ├── julia.js │ │ │ ├── kotlin.js │ │ │ ├── latex.js │ │ │ ├── less.js │ │ │ ├── liquid.js │ │ │ ├── lisp.js │ │ │ ├── livescript.js │ │ │ ├── logiql.js │ │ │ ├── logtalk.js │ │ │ ├── lsl.js │ │ │ ├── lua.js │ │ │ ├── luapage.js │ │ │ ├── lucene.js │ │ │ ├── makefile.js │ │ │ ├── markdown.js │ │ │ ├── mask.js │ │ │ ├── matlab.js │ │ │ ├── maze.js │ │ │ ├── mel.js │ │ │ ├── mixal.js │ │ │ ├── mushcode.js │ │ │ ├── mysql.js │ │ │ ├── nix.js │ │ │ ├── nsis.js │ │ │ ├── objectivec.js │ │ │ ├── ocaml.js │ │ │ ├── pascal.js │ │ │ ├── perl.js │ │ │ ├── perl6.js │ │ │ ├── pgsql.js │ │ │ ├── php.js │ │ │ ├── php_laravel_blade.js │ │ │ ├── pig.js │ │ │ ├── plain_text.js │ │ │ ├── powershell.js │ │ │ ├── praat.js │ │ │ ├── prolog.js │ │ │ ├── properties.js │ │ │ ├── protobuf.js │ │ │ ├── puppet.js │ │ │ ├── python.js │ │ │ ├── r.js │ │ │ ├── razor.js │ │ │ ├── rdoc.js │ │ │ ├── red.js │ │ │ ├── redshift.js │ │ │ ├── rhtml.js │ │ │ ├── rst.js │ │ │ ├── ruby.js │ │ │ ├── rust.js │ │ │ ├── sass.js │ │ │ ├── scad.js │ │ │ ├── scala.js │ │ │ ├── scheme.js │ │ │ ├── scss.js │ │ │ ├── sh.js │ │ │ ├── sjs.js │ │ │ ├── slim.js │ │ │ ├── smarty.js │ │ │ ├── snippets.js │ │ │ ├── soy_template.js │ │ │ ├── space.js │ │ │ ├── sparql.js │ │ │ ├── sql.js │ │ │ ├── sqlserver.js │ │ │ ├── stylus.js │ │ │ ├── svg.js │ │ │ ├── swift.js │ │ │ ├── tcl.js │ │ │ ├── terraform.js │ │ │ ├── tex.js │ │ │ ├── text.js │ │ │ ├── textile.js │ │ │ ├── toml.js │ │ │ ├── tsx.js │ │ │ ├── turtle.js │ │ │ ├── twig.js │ │ │ ├── typescript.js │ │ │ ├── vala.js │ │ │ ├── vbscript.js │ │ │ ├── velocity.js │ │ │ ├── verilog.js │ │ │ ├── vhdl.js │ │ │ ├── visualforce.js │ │ │ ├── wollok.js │ │ │ ├── xml.js │ │ │ ├── xquery.js │ │ │ └── yaml.js │ │ ├── theme-ambiance.js │ │ ├── theme-chaos.js │ │ ├── theme-chrome.js │ │ ├── theme-clouds.js │ │ ├── theme-clouds_midnight.js │ │ ├── theme-cobalt.js │ │ ├── theme-crimson_editor.js │ │ ├── theme-dawn.js │ │ ├── theme-dracula.js │ │ ├── theme-dreamweaver.js │ │ ├── theme-eclipse.js │ │ ├── theme-github.js │ │ ├── theme-gob.js │ │ ├── theme-gruvbox.js │ │ ├── theme-idle_fingers.js │ │ ├── theme-iplastic.js │ │ ├── theme-katzenmilch.js │ │ ├── theme-kr_theme.js │ │ ├── theme-kuroir.js │ │ ├── theme-merbivore.js │ │ ├── theme-merbivore_soft.js │ │ ├── theme-mono_industrial.js │ │ ├── theme-monokai.js │ │ ├── theme-pastel_on_dark.js │ │ ├── theme-solarized_dark.js │ │ ├── theme-solarized_light.js │ │ ├── theme-sqlserver.js │ │ ├── theme-terminal.js │ │ ├── theme-textmate.js │ │ ├── theme-tomorrow.js │ │ ├── theme-tomorrow_night.js │ │ ├── theme-tomorrow_night_blue.js │ │ ├── theme-tomorrow_night_bright.js │ │ ├── theme-tomorrow_night_eighties.js │ │ ├── theme-twilight.js │ │ ├── theme-vibrant_ink.js │ │ ├── theme-xcode.js │ │ ├── worker-coffee.js │ │ ├── worker-css.js │ │ ├── worker-html.js │ │ ├── worker-javascript.js │ │ ├── worker-json.js │ │ ├── worker-lua.js │ │ ├── worker-php.js │ │ ├── worker-xml.js │ │ └── worker-xquery.js │ ├── images │ │ ├── abstract_co.png │ │ ├── annotation_obj.png │ │ ├── class_default_obj.png │ │ ├── class_obj.png │ │ ├── constr_ovr.png │ │ ├── e.png │ │ ├── enum_obj.png │ │ ├── final_co.png │ │ ├── i.png │ │ ├── icon.png │ │ ├── icons-16 │ │ │ ├── abstract_co.png │ │ │ ├── annotation_obj.png │ │ │ ├── constr_ovr.png │ │ │ ├── enum_obj.png │ │ │ ├── field_default_obj.png │ │ │ ├── field_private_obj.png │ │ │ ├── field_protected_obj.png │ │ │ ├── field_public_obj.png │ │ │ ├── final_co.png │ │ │ ├── int_obj.png │ │ │ ├── java_ovr.png │ │ │ ├── static_co.png │ │ │ ├── sync.png │ │ │ ├── synch_co.png │ │ │ ├── transient_co.png │ │ │ └── volatile_co.png │ │ ├── innerclass_private_obj.png │ │ ├── innerclass_protected_obj.png │ │ ├── int_obj.png │ │ ├── java_ovr.png │ │ ├── line_conn.gif │ │ ├── logo.png │ │ ├── methdef_obj.png │ │ ├── methpri_obj.png │ │ ├── methpro_obj.png │ │ ├── methpub_obj.png │ │ ├── native_co.png │ │ ├── objcclass.png │ │ ├── objcmethod.png │ │ ├── package_obj.png │ │ ├── r.png │ │ ├── ss.png │ │ ├── zTreeStandard.gif │ │ └── zTreeStandard.png │ └── js │ │ ├── app.js │ │ ├── bootstrap-switch.min.js │ │ ├── bootstrap-treeview.js │ │ ├── bootstrap.min.js │ │ ├── editortree.js │ │ ├── fuzzysearch.js │ │ ├── jquery.easyui.min.js │ │ ├── jquery.min.js │ │ ├── jquery.ztree.core.min.js │ │ ├── jquery.ztree.exhide.min.js │ │ └── socket.io.js ├── templates │ ├── custom.html │ ├── decoder.html │ ├── find.html │ ├── header.html │ ├── home.html │ ├── hook.html │ ├── index - 副本.html │ ├── index.html │ ├── stack.html │ ├── toBurp.html │ └── uidump.html ├── tracer.py └── util.py ├── README.md ├── client ├── api │ ├── __init__.py │ ├── _api_process │ │ ├── __init__.py │ │ └── response_processor.py │ ├── auth_server.py │ ├── config_server.py │ ├── data_server.py │ └── game_server │ │ ├── __init__.py │ │ ├── battle.py │ │ ├── building.py │ │ ├── checkin.py │ │ ├── mail.py │ │ ├── mission.py │ │ └── social.py ├── config.py ├── data_model │ ├── __init__.py │ ├── akaccount.py │ ├── battle.py │ ├── building.py │ ├── dungeon.py │ ├── mission.py │ └── troop.py ├── db │ ├── __init__.py │ ├── character_table.py │ ├── gacha_table.py │ ├── item_table.py │ └── stage_table.py ├── encryption.py ├── utils.py ├── vhttp.py └── vlogger.py ├── data ├── TextAsset │ ├── skill_table.json │ ├── skill_table.txt │ ├── story_table.json │ └── story_table.txt ├── arkhack_data.json ├── arkhack_pool.json ├── arkhack_troop.json ├── battle_data │ └── main_00-01.json ├── character_table.json ├── gacha_table.json ├── item_table.json ├── mission_table.json ├── skin_table.json └── stage_table.json ├── dataProcess.py ├── gooo.py ├── gooob.py ├── jsonclass.py ├── mitm ├── addons │ ├── BattleEssential.py │ ├── CharsEssential.py │ ├── JT82.py │ ├── TestFor.py │ ├── __init__.py │ ├── allChars.py │ ├── changeSeed.py │ ├── decryptBattleData.py │ ├── fakeGacha.py │ ├── gachaSimulation.py │ ├── graduateChars.py │ ├── moreChars.py │ ├── unlockSkins.py │ └── userStatus.py ├── model │ ├── __init__.py │ └── troopBuilder.py ├── run_mitm.py └── troopEditor.py ├── requirements.txt └── scripts └── adb_mumu.bat /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | /venv/ 3 | /bin/ 4 | /data/rawhttp/ 5 | /frida_hooks/ 6 | /notes/ 7 | /playground/ -------------------------------------------------------------------------------- /HTTPDecrypt/__init__.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | -------------------------------------------------------------------------------- /HTTPDecrypt/globalenv.py: -------------------------------------------------------------------------------- 1 | # - * - coding:utf-8 - * - 2 | 3 | import frida 4 | from flask import Flask 5 | from flask_socketio import SocketIO 6 | from log import logger 7 | 8 | 9 | class Globalenv(object): 10 | def __init__(self): 11 | self.device_manager = None 12 | self.device = None 13 | self.script = None 14 | self.packagename = None 15 | self.session = None 16 | self.port = 0 17 | self.isAndroid = None 18 | self.allApp = {} 19 | 20 | def set_pkgname(self, pkg): 21 | self.packagename = pkg 22 | 23 | def get_pkgname(self): 24 | return self.packagename 25 | 26 | def set_device(self, port): 27 | self.port = int(port) 28 | 29 | def get_device(self): 30 | # print(self.port) 31 | if self.port == 0: 32 | try: 33 | self.device = frida.get_usb_device() 34 | except Exception as e: 35 | logger.error("{}, please wait for few seconds and retry.".format(e)) 36 | return None 37 | else: 38 | try: 39 | devm = frida.get_device_manager() 40 | self.device = devm.add_remote_device("127.0.0.1:%s" % self.port) 41 | except Exception as e: 42 | return self.device 43 | # self.device = frida.get_usb_device() 44 | #self.device = frida.get_device_manager().enumerate_devices()[-1] # ios use in window bug!!! 45 | return self.device 46 | 47 | 48 | app = Flask(__name__) 49 | async_mode = None 50 | socketio = SocketIO(app, async_mode=async_mode) 51 | 52 | app.jinja_env.auto_reload = True 53 | app.config['TEMPLATES_AUTO_RELOAD'] = True 54 | app.config['SECRET_KEY'] = 'secret!' 55 | genv = Globalenv() 56 | -------------------------------------------------------------------------------- /HTTPDecrypt/log.py: -------------------------------------------------------------------------------- 1 | # - * - coding:utf-8 - * - 2 | import logging 3 | from colorlog import ColoredFormatter 4 | 5 | 6 | def setup_logger(): 7 | """Return a logger with a default ColoredFormatter.""" 8 | formatter = ColoredFormatter( 9 | "%(white)s[%(cyan)s%(asctime)s%(white)s] %(white)s[%(log_color)s%(levelname)s%(white)s]%(reset)s %(message)s", 10 | datefmt="%H:%M:%S", 11 | reset=True, 12 | log_colors={ 13 | "DEBUG": "cyan", 14 | "INFO": "green", 15 | "WARNING": "yellow", 16 | "ERROR": "red", 17 | "CRITICAL": "white,bg_red", 18 | } 19 | ) 20 | 21 | logger = logging.getLogger('example') 22 | handler = logging.StreamHandler() 23 | handler.setFormatter(formatter) 24 | logger.addHandler(handler) 25 | logger.setLevel(logging.DEBUG) 26 | 27 | return logger 28 | 29 | logger = setup_logger() 30 | 31 | # def main(): 32 | # """Create and use a logger.""" 33 | # logger = setup_logger() 34 | # logger.debug('a debug message') 35 | # logger.info('an info message') 36 | # logger.info('aaaaan info message') 37 | # logger.warning('a warning message') 38 | # logger.error('an error message') 39 | # logger.critical('a critical message') 40 | # 41 | # 42 | # if __name__ == '__main__': 43 | # main() -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/Export.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var rpc_result = null; 4 | var rpc_result_ios = null; 5 | rpc.exports = { 6 | 7 | {{iosscript}} 8 | {{scripts}} 9 | 10 | } -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/Export_Template.js: -------------------------------------------------------------------------------- 1 | {{ method_var }}: function({{ args }}){ 2 | Java.perform(function () { 3 | try{ 4 | // var context = Java.use('android.app.ActivityThread').currentApplication().getApplicationContext(); 5 | var {{ clazz_var }} = Java.use("{{clazz_name}}"); 6 | rpc_result = {{ clazz_var }}.{{ method_name }}({{ args }}); 7 | // send(JSON.stringify({"aa":"bb","aa1":"bbb"})+'-cusoto0oom0sc0ri0pt-') 8 | }catch(e){send("{{ method_var }}, " + e + "-er00roo000r-")} 9 | }); 10 | return rpc_result; 11 | }, -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/Export_Template_Instance.js: -------------------------------------------------------------------------------- 1 | {{ method_var }}: function({{ args }}){ 2 | Java.perform(function () { 3 | try{ 4 | var {{ clazz_var }} = Java.use("{{clazz_name}}"); 5 | var temp{{ clazz_var }} = undefined; 6 | 7 | Java.choose("{{clazz_name}}", { 8 | "onMatch": function (instance) { 9 | temp{{ clazz_var }} = instance; 10 | send("find instance.." + "-se00nood00tooag-"); 11 | return 'stop'; 12 | }, 13 | "onComplete": function () { 14 | if (temp{{ clazz_var }} === undefined){ 15 | temp{{ clazz_var }} = {{ clazz_var }}.$new(); 16 | } 17 | } 18 | }); 19 | // send(JSON.stringify({"aa":"bb","aa1":"bbb"})+'-cusoto0oom0sc0ri0pt-') 20 | rpc_result = temp{{ clazz_var }}.{{ method_name }}({{ args }}); 21 | }catch(e){send("{{ method_var }}, " + e + "-er00roo000r-")} 22 | }); 23 | return rpc_result; 24 | }, -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/Export_iosTemplate.js: -------------------------------------------------------------------------------- 1 | {{ method_var }}: function({{ args }}){ 2 | if(ObjC.available) { 3 | try { 4 | var {{ clazz_var }} = ObjC.classes.{{ clazz_name }}; 5 | rpc_result_ios = {{ clazz_var }}["{{method_name}}"]({{ args }}); 6 | // send(JSON.stringify({"aa":"bb","aa1":"bbb"})+'-cusoto0oom0sc0ri0pt-') 7 | }catch (e) { 8 | send("{{ method_var }}, " + e + "-er00roo000r-"); 9 | } 10 | return rpc_result_ios.toString(); 11 | } 12 | 13 | }, -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/Export_iosTemplate_Instance.js: -------------------------------------------------------------------------------- 1 | {{ method_var }}: function({{ args }}){ 2 | if(ObjC.available) { 3 | try { 4 | {{ clazz_var }} = ObjC.chooseSync(ObjC.classes.{{ clazz_name }})[0]; 5 | if({{ clazz_var }} === undefined){ 6 | var {{ clazz_var }} = ObjC.classes.{{ clazz_name }}.alloc(); 7 | if ({{ clazz_var }} === undefined ) { 8 | rpc_result_ios = "Class instance object construction failed, please Generate export instance script file to construct it yourself"; 9 | return rpc_result_ios.toString(); 10 | } 11 | } 12 | 13 | rpc_result_ios = {{ clazz_var }}["{{method_name}}"]({{ args }}); 14 | // send(JSON.stringify({"aa":"bb","aa1":"bbb"})+'-cusoto0oom0sc0ri0pt-') 15 | }catch (e) { 16 | send("{{ method_var }}, " + e + "-er00roo000r-"); 17 | } 18 | return rpc_result_ios.toString(); 19 | } 20 | }, -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/common/common.js: -------------------------------------------------------------------------------- 1 | test -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/doburp.js: -------------------------------------------------------------------------------- 1 | var retval = null; 2 | var sendback = {}; 3 | var recv_data = null; 4 | var signature = "-to0obuooO0rp-"; 5 | var doburp_clazz_Thread = null; 6 | 7 | function getCaller(){ 8 | return doburp_clazz_Thread.currentThread().getStackTrace().slice(2,5).reverse().toString().replace(/,/g,"--->"); 9 | } 10 | 11 | function isObjC(p) { 12 | var klass = getObjCClassPtr(p); 13 | return !klass.isNull(); 14 | } 15 | 16 | 17 | var ISA_MASK = ptr('0x0000000ffffffff8'); 18 | var ISA_MAGIC_MASK = ptr('0x000003f000000001'); 19 | var ISA_MAGIC_VALUE = ptr('0x000001a000000001'); 20 | 21 | function getObjCClassPtr(p) { 22 | /* 23 | * Loosely based on: 24 | * https://blog.timac.org/2016/1124-testing-if-an-arbitrary-pointer-is-a-valid-objective-c-object/ 25 | */ 26 | 27 | if (!isReadable(p)) { 28 | return NULL; 29 | } 30 | var isa = p.readPointer(); 31 | var classP = isa; 32 | if (classP.and(ISA_MAGIC_MASK).equals(ISA_MAGIC_VALUE)) { 33 | classP = isa.and(ISA_MASK); 34 | } 35 | if (isReadable(classP)) { 36 | return classP; 37 | } 38 | return NULL; 39 | } 40 | 41 | function isReadable(p) { 42 | try { 43 | p.readU8(); 44 | return true; 45 | } catch (e) { 46 | return false; 47 | } 48 | } 49 | 50 | setImmediate(function() { 51 | send("doburp running..." + "-se00nood00tooag-"); 52 | if (ObjC.available) { 53 | {{iosscript}} 54 | }else if(Java.available) { 55 | Java.perform(function() { 56 | {{scripts}} 57 | }); 58 | } 59 | }); 60 | 61 | 62 | -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/enumerateNativeMethods.js: -------------------------------------------------------------------------------- 1 | var symbols = Module.enumerateSymbolsSync("libart.so"); 2 | var FindClass = null; 3 | var addrRegisterNatives = null; 4 | var ClassNames = {}; 5 | 6 | for (var i = 0; i < symbols.length; i++) { 7 | var symbol = symbols[i]; 8 | 9 | if(FindClass != null && addrRegisterNatives != null){ 10 | break; 11 | } 12 | 13 | if (symbol.name == "_ZN3art3JNI15RegisterNativesEP7_JNIEnvP7_jclassPK15JNINativeMethodi") { 14 | addrRegisterNatives = symbol.address; 15 | send("RegisterNatives addr is " + addrRegisterNatives + "-se00nood00tooag-"); 16 | }else if(symbol.name == "_ZN3art3JNI9FindClassEP7_JNIEnvPKc"){ 17 | FindClass = symbol.address; 18 | send("FindClass addr is " + FindClass + "-se00nood00tooag-"); 19 | } 20 | } 21 | 22 | if (FindClass != null) { 23 | Interceptor.attach(FindClass, { 24 | onEnter: function (args) { 25 | if (args[1] != null) { 26 | //art::JNI::FindClass(_JNIEnv*, char const*) 27 | ClassNames[args[0]] = Memory.readCString(args[1]); 28 | } 29 | }, 30 | onLeave: function (retval) { } 31 | }); 32 | } 33 | 34 | if(addrRegisterNatives != null){ 35 | Interceptor.attach(addrRegisterNatives, { 36 | onEnter: function(args) { 37 | //art::JNI::RegisterNatives(_JNIEnv*, _jclass*, JNINativeMethod const*, int) 38 | var methods_ptr = ptr(args[2]); 39 | var method_count = parseInt(args[3]); 40 | var sendModules = {}; 41 | for (var i = 0; i < method_count; i++) { 42 | 43 | var name_ptr = Memory.readPointer(methods_ptr.add(i*12)); 44 | var sig_ptr = Memory.readPointer(methods_ptr.add(i*12 + 4)); 45 | var fnPtr_ptr = Memory.readPointer(methods_ptr.add(i*12 + 8)); 46 | 47 | var name = Memory.readCString(name_ptr); 48 | send(name + "-se00nood00tooag-"); 49 | 50 | var sig = Memory.readCString(sig_ptr); 51 | var find_module = Process.findModuleByAddress(fnPtr_ptr); 52 | sendModules['exportname'] = name; 53 | sendModules['modulename'] = find_module.name; 54 | this.moudulename = find_module.name; 55 | sendModules['type'] = "RegisterNatives"; 56 | sendModules['fullname'] = ClassNames[args[0]].replace(/\//g, '.') + "." + name + sig; 57 | send(JSON.stringify(sendModules) + "-natooiv00einoofo-"); 58 | } 59 | }, 60 | onLeave: function(retval) { 61 | send(this.moudulename + " Module RegisterNatives Enum done." + "-se00nood00tooag-"); 62 | } 63 | }); 64 | } 65 | 66 | -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/findhook.js: -------------------------------------------------------------------------------- 1 | // var findhook_retval = null; 2 | // var findhook_sendback = {}; 3 | // var findhook_returntype = null; 4 | 5 | 6 | 7 | function isObjC(p) { 8 | var klass = getObjCClassPtr(p); 9 | return !klass.isNull(); 10 | } 11 | 12 | 13 | var ISA_MASK = ptr('0x0000000ffffffff8'); 14 | var ISA_MAGIC_MASK = ptr('0x000003f000000001'); 15 | var ISA_MAGIC_VALUE = ptr('0x000001a000000001'); 16 | 17 | function getObjCClassPtr(p) { 18 | /* 19 | * Loosely based on: 20 | * https://blog.timac.org/2016/1124-testing-if-an-arbitrary-pointer-is-a-valid-objective-c-object/ 21 | */ 22 | 23 | if (!isReadable(p)) { 24 | return NULL; 25 | } 26 | var isa = p.readPointer(); 27 | var classP = isa; 28 | if (classP.and(ISA_MAGIC_MASK).equals(ISA_MAGIC_VALUE)) { 29 | classP = isa.and(ISA_MASK); 30 | } 31 | if (isReadable(classP)) { 32 | return classP; 33 | } 34 | return NULL; 35 | } 36 | 37 | function isReadable(p) { 38 | try { 39 | p.readU8(); 40 | return true; 41 | } catch (e) { 42 | return false; 43 | } 44 | } 45 | 46 | 47 | setImmediate(function() { 48 | send("findhooks running..." + "-se00nood00tooag-"); 49 | if (ObjC.available) { 50 | 51 | {{iosscript}} 52 | }else if(Java.available) { 53 | Java.perform(function() { 54 | var hooks_clazz_Thread = Java.use("java.lang.Thread"); 55 | {{scripts}} 56 | }); 57 | } 58 | 59 | }); -------------------------------------------------------------------------------- /HTTPDecrypt/scripts/findhook_template.js: -------------------------------------------------------------------------------- 1 | var {{ method_var }} = "{{ method_name }}"; 2 | var {{ index_var }} = {{ index }}; 3 | var {{ clazz_var }} = Java.use("{{ clazz_name }}"); 4 | var {{ clazz_var }}_{{ method_var }} = null; 5 | 6 | {{ clazz_var }}_{{ method_var }} = eval('{{ clazz_var }}[{{ method_var }}].overloads[{{ index_var }}]'); 7 | {{ clazz_var }}_{{ method_var }}.implementation = function() { 8 | 9 | var findhook_retval = null; 10 | var findhook_sendback = {}; 11 | var findhook_returntype = null; 12 | 13 | var findhook_arg_type = ""; 14 | for (var index = 0; index < arguments.length; index++) { 15 | // console.log(typeof (index) + index); 16 | 17 | // for (var index = 0; index < method_hook.argumentTypes.length; index++) { 18 | if (0 == index){ 19 | // console.log(String({{ clazz_var }}_{{ method_var }}.argumentTypes[index]["className"])); 20 | findhook_arg_type += String({{ clazz_var }}_{{ method_var }}.argumentTypes[index]["className"]); 21 | } else{ 22 | findhook_arg_type += "," + String({{ clazz_var }}_{{ method_var }}.argumentTypes[index]["className"]); 23 | } 24 | } 25 | findhook_returntype = String({{ clazz_var }}_{{ method_var }}.returnType['className']); 26 | findhook_retval = this[{{ method_var }}].apply(this, arguments); 27 | findhook_sendback['Methodinfo'] = findhook_returntype + " {{ clazz_name }}.{{ method_name }}(" + findhook_arg_type + ")"; 28 | findhook_sendback['Args'] = arguments; 29 | findhook_sendback['Retval'] = findhook_retval; 30 | findhook_sendback['methodtag'] = "{{ methodtag }}"; 31 | findhook_sendback['stack'] = hooks_clazz_Thread.currentThread().getStackTrace().slice(2,5).reverse().toString().replace(/,/g,"-lineline-"); 32 | 33 | send(JSON.stringify(findhook_sendback, null, 4) + "-fi0n0dh0o0ok-"); 34 | return findhook_retval; 35 | }; 36 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/ext-error_marker.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | window.require(["ace/ext/error_marker"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/ext-linking.js: -------------------------------------------------------------------------------- 1 | define("ace/ext/linking",["require","exports","module","ace/editor","ace/config"], function(require, exports, module) { 2 | 3 | var Editor = require("ace/editor").Editor; 4 | 5 | require("../config").defineOptions(Editor.prototype, "editor", { 6 | enableLinking: { 7 | set: function(val) { 8 | if (val) { 9 | this.on("click", onClick); 10 | this.on("mousemove", onMouseMove); 11 | } else { 12 | this.off("click", onClick); 13 | this.off("mousemove", onMouseMove); 14 | } 15 | }, 16 | value: false 17 | } 18 | }); 19 | 20 | exports.previousLinkingHover = false; 21 | 22 | function onMouseMove(e) { 23 | var editor = e.editor; 24 | var ctrl = e.getAccelKey(); 25 | 26 | if (ctrl) { 27 | var editor = e.editor; 28 | var docPos = e.getDocumentPosition(); 29 | var session = editor.session; 30 | var token = session.getTokenAt(docPos.row, docPos.column); 31 | 32 | if (exports.previousLinkingHover && exports.previousLinkingHover != token) { 33 | editor._emit("linkHoverOut"); 34 | } 35 | editor._emit("linkHover", {position: docPos, token: token}); 36 | exports.previousLinkingHover = token; 37 | } else if (exports.previousLinkingHover) { 38 | editor._emit("linkHoverOut"); 39 | exports.previousLinkingHover = false; 40 | } 41 | } 42 | 43 | function onClick(e) { 44 | var ctrl = e.getAccelKey(); 45 | var button = e.getButton(); 46 | 47 | if (button == 0 && ctrl) { 48 | var editor = e.editor; 49 | var docPos = e.getDocumentPosition(); 50 | var session = editor.session; 51 | var token = session.getTokenAt(docPos.row, docPos.column); 52 | 53 | editor._emit("linkClick", {position: docPos, token: token}); 54 | } 55 | } 56 | 57 | }); (function() { 58 | window.require(["ace/ext/linking"], function(m) { 59 | if (typeof module == "object" && typeof exports == "object" && module) { 60 | module.exports = m; 61 | } 62 | }); 63 | })(); 64 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/ext-statusbar.js: -------------------------------------------------------------------------------- 1 | define("ace/ext/statusbar",["require","exports","module","ace/lib/dom","ace/lib/lang"], function(require, exports, module) { 2 | "use strict"; 3 | var dom = require("ace/lib/dom"); 4 | var lang = require("ace/lib/lang"); 5 | 6 | var StatusBar = function(editor, parentNode) { 7 | this.element = dom.createElement("div"); 8 | this.element.className = "ace_status-indicator"; 9 | this.element.style.cssText = "display: inline-block;"; 10 | parentNode.appendChild(this.element); 11 | 12 | var statusUpdate = lang.delayedCall(function(){ 13 | this.updateStatus(editor); 14 | }.bind(this)).schedule.bind(null, 100); 15 | 16 | editor.on("changeStatus", statusUpdate); 17 | editor.on("changeSelection", statusUpdate); 18 | editor.on("keyboardActivity", statusUpdate); 19 | }; 20 | 21 | (function(){ 22 | this.updateStatus = function(editor) { 23 | var status = []; 24 | function add(str, separator) { 25 | str && status.push(str, separator || "|"); 26 | } 27 | 28 | add(editor.keyBinding.getStatusText(editor)); 29 | if (editor.commands.recording) 30 | add("REC"); 31 | 32 | var sel = editor.selection; 33 | var c = sel.lead; 34 | 35 | if (!sel.isEmpty()) { 36 | var r = editor.getSelectionRange(); 37 | add("(" + (r.end.row - r.start.row) + ":" +(r.end.column - r.start.column) + ")", " "); 38 | } 39 | add(c.row + ":" + c.column, " "); 40 | if (sel.rangeCount) 41 | add("[" + sel.rangeCount + "]", " "); 42 | status.pop(); 43 | this.element.textContent = status.join(""); 44 | }; 45 | }).call(StatusBar.prototype); 46 | 47 | exports.StatusBar = StatusBar; 48 | 49 | }); (function() { 50 | window.require(["ace/ext/statusbar"], function(m) { 51 | if (typeof module == "object" && typeof exports == "object" && module) { 52 | module.exports = m; 53 | } 54 | }); 55 | })(); 56 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/mode-csp.js: -------------------------------------------------------------------------------- 1 | define("ace/mode/csp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | var oop = require("../lib/oop"); 5 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; 6 | 7 | var CspHighlightRules = function() { 8 | var keywordMapper = this.createKeywordMapper({ 9 | "constant.language": "child-src|connect-src|default-src|font-src|frame-src|img-src|manifest-src|media-src|object-src" 10 | + "|script-src|style-src|worker-src|base-uri|plugin-types|sandbox|disown-opener|form-action|frame-ancestors|report-uri" 11 | + "|report-to|upgrade-insecure-requests|block-all-mixed-content|require-sri-for|reflected-xss|referrer|policy-uri", 12 | "variable": "'none'|'self'|'unsafe-inline'|'unsafe-eval'|'strict-dynamic'|'unsafe-hashed-attributes'" 13 | }, "identifier", true); 14 | 15 | this.$rules = { 16 | start: [{ 17 | token: "string.link", 18 | regex: /https?:[^;\s]*/ 19 | }, { 20 | token: "operator.punctuation", 21 | regex: /;/ 22 | }, { 23 | token: keywordMapper, 24 | regex: /[^\s;]+/ 25 | }] 26 | }; 27 | }; 28 | 29 | oop.inherits(CspHighlightRules, TextHighlightRules); 30 | 31 | exports.CspHighlightRules = CspHighlightRules; 32 | }); 33 | 34 | define("ace/mode/csp",["require","exports","module","ace/mode/text","ace/mode/csp_highlight_rules","ace/lib/oop"], function(require, exports, module) { 35 | "use strict"; 36 | 37 | var TextMode = require("./text").Mode; 38 | var CspHighlightRules = require("./csp_highlight_rules").CspHighlightRules; 39 | var oop = require("../lib/oop"); 40 | 41 | var Mode = function() { 42 | this.HighlightRules = CspHighlightRules; 43 | }; 44 | 45 | oop.inherits(Mode, TextMode); 46 | 47 | (function() { 48 | this.$id = "ace/mode/csp"; 49 | }).call(Mode.prototype); 50 | 51 | exports.Mode = Mode; 52 | }); (function() { 53 | window.require(["ace/mode/csp"], function(m) { 54 | if (typeof module == "object" && typeof exports == "object" && module) { 55 | module.exports = m; 56 | } 57 | }); 58 | })(); 59 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/mode-gitignore.js: -------------------------------------------------------------------------------- 1 | define("ace/mode/gitignore_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | var oop = require("../lib/oop"); 5 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; 6 | 7 | var GitignoreHighlightRules = function() { 8 | this.$rules = { 9 | "start" : [ 10 | { 11 | token : "comment", 12 | regex : /^\s*#.*$/ 13 | }, { 14 | token : "keyword", // negated patterns 15 | regex : /^\s*!.*$/ 16 | } 17 | ] 18 | }; 19 | 20 | this.normalizeRules(); 21 | }; 22 | 23 | GitignoreHighlightRules.metaData = { 24 | fileTypes: ['gitignore'], 25 | name: 'Gitignore' 26 | }; 27 | 28 | oop.inherits(GitignoreHighlightRules, TextHighlightRules); 29 | 30 | exports.GitignoreHighlightRules = GitignoreHighlightRules; 31 | }); 32 | 33 | define("ace/mode/gitignore",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gitignore_highlight_rules"], function(require, exports, module) { 34 | "use strict"; 35 | 36 | var oop = require("../lib/oop"); 37 | var TextMode = require("./text").Mode; 38 | var GitignoreHighlightRules = require("./gitignore_highlight_rules").GitignoreHighlightRules; 39 | 40 | var Mode = function() { 41 | this.HighlightRules = GitignoreHighlightRules; 42 | this.$behaviour = this.$defaultBehaviour; 43 | }; 44 | oop.inherits(Mode, TextMode); 45 | 46 | (function() { 47 | this.lineCommentStart = "#"; 48 | this.$id = "ace/mode/gitignore"; 49 | }).call(Mode.prototype); 50 | 51 | exports.Mode = Mode; 52 | }); (function() { 53 | window.require(["ace/mode/gitignore"], function(m) { 54 | if (typeof module == "object" && typeof exports == "object" && module) { 55 | module.exports = m; 56 | } 57 | }); 58 | })(); 59 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/mode-plain_text.js: -------------------------------------------------------------------------------- 1 | define("ace/mode/plain_text",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/behaviour"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | var oop = require("../lib/oop"); 5 | var TextMode = require("./text").Mode; 6 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; 7 | var Behaviour = require("./behaviour").Behaviour; 8 | 9 | var Mode = function() { 10 | this.HighlightRules = TextHighlightRules; 11 | this.$behaviour = new Behaviour(); 12 | }; 13 | 14 | oop.inherits(Mode, TextMode); 15 | 16 | (function() { 17 | this.type = "text"; 18 | this.getNextLineIndent = function(state, line, tab) { 19 | return ''; 20 | }; 21 | this.$id = "ace/mode/plain_text"; 22 | }).call(Mode.prototype); 23 | 24 | exports.Mode = Mode; 25 | }); (function() { 26 | window.require(["ace/mode/plain_text"], function(m) { 27 | if (typeof module == "object" && typeof exports == "object" && module) { 28 | module.exports = m; 29 | } 30 | }); 31 | })(); 32 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/mode-properties.js: -------------------------------------------------------------------------------- 1 | define("ace/mode/properties_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | var oop = require("../lib/oop"); 5 | var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; 6 | 7 | var PropertiesHighlightRules = function() { 8 | 9 | var escapeRe = /\\u[0-9a-fA-F]{4}|\\/; 10 | 11 | this.$rules = { 12 | "start" : [ 13 | { 14 | token : "comment", 15 | regex : /[!#].*$/ 16 | }, { 17 | token : "keyword", 18 | regex : /[=:]$/ 19 | }, { 20 | token : "keyword", 21 | regex : /[=:]/, 22 | next : "value" 23 | }, { 24 | token : "constant.language.escape", 25 | regex : escapeRe 26 | }, { 27 | defaultToken: "variable" 28 | } 29 | ], 30 | "value" : [ 31 | { 32 | regex : /\\$/, 33 | token : "string", 34 | next : "value" 35 | }, { 36 | regex : /$/, 37 | token : "string", 38 | next : "start" 39 | }, { 40 | token : "constant.language.escape", 41 | regex : escapeRe 42 | }, { 43 | defaultToken: "string" 44 | } 45 | ] 46 | }; 47 | 48 | }; 49 | 50 | oop.inherits(PropertiesHighlightRules, TextHighlightRules); 51 | 52 | exports.PropertiesHighlightRules = PropertiesHighlightRules; 53 | }); 54 | 55 | define("ace/mode/properties",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/properties_highlight_rules"], function(require, exports, module) { 56 | "use strict"; 57 | 58 | var oop = require("../lib/oop"); 59 | var TextMode = require("./text").Mode; 60 | var PropertiesHighlightRules = require("./properties_highlight_rules").PropertiesHighlightRules; 61 | 62 | var Mode = function() { 63 | this.HighlightRules = PropertiesHighlightRules; 64 | this.$behaviour = this.$defaultBehaviour; 65 | }; 66 | oop.inherits(Mode, TextMode); 67 | 68 | (function() { 69 | this.$id = "ace/mode/properties"; 70 | }).call(Mode.prototype); 71 | 72 | exports.Mode = Mode; 73 | }); (function() { 74 | window.require(["ace/mode/properties"], function(m) { 75 | if (typeof module == "object" && typeof exports == "object" && module) { 76 | module.exports = m; 77 | } 78 | }); 79 | })(); 80 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/mode-text.js: -------------------------------------------------------------------------------- 1 | 2 | ; (function() { 3 | window.require(["ace/mode/text"], function(m) { 4 | if (typeof module == "object" && typeof exports == "object" && module) { 5 | module.exports = m; 6 | } 7 | }); 8 | })(); 9 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/abap.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/abap",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "abap"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/abap"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/abc.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/abc",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "\n\ 5 | snippet zupfnoter.print\n\ 6 | %%%%hn.print {\"startpos\": ${1:pos_y}, \"t\":\"${2:title}\", \"v\":[${3:voices}], \"s\":[[${4:syncvoices}1,2]], \"f\":[${5:flowlines}], \"sf\":[${6:subflowlines}], \"j\":[${7:jumplines}]}\n\ 7 | \n\ 8 | snippet zupfnoter.note\n\ 9 | %%%%hn.note {\"pos\": [${1:pos_x},${2:pos_y}], \"text\": \"${3:text}\", \"style\": \"${4:style}\"}\n\ 10 | \n\ 11 | snippet zupfnoter.annotation\n\ 12 | %%%%hn.annotation {\"id\": \"${1:id}\", \"pos\": [${2:pos}], \"text\": \"${3:text}\"}\n\ 13 | \n\ 14 | snippet zupfnoter.lyrics\n\ 15 | %%%%hn.lyrics {\"pos\": [${1:x_pos},${2:y_pos}]}\n\ 16 | \n\ 17 | snippet zupfnoter.legend\n\ 18 | %%%%hn.legend {\"pos\": [${1:x_pos},${2:y_pos}]}\n\ 19 | \n\ 20 | \n\ 21 | \n\ 22 | snippet zupfnoter.target\n\ 23 | \"^:${1:target}\"\n\ 24 | \n\ 25 | snippet zupfnoter.goto\n\ 26 | \"^@${1:target}@${2:distance}\"\n\ 27 | \n\ 28 | snippet zupfnoter.annotationref\n\ 29 | \"^#${1:target}\"\n\ 30 | \n\ 31 | snippet zupfnoter.annotation\n\ 32 | \"^!${1:text}@${2:x_offset},${3:y_offset}\"\n\ 33 | \n\ 34 | \n\ 35 | "; 36 | exports.scope = "abc"; 37 | 38 | }); (function() { 39 | window.require(["ace/snippets/abc"], function(m) { 40 | if (typeof module == "object" && typeof exports == "object" && module) { 41 | module.exports = m; 42 | } 43 | }); 44 | })(); 45 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/ada.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/ada",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "ada"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/ada"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/apache_conf.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/apache_conf",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "apache_conf"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/apache_conf"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/apex.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/apex",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "apex"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/apex"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/applescript.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/applescript",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "applescript"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/applescript"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/asciidoc.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/asciidoc",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "asciidoc"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/asciidoc"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/asl.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/asl",["require","exports","module"], function (require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "asl"; 6 | }); (function() { 7 | window.require(["ace/snippets/asl"], function(m) { 8 | if (typeof module == "object" && typeof exports == "object" && module) { 9 | module.exports = m; 10 | } 11 | }); 12 | })(); 13 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/assembly_x86.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/assembly_x86",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "assembly_x86"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/assembly_x86"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/autohotkey.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/autohotkey",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "autohotkey"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/autohotkey"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/batchfile.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/batchfile",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "batchfile"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/batchfile"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/bro.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/bro",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/bro"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/c9search.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/c9search",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "c9search"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/c9search"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/cirru.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/cirru",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "cirru"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/cirru"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/cobol.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/cobol",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "cobol"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/cobol"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/coldfusion.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/coldfusion",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "coldfusion"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/coldfusion"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/csharp.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/csharp",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "csharp"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/csharp"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/csound_document.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/csound_document",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "# \n\ 5 | snippet synth\n\ 6 | \n\ 7 | \n\ 8 | ${1}\n\ 9 | \n\ 10 | \n\ 11 | e\n\ 12 | \n\ 13 | \n\ 14 | "; 15 | exports.scope = "csound_document"; 16 | 17 | }); (function() { 18 | window.require(["ace/snippets/csound_document"], function(m) { 19 | if (typeof module == "object" && typeof exports == "object" && module) { 20 | module.exports = m; 21 | } 22 | }); 23 | })(); 24 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/csound_orchestra.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/csound_orchestra",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "# else\n\ 5 | snippet else\n\ 6 | else\n\ 7 | ${1:/* statements */}\n\ 8 | # elseif\n\ 9 | snippet elseif\n\ 10 | elseif ${1:/* condition */} then\n\ 11 | ${2:/* statements */}\n\ 12 | # if\n\ 13 | snippet if\n\ 14 | if ${1:/* condition */} then\n\ 15 | ${2:/* statements */}\n\ 16 | endif\n\ 17 | # instrument block\n\ 18 | snippet instr\n\ 19 | instr ${1:name}\n\ 20 | ${2:/* statements */}\n\ 21 | endin\n\ 22 | # i-time while loop\n\ 23 | snippet iwhile\n\ 24 | i${1:Index} = ${2:0}\n\ 25 | while i${1:Index} < ${3:/* count */} do\n\ 26 | ${4:/* statements */}\n\ 27 | i${1:Index} += 1\n\ 28 | od\n\ 29 | # k-rate while loop\n\ 30 | snippet kwhile\n\ 31 | k${1:Index} = ${2:0}\n\ 32 | while k${1:Index} < ${3:/* count */} do\n\ 33 | ${4:/* statements */}\n\ 34 | k${1:Index} += 1\n\ 35 | od\n\ 36 | # opcode\n\ 37 | snippet opcode\n\ 38 | opcode ${1:name}, ${2:/* output types */ 0}, ${3:/* input types */ 0}\n\ 39 | ${4:/* statements */}\n\ 40 | endop\n\ 41 | # until loop\n\ 42 | snippet until\n\ 43 | until ${1:/* condition */} do\n\ 44 | ${2:/* statements */}\n\ 45 | od\n\ 46 | # while loop\n\ 47 | snippet while\n\ 48 | while ${1:/* condition */} do\n\ 49 | ${2:/* statements */}\n\ 50 | od\n\ 51 | "; 52 | exports.scope = "csound_orchestra"; 53 | 54 | }); (function() { 55 | window.require(["ace/snippets/csound_orchestra"], function(m) { 56 | if (typeof module == "object" && typeof exports == "object" && module) { 57 | module.exports = m; 58 | } 59 | }); 60 | })(); 61 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/csound_score.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/csound_score",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "csound_score"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/csound_score"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/csp.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/csp",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/csp"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/curly.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/curly",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "curly"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/curly"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/d.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/d",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "d"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/d"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/dart.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/dart",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "snippet lib\n\ 5 | library ${1};\n\ 6 | ${2}\n\ 7 | snippet im\n\ 8 | import '${1}';\n\ 9 | ${2}\n\ 10 | snippet pa\n\ 11 | part '${1}';\n\ 12 | ${2}\n\ 13 | snippet pao\n\ 14 | part of ${1};\n\ 15 | ${2}\n\ 16 | snippet main\n\ 17 | void main() {\n\ 18 | ${1:/* code */}\n\ 19 | }\n\ 20 | snippet st\n\ 21 | static ${1}\n\ 22 | snippet fi\n\ 23 | final ${1}\n\ 24 | snippet re\n\ 25 | return ${1}\n\ 26 | snippet br\n\ 27 | break;\n\ 28 | snippet th\n\ 29 | throw ${1}\n\ 30 | snippet cl\n\ 31 | class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\ 32 | snippet imp\n\ 33 | implements ${1}\n\ 34 | snippet ext\n\ 35 | extends ${1}\n\ 36 | snippet if\n\ 37 | if (${1:true}) {\n\ 38 | ${2}\n\ 39 | }\n\ 40 | snippet ife\n\ 41 | if (${1:true}) {\n\ 42 | ${2}\n\ 43 | } else {\n\ 44 | ${3}\n\ 45 | }\n\ 46 | snippet el\n\ 47 | else\n\ 48 | snippet sw\n\ 49 | switch (${1}) {\n\ 50 | ${2}\n\ 51 | }\n\ 52 | snippet cs\n\ 53 | case ${1}:\n\ 54 | ${2}\n\ 55 | snippet de\n\ 56 | default:\n\ 57 | ${1}\n\ 58 | snippet for\n\ 59 | for (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\n\ 60 | ${4:$1[$2]}\n\ 61 | }\n\ 62 | snippet fore\n\ 63 | for (final ${2:item} in ${1:itemList}) {\n\ 64 | ${3:/* code */}\n\ 65 | }\n\ 66 | snippet wh\n\ 67 | while (${1:/* condition */}) {\n\ 68 | ${2:/* code */}\n\ 69 | }\n\ 70 | snippet dowh\n\ 71 | do {\n\ 72 | ${2:/* code */}\n\ 73 | } while (${1:/* condition */});\n\ 74 | snippet as\n\ 75 | assert(${1:/* condition */});\n\ 76 | snippet try\n\ 77 | try {\n\ 78 | ${2}\n\ 79 | } catch (${1:Exception e}) {\n\ 80 | }\n\ 81 | snippet tryf\n\ 82 | try {\n\ 83 | ${2}\n\ 84 | } catch (${1:Exception e}) {\n\ 85 | } finally {\n\ 86 | }\n\ 87 | "; 88 | exports.scope = "dart"; 89 | 90 | }); (function() { 91 | window.require(["ace/snippets/dart"], function(m) { 92 | if (typeof module == "object" && typeof exports == "object" && module) { 93 | module.exports = m; 94 | } 95 | }); 96 | })(); 97 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/diff.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/diff",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\n\ 5 | snippet header DEP-3 style header\n\ 6 | Description: ${1}\n\ 7 | Origin: ${2:vendor|upstream|other}, ${3:url of the original patch}\n\ 8 | Bug: ${4:url in upstream bugtracker}\n\ 9 | Forwarded: ${5:no|not-needed|url}\n\ 10 | Author: ${6:`g:snips_author`}\n\ 11 | Reviewed-by: ${7:name and email}\n\ 12 | Last-Update: ${8:`strftime(\"%Y-%m-%d\")`}\n\ 13 | Applied-Upstream: ${9:upstream version|url|commit}\n\ 14 | \n\ 15 | "; 16 | exports.scope = "diff"; 17 | 18 | }); (function() { 19 | window.require(["ace/snippets/diff"], function(m) { 20 | if (typeof module == "object" && typeof exports == "object" && module) { 21 | module.exports = m; 22 | } 23 | }); 24 | })(); 25 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/dockerfile.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/dockerfile",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "dockerfile"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/dockerfile"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/dot.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/dot",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "dot"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/dot"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/drools.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/drools",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "\n\ 5 | snippet rule\n\ 6 | rule \"${1?:rule_name}\"\n\ 7 | when\n\ 8 | ${2:// when...} \n\ 9 | then\n\ 10 | ${3:// then...}\n\ 11 | end\n\ 12 | \n\ 13 | snippet query\n\ 14 | query ${1?:query_name}\n\ 15 | ${2:// find} \n\ 16 | end\n\ 17 | \n\ 18 | snippet declare\n\ 19 | declare ${1?:type_name}\n\ 20 | ${2:// attributes} \n\ 21 | end\n\ 22 | \n\ 23 | "; 24 | exports.scope = "drools"; 25 | 26 | }); (function() { 27 | window.require(["ace/snippets/drools"], function(m) { 28 | if (typeof module == "object" && typeof exports == "object" && module) { 29 | module.exports = m; 30 | } 31 | }); 32 | })(); 33 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/eiffel.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/eiffel",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "eiffel"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/eiffel"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/ejs.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/ejs",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "ejs"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/ejs"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/elixir.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/elixir",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/elixir"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/elm.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/elm",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "elm"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/elm"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/forth.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/forth",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "forth"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/forth"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/fortran.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/fortran",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "fortran"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/fortran"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/fsharp.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/fsharp",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "fsharp"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/fsharp"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/fsl.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/fsl",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/fsl"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/ftl.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/ftl",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "ftl"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/ftl"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/gcode.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/gcode",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "gcode"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/gcode"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/gherkin.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/gherkin",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "gherkin"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/gherkin"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/gitignore.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/gitignore",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "gitignore"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/gitignore"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/glsl.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/glsl",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "glsl"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/glsl"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/gobstones.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/gobstones",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "# Procedure\n\ 5 | snippet proc\n\ 6 | procedure ${1?:name}(${2:argument}) {\n\ 7 | ${3:// body...}\n\ 8 | }\n\ 9 | \n\ 10 | # Function\n\ 11 | snippet fun\n\ 12 | function ${1?:name}(${2:argument}) {\n\ 13 | return ${3:// body...}\n\ 14 | }\n\ 15 | \n\ 16 | # Repeat\n\ 17 | snippet rep\n\ 18 | repeat ${1?:times} {\n\ 19 | ${2:// body...}\n\ 20 | }\n\ 21 | \n\ 22 | # For\n\ 23 | snippet for\n\ 24 | foreach ${1?:e} in ${2?:list} {\n\ 25 | ${3:// body...} \n\ 26 | }\n\ 27 | \n\ 28 | # If\n\ 29 | snippet if\n\ 30 | if (${1?:condition}) {\n\ 31 | ${3:// body...} \n\ 32 | }\n\ 33 | \n\ 34 | # While\n\ 35 | while (${1?:condition}) {\n\ 36 | ${2:// body...} \n\ 37 | }\n\ 38 | "; 39 | exports.scope = "gobstones"; 40 | 41 | }); (function() { 42 | window.require(["ace/snippets/gobstones"], function(m) { 43 | if (typeof module == "object" && typeof exports == "object" && module) { 44 | module.exports = m; 45 | } 46 | }); 47 | })(); 48 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/golang.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/golang",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "golang"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/golang"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/graphqlschema.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/graphqlschema",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "# Type Snippet\n\ 5 | trigger type\n\ 6 | snippet type\n\ 7 | type ${1:type_name} {\n\ 8 | ${2:type_siblings}\n\ 9 | }\n\ 10 | \n\ 11 | # Input Snippet\n\ 12 | trigger input\n\ 13 | snippet input\n\ 14 | input ${1:input_name} {\n\ 15 | ${2:input_siblings}\n\ 16 | }\n\ 17 | \n\ 18 | # Interface Snippet\n\ 19 | trigger interface\n\ 20 | snippet interface\n\ 21 | interface ${1:interface_name} {\n\ 22 | ${2:interface_siblings}\n\ 23 | }\n\ 24 | \n\ 25 | # Interface Snippet\n\ 26 | trigger union\n\ 27 | snippet union\n\ 28 | union ${1:union_name} = ${2:type} | ${3: type}\n\ 29 | \n\ 30 | # Enum Snippet\n\ 31 | trigger enum\n\ 32 | snippet enum\n\ 33 | enum ${1:enum_name} {\n\ 34 | ${2:enum_siblings}\n\ 35 | }\n\ 36 | "; 37 | exports.scope = "graphqlschema"; 38 | 39 | }); (function() { 40 | window.require(["ace/snippets/graphqlschema"], function(m) { 41 | if (typeof module == "object" && typeof exports == "object" && module) { 42 | module.exports = m; 43 | } 44 | }); 45 | })(); 46 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/groovy.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/groovy",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "groovy"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/groovy"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/haml.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/haml",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "snippet t\n\ 5 | %table\n\ 6 | %tr\n\ 7 | %th\n\ 8 | ${1:headers}\n\ 9 | %tr\n\ 10 | %td\n\ 11 | ${2:headers}\n\ 12 | snippet ul\n\ 13 | %ul\n\ 14 | %li\n\ 15 | ${1:item}\n\ 16 | %li\n\ 17 | snippet =rp\n\ 18 | = render :partial => '${1:partial}'\n\ 19 | snippet =rpl\n\ 20 | = render :partial => '${1:partial}', :locals => {}\n\ 21 | snippet =rpc\n\ 22 | = render :partial => '${1:partial}', :collection => @$1\n\ 23 | \n\ 24 | "; 25 | exports.scope = "haml"; 26 | 27 | }); (function() { 28 | window.require(["ace/snippets/haml"], function(m) { 29 | if (typeof module == "object" && typeof exports == "object" && module) { 30 | module.exports = m; 31 | } 32 | }); 33 | })(); 34 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/handlebars.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/handlebars",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "handlebars"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/handlebars"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/haskell_cabal.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/haskell_cabal",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "haskell_cabal"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/haskell_cabal"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/haxe.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/haxe",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "haxe"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/haxe"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/hjson.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/hjson",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/hjson"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/html_elixir.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/html_elixir",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "html_elixir"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/html_elixir"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/html_ruby.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/html_ruby",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "html_ruby"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/html_ruby"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/ini.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/ini",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "ini"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/ini"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/io.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/io",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippets = [ 5 | { 6 | "content": "assertEquals(${1:expected}, ${2:expr})", 7 | "name": "assertEquals", 8 | "scope": "io", 9 | "tabTrigger": "ae" 10 | }, 11 | { 12 | "content": "${1:${2:newValue} := ${3:Object} }clone do(\n\t$0\n)", 13 | "name": "clone do", 14 | "scope": "io", 15 | "tabTrigger": "cdo" 16 | }, 17 | { 18 | "content": "docSlot(\"${1:slotName}\", \"${2:documentation}\")", 19 | "name": "docSlot", 20 | "scope": "io", 21 | "tabTrigger": "ds" 22 | }, 23 | { 24 | "content": "(${1:header,}\n\t${2:body}\n)$0", 25 | "keyEquivalent": "@(", 26 | "name": "Indented Bracketed Line", 27 | "scope": "io", 28 | "tabTrigger": "(" 29 | }, 30 | { 31 | "content": "\n\t$0\n", 32 | "keyEquivalent": "\r", 33 | "name": "Special: Return Inside Empty Parenthesis", 34 | "scope": "io meta.empty-parenthesis.io, io meta.comma-parenthesis.io" 35 | }, 36 | { 37 | "content": "${1:methodName} := method(${2:args,}\n\t$0\n)", 38 | "name": "method", 39 | "scope": "io", 40 | "tabTrigger": "m" 41 | }, 42 | { 43 | "content": "newSlot(\"${1:slotName}\", ${2:defaultValue}, \"${3:docString}\")$0", 44 | "name": "newSlot", 45 | "scope": "io", 46 | "tabTrigger": "ns" 47 | }, 48 | { 49 | "content": "${1:name} := Object clone do(\n\t$0\n)", 50 | "name": "Object clone do", 51 | "scope": "io", 52 | "tabTrigger": "ocdo" 53 | }, 54 | { 55 | "content": "test${1:SomeFeature} := method(\n\t$0\n)", 56 | "name": "testMethod", 57 | "scope": "io", 58 | "tabTrigger": "ts" 59 | }, 60 | { 61 | "content": "${1:Something}Test := ${2:UnitTest} clone do(\n\t$0\n)", 62 | "name": "UnitTest", 63 | "scope": "io", 64 | "tabTrigger": "ut" 65 | } 66 | ]; 67 | exports.scope = "io"; 68 | 69 | }); (function() { 70 | window.require(["ace/snippets/io"], function(m) { 71 | if (typeof module == "object" && typeof exports == "object" && module) { 72 | module.exports = m; 73 | } 74 | }); 75 | })(); 76 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/jack.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/jack",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "jack"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/jack"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/jade.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/jade",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "jade"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/jade"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/json.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/json",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "json"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/json"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/jsoniq.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/jsoniq",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "snippet for\n\ 5 | for $${1:item} in ${2:expr}\n\ 6 | snippet return\n\ 7 | return ${1:expr}\n\ 8 | snippet import\n\ 9 | import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\ 10 | snippet some\n\ 11 | some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ 12 | snippet every\n\ 13 | every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ 14 | snippet if\n\ 15 | if(${1:true}) then ${2:expr} else ${3:true}\n\ 16 | snippet switch\n\ 17 | switch(${1:\"foo\"})\n\ 18 | case ${2:\"foo\"}\n\ 19 | return ${3:true}\n\ 20 | default return ${4:false}\n\ 21 | snippet try\n\ 22 | try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\ 23 | snippet tumbling\n\ 24 | for tumbling window $${1:varname} in ${2:expr}\n\ 25 | start at $${3:start} when ${4:expr}\n\ 26 | end at $${5:end} when ${6:expr}\n\ 27 | return ${7:expr}\n\ 28 | snippet sliding\n\ 29 | for sliding window $${1:varname} in ${2:expr}\n\ 30 | start at $${3:start} when ${4:expr}\n\ 31 | end at $${5:end} when ${6:expr}\n\ 32 | return ${7:expr}\n\ 33 | snippet let\n\ 34 | let $${1:varname} := ${2:expr}\n\ 35 | snippet group\n\ 36 | group by $${1:varname} := ${2:expr}\n\ 37 | snippet order\n\ 38 | order by ${1:expr} ${2:descending}\n\ 39 | snippet stable\n\ 40 | stable order by ${1:expr}\n\ 41 | snippet count\n\ 42 | count $${1:varname}\n\ 43 | snippet ordered\n\ 44 | ordered { ${1:expr} }\n\ 45 | snippet unordered\n\ 46 | unordered { ${1:expr} }\n\ 47 | snippet treat \n\ 48 | treat as ${1:expr}\n\ 49 | snippet castable\n\ 50 | castable as ${1:atomicType}\n\ 51 | snippet cast\n\ 52 | cast as ${1:atomicType}\n\ 53 | snippet typeswitch\n\ 54 | typeswitch(${1:expr})\n\ 55 | case ${2:type} return ${3:expr}\n\ 56 | default return ${4:expr}\n\ 57 | snippet var\n\ 58 | declare variable $${1:varname} := ${2:expr};\n\ 59 | snippet fn\n\ 60 | declare function ${1:ns}:${2:name}(){\n\ 61 | ${3:expr}\n\ 62 | };\n\ 63 | snippet module\n\ 64 | module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\ 65 | "; 66 | exports.scope = "jsoniq"; 67 | 68 | }); (function() { 69 | window.require(["ace/snippets/jsoniq"], function(m) { 70 | if (typeof module == "object" && typeof exports == "object" && module) { 71 | module.exports = m; 72 | } 73 | }); 74 | })(); 75 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/jssm.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/jssm",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/jssm"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/jsx.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/jsx",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "jsx"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/jsx"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/julia.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/julia",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "julia"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/julia"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/kotlin.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/kotlin",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/kotlin"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/latex.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/latex",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "latex"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/latex"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/less.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/less",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "less"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/less"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/lisp.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/lisp",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "lisp"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/lisp"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/livescript.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/livescript",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "livescript"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/livescript"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/logiql.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/logiql",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "logiql"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/logiql"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/logtalk.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/logtalk",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "logtalk"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/logtalk"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/lua.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/lua",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "snippet #!\n\ 5 | #!/usr/bin/env lua\n\ 6 | $1\n\ 7 | snippet local\n\ 8 | local ${1:x} = ${2:1}\n\ 9 | snippet fun\n\ 10 | function ${1:fname}(${2:...})\n\ 11 | ${3:-- body}\n\ 12 | end\n\ 13 | snippet for\n\ 14 | for ${1:i}=${2:1},${3:10} do\n\ 15 | ${4:print(i)}\n\ 16 | end\n\ 17 | snippet forp\n\ 18 | for ${1:i},${2:v} in pairs(${3:table_name}) do\n\ 19 | ${4:-- body}\n\ 20 | end\n\ 21 | snippet fori\n\ 22 | for ${1:i},${2:v} in ipairs(${3:table_name}) do\n\ 23 | ${4:-- body}\n\ 24 | end\n\ 25 | "; 26 | exports.scope = "lua"; 27 | 28 | }); (function() { 29 | window.require(["ace/snippets/lua"], function(m) { 30 | if (typeof module == "object" && typeof exports == "object" && module) { 31 | module.exports = m; 32 | } 33 | }); 34 | })(); 35 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/luapage.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/luapage",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "luapage"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/luapage"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/lucene.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/lucene",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "lucene"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/lucene"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/makefile.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/makefile",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "snippet ifeq\n\ 5 | ifeq (${1:cond0},${2:cond1})\n\ 6 | ${3:code}\n\ 7 | endif\n\ 8 | "; 9 | exports.scope = "makefile"; 10 | 11 | }); (function() { 12 | window.require(["ace/snippets/makefile"], function(m) { 13 | if (typeof module == "object" && typeof exports == "object" && module) { 14 | module.exports = m; 15 | } 16 | }); 17 | })(); 18 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/mask.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/mask",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "mask"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/mask"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/matlab.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/matlab",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "matlab"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/matlab"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/maze.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/maze",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "snippet >\n\ 5 | description assignment\n\ 6 | scope maze\n\ 7 | -> ${1}= ${2}\n\ 8 | \n\ 9 | snippet >\n\ 10 | description if\n\ 11 | scope maze\n\ 12 | -> IF ${2:**} THEN %${3:L} ELSE %${4:R}\n\ 13 | "; 14 | exports.scope = "maze"; 15 | 16 | }); (function() { 17 | window.require(["ace/snippets/maze"], function(m) { 18 | if (typeof module == "object" && typeof exports == "object" && module) { 19 | module.exports = m; 20 | } 21 | }); 22 | })(); 23 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/mel.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/mel",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "mel"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/mel"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/mixal.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/mixal",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "mixal"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/mixal"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/mushcode.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/mushcode",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "mushcode"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/mushcode"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/mysql.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/mysql",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "mysql"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/mysql"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/nix.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/nix",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "nix"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/nix"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/nsis.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/nsis",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/nsis"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/objectivec.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/objectivec",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "objectivec"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/objectivec"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/ocaml.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/ocaml",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "ocaml"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/ocaml"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/pascal.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/pascal",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "pascal"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/pascal"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/perl6.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/perl6",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "perl6"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/perl6"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/pgsql.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/pgsql",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "pgsql"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/pgsql"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/php_laravel_blade.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/php_laravel_blade",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "php"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/php_laravel_blade"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/pig.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/pig",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "pig"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/pig"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/plain_text.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/plain_text",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "plain_text"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/plain_text"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/powershell.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/powershell",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "powershell"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/powershell"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/praat.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/praat",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "praat"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/praat"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/prolog.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/prolog",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "prolog"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/prolog"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/properties.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/properties",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "properties"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/properties"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/protobuf.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/protobuf",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = ""; 5 | exports.scope = "protobuf"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/protobuf"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/puppet.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/puppet",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "puppet"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/puppet"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/razor.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/razor",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "snippet if\n\ 5 | (${1} == ${2}) {\n\ 6 | ${3}\n\ 7 | }"; 8 | exports.scope = "razor"; 9 | 10 | }); (function() { 11 | window.require(["ace/snippets/razor"], function(m) { 12 | if (typeof module == "object" && typeof exports == "object" && module) { 13 | module.exports = m; 14 | } 15 | }); 16 | })(); 17 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/rdoc.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/rdoc",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "rdoc"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/rdoc"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/red.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/red",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = " "; 5 | exports.scope = "red"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/red"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/redshift.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/redshift",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "redshift"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/redshift"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/rhtml.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/rhtml",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "rhtml"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/rhtml"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/rst.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/rst",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "# rst\n\ 5 | \n\ 6 | snippet :\n\ 7 | :${1:field name}: ${2:field body}\n\ 8 | snippet *\n\ 9 | *${1:Emphasis}*\n\ 10 | snippet **\n\ 11 | **${1:Strong emphasis}**\n\ 12 | snippet _\n\ 13 | \\`${1:hyperlink-name}\\`_\n\ 14 | .. _\\`$1\\`: ${2:link-block}\n\ 15 | snippet =\n\ 16 | ${1:Title}\n\ 17 | =====${2:=}\n\ 18 | ${3}\n\ 19 | snippet -\n\ 20 | ${1:Title}\n\ 21 | -----${2:-}\n\ 22 | ${3}\n\ 23 | snippet cont:\n\ 24 | .. contents::\n\ 25 | \n\ 26 | "; 27 | exports.scope = "rst"; 28 | 29 | }); (function() { 30 | window.require(["ace/snippets/rst"], function(m) { 31 | if (typeof module == "object" && typeof exports == "object" && module) { 32 | module.exports = m; 33 | } 34 | }); 35 | })(); 36 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/rust.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/rust",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "rust"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/rust"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/sass.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/sass",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "sass"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/sass"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/scad.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/scad",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "scad"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/scad"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/scala.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/scala",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "scala"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/scala"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/scheme.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/scheme",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "scheme"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/scheme"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/scss.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/scss",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "scss"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/scss"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/sjs.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/sjs",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "sjs"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/sjs"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/slim.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/slim",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "slim"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/slim"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/smarty.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/smarty",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "smarty"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/smarty"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/snippets.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/snippets",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "# snippets for making snippets :)\n\ 5 | snippet snip\n\ 6 | snippet ${1:trigger}\n\ 7 | ${2}\n\ 8 | snippet msnip\n\ 9 | snippet ${1:trigger} ${2:description}\n\ 10 | ${3}\n\ 11 | snippet v\n\ 12 | {VISUAL}\n\ 13 | "; 14 | exports.scope = "snippets"; 15 | 16 | }); (function() { 17 | window.require(["ace/snippets/snippets"], function(m) { 18 | if (typeof module == "object" && typeof exports == "object" && module) { 19 | module.exports = m; 20 | } 21 | }); 22 | })(); 23 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/soy_template.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/soy_template",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "soy_template"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/soy_template"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/space.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/space",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "space"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/space"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/sparql.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/sparql",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/sparql"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/sql.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/sql",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "snippet tbl\n\ 5 | create table ${1:table} (\n\ 6 | ${2:columns}\n\ 7 | );\n\ 8 | snippet col\n\ 9 | ${1:name} ${2:type} ${3:default ''} ${4:not null}\n\ 10 | snippet ccol\n\ 11 | ${1:name} varchar2(${2:size}) ${3:default ''} ${4:not null}\n\ 12 | snippet ncol\n\ 13 | ${1:name} number ${3:default 0} ${4:not null}\n\ 14 | snippet dcol\n\ 15 | ${1:name} date ${3:default sysdate} ${4:not null}\n\ 16 | snippet ind\n\ 17 | create index ${3:$1_$2} on ${1:table}(${2:column});\n\ 18 | snippet uind\n\ 19 | create unique index ${1:name} on ${2:table}(${3:column});\n\ 20 | snippet tblcom\n\ 21 | comment on table ${1:table} is '${2:comment}';\n\ 22 | snippet colcom\n\ 23 | comment on column ${1:table}.${2:column} is '${3:comment}';\n\ 24 | snippet addcol\n\ 25 | alter table ${1:table} add (${2:column} ${3:type});\n\ 26 | snippet seq\n\ 27 | create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\n\ 28 | snippet s*\n\ 29 | select * from ${1:table}\n\ 30 | "; 31 | exports.scope = "sql"; 32 | 33 | }); (function() { 34 | window.require(["ace/snippets/sql"], function(m) { 35 | if (typeof module == "object" && typeof exports == "object" && module) { 36 | module.exports = m; 37 | } 38 | }); 39 | })(); 40 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/stylus.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/stylus",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "stylus"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/stylus"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/svg.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/svg",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "svg"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/svg"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/swift.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/swift",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "swift"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/swift"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/terraform.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/terraform",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "terraform"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/terraform"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/text.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/text",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "text"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/text"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/textile.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/textile",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "# Jekyll post header\n\ 5 | snippet header\n\ 6 | ---\n\ 7 | title: ${1:title}\n\ 8 | layout: post\n\ 9 | date: ${2:date} ${3:hour:minute:second} -05:00\n\ 10 | ---\n\ 11 | \n\ 12 | # Image\n\ 13 | snippet img\n\ 14 | !${1:url}(${2:title}):${3:link}!\n\ 15 | \n\ 16 | # Table\n\ 17 | snippet |\n\ 18 | |${1}|${2}\n\ 19 | \n\ 20 | # Link\n\ 21 | snippet link\n\ 22 | \"${1:link text}\":${2:url}\n\ 23 | \n\ 24 | # Acronym\n\ 25 | snippet (\n\ 26 | (${1:Expand acronym})${2}\n\ 27 | \n\ 28 | # Footnote\n\ 29 | snippet fn\n\ 30 | [${1:ref number}] ${3}\n\ 31 | \n\ 32 | fn$1. ${2:footnote}\n\ 33 | \n\ 34 | "; 35 | exports.scope = "textile"; 36 | 37 | }); (function() { 38 | window.require(["ace/snippets/textile"], function(m) { 39 | if (typeof module == "object" && typeof exports == "object" && module) { 40 | module.exports = m; 41 | } 42 | }); 43 | })(); 44 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/toml.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/toml",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "toml"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/toml"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/tsx.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/tsx",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "tsx"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/tsx"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/turtle.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/turtle",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = ""; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/turtle"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/twig.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/twig",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "twig"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/twig"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/typescript.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/typescript",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "typescript"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/typescript"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/vbscript.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/vbscript",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "vbscript"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/vbscript"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/velocity.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/velocity",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "# macro\n\ 5 | snippet #macro\n\ 6 | #macro ( ${1:macroName} ${2:\\$var1, [\\$var2, ...]} )\n\ 7 | ${3:## macro code}\n\ 8 | #end\n\ 9 | # foreach\n\ 10 | snippet #foreach\n\ 11 | #foreach ( ${1:\\$item} in ${2:\\$collection} )\n\ 12 | ${3:## foreach code}\n\ 13 | #end\n\ 14 | # if\n\ 15 | snippet #if\n\ 16 | #if ( ${1:true} )\n\ 17 | ${0}\n\ 18 | #end\n\ 19 | # if ... else\n\ 20 | snippet #ife\n\ 21 | #if ( ${1:true} )\n\ 22 | ${2}\n\ 23 | #else\n\ 24 | ${0}\n\ 25 | #end\n\ 26 | #import\n\ 27 | snippet #import\n\ 28 | #import ( \"${1:path/to/velocity/format}\" )\n\ 29 | # set\n\ 30 | snippet #set\n\ 31 | #set ( $${1:var} = ${0} )\n\ 32 | "; 33 | exports.scope = "velocity"; 34 | exports.includeScopes = ["html", "javascript", "css"]; 35 | 36 | }); (function() { 37 | window.require(["ace/snippets/velocity"], function(m) { 38 | if (typeof module == "object" && typeof exports == "object" && module) { 39 | module.exports = m; 40 | } 41 | }); 42 | })(); 43 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/verilog.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/verilog",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "verilog"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/verilog"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/vhdl.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/vhdl",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "vhdl"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/vhdl"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/visualforce.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/visualforce",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "visualforce"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/visualforce"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/wollok.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/wollok",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "##\n\ 5 | ## Basic Java packages and import\n\ 6 | snippet im\n\ 7 | import\n\ 8 | snippet w.l\n\ 9 | wollok.lang\n\ 10 | snippet w.i\n\ 11 | wollok.lib\n\ 12 | \n\ 13 | ## Class and object\n\ 14 | snippet cl\n\ 15 | class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\ 16 | snippet obj\n\ 17 | object ${1:`Filename(\"\", \"untitled\")`} ${2:inherits Parent}${3}\n\ 18 | snippet te\n\ 19 | test ${1:`Filename(\"\", \"untitled\")`}\n\ 20 | \n\ 21 | ##\n\ 22 | ## Enhancements\n\ 23 | snippet inh\n\ 24 | inherits\n\ 25 | \n\ 26 | ##\n\ 27 | ## Comments\n\ 28 | snippet /*\n\ 29 | /*\n\ 30 | * ${1}\n\ 31 | */\n\ 32 | \n\ 33 | ##\n\ 34 | ## Control Statements\n\ 35 | snippet el\n\ 36 | else\n\ 37 | snippet if\n\ 38 | if (${1}) ${2}\n\ 39 | \n\ 40 | ##\n\ 41 | ## Create a Method\n\ 42 | snippet m\n\ 43 | method ${1:method}(${2}) ${5}\n\ 44 | \n\ 45 | ## \n\ 46 | ## Tests\n\ 47 | snippet as\n\ 48 | assert.equals(${1:expected}, ${2:actual})\n\ 49 | \n\ 50 | ##\n\ 51 | ## Exceptions\n\ 52 | snippet ca\n\ 53 | catch ${1:e} : (${2:Exception} ) ${3}\n\ 54 | snippet thr\n\ 55 | throw\n\ 56 | snippet try\n\ 57 | try {\n\ 58 | ${3}\n\ 59 | } catch ${1:e} : ${2:Exception} {\n\ 60 | }\n\ 61 | \n\ 62 | ##\n\ 63 | ## Javadocs\n\ 64 | snippet /**\n\ 65 | /**\n\ 66 | * ${1}\n\ 67 | */\n\ 68 | \n\ 69 | ##\n\ 70 | ## Print Methods\n\ 71 | snippet print\n\ 72 | console.println(\"${1:Message}\")\n\ 73 | \n\ 74 | ##\n\ 75 | ## Setter and Getter Methods\n\ 76 | snippet set\n\ 77 | method set${1:}(${2:}) {\n\ 78 | $1 = $2\n\ 79 | }\n\ 80 | snippet get\n\ 81 | method get${1:}() {\n\ 82 | return ${1:};\n\ 83 | }\n\ 84 | \n\ 85 | ##\n\ 86 | ## Terminate Methods or Loops\n\ 87 | snippet re\n\ 88 | return"; 89 | exports.scope = "wollok"; 90 | 91 | }); (function() { 92 | window.require(["ace/snippets/wollok"], function(m) { 93 | if (typeof module == "object" && typeof exports == "object" && module) { 94 | module.exports = m; 95 | } 96 | }); 97 | })(); 98 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/xml.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/xml",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "xml"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/xml"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/xquery.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/xquery",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = "snippet for\n\ 5 | for $${1:item} in ${2:expr}\n\ 6 | snippet return\n\ 7 | return ${1:expr}\n\ 8 | snippet import\n\ 9 | import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\ 10 | snippet some\n\ 11 | some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ 12 | snippet every\n\ 13 | every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ 14 | snippet if\n\ 15 | if(${1:true}) then ${2:expr} else ${3:true}\n\ 16 | snippet switch\n\ 17 | switch(${1:\"foo\"})\n\ 18 | case ${2:\"foo\"}\n\ 19 | return ${3:true}\n\ 20 | default return ${4:false}\n\ 21 | snippet try\n\ 22 | try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\ 23 | snippet tumbling\n\ 24 | for tumbling window $${1:varname} in ${2:expr}\n\ 25 | start at $${3:start} when ${4:expr}\n\ 26 | end at $${5:end} when ${6:expr}\n\ 27 | return ${7:expr}\n\ 28 | snippet sliding\n\ 29 | for sliding window $${1:varname} in ${2:expr}\n\ 30 | start at $${3:start} when ${4:expr}\n\ 31 | end at $${5:end} when ${6:expr}\n\ 32 | return ${7:expr}\n\ 33 | snippet let\n\ 34 | let $${1:varname} := ${2:expr}\n\ 35 | snippet group\n\ 36 | group by $${1:varname} := ${2:expr}\n\ 37 | snippet order\n\ 38 | order by ${1:expr} ${2:descending}\n\ 39 | snippet stable\n\ 40 | stable order by ${1:expr}\n\ 41 | snippet count\n\ 42 | count $${1:varname}\n\ 43 | snippet ordered\n\ 44 | ordered { ${1:expr} }\n\ 45 | snippet unordered\n\ 46 | unordered { ${1:expr} }\n\ 47 | snippet treat \n\ 48 | treat as ${1:expr}\n\ 49 | snippet castable\n\ 50 | castable as ${1:atomicType}\n\ 51 | snippet cast\n\ 52 | cast as ${1:atomicType}\n\ 53 | snippet typeswitch\n\ 54 | typeswitch(${1:expr})\n\ 55 | case ${2:type} return ${3:expr}\n\ 56 | default return ${4:expr}\n\ 57 | snippet var\n\ 58 | declare variable $${1:varname} := ${2:expr};\n\ 59 | snippet fn\n\ 60 | declare function ${1:ns}:${2:name}(){\n\ 61 | ${3:expr}\n\ 62 | };\n\ 63 | snippet module\n\ 64 | module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\ 65 | "; 66 | exports.scope = "xquery"; 67 | 68 | }); (function() { 69 | window.require(["ace/snippets/xquery"], function(m) { 70 | if (typeof module == "object" && typeof exports == "object" && module) { 71 | module.exports = m; 72 | } 73 | }); 74 | })(); 75 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/snippets/yaml.js: -------------------------------------------------------------------------------- 1 | define("ace/snippets/yaml",["require","exports","module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText =undefined; 5 | exports.scope = "yaml"; 6 | 7 | }); (function() { 8 | window.require(["ace/snippets/yaml"], function(m) { 9 | if (typeof module == "object" && typeof exports == "object" && module) { 10 | module.exports = m; 11 | } 12 | }); 13 | })(); 14 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/edit-js/theme-gruvbox.js: -------------------------------------------------------------------------------- 1 | define("ace/theme/gruvbox",["require","exports","module","ace/lib/dom"], function(require, exports, module) { 2 | 3 | exports.isDark = true; 4 | exports.cssClass = "ace-gruvbox"; 5 | exports.cssText = ".ace-gruvbox .ace_gutter-active-line {\ 6 | background-color: #3C3836;\ 7 | }\ 8 | .ace-gruvbox {\ 9 | color: #EBDAB4;\ 10 | background-color: #1D2021;\ 11 | }\ 12 | .ace-gruvbox .ace_invisible {\ 13 | color: #504945;\ 14 | }\ 15 | .ace-gruvbox .ace_marker-layer .ace_selection {\ 16 | background: rgba(179, 101, 57, 0.75)\ 17 | }\ 18 | .ace-gruvbox.ace_multiselect .ace_selection.ace_start {\ 19 | box-shadow: 0 0 3px 0px #002240;\ 20 | }\ 21 | .ace-gruvbox .ace_keyword {\ 22 | color: #8ec07c;\ 23 | }\ 24 | .ace-gruvbox .ace_comment {\ 25 | font-style: italic;\ 26 | color: #928375;\ 27 | }\ 28 | .ace-gruvbox .ace-statement {\ 29 | color: red;\ 30 | }\ 31 | .ace-gruvbox .ace_variable {\ 32 | color: #84A598;\ 33 | }\ 34 | .ace-gruvbox .ace_variable.ace_language {\ 35 | color: #D2879B;\ 36 | }\ 37 | .ace-gruvbox .ace_constant {\ 38 | color: #C2859A;\ 39 | }\ 40 | .ace-gruvbox .ace_constant.ace_language {\ 41 | color: #C2859A;\ 42 | }\ 43 | .ace-gruvbox .ace_constant.ace_numeric {\ 44 | color: #C2859A;\ 45 | }\ 46 | .ace-gruvbox .ace_string {\ 47 | color: #B8BA37;\ 48 | }\ 49 | .ace-gruvbox .ace_support {\ 50 | color: #F9BC41;\ 51 | }\ 52 | .ace-gruvbox .ace_support.ace_function {\ 53 | color: #F84B3C;\ 54 | }\ 55 | .ace-gruvbox .ace_storage {\ 56 | color: #8FBF7F;\ 57 | }\ 58 | .ace-gruvbox .ace_keyword.ace_operator {\ 59 | color: #EBDAB4;\ 60 | }\ 61 | .ace-gruvbox .ace_punctuation.ace_operator {\ 62 | color: yellow;\ 63 | }\ 64 | .ace-gruvbox .ace_marker-layer .ace_active-line {\ 65 | background: #3C3836;\ 66 | }\ 67 | .ace-gruvbox .ace_marker-layer .ace_selected-word {\ 68 | border-radius: 4px;\ 69 | border: 8px solid #3f475d;\ 70 | }\ 71 | .ace-gruvbox .ace_print-margin {\ 72 | width: 5px;\ 73 | background: #3C3836;\ 74 | }\ 75 | .ace-gruvbox .ace_indent-guide {\ 76 | background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\") right repeat-y;\ 77 | }"; 78 | 79 | var dom = require("../lib/dom"); 80 | dom.importCssString(exports.cssText, exports.cssClass); 81 | 82 | }); (function() { 83 | window.require(["ace/theme/gruvbox"], function(m) { 84 | if (typeof module == "object" && typeof exports == "object" && module) { 85 | module.exports = m; 86 | } 87 | }); 88 | })(); 89 | -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/abstract_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/abstract_co.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/annotation_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/annotation_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/class_default_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/class_default_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/class_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/class_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/constr_ovr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/constr_ovr.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/e.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/enum_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/enum_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/final_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/final_co.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/i.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icon.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/abstract_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/abstract_co.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/annotation_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/annotation_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/constr_ovr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/constr_ovr.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/enum_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/enum_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/field_default_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/field_default_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/field_private_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/field_private_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/field_protected_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/field_protected_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/field_public_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/field_public_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/final_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/final_co.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/int_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/int_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/java_ovr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/java_ovr.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/static_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/static_co.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/sync.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/sync.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/synch_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/synch_co.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/transient_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/transient_co.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/icons-16/volatile_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/icons-16/volatile_co.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/innerclass_private_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/innerclass_private_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/innerclass_protected_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/innerclass_protected_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/int_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/int_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/java_ovr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/java_ovr.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/line_conn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/line_conn.gif -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/logo.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/methdef_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/methdef_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/methpri_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/methpri_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/methpro_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/methpro_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/methpub_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/methpub_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/native_co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/native_co.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/objcclass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/objcclass.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/objcmethod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/objcmethod.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/package_obj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/package_obj.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/r.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/ss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/ss.png -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/zTreeStandard.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/zTreeStandard.gif -------------------------------------------------------------------------------- /HTTPDecrypt/static/images/zTreeStandard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/HTTPDecrypt/static/images/zTreeStandard.png -------------------------------------------------------------------------------- /HTTPDecrypt/templates/decoder.html: -------------------------------------------------------------------------------- 1 |

Decoder

   2 | 6 |
7 | 8 | 9 |
10 | 11 |
12 |
13 |
14 |
15 |
16 | 17 |
18 |
19 |
20 | 21 |
22 |
-------------------------------------------------------------------------------- /HTTPDecrypt/templates/home.html: -------------------------------------------------------------------------------- 1 |

Identifier:

2 |
3 | 4 | 5 |
6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
IdentifierApplicationNamePid
17 |
-------------------------------------------------------------------------------- /HTTPDecrypt/templates/hook.html: -------------------------------------------------------------------------------- 1 |

Hooks

   2 | 3 |
4 | 5 | 6 |
7 | 8 |
9 |
10 |
11 | 12 | 13 |
14 |
15 |
16 | 17 | 18 |
19 |
20 |
21 |
22 | 23 |

Output Console

24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
MethodNameArgs DumpReturn Value
37 | 38 |
39 | -------------------------------------------------------------------------------- /HTTPDecrypt/templates/stack.html: -------------------------------------------------------------------------------- 1 |

Output Console

2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
MethodNameStack
16 |
-------------------------------------------------------------------------------- /HTTPDecrypt/templates/toBurp.html: -------------------------------------------------------------------------------- 1 |

toBurp

   2 | 3 |
4 | 5 | 6 |
7 | 8 |
9 |
10 |
11 | 12 |
13 | 14 |
15 | 16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | 24 |
25 |
26 |

Output Console

27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
InfoCall
41 |
42 |
43 |
-------------------------------------------------------------------------------- /HTTPDecrypt/templates/uidump.html: -------------------------------------------------------------------------------- 1 |

UIDump

   2 |
3 | 4 | 5 | 6 | 7 |
8 |
9 | 19 |
20 | 21 | 22 | 56 | -------------------------------------------------------------------------------- /HTTPDecrypt/tracer.py: -------------------------------------------------------------------------------- 1 | # - * - coding:utf-8 - * - 2 | from http.server import HTTPServer, BaseHTTPRequestHandler 3 | 4 | ECHO_PORT = 27000 5 | 6 | class RequestHandler(BaseHTTPRequestHandler): 7 | 8 | def do_FRIDA(self): 9 | request_path = self.path 10 | 11 | request_headers = self.headers 12 | content_length = request_headers.get('content-length') 13 | length = int(content_length) if content_length else 0 14 | 15 | self.send_response(200) 16 | self.end_headers() 17 | 18 | self.wfile.write(self.rfile.read(length)) 19 | 20 | 21 | def main(): 22 | print('Listening on localhost:%d' % ECHO_PORT) 23 | server = HTTPServer(('', ECHO_PORT), RequestHandler) 24 | server.serve_forever() 25 | 26 | 27 | if __name__ == "__main__": 28 | print("[+] Starting echo server on port %d" % ECHO_PORT) 29 | main() -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rhine-DFramwork 2 | Rhine-DFramwork 3 | 4 | # Leak from Rhine-Department 5 | 6 | This Repository and contributor assumes no responsibility, and shall not be liable for, any such damages to or viruses that may infect computer equipment, software, data. 7 | 8 | This Repository and contributor also assumes no responsibility, and shall not be liable for, any such damages to that may cause commercial losses to hypergraphy.com. 9 | 10 | # Thanks 11 | 12 | [Arknights-Dolos](https://github.com/LXG-Shadow/Arknights-Dolos) 13 | 14 | [PyAutoGame](https://github.com/InfiniteTsukuyomi/PyAutoGame) 15 | 16 | # News 17 | 18 | The developer is planning on quitting the game! 19 | 20 | **F U Hypergryph** -------------------------------------------------------------------------------- /client/api/__init__.py: -------------------------------------------------------------------------------- 1 | from client.vhttp import ArknightsHttpClient 2 | from client.vlogger import logger 3 | http_client = ArknightsHttpClient() 4 | 5 | logger = logger.getChild("api") 6 | -------------------------------------------------------------------------------- /client/api/_api_process/__init__.py: -------------------------------------------------------------------------------- 1 | import functools 2 | 3 | from client import utils 4 | 5 | def response_process_flow(logger, *data_processor): 6 | def a(api_func): 7 | @utils.log_wrapper(api_func) 8 | @functools.wraps(api_func) 9 | def b(*args, **kwargs): 10 | ret_data = api_func(*args, **kwargs) 11 | for d_p in data_processor: 12 | if d_p(api_func)(args[0], ret_data, logger): 13 | continue 14 | else: 15 | return ret_data 16 | return ret_data 17 | return b 18 | return a 19 | 20 | 21 | def data_processor_wrapper(d_p): 22 | @functools.wraps(d_p) 23 | def take_p_arg(*args, **kwargs): 24 | def take_api_func(api_func): 25 | def take_ess_arg(account, ret_data, logger): 26 | return utils.log_wrapper(api_func)(d_p)(account, ret_data, logger, *args, *kwargs) 27 | return take_ess_arg 28 | return take_api_func 29 | return take_p_arg 30 | -------------------------------------------------------------------------------- /client/api/_api_process/response_processor.py: -------------------------------------------------------------------------------- 1 | from client.api._api_process import data_processor_wrapper 2 | 3 | 4 | @data_processor_wrapper 5 | def check_key(account, ret_data, logger, *args, **kwargs): 6 | keys, kvs = args, kwargs 7 | if ret_data is None: 8 | logger.error("[{}] fail in http connection".format(account.uid, ret_data)) 9 | return False 10 | else: 11 | for key in keys: 12 | if key not in ret_data.keys(): 13 | logger.warning("[{}] response didn't contain key={}".format(account.uid, key)) 14 | return False 15 | for key, val in kvs.items(): 16 | if key not in ret_data.keys(): 17 | logger.warning("[{}] response didn't contain key={}".format(account.uid, key)) 18 | return False 19 | if val != ret_data[key]: 20 | logger.warning("[{}] response {}={} didn't match {}={}".format(account.uid, 21 | key, ret_data[key], 22 | key, val)) 23 | return False 24 | return True 25 | 26 | 27 | @data_processor_wrapper 28 | def update_player_delta(account, ret_data, logger, *args, **kwargs): 29 | if ret_data is None: 30 | logger.error("[{}] fail in http connection".format(account.uid)) 31 | return False 32 | if ret_data.get("playerDataDelta") is None: 33 | logger.warning("[{}] update player delta failed, reason:{}".format(account.uid, 34 | ret_data)) 35 | return False 36 | else: 37 | account.update_data(ret_data["playerDataDelta"]["modified"]) 38 | logger.info("[{}] update player delta data success".format(account.uid)) 39 | return True 40 | 41 | 42 | @data_processor_wrapper 43 | def just_log(account, ret_data, logger, *args, **kwargs): 44 | for log_text in args: 45 | logger.info(log_text.format(account.uid)) 46 | return True 47 | -------------------------------------------------------------------------------- /client/api/config_server.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | from client.api import http_client,logger 4 | from client import config 5 | NETWORK_CONFIG_URL = "https://ak-conf.hypergryph.com/config/prod/{}/network_config" 6 | REMOTE_CONFIG_URL = "https://ak-conf.hypergryph.com/config/prod/{}/remote_config" 7 | VERSION_URL = "https://ak-conf.hypergryph.com/config/prod/official/Android/version" 8 | 9 | logger = logger.getChild("config_server") 10 | 11 | 12 | def get_version(): 13 | logger.info("getting production version") 14 | data = http_client.get(None,VERSION_URL) 15 | if data is None: 16 | return 17 | config.ProductionConfig.clientVersion = data["clientVersion"] 18 | config.ProductionConfig.assetsVersion = data["resVersion"] 19 | logger.info("finish") 20 | return data["resVersion"],data["clientVersion"] 21 | 22 | def get_network(config_server_name): 23 | logger.info("getting network version") 24 | data = http_client.get(None, NETWORK_CONFIG_URL.format(config_server_name)) 25 | if data is None: 26 | return 27 | json_data = json.loads(data["content"]) 28 | config.NetworkConfig.version = json_data["configVer"] 29 | config.NetworkConfig.network = json_data["configs"][json_data["funcVer"]]["network"] 30 | config.NetworkConfig.update_server_url() 31 | logger.info("finish") 32 | return json_data 33 | -------------------------------------------------------------------------------- /client/api/game_server/checkin.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | from client import config 4 | from client.data_model.akaccount import PlayerAccount 5 | from client.api._api_process import response_process_flow 6 | from client.api._api_process.response_processor import update_player_delta, just_log 7 | from client.api.game_server import logger, http_client 8 | 9 | CHECKIN_URL = config.NetworkConfig.get_game_server_url("/user/checkIn") 10 | CHECKIN_DATA = {} 11 | 12 | @response_process_flow(logger, 13 | update_player_delta(), 14 | just_log("[{}] check in success...")) 15 | def checkin(account:PlayerAccount): 16 | logger.info("[{}] checkin".format(account.uid)) 17 | ret_data = http_client.post_with_seqnum(account, CHECKIN_URL, 18 | data=json.dumps(CHECKIN_DATA)) 19 | return ret_data -------------------------------------------------------------------------------- /client/config.py: -------------------------------------------------------------------------------- 1 | import json 2 | import os 3 | from enum import Enum 4 | import urllib.parse 5 | 6 | Data_Path = r"D:\Repository\Rhine-Department-0xf\data" 7 | 8 | 9 | def get_resource_path(resource): 10 | return os.path.join(Data_Path, resource) 11 | 12 | 13 | def load_json_resource(resource): 14 | with open(get_resource_path(resource), "r", encoding="utf-8") as f: 15 | return json.loads(f.read()) 16 | 17 | 18 | def load_battle_data(stage_id): 19 | path = get_resource_path("battle_data/{}.json".format(stage_id)) 20 | if os.path.exists(path): 21 | with open(path, "r", encoding="utf-8") as f: 22 | return json.loads(f.read()) 23 | return None 24 | 25 | 26 | class ProductionConfig(): 27 | assetsVersion = "21-07-09-11-29-30-f11d8b" 28 | clientVersion = "1.5.40" 29 | 30 | 31 | class NetworkConfig(): 32 | version = "5" 33 | network = {} 34 | game_server = "https://ak-gs-gf.hypergryph.com" 35 | auth_server = "https://as.hypergryph.com" 36 | 37 | @classmethod 38 | def update_server_url(cls): 39 | try: 40 | cls.game_server = cls.network["gs"] 41 | cls.auth_server = cls.network["as"] 42 | except: 43 | cls.game_server = "https://ak-gs-gf.hypergryph.com" 44 | cls.auth_server = "https://as.hypergryph.com" 45 | 46 | @classmethod 47 | def get_game_server_url(cls, path): 48 | return urllib.parse.urljoin(cls.game_server, path) 49 | 50 | @classmethod 51 | def get_auth_server_url(cls, path): 52 | return urllib.parse.urljoin(cls.game_server, path) 53 | 54 | 55 | class LoginPara(): 56 | def __init__(self, app_id, channel_id, world_id, sub_channel, network_version): 57 | self.APP_ID = app_id 58 | self.CHANNEL_ID = channel_id 59 | self.WORLD_ID = world_id 60 | self.SUB_CHANNEL = sub_channel 61 | self.NETWORK_VERSION = network_version 62 | 63 | 64 | LoginParaBilibili = LoginPara("1", "2", "2", "2", "5") 65 | LoginParaAndroid = LoginPara("1", "1", "1", "1", "5") 66 | 67 | 68 | class ConfigServerName(Enum): 69 | OFFICIAL = "official" 70 | BILIBILI = "b" 71 | 72 | 73 | class PlatformName(Enum): 74 | NONE = "Android" 75 | IOS = "IOS" 76 | ANDROID = "Android" 77 | BILIBILI = "Bilibili" 78 | 79 | 80 | class PlatformKey(Enum): 81 | NONE = -1 82 | IOS = 0 83 | ANDROID = 1 84 | 85 | 86 | class EnvironmentConfig(): 87 | platform_key = PlatformKey.ANDROID 88 | platform_name = PlatformName.ANDROID 89 | -------------------------------------------------------------------------------- /client/data_model/__init__.py: -------------------------------------------------------------------------------- 1 | from enum import Enum 2 | 3 | 4 | class ArkEnum(Enum): 5 | 6 | @classmethod 7 | def get_all(cls): 8 | return [c for c in cls] 9 | 10 | @classmethod 11 | def get_names(cls): 12 | return [c.name for c in cls] 13 | 14 | @classmethod 15 | def get_values(cls): 16 | return [c.value for c in cls] 17 | 18 | @classmethod 19 | def get_value_or_default(cls, name): 20 | if isinstance(name, str): 21 | try: 22 | return cls(name).value 23 | except: 24 | for en in cls: 25 | return en.value 26 | else: 27 | return name.value 28 | 29 | 30 | from client.data_model import akaccount as AccountModel 31 | from client.data_model import mission as MissionModel 32 | from client.data_model import battle as BattleModel 33 | from client.data_model import building as BuildingModel -------------------------------------------------------------------------------- /client/data_model/battle.py: -------------------------------------------------------------------------------- 1 | import json 2 | import random 3 | import time 4 | 5 | from client import encryption, config 6 | from client.data_model import ArkEnum 7 | 8 | 9 | class BattleType(ArkEnum): 10 | QUEST = "quest" 11 | CAMPAIGNS = "campaignsV2" 12 | 13 | class Battle(): 14 | def __init__(self, account, b_type, stage_id, start_time=None): 15 | self.account = account 16 | self.type = b_type 17 | self.stage_id = stage_id 18 | self.battle_id = "" 19 | self.start_time = int(time.time()) if start_time is None else start_time 20 | self.end_time = 0 21 | self.complete_time = 0 22 | 23 | def __str__(self): 24 | return "".format(self.type,self.battle_id,self.start_time) 25 | 26 | def __repr__(self): 27 | return self.__str__() 28 | 29 | @property 30 | def battle_type(self): 31 | return BattleType(self.type) 32 | 33 | @property 34 | def is_cheat(self): 35 | return encryption.encrypt_battle_id(self.battle_id) 36 | 37 | @property 38 | def random_complete_time(self): 39 | return int((random.random() * 0.233 + 0.666) * (self.end_time - self.start_time)) 40 | 41 | def has_battle_data(self): 42 | return config.load_battle_data(self.stage_id) is not None 43 | 44 | def get_battle_data(self, end_time=None,complete_time=None): 45 | self.end_time = int(time.time()) if end_time is None else end_time 46 | self.complete_time = self.random_complete_time if complete_time is None else complete_time 47 | data = config.load_battle_data(self.stage_id) 48 | if data is None: 49 | return "" 50 | data["battleId"] = self.battle_id 51 | data['battleData']['isCheat'] = self.is_cheat 52 | 53 | data['battleData']['stats']['beginTs'] = self.start_time 54 | data['battleData']['stats']['endTs'] = self.end_time 55 | data['battleData']['completeTime'] = self.complete_time 56 | 57 | hash_key = data['battleData']['stats'].get("hash") 58 | if hash_key is None: 59 | data['battleData']['stats']["access"] = encryption.get_battle_data_access(self.account.login_time) 60 | else: 61 | data['battleData']['stats']["access"] = encryption.get_battle_data_access(self.account.login_time, 62 | hash_key=hash_key) 63 | return encryption.encrypt_battle_data(json.dumps(data,separators=(',', ':')), 64 | self.account.login_time) -------------------------------------------------------------------------------- /client/data_model/building.py: -------------------------------------------------------------------------------- 1 | from client.data_model import ArkEnum 2 | from client.data_model.akaccount import PlayerAccount 3 | 4 | 5 | class RoomTypeString(ArkEnum): 6 | CONTROL = "CONTROL" 7 | POWER = "POWER" 8 | MANUFACTURE = "MANUFACTURE" 9 | SHOP = "SHOP" 10 | DORMITORY = "DORMITORY" 11 | MEETING = "MEETING" 12 | HIRE = "HIRE" 13 | ELEVATOR = "ELEVATOR" 14 | CORRIDOR = "CORRIDOR" 15 | TRADING = "TRADING" 16 | WORKSHOP = "WORKSHOP" 17 | TRAINING = "TRAINING" 18 | 19 | class Room(): 20 | def __init__(self,slot_id,r_type): 21 | self.slot_id = slot_id 22 | self.type = r_type 23 | 24 | @property 25 | def room_type(self): 26 | return RoomTypeString(self.type) 27 | 28 | 29 | def get_all_room(account:PlayerAccount): 30 | rooms = [] 31 | for slot_id,slot_data in account.data["building"]["roomSlots"].items(): 32 | rooms.append(Room(slot_id,slot_data["roomId"])) 33 | return rooms 34 | 35 | def get_room_by_type(account:PlayerAccount,room_type): 36 | room_type = RoomTypeString.get_value_or_default(room_type) 37 | if account.data["building"]["rooms"].get(room_type) is None: 38 | return [] 39 | return [Room(slot_id,room_type) for slot_id in account.data["building"]["rooms"].get(room_type).keys()] -------------------------------------------------------------------------------- /client/data_model/dungeon.py: -------------------------------------------------------------------------------- 1 | import jsonclass 2 | 3 | 4 | class Stage(): 5 | def __init__(self): 6 | self.stageId = None 7 | self.completeTimes = None 8 | self.startTimes = None 9 | self.practiceTimes = None 10 | self.state = None 11 | self.hasBattleReplay = None 12 | self.noCostCnt = None -------------------------------------------------------------------------------- /client/data_model/troop.py: -------------------------------------------------------------------------------- 1 | class CharacterSkill(): 2 | def __init__(self): 3 | self.skillId = None 4 | self.unlock = None 5 | self.state = None 6 | self.specializeLevel = None 7 | self.completeUpgradeTime = None 8 | 9 | class Character(): 10 | def __init__(self): 11 | self.instId = None 12 | self.charId = None 13 | self.favorPoint = None 14 | self.potentialRank = None 15 | self.mainSkillLvl = None 16 | self.skin = None 17 | self.level = None 18 | self.exp = None 19 | self.evolvePhase = None 20 | self.defaultSkillIndex = None 21 | self.gainTime = None 22 | self.skills = [CharacterSkill] -------------------------------------------------------------------------------- /client/db/__init__.py: -------------------------------------------------------------------------------- 1 | from client.vlogger import logger 2 | 3 | logger = logger.getChild("db") 4 | 5 | class DataDB(): 6 | def __init__(self): 7 | self.db = {} 8 | 9 | 10 | 11 | 12 | from client.db import character_table as character_db 13 | from client.db import item_table as item_db 14 | from client.db import stage_table as stage_db 15 | from client.db import gacha_table as gacha_db -------------------------------------------------------------------------------- /client/db/character_table.py: -------------------------------------------------------------------------------- 1 | import traceback 2 | 3 | import jsonclass 4 | from client import config 5 | from client.db import logger 6 | class CharacterDBData(): 7 | def __init__(self): 8 | self.name = None 9 | self.description = None 10 | self.canUseGeneralPotentialItem = None 11 | self.potentialItemId = None 12 | self.nationId = None 13 | self.groupId = None 14 | self.teamId = None 15 | self.displayNumber = None 16 | self.tokenKey = None 17 | self.appellation = None 18 | self.position = None 19 | self.tagList = None 20 | self.itemUsage = None 21 | self.itemDesc = None 22 | self.itemObtainApproach = None 23 | self.isNotObtainable = None 24 | self.isSpChar = None 25 | self.maxPotentialLevel = None 26 | self.rarity = None 27 | self.profession = None 28 | self.trait = None 29 | self.phases = None 30 | self.skills = None 31 | self.talents = None 32 | self.potentialRanks = None 33 | self.favorKeyFrames = None 34 | self.allSkillLvlup = None 35 | 36 | CharacterDB = {} 37 | def __load_data(): 38 | global CharacterDB 39 | try: 40 | CharacterDB = {} 41 | for key, val in config.load_json_resource("character_table.json").items(): 42 | CharacterDB[key] = jsonclass.json_unmarshall(CharacterDBData, val) 43 | except: 44 | traceback.print_exc() 45 | logger.warn("Fail to load character_table.json") 46 | 47 | __load_data() 48 | def get_character_data(charId) -> CharacterDBData: 49 | return CharacterDB.get(charId) 50 | 51 | def get_character_data_by_name(name)-> CharacterDBData: 52 | for val in CharacterDB.values(): 53 | if val.name == name: 54 | return val 55 | return None 56 | 57 | def get_character_data_by_appellation(appellation)-> CharacterDBData: 58 | for val in CharacterDB.values(): 59 | if val.appellation == appellation: 60 | return val 61 | return appellation -------------------------------------------------------------------------------- /client/db/gacha_table.py: -------------------------------------------------------------------------------- 1 | import traceback 2 | 3 | import jsonclass 4 | from client import config 5 | from client.db import logger 6 | 7 | class GachaDBDataPoolClient(): 8 | def __init__(self): 9 | self.gachaPoolId = None 10 | self.gachaIndex = None 11 | self.openTime = None 12 | self.endTime = None 13 | self.gachaPoolName = None 14 | self.gachaPoolSummary = None 15 | self.gachaPoolDetail = None 16 | self.guarantee5Avail = None 17 | self.guarantee5Count = None 18 | self.CDPrimColor = None 19 | self.CDSecColor = None 20 | self.LMTGSID = None 21 | self.gachaRuleType = None 22 | 23 | GachaDB = {} 24 | def __load_data(): 25 | global GachaDB 26 | try: 27 | GachaDB = {} 28 | for val in config.load_json_resource("gacha_table.json")["gachaPoolClient"]: 29 | GachaDB[val["gachaPoolId"]] = jsonclass.json_unmarshall(GachaDBDataPoolClient, val) 30 | except: 31 | traceback.print_exc() 32 | logger.warn("Fail to load gacha_table.json") 33 | 34 | __load_data() 35 | 36 | def get_gacha_pool_data(PoolId) -> GachaDBDataPoolClient: 37 | return GachaDB.get(PoolId) -------------------------------------------------------------------------------- /client/db/item_table.py: -------------------------------------------------------------------------------- 1 | import traceback 2 | 3 | import jsonclass 4 | from client import config 5 | from client.db import logger 6 | 7 | class ItemDBData(): 8 | def __init__(self): 9 | self.itemId = None 10 | self.name = None 11 | self.description = None 12 | self.rarity = None 13 | self.iconId = None 14 | self.overrideBkg = None 15 | self.stackIconId = None 16 | self.sortId = None 17 | self.usage = None 18 | self.obtainApproach = None 19 | self.classifyType = None 20 | self.itemType = None 21 | self.stageDropList = None 22 | self.buildingProductList = None 23 | 24 | 25 | ItemDB = {} 26 | def __load_data(): 27 | global ItemDB 28 | try: 29 | ItemDB = {} 30 | for key, val in config.load_json_resource("item_table.json")["items"].items(): 31 | ItemDB[key] = jsonclass.json_unmarshall(ItemDBData, val) 32 | except: 33 | traceback.print_exc() 34 | logger.warn("Fail to load item_table.json") 35 | 36 | __load_data() 37 | def get_item_data(itemId) -> ItemDBData: 38 | return ItemDB.get(itemId) 39 | 40 | def get_item_data_by_name(name)-> ItemDBData: 41 | for val in ItemDB.values(): 42 | if val.name == name: 43 | return val 44 | return None -------------------------------------------------------------------------------- /client/db/stage_table.py: -------------------------------------------------------------------------------- 1 | import traceback 2 | 3 | import jsonclass 4 | from client import config 5 | from client.db import logger 6 | 7 | class StageDBData(): 8 | def __init__(self): 9 | self.stageType = None 10 | self.difficulty = None 11 | self.performanceStageFlag = None 12 | self.unlockCondition = None 13 | self.stageId = None 14 | self.levelId = None 15 | self.zoneId = None 16 | self.code = None 17 | self.name = None 18 | self.description = None 19 | self.hardStagedId = None 20 | self.dangerLevel = None 21 | self.dangerPoint = None 22 | self.loadingPicId = None 23 | self.canPractice = None 24 | self.canBattleReplay = None 25 | self.apCost = None 26 | self.apFailReturn = None 27 | self.etItemId = None 28 | self.etCost = None 29 | self.etFailReturn = None 30 | self.etButtonStyle = None 31 | self.apProtectTimes = None 32 | self.diamondOnceDrop = None 33 | self.practiceTicketCost = None 34 | self.dailyStageDifficulty = None 35 | self.expGain = None 36 | self.goldGain = None 37 | self.loseExpGain = None 38 | self.loseGoldGain = None 39 | self.passFavor = None 40 | self.completeFavor = None 41 | self.slProgress = None 42 | self.displayMainItem = None 43 | self.hilightMark = None 44 | self.bossMark = None 45 | self.isPredefined = None 46 | self.isHardPredefined = None 47 | self.isStoryOnly = None 48 | self.appearanceStyle = None 49 | self.stageDropInfo = None 50 | self.startButtonOverrideId = None 51 | self.isStagePatch = None 52 | self.mainStageId = None 53 | 54 | 55 | StageDB = {} 56 | def __load_data(): 57 | global StageDB 58 | try: 59 | StageDB = {} 60 | for key, val in config.load_json_resource("stage_table.json")["stages"].items(): 61 | StageDB[key] = jsonclass.json_unmarshall(StageDBData, val) 62 | except: 63 | traceback.print_exc() 64 | logger.warn("Fail to load stage_table.json") 65 | 66 | __load_data() 67 | def get_stage_data(stageId) -> StageDBData: 68 | return StageDB.get(stageId) 69 | 70 | def get_stage_data_by_code(code)-> StageDBData: 71 | for val in StageDB.values(): 72 | if val.code == code: 73 | return val 74 | return None 75 | 76 | def get_stage_data_by_name(name)-> StageDBData: 77 | for val in StageDB.values(): 78 | if val.name == name: 79 | return val 80 | return None -------------------------------------------------------------------------------- /client/utils.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | import functools 3 | import logging 4 | import random 5 | import string 6 | from client import encryption 7 | 8 | 9 | # 生成随机device_id 10 | def get_random_device_id(): 11 | return encryption.get_md5(''.join(random.choices(string.ascii_letters + string.digits, k = 12))) 12 | 13 | # 生成随机device_id2 14 | def get_random_device_id2(): 15 | return '91' + ''.join(random.choices(string.digits, k = 13)) 16 | 17 | def deep_update(origin:dict,modified:dict): 18 | for key in modified.keys(): 19 | if key in origin.keys(): 20 | if isinstance(modified[key], dict): 21 | deep_update(origin[key], modified[key]) 22 | else: 23 | origin[key] = modified[key] 24 | else: 25 | origin[key] = modified[key] 26 | return origin 27 | 28 | def log_wrapper(func_overrider): 29 | old_factory = logging.getLogRecordFactory() 30 | 31 | def new_factory(*args, **kwargs): 32 | record = old_factory(*args, **kwargs) 33 | record.funcName = func_overrider.__name__ 34 | return record 35 | 36 | def decorator(func): 37 | def wrapper(*args, **kwargs): 38 | logging.setLogRecordFactory(new_factory) 39 | result = func(*args, **kwargs) 40 | logging.setLogRecordFactory(old_factory) 41 | return result 42 | return wrapper 43 | return decorator -------------------------------------------------------------------------------- /client/vlogger.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from colorlog import ColoredFormatter 4 | 5 | logger = logging.getLogger("ArkClient") 6 | logger.setLevel(logging.DEBUG) 7 | ch = logging.StreamHandler() 8 | ch.setLevel(logging.INFO) 9 | formatter_console = ColoredFormatter( 10 | "%(log_color)s%(levelname)s: %(name)s.%(funcName)s -> %(message)s", 11 | datefmt=None, 12 | reset=True, 13 | log_colors={ 14 | 'DEBUG': 'cyan', 15 | 'INFO': 'green', 16 | 'WARNING': 'bold_yellow', 17 | 'ERROR': 'bold_red', 18 | 'CRITICAL': 'bold_red,bg_white', 19 | }, 20 | secondary_log_colors={}, 21 | style='%' 22 | 23 | ) 24 | ch.setFormatter(formatter_console) 25 | logger.addHandler(ch) -------------------------------------------------------------------------------- /data/TextAsset/skill_table.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/data/TextAsset/skill_table.json -------------------------------------------------------------------------------- /data/TextAsset/skill_table.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/data/TextAsset/skill_table.txt -------------------------------------------------------------------------------- /data/TextAsset/story_table.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/data/TextAsset/story_table.txt -------------------------------------------------------------------------------- /dataProcess.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | character_table = "./data/character_table.json" 4 | skin_table = "./data/skin_table.json" 5 | maxStatus = {0:{"level":30,"potentialRank":5,"mainSkillLvl":1,"favorPoint":240000}, 6 | 1:{}, 7 | 2:{"level":55,"mainSkillLvl":7,"evolvePhase":1}, 8 | 3:{"level":70,"evolvePhase":2}, 9 | 4:{"level":80}, 10 | 5:{"level":90}} 11 | 12 | def processCharacter(ct,st): 13 | newdata = {} 14 | skinlist = [] 15 | with open(ct,"r",encoding="utf8") as f: 16 | data = json.loads(f.read().strip()) 17 | for key,value in data.items(): 18 | print(value) 19 | newdata[key] = {"rarity":value["rarity"],"obtainable":not value["isNotObtainable"],"skills":[skill["skillId"] for skill in value["skills"]],"skins":[]} 20 | with open(st,"r",encoding="utf8") as f: 21 | data = json.loads(f.read().strip()) 22 | for key,value in data["charSkins"].items(): 23 | newdata[value["charId"]]["skins"].append(value["skinId"]) 24 | if ("@" in value["skinId"]): 25 | skinlist.append(value["skinId"]) 26 | 27 | with open("./data/arkhack_data.json","w",encoding="utf8") as f: 28 | f.write(json.dumps({"character":newdata,"shopskins":skinlist,"maxstatus":maxStatus},indent=2)) 29 | 30 | processCharacter(character_table,skin_table) -------------------------------------------------------------------------------- /gooo.py: -------------------------------------------------------------------------------- 1 | import functools 2 | 3 | from client.config import ConfigServerName 4 | from client.data_model import MissionModel 5 | from client.data_model.akaccount import PlayerAccount 6 | from client.api import auth_server, game_server,config_server,data_server 7 | import time 8 | from client.data_model.mission import get_mission_by_type, MissionType 9 | 10 | data_server.update_mission_table() 11 | data_server.update_character_table() 12 | data_server.update_skin_table() 13 | 14 | data_server.update_item_table() 15 | data_server.update_gacha_table() 16 | print(config_server.get_version()) 17 | print(config_server.get_network(ConfigServerName.OFFICIAL.value)) 18 | 19 | acc = PlayerAccount.init_random_device() 20 | 21 | acc.username = "miao" 22 | acc.password = "miao" 23 | # # acc = load_from_file("tempuser.json") 24 | # # auth_server.auth(acc) 25 | auth_server.login(acc) 26 | time.sleep(1) 27 | auth_server.ping(acc) 28 | time.sleep(1) 29 | auth_server.get_token(acc) 30 | time.sleep(1) 31 | game_server.login(acc) 32 | time.sleep(1) 33 | game_server.sync_data(acc) 34 | time.sleep(1) 35 | game_server.get_unconfirmed_order(acc) 36 | time.sleep(1) 37 | game_server.sync_status(acc) 38 | time.sleep(1) 39 | game_server.mission.auto_confirm_missions_by_type(acc,MissionType.DAILY.value) 40 | # # save_to_file(acc,"tempuser.json") 41 | # # acc = load_from_file("tempuser.json") 42 | # game_server.checkin(acc) 43 | # game_server.mail.receive_all_mail_with_item(acc) 44 | # print(game_server.social.get_friend_info(acc,"634747842")) 45 | # print(game_server.social.get_current_friend(acc)) 46 | # print(game_server.social.search_player_info_by_uid(acc,"634747842")) 47 | # print(game_server.social.search_account(acc,nickname="海猫")) 48 | # print(game_server.battle.start_battle_replay(acc,"quest","main_00-01")) 49 | # print(acc.current_battle) 50 | # time.sleep(20) 51 | # print(game_server.battle.finish_battle(acc,"main_00-01")) 52 | 53 | # print(game_server.building.sync_building(acc)) 54 | # time.sleep(2) 55 | # print(game_server.building.get_all_intimacy(acc)) 56 | # time.sleep(2) 57 | # print(game_server.building.settle_manufacture(acc)) 58 | # time.sleep(2) 59 | # print(game_server.building.delivery_batch_order(acc)) 60 | # time.sleep(2) 61 | # 62 | # game_server.mission.confirm_mission_by_type(acc,"DAILY") 63 | # game_server.mission.exchange_mission_reward_by_type(acc,"DAILY") -------------------------------------------------------------------------------- /gooob.py: -------------------------------------------------------------------------------- 1 | 2 | import functools 3 | 4 | from client.config import ConfigServerName, LoginParaBilibili 5 | from client.data_model import MissionModel 6 | from client.data_model.akaccount import PlayerAccount 7 | from client.api import auth_server, game_server,config_server,data_server 8 | import time 9 | from client.data_model.mission import get_mission_by_type, MissionType 10 | 11 | print(config_server.get_version()) 12 | print(config_server.get_network(ConfigServerName.BILIBILI.value)) 13 | 14 | acc = PlayerAccount.init_random_device() 15 | acc.device_id = "a96df156d79640461a0d49511f490129" 16 | acc.device_id2 = "910000000146166" 17 | acc.device_id3 = "" 18 | acc.access_token = "f500b56eff8233cb35c984a988a1308b_sh" 19 | auth_server.get_token(acc,LoginParaBilibili) 20 | time.sleep(1) 21 | game_server.login(acc) 22 | time.sleep(1) 23 | game_server.sync_data(acc) 24 | time.sleep(1) 25 | game_server.get_unconfirmed_order(acc) 26 | time.sleep(1) 27 | game_server.sync_status(acc) 28 | time.sleep(1) 29 | game_server.mission.auto_confirm_missions_by_type(acc,MissionType.DAILY.value) -------------------------------------------------------------------------------- /mitm/addons/CharsEssential.py: -------------------------------------------------------------------------------- 1 | from mitmproxy.http import HTTPFlow, HTTPResponse 2 | from mitm.addons import ArkInterceptor 3 | from mitm.model.troopBuilder import troopBuilder 4 | import json,copy 5 | 6 | 7 | class CharsEssential(ArkInterceptor): 8 | def __init__(self,mode="weak"): 9 | self.mode = mode 10 | self.info("Loading success, mode %s" %self.mode) 11 | 12 | def request(self, flow:HTTPFlow): 13 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/charBuild/setDefaultSkill"): 14 | self.info("Receive default skill change change request") 15 | req = json.loads(flow.request.get_text()) 16 | self.tBuilder.chars[str(req["charInstId"])]["defaultSkillIndex"] = req["defaultSkillIndex"] 17 | resp = {"playerDataDelta": {"deleted": {}, 18 | "modified": { 19 | "troop": {"chars": {str(req["charInstId"]): { 20 | "defaultSkillIndex": req["defaultSkillIndex"]}}}}}} 21 | self.info("make response") 22 | flow.response = HTTPResponse.make(200, 23 | json.dumps(resp), 24 | {"Content-Type": "application/json; charset=utf-8"}) 25 | self.info("Reply Complete") 26 | 27 | def response(self, flow: HTTPFlow): 28 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/account/syncData"): 29 | data = json.loads(flow.response.get_text()) 30 | if self.tBuilder is None: 31 | self.info("Troop builder not found, create from response data") 32 | ArkInterceptor.tBuilder = troopBuilder(data["user"]["troop"]["curCharInstId"], 33 | data["user"]["troop"]["curSquadCount"], 34 | data["user"]["troop"]["squads"], 35 | data["user"]["troop"]["chars"]) 36 | else: 37 | self.info("Find exist troop builder, write config to response") 38 | data["user"]["troop"] = self.tBuilder.dump() 39 | flow.response.set_text(json.dumps(data)) 40 | ArkInterceptor.tBuilder.setCharacterBuilder(ArkInterceptor.cBuilder) 41 | self.info("Complete") 42 | 43 | #master.addons.add(CharsEssential()) -------------------------------------------------------------------------------- /mitm/addons/JT82.py: -------------------------------------------------------------------------------- 1 | from mitmproxy.http import HTTPFlow, HTTPResponse 2 | from mitm.addons import ArkInterceptor 3 | from mitm.model.troopBuilder import troopBuilder 4 | import json, copy 5 | 6 | 7 | class JT82(ArkInterceptor): 8 | ''' 9 | Require: BattleEssential 10 | ''' 11 | 12 | def __init__(self): 13 | self.info("Loading success") 14 | 15 | def response(self, flow: HTTPFlow): 16 | if flow.request.host in self.ServersList and flow.request.path.startswith("/account/syncData"): 17 | data = json.loads(flow.response.get_text()) 18 | data["user"]["dungeon"]["stages"]["main_08-17"] = {"stageId": "main_08-17", "completeTimes": 0, "startTimes": 0, "practiceTimes": 0, "state": 0, 19 | "hasBattleReplay": 0, "noCostCnt": 1} 20 | flow.response.set_text(json.dumps(data)) 21 | self.info("Complete") 22 | 23 | def request(self, flow: HTTPFlow): 24 | if flow.request.host in self.ServersList and flow.request.path.startswith("/quest/battleStart"): 25 | req = json.loads(flow.request.get_text()) 26 | if (req["stageId"] != "main_08-16"): 27 | return 28 | self.info("Receive JT8-2 battle start request") 29 | fakeData = { 30 | "apFailReturn": 20, 31 | "battleId": "6c86c7c0-3373-11eb-9784-0d36b8275660", 32 | "isApProtect": 0, 33 | "notifyPowerScoreNotEnoughIfFailed": False, 34 | "playerDataDelta": { 35 | "deleted": {}, 36 | "modified": { 37 | # "dungeon": { 38 | # "stages": { 39 | # "main_07-01": { 40 | # "completeTimes": 1, 41 | # "hasBattleReplay": 1, 42 | # "noCostCnt": 0, 43 | # "practiceTimes": 0, 44 | # "stageId": "main_07-01", 45 | # "startTimes": 2, 46 | # "state": 3 47 | # } 48 | # } 49 | # } 50 | } 51 | }, 52 | "result": 0 53 | } 54 | flow.response = HTTPResponse.make(200, json.dumps(fakeData), 55 | {"Content-Type": "application/json; charset=utf-8"}) 56 | self.info("complete") 57 | -------------------------------------------------------------------------------- /mitm/addons/TestFor.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | from mitmproxy.http import HTTPFlow, HTTPResponse 4 | 5 | from mitm.addons import ArkInterceptor 6 | 7 | 8 | class TestFor(ArkInterceptor): 9 | def __init__(self): 10 | self.info("Loading success") 11 | 12 | def response(self, flow: HTTPFlow): 13 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/account/syncData"): 14 | self.info("Receive response") 15 | data = json.loads(flow.response.get_text()) 16 | print(self.tBuilder.getCharData("char_172_svrash")) 17 | self.tBuilder.getCharData("char_172_svrash")["skin"] = "char_180_amgoat#2" 18 | print(self.tBuilder.getCharData("char_172_svrash")) 19 | flow.response.set_text(json.dumps(data)) 20 | self.info("Complete") 21 | 22 | class MonsterSirenMusic(ArkInterceptor): 23 | def __init__(self, mode="weak"): 24 | self.mode = mode 25 | self.info("Loading success, mode %s" % self.mode) 26 | 27 | def response(self, flow: HTTPFlow): 28 | if self.inServersList(flow.request.host) and flow.request.path.startswith( 29 | "/announce/Android/announcement.meta.json"): 30 | data = json.loads(flow.response.get_text()) 31 | data["announceList"][0]["webUrl"] = "https://monster-siren.hypergryph.com/" 32 | flow.response.set_text(json.dumps(data)) 33 | self.info("Complete") 34 | 35 | if flow.request.host == "monster-siren.hypergryph.com" and (flow.request.path == "/" or 36 | flow.request.path == "/m"): 37 | data = flow.response.get_text() 38 | data = data.replace("", 39 | "") 40 | flow.response.set_text(data) 41 | self.info("set overflow") 42 | print(flow.response.get_text()) 43 | -------------------------------------------------------------------------------- /mitm/addons/__init__.py: -------------------------------------------------------------------------------- 1 | from mitmproxy.http import HTTPFlow 2 | from mitm.model.troopBuilder import troopBuilder,characterBuilder 3 | from functools import wraps 4 | import re 5 | 6 | class ArkInterceptor(): 7 | # from https://github.com/GhostStar/Arknights-Armada/ 8 | Servers = {"ak-gs-localhost.hypergryph.com": ("ak-gs.hypergryph.com", 8443), 9 | "ak-gs-b-localhost.hypergryph.com": ("ak-gs.hypergryph.com", 8443), 10 | "ak-as-localhost.hypergryph.com": ("ak-as.hypergryph.com", 9443)} 11 | 12 | ServersList = [key for key in Servers.keys()] + [val[0] for val in Servers.values()] 13 | 14 | tBuilder = None # type:troopBuilder 15 | cBuilder = characterBuilder.init() 16 | 17 | 18 | @staticmethod 19 | def setTroopBuilder(tb): 20 | ArkInterceptor.tBuilder = tb 21 | 22 | @staticmethod 23 | def checkExecutable(func): 24 | @wraps(func) 25 | def check(self,*args,**kwargs): 26 | if self.executable(): 27 | func(self,*args,**kwargs) 28 | return check 29 | 30 | def executable(self): 31 | return True 32 | 33 | def http_connect(self, flow: HTTPFlow): 34 | pass 35 | 36 | def request(self, flow:HTTPFlow): 37 | pass 38 | 39 | def response(self, flow: HTTPFlow): 40 | pass 41 | 42 | def inServersList(self,url): 43 | return re.match(r"ak-.*\.hypergryph.com",url) != None 44 | 45 | def info(self,msg): 46 | print("Arkhack - %s > %s" %(self.__class__.__name__,msg)) 47 | 48 | 49 | class ArkEssential(ArkInterceptor): 50 | def __init__(self): 51 | self.info("Load success") 52 | def http_connect(self, flow: HTTPFlow): 53 | # replace all localhost server to correct server 54 | if (flow.request.host in self.Servers.keys()): 55 | flow.request.host, flow.request.port = self.Servers.get(flow.request.host) -------------------------------------------------------------------------------- /mitm/addons/allChars.py: -------------------------------------------------------------------------------- 1 | from mitmproxy.http import HTTPFlow 2 | from mitm.addons import ArkInterceptor 3 | import json 4 | 5 | class allChars(ArkInterceptor): 6 | ''' 7 | Require: CharsEssential,BattleEssential 8 | ''' 9 | def __init__(self): 10 | self.execute = True 11 | self.info("Loading success") 12 | def executable(self): 13 | return self.execute 14 | 15 | @ArkInterceptor.checkExecutable 16 | def response(self, flow: HTTPFlow): 17 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/account/syncData"): 18 | self.info("Receive response") 19 | data = json.loads(flow.response.get_text()) 20 | char = [] 21 | self.info("Get character list") 22 | for c in self.tBuilder.cBuilder.characters.keys(): 23 | if "char" in c: 24 | char.append(c) 25 | self.info("add characters.....") 26 | for c in char: 27 | self.tBuilder.addCharacter(c) 28 | data["user"]["troop"] = self.tBuilder.dump() 29 | flow.response.set_text(json.dumps(data)) 30 | self.info("Complete") 31 | self.execute = False 32 | 33 | 34 | #master.addons.add(allChars()) -------------------------------------------------------------------------------- /mitm/addons/changeSeed.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | from mitmproxy.http import HTTPFlow 4 | 5 | from mitm.addons import ArkInterceptor 6 | from client import encryption 7 | 8 | class changeSeed(ArkInterceptor): 9 | 10 | def __init__(self,seed): 11 | self.seed = seed 12 | self.info("Loading success") 13 | 14 | def request(self, flow: HTTPFlow): 15 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/quest/saveBattleReplay"): 16 | data = json.loads(flow.request.get_text()) 17 | b_data = json.loads(encryption.decrypt_battle_replay(data["battleReplay"])) 18 | b_data["journal"]["randomSeed"] = self.seed 19 | data["battleReplay"] = encryption.encrypt_battle_replay(json.dumps(b_data,separators=(',', ':'))) 20 | flow.request.set_text(json.dumps(data)) -------------------------------------------------------------------------------- /mitm/addons/decryptBattleData.py: -------------------------------------------------------------------------------- 1 | from mitmproxy.http import HTTPFlow,HTTPResponse 2 | 3 | from client import encryption 4 | from mitm.addons import ArkInterceptor 5 | import json 6 | 7 | class decryptBattleData(ArkInterceptor): 8 | 9 | def __init__(self): 10 | self.login_time = 0 11 | 12 | def response(self, flow: HTTPFlow): 13 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/account/syncData"): 14 | data = json.loads(flow.response.get_text()) 15 | self.login_time = data["user"]['pushFlags']['status'] 16 | self.info("get login time") 17 | return 18 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/quest/battleFinish"): 19 | data = json.loads(flow.request.content) 20 | print(encryption.decrypt_battle_data(data["data"],self.login_time)) -------------------------------------------------------------------------------- /mitm/addons/fakeGacha.py: -------------------------------------------------------------------------------- 1 | from mitmproxy.http import HTTPFlow 2 | from mitm.addons import ArkInterceptor 3 | import json 4 | 5 | class fakeGacha(ArkInterceptor): 6 | def response(self, flow: HTTPFlow): 7 | # do something in response 8 | if flow.request.host in self.ServersList and flow.request.path.startswith("/gacha/tenAdvancedGacha"): 9 | print("开始制作虚假的10连") 10 | data = json.loads(flow.response.get_text()) 11 | for index, gacha in enumerate(data["gachaResultList"]): 12 | if (index == 0): 13 | gacha["isNew"] = 1 14 | gacha["charInstId"] = 42 15 | gacha["itemGet"] = [ 16 | { 17 | "count": 1, 18 | "id": "4004", 19 | "type": "HGG_SHD" 20 | } 21 | ] 22 | else: 23 | gacha["isNew"] = 0 24 | gacha["charInstId"] = 42 25 | gacha["itemGet"] = [ 26 | { 27 | "count": 10, 28 | "id": "4004", 29 | "type": "HGG_SHD" 30 | }, 31 | { 32 | "count": 1, 33 | "id": "p_char_2013_cerber", 34 | "type": "MATERIAL" 35 | } 36 | ] 37 | gacha["charId"] = "char_2013_cerber" 38 | flow.response.set_text(json.dumps(data)) 39 | print("修改完成") -------------------------------------------------------------------------------- /mitm/addons/graduateChars.py: -------------------------------------------------------------------------------- 1 | from mitmproxy.http import HTTPFlow 2 | from mitm.addons import ArkInterceptor 3 | from mitm.model.troopBuilder import troopBuilder 4 | import json 5 | 6 | class graduateChars(ArkInterceptor): 7 | ''' 8 | Require: CharsEssential,BattleEssential 9 | ''' 10 | def __init__(self): 11 | self.e = True 12 | self.info("Loading success") 13 | 14 | def executable(self): 15 | return self.e 16 | 17 | @ArkInterceptor.checkExecutable 18 | def response(self, flow: HTTPFlow): 19 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/account/syncData"): 20 | self.info("Receive response") 21 | data = json.loads(flow.response.get_text()) 22 | for key,char in self.tBuilder.chars.items(): 23 | self.info("Upgrade: %s-%s" %(key,char["charId"])) 24 | self.tBuilder.chars[key] = self.cBuilder.graduate(self.tBuilder.chars[key]) 25 | self.tBuilder.getCharData("char_172_svrash")["skin"] = "char_180_amgoat#2" 26 | data["user"]["troop"] = self.tBuilder.dump() 27 | flow.response.set_text(json.dumps(data)) 28 | self.info("Complete") 29 | self.e = False 30 | 31 | #master.addons.add(graduateChars()) -------------------------------------------------------------------------------- /mitm/addons/moreChars.py: -------------------------------------------------------------------------------- 1 | from mitmproxy.http import HTTPFlow 2 | from mitm.addons import ArkInterceptor 3 | import json 4 | 5 | class moreChars(ArkInterceptor): 6 | ''' 7 | Require: CharsEssential,BattleEssential 8 | ''' 9 | def __init__(self): 10 | self.execute = True 11 | self.extraChars = [] 12 | self.info("Loading success") 13 | 14 | def addChar(self,char): 15 | self.extraChars.append(char) 16 | 17 | def addChars(self,chars): 18 | self.extraChars.extend(chars) 19 | 20 | def executable(self): 21 | return self.execute 22 | 23 | @ArkInterceptor.checkExecutable 24 | def response(self, flow: HTTPFlow): 25 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/account/syncData"): 26 | self.info("Receive response") 27 | data = json.loads(flow.response.get_text()) 28 | for c in self.extraChars: 29 | self.info("Adding extra character - %s" %c) 30 | self.tBuilder.addCharacter(c,force=True) 31 | data["user"]["troop"] = self.tBuilder.dump() 32 | flow.response.set_text(json.dumps(data)) 33 | self.info("Complete") 34 | self.execute = False 35 | 36 | # mc = moreChars() 37 | # mc.addChar("char_350_surtr") 38 | # mc.addChars(["char_350_surtr"]*10+["char_172_svrash"]*10+["char_180_amgoat"]*10+["char_151_myrtle"]*5+["char_222_bpipe"]*5+["char_400_weedy"]*12) 39 | # master.addons.add(mc) -------------------------------------------------------------------------------- /mitm/addons/unlockSkins.py: -------------------------------------------------------------------------------- 1 | from mitmproxy.http import HTTPFlow,HTTPResponse 2 | from mitm.addons import ArkInterceptor 3 | import json 4 | 5 | 6 | class unlockSkins(ArkInterceptor): 7 | ''' 8 | Require: CharsEssential 9 | ''' 10 | def __init__(self): 11 | self.info("Loading success") 12 | 13 | def request(self, flow: HTTPFlow): 14 | """ 15 | { 16 | "charInstId": 9, 17 | "skinId": "char_123_fang#1" 18 | } 19 | """ 20 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/charBuild/changeCharSkin"): 21 | self.info("Receive skin change request") 22 | req = json.loads(flow.request.get_text()) 23 | resp = {"playerDataDelta": {"deleted": {}, 24 | "modified": { "troop": {"chars": {str(req["charInstId"]): {"skin": req["skinId"]}}}}}} 25 | self.info("make response") 26 | self.tBuilder.chars[str(req["charInstId"])]["skin"] = req["skinId"] 27 | flow.response = HTTPResponse.make(200, 28 | json.dumps(resp), 29 | {"Content-Type":"application/json; charset=utf-8"}) 30 | self.info("Reply Complete") 31 | 32 | def response(self, flow: HTTPFlow): 33 | if self.inServersList(flow.request.host) and flow.request.path.startswith("/account/syncData"): 34 | self.info("Receive response") 35 | data = json.loads(flow.response.get_text()) 36 | self.info("Unlocking....") 37 | data["user"]["skin"]["characterSkins"] = dict((key, 1) for key in self.cBuilder.skins) 38 | flow.response.set_text(json.dumps(data)) 39 | self.info("Complete") 40 | 41 | #master.addons.add(unlockSkins()) -------------------------------------------------------------------------------- /mitm/model/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rhine-Department-0xf/Rhine-DFramwork/0909d49dc3077e499c6656750e19fa1b59068bf1/mitm/model/__init__.py -------------------------------------------------------------------------------- /mitm/troopEditor.py: -------------------------------------------------------------------------------- 1 | from mitm.model.troopBuilder import troopBuilder,characterBuilder 2 | 3 | tb = troopBuilder.init() 4 | tb.setCharacterBuilder(characterBuilder.init()) 5 | char = [] 6 | for c in tb.cBuilder.characters.keys(): 7 | if "char" in c and tb.cBuilder.characters[c]["obtainable"]: 8 | char.append(c) 9 | 10 | for c in char: 11 | tb.addCharacter(c) 12 | 13 | for key, char in tb.chars.items(): 14 | tb.chars[key] = tb.cBuilder.graduate(tb.chars[key]) 15 | tb.save(indent=2) -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | asgiref==3.3.4 2 | bidict==0.21.2 3 | blinker==1.4 4 | Brotli==1.0.9 5 | certifi==2020.12.5 6 | cffi==1.14.5 7 | chardet==4.0.0 8 | click==7.1.2 9 | colorama==0.4.4 10 | colorlog==4.7.2 11 | crypto==1.4.1 12 | cryptography==3.2.1 13 | dataclasses==0.8 14 | Flask==1.1.2 15 | Flask-SocketIO==4.3.1 16 | frida==14.2.8 17 | frida-tools==9.1.0 18 | h11==0.12.0 19 | h2==4.0.0 20 | hpack==4.0.0 21 | hyperframe==6.0.1 22 | idna==2.10 23 | itsdangerous==1.1.0 24 | Jinja2==2.11.2 25 | kaitaistruct==0.9 26 | ldap3==2.8.1 27 | MarkupSafe==1.1.1 28 | mitmproxy==5.3.0 29 | msgpack==1.0.2 30 | Naked==0.1.31 31 | passlib==1.7.4 32 | prompt-toolkit==3.0.14 33 | protobuf==3.13.0 34 | publicsuffix2==2.20191221 35 | pyasn1==0.4.8 36 | pycparser==2.20 37 | pycryptodome==3.10.1 38 | pydivert==2.1.0 39 | Pygments==2.7.4 40 | pyOpenSSL==19.1.0 41 | pyparsing==2.4.7 42 | pyperclip==1.8.2 43 | python-engineio==3.13.2 44 | python-socketio==4.3.1 45 | PyYAML==5.4.1 46 | requests==2.25.1 47 | ruamel.yaml==0.16.13 48 | ruamel.yaml.clib==0.2.2 49 | shellescape==3.8.1 50 | six==1.15.0 51 | sortedcontainers==2.2.2 52 | tornado==6.1 53 | typing-extensions==3.7.4.3 54 | urllib3==1.26.2 55 | urwid==2.1.2 56 | wcwidth==0.2.5 57 | Werkzeug==1.0.1 58 | wsproto==0.15.0 59 | zstandard==0.14.1 60 | -------------------------------------------------------------------------------- /scripts/adb_mumu.bat: -------------------------------------------------------------------------------- 1 | adb connect 127.0.0.1:7555 --------------------------------------------------------------------------------