├── gradle.properties ├── .gitignore ├── src └── main │ ├── resources │ └── plugin.yml │ └── kotlin │ └── org │ └── helloworld │ └── mirai │ └── forward │ ├── ForwardInfo.kt │ ├── ForwardCommand.kt │ └── Forward.kt ├── gradle └── wrapper │ ├── gradle-wrapper.properties │ └── gradle-wrapper.jar ├── README.md ├── settings.gradle.kts ├── gradlew.bat ├── gradlew └── LICENSE /gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.code.style=official -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | .idea 3 | test 4 | build -------------------------------------------------------------------------------- /src/main/resources/plugin.yml: -------------------------------------------------------------------------------- 1 | name: "Forward" 2 | author: "HelloWorld" 3 | version: "0.1.3" 4 | main: "org.helloworld.mirai.forward.Forward" 5 | info: "" 6 | depends: [] -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MiraiForward 2 | 适用于Mirai QQ机器人的跨群转发消息插件,可用于多群互联 3 | ``` 4 | 使用 停止转发 或 启动转发 可设置是否转发你的消息 5 | 使用#raw作为信息开头可以不显示发送者信息进行转发 6 | /forward 7 | group <群号> 将当前群加入/移除转发组 8 | start 开启转发 9 | stop 关闭转发 10 | lock 锁定某成员的转发开关 11 | forward 更改成员的转发开关 12 | avatar 转发时显示头像开关 13 | raw 是否允许原消息转发(不显示发送者信息) 14 | info 显示统计信息 15 | clean 清除统计信息 16 | refresh 刷新头像缓存 17 | ``` 18 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | resolutionStrategy { 3 | eachPlugin { 4 | when (requested.id.id) { 5 | "com.github.johnrengelman.shadow" -> useModule("com.github.jengelman.gradle.plugins:shadow:${requested.version}") 6 | } 7 | } 8 | } 9 | 10 | repositories { 11 | maven(url = "https://dl.bintray.com/kotlin/kotlin-eap") 12 | maven(url = "https://mirrors.huaweicloud.com/repository/maven") 13 | mavenCentral() 14 | jcenter() 15 | } 16 | } 17 | 18 | rootProject.name = "forward" 19 | 20 | -------------------------------------------------------------------------------- /src/main/kotlin/org/helloworld/mirai/forward/ForwardInfo.kt: -------------------------------------------------------------------------------- 1 | package org.helloworld.mirai.forward 2 | 3 | import net.mamoe.mirai.console.plugins.withDefaultWriteSave 4 | import java.lang.StringBuilder 5 | import java.text.SimpleDateFormat 6 | 7 | object ForwardInfo { 8 | private val infoConfig = Forward.loadConfig("infoConfig.yml") 9 | var startTime by infoConfig.withDefaultWriteSave { System.currentTimeMillis() } 10 | 11 | private val sendList by lazy { 12 | infoConfig.setIfAbsent("sendList", mutableListOf()) 13 | infoConfig.getLongList("sendList").toMutableList() 14 | } 15 | 16 | fun init() { 17 | val groups = Forward.groups.size 18 | while (sendList.size < groups) { 19 | sendList.add(0) 20 | } 21 | 22 | } 23 | 24 | fun addSend(index: Int) { 25 | sendList[index]++ 26 | } 27 | 28 | fun delGroup(index: Int) { 29 | sendList[index] = 0 30 | } 31 | 32 | fun clean() { 33 | sendList.clear() 34 | init() 35 | startTime = System.currentTimeMillis() 36 | } 37 | 38 | fun saveAll() { 39 | infoConfig["sendList"] = sendList 40 | infoConfig.save() 41 | } 42 | 43 | val info: String 44 | get() = run { 45 | val sb = StringBuilder() 46 | sb.append("从${SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(startTime)}开始的统计数据:\n") 47 | sb.append("缓存了${Forward.avatarCache.size}个头像\n") 48 | for (i in Forward.groups.indices) { 49 | sb.append("群${Forward.groups[i]}发出${sendList[i]}条转发消息\n") 50 | } 51 | sb.toString() 52 | } 53 | } -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS="-Xmx64m" 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /src/main/kotlin/org/helloworld/mirai/forward/ForwardCommand.kt: -------------------------------------------------------------------------------- 1 | package org.helloworld.mirai.forward 2 | 3 | import net.mamoe.mirai.console.command.registerCommand 4 | 5 | internal fun registerForwardCommand() { 6 | Forward.registerCommand { 7 | name = "forward" 8 | description = "设置转发" 9 | usage = """qq跨群转发插件 10 | 使用 停止转发 或 启动转发 可设置是否转发你的消息 11 | 使用#raw作为信息开头可以不显示发送者信息进行转发 12 | /forward 13 | group <群号> 将当前群加入/移除转发组 14 | start 开启转发 15 | stop 关闭转发 16 | lock 锁定某成员的转发开关 17 | forward 更改成员的转发开关 18 | avatar 转发时显示头像开关 19 | raw 是否允许原消息转发(不显示发送者信息) 20 | info 显示统计信息 21 | clean 清除统计信息 22 | refresh 刷新头像缓存 23 | sys 是否转发进退群,禁言等系统信息 24 | """.trimIndent() 25 | onCommand { args: List -> 26 | 27 | if (args.isEmpty()) { 28 | return@onCommand false 29 | } 30 | 31 | when (args[0]) { 32 | "group" -> { 33 | if (args.size < 2) { 34 | return@onCommand false 35 | } 36 | val groupId = args[1].toLong() 37 | if (groupId in Forward.groups) { 38 | Forward.groups.remove(groupId) 39 | ForwardInfo.delGroup(Forward.groups.indexOf(groupId)) 40 | sendMessage("成功删除") 41 | } else { 42 | Forward.groups.add(groupId) 43 | ForwardInfo.init() 44 | sendMessage("成功添加") 45 | } 46 | Forward.saveAll() 47 | return@onCommand true 48 | } 49 | "start" -> { 50 | Forward.status = true 51 | sendMessage("成功开启") 52 | Forward.saveAll() 53 | return@onCommand true 54 | } 55 | "stop" -> { 56 | Forward.status = false 57 | sendMessage("成功关闭") 58 | Forward.saveAll() 59 | return@onCommand true 60 | } 61 | "lock" -> { 62 | if (args.size < 2) { 63 | return@onCommand false 64 | } 65 | val memberId = args[1].toLong() 66 | if (memberId in Forward.lockList) { 67 | Forward.lockList.remove(memberId) 68 | sendMessage("成功解除锁定") 69 | Forward.saveAll() 70 | return@onCommand true 71 | } 72 | Forward.lockList.add(memberId) 73 | sendMessage("成功锁定") 74 | Forward.saveAll() 75 | return@onCommand true 76 | } 77 | "forward" -> { 78 | if (args.size < 2) { 79 | return@onCommand false 80 | } 81 | val memberId = args[1].toLong() 82 | if (memberId in Forward.disableList) { 83 | Forward.disableList.remove(memberId) 84 | sendMessage("成功开启转发") 85 | Forward.saveAll() 86 | return@onCommand true 87 | } 88 | Forward.disableList.add(memberId) 89 | sendMessage("成功关闭转发") 90 | Forward.saveAll() 91 | return@onCommand true 92 | } 93 | "avatar" -> { 94 | sendMessage(switchState(Forward.avatarShow) { 95 | Forward.avatarShow = it 96 | Forward.saveAll() 97 | }) 98 | return@onCommand true 99 | } 100 | "raw" -> { 101 | sendMessage(switchState(Forward.raw) { 102 | Forward.raw = it 103 | Forward.saveAll() 104 | }) 105 | return@onCommand true 106 | } 107 | "info" -> { 108 | sendMessage(ForwardInfo.info) 109 | return@onCommand true 110 | } 111 | 112 | "clean" -> { 113 | ForwardInfo.clean() 114 | sendMessage("重置成功") 115 | return@onCommand true 116 | } 117 | "refresh" -> { 118 | Forward.avatarCache.clear() 119 | sendMessage("成功") 120 | return@onCommand true 121 | } 122 | "sys" -> { 123 | sendMessage(switchState(Forward.showSysMsg) { 124 | Forward.showSysMsg = it 125 | Forward.saveAll() 126 | }) 127 | return@onCommand true 128 | } 129 | 130 | } 131 | return@onCommand false 132 | } 133 | } 134 | } 135 | 136 | fun switchState(switch: Boolean, next: (Boolean) -> Unit): String { 137 | if (switch) { 138 | next(false) 139 | return "成功关闭" 140 | } 141 | next(true) 142 | return "成功打开" 143 | } -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Attempt to set APP_HOME 10 | # Resolve links: $0 may be a link 11 | PRG="$0" 12 | # Need this for relative symlinks. 13 | while [ -h "$PRG" ] ; do 14 | ls=`ls -ld "$PRG"` 15 | link=`expr "$ls" : '.*-> \(.*\)$'` 16 | if expr "$link" : '/.*' > /dev/null; then 17 | PRG="$link" 18 | else 19 | PRG=`dirname "$PRG"`"/$link" 20 | fi 21 | done 22 | SAVED="`pwd`" 23 | cd "`dirname \"$PRG\"`/" >/dev/null 24 | APP_HOME="`pwd -P`" 25 | cd "$SAVED" >/dev/null 26 | 27 | APP_NAME="Gradle" 28 | APP_BASE_NAME=`basename "$0"` 29 | 30 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 31 | DEFAULT_JVM_OPTS='"-Xmx64m"' 32 | 33 | # Use the maximum available, or set MAX_FD != -1 to use that value. 34 | MAX_FD="maximum" 35 | 36 | warn () { 37 | echo "$*" 38 | } 39 | 40 | die () { 41 | echo 42 | echo "$*" 43 | echo 44 | exit 1 45 | } 46 | 47 | # OS specific support (must be 'true' or 'false'). 48 | cygwin=false 49 | msys=false 50 | darwin=false 51 | nonstop=false 52 | case "`uname`" in 53 | CYGWIN* ) 54 | cygwin=true 55 | ;; 56 | Darwin* ) 57 | darwin=true 58 | ;; 59 | MINGW* ) 60 | msys=true 61 | ;; 62 | NONSTOP* ) 63 | nonstop=true 64 | ;; 65 | esac 66 | 67 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 68 | 69 | # Determine the Java command to use to start the JVM. 70 | if [ -n "$JAVA_HOME" ] ; then 71 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 72 | # IBM's JDK on AIX uses strange locations for the executables 73 | JAVACMD="$JAVA_HOME/jre/sh/java" 74 | else 75 | JAVACMD="$JAVA_HOME/bin/java" 76 | fi 77 | if [ ! -x "$JAVACMD" ] ; then 78 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 79 | 80 | Please set the JAVA_HOME variable in your environment to match the 81 | location of your Java installation." 82 | fi 83 | else 84 | JAVACMD="java" 85 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 86 | 87 | Please set the JAVA_HOME variable in your environment to match the 88 | location of your Java installation." 89 | fi 90 | 91 | # Increase the maximum file descriptors if we can. 92 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 93 | MAX_FD_LIMIT=`ulimit -H -n` 94 | if [ $? -eq 0 ] ; then 95 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 96 | MAX_FD="$MAX_FD_LIMIT" 97 | fi 98 | ulimit -n $MAX_FD 99 | if [ $? -ne 0 ] ; then 100 | warn "Could not set maximum file descriptor limit: $MAX_FD" 101 | fi 102 | else 103 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 104 | fi 105 | fi 106 | 107 | # For Darwin, add options to specify how the application appears in the dock 108 | if $darwin; then 109 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 110 | fi 111 | 112 | # For Cygwin, switch paths to Windows format before running java 113 | if $cygwin ; then 114 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 115 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 116 | JAVACMD=`cygpath --unix "$JAVACMD"` 117 | 118 | # We build the pattern for arguments to be converted via cygpath 119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 120 | SEP="" 121 | for dir in $ROOTDIRSRAW ; do 122 | ROOTDIRS="$ROOTDIRS$SEP$dir" 123 | SEP="|" 124 | done 125 | OURCYGPATTERN="(^($ROOTDIRS))" 126 | # Add a user-defined pattern to the cygpath arguments 127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 129 | fi 130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 131 | i=0 132 | for arg in "$@" ; do 133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 135 | 136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 138 | else 139 | eval `echo args$i`="\"$arg\"" 140 | fi 141 | i=$((i+1)) 142 | done 143 | case $i in 144 | (0) set -- ;; 145 | (1) set -- "$args0" ;; 146 | (2) set -- "$args0" "$args1" ;; 147 | (3) set -- "$args0" "$args1" "$args2" ;; 148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 154 | esac 155 | fi 156 | 157 | # Escape application args 158 | save () { 159 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 160 | echo " " 161 | } 162 | APP_ARGS=$(save "$@") 163 | 164 | # Collect all arguments for the java command, following the shell quoting and substitution rules 165 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 166 | 167 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong 168 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then 169 | cd "$(dirname "$0")" 170 | fi 171 | 172 | exec "$JAVACMD" "$@" 173 | -------------------------------------------------------------------------------- /src/main/kotlin/org/helloworld/mirai/forward/Forward.kt: -------------------------------------------------------------------------------- 1 | package org.helloworld.mirai.forward 2 | 3 | import kotlinx.coroutines.launch 4 | import net.mamoe.mirai.Bot 5 | import net.mamoe.mirai.console.plugins.PluginBase 6 | import net.mamoe.mirai.console.plugins.withDefaultWriteSave 7 | import net.mamoe.mirai.contact.Contact 8 | import net.mamoe.mirai.contact.Group 9 | import net.mamoe.mirai.contact.nameCardOrNick 10 | import net.mamoe.mirai.event.events.MemberJoinEvent 11 | import net.mamoe.mirai.event.events.MemberLeaveEvent 12 | import net.mamoe.mirai.event.events.MemberMuteEvent 13 | import net.mamoe.mirai.event.events.MemberUnmuteEvent 14 | import net.mamoe.mirai.event.subscribeAlways 15 | import net.mamoe.mirai.event.subscribeGroupMessages 16 | import net.mamoe.mirai.message.data.* 17 | import net.mamoe.mirai.message.uploadAsImage 18 | import java.net.URL 19 | 20 | internal object Forward : PluginBase() { 21 | private val config = loadConfig("setting.yml") 22 | val groups by lazy { 23 | config.setIfAbsent("groups", mutableListOf()) 24 | config.getLongList("groups").toMutableList() 25 | } 26 | val disableList by lazy { 27 | config.setIfAbsent("disableList", mutableListOf()) 28 | config.getLongList("disableList").toMutableList() 29 | } 30 | val lockList by lazy { 31 | config.setIfAbsent("lockList", mutableListOf()) 32 | config.getLongList("lockList").toMutableList() 33 | } 34 | 35 | var status by config.withDefaultWriteSave { false } 36 | var avatarShow by config.withDefaultWriteSave { true } 37 | var raw by config.withDefaultWriteSave { true } 38 | val avatarCache = mutableMapOf() 39 | var showSysMsg by config.withDefaultWriteSave { true } 40 | 41 | fun saveAll() { 42 | config["groups"] = groups 43 | config["disableList"] = disableList 44 | config["lockList"] = lockList 45 | config.save() 46 | ForwardInfo.saveAll() 47 | } 48 | 49 | override fun onLoad() { 50 | registerForwardCommand() 51 | ForwardInfo.init() 52 | } 53 | 54 | override fun onEnable() { 55 | super.onEnable() 56 | logger.info("转发插件加载") 57 | setupMsgHandle() 58 | setupSysMsgHandle() 59 | } 60 | 61 | private suspend inline fun send(group: Group, messageChain: MessageChain, bot: Bot) { 62 | for (i in groups.indices) { 63 | val g = groups[i] 64 | if (g == group.id) { 65 | ForwardInfo.addSend(i) 66 | continue 67 | } 68 | launch { bot.getGroup(g).sendMessage(messageChain) } 69 | } 70 | // groups.filter { it != group.id } 71 | // .forEach { 72 | // bot.getGroup(it) 73 | // .sendMessage(messageChain) 74 | // } 75 | } 76 | 77 | private suspend inline fun getAvatar(id: Long, contact: Contact): Image { 78 | var img = avatarCache[id] 79 | if (img != null) { 80 | return img 81 | } 82 | img = URL("http://q1.qlogo.cn/g?b=qq&nk=${id}&s=1").uploadAsImage(contact) 83 | avatarCache[id] = img 84 | return img 85 | } 86 | 87 | private fun setupMsgHandle() { 88 | subscribeGroupMessages { 89 | always { 90 | if (!status) { 91 | return@always 92 | } 93 | 94 | if (group.id !in groups) { 95 | return@always 96 | } 97 | 98 | if (message.contentToString() == "停止转发") { 99 | if (sender.id !in disableList && sender.id !in lockList) { 100 | reply(At(sender) + "成功暂停你的消息转发") 101 | disableList.add(sender.id) 102 | return@always 103 | } 104 | } 105 | if (message.contentToString() == "启动转发") { 106 | if (sender.id in disableList && sender.id !in lockList) { 107 | reply(At(sender) + "成功开启你的消息转发") 108 | disableList.remove(sender.id) 109 | return@always 110 | } 111 | } 112 | 113 | if (sender.id in disableList) { 114 | return@always 115 | } 116 | 117 | val messageChainBuilder = MessageChainBuilder() 118 | if (raw && 119 | message.contentToString().length > 4 && 120 | message.contentToString().substring(0, 4) == "#raw" 121 | ) { 122 | message.forEachContent { 123 | if (it is PlainText) { 124 | messageChainBuilder.add(it.content.replaceFirst("#raw".toRegex(), "")) 125 | return@forEachContent 126 | } 127 | messageChainBuilder.add(it) 128 | } 129 | send(group, messageChainBuilder.asMessageChain(), bot) 130 | return@always 131 | } 132 | var isQuote = false //是否是quote消息 133 | if (avatarShow) { 134 | messageChainBuilder.add(0, getAvatar(sender.id, group)) 135 | } 136 | messageChainBuilder.add("[${sender.nameCardOrNick}]\n".toMessage()) 137 | for (i in message) { 138 | if (i is QuoteReply) { 139 | isQuote = true 140 | break 141 | } 142 | if ("/forward" in i.contentToString()) { 143 | return@always 144 | } 145 | } 146 | for (i in message) { 147 | if (isQuote && i is At) { 148 | continue 149 | } 150 | if (i is QuoteReply){ 151 | 152 | } 153 | messageChainBuilder.add(i) 154 | } 155 | 156 | send(group, messageChainBuilder.asMessageChain(), bot) 157 | } 158 | } 159 | 160 | } 161 | 162 | 163 | private fun setupSysMsgHandle() { 164 | subscribeAlways { 165 | if (group.id in groups && showSysMsg) { 166 | send(group, "${member.nameCardOrNick}加入了${group.name}".toMessage().asMessageChain(), bot) 167 | } 168 | } 169 | 170 | subscribeAlways { 171 | if (group.id in groups && showSysMsg) { 172 | send(group, "${member.nameCardOrNick}退出了${group.name}".toMessage().asMessageChain(), bot) 173 | } 174 | } 175 | subscribeAlways { 176 | if (group.id in groups && showSysMsg) { 177 | send(group, "${member.nameCardOrNick}被禁言了".toMessage().asMessageChain(), bot) 178 | } 179 | } 180 | subscribeAlways { 181 | if (group.id in groups && showSysMsg) { 182 | send(group, "${member.nameCardOrNick}可以说话了".toMessage().asMessageChain(), bot) 183 | } 184 | } 185 | } 186 | 187 | 188 | override fun onDisable() { 189 | super.onDisable() 190 | logger.error("Forward disable") 191 | saveAll() 192 | } 193 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU AFFERO GENERAL PUBLIC LICENSE 2 | Version 3, 19 November 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU Affero General Public License is a free, copyleft license for 11 | software and other kinds of works, specifically designed to ensure 12 | cooperation with the community in the case of network server software. 13 | 14 | The licenses for most software and other practical works are designed 15 | to take away your freedom to share and change the works. By contrast, 16 | our General Public Licenses are intended to guarantee your freedom to 17 | share and change all versions of a program--to make sure it remains free 18 | software for all its users. 19 | 20 | When we speak of free software, we are referring to freedom, not 21 | price. Our General Public Licenses are designed to make sure that you 22 | have the freedom to distribute copies of free software (and charge for 23 | them if you wish), that you receive source code or can get it if you 24 | want it, that you can change the software or use pieces of it in new 25 | free programs, and that you know you can do these things. 26 | 27 | Developers that use our General Public Licenses protect your rights 28 | with two steps: (1) assert copyright on the software, and (2) offer 29 | you this License which gives you legal permission to copy, distribute 30 | and/or modify the software. 31 | 32 | A secondary benefit of defending all users' freedom is that 33 | improvements made in alternate versions of the program, if they 34 | receive widespread use, become available for other developers to 35 | incorporate. Many developers of free software are heartened and 36 | encouraged by the resulting cooperation. However, in the case of 37 | software used on network servers, this result may fail to come about. 38 | The GNU General Public License permits making a modified version and 39 | letting the public access it on a server without ever releasing its 40 | source code to the public. 41 | 42 | The GNU Affero General Public License is designed specifically to 43 | ensure that, in such cases, the modified source code becomes available 44 | to the community. It requires the operator of a network server to 45 | provide the source code of the modified version running there to the 46 | users of that server. Therefore, public use of a modified version, on 47 | a publicly accessible server, gives the public access to the source 48 | code of the modified version. 49 | 50 | An older license, called the Affero General Public License and 51 | published by Affero, was designed to accomplish similar goals. This is 52 | a different license, not a version of the Affero GPL, but Affero has 53 | released a new version of the Affero GPL which permits relicensing under 54 | this license. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | TERMS AND CONDITIONS 60 | 61 | 0. Definitions. 62 | 63 | "This License" refers to version 3 of the GNU Affero General Public License. 64 | 65 | "Copyright" also means copyright-like laws that apply to other kinds of 66 | works, such as semiconductor masks. 67 | 68 | "The Program" refers to any copyrightable work licensed under this 69 | License. Each licensee is addressed as "you". "Licensees" and 70 | "recipients" may be individuals or organizations. 71 | 72 | To "modify" a work means to copy from or adapt all or part of the work 73 | in a fashion requiring copyright permission, other than the making of an 74 | exact copy. The resulting work is called a "modified version" of the 75 | earlier work or a work "based on" the earlier work. 76 | 77 | A "covered work" means either the unmodified Program or a work based 78 | on the Program. 79 | 80 | To "propagate" a work means to do anything with it that, without 81 | permission, would make you directly or secondarily liable for 82 | infringement under applicable copyright law, except executing it on a 83 | computer or modifying a private copy. Propagation includes copying, 84 | distribution (with or without modification), making available to the 85 | public, and in some countries other activities as well. 86 | 87 | To "convey" a work means any kind of propagation that enables other 88 | parties to make or receive copies. Mere interaction with a user through 89 | a computer network, with no transfer of a copy, is not conveying. 90 | 91 | An interactive user interface displays "Appropriate Legal Notices" 92 | to the extent that it includes a convenient and prominently visible 93 | feature that (1) displays an appropriate copyright notice, and (2) 94 | tells the user that there is no warranty for the work (except to the 95 | extent that warranties are provided), that licensees may convey the 96 | work under this License, and how to view a copy of this License. If 97 | the interface presents a list of user commands or options, such as a 98 | menu, a prominent item in the list meets this criterion. 99 | 100 | 1. Source Code. 101 | 102 | The "source code" for a work means the preferred form of the work 103 | for making modifications to it. "Object code" means any non-source 104 | form of a work. 105 | 106 | A "Standard Interface" means an interface that either is an official 107 | standard defined by a recognized standards body, or, in the case of 108 | interfaces specified for a particular programming language, one that 109 | is widely used among developers working in that language. 110 | 111 | The "System Libraries" of an executable work include anything, other 112 | than the work as a whole, that (a) is included in the normal form of 113 | packaging a Major Component, but which is not part of that Major 114 | Component, and (b) serves only to enable use of the work with that 115 | Major Component, or to implement a Standard Interface for which an 116 | implementation is available to the public in source code form. A 117 | "Major Component", in this context, means a major essential component 118 | (kernel, window system, and so on) of the specific operating system 119 | (if any) on which the executable work runs, or a compiler used to 120 | produce the work, or an object code interpreter used to run it. 121 | 122 | The "Corresponding Source" for a work in object code form means all 123 | the source code needed to generate, install, and (for an executable 124 | work) run the object code and to modify the work, including scripts to 125 | control those activities. However, it does not include the work's 126 | System Libraries, or general-purpose tools or generally available free 127 | programs which are used unmodified in performing those activities but 128 | which are not part of the work. For example, Corresponding Source 129 | includes interface definition files associated with source files for 130 | the work, and the source code for shared libraries and dynamically 131 | linked subprograms that the work is specifically designed to require, 132 | such as by intimate data communication or control flow between those 133 | subprograms and other parts of the work. 134 | 135 | The Corresponding Source need not include anything that users 136 | can regenerate automatically from other parts of the Corresponding 137 | Source. 138 | 139 | The Corresponding Source for a work in source code form is that 140 | same work. 141 | 142 | 2. Basic Permissions. 143 | 144 | All rights granted under this License are granted for the term of 145 | copyright on the Program, and are irrevocable provided the stated 146 | conditions are met. This License explicitly affirms your unlimited 147 | permission to run the unmodified Program. The output from running a 148 | covered work is covered by this License only if the output, given its 149 | content, constitutes a covered work. This License acknowledges your 150 | rights of fair use or other equivalent, as provided by copyright law. 151 | 152 | You may make, run and propagate covered works that you do not 153 | convey, without conditions so long as your license otherwise remains 154 | in force. You may convey covered works to others for the sole purpose 155 | of having them make modifications exclusively for you, or provide you 156 | with facilities for running those works, provided that you comply with 157 | the terms of this License in conveying all material for which you do 158 | not control copyright. Those thus making or running the covered works 159 | for you must do so exclusively on your behalf, under your direction 160 | and control, on terms that prohibit them from making any copies of 161 | your copyrighted material outside their relationship with you. 162 | 163 | Conveying under any other circumstances is permitted solely under 164 | the conditions stated below. Sublicensing is not allowed; section 10 165 | makes it unnecessary. 166 | 167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 168 | 169 | No covered work shall be deemed part of an effective technological 170 | measure under any applicable law fulfilling obligations under article 171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 172 | similar laws prohibiting or restricting circumvention of such 173 | measures. 174 | 175 | When you convey a covered work, you waive any legal power to forbid 176 | circumvention of technological measures to the extent such circumvention 177 | is effected by exercising rights under this License with respect to 178 | the covered work, and you disclaim any intention to limit operation or 179 | modification of the work as a means of enforcing, against the work's 180 | users, your or third parties' legal rights to forbid circumvention of 181 | technological measures. 182 | 183 | 4. Conveying Verbatim Copies. 184 | 185 | You may convey verbatim copies of the Program's source code as you 186 | receive it, in any medium, provided that you conspicuously and 187 | appropriately publish on each copy an appropriate copyright notice; 188 | keep intact all notices stating that this License and any 189 | non-permissive terms added in accord with section 7 apply to the code; 190 | keep intact all notices of the absence of any warranty; and give all 191 | recipients a copy of this License along with the Program. 192 | 193 | You may charge any price or no price for each copy that you convey, 194 | and you may offer support or warranty protection for a fee. 195 | 196 | 5. Conveying Modified Source Versions. 197 | 198 | You may convey a work based on the Program, or the modifications to 199 | produce it from the Program, in the form of source code under the 200 | terms of section 4, provided that you also meet all of these conditions: 201 | 202 | a) The work must carry prominent notices stating that you modified 203 | it, and giving a relevant date. 204 | 205 | b) The work must carry prominent notices stating that it is 206 | released under this License and any conditions added under section 207 | 7. This requirement modifies the requirement in section 4 to 208 | "keep intact all notices". 209 | 210 | c) You must license the entire work, as a whole, under this 211 | License to anyone who comes into possession of a copy. This 212 | License will therefore apply, along with any applicable section 7 213 | additional terms, to the whole of the work, and all its parts, 214 | regardless of how they are packaged. This License gives no 215 | permission to license the work in any other way, but it does not 216 | invalidate such permission if you have separately received it. 217 | 218 | d) If the work has interactive user interfaces, each must display 219 | Appropriate Legal Notices; however, if the Program has interactive 220 | interfaces that do not display Appropriate Legal Notices, your 221 | work need not make them do so. 222 | 223 | A compilation of a covered work with other separate and independent 224 | works, which are not by their nature extensions of the covered work, 225 | and which are not combined with it such as to form a larger program, 226 | in or on a volume of a storage or distribution medium, is called an 227 | "aggregate" if the compilation and its resulting copyright are not 228 | used to limit the access or legal rights of the compilation's users 229 | beyond what the individual works permit. Inclusion of a covered work 230 | in an aggregate does not cause this License to apply to the other 231 | parts of the aggregate. 232 | 233 | 6. Conveying Non-Source Forms. 234 | 235 | You may convey a covered work in object code form under the terms 236 | of sections 4 and 5, provided that you also convey the 237 | machine-readable Corresponding Source under the terms of this License, 238 | in one of these ways: 239 | 240 | a) Convey the object code in, or embodied in, a physical product 241 | (including a physical distribution medium), accompanied by the 242 | Corresponding Source fixed on a durable physical medium 243 | customarily used for software interchange. 244 | 245 | b) Convey the object code in, or embodied in, a physical product 246 | (including a physical distribution medium), accompanied by a 247 | written offer, valid for at least three years and valid for as 248 | long as you offer spare parts or customer support for that product 249 | model, to give anyone who possesses the object code either (1) a 250 | copy of the Corresponding Source for all the software in the 251 | product that is covered by this License, on a durable physical 252 | medium customarily used for software interchange, for a price no 253 | more than your reasonable cost of physically performing this 254 | conveying of source, or (2) access to copy the 255 | Corresponding Source from a network server at no charge. 256 | 257 | c) Convey individual copies of the object code with a copy of the 258 | written offer to provide the Corresponding Source. This 259 | alternative is allowed only occasionally and noncommercially, and 260 | only if you received the object code with such an offer, in accord 261 | with subsection 6b. 262 | 263 | d) Convey the object code by offering access from a designated 264 | place (gratis or for a charge), and offer equivalent access to the 265 | Corresponding Source in the same way through the same place at no 266 | further charge. You need not require recipients to copy the 267 | Corresponding Source along with the object code. If the place to 268 | copy the object code is a network server, the Corresponding Source 269 | may be on a different server (operated by you or a third party) 270 | that supports equivalent copying facilities, provided you maintain 271 | clear directions next to the object code saying where to find the 272 | Corresponding Source. Regardless of what server hosts the 273 | Corresponding Source, you remain obligated to ensure that it is 274 | available for as long as needed to satisfy these requirements. 275 | 276 | e) Convey the object code using peer-to-peer transmission, provided 277 | you inform other peers where the object code and Corresponding 278 | Source of the work are being offered to the general public at no 279 | charge under subsection 6d. 280 | 281 | A separable portion of the object code, whose source code is excluded 282 | from the Corresponding Source as a System Library, need not be 283 | included in conveying the object code work. 284 | 285 | A "User Product" is either (1) a "consumer product", which means any 286 | tangible personal property which is normally used for personal, family, 287 | or household purposes, or (2) anything designed or sold for incorporation 288 | into a dwelling. In determining whether a product is a consumer product, 289 | doubtful cases shall be resolved in favor of coverage. For a particular 290 | product received by a particular user, "normally used" refers to a 291 | typical or common use of that class of product, regardless of the status 292 | of the particular user or of the way in which the particular user 293 | actually uses, or expects or is expected to use, the product. A product 294 | is a consumer product regardless of whether the product has substantial 295 | commercial, industrial or non-consumer uses, unless such uses represent 296 | the only significant mode of use of the product. 297 | 298 | "Installation Information" for a User Product means any methods, 299 | procedures, authorization keys, or other information required to install 300 | and execute modified versions of a covered work in that User Product from 301 | a modified version of its Corresponding Source. The information must 302 | suffice to ensure that the continued functioning of the modified object 303 | code is in no case prevented or interfered with solely because 304 | modification has been made. 305 | 306 | If you convey an object code work under this section in, or with, or 307 | specifically for use in, a User Product, and the conveying occurs as 308 | part of a transaction in which the right of possession and use of the 309 | User Product is transferred to the recipient in perpetuity or for a 310 | fixed term (regardless of how the transaction is characterized), the 311 | Corresponding Source conveyed under this section must be accompanied 312 | by the Installation Information. But this requirement does not apply 313 | if neither you nor any third party retains the ability to install 314 | modified object code on the User Product (for example, the work has 315 | been installed in ROM). 316 | 317 | The requirement to provide Installation Information does not include a 318 | requirement to continue to provide support service, warranty, or updates 319 | for a work that has been modified or installed by the recipient, or for 320 | the User Product in which it has been modified or installed. Access to a 321 | network may be denied when the modification itself materially and 322 | adversely affects the operation of the network or violates the rules and 323 | protocols for communication across the network. 324 | 325 | Corresponding Source conveyed, and Installation Information provided, 326 | in accord with this section must be in a format that is publicly 327 | documented (and with an implementation available to the public in 328 | source code form), and must require no special password or key for 329 | unpacking, reading or copying. 330 | 331 | 7. Additional Terms. 332 | 333 | "Additional permissions" are terms that supplement the terms of this 334 | License by making exceptions from one or more of its conditions. 335 | Additional permissions that are applicable to the entire Program shall 336 | be treated as though they were included in this License, to the extent 337 | that they are valid under applicable law. If additional permissions 338 | apply only to part of the Program, that part may be used separately 339 | under those permissions, but the entire Program remains governed by 340 | this License without regard to the additional permissions. 341 | 342 | When you convey a copy of a covered work, you may at your option 343 | remove any additional permissions from that copy, or from any part of 344 | it. (Additional permissions may be written to require their own 345 | removal in certain cases when you modify the work.) You may place 346 | additional permissions on material, added by you to a covered work, 347 | for which you have or can give appropriate copyright permission. 348 | 349 | Notwithstanding any other provision of this License, for material you 350 | add to a covered work, you may (if authorized by the copyright holders of 351 | that material) supplement the terms of this License with terms: 352 | 353 | a) Disclaiming warranty or limiting liability differently from the 354 | terms of sections 15 and 16 of this License; or 355 | 356 | b) Requiring preservation of specified reasonable legal notices or 357 | author attributions in that material or in the Appropriate Legal 358 | Notices displayed by works containing it; or 359 | 360 | c) Prohibiting misrepresentation of the origin of that material, or 361 | requiring that modified versions of such material be marked in 362 | reasonable ways as different from the original version; or 363 | 364 | d) Limiting the use for publicity purposes of names of licensors or 365 | authors of the material; or 366 | 367 | e) Declining to grant rights under trademark law for use of some 368 | trade names, trademarks, or service marks; or 369 | 370 | f) Requiring indemnification of licensors and authors of that 371 | material by anyone who conveys the material (or modified versions of 372 | it) with contractual assumptions of liability to the recipient, for 373 | any liability that these contractual assumptions directly impose on 374 | those licensors and authors. 375 | 376 | All other non-permissive additional terms are considered "further 377 | restrictions" within the meaning of section 10. If the Program as you 378 | received it, or any part of it, contains a notice stating that it is 379 | governed by this License along with a term that is a further 380 | restriction, you may remove that term. If a license document contains 381 | a further restriction but permits relicensing or conveying under this 382 | License, you may add to a covered work material governed by the terms 383 | of that license document, provided that the further restriction does 384 | not survive such relicensing or conveying. 385 | 386 | If you add terms to a covered work in accord with this section, you 387 | must place, in the relevant source files, a statement of the 388 | additional terms that apply to those files, or a notice indicating 389 | where to find the applicable terms. 390 | 391 | Additional terms, permissive or non-permissive, may be stated in the 392 | form of a separately written license, or stated as exceptions; 393 | the above requirements apply either way. 394 | 395 | 8. Termination. 396 | 397 | You may not propagate or modify a covered work except as expressly 398 | provided under this License. Any attempt otherwise to propagate or 399 | modify it is void, and will automatically terminate your rights under 400 | this License (including any patent licenses granted under the third 401 | paragraph of section 11). 402 | 403 | However, if you cease all violation of this License, then your 404 | license from a particular copyright holder is reinstated (a) 405 | provisionally, unless and until the copyright holder explicitly and 406 | finally terminates your license, and (b) permanently, if the copyright 407 | holder fails to notify you of the violation by some reasonable means 408 | prior to 60 days after the cessation. 409 | 410 | Moreover, your license from a particular copyright holder is 411 | reinstated permanently if the copyright holder notifies you of the 412 | violation by some reasonable means, this is the first time you have 413 | received notice of violation of this License (for any work) from that 414 | copyright holder, and you cure the violation prior to 30 days after 415 | your receipt of the notice. 416 | 417 | Termination of your rights under this section does not terminate the 418 | licenses of parties who have received copies or rights from you under 419 | this License. If your rights have been terminated and not permanently 420 | reinstated, you do not qualify to receive new licenses for the same 421 | material under section 10. 422 | 423 | 9. Acceptance Not Required for Having Copies. 424 | 425 | You are not required to accept this License in order to receive or 426 | run a copy of the Program. Ancillary propagation of a covered work 427 | occurring solely as a consequence of using peer-to-peer transmission 428 | to receive a copy likewise does not require acceptance. However, 429 | nothing other than this License grants you permission to propagate or 430 | modify any covered work. These actions infringe copyright if you do 431 | not accept this License. Therefore, by modifying or propagating a 432 | covered work, you indicate your acceptance of this License to do so. 433 | 434 | 10. Automatic Licensing of Downstream Recipients. 435 | 436 | Each time you convey a covered work, the recipient automatically 437 | receives a license from the original licensors, to run, modify and 438 | propagate that work, subject to this License. You are not responsible 439 | for enforcing compliance by third parties with this License. 440 | 441 | An "entity transaction" is a transaction transferring control of an 442 | organization, or substantially all assets of one, or subdividing an 443 | organization, or merging organizations. If propagation of a covered 444 | work results from an entity transaction, each party to that 445 | transaction who receives a copy of the work also receives whatever 446 | licenses to the work the party's predecessor in interest had or could 447 | give under the previous paragraph, plus a right to possession of the 448 | Corresponding Source of the work from the predecessor in interest, if 449 | the predecessor has it or can get it with reasonable efforts. 450 | 451 | You may not impose any further restrictions on the exercise of the 452 | rights granted or affirmed under this License. For example, you may 453 | not impose a license fee, royalty, or other charge for exercise of 454 | rights granted under this License, and you may not initiate litigation 455 | (including a cross-claim or counterclaim in a lawsuit) alleging that 456 | any patent claim is infringed by making, using, selling, offering for 457 | sale, or importing the Program or any portion of it. 458 | 459 | 11. Patents. 460 | 461 | A "contributor" is a copyright holder who authorizes use under this 462 | License of the Program or a work on which the Program is based. The 463 | work thus licensed is called the contributor's "contributor version". 464 | 465 | A contributor's "essential patent claims" are all patent claims 466 | owned or controlled by the contributor, whether already acquired or 467 | hereafter acquired, that would be infringed by some manner, permitted 468 | by this License, of making, using, or selling its contributor version, 469 | but do not include claims that would be infringed only as a 470 | consequence of further modification of the contributor version. For 471 | purposes of this definition, "control" includes the right to grant 472 | patent sublicenses in a manner consistent with the requirements of 473 | this License. 474 | 475 | Each contributor grants you a non-exclusive, worldwide, royalty-free 476 | patent license under the contributor's essential patent claims, to 477 | make, use, sell, offer for sale, import and otherwise run, modify and 478 | propagate the contents of its contributor version. 479 | 480 | In the following three paragraphs, a "patent license" is any express 481 | agreement or commitment, however denominated, not to enforce a patent 482 | (such as an express permission to practice a patent or covenant not to 483 | sue for patent infringement). To "grant" such a patent license to a 484 | party means to make such an agreement or commitment not to enforce a 485 | patent against the party. 486 | 487 | If you convey a covered work, knowingly relying on a patent license, 488 | and the Corresponding Source of the work is not available for anyone 489 | to copy, free of charge and under the terms of this License, through a 490 | publicly available network server or other readily accessible means, 491 | then you must either (1) cause the Corresponding Source to be so 492 | available, or (2) arrange to deprive yourself of the benefit of the 493 | patent license for this particular work, or (3) arrange, in a manner 494 | consistent with the requirements of this License, to extend the patent 495 | license to downstream recipients. "Knowingly relying" means you have 496 | actual knowledge that, but for the patent license, your conveying the 497 | covered work in a country, or your recipient's use of the covered work 498 | in a country, would infringe one or more identifiable patents in that 499 | country that you have reason to believe are valid. 500 | 501 | If, pursuant to or in connection with a single transaction or 502 | arrangement, you convey, or propagate by procuring conveyance of, a 503 | covered work, and grant a patent license to some of the parties 504 | receiving the covered work authorizing them to use, propagate, modify 505 | or convey a specific copy of the covered work, then the patent license 506 | you grant is automatically extended to all recipients of the covered 507 | work and works based on it. 508 | 509 | A patent license is "discriminatory" if it does not include within 510 | the scope of its coverage, prohibits the exercise of, or is 511 | conditioned on the non-exercise of one or more of the rights that are 512 | specifically granted under this License. You may not convey a covered 513 | work if you are a party to an arrangement with a third party that is 514 | in the business of distributing software, under which you make payment 515 | to the third party based on the extent of your activity of conveying 516 | the work, and under which the third party grants, to any of the 517 | parties who would receive the covered work from you, a discriminatory 518 | patent license (a) in connection with copies of the covered work 519 | conveyed by you (or copies made from those copies), or (b) primarily 520 | for and in connection with specific products or compilations that 521 | contain the covered work, unless you entered into that arrangement, 522 | or that patent license was granted, prior to 28 March 2007. 523 | 524 | Nothing in this License shall be construed as excluding or limiting 525 | any implied license or other defenses to infringement that may 526 | otherwise be available to you under applicable patent law. 527 | 528 | 12. No Surrender of Others' Freedom. 529 | 530 | If conditions are imposed on you (whether by court order, agreement or 531 | otherwise) that contradict the conditions of this License, they do not 532 | excuse you from the conditions of this License. If you cannot convey a 533 | covered work so as to satisfy simultaneously your obligations under this 534 | License and any other pertinent obligations, then as a consequence you may 535 | not convey it at all. For example, if you agree to terms that obligate you 536 | to collect a royalty for further conveying from those to whom you convey 537 | the Program, the only way you could satisfy both those terms and this 538 | License would be to refrain entirely from conveying the Program. 539 | 540 | 13. Remote Network Interaction; Use with the GNU General Public License. 541 | 542 | Notwithstanding any other provision of this License, if you modify the 543 | Program, your modified version must prominently offer all users 544 | interacting with it remotely through a computer network (if your version 545 | supports such interaction) an opportunity to receive the Corresponding 546 | Source of your version by providing access to the Corresponding Source 547 | from a network server at no charge, through some standard or customary 548 | means of facilitating copying of software. This Corresponding Source 549 | shall include the Corresponding Source for any work covered by version 3 550 | of the GNU General Public License that is incorporated pursuant to the 551 | following paragraph. 552 | 553 | Notwithstanding any other provision of this License, you have 554 | permission to link or combine any covered work with a work licensed 555 | under version 3 of the GNU General Public License into a single 556 | combined work, and to convey the resulting work. The terms of this 557 | License will continue to apply to the part which is the covered work, 558 | but the work with which it is combined will remain governed by version 559 | 3 of the GNU General Public License. 560 | 561 | 14. Revised Versions of this License. 562 | 563 | The Free Software Foundation may publish revised and/or new versions of 564 | the GNU Affero General Public License from time to time. Such new versions 565 | will be similar in spirit to the present version, but may differ in detail to 566 | address new problems or concerns. 567 | 568 | Each version is given a distinguishing version number. If the 569 | Program specifies that a certain numbered version of the GNU Affero General 570 | Public License "or any later version" applies to it, you have the 571 | option of following the terms and conditions either of that numbered 572 | version or of any later version published by the Free Software 573 | Foundation. If the Program does not specify a version number of the 574 | GNU Affero General Public License, you may choose any version ever published 575 | by the Free Software Foundation. 576 | 577 | If the Program specifies that a proxy can decide which future 578 | versions of the GNU Affero General Public License can be used, that proxy's 579 | public statement of acceptance of a version permanently authorizes you 580 | to choose that version for the Program. 581 | 582 | Later license versions may give you additional or different 583 | permissions. However, no additional obligations are imposed on any 584 | author or copyright holder as a result of your choosing to follow a 585 | later version. 586 | 587 | 15. Disclaimer of Warranty. 588 | 589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 597 | 598 | 16. Limitation of Liability. 599 | 600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 608 | SUCH DAMAGES. 609 | 610 | 17. Interpretation of Sections 15 and 16. 611 | 612 | If the disclaimer of warranty and limitation of liability provided 613 | above cannot be given local legal effect according to their terms, 614 | reviewing courts shall apply local law that most closely approximates 615 | an absolute waiver of all civil liability in connection with the 616 | Program, unless a warranty or assumption of liability accompanies a 617 | copy of the Program in return for a fee. 618 | 619 | END OF TERMS AND CONDITIONS 620 | 621 | How to Apply These Terms to Your New Programs 622 | 623 | If you develop a new program, and you want it to be of the greatest 624 | possible use to the public, the best way to achieve this is to make it 625 | free software which everyone can redistribute and change under these terms. 626 | 627 | To do so, attach the following notices to the program. It is safest 628 | to attach them to the start of each source file to most effectively 629 | state the exclusion of warranty; and each file should have at least 630 | the "copyright" line and a pointer to where the full notice is found. 631 | 632 | 633 | Copyright (C) 634 | 635 | This program is free software: you can redistribute it and/or modify 636 | it under the terms of the GNU Affero General Public License as published 637 | by the Free Software Foundation, either version 3 of the License, or 638 | (at your option) any later version. 639 | 640 | This program is distributed in the hope that it will be useful, 641 | but WITHOUT ANY WARRANTY; without even the implied warranty of 642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 643 | GNU Affero General Public License for more details. 644 | 645 | You should have received a copy of the GNU Affero General Public License 646 | along with this program. If not, see . 647 | 648 | Also add information on how to contact you by electronic and paper mail. 649 | 650 | If your software can interact with users remotely through a computer 651 | network, you should also make sure that it provides a way for users to 652 | get its source. For example, if your program is a web application, its 653 | interface could display a "Source" link that leads users to an archive 654 | of the code. There are many ways you could offer source, and different 655 | solutions will be better for different programs; see section 13 for the 656 | specific requirements. 657 | 658 | You should also get your employer (if you work as a programmer) or school, 659 | if any, to sign a "copyright disclaimer" for the program, if necessary. 660 | For more information on this, and how to apply and follow the GNU AGPL, see 661 | . 662 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- 1 | PK 2 | A META-INF/PK 3 | Am�>=@?META-INF/MANIFEST.MF�M��LK-.� K-*��ϳR0�3����-�I�M�+I, 4 | �d��Z)�%��*�%��r�rPK 5 | Aorg/PK 6 | A org/gradle/PK 7 | Aorg/gradle/wrapper/PK 8 | A��f�� -org/gradle/wrapper/BootstrapMainStarter.class�V[WW���d`c@���7.���V��J� -lD��!�Nf���K�{����O]�} ���������>i���@��,֙3�����}���g�?p 9 | ?(�₂L�xK�E����2�(��U�L+!�`�b�ց�B�v�dde�(�¼�g�(��N����\n 10 | wKb�%��xW�{x_�ށe��+8�� �9gX�;�J$�I�@Ү�a��ji�;���I�h������.��U���N1]t�����\�N��m��^ft�ʺ��rg�!\[�c������6u��κ�a�}�a�/&��ѝ"E��F�A�C^�K���fc�N����P�y�r�w��+���8 㾅����\��H�(kOİ�!�'��� wW�C_���WL�w��i�6���ku{nh��wW��3z�S��B�.>��k�VEF���bX��^������'Z�k%CZ1��Ur���N� 9QЮJ)a����8���m���x���wU�(ɰT�(��@,G�Ȩ�pQUq�)eꙔ_��Yǒ�콋\T<�C�[�L�[�R�!>b��_[�C����P����]�G��h�o��y�X�}��s|��K|Eh��F��FSC�������� �{3�\�r��(��I�j4�v5�*�r�]�L |jW��i�� ��X� 11 | ����`Jŷ�N��=����] ���C�A�G �v-�6Jص榈�D��zL�7{���٢�!͞�r�+r7����R�E <�Zx����u�[43���"mc%GCk̯:\' 12 | v嫎p�ǚ��R�|���m�E_��:M�������a�`ZP�7��,m�I�h�D �}���l�/�^4����[ETԼ�1 G[JDjj\q.�d"���dB8��������n��MIw銐Ǟv<�$�+�CJ-@ې��F���<@�f�#��c���'�gxh �W���qZ#�p?NЪ� 13 | D��ԭ"-2f�'����a���r��r���5D��k�XC瘴%.հ3.E�v�����n��ʅ�����E�F�h.4L�{oĥ�{,�~C�HN�;�NZ�(��q���?�~\�a,@�m�Z���?�z�b7��(R$B�Ҵ ����K�4���2�>O��:S��?{��^#I?�s 14 | &���-������� 0�e�0N��Sg�g�*B��'�� G��a 񙑧�3R�t�G�N �j����cD��_I���<��\�?�j�נ��V��K� �4=J�O�� �th���XhMo3���N�iL��9�&Z7 M��ۖP6�( �K��8�2�$�6V]��S䡍G ���L�쉱S���M3dzĈ��`���b�a��EIB�.ò_�h��R�l����?R3�cdB�r��5�8�H���2CnH����61O�ƅ��� A/�N�4����J ����q f>=<\�5�,r}�+��\���!Ƽq�>D�.��r"� �'�Ot�L�ҹ#i�1՗~J���ņ������:�{�=� ��J[�z�����eRPK 20 | A5�<���!org/gradle/wrapper/Download.class�Y |\�Y���������N�X�i;�ˉK�d˒����v�� ~'����� ~_5�x�P5����/�� ��O��ςx_T�_R͟��� ޏ�T�_����u��o��[|E5WEio���G���6�z��/~��������j�;�#�g�&�KQ�[��5E����+}�G5����S�7T�j���o)�n�B��EL�0��_��YS��J�,b��I7IU]4�:�kb�RcH�"ՙRo�2O 21 | �rYa�J��*CV�Ɣ�)k Yg�� �d�)M�E��&�ɔ[M�͔ͦl1�vS��Ҡ6�fH�!M�+�p�θ�J9)A��M^�9��&�����+��9��{���С�hWoٺ�����h�zn,1�OPәL�<;� ��cJ������H��h�\�Qn"��J�kAu���Ç��E�N�H 22 | ē��N�m�=w�.�����u�I�18���!�MŒ A����p�T�;��ڧ��>���=ַ��;�%b�~AG�,6}1eې�י��uݱ�ӓ�q�{$�(�%G������8G�y�1��R*S�䒚}7�Y3֏&㱉��,L ����T��� '��5�XN����� �k���I�%��⎖`�ccJ5�K)+�d�Iy�DNVm�Z&��ˣδ�����̮�� ;N��n|���\V�N9� '�� �Hz|\eLř�HO�;J��Noy�Nb›d,�9֙L+!��c�"��W���ڮ)��H8�JU*P�L{�Usz��tڣ�{��1._Y��J�O�bH�!m�l7d�!;�o�wݘ`�_o[�O:$f��M�wة���xn+��F��G c�\9�+1�$���)g��C�Q]�7�ɬrR?�x�E� ǛLҗk��\g#� ��2f�>�� ���[��$�-���6�h� 25 | ��`�V����,#�o�?�UiA�{JT��)a�Zģ9���!pc�,*������|�a�5���!� c^�F l��-��v�b+V���؆ �B�+�cA��]6j3+t�Ӻ����G*Q9�z�����yU7P;��̢�:,�K�֥V�o�Z�۵l+�.'��W���xEd�Z��5gP�A�Ʀ�Y��ۘ���;���쒂Mu��Բ��Cڋ?̾��(��� �܄��ٯ��v�u�g��=0����S��Y�� 2X��kl 26 | �f��._�n�}�p��`mؗ��v��|�l7�h��`՞�=5a��`���1u�dy 27 | +?�M�[3�m��C[fq�˫jVV]��Ԭ����U�+�u��=ϡ��� mˠ�&:{�I �@H}�V����$�h ��+�2h~����� Z��0�� �Zn����/�����׽��N���u��u|U�!}/� 28 | ���}万�������Ќ؉�t�=�.F���G1������3����= K/� ��8��%��1�Wq��O� 8�/�,�������u���Y< ~��*�baD���R�Z��w�Gԝx�3q J�¹'�.���U��6�8{A�|?��D5u����WCk^�O�V�J�|J��K)��)U!�x�C���ή����h�_'����ɍk �7���3�5�~�x�@����d�.�%���IM� Q7iM� ] |�& �~�L��ܤ=e�-*S��������*�Ms�1ܘ�Nas�v��N���ߞY�u�P���Bl��ҥ�">H���9������M�����|/�ڛ(+�}O��I|7��9t������}h$w�A'�s��ؘ��t�Ctd 29 | ��s��=Ľy��_���ُ`: w��46�]cv��f�V��L&��P)q 30 | p�q��`�N4�gp$t������XOs�w�8� �����k��d�����~N� W6��28I��W��+���ҕa���n��ah8tJ�[^��&��$��OK�7�Fz��d��a��Ҭ��˓,�~�$K�Q�c,$寳��r�˷�ܷ1j����K�eFp�>��cԯ�E�� cOa��_?���+������M��I�:7Y 31 | �TJGo�\�H$h*�d0�;���HsGh��ԉ�i�=�7p �n]._x��o��LK6_�2��^-d�*}R��|����e�aL�Q�~��e^a��u}�[�O2��M4k}�9��rz~�BTb���v��ڞSچd�� �����O 4Zo�3�}�a?��0�$:�g��a�):\hfc�D�cl� 32 | �U�<��ԯ�!�t��GX}[Y}ʶ�Y�r�ȟґ��Ok�B��h�„��� !�*z�=?�ٍ_a/@�W��_ń�FU`\�_M��EN"�mPK 33 | Ay�L���1org/gradle/wrapper/DownloadProgressListener.classu�� 34 | �@E�+�jD��E�@ۖE�ER�I��#3c�[�>���4�v��9���������O�Ī.r%��J[��M DŽ�,��]���8��kߟ_�PU:�]�3a���G�����\�^�&a�t"-�E�eY����˛�8\3��K tЎBN��k؁�PK 35 | A!9|�� 3org/gradle/wrapper/ExclusiveFileAccessManager.class�W�sW�Y�ګu|i�V�MNZ*;��J�lB�N�K�Ǝ[��t-���v�j��S�B[(���P`x� 3�L�$x����0� �}�0��+9�%L=��s��ݿ����O�����t<�gZ��Y��jxNG_�pNGϨ×� �x^mME�SKA-E�H �1�� ::`��vI�b3lIŞDIG��qu���fxJ_�~O��c�u,�J ������ _��5���ɡ� #��� SgGF�� 36 | t�_2/�Y�t�S�g9���C�S�Mǟ1�h�t��DE@�v�]��;��.��"�,�� �2�|��@t�-R�m�r�jiNz��-�=�`�3�g�s��,jɎ��|v�3���.yf�,���]�X��e��BAV*�c�K���̀ 0� �ܬ��OU߲��)T=O:~vȴme��{]ԓs�d�W�䕲�-3�Q�d��E��!�C���q�] 0�E�(��;&f�*2�B5���?��^����}��虫\j�L����C���l��tGuZ��5�[" 37 | �Mn,�r�Q�������t�1��)�,,N��@L��5|C�75|K@g�dٷ�'�hʚwL��Q���tnk�}�2�ts��ҟ&J',�VXj�t��%syN�nE>]��o3��;6���lK�q�oF3�V�B�����>%l�W �!�8$`��� ������Dղ��3�"�x ���D]A��مE�U 38 | ��W����x���c�L�Q��V$��Cn�.��O#�&��A7zx� �N5@��T3��(����z��Y�4�}� ��] ҳ�4�?�E�vqݏ�<̏ ����L����N�p�8>K.���1��Dg�[A|�4n�kh�Lp�����S���ES�v\�c�����~]+蘭�vvR���5dw�������=�#r�<��\K��T�����8���lo�7�`.��Ր��S� 42 | W����ĮT� U4]����~�T��7��6���v����7�BZ ��H� 43 | ҫ@'�c ���Klϓ��3�1�����c�����DQDDwp>���P�z�p}���@8B gmγ*& _$W�� 44 | ��+�k��r�}�F�A?~��(��AZ��8�����:�ư�q���8� ӛ�"��؅Q�c��?� z5)��qj��sDP�h� h��F�9҈����u�>�c��~��iMȈvz5�HM���� ��� ��$?b�)n�I�P�$)S������ݳ��hѠǧB����<���q���0��.Ҷ���x��d�(���WW���w@�M�߉�߭5S<�� �a�<��u�.�˟�3��Gh�G�At�=��dl�٦@]�������ys����:�m��O� � ���8x4�?PK 45 | A��,y�-org/gradle/wrapper/GradleUserHomeLookup.class�S�N�@= $v��ԔK 46 | J)$���� E�`@"\�@��-�sc-��g��O�N�QM��} (1����#�j�� R�`�뛿̀i��m���P/�Q��WM:����;"��+) Q�g�����Ѱ?ѹZ>f\��z\P$ȦaX�a�if\�ǚl=C�pC��j�aa�!��@�!#v�@bÎ� ���=���2���1f�?����}d�����E�} +i�� ;�~*�aDigI��������}iJۄJX�׺��r ��M�t��ep���|7HX� H�L�Vq$9JW���sQZ�l��6o�Y)t�dDL��{:�&QΪb﹘�Md�U�ki���1;�e|N����!+��ym�->J��0C���K �g���@�㱈� ���!Ga�8�1wa�}c��W�y|��ͯ8&�|��~&k�ö)A�M� ��/�K2���+�*y�H(>�떄m�GM��������o��6�����->� ��.�'��*~��8�s*�����e�Hŏ� +\���6a�: �Ty�p�Os=8�H�F��q=ʬ1����s �.��؈�'�_L8Ǡ_����<�I���3�L��JƯU��U�;��ㆊ?�k�N慹VBYΖ?�Obߟe�E�_�7W��SƿT�����G�_��,�AO��DO"f��zf���^����T^�HE��h��a� �42�ք"Z<>F՜4̚�Oj��kN�F�&����kj��k7��a��Sz�R%�T,ĕ�����U�RIa�Ie����BA,�fS�?j� � 57 | ���,K�l?������1�V�t/_���Rb�Aw�s�@tO��Y��; ^6�ś͑DT�Ys���g���H�d��+hY�ƈ�]l�����x��f�:��ne���ӭ�����籄}�h�Y(lMuys ��Ĉ;B�j �ȇ���}R���@��������n^Go��yGFa0��T��e�v���n�q��q]�醶Y����Cni�*�i��knԖs��#��.���N3("�QUL͹�7��e��f����f�L���ν��d���}H5���&�3N�]�yE� �v~[镊j��ю�4�b�e�h5����i�� ���5��Pl���{��¹��YR�:�J�叶��G�`�ڗ�:�;ؔ�̃l`�a7�"\��7���5s���'/�T<�zu���*UF��I7L�s�Cq�JS�=~O����*J�|e���ڛ��$�g��\)�SXĝ��b��[���'���dKe�Lj���eY˓��������n��Mb���t�$V5*~�~ 59 | Ճ��)H}�}5)�<�5�~o 60 | ���v 61 | ��>�����q=�\KC(G=�aVa#�c:��؂�a+���c&��`7�E��V\`��a��1�=��c7����Y�$���J��g��(�A܍c�:��5��8�'b8t��(S��� 1�籍�Q�]�na�b8N�r$D�͛~:�!b-�o-9��`��.��Il�Ӥ Y���S1� U�O���F-u�`P �_w�F)�}��#�Ve��F�ߥ��:��\e�_@�3��4�2[�$6�o����%�Ǥ�5�+ nY�o�4��N���S�ؖ��$v$��;���v nHa�u�h�5%��~,D߭���;XT�;��R��zZ���]�EU0cv�IB�j�ˤ��c�T�TV2�F�V*$�!o��8�b�8K����C��B����0JeL�����v �ᥰz_Y-�� ('�I� �&�_x�(+��(�8V0�f�Tm��#�� 62 | ��0-fWZL�ډ^AQ)t�;�d\yN�l�'�PK 63 | A����"org/gradle/wrapper/IDownload.classE�� 64 | �0 ������ 65 | ^�b��* A�{���(���l|J�Tf $_����uX���! ���������n6�ml�a��{<��}��w����"�MxkC6Ge��ͤlL��a3�X1��V`�Ô�8r�W�ٻr� O6E��!�1��)�ʕ�ʕ����T�D ��r�S��4>#���6�0>׌q|^6_P�E�������p�t��We󀂯����U|C�7c�ķ�Ʒ����x��<�`F�#��uk��dtk���7-C���1���2����h�2Y���������kN=ӱG\��d^jd��J+�XƱ�����K9�δ��R9W�ZFꄫ�� ��ZQ���� O꛶l.N ��,�Υ�)`��&��� �y� �nYRn�i��n��K .��F��Y/�P�Qw� 68 | �{�,o}yڴ������'d��2,��k�yy1,O)���6�[z�`pz�'Y�����Ԛ�n̛�WC�� �VV���;�1��Ħuw�p��0��>�m9z���GA?j���C�|�8nX��ֹo�Ҕ�]����T�r��:�� ��&Z�==35��}�*xL��]=AA�WU���Ł�cFFBX6l�l�+�t�w�@ �:St]��R��X��ذSt3FpWZ9�R���gg,�@ ޤ�U���{v� [�U�6ټ�5�`���إa�O[��4��Wד�֢ie W��# O�4���LixZ����~��jxF6?�k?dz 69 | �hx� D���i���>�Yz���;�Œ�s�p^� ����~�5���5���� 70 | ~��w�«����3,Ó����qO���������u�Y�_�W 71 | 7 ����l��xE�^3�A�tx;�-�z��{h� y�7�7 ��o�w�z�,���� �Y2�H�+��B�2���=�u�q+'��Ԝ욋�#�2��{~^ loX���E�JȚӒ3����#鉯�|��G?Mo#"���.@=�<���]@��943����+ؔ��?��*a� ֬/�m�\r1ظrW� 4��>�ph��9�\=��%��W���������h[�]%\C�V����x�<ք֮����u=�.��HHN>DV�%S^%W� G�A�w�'�`�X��"��D/nC8H�i1��ų8 �ǐx��uob�g�,��[�AfA����v��Ի���?���фx��8"N���Y��D"�b��� 74 | �\#��(���Wn��� 75 | Ԗ=�]xB���b��� 76 | ����c 77 | :�&��(��Z�2%�R)?E��*a㙆��e�U3l?������ /���Q�R��\�PK 78 | AT�,-t+ org/gradle/wrapper/Install.class�Y |T��?'�����! ��� ��$H4 HX��e�%�%μ! �j-Vk��[-Zתh�UP �k�Zܪ��M��֪����������d� �#��w�s��?˽�����M�y�4#�)�(iFg�ɑf�|�uS!�*<�F��cnrs������� G�n��+�k.�$�J3G��nj�- 84 | knnf�4~7���MM���y�J3��mp�y.�*l�9�a.��vy�//����4)�M&�6֣UA-�cL������n��m\��v�����6��\��)����M�3Ac<�4:(�W� *�-t� �f�wL-O� 85 | ;+�su �b�_f����@�|C����.�b 86 | �Y0���4�� �R��{lmz'�W K���Bp������GFWy=� VZ��!+[�蹩=j��qtu-�Q�����z�����.X_34�lljq�4~W��Ub�FC�m���M�)|���V�> �U7*���z4�ҕ��5��5k��C����t�W�1_4�n���D!�(kƃ�uS��BW{����.���� 87 | _���,��Yզ����n� �2|L��JȲ�����4Q��ģ>���0��]���q-�A:of��K��� �h kF<����Cd��c�Q� 8���z4���p��� N��k|��B��_�k~+� $n� hn�" i�aN��@���8Me�����だE�ۙ� � #���J��┕��al��C��S�VX ��p�* 88 | ia����h«���m��� ������5h�8ۯu �� ��D%7�XƗ��٢:�;fcF��z��o@��]&�=lD�R1����I52"A 89 | �H��$�Ui��T@�}^��p<����d���%[(ۓ�/o��&� 90 | _��w�!�i�J FLe�Tf�,�As6\��hѭ�ڝ>k�,����+��N8�duΒf�4s���-[eN�ɭ2&�Tu�$4G-9qB��O���c�:F �5Oh���s�ϗ�g�� �Y�s�wY �,>as��M����V7��ۂ���W&�Tz��Q�zW�^zX���Tz��P���J�7Uz�R�r� 91 | �P�)���ҷ�2�v���U�_��5|������*��oP�G|��х�>[��T�F� "�K�n\YY�jE�������4G�ʷ�*�Ʒ�|��%s٠�*��w����Q�^��4�����U�g�rA��5�驘ʹ�tSoz=������G��71�(? -�j�.L�"�F$��yk��kD�-�^��8�坝��U�R��U��[�����T���0m:*��c�"� }5T���t+ݦ�C�O�nh���j*�3�7����C���O�燛͌sBZ��Mۦ{�u=�5�P��moG�h+��y4�5�4��ܞ�m�F����B�]��������+E�7�r�"# �%^- 92 | �A 1�K,��D#!��5����*��D0ozA�E�T�͏凓��+U� Y�)���[�i(��V�Eؐ�{č��|�*ܫ��b�G��u���F�. �*?Jo��?����$lF� ��́p��>O!;���d���"(El ��W��PyZ�g�Y�)H����1=CF��T~�%�K���R��/���B����i�,�_�iS���R�e�ͯ�������!����H<�7��(�#Y�z���QoK$Zᕨ����k��꠮�N^9����p�@� �-l���1G`�p�u��w%+ ��S�u~C�ߩ�{����?a��*�T~��R���6 93 | Ό%�J��;*�+� �5i�!u���I����c�`�P��O��Cb��ŎW��/�?�T��oG��|l��vrB���V6�"����+ L�]�2��6������\<&C7��._A���;�A-�ˌ��r�#X4/R 95 | �ĸa�Xu�� ��;��Wd�bd��‘0� %Ը�  96 | f����&����th�a�DZ�K o�g>��~c��WB����3�}��f��I�O^���1�t�� WO~ �V�b��I,���\"y/�9��^�%"�V Y�(��f��Iq��(qZn��5�~_IXl��H�$��=��d�CAa�w�j9�֚�s1 0�<�x;4�M��G�zMP�����i$>#�� 97 | �eݧ9C[�{]O?��\���:��hxu��ђ�Q[��h;��^T�����}�,*�G#��;|�r����^K'���4���6���H�E�����o��o�U��&|���}�z����&ϥ��4�ͨ���h^FW�=�nʩp�cL���=�^�T�qz%ť=��M����Y�@����D*�L>WZ���\JW�5��A��Z�T�4���~mX[D?���l"休n¬i4�~�7'݌�v��kp���� ���ȥ9������&4������Q���‘kϺ�&�z�4i�=�~K�'%�-BN���nI7M���S�z�[���r]�;h�h��8s]s/�O'Ud{��i��6�QF�ꦓ7x难a��w���Q�)_�b3ղ�F���ϥ����j4��i&��(?�B�PG�N��h mŌ �Bt>E� }Q�Ta �շCI�tͧ;�'��Sj���Xu� 匤m���?9�{��A�)��.Ů����s)��~3�:����4�B��S����B{��|A���T>B3�����Ƀ�Pc�1AgCL�h(=@3f�K3�r 98 | �Pa���q?�!��h �ɭ����öT�E ���0ׁ�bv�_�.�*xh�o4���`b�ͷ}PbV��n�r��W5'=�#jȦ�#4]��S��K'D| :&jJ�����*�����̺��R�7��QLI�������(mlrz�"Y�c/�Dη�{R�)2�| 6�A�`Ա�(Ĕ�߹x��Y����\iz�}*=�X���M��II_C���K�ē�̷�L��ߌo�oL��qz"!�x�W��B8�)1�xT4�Z`�-p���� oi�cN�����;I-�8В,ڰ��x���zSL�;�a���\�����~@��`\�N��}J�ʄ-]�/�JY��9��j"��Ф�|P�'J��)~� _��������c�l��NE ��KyM�9K{�zn�eM�G��ɖ�ͩ�9a������� 99 | �M������V6�Rm�|��Cg�P�D�z(��B �j�p=My%g��w�����ڀx$�dM�.�d�]�WD�����6H�� �\!b��KM�xN��n�� �n��M��`�f�쁄�����h>��u ��Kyh�)���Aʺ3��vS��rD� P�ڃȴQ�!���nh�p����`��0�à�ps���i�vr�Y�%t���934��d: ����z�^��+�Lz���+0�e�5���Y_�WL8N�00)��c�9��6�r����+iy��Th�B�)�R�z�#4}}���'-W�� �� /���Do×ẍ́�-�I�K���+��w��u'9�m�S�c��$X��b�0Q�8�BB �F��L��]��:^8Ȓ���"x.,6=� ��z���%�M'��,�<��!���a۽�&ކ���Y�f� 100 | ��al�<�� �ŋp������9О�8��c��Obª��̠7�-S��);,�?�v���s���<�3ɒ�6��el.nuM/�Jfn�`��p�d�^�2 �(���D��C�n��/^�v8��M�z(�C1�*�tg�����ᖫm�(���N6�N���q=�BnB����(�� �Kw���R 101 | l��qC5�� 102 | �1�ކ�ޡS!�2z�����?���>DF��>F,��>��>A��S�k���t6��� 103 | �mBa�� ���>�;Cg)e_�V�t�W�˚�S~D�i�)��(�>V���+�٤��\FЭ�d�|F�Y}��#5��P,��[$3E#��'�+�)nF��5�eWCq)ʭ���hDI�Ylu�����B��֟�\��h���ST{�Fŋ�K��@ �)M�c�=�&���1��S͢�����������!�#��=B����(v�4�t V����b�pWY�4��h�൦�g ���10+�D*w��0n9p9�2�!�83i՚`���/�/�b�q-�|N,�H,�Y�e^m$gJ*�%�d�-���cgGBͫ� �.��۞����͕��%�pqA�V��b���4� 104 | �2�3+�6_nΛ�� �p6�3)�3�>�2(���|VQ�J��B������G��PK 105 | A�:�o4org/gradle/wrapper/Logger.class��ko�`���Unc��@�&s*]7��11$KH�`�w�ʓ�����_�O�Fg� ?��x�R�5K���r��w.��??h�G �b���1TP����4w��+ͶU���]����.;`XxfX���!R9���Ӳ��!�1,�j<8�>?4�d�ck��qǐ{�0�#�b�vtUwx�����Q;�� ��6m�!W���\5���]�1,�)��@�F\�s ��˵w/��'.Hq�ϰ3��:�NW�����fu���-Ce"��!���l�U�#�;��m"x�*�@o���b�w��=C���j[�$�B#�� 106 | �%q�c���I![3�̔��Jg���X�&��ov�HIFi� � 108 | Q��V�(�Iؔ��)r�� /�,��*�������ꊧP�*qw(�P�&n�_ݖ7ۛPK 109 | Aon�`8org/gradle/wrapper/PathAssembler$LocalDistribution.class�R[KA��f���V㪽�K�>���E��R�P���C�&ɐL\w�d��� B���J�LB1V}�3���������'�}ḷ�%xX3�Kc^�x�B��j�W}�B�'�E���H%���t�4�˻j������t'�h�Nd|�E�/u�E���` Ϛ�Ԍ�>�T� ����i��h��dmIXl�TϚR $���%����'I�%,��!�ת9�U��Oi*�A"��[�͔���~[ؑ�ݔ]O��uw%�㭚����P��8�H� .@ ����\s>� �����X)�H;��fO�rB�fVY�5 U���B�����e#�Vx�x�v��.�|�D�#Pt '����^s����azO�1��HP�L4�b��g8�z�ձ��aXW�d��m��� 110 | Wi<��vt0n��&<}��_>v���������DPK 111 | AJ��[&org/gradle/wrapper/PathAssembler.class�VicW=cKYǎb'�c�1�,� 4@��5Qk��[q��[yy��F� e)��})P(��C�]h�P��ob;wf,ٮL�zᄃ��9wy��?���?���#r-�c=�#�nȐ�aC�%�YU<A9ٱE*���\�@�Mپ%æ����|R���0>���t|V�gU|N��Gp_�ᶊ�T<�#��Ka|Y��"�W���D���o��M�� a|;��ໂ�b� ��r�E/)8:]X��fɱ�ղc,Zڲ {"��JFI���sc��S+��Ss+�f3S+� s陋 112 | �����z*�[��< X�Qm��薳��ˆ�#��f��X��:���l�X,��†hxf�B�a3o�D�A�2� 113 | ��K 114 | �,�ڧM˘)o�����7_�/�)k3ଛd�?]�s)*u�֋E�N]֝�1z�AM�@G����=g8��od�1o����\��Ewt�mQ�p���^+ 115 | �i� ����]�Ҭ'�څݰ��*p�KW̢���[��.�l�y�l�/�uJ��'����� �T�sƤ�3J��>O�d��m��Je��M���#��tu\�B��X��\3�~|B%��v#��Bi����Mcj�1�����FKat�4c�W��~��pR�s�CB �]���զ�"�@�Dhw�Is�x��" 9���B�^3d�ſ��F䄆Q<���8��&��񄆏cVCӼ�{-k�^Ѱ�5��,��f>k�~,:?�O�����j?�� �~�W�}�E/6~���f0ˋ��|@ū~��j�~�����N��m���\�r��P��(�b[輦�X��+��Ε-��0���;Q(�1����Y�1�*���W*#b��t��_�;�h���w.�v�*�8�35��_Y~3�]-���dM[�v$A���U*�|��3K��u�*�"ߎ�3��׍5g�ּ_����������z�@�wk�3ް�*��$/PVV��;��~�Is 116 | �>�>ГZ��ۘ��_x�v������7@�'�O+��D�}�����������v�JC ��Yݡ�`��0 117 | e}�P<��t�� 3�h���; �v�4@��V>�$�56g�����K����E��Ӎq���U`<]��������r�J����]`���C�,������x���\5a���Y'�c��{"LJ�z?g�s0Q��z�c�3Ї��G(i�>�1�b`�7�05E7"�;h�[9BZ�wU�4[��Z:�i��DZBb����I�|;�����@&1TEp&1��"t>�uY� 118 | WѲ��r�\i�E�p�p�������]ݣ�t��t]i�~(��cˉ�`w����;=q�ӕA�#������a׵K�k�1��V� .2M@�C��e|������y�4�,�ތ�؏`�e���U�8M�����^g2z����z_F0��l����mNQ׳G��i�d�Y�K�;[C�IJ��R� 119 | �������%�>�<)6{��2C��� }�� g:Ɔ���V��K9#���]Q۶��͔nv�-m��ν�v^g-�*6`Ja���#Y��" GAN� l�����-|,�����g+[� *�Dŧ�L�縥� |��+|��|+�Xyvy�)��'�1Mn�Bʶ6�w{/(���X,��(~> Wٹ�## I���=���(�D���WF��$v t�$�0;��/���~�*�x�B�D�V�`� 122 | -n��|/�#�����)�����y�e�Ǥ2FIi��&�^�ʫ,=A��5��ٶ����T�m�M�fRص/}6��-Ʒ�bU �$e�g���RevX�|�3%���_ ๡~�cg5h�O�W�� -a�������.����5�T ���c��O��_� �����{�L����������P;� e���3�y��؆:�J�{�3�P�w�@����y42ES��p�~Gw�"03��V�;�L�M`���q��=��4�����/��Z��>�u����`i��N�]x�G7Y� κc�A=�#7?������ �I4�lv1�4��$ Ĩn��q��R!9K�M�-�z���9�Bԯr���W�)�5�"� �,����9z|�~�_=/����!�~�L�0���8�WI�H�-_���{��M 123 | F1�W�U>�� 124 | �=��������Sp�L<`��ݖ_b�qW��PK 125 | A�=��?-org/gradle/wrapper/WrapperConfiguration.class��mOA�g����JK�|i� 126 | 127 | " HULCߐ-��H����&~*M$&�����3w �e��&3�3�������_���:����a�`@E�G xL�<�2O�<%������xN�8m��P��k����3��5�� �QO��M��5�)����!�Bw�~�+� ��1�sM�(�/;��0�/�w�^����9���sܰ��� 128 | �n����Z�d,8t|�Z�kZM��l��ONl�ڍ�����iv,.�s�m���ns�� =�N��N8�u� ѽ���q$&�L*A��=HL)���BCO*A4dF r_ �� s���� 129 | �)%Ƞ 2�)�Ae�E�,�� ��$!���X� ��yw� ��y�%^}9�����3� 2�y~��Oȸ�`;���)H��^V0�YW��^�а�;98��14���724�3��Ot K��Nj�-;ޞ�-#;�[��N3����}H�t �e��]�rbb��Aqy1yp�Ȗm�G�C���N�$��*=� 132 | 8%g�9ݲ =/a��z�62��9����u�Ȑ� N�l�=qԤ��1.aC�i���[Z:������k?�̝��`i�af�Rݘi���z��oX4�֔���r��!v��S�F`�N3M�-�1�z_arT��Q�5�c���!�2x��ݮ\�)��&* ����ԉ^-�ޫ�cd {���Z��n�! ]��$E�锞s=�' r|˝��4g�9���yJ��� Y��E� ���n� ts@�f�J�BU�(E�2��DK����2t!cj�'-BF�Y�&�v����\�v�w�����d�L��m�z���^B<��d�� �)G�Go..?�n.�LƗ�a�6��z5�K�l�q 133 | h�8Y[�#��0H M�(aɨ�-��W 134 | ��vМ$����`Pm��ެ�?}U�b��4F��s�N����V���\;��/T��,P���(�H�dHW)�(�M��5�yb-٫$E;����"6� ���v� 135 | o�J�V�;�6w����T �$گ���-�T|ߡ�]�y����I�XjZ]�"%��)Y�6�>�6i�5�~��g#�M ��;����{,�5�;����U�kUD� 136 | �u=��*���$$�)�-���^Q��I?dIe ͞P�#��1���F/Q�0��'�i?e6�!#��(莄�1��e�L�%�|�%y��,d��Kܢ"�|j��¡�S�Rq�m�5��U�;^�G�Q�˚h�&��}#Y܎I��7w<}�E�A��'�L�QQ�W�M��U�����ό�D��2�� }ʉx>���1COG���)7r��a�W��T��N{�R�ӓ�|88a��������AXTY����oe݂zfu����y������tR��{���:���v��:�Z��|`G�_8檫x�8󨊣����~̕��7�:��+x��@��-I 137 | �:b�qJ޻q(�Kq6�۷�b��j &�������};dm�?J�p�E����)�@a ڦ��ŕf�hr%��Q���2&��x�g�lL�->lD�����M6�uF�g����ºߏ� 138 | C���!̣B�h�^�G��Ю 139 | �h�ϳ_F��~�;=�U����7Ӿ˳_�0�kZ��c��z8��Ivz���v����0ixUñp�,sϢf���a\���s oе(�C��� B�b�j��J�%���%�@����,,V.�Z�X@3#�8����ꚑ�RM�`:B���B�N�c�X@� x�e,��^F8���8isO�[�`I�QfQ?��b^�� �Ϣa��� 140 | �I��t�V9gw��"3X�6;�kc�s��9['��_@c�p�� qvC�,bW/��<�guЁE4n"k�����XB���e�(�ۉr�}��NLb�n�����<�� ��pa��Kq��K���0 V�HI�8C��K���?RM��Q%ӿV��tʯ<�Z�0�hn!��{ȣ��9o(g.�nmt��rg���RH�"2���� �L��D�r� 141 | �.<�7�^�Mҫh���7�.@�#�}���� "��l�%�4�-��p��Xn�Ŷ���%�PG 142 | �2k����Yu� 143 | �2�&"[�rۇ����[g��~;/@��M��d�客��T��P, Ia�UOs#�M�\�#"t[�f8�80���HyCT�!���Hs�����c��/����օ�T�UY��<��0ý�������������8��*C9����ݻm�ʌ=�HN@N��3XL�̈[�[�\ mRH # SdL9�\����ťl� 9O��C(�.�H']��T� ��!ٞ ތīS����]��h�DL��yW�!p 5 ���k�N�<��X�zZ*%q3a�0LQwx�|q�,8��x����?��cKQ���.-�.��"�c#�Lg�d 144 | �_EXƙ`-q�-z3Ai̷�D#�7�6������^��=n*����"�-����PK 145 | A��_#gradle-wrapper-classpath.properties+(��JM.)�M/JL�I�M���**�+��M�PK 146 | Aorg/gradle/cli/PK 147 | A��?�<S1org/gradle/cli/AbstractCommandLineConverter.class�T]oA= ���"��~C?��R*O��h4!����aY�m`� C��ߢ/4����2��P���a��9{�s���?�PF�@;:v D�c@���{xY9y�x��\Yc�fs� ڑ߱V�g{m[�x�KH��[�{ʅ�'�&?��b�N��ӵKV�-��)�%��^�{������m!mQaظ������|�j�U��n���l㌟�R�{N�����}f[�� C�� ���-��k��ږ�=,ȍ��؂ak^���߫�^t�� ֔���-J��_,�/]���c��t�ˡ�+;X���r��C�uVQ CW� u�h�Ca�oܠ������1a�6C���2Qľ�L��K�� &�!9��a{ Q�23Qu� {�'�M���~rՐ���3|i153 �mn�Devf���߆J����~-C�H�;"d�9�����edc� ��Dq�ָSX��`I�w/!)��:�Fy�7���_�|�@�8_A� #��F��VX! �K`���R~�;�x��)�>=�N�Rnp���؜�c�h��⟐��ϔ�4=c/�-e��PK 148 | A׃��X� 149 | ;org/gradle/cli/AbstractPropertiesCommandLineConverter.class�V[WU�N2��0� H��Ԅ��KK�IQJ�������;L�0f���O��Z��Z_�t������A��}N.i�2Y9��}���;�v���O�6�Q0��e|�`�|��`w,�'?�� 150 | ��H����` �=�� 151 | V���>�B��x�����&c��.cC� ��i���?]c���З1-c���i8��"qB[׊k�cr�Ɣ�m�e����B��h���Ћfb~��M�V�d8�i� �ޞf����'��$ 152 | F]�p�䙶�0�fv�}-QԬB"�9�U ёѻ���E#�0�f���f�[��-�Pv�T�4��V5�%\���X3L�X����QgIW����W]�p��0�?���:���ĒVJFO���MA`i 153 | Үq�����A�1\W@ 154 | ��\�A܊�A)5"ɓ�4����8,��F�h�J+g� ^�z��KŽ��a�@7��e<��f͂�y"�߾�;D='���+�;��%��,��W��J� /G�d��L�Xg<�m�x# ���x �*&0.�Ko '�+�A�|g��<ߡo�(`[��b�*��Sa�����������C���%M�U�4�ܹz��%�LEu|t��g�1qBu�)�� �k$1���� 155 | 5����xE;i1g��Yu[s밨��D:2�KZM�u6�?Al��T'�[�'\�L�z ��o�B��E�1]^����.���&�z6�K�Z6<��S+Y�h~�u.�V�8X�b��u���2��i�t�e��d��N�۾��H;�4A��?2/y/���j���~���43�1���ˀ$� ��<�g�yWjFK$��j,� � �t��D��� �� �'R��k���$G �}/a�N�ƫ֪�j�~�����DH���AR����� ͹?��� 156 | �#�0,_;���iq��9|��)�[A�l �q"��0���%�T���q�Զ��9��N����R�7��3�w��o��="\�� � b��j��kD�����Q0����-��#Ku�s�u��Q��Ā�ٿ���c�c�ں)Q��=��[��tx�V�p�2�?�`�'g[��:��YMᶘ��PK 157 | A}��yGK1org/gradle/cli/CommandLineArgumentException.class���J1�O�3���Zm+���U�V 158 | " 159 | ��–��i�Ff�̨������$-U�fq�{r�wO�����34K(`˄mu � ����=}�^DE��S�E�=.�T}.�m���Q���/ ��&���t��_�� G� "�]�8�bl *�b&ҫ�=�\�.��$����rA�^��2�(�d�[�ŀf�&՗V��2S���o�/c�PF� ��?^E��5�.)���-��/��1ttu��yN�N�3y��+:���ԕ;XէƬJ�k�⠌u�0�ʜu�g���;�S�~��tӾ���0w3�*6��M�]�PK 160 | A����g)org/gradle/cli/CommandLineConverter.class�QMK�@}���ԯ�'�"4 161 | F<6� EQ($xߦ�%��vS��<��Q�6�L 162 | ]Xv�;����߯o�8w�upJp�L-�6�~/���S���b�f�%�u<� �*D�<.�id���n$�b&לpW'<(a��R�`�q��Kx��l�r?I�����OF�l��$�j�ήw����vRm_U�%J��������vJQ��?���_��F�%p}�b.�;o���-7ۉZ�3��fSm���i�M�l�g����pl��~Qqk*[9�a��#��PK 163 | ASf 164 | �g&org/gradle/cli/CommandLineOption.class�V[wUݓ��4�^��i�\�"iB�����Z.�^����dL��0�p�w������ .�UY�����.���d:�ܤˇ��s�����N��~����&�m8'�|�kE�Zqo �މ�.E� 165 | .�A��A��w�h/�� 166 | iEHzWœ���ª8ɉ�C^ܾ&KFA�-A6�n� 167 | :�����T�֍Ԝf�Jh�ӳ9�.Z��ݕ�c���沩9��s��ü��V������[y^���7�B�*�����f$�Җ�8#!Z /!����e��J��D���Y�/�����j�L+��Zj��RiCO����j.3��YLj�o8��--��ZFB˘����bq��I[��eC�_�73�Haf��˚5/΄�fZ5TKkw��t� �+:3���NU�dz-�������k����j�괚w��(ʸ.!�a��pV�g�)�)�_C���{ �����c.[$ �k�ҿ�l��'贡�{�RS|~2�v�?����x+��bi����zkN�u#�Y� j>��2�Z��fY�T���R�Q���xu��Wx8R��� E�1�0o���g�m���74���Ӂr_q9��\�WO�w��/j�h��z"#�����z�,Zi�.Z��FkP�*؏$}��i��B+ 168 | �c��� 169 | na��]b���ᶂ�1��|(��� 2>R�1>a�ʠSz���5 ���xA�$>U�D��P~�.*8�� 170 | ����%>Ä��������;���g������+Z��Ekߌ�M' 171 | g�6-�0 �:� �NV�ϟ=!!�{��LX`�e2zF�I���3U�\�%�N��e5CC]�Z]AၺmѸYC�Y�b�Z.+���&%�����b �`��)�s�4 �"((��{�j^��<�����Q�*�>\����{�#�������%��N���׃\��&9�I<��x����hz�`�G4?DKyGN�!$az�Z%��V 172 | a �"2�� ��5(,�{����� !�۹��=��V�����$�Ij�H���a�D���/�i;��a� 173 | �������xʐ�d��8$���TŘf�+q�Y�����r�*6�:^��]�%�׸wG\�788ˉ�H��ir`��v?/'��얪�����c�Gaf�;B'��F��|v�v��rȵ#�x=��zC�8Pc.���}�vr�c���� JȐ�i1!�h�����]�n��G��S�����������0��� �.�j�5"GO���� �����n��J0���.b4��-��Ν�л�n=��w�"`9UZ��;��;:"@��������x°v.U�kʮ�ۤXRbI3D��� -����k�|Z*tzD���B!4q< b�AL�C�[j]y���Ɩ~D=�' 180 | �*� �f��] L�r����s 181 | �Z��(ܚK���L=VML��̖l��c:N�>}�P�WщE�(Q�Ɋ����$Uio���馥�U��1�����Q>1r˫�b��-gq���:ڻ�f�9�c�Щ�y���{բ�:��9��OR/������iP�F��Fz�PH 4������m�i��^ڃ��'x������A3� B�&P�&`Sh!^ �H�p�)�L�c�N�����G{&����ſ�ƃ精����.�R�$�(�A��.�%����R,N�`���~�vX��lMl�,���݉:������� A�&�CA'��� ��7"�!��Yr8GR��� �� � 182 | (6^f����"pfSQ;��!n�����e�G�l=�Z�s���> wD�O7R�x��0D��!�o)��<��=��PK 183 | A�D��&3org/gradle/cli/CommandLineParser$AfterOptions.class��mOA��{-�r-�� >W�+p��"�D�!$M�Fxa��g9�����.��D%����2�^�rҒc������ffwn��׷fqۀ�Qi�u�4��h �IS�tL�a�T�z��j�6�Pɓ5�&yյ���XO�l�ե}���G8�]���x��2Crɫ<� +��M[>�.YN�� 184 | w�\:J�I�i0d��m���xB��B�r�卆M�u0r$f����u�~�^����F����+��[.5k՗��-�o0$�����z<A�e�k�ͨ��S �b���V���g<��?�d��`�Sm��t\cX>��cg�>�v��@]7|�- ƪ�-+�CG��@�ϔ�0� �j��E7 7�c�k��މW7xؒ�1��f�0�0y�d�8��3��5��?U�Ѷ=� 185 | q~ :5�h�h�k�mq�����_�2w��C^�2 186 | �\�� �G@�I]�T�����G�i4gL��,~Ab�T �4�"A;�����`ȑm���:C�٤��3q�����hb�oPK 187 | A����� <org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.class�V�R�F���#�ĸ����5|�ܒ`�$�[qpZ'�&��Bql9#�M^��зHg�!)Ӥ�:ӷ�߾C;=+9`b�L&3���=��o?�=:��� sx c�'葑�"GN��%Y\� 188 | �r|$�+�� �8�p�㦌[�D��8�2�X�(p�a跿3���|ݪ�+��U��Z�H��k5����~G���#��a�������y� ���`�V�[:�)aXo�ʺuW-W���5���Z�X�����Y��-��a5�b���ɠ�2M�Z����N�EO�����Am�E�γ0 �͢�Zv�m�M��ݹ�6m�9��~����YIm�0+�N˔7�����Z!]�?�vuO"�w����t����IUh�8*�\��Xk۷�G���(2l����>¬�{�'3�1+s �^�c�����QΈ���L �����a��ː:����{ 189 | 6�9� 190 | J�d�z��>�d�xF�gn���f��Q���.�n��O�O�_<�܁�'Z��=O�=6�>�� ����6L{��(��3�jK6�q���/�G�� ��H����������}���4"��Y�|�G�w!�� � �<��@)|R� �J�T�B;|��pI���^!�y�J�= Nt3D5�Q��[B�]F�]��qš��ۣ�c�D[̦h�C��#I>GI���uM;����� 191 | �D�m�@X�F�������ٜ8�B�sj�O;�9��l�/t��q иBjQ�|�,1�%�Mg���yF� 192 |  ��U�^9�ۄ������W4~-��PK 193 | A�*�ZM�Forg/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.class�S]OA=w��P�Rˇ�"�UhAx1���ML�ԏ������v��n�����/��`|������Ek�C���9��{Ng?���&6 �Q)`�,9�5�=K&�l�fc��*!��|m2��]B�t%a��|�|�ߓzG�y�)����v�V�&��+�"�M?�~�"u$ۑV~���Q� N���nx" %��6m܏�#�nԍ�֛uB�_Є���"�[�f)����ְ�m�*����ȧ�H�j�f�p��\�p �ߩLb������s� ��E����"L��d'h��@Kӟ0}��1/d� MXE�n���qsYX�'>9|r9�\�=�w��P�5o���y�$L�̑��i�ft�cye������}������l�y:E����1k-�LY�n3q�2����\�u�M&:���c�#����2���Oȭ���㿈(&�J`�R�����؁�p6k�0��,���X��\����*w��M/��PK 194 | A�2 �=org/gradle/cli/CommandLineParser$KnownOptionParserState.class�X�w���d��l�FMH�y��bژ�6 6���;n63qf6 ��Zm��Qj��jikR�U��������O������n�]������~��u�ϻ�����NL������!��!�1���e���LPB2�a F�� A�C�a�Æ�D�0��1 �BX�'�x*�<�3x�O� a7~ʄ? ��y���� �E>�%�����^b֗%�"�U�qt��w,�HHx�0;gah�k�ՓTm[��#��hOXj<��ǒz{�9<��nh�T�֬���w �zn���C��,2��">��XJlGu4 o�gB?#� 195 | �:��MU�)�eE�:���=��m�������:)���;��퓪�h�����!ݮ���= �z�n�N�������ž/���9�i@ �c��[˘$�ޯY���I�TF̘�P-��>2����a�c�g՜hn*l@~V�m�4��DjX3�{s�մ�T �y����a�`�:��n)�B���6�)��ֹ4�9�T;{��Ʀ���HRc/��)L�`:C���/=y� gz��`9���B›ޒ����YY�z���E���祓� �l��6.������)+�m�9��94m�52���qC�X��,ݖ����G�e܉M2��.��e<dl�2�h��M��2�� ���&�\�:��Po7(qS��tG=�)������b6�w�?��Ȳ��6oB���m(���s(æ���2b��z\�+������6 �d���2v""��2N"*�w�ty�n۔U^�Е��Q��6���F��b��S8-�=�㌌?਌�?r$��RIG�z̈��1��,�,�$��|��pn�׽‘q��1�"��PɘĔ�߱ 196 | t.���0-σk]T�hYLu �[X[�����^G�TǴhJ�j���m��!Ԝi-�X�ԫ7�:{#� �Q�aR�ob��f$�!WW/͇��B���<���4N��Is,3Qh�J������i��S`���;���r5�l�n����= ֕�y<9�R9B=rZ:O����S+g�_k�ң�֟`����Y�ؔ�����*�\f�,�gr�zs:�I�4���� ���Y�ؔ���x<���I�}��٣s�-�#�_c�%s�bi��h�������Я�0��*E%�8�*yʹ_t�f���9��.��<<]�"��t�C�F1a��p�$��b�� N�d��IH��I�5�I��k:�J�u $@AH��*q��֊wQ/��Y���D�%,=���]�Bly� ��b�KȺ��Ϸ�$ia�hx 197 | �G��"���%��X:X�R�,�F�ߛ��<}\�{Lpi� Va Zy�$���e�S��i��}�g�%>@��нA��=s�(���l�NpEk����}���'}�)TM��5ϠZ`K.b� ���ss�Xʎ�9(�cW�� �owi�BHz���:��DA_��LlJO����� ���_��[����f��9�&�#�x������Fz]M�&�8�v��tP��� ]}-3���Vp����5��:��3���S?C���ݐ�k��AD�x���:��nq +�e��O)���Q�9���T�&ė8&��K���B|��+���䓷) wQ��q���=org/gradle/cli/CommandLineParser$OptionAwareParserState.class�U�n�@=��q�$�6\�%�)M�K�@)�p)E� E*o��Į��O� x�$ 204 | �J|��Mݒ*A./ޝ���gf퟿��PĽ8ȩ�0*w�Tz���c\�� �*L+(��cVAQ�u���4�ܮ�,�dȖQ/��5̂Ѱ 205 | O�p����C�{i����\����e˶�; ���`�� 206 | CdթQ�I��h5��xƫ � ��7*\X����.C�ɶg9���Z��ŵu�6�j���I���,s���]SM��j�%�} �P����녲',��4��!�E]&���8��c$�${�]p�G�짍���o�R�NK�%�t��i��!���Ә�ЏSnbX���[XP��a � s�����L�f �+��~�a��[��f�:�~���Z�)9h��O�S������ c�s��m�q�r�� |�������F���dU���ԩ��0L�����-=ƽ���_��qk�ޥvr�l0.��ϥF��|���x��!��J�Ӛ�'v�t�!}r�O�Y�Y��,T6�$�a�|i��Z���� �̋dKTT���ȇC�(���<�C�(.��.#��젯�*�&�>Z�7D�!�eSZ2B���#����o��o+5U���c���Cݢ�{�� 207 | B��*^�v�#8G�Ni$�y6���+���1E�8�3$r�]��oPK 208 | A�%�̻�7org/gradle/cli/CommandLineParser$OptionComparator.class�TmO�P~���Q:� 209 | �� � 210 | �2@�.�,Y�d�ďe4��kI��?�/~#���ƨ_�� N6).]��}�s�=��~��� �E�%d0#����0+bN�U�J"E,IHs;�'"V8|U�Sk"�z6L��7�e�A(;í�i;�����-� V��n�����)��L�!�{䛎]v�G����� Wl�p˖�y!����P�~`j�2U�6u���y����N_���z`Q�W�k�H-�T�� ��T|�%|���4y�`�P?�UK�j�wM���k��w����uz��-�֤��$�/0L���[3��xѪ��M�7-�O�7� �I�R�i�u��;?ڑ~�S��b@�����Z�a��B���h�Ο�\��i���a+6eY�����g��љ{"!c /&��q� ����v�a�[�h��ǂZ�0�0 }��m j��]{���a�=�eўB�$�>��P��}�4�s2�|=ѧ��Q*t�e躣K�.@ >rd ���d$S3gH|$%�!z�p'��a����!�x���D�"�2{��9��� �O蹀�S�p� �Hs�wnL8�tr��I"��!�y�3Ⱥ2GY�v�����>i<2����<l�4!�M�{�n�V���� �� 211 | ��#f�dY��"�5���>�{}FC��NS��#ZO�q�ϣH�INQ�2(R�8��˦�S�<�i��� PK 212 | A�fC���8org/gradle/cli/CommandLineParser$OptionParserState.class���JAƿ�Y����4ն֨��JoJ�P����H.��$�:���ى� 213 | }�/�}��3����4�ߙ���Μ�����#�B���F��UB�Xie? 214 | ���o�}IXl)-O���4碛pf���D�F��8��K��ή�J�a2i�VX�T���4�Dd�d��Vj�(6��Ȩ����B�]�Q]��AXH5�ƞ�[�����O���&��B�T3k8��N�+q#�D�8j[�tܘ��K�Md�T�̋�W^'��ۄ��d���[�w{H������ӡ�ɯ�m���s��+a�;����@(?^�Y�J�x���\a{�(��$�_��ׇ{���L |�X�uf��fs'�'�8.� ��ygX�u+���e��/;�����������0���:^�eor�[n��}�y?�"k�����g�PK 215 | A���E��3org/gradle/cli/CommandLineParser$OptionString.class�T�NA��z��q�ZDQ��G�Qğ kL�&(�[��rx�k�����/$�&>��qv[l�B�����|��������'�9<�E?L�Ĵ�4�B-�0��, �:4�( 1��m�;�ᮆ{ �����#�<�׬�8t��COЈ���͢���T�ݯ�RXgP+A�aXv}ge���o���L�ͽu�Bo�xˍ�U�� C� �wŠǣȡSk9kV-�Uϱlϵ*A����H񚇑�N�S�?s���?��:幘/t*�-���W�!�h�ϐ��汆 /�Tww~e��Ӭe!�rg�c���DQ�乎�OE��;McBһ���-�!��%��.��"�{��N'�M��zz����Y%�B65[�m�~��k�E�T�BZƓq�5�<�]/h����}LѾ�>�����M�c��G��MHx���)����PK 221 | A`M~U�2org/gradle/cli/CommandLineParser$ParserState.class�S�o�P�N) s���97ս�&ML�f����.а.���vF�'_|����(�-�� A���G����������mdQ��C-��6�xba�B��{�I/zI�4����\�jϓ���d�b�s�� ��?���4iF�^H(�*tU?'��tU�a���v/Pcg���w���9�`2r�;$u�Ty�P��/�#}��@��3�I8��c�)O�;�B� / ��Z� �����&���Wt��i2���qf�YC!�����z�Pڕh&ߗ�P2��e��g�v�nӁ�$�$T@|�*>A��%��W|�):�T Џ3����_qI�_q3!��Ź�t��^= x�c @����C��!��:�Z_ e��Y��q�>8YM��H�E�F��w@�@9\"��!�v�C��z��1���v񫮥x��&҃�k�$}ˌf��!�u����Tsj]�p9�9�+��1��:�*�4�*4fE�!�������./1Y��� ���?PK 225 | AdZ��l)&org/gradle/cli/CommandLineParser.class�Yi`\ő�J��7zz�eٲ=`l��1���S>K6����Xz�Fψ��8B����`�`���d ��M�����Ͳaك=� !l��~�ޛ�����PwOwUuUu���O�{��Y�T:�j�W5�ױ�h��/>��)��s�3 ���O�� >ס� y�R�a#��|��|��1�ׄW��%G���ģc�x��S�5��E��]��%_���fF�eu���֤P�t|e�&cu�����q��8&�&���䞬��JO��|7#�P"t��M$(�����L8?�=���cq3֔&LM�s�sO��A0�e�AQC(���j]��Z�-um 3f��5i��f� 228 | �≦�m�kG0�JKͶh�̚�dc�u;�13c�M������0�[�1�׬�_ݸ���a��5u�֭X�(�� ^��N���1���U�&��V���QQ[٥=I�Ҩ�]��k 229 | �G���-\�����Fګm�WEc���`kجn ���V�"����E�9:Gw6�v������1�|�yqe�41���P<�-l҉��H(�H�[R�s�,���J��ؽc�[����-���`,�~;��DG���|�������K�g�lloi���5M%� ��9.b�I+v�����"�[�FU��R�o;�R��`��FN��3#��mL=� ��4�P�%$�l���u�� * c�Late+�r"n���uUC��iظ̀��J���]B\� 230 | k���X5�P�j���:��)B�p(^H�i%����n Z��kn ��ݒ��_�>N���� 231 | ��&3A�32g R4��d�� Z�8?l�y�O����m'�ˆf@��h�Ռ%sƞU�u��6��3iʭ 232 | ŕ������%�p77���DL�^a�E��9͚V\�EW �p� vX8�)��4iFf(M�a��}��.��l?�F�,�N@6�� 7�w�3���§�E�5�F�p J�-���f�n1�R^��:�t[���B�Y��ԙd��3���R÷���M΄A-�V�vm�ϼ�.(S�Y�n�Z�Q_;�S��[Z�x|ڜ�3�K�F�R^�9�fp�U�g �sPY�1O��/ �}��M��X k#���I�Rr ܊[ ܀ ܬF���D��-� �;��&-���i�{�OP<����1�Mڹ�t���\͐׍ku��;5�nHXv��!]r1%�� � �0��Ґ�t *��1��T]Bح��t��-�씸!��ǐK�2C.�+%���ª2C�!W*�or�\Mx��ղZ�m��U�3W����q�\��lE,�r�Rz���[U��V�3�[r�!7(G�(Wr�|ې��jCn���*��%*��Ų!��wYX�����2�u]�4y��ӇY <'�k�P͝��%w'�t�3��lu�Y9L�ُC�'�d�R�{23$*� ��0d�\/�!{�^C�/�hr��7��ܟŞkCP���Ɉ: ��\lȃ���nяE��b�`��*�ƹc�&{�>Vi%��=f ٽ�wb��eic�^�Rĉ^�Éw�w�`��� �O�F�3<,�dn>g?�_�y2��|�����%� 233 | ��z�X�>"�Nd1�V�f�Y72�pLb�h1s}���6=�Jq����Ŵ�*��9���DuX�U���ǻ?���}e������[�ւeN(��q�%�B=�:��FsW����z��~�-)u+Z v{���p,�|������{���`8�E�< �r�_n��۷�C�c^�{[܉բ�z�v� 234 | �46���<[]�k�t6SN��o��;:������ԃ�C���qֻ��[�c��`���|ݽ��(~�zv��V�7\e���"�z����>��L��P_�k���p�6#�+L��h�1I`�E�4c��/�]A�in��ع��<�hw׆�ڧ0=�՗g3�Nj'"�@#y�Yk>nV�0=t�zi��H_�����r3� %?~u�'�\����v��B�� A� ��7��o}m�h��~�� �ǡ�W���s� ��_&�%�@,y�����ő�<ހ� M��<�k�����֭�0nGRZ՞�A<[1�Q; hK�&§i13|d�7�L�]$7$�J����A�h5㡘ٚz=�����贞�_��.��q*:��'�����F��&k�m��l�oU}���������w�kr9�r�x���m>�3�y�⼃�����N� �w�n�W�})����m^Y�Ah���O �YL+,�l"G�����˱�����7<���7hb>�x�������i��!_p��h���� 235 | 9�Q��}(� ���a�`���F���˜Zoe�ۋ��局����v�����}r��8i7N"e�K�{1�����\N�IAU�[���k|6e)�������=�Lg�i��t�E��:���Rt����=("�4R�A~?��(N{�,$��)��>�ȡ��)Y>gGK;��Ȯ�,J͡���%TZX֋rE\ދ 236 | �O�����܍€?i.U�Mj���[�W��\V� ��*�Rv��"uG��Y�xm��;��>,�.�����Ӈ�K�֑�l�wlfe/N��oE���'Q����b����Wb#�`cm3�<� ��؊_�"�K��� ����*#`�x��)h�btH):�Ll�&�evH'�҅.��M��^��Q�~;�9��˸T��7�C\)�5���?�z9�sr��*��h���p?ۻ0��=�Q֜F� {���tw���t�c1~D�����k����U�a����!��t0�F!SE/��w����X��S��'�M��d_ø8�缁羑g���M�'��9����K �(=SX�-,�3��,-N��=��u�S�9�P�i����� 238 | ���Q��c"���%��p;°��s��`q��x<����6V�����~,���z*-w�����F�G|��:%f)�XJ�X���BV4[J^ ϑ�^�l��T{���� ��p�����������g�9܅*�+�/#ߒ�Z�JNxy���*���uìR6+�|*,�&����V�U�V} 5^Ƈbi�ҕbY��Ї5������y����\��$h��:4�"i��4��h��p�m�7����H����8���T ^��R��x 0�K%��k��A�g�鵓r7s�~��!��o_������ǜ9�`9����_K_��$��,�+� �J;~);�܆��%�!��My�xw���#){9�%�q�G���2wR�����0 /r5�{���,�5����q�BH��\����� 239 | �d^p�K��PΓ�7x�Y���+��b�܋7X:y���x�Y絲F园ɯS��-1����8g��O��{zSe� y�Nv��a��`�aZ�x��� 5��m��C�d"�QL��tL�q:ɛ� 240 | e�c%,3w����]}s����S�}���~e?�2<��_��p媲>lJ��0ݩ�j���A^�i� 241 | uoQ��E������pê8�~?��oS�w/��-�Oijw�g��޶K�/����U��G�y�^�}�B�����,�ZJ��,;����;ɢ����x�b��f9�r���K�a�2�J|ߋs�=ijS�8T�PqhQn���sʃ�YQ�U�@��O�~lm.��I=o�A`�2/-�����'a*o���}�CӑMs��wō��iV���*,�K�:&U�@�c��Hb�{V5�ky��E=�!��#�&�P�==� k�Oц?�r�]�?1�>g�A���y{8u 242 | c�a�*^����H�*�R��!�V��g��-y�h��.�#�f�N>��_�{EV43$������f�f�N�8�Ѭ����;��l��d�O�� sN����]w�a������i�� 243 | ;{���g<�Oaja� v<s�[��G�%.�X"���"�Q kGOa�X�g\�p�����>�>����.a������xt�v�2Ώg9�+���#�_�������;q �e�V)^���?PK 244 | A��>�&org/gradle/cli/ParsedCommandLine.class�Wiwg~F���ċ�%v�TMc[����R����8�S���)-L���T�(����.Ph١li�7 ��`rX���;��Ɵ�����}g$Kָ1G�����}����.3�ǽ?���.�v�*��`�!��*��΢ .��bu�f��T���,.+*�W�BM0#h�'��".��T=^��a�����}:�|F�kt� ����0^�7�����/�㋸$�__V�0�A�V���Ma� q������[ 245 | ͼ�1s�#+3��ɥ����/�E;����� 246 | �f2�n-C���#�2�����i�Җ�� �����U0R��Ғ�KMfr�)y��(��Q0r��*T>c�4y�Z�q���%s�H���˶��Y���h������M�-�C#�\�U��08a�~.k ��*��)Cx��K� �)�LAt�\г���kWY�p�#�A͙ 247 | ���� FA|���W�ݳw�/뀽�)x����V5KԶx����:ԕ|)���#�wOP�c���c�I(�V��^y���U�6K������bѴ��\j������3Tp�UG(���|�V�Q��H1�M� 7S8�� 248 | �RΊ|{��Y�#۶���nQ/���5^k�Ko�u�O;=F��m,�R���h�q3�5$�bwc�LO�F�ܙm�� 249 | �����L���n"�����9m�G7M�h�z*gJw�r�v詔D�ճEc �Y��e�y�K�?�a{���?�՜qZ:��fy���ȌY��c��m5����� 250 | � �^Xd�k�����ޏဂ6��Y��"��|P�[x[�w�= �����1s�=>4�?R�c��f�U�D�O�3��8�*$c�/GW���*�S�.��5�“~�U�n�� 251 | |ɘ�_��=�0�a �4� 252 | WU\�0��~��p�WL�HZϖ�:zy�py�����*��r�K�}j��c���븪�����֒[���v.��2}Ri����c9SV�U�P�P�IΝir+���9�������g�S�� 253 | ����Q��Z�y��ۇ��OB�MkI'ƠG�>�� �=�7r���W=¶~��̜�gD��1[�f(O :��6y��P=𸟳J8�J�e������2m�sQ��P0����-^^��Ц5[����y?�A�C�2?Tj�H܆����m�o"@1H1t��XG1r�}k�L%װC���Р�h���&�4�o!�� ;��]LHҰe(��=���Z��[]����;7d���?��k'W���o����� �A�؅속=x�5��:I�C�a��b!Z�cx�(D��p1�')�1��a���8���!�N��*�*&T���=t�hT�����_�P;�=�'��X����/����� F���Ι���bX�@�u #Bw�v�p��\�}b�9�û��x?}�d����������T�}HH.���o!���s��y�V�����O��C��I�/�a$�q�a�x�A1c���x��)R_J@{�& (�+�}�?Av��3x��G�� f����97���CTE�B��"���]t���F��.�'���ޜ軅؜��t<�õ2�i ��1�i����_3�%����6� ;Aؓ����q��6�A-��V4Rg��Z�l�G� ����o��rN�$�g��dy�E:��+����N:$��̕��ų�xU� �'\�5��B%ǻ6 254 | Z�3�]^ᜐ��k��>�l�J� ;�k>��e�'*�6z��E�Ge�)��A�<�],;[��S;\��O��r=l8>Y ��߀��^��9ي� ��NL��vcz�ͭ&@S܇��Қg\�H�VvWc�� .��97�{�X�Ř�㰗G�o�� )�ȑ�,�I8�s��Q�HI 0��$Ab�s��9��{�`_i�*^QUt� � ���������9%�<'� t�E�B^�K��r�vs?��`��A�^EAEXP QP 255 | �dȹ�PK 256 | Ay�t�E,org/gradle/cli/ParsedCommandLineOption.class�S]O�@=ݯ�G�e�Pa�eQ���"�hHV1Y���awR�����l���I�g��N[`Y$�ә�{�=����?��“4�(��H#�b 257 | ���冊�$�4���-L%q[�器+��r��⾊ 258 | [�lpWA��ɶ���������(H��a1��p#-�g���,C/{����9*I� 259 | Kxs 260 | ���U�E�J�%a��:w^�u�"��]a�*s�<����!�I�d;�n8�jr�b 261 | �s\^]�k5fU%�J��E��V�݅���=Vy������ 262 | j�;*i=z&x�� �V�Q㖧��p6K:�d�)��Kn07T@��U�.� �Ÿ �v��ICzt��]p�-)k�DN�(� �t]6Mn0�,���� 263 | ��(#�Wm��-��o�-�g�v޿��Ѱ��f0��?L'��Z��D��A�K��@�϶*���$����)���M^!�O���+v�i���Q,7_�������Z~����]�սm\�(K? L�H�.:EЍ8��rZ/PdQ���>��!"k��~E쳟}�V�_�*bT�G;-��%����b�X��o�������������"��p�(=@&�_���2�w�%��^*��$�A�P�PS��� =1D:��!䉩��If�%�ޱ��n���0�5W(v��b�RD 264 | �$���"x�j�2D�ϧ��xr7�k> ��!��V.p�]�.��G��ӱ��D�\��8"�y R����PK 265 | A\v�B| :org/gradle/cli/ProjectPropertiesCommandLineConverter.class��KO�@��D|?Pâ���u�#Q�+�$�C;�1m�  �JW&.��(��1�D�,��9��v�o�/���[@yl汕G)��v� 266 | }FHWkw�LS����!�]�nY�7�ZK:̿cJD�����ZRy����s���V�;�H�+-��)���n�kS�#cruLX��gh|��B���j���F��Y���D��Ώ�%�L��%���񎅎*�_���?�ֈ:("�<�ڄbJՍ� ��؊t�f�^*K��� 267 | ߵ� XU��V����i01�k ���p8��wZ��8T0g�?P�a�Λ�m����=���C 268 | S�s ����| �1\���Z�q-}C�_�J��Eˉ�j��E+ ��w'��PK 269 | A 270 | �8=|�9org/gradle/cli/SystemPropertiesCommandLineConverter.class���J�@��ثm���j�E�5BPą�R/P�~�ӑ$&�B�JW� ��'i�A�Y�3���͜�����l� �"l�Y��l�E �<&� d���@���H��g�L��{:r�R�s�:C*X4NĬ����Q� ۴;hZ3a ѽ�G!]��G�v�7S"�5eb 271 | o}ɸG�����tFM�z�9��y���~X{()spL`7e.�KV, �TXxɢ����fDT�E�G��P�W��Jm�h~���49A�jx��Ѱ ��s�h�� gԙ�n8��5��]�.F�Ԓ�s�9��Q��΢��*�s�/@�Ug J*�c�e+s��+1� 272 | ��$p�����6���/t-�,�;�h-�.�Z 273 | �>k�Z�PK 274 | A��Wgradle-cli-classpath.properties+(��JM.)��**�+��M�PK 275 | A �AMETA-INF/PK 276 | Am�>=@?��)META-INF/MANIFEST.MFPK 277 | A�A�org/PK 278 | A �A�org/gradle/PK 279 | A�A�org/gradle/wrapper/PK 280 | A��f�� -��org/gradle/wrapper/BootstrapMainStarter.classPK 281 | AhQ�}��#��korg/gradle/wrapper/Download$1.classPK 282 | A���L4��Norg/gradle/wrapper/Download$ProxyAuthenticator.classPK 283 | A5�<���!��� org/gradle/wrapper/Download.classPK 284 | Ay�L���1���org/gradle/wrapper/DownloadProgressListener.classPK 285 | A!9|�� 3���org/gradle/wrapper/ExclusiveFileAccessManager.classPK 286 | A��,y�-��� org/gradle/wrapper/GradleUserHomeLookup.classPK 287 | A�!l�7 "*��u#org/gradle/wrapper/GradleWrapperMain.classPK 288 | A����"���,org/gradle/wrapper/IDownload.classPK 289 | Ap@��c "���-org/gradle/wrapper/Install$1.classPK 290 | AT�,-t+ ���5org/gradle/wrapper/Install.classPK 291 | A�:�o4���Iorg/gradle/wrapper/Logger.classPK 292 | Aon�`8���Lorg/gradle/wrapper/PathAssembler$LocalDistribution.classPK 293 | AJ��[&���Norg/gradle/wrapper/PathAssembler.classPK 294 | A����| 0���Uorg/gradle/wrapper/SystemPropertiesHandler.classPK 295 | A�=��?-��[org/gradle/wrapper/WrapperConfiguration.classPK 296 | AG�� (�� ^org/gradle/wrapper/WrapperExecutor.classPK 297 | A��_#��dggradle-wrapper-classpath.propertiesPK 298 | A�A�gorg/gradle/cli/PK 299 | A��?�<S1���gorg/gradle/cli/AbstractCommandLineConverter.classPK 300 | A׃��X� 301 | ;��}jorg/gradle/cli/AbstractPropertiesCommandLineConverter.classPK 302 | A}��yGK1��.oorg/gradle/cli/CommandLineArgumentException.classPK 303 | A����g)���porg/gradle/cli/CommandLineConverter.classPK 304 | ASf 305 | �g&��$rorg/gradle/cli/CommandLineOption.classPK 306 | A�튯��(��jxorg/gradle/cli/CommandLineParser$1.classPK 307 | A��ƭN� ;��Uyorg/gradle/cli/CommandLineParser$AfterFirstSubCommand.classPK 308 | A�D��&3���|org/gradle/cli/CommandLineParser$AfterOptions.classPK 309 | A����� <���org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.classPK 310 | A�*�ZM�F��J�org/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.classPK 311 | A�2 �=����org/gradle/cli/CommandLineParser$KnownOptionParserState.classPK 312 | A$ľ���<��Z�org/gradle/cli/CommandLineParser$MissingOptionArgState.classPK 313 | ATK>��=��Y�org/gradle/cli/CommandLineParser$OptionAwareParserState.classPK 314 | A�%�̻�7��^�org/gradle/cli/CommandLineParser$OptionComparator.classPK 315 | A�fC���8��n�org/gradle/cli/CommandLineParser$OptionParserState.classPK 316 | A���E��3��k�org/gradle/cli/CommandLineParser$OptionString.classPK 317 | AgAq��x=��g�org/gradle/cli/CommandLineParser$OptionStringComparator.classPK 318 | A`M~U�2��V�org/gradle/cli/CommandLineParser$ParserState.classPK 319 | Ap�X �k?����org/gradle/cli/CommandLineParser$UnknownOptionParserState.classPK 320 | AdZ��l)&���org/gradle/cli/CommandLineParser.classPK 321 | A��>�&��>�org/gradle/cli/ParsedCommandLine.classPK 322 | Ay�t�E,��K�org/gradle/cli/ParsedCommandLineOption.classPK 323 | A\v�B| :��o�org/gradle/cli/ProjectPropertiesCommandLineConverter.classPK 324 | A 325 | �8=|�9��C�org/gradle/cli/SystemPropertiesCommandLineConverter.classPK 326 | A��W���gradle-cli-classpath.propertiesPK11g� --------------------------------------------------------------------------------