2020-11-25 21:57:44 UTC
206 MB
10
AUTOPAUSE_TIMEOUT_EST3600
AUTOPAUSE_TIMEOUT_INIT600
AUTOPAUSE_TIMEOUT_KN120
DIFFICULTYeasy
ENABLE_AUTOPAUSEfalse
ENABLE_RCONtrue
FABRICVERSIONLATEST
FORGEVERSIONRECOMMENDED
GID1000
JAVA_HOME/opt/java/openjdk
JAVA_TOOL_OPTIONS-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle
JAVA_VERSIONjdk8u272-b10_openj9-0.23.0
LANGen_US.UTF-8
LANGUAGEen_US:en
LC_ALLen_US.UTF-8
LEVELworld
LEVEL_TYPEDEFAULT
MEMORY1G
ONLINE_MODETRUE
OPENJ9_JAVA_OPTIONS-Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal
PATH/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PVPtrue
RCON_PASSWORDminecraft
RCON_PORT25575
SERVER_NAMEDedicated Server
SERVER_PORT25565
SPONGEBRANCHSTABLE
SPONGEVERSION TYPEVANILLA
UID1000
VERSIONLATEST
[#000] sha256:188c0c94c7c576fff0792aca7ec73d67a2f7f4cb3a6e53a84559337260b36964 - 1.29% (2.67 MB)
[#001] sha256:f5d342ab4b29002c87f86274caf8f305ffe73de02713b4220d0244da75ec2fab - 2.96% (6.09 MB)
[#002] sha256:71d6090f87e12f4cfc1d24f66a90351ec20bb08130fd0f78ca4ba2f21660eeef - 53.74% (111 MB)
[#003] sha256:87aafcf01f1b1b4a1c1b3ad70e934034d0aaf4a994b47275c14ec956cfe2cbbf - 2.12% (4.37 MB)
[#004] sha256:9139794b22fc0b9f0777ff6175d314432ca3f91c3265c027ec4706a91a101d25 - 0.2% (421 KB)
[#005] sha256:99c6a45d2f154dd9d7a6658c158f38f8ec927e1b0dc3f93b07e2aa4a6b734bb4 - 30.23% (62.3 MB)
[#006] sha256:87519b35729b183f1e3d89239a479442f53186b6dff2b2561e0ea90fc0e80861 - 0.0% (1.23 KB)
[#007] sha256:eb72beb3447db3725d2adcc3b6d7b149ebf6085769543497c2572c2c0d15a774 - 0.0% (228 Bytes)
[#008] sha256:2e8324a4d0feb457b425b8725981f48c749e551512518e89161a52b0ba552148 - 1.39% (2.87 MB)
[#009] sha256:a42fcf3111bb96df10346be5aea4f4467196a030fb252a22d036cae36cb08e28 - 1.39% (2.87 MB)
[#010] sha256:6f4ede8c14d20007083f01f8611c43976936eaa3628436bc48046a18c9a0a09e - 1.38% (2.84 MB)
[#011] sha256:59f6bb4a449694bc4bb42c0e1027ce61a7b25317be52ecd1502638e3e236d341 - 1.66% (3.41 MB)
[#012] sha256:4801613f396a47d95b4a4109ab803ad07fe2e78f58efca6e7ad0d9c63836c1ca - 1.14% (2.35 MB)
[#013] sha256:805c5cd47a77d42ba1277521ba9686b8e2d9edd546b9830d90359e17d6411072 - 1.48% (3.05 MB)
[#014] sha256:c4a73fdbc14519ec13d95b8d75cca939efd8aa89f742dd9f455b78f367604d34 - 1.0% (2.06 MB)
[#015] sha256:48acf5a02adeba60dd02d7b7be92f7b5b5f23f28df1441de7f07d7cda4d99ae8 - 0.0% (448 Bytes)
[#016] sha256:720c880529ced5ef81aca8a973fadef5ee37497fcffcc0110a867502d428588e - 0.0% (681 Bytes)
[#017] sha256:4fff61e2ba34368c11b9d6392d7a20ed1d37018886b60e315df314cc415f7be9 - 0.0% (679 Bytes)
[#018] sha256:095edacf238fd44ef63ecf708edb6501ccfda3725ec1929a22a7da984849a023 - 0.01% (17 KB)
[#019] sha256:86cf701307762d71790c7f2aad5aad9d795146c0812c19bdef0a4944982c0396 - 0.0% (384 Bytes)
[#020] sha256:a76ebf10749a5445f51a2dc5b715a5c27cbefe791ac73534855913558b632e73 - 0.0% (1.7 KB)
[#021] sha256:f1e3c8f1b2f3b3369f9bc78ff74cfce9da3b33e74dc054b66a2fd71812ff84a8 - 0.01% (17 KB)
[#022] sha256:29d657170f23802be1b6a41e9c7d5a2ca361439cea7639d71448ad69a6d9b7c0 - 0.0% (383 Bytes)
[#023] sha256:ec8674c7469d776a8342b99bdcdf2931b910afdbdb461b1e5af3aa783512d5cb - 0.0% (1.69 KB)
/bin/sh -c #(nop) ADD file:f17f65714f703db9012f00e5ec98d0b2541ff6147c2633f7ab9ba659d0c507f4 in /
2020-10-22 02:19:24 UTC/bin/sh -c #(nop) CMD ["/bin/sh"]
2020-10-25 17:49:54 UTC/bin/sh -c #(nop) ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
2020-10-25 17:50:08 UTC/bin/sh -c apk add --no-cache tzdata --virtual .build-deps curl binutils zstd && GLIBC_VER="2.31-r0" && ALPINE_GLIBC_REPO="https://github.com/sgerrand/alpine-pkg-glibc/releases/download" && GCC_LIBS_URL="https://archive.archlinux.org/packages/g/gcc-libs/gcc-libs-10.1.0-2-x86_64.pkg.tar.zst" && GCC_LIBS_SHA256="f80320a03ff73e82271064e4f684cd58d7dbdb07aa06a2c4eea8e0f3c507c45c" && ZLIB_URL="https://archive.archlinux.org/packages/z/zlib/zlib-1%3A1.2.11-3-x86_64.pkg.tar.xz" && ZLIB_SHA256=17aede0b9f8baa789c5aa3f358fbf8c68a5f1228c5e6cba1a5dd34102ef4d4e5 && curl -LfsS https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -o /etc/apk/keys/sgerrand.rsa.pub && SGERRAND_RSA_SHA256="823b54589c93b02497f1ba4dc622eaef9c813e6b0f0ebbb2f771e32adf9f4ef2" && echo "${SGERRAND_RSA_SHA256} */etc/apk/keys/sgerrand.rsa.pub" | sha256sum -c - && curl -LfsS ${ALPINE_GLIBC_REPO}/${GLIBC_VER}/glibc-${GLIBC_VER}.apk > /tmp/glibc-${GLIBC_VER}.apk && apk add --no-cache /tmp/glibc-${GLIBC_VER}.apk && curl -LfsS ${ALPINE_GLIBC_REPO}/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk > /tmp/glibc-bin-${GLIBC_VER}.apk && apk add --no-cache /tmp/glibc-bin-${GLIBC_VER}.apk && curl -Ls ${ALPINE_GLIBC_REPO}/${GLIBC_VER}/glibc-i18n-${GLIBC_VER}.apk > /tmp/glibc-i18n-${GLIBC_VER}.apk && apk add --no-cache /tmp/glibc-i18n-${GLIBC_VER}.apk && /usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 "$LANG" || true && echo "export LANG=$LANG" > /etc/profile.d/locale.sh && curl -LfsS ${GCC_LIBS_URL} -o /tmp/gcc-libs.tar.zst && echo "${GCC_LIBS_SHA256} */tmp/gcc-libs.tar.zst" | sha256sum -c - && mkdir /tmp/gcc && zstd -d /tmp/gcc-libs.tar.zst --output-dir-flat /tmp && tar -xf /tmp/gcc-libs.tar -C /tmp/gcc && mv /tmp/gcc/usr/lib/libgcc* /tmp/gcc/usr/lib/libstdc++* /usr/glibc-compat/lib && strip /usr/glibc-compat/lib/libgcc_s.so.* /usr/glibc-compat/lib/libstdc++.so* && curl -LfsS ${ZLIB_URL} -o /tmp/libz.tar.xz && echo "${ZLIB_SHA256} */tmp/libz.tar.xz" | sha256sum -c - && mkdir /tmp/libz && tar -xf /tmp/libz.tar.xz -C /tmp/libz && mv /tmp/libz/usr/lib/libz.so* /usr/glibc-compat/lib && apk del --purge .build-deps glibc-i18n && rm -rf /tmp/*.apk /tmp/gcc /tmp/gcc-libs.tar* /tmp/libz /tmp/libz.tar.xz /var/cache/apk/*
2020-10-25 17:50:09 UTC/bin/sh -c #(nop) ENV JAVA_VERSION=jdk8u272-b10_openj9-0.23.0
2020-10-25 17:50:28 UTC/bin/sh -c set -eux; apk add --no-cache --virtual .fetch-deps curl; ARCH="$(apk --print-arch)"; case "${ARCH}" in ppc64el|ppc64le) ESUM='71f649a103e2abab58c062adc7cca0a60dca5feba1cb868cdf87bba1e1a9d333'; BINARY_URL='https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10_openj9-0.23.0/OpenJDK8U-jdk_ppc64le_linux_openj9_8u272b10_openj9-0.23.0.tar.gz'; ;; s390x) ESUM='893caadb7d61cfc895f40d35911ce4b3b400443de05f38c1936a91107271a68d'; BINARY_URL='https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10_openj9-0.23.0/OpenJDK8U-jdk_s390x_linux_openj9_8u272b10_openj9-0.23.0.tar.gz'; ;; amd64|x86_64) ESUM='ca852f976e5b27ccd9b73a527a517496bda865b2ae2a85517ca74486fb8de7da'; BINARY_URL='https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u272-b10_openj9-0.23.0/OpenJDK8U-jdk_x64_linux_openj9_8u272b10_openj9-0.23.0.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p /opt/java/openjdk; cd /opt/java/openjdk; tar -xf /tmp/openjdk.tar.gz --strip-components=1; apk del --purge .fetch-deps; rm -rf /var/cache/apk/*; rm -rf /tmp/openjdk.tar.gz;
2020-10-25 17:50:35 UTC/bin/sh -c #(nop) ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2020-10-25 17:50:36 UTC/bin/sh -c #(nop) ENV JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+IdleTuningGcOnIdle
2020-10-25 17:52:03 UTC/bin/sh -c set -eux; apk add --no-cache --virtual .scc-deps curl; unset OPENJ9_JAVA_OPTIONS; SCC_SIZE="50m"; SCC_GEN_RUNS_COUNT=3; DOWNLOAD_PATH_TOMCAT=/tmp/tomcat; INSTALL_PATH_TOMCAT=/opt/tomcat-home; TOMCAT_CHECKSUM="0db27185d9fc3174f2c670f814df3dda8a008b89d1a38a5d96cbbe119767ebfb1cf0bce956b27954aee9be19c4a7b91f2579d967932207976322033a86075f98"; TOMCAT_DWNLD_URL="https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.35/bin/apache-tomcat-9.0.35.tar.gz"; mkdir -p "${DOWNLOAD_PATH_TOMCAT}" "${INSTALL_PATH_TOMCAT}"; curl -LfsSo "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz "${TOMCAT_DWNLD_URL}"; echo "${TOMCAT_CHECKSUM} *${DOWNLOAD_PATH_TOMCAT}/tomcat.tar.gz" | sha512sum -c -; tar -xf "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz -C "${INSTALL_PATH_TOMCAT}" --strip-components=1; rm -rf "${DOWNLOAD_PATH_TOMCAT}"; java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; export OPENJ9_JAVA_OPTIONS="-Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; for i in $(seq 0 $SCC_GEN_RUNS_COUNT); do "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 5; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh; sleep 5; done; FULL=$( (java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); DST_CACHE=$(java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,destroy 2>&1 || true); SCC_SIZE=$(echo $SCC_SIZE | sed 's/.$//'); SCC_SIZE=$(awk "BEGIN {print int($SCC_SIZE * $FULL / 100.0)}"); [ "${SCC_SIZE}" -eq 0 ] && SCC_SIZE=1; SCC_SIZE="${SCC_SIZE}m"; java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; unset OPENJ9_JAVA_OPTIONS; export OPENJ9_JAVA_OPTIONS="-Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; for i in $(seq 0 $SCC_GEN_RUNS_COUNT); do "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 5; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh; sleep 5; done; FULL=$( (java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); echo "SCC layer is $FULL% full."; rm -rf "${INSTALL_PATH_TOMCAT}"; if [ -d "/opt/java/.scc" ]; then chmod -R 0777 /opt/java/.scc; fi; apk del --purge .scc-deps; rm -rf /var/cache/apk/*; echo "SCC generation phase completed";
2020-10-25 17:52:04 UTC/bin/sh -c #(nop) ENV OPENJ9_JAVA_OPTIONS=-Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal
2020-11-25 21:56:53 UTC/bin/sh -c #(nop) LABEL org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
2020-11-25 21:56:54 UTC/bin/sh -c apk -U --no-cache upgrade
2020-11-25 21:57:05 UTC/bin/sh -c apk add --no-cache -U openssl imagemagick lsof su-exec shadow bash curl iputils wget git jq mysql-client tzdata rsync nano sudo knock ttf-dejavu
2020-11-25 21:57:09 UTC/bin/sh -c addgroup -g 1000 minecraft && adduser -Ss /bin/false -u 1000 -G minecraft -h /home/minecraft minecraft && mkdir -m 777 /data && chown minecraft:minecraft /data /home/minecraft
2020-11-25 21:57:11 UTC/bin/sh -c #(nop) COPY file:49a83b4fee0e48bad8d286c597314dff8cbc20d0fbde91d7ce1b3fd037d9c6ec in /etc/sudoers.d
2020-11-25 21:57:11 UTC/bin/sh -c #(nop) EXPOSE 25565 25575
2020-11-25 21:57:12 UTC/bin/sh -c #(nop) ARG TARGETOS=linux
2020-11-25 21:57:13 UTC/bin/sh -c #(nop) ARG TARGETARCH=amd64
2020-11-25 21:57:14 UTC/bin/sh -c #(nop) ARG TARGETVARIANT=
2020-11-25 21:57:15 UTC/bin/sh -c #(nop) ARG EASY_ADD_VER=0.7.1
2020-11-25 21:57:17 UTC/bin/sh -c #(nop) ADD a4e511620b86b31fa550010aeb73992f71cbf6bf6bcc354dde15f8adda23f3cf in /usr/bin/easy-add
2020-11-25 21:57:18 UTC|4 EASY_ADD_VER=0.7.1 TARGETARCH=amd64 TARGETOS=linux TARGETVARIANT= /bin/sh -c chmod +x /usr/bin/easy-add
2020-11-25 21:57:19 UTC|4 EASY_ADD_VER=0.7.1 TARGETARCH=amd64 TARGETOS=linux TARGETVARIANT= /bin/sh -c easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} --var version=1.2.0 --var app=restify --file {{.app}} --from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
2020-11-25 21:57:20 UTC|4 EASY_ADD_VER=0.7.1 TARGETARCH=amd64 TARGETOS=linux TARGETVARIANT= /bin/sh -c easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} --var version=1.4.7 --var app=rcon-cli --file {{.app}} --from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
2020-11-25 21:57:22 UTC|4 EASY_ADD_VER=0.7.1 TARGETARCH=amd64 TARGETOS=linux TARGETVARIANT= /bin/sh -c easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} --var version=0.1.7 --var app=mc-monitor --file {{.app}} --from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
2020-11-25 21:57:23 UTC|4 EASY_ADD_VER=0.7.1 TARGETARCH=amd64 TARGETOS=linux TARGETVARIANT= /bin/sh -c easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} --var version=1.5.0 --var app=mc-server-runner --file {{.app}} --from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
2020-11-25 21:57:25 UTC|4 EASY_ADD_VER=0.7.1 TARGETARCH=amd64 TARGETOS=linux TARGETVARIANT= /bin/sh -c easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} --var version=0.1.1 --var app=maven-metadata-release --file {{.app}} --from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
2020-11-25 21:57:26 UTC/bin/sh -c #(nop) COPY file:aa263b24afa25ef670695ee95b460ec10923e52ba9df8f1b765e542b4be25f7a in /usr/local/bin
2020-11-25 21:57:26 UTC/bin/sh -c #(nop) VOLUME [/data]
2020-11-25 21:57:28 UTC/bin/sh -c #(nop) COPY file:67bfd37268f3e0a3ae27ffbf01dc52f0e8ccf1fdfb0209eb90c9fdb493c9bc78 in /tmp/server.properties
2020-11-25 21:57:29 UTC/bin/sh -c #(nop) COPY file:c138279cc4d4c8878a64624b809cbab9fcb0fc3f53326be8df3b6b8f1f2a7ab8 in /tmp/log4j2.xml
2020-11-25 21:57:29 UTC/bin/sh -c #(nop) WORKDIR /data
2020-11-25 21:57:30 UTC/bin/sh -c #(nop) ENV UID=1000 GID=1000 MEMORY=1G TYPE=VANILLA VERSION=LATEST FORGEVERSION=RECOMMENDED SPONGEBRANCH=STABLE SPONGEVERSION= FABRICVERSION=LATEST LEVEL=world PVP=true DIFFICULTY=easy ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft LEVEL_TYPE=DEFAULT SERVER_PORT=25565 ONLINE_MODE=TRUE SERVER_NAME=Dedicated Server ENABLE_AUTOPAUSE=false AUTOPAUSE_TIMEOUT_EST=3600 AUTOPAUSE_TIMEOUT_KN=120 AUTOPAUSE_TIMEOUT_INIT=600 AUTOPAUSE_PERIOD=10
2020-11-25 21:57:33 UTC/bin/sh -c #(nop) COPY multi:e49e63d4b72ca941b88b92d1a9ab5e15d6eb1d4add173e83a0c735e4d298e57f in /
2020-11-25 21:57:34 UTC/bin/sh -c #(nop) COPY file:5aaa93834da3dcf770ab2ed7f0907ea51026dcf7534b14670c950dc6c9c89e6a in /
2020-11-25 21:57:35 UTC/bin/sh -c #(nop) ADD dir:1e4a9066ea10400772a3086d1c3b8c46fa90b09181f47dcdd7139c156ea599c8 in /autopause
2020-11-25 21:57:35 UTC|4 EASY_ADD_VER=0.7.1 TARGETARCH=amd64 TARGETOS=linux TARGETVARIANT= /bin/sh -c dos2unix /start* && chmod +x /start*
2020-11-25 21:57:36 UTC|4 EASY_ADD_VER=0.7.1 TARGETARCH=amd64 TARGETOS=linux TARGETVARIANT= /bin/sh -c dos2unix /health.sh && chmod +x /health.sh
2020-11-25 21:57:37 UTC|4 EASY_ADD_VER=0.7.1 TARGETARCH=amd64 TARGETOS=linux TARGETVARIANT= /bin/sh -c dos2unix /autopause/* && chmod +x /autopause/*.sh
2020-11-25 21:57:38 UTC/bin/sh -c #(nop) ENTRYPOINT ["/start"]
2020-11-25 21:57:39 UTC/bin/sh -c #(nop) HEALTHCHECK &{["CMD-SHELL" "/health.sh"] "0s" "0s" "1m0s" '\x00'}
2020-11-25 21:57:40 UTC/bin/sh -c #(nop) LABEL org.opencontainers.image.created=2020-11-25T21:56:46Z
2020-11-25 21:57:41 UTC/bin/sh -c #(nop) LABEL org.opencontainers.image.documentation=https://github.com/itzg/docker-minecraft-server
2020-11-25 21:57:42 UTC/bin/sh -c #(nop) LABEL org.opencontainers.image.revision=3497b0639194e124da3bd7b811ef6b6a2d2ffb9d
2020-11-25 21:57:43 UTC/bin/sh -c #(nop) LABEL org.opencontainers.image.source=https://github.com/itzg/docker-minecraft-server
2020-11-25 21:57:44 UTC/bin/sh -c #(nop) LABEL org.opencontainers.image.url=https://github.com/itzg/docker-minecraft-server
Please be careful as this will not just delete the reference but also the actual content!
For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.