Diff of the two buildlogs: -- --- b1/build.log 2021-07-18 23:23:33.628285211 +0000 +++ b2/build.log 2021-07-18 23:48:13.908554642 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Jul 18 10:32:33 -12 2021 -I: pbuilder-time-stamp: 1626647554 +I: Current time: Mon Jul 19 13:24:31 +14 2021 +I: pbuilder-time-stamp: 1626650671 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration @@ -16,8 +16,8 @@ I: copying [./prometheus_2.24.1+ds-1.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' -gpgv: keyblock resource '/tmp/dpkg-verify-sig.oTGgmFPy/trustedkeys.kbx': General error -gpgv: Signature made Wed Jan 20 05:11:07 2021 -12 +gpgv: keyblock resource '/tmp/dpkg-verify-sig.dQ7JiCzI/trustedkeys.kbx': General error +gpgv: Signature made Thu Jan 21 07:11:07 2021 +14 gpgv: using RSA key DAA6EFF1C627EA1C26B1A692AA230FC45F8C27B1 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./prometheus_2.24.1+ds-1.dsc @@ -39,135 +39,169 @@ dpkg-source: info: applying 14-Disable_wal_test_goleak.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/29873/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/11448/tmp/hooks/D01_modify_environment starting +debug: Running on ff64a. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash' +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/11448/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/11448/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=3' - DISTRIBUTION='' - HOME='/root' - HOST_ARCH='armhf' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="1" [2]="4" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.1.4(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=6' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='a6ac2c9093cb44b3a1203dda82493129' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='29873' - PS1='# ' - PS2='> ' + INVOCATION_ID=835594ce99aa4ad5b053effebb211c34 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=11448 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/tmp.wYxJ7Jh4d1/pbuilderrc_YnTO --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.wYxJ7Jh4d1/b1 --logfile b1/build.log prometheus_2.24.1+ds-1.dsc' - SUDO_GID='113' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:8000/' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/tmp.wYxJ7Jh4d1/pbuilderrc_LnEE --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.wYxJ7Jh4d1/b2 --logfile b2/build.log --extrapackages usrmerge prometheus_2.24.1+ds-1.dsc' + SUDO_GID=114 + SUDO_UID=109 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:8000/ I: uname -a - Linux cbxi4a 5.10.0-7-armmp #1 SMP Debian 5.10.40-1 (2021-05-28) armv7l GNU/Linux + Linux i-capture-the-hostname 5.10.0-7-arm64 #1 SMP Debian 5.10.40-1 (2021-05-28) aarch64 GNU/Linux I: ls -l /bin total 3580 - -rwxr-xr-x 1 root root 816764 Jun 21 14:26 bash - -rwxr-xr-x 3 root root 26052 Jul 20 2020 bunzip2 - -rwxr-xr-x 3 root root 26052 Jul 20 2020 bzcat - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Jul 20 2020 bzdiff - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Sep 4 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Jul 20 2020 bzgrep - -rwxr-xr-x 3 root root 26052 Jul 20 2020 bzip2 - -rwxr-xr-x 1 root root 9636 Jul 20 2020 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 20 2020 bzmore - -rwxr-xr-x 1 root root 26668 Sep 22 2020 cat - -rwxr-xr-x 1 root root 43104 Sep 22 2020 chgrp - -rwxr-xr-x 1 root root 38984 Sep 22 2020 chmod - -rwxr-xr-x 1 root root 43112 Sep 22 2020 chown - -rwxr-xr-x 1 root root 92616 Sep 22 2020 cp - -rwxr-xr-x 1 root root 75524 Dec 10 2020 dash - -rwxr-xr-x 1 root root 75880 Sep 22 2020 date - -rwxr-xr-x 1 root root 55436 Sep 22 2020 dd - -rwxr-xr-x 1 root root 59912 Sep 22 2020 df - -rwxr-xr-x 1 root root 96764 Sep 22 2020 dir - -rwxr-xr-x 1 root root 55012 Feb 7 02:38 dmesg - lrwxrwxrwx 1 root root 8 Nov 6 2019 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Nov 6 2019 domainname -> hostname - -rwxr-xr-x 1 root root 22508 Sep 22 2020 echo - -rwxr-xr-x 1 root root 28 Nov 9 2020 egrep - -rwxr-xr-x 1 root root 22496 Sep 22 2020 false - -rwxr-xr-x 1 root root 28 Nov 9 2020 fgrep - -rwxr-xr-x 1 root root 47492 Feb 7 02:38 findmnt - -rwsr-xr-x 1 root root 26076 Feb 26 04:12 fusermount - -rwxr-xr-x 1 root root 124508 Nov 9 2020 grep - -rwxr-xr-x 2 root root 2346 Mar 2 11:30 gunzip - -rwxr-xr-x 1 root root 6376 Mar 2 11:30 gzexe - -rwxr-xr-x 1 root root 64212 Mar 2 11:30 gzip - -rwxr-xr-x 1 root root 13784 Nov 6 2019 hostname - -rwxr-xr-x 1 root root 43180 Sep 22 2020 ln - -rwxr-xr-x 1 root root 35068 Feb 7 2020 login - -rwxr-xr-x 1 root root 96764 Sep 22 2020 ls - -rwxr-xr-x 1 root root 99940 Feb 7 02:38 lsblk - -rwxr-xr-x 1 root root 51408 Sep 22 2020 mkdir - -rwxr-xr-x 1 root root 43184 Sep 22 2020 mknod - -rwxr-xr-x 1 root root 30780 Sep 22 2020 mktemp - -rwxr-xr-x 1 root root 34408 Feb 7 02:38 more - -rwsr-xr-x 1 root root 34400 Feb 7 02:38 mount - -rwxr-xr-x 1 root root 9824 Feb 7 02:38 mountpoint - -rwxr-xr-x 1 root root 88524 Sep 22 2020 mv - lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 18 03:38 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 26652 Sep 22 2020 pwd - lrwxrwxrwx 1 root root 4 Jun 21 14:26 rbash -> bash - -rwxr-xr-x 1 root root 30740 Sep 22 2020 readlink - -rwxr-xr-x 1 root root 43104 Sep 22 2020 rm - -rwxr-xr-x 1 root root 30732 Sep 22 2020 rmdir - -rwxr-xr-x 1 root root 14144 Sep 27 2020 run-parts - -rwxr-xr-x 1 root root 76012 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jul 17 21:28 sh -> dash - -rwxr-xr-x 1 root root 22532 Sep 22 2020 sleep - -rwxr-xr-x 1 root root 55360 Sep 22 2020 stty - -rwsr-xr-x 1 root root 46704 Feb 7 02:38 su - -rwxr-xr-x 1 root root 22532 Sep 22 2020 sync - -rwxr-xr-x 1 root root 340872 Feb 16 21:55 tar - -rwxr-xr-x 1 root root 9808 Sep 27 2020 tempfile - -rwxr-xr-x 1 root root 67696 Sep 22 2020 touch - -rwxr-xr-x 1 root root 22496 Sep 22 2020 true - -rwxr-xr-x 1 root root 9636 Feb 26 04:12 ulockmgr_server - -rwsr-xr-x 1 root root 22108 Feb 7 02:38 umount - -rwxr-xr-x 1 root root 22520 Sep 22 2020 uname - -rwxr-xr-x 2 root root 2346 Mar 2 11:30 uncompress - -rwxr-xr-x 1 root root 96764 Sep 22 2020 vdir - -rwxr-xr-x 1 root root 38512 Feb 7 02:38 wdctl - lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Mar 2 11:30 zcat - -rwxr-xr-x 1 root root 1678 Mar 2 11:30 zcmp - -rwxr-xr-x 1 root root 5880 Mar 2 11:30 zdiff - -rwxr-xr-x 1 root root 29 Mar 2 11:30 zegrep - -rwxr-xr-x 1 root root 29 Mar 2 11:30 zfgrep - -rwxr-xr-x 1 root root 2081 Mar 2 11:30 zforce - -rwxr-xr-x 1 root root 7585 Mar 2 11:30 zgrep - -rwxr-xr-x 1 root root 2206 Mar 2 11:30 zless - -rwxr-xr-x 1 root root 1842 Mar 2 11:30 zmore - -rwxr-xr-x 1 root root 4553 Mar 2 11:30 znew -I: user script /srv/workspace/pbuilder/29873/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 816764 Jun 22 16:26 bash + -rwxr-xr-x 3 root root 26052 Jul 21 2020 bunzip2 + -rwxr-xr-x 3 root root 26052 Jul 21 2020 bzcat + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Jul 21 2020 bzdiff + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Sep 5 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Jul 21 2020 bzgrep + -rwxr-xr-x 3 root root 26052 Jul 21 2020 bzip2 + -rwxr-xr-x 1 root root 9636 Jul 21 2020 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 21 2020 bzmore + -rwxr-xr-x 1 root root 26668 Sep 23 2020 cat + -rwxr-xr-x 1 root root 43104 Sep 23 2020 chgrp + -rwxr-xr-x 1 root root 38984 Sep 23 2020 chmod + -rwxr-xr-x 1 root root 43112 Sep 23 2020 chown + -rwxr-xr-x 1 root root 92616 Sep 23 2020 cp + -rwxr-xr-x 1 root root 75524 Dec 11 2020 dash + -rwxr-xr-x 1 root root 75880 Sep 23 2020 date + -rwxr-xr-x 1 root root 55436 Sep 23 2020 dd + -rwxr-xr-x 1 root root 59912 Sep 23 2020 df + -rwxr-xr-x 1 root root 96764 Sep 23 2020 dir + -rwxr-xr-x 1 root root 55012 Feb 8 04:38 dmesg + lrwxrwxrwx 1 root root 8 Nov 8 2019 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Nov 8 2019 domainname -> hostname + -rwxr-xr-x 1 root root 22508 Sep 23 2020 echo + -rwxr-xr-x 1 root root 28 Nov 10 2020 egrep + -rwxr-xr-x 1 root root 22496 Sep 23 2020 false + -rwxr-xr-x 1 root root 28 Nov 10 2020 fgrep + -rwxr-xr-x 1 root root 47492 Feb 8 04:38 findmnt + -rwsr-xr-x 1 root root 26076 Feb 27 06:12 fusermount + -rwxr-xr-x 1 root root 124508 Nov 10 2020 grep + -rwxr-xr-x 2 root root 2346 Mar 3 13:30 gunzip + -rwxr-xr-x 1 root root 6376 Mar 3 13:30 gzexe + -rwxr-xr-x 1 root root 64212 Mar 3 13:30 gzip + -rwxr-xr-x 1 root root 13784 Nov 8 2019 hostname + -rwxr-xr-x 1 root root 43180 Sep 23 2020 ln + -rwxr-xr-x 1 root root 35068 Feb 8 2020 login + -rwxr-xr-x 1 root root 96764 Sep 23 2020 ls + -rwxr-xr-x 1 root root 99940 Feb 8 04:38 lsblk + -rwxr-xr-x 1 root root 51408 Sep 23 2020 mkdir + -rwxr-xr-x 1 root root 43184 Sep 23 2020 mknod + -rwxr-xr-x 1 root root 30780 Sep 23 2020 mktemp + -rwxr-xr-x 1 root root 34408 Feb 8 04:38 more + -rwsr-xr-x 1 root root 34400 Feb 8 04:38 mount + -rwxr-xr-x 1 root root 9824 Feb 8 04:38 mountpoint + -rwxr-xr-x 1 root root 88524 Sep 23 2020 mv + lrwxrwxrwx 1 root root 8 Nov 8 2019 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 19 05:38 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 26652 Sep 23 2020 pwd + lrwxrwxrwx 1 root root 4 Jun 22 16:26 rbash -> bash + -rwxr-xr-x 1 root root 30740 Sep 23 2020 readlink + -rwxr-xr-x 1 root root 43104 Sep 23 2020 rm + -rwxr-xr-x 1 root root 30732 Sep 23 2020 rmdir + -rwxr-xr-x 1 root root 14144 Sep 28 2020 run-parts + -rwxr-xr-x 1 root root 76012 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Jul 19 13:25 sh -> bash + lrwxrwxrwx 1 root root 4 Jul 18 23:26 sh.distrib -> dash + -rwxr-xr-x 1 root root 22532 Sep 23 2020 sleep + -rwxr-xr-x 1 root root 55360 Sep 23 2020 stty + -rwsr-xr-x 1 root root 46704 Feb 8 04:38 su + -rwxr-xr-x 1 root root 22532 Sep 23 2020 sync + -rwxr-xr-x 1 root root 340872 Feb 17 23:55 tar + -rwxr-xr-x 1 root root 9808 Sep 28 2020 tempfile + -rwxr-xr-x 1 root root 67696 Sep 23 2020 touch + -rwxr-xr-x 1 root root 22496 Sep 23 2020 true + -rwxr-xr-x 1 root root 9636 Feb 27 06:12 ulockmgr_server + -rwsr-xr-x 1 root root 22108 Feb 8 04:38 umount + -rwxr-xr-x 1 root root 22520 Sep 23 2020 uname + -rwxr-xr-x 2 root root 2346 Mar 3 13:30 uncompress + -rwxr-xr-x 1 root root 96764 Sep 23 2020 vdir + -rwxr-xr-x 1 root root 38512 Feb 8 04:38 wdctl + lrwxrwxrwx 1 root root 8 Nov 8 2019 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Mar 3 13:30 zcat + -rwxr-xr-x 1 root root 1678 Mar 3 13:30 zcmp + -rwxr-xr-x 1 root root 5880 Mar 3 13:30 zdiff + -rwxr-xr-x 1 root root 29 Mar 3 13:30 zegrep + -rwxr-xr-x 1 root root 29 Mar 3 13:30 zfgrep + -rwxr-xr-x 1 root root 2081 Mar 3 13:30 zforce + -rwxr-xr-x 1 root root 7585 Mar 3 13:30 zgrep + -rwxr-xr-x 1 root root 2206 Mar 3 13:30 zless + -rwxr-xr-x 1 root root 1842 Mar 3 13:30 zmore + -rwxr-xr-x 1 root root 4553 Mar 3 13:30 znew +I: user script /srv/workspace/pbuilder/11448/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -632,7 +666,7 @@ Get: 329 http://deb.debian.org/debian bullseye/main armhf golang-grpc-gateway armhf 1.6.4-2+b16 [1657 kB] Get: 330 http://deb.debian.org/debian bullseye/main armhf golang-github-gophercloud-gophercloud-dev all 0.12.0-1 [628 kB] Get: 331 http://deb.debian.org/debian bullseye/main armhf golang-github-opentracing-contrib-go-stdlib-dev all 1.0.0-1 [12.9 kB] -Fetched 138 MB in 22s (6287 kB/s) +Fetched 138 MB in 49s (2833 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package bsdextrautils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19398 files and directories currently installed.) @@ -1972,8 +2006,45 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + libfile-find-rule-perl libnumber-compare-perl libtext-glob-perl +The following NEW packages will be installed: + libfile-find-rule-perl libnumber-compare-perl libtext-glob-perl usrmerge +0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. +Need to get 59.5 kB of archives. +After this operation, 157 kB of additional disk space will be used. +Get:1 http://deb.debian.org/debian bullseye/main armhf libnumber-compare-perl all 0.03-1.1 [6956 B] +Get:2 http://deb.debian.org/debian bullseye/main armhf libtext-glob-perl all 0.11-1 [8888 B] +Get:3 http://deb.debian.org/debian bullseye/main armhf libfile-find-rule-perl all 0.34-1 [30.6 kB] +Get:4 http://deb.debian.org/debian bullseye/main armhf usrmerge all 25 [13.0 kB] +debconf: delaying package configuration, since apt-utils is not installed +Fetched 59.5 kB in 0s (542 kB/s) +Selecting previously unselected package libnumber-compare-perl. +(Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 78477 files and directories currently installed.) +Preparing to unpack .../libnumber-compare-perl_0.03-1.1_all.deb ... +Unpacking libnumber-compare-perl (0.03-1.1) ... +Selecting previously unselected package libtext-glob-perl. +Preparing to unpack .../libtext-glob-perl_0.11-1_all.deb ... +Unpacking libtext-glob-perl (0.11-1) ... +Selecting previously unselected package libfile-find-rule-perl. +Preparing to unpack .../libfile-find-rule-perl_0.34-1_all.deb ... +Unpacking libfile-find-rule-perl (0.34-1) ... +Selecting previously unselected package usrmerge. +Preparing to unpack .../archives/usrmerge_25_all.deb ... +Unpacking usrmerge (25) ... +Setting up libtext-glob-perl (0.11-1) ... +Setting up libnumber-compare-perl (0.03-1.1) ... +Setting up libfile-find-rule-perl (0.34-1) ... +Setting up usrmerge (25) ... +The system has been successfully converted. +Processing triggers for man-db (2.9.4-2) ... +Not building database; man-db/auto-update is not 'true'. I: Building the package -I: Running cd /build/prometheus-2.24.1+ds/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../prometheus_2.24.1+ds-1_source.changes +hostname: Name or service not known +I: Running cd /build/prometheus-2.24.1+ds/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../prometheus_2.24.1+ds-1_source.changes dpkg-buildpackage: info: source package prometheus dpkg-buildpackage: info: source version 2.24.1+ds-1 dpkg-buildpackage: info: source distribution unstable @@ -2003,88 +2074,139 @@ debian/rules override_dh_auto_build make[1]: Entering directory '/build/prometheus-2.24.1+ds' dh_auto_build -- -ldflags " -X github.com/prometheus/common/version.Version=2.24.1+ds -X github.com/prometheus/common/version.Revision=2.24.1+ds-1 -X github.com/prometheus/common/version.Branch=debian/sid -X github.com/prometheus/common/version.BuildUser=pkg-go-maintainers@lists.alioth.debian.org -X github.com/prometheus/common/version.BuildDate=20210120-14:35:15 -X github.com/prometheus/common/version.GoVersion=go1.15.9" - cd build && go install -trimpath -v -p 3 -ldflags " -X github.com/prometheus/common/version.Version=2.24.1+ds -X github.com/prometheus/common/version.Revision=2.24.1+ds-1 -X github.com/prometheus/common/version.Branch=debian/sid -X github.com/prometheus/common/version.BuildUser=pkg-go-maintainers@lists.alioth.debian.org -X github.com/prometheus/common/version.BuildDate=20210120-14:35:15 -X github.com/prometheus/common/version.GoVersion=go1.15.9" github.com/prometheus/prometheus/cmd/prometheus github.com/prometheus/prometheus/cmd/promtool github.com/prometheus/prometheus/config github.com/prometheus/prometheus/discovery github.com/prometheus/prometheus/discovery/azure github.com/prometheus/prometheus/discovery/consul github.com/prometheus/prometheus/discovery/digitalocean github.com/prometheus/prometheus/discovery/dns github.com/prometheus/prometheus/discovery/dockerswarm github.com/prometheus/prometheus/discovery/ec2 github.com/prometheus/prometheus/discovery/eureka github.com/prometheus/prometheus/discovery/file github.com/prometheus/prometheus/discovery/gce github.com/prometheus/prometheus/discovery/hetzner github.com/prometheus/prometheus/discovery/install github.com/prometheus/prometheus/discovery/marathon github.com/prometheus/prometheus/discovery/openstack github.com/prometheus/prometheus/discovery/refresh github.com/prometheus/prometheus/discovery/targetgroup github.com/prometheus/prometheus/discovery/triton github.com/prometheus/prometheus/discovery/zookeeper github.com/prometheus/prometheus/notifier github.com/prometheus/prometheus/pkg/exemplar github.com/prometheus/prometheus/pkg/gate github.com/prometheus/prometheus/pkg/labels github.com/prometheus/prometheus/pkg/logging github.com/prometheus/prometheus/pkg/modtimevfs github.com/prometheus/prometheus/pkg/pool github.com/prometheus/prometheus/pkg/relabel github.com/prometheus/prometheus/pkg/rulefmt github.com/prometheus/prometheus/pkg/runtime github.com/prometheus/prometheus/pkg/textparse github.com/prometheus/prometheus/pkg/timestamp github.com/prometheus/prometheus/pkg/value github.com/prometheus/prometheus/prompb github.com/prometheus/prometheus/promql github.com/prometheus/prometheus/promql/parser github.com/prometheus/prometheus/rules github.com/prometheus/prometheus/scrape github.com/prometheus/prometheus/storage github.com/prometheus/prometheus/storage/remote github.com/prometheus/prometheus/template github.com/prometheus/prometheus/tsdb github.com/prometheus/prometheus/tsdb/chunkenc github.com/prometheus/prometheus/tsdb/chunks github.com/prometheus/prometheus/tsdb/encoding github.com/prometheus/prometheus/tsdb/errors github.com/prometheus/prometheus/tsdb/fileutil github.com/prometheus/prometheus/tsdb/goversion github.com/prometheus/prometheus/tsdb/index github.com/prometheus/prometheus/tsdb/record github.com/prometheus/prometheus/tsdb/tombstones github.com/prometheus/prometheus/tsdb/tsdbutil github.com/prometheus/prometheus/tsdb/wal github.com/prometheus/prometheus/util/httputil github.com/prometheus/prometheus/util/stats github.com/prometheus/prometheus/util/strutil github.com/prometheus/prometheus/util/teststorage github.com/prometheus/prometheus/util/testutil github.com/prometheus/prometheus/util/treecache github.com/prometheus/prometheus/web github.com/prometheus/prometheus/web/api/v1 -internal/cpu + cd build && go install -trimpath -v -p 6 -ldflags " -X github.com/prometheus/common/version.Version=2.24.1+ds -X github.com/prometheus/common/version.Revision=2.24.1+ds-1 -X github.com/prometheus/common/version.Branch=debian/sid -X github.com/prometheus/common/version.BuildUser=pkg-go-maintainers@lists.alioth.debian.org -X github.com/prometheus/common/version.BuildDate=20210120-14:35:15 -X github.com/prometheus/common/version.GoVersion=go1.15.9" github.com/prometheus/prometheus/cmd/prometheus github.com/prometheus/prometheus/cmd/promtool github.com/prometheus/prometheus/config github.com/prometheus/prometheus/discovery github.com/prometheus/prometheus/discovery/azure github.com/prometheus/prometheus/discovery/consul github.com/prometheus/prometheus/discovery/digitalocean github.com/prometheus/prometheus/discovery/dns github.com/prometheus/prometheus/discovery/dockerswarm github.com/prometheus/prometheus/discovery/ec2 github.com/prometheus/prometheus/discovery/eureka github.com/prometheus/prometheus/discovery/file github.com/prometheus/prometheus/discovery/gce github.com/prometheus/prometheus/discovery/hetzner github.com/prometheus/prometheus/discovery/install github.com/prometheus/prometheus/discovery/marathon github.com/prometheus/prometheus/discovery/openstack github.com/prometheus/prometheus/discovery/refresh github.com/prometheus/prometheus/discovery/targetgroup github.com/prometheus/prometheus/discovery/triton github.com/prometheus/prometheus/discovery/zookeeper github.com/prometheus/prometheus/notifier github.com/prometheus/prometheus/pkg/exemplar github.com/prometheus/prometheus/pkg/gate github.com/prometheus/prometheus/pkg/labels github.com/prometheus/prometheus/pkg/logging github.com/prometheus/prometheus/pkg/modtimevfs github.com/prometheus/prometheus/pkg/pool github.com/prometheus/prometheus/pkg/relabel github.com/prometheus/prometheus/pkg/rulefmt github.com/prometheus/prometheus/pkg/runtime github.com/prometheus/prometheus/pkg/textparse github.com/prometheus/prometheus/pkg/timestamp github.com/prometheus/prometheus/pkg/value github.com/prometheus/prometheus/prompb github.com/prometheus/prometheus/promql github.com/prometheus/prometheus/promql/parser github.com/prometheus/prometheus/rules github.com/prometheus/prometheus/scrape github.com/prometheus/prometheus/storage github.com/prometheus/prometheus/storage/remote github.com/prometheus/prometheus/template github.com/prometheus/prometheus/tsdb github.com/prometheus/prometheus/tsdb/chunkenc github.com/prometheus/prometheus/tsdb/chunks github.com/prometheus/prometheus/tsdb/encoding github.com/prometheus/prometheus/tsdb/errors github.com/prometheus/prometheus/tsdb/fileutil github.com/prometheus/prometheus/tsdb/goversion github.com/prometheus/prometheus/tsdb/index github.com/prometheus/prometheus/tsdb/record github.com/prometheus/prometheus/tsdb/tombstones github.com/prometheus/prometheus/tsdb/tsdbutil github.com/prometheus/prometheus/tsdb/wal github.com/prometheus/prometheus/util/httputil github.com/prometheus/prometheus/util/stats github.com/prometheus/prometheus/util/strutil github.com/prometheus/prometheus/util/teststorage github.com/prometheus/prometheus/util/testutil github.com/prometheus/prometheus/util/treecache github.com/prometheus/prometheus/web github.com/prometheus/prometheus/web/api/v1 +internal/race internal/unsafeheader +internal/cpu runtime/internal/sys -internal/race -runtime/internal/math -sync/atomic math/bits -internal/bytealg -runtime/internal/atomic -math unicode/utf8 -runtime +sync/atomic unicode -internal/testlog +runtime/internal/math +internal/bytealg +runtime/internal/atomic encoding +internal/testlog unicode/utf16 container/list crypto/internal/subtle crypto/subtle -internal/nettrace vendor/golang.org/x/crypto/cryptobyte/asn1 +internal/nettrace vendor/golang.org/x/crypto/internal/subtle -runtime/cgo golang.org/x/sys/internal/unsafeheader +math github.com/Azure/azure-sdk-for-go/version +runtime/cgo github.com/Azure/go-autorest/autorest/to golang.org/x/net/internal/iana github.com/docker/docker/api github.com/docker/docker/api/types/events github.com/docker/docker/api/types/image -github.com/aws/aws-sdk-go/aws/client/metadata -github.com/aws/aws-sdk-go/internal/sdkmath google.golang.org/grpc/serviceconfig +github.com/aws/aws-sdk-go/aws/client/metadata +runtime github.com/golang/groupcache/lru go.opencensus.io go.opencensus.io/trace/internal go.opencensus.io/internal/tagencoding -github.com/prometheus/prometheus/pkg/value github.com/prometheus/prometheus/tsdb/goversion -internal/reflectlite +github.com/prometheus/prometheus/pkg/value +github.com/aws/aws-sdk-go/internal/sdkmath sync -internal/singleflight -math/rand +internal/reflectlite github.com/aws/aws-sdk-go/internal/sync/singleflight google.golang.org/grpc/internal/buffer +internal/singleflight google.golang.org/grpc/internal/grpcsync +math/rand github.com/josharian/intern errors sort internal/oserror +github.com/hashicorp/golang-lru/simplelru +io +vendor/golang.org/x/net/dns/dnsmessage strconv syscall -io +github.com/beorn7/perks/quantile +container/heap strings -reflect bytes +hash +hash/crc32 +crypto/internal/randutil +crypto/hmac +reflect +crypto +crypto/rc4 bufio +regexp/syntax +vendor/golang.org/x/crypto/hkdf +vendor/golang.org/x/text/transform +path +github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg +html +text/tabwriter +golang.org/x/text/transform time internal/syscall/unix internal/syscall/execenv -regexp/syntax +golang.org/x/crypto/blowfish +encoding/base32 +github.com/hashicorp/go-immutable-radix +github.com/docker/docker/api/types/versions +github.com/aws/aws-sdk-go/internal/sdkio +github.com/aws/aws-sdk-go/internal/strings +regexp +github.com/aws/aws-sdk-go/internal/sdkuri +google.golang.org/grpc/encoding +hash/fnv +golang.org/x/text/width +hash/adler32 +google.golang.org/api/internal/third_party/uritemplates +github.com/jpillora/backoff +github.com/aws/aws-sdk-go/internal/sdkrand context internal/poll -regexp +google.golang.org/grpc/backoff +google.golang.org/grpc/internal/grpcrand +google.golang.org/grpc/keepalive +go.uber.org/atomic +google.golang.org/grpc/internal/backoff +github.com/prometheus/prometheus/pkg/timestamp +google.golang.org/grpc/tap +golang.org/x/sync/errgroup +github.com/prometheus/prometheus/pkg/gate internal/fmtsort encoding/binary os -github.com/jpillora/backoff -hash -hash/crc32 encoding/base64 -crypto/cipher -crypto -fmt -crypto/internal/randutil crypto/sha512 +crypto/cipher +crypto/md5 +crypto/ed25519/internal/edwards25519 +crypto/sha1 +crypto/sha256 +encoding/pem crypto/aes +fmt crypto/des -crypto/ed25519/internal/edwards25519 -crypto/hmac -crypto/md5 +path/filepath +vendor/golang.org/x/crypto/chacha20 +net +vendor/golang.org/x/crypto/poly1305 +github.com/cespare/xxhash +vendor/golang.org/x/crypto/chacha20poly1305 +io/ioutil +golang.org/x/sys/unix +runtime/debug +os/signal +github.com/prometheus/procfs/internal/util +internal/lazyregexp +github.com/docker/docker/api/types/mount +github.com/aws/aws-sdk-go/internal/shareddefaults github.com/alecthomas/units encoding/json github.com/go-logfmt/logfmt @@ -2092,367 +2214,315 @@ log compress/flate math/big -github.com/go-kit/kit/log -compress/gzip -crypto/rc4 -crypto/sha1 -github.com/go-kit/kit/log/level encoding/hex -crypto/sha256 -encoding/pem -path/filepath -vendor/golang.org/x/net/dns/dnsmessage -io/ioutil net/url -crypto/rand -crypto/elliptic -encoding/asn1 -crypto/ed25519 -crypto/rsa -crypto/dsa -net -vendor/golang.org/x/crypto/chacha20 -vendor/golang.org/x/crypto/cryptobyte -crypto/x509/pkix -vendor/golang.org/x/crypto/poly1305 -vendor/golang.org/x/crypto/chacha20poly1305 -crypto/ecdsa vendor/golang.org/x/crypto/curve25519 -vendor/golang.org/x/crypto/hkdf -vendor/golang.org/x/text/transform +compress/gzip +github.com/go-kit/kit/log vendor/golang.org/x/text/unicode/bidi vendor/golang.org/x/text/unicode/norm -vendor/golang.org/x/text/secure/bidirule +github.com/go-kit/kit/log/level vendor/golang.org/x/net/http2/hpack +vendor/golang.org/x/text/secure/bidirule mime mime/quotedprintable -vendor/golang.org/x/net/idna net/http/internal -path -github.com/beorn7/perks/quantile -github.com/cespare/xxhash github.com/golang/protobuf/proto -github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg github.com/prometheus/common/model +crypto/rand +crypto/elliptic +encoding/asn1 +crypto/ed25519 +crypto/rsa +crypto/dsa github.com/prometheus/procfs/internal/fs -github.com/prometheus/procfs/internal/util -golang.org/x/sys/unix -github.com/golang/protobuf/ptypes/any -github.com/golang/protobuf/ptypes/duration -github.com/golang/protobuf/ptypes/timestamp -github.com/matttproud/golang_protobuf_extensions/pbutil -github.com/golang/protobuf/ptypes -github.com/prometheus/client_model/go -runtime/debug -crypto/x509 -net/textproto -vendor/golang.org/x/net/http/httpproxy -github.com/prometheus/client_golang/prometheus/internal -vendor/golang.org/x/net/http/httpguts -mime/multipart -github.com/prometheus/procfs +vendor/golang.org/x/net/idna golang.org/x/net/internal/timeseries -html -crypto/tls text/template/parse -text/template -text/tabwriter -os/signal +vendor/golang.org/x/crypto/cryptobyte +crypto/x509/pkix github.com/oklog/run +crypto/ecdsa github.com/pkg/errors -github.com/prometheus/common/promlog go/token +golang.org/x/text/unicode/bidi +github.com/prometheus/common/promlog go/scanner -html/template +golang.org/x/text/unicode/norm +text/template go/ast -net/http/httptrace -net/http -internal/lazyregexp -golang.org/x/text/transform -go/doc -golang.org/x/text/unicode/bidi golang.org/x/text/secure/bidirule -gopkg.in/alecthomas/kingpin.v2 -golang.org/x/text/unicode/norm -golang.org/x/net/idna -golang.org/x/net/http/httpguts -github.com/prometheus/common/promlog/flag golang.org/x/net/http2/hpack gopkg.in/yaml.v2 -golang.org/x/crypto/blowfish +crypto/x509 +net/textproto +vendor/golang.org/x/net/http/httpproxy +github.com/golang/protobuf/ptypes/any +github.com/golang/protobuf/ptypes/duration +github.com/golang/protobuf/ptypes/timestamp +github.com/matttproud/golang_protobuf_extensions/pbutil +github.com/prometheus/procfs +vendor/golang.org/x/net/http/httpguts +html/template +mime/multipart +github.com/golang/protobuf/ptypes +github.com/prometheus/client_model/go +go/doc +github.com/prometheus/client_golang/prometheus/internal +golang.org/x/net/idna +crypto/tls golang.org/x/crypto/bcrypt -github.com/prometheus/prometheus/vendor/github.com/prometheus/exporter-toolkit/web/kingpinflag github.com/prometheus/prometheus/discovery/targetgroup github.com/prometheus/prometheus/pkg/labels -github.com/prometheus/prometheus/pkg/relabel encoding/xml +gopkg.in/alecthomas/kingpin.v2 +github.com/prometheus/prometheus/pkg/relabel +golang.org/x/net/http/httpguts github.com/Azure/go-autorest/autorest/date flag runtime/trace github.com/Azure/go-autorest/autorest/validation -expvar -github.com/prometheus/common/expfmt -golang.org/x/net/trace -golang.org/x/net/http2 -github.com/Azure/go-autorest/tracing -testing -github.com/prometheus/client_golang/prometheus -github.com/dgrijalva/jwt-go -net/http/cookiejar -github.com/mwitkow/go-conntrack -github.com/prometheus/common/version -github.com/Azure/go-autorest/autorest/adal -github.com/Azure/go-autorest/logger -github.com/prometheus/common/config -github.com/prometheus/prometheus/discovery/refresh github.com/prometheus/prometheus/util/strutil -github.com/hashicorp/go-cleanhttp -github.com/Azure/go-autorest/autorest -github.com/prometheus/prometheus/vendor/github.com/prometheus/exporter-toolkit/web -github.com/prometheus/prometheus/discovery github.com/mattn/go-isatty -github.com/prometheus/prometheus/config -github.com/mattn/go-colorable -github.com/fatih/color -github.com/hashicorp/go-rootcerts -github.com/hashicorp/go-hclog -github.com/hashicorp/golang-lru/simplelru -github.com/hashicorp/go-immutable-radix -github.com/Azure/go-autorest/autorest/azure -github.com/armon/go-metrics +testing github.com/mitchellh/mapstructure -github.com/hashicorp/serf/coordinate -github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2018-10-01/compute -github.com/hashicorp/consul/api -github.com/Azure/azure-sdk-for-go/services/network/mgmt/2018-10-01/network -github.com/prometheus/prometheus/discovery/consul +github.com/mattn/go-colorable github.com/google/go-querystring/query -golang.org/x/net/context/ctxhttp -golang.org/x/oauth2/internal -golang.org/x/oauth2 -github.com/digitalocean/godo -github.com/prometheus/prometheus/discovery/digitalocean -encoding/base32 +github.com/fatih/color golang.org/x/crypto/ed25519 golang.org/x/net/bpf +github.com/hashicorp/go-hclog +github.com/dgrijalva/jwt-go golang.org/x/net/internal/socket -golang.org/x/net/ipv4 -golang.org/x/net/ipv6 -github.com/miekg/dns +github.com/prometheus/common/promlog/flag +github.com/prometheus/prometheus/vendor/github.com/prometheus/exporter-toolkit/web/kingpinflag github.com/docker/docker/api/types/blkiodev -github.com/docker/docker/api/types/mount github.com/docker/docker/api/types/strslice github.com/docker/go-connections/nat github.com/docker/go-units -github.com/docker/docker/api/types/container -github.com/docker/docker/api/types/versions github.com/docker/docker/api/types/filters -github.com/docker/docker/api/types/network github.com/opencontainers/go-digest github.com/opencontainers/image-spec/specs-go -github.com/opencontainers/image-spec/specs-go/v1 -github.com/docker/docker/api/types/registry +github.com/docker/docker/api/types/container github.com/gogo/protobuf/proto -github.com/prometheus/prometheus/discovery/dns +golang.org/x/net/ipv4 +golang.org/x/net/ipv6 +github.com/docker/docker/api/types/network +net/http/httptrace +github.com/hashicorp/go-rootcerts +github.com/opencontainers/image-spec/specs-go/v1 google.golang.org/grpc/codes +net/http +github.com/docker/docker/api/types/registry google.golang.org/genproto/googleapis/rpc/status google.golang.org/grpc/grpclog +github.com/sirupsen/logrus google.golang.org/grpc/connectivity google.golang.org/grpc/internal google.golang.org/grpc/status -github.com/containerd/containerd/errdefs -github.com/sirupsen/logrus -github.com/containerd/containerd/log -github.com/containerd/containerd/platforms github.com/docker/distribution/digestset +github.com/containerd/containerd/errdefs github.com/docker/distribution/reference github.com/docker/docker/api/types/time -github.com/docker/distribution/registry/api/errcode -github.com/docker/docker/errdefs +github.com/miekg/dns golang.org/x/net/internal/socks -github.com/docker/docker/api/types/swarm/runtime -github.com/docker/docker/api/types/swarm -golang.org/x/net/proxy -github.com/docker/docker/api/types -github.com/docker/go-connections/sockets -github.com/docker/docker/api/types/volume +github.com/containerd/containerd/log github.com/docker/go-connections/tlsconfig -net/http/httputil +github.com/containerd/containerd/platforms +golang.org/x/net/proxy github.com/aws/aws-sdk-go/aws/awserr +github.com/jmespath/go-jmespath github.com/aws/aws-sdk-go/internal/ini -github.com/docker/docker/client -github.com/aws/aws-sdk-go/internal/shareddefaults -github.com/aws/aws-sdk-go/aws/credentials github.com/aws/aws-sdk-go/aws/endpoints -github.com/prometheus/prometheus/discovery/dockerswarm -github.com/aws/aws-sdk-go/internal/sdkio -github.com/jmespath/go-jmespath +github.com/aws/aws-sdk-go/aws/credentials github.com/aws/aws-sdk-go/aws/awsutil -github.com/aws/aws-sdk-go/internal/sdkrand -github.com/aws/aws-sdk-go/internal/strings -github.com/aws/aws-sdk-go/internal/sdkuri os/exec -github.com/aws/aws-sdk-go/aws/credentials/processcreds -github.com/prometheus/prometheus/discovery/eureka gopkg.in/fsnotify/fsnotify.v1 -github.com/prometheus/prometheus/discovery/file -cloud.google.com/go/compute/metadata +github.com/aws/aws-sdk-go/aws/credentials/processcreds golang.org/x/oauth2/jws -golang.org/x/oauth2/jwt os/user -golang.org/x/oauth2/google -google.golang.org/api/internal/third_party/uritemplates -github.com/aws/aws-sdk-go/aws -google.golang.org/api/googleapi -google.golang.org/grpc/backoff google.golang.org/grpc/credentials/internal -github.com/aws/aws-sdk-go/aws/request google.golang.org/grpc/credentials +github.com/docker/docker/api/types/swarm/runtime google.golang.org/grpc/metadata +github.com/docker/docker/api/types/swarm google.golang.org/grpc/attributes google.golang.org/grpc/resolver +github.com/docker/docker/api/types google.golang.org/grpc/balancer google.golang.org/grpc/balancer/base +github.com/docker/docker/api/types/volume +google.golang.org/grpc/encoding/proto +google.golang.org/grpc/balancer/roundrobin +google.golang.org/grpc/internal/balancerload +google.golang.org/grpc/binarylog/grpc_binarylog_v1 +google.golang.org/grpc/internal/channelz +google.golang.org/grpc/internal/envconfig +google.golang.org/grpc/internal/binarylog +google.golang.org/grpc/internal/resolver/dns +google.golang.org/grpc/internal/resolver/passthrough +google.golang.org/grpc/internal/syscall +expvar +github.com/prometheus/common/expfmt +golang.org/x/net/trace +golang.org/x/net/http2 +github.com/Azure/go-autorest/tracing +github.com/prometheus/client_golang/prometheus +net/http/cookiejar +github.com/Azure/go-autorest/logger +github.com/hashicorp/go-cleanhttp +github.com/Azure/go-autorest/autorest/adal +github.com/armon/go-metrics +golang.org/x/net/context/ctxhttp +golang.org/x/oauth2/internal +golang.org/x/oauth2 +github.com/hashicorp/serf/coordinate +github.com/Azure/go-autorest/autorest +github.com/digitalocean/godo +github.com/hashicorp/consul/api +github.com/mwitkow/go-conntrack +github.com/prometheus/common/version +github.com/prometheus/prometheus/discovery/refresh +github.com/prometheus/common/config +github.com/Azure/go-autorest/autorest/azure +github.com/docker/distribution/registry/api/errcode +github.com/docker/docker/errdefs +github.com/prometheus/prometheus/vendor/github.com/prometheus/exporter-toolkit/web +github.com/prometheus/prometheus/discovery +github.com/docker/go-connections/sockets +net/http/httputil +github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2018-10-01/compute +github.com/prometheus/prometheus/config +github.com/Azure/azure-sdk-for-go/services/network/mgmt/2018-10-01/network +github.com/prometheus/prometheus/discovery/digitalocean +github.com/prometheus/prometheus/discovery/consul +github.com/prometheus/prometheus/discovery/dns +github.com/docker/docker/client +github.com/aws/aws-sdk-go/aws +github.com/prometheus/prometheus/discovery/eureka +github.com/prometheus/prometheus/discovery/file +cloud.google.com/go/compute/metadata +golang.org/x/oauth2/jwt +github.com/aws/aws-sdk-go/aws/request +google.golang.org/api/googleapi +golang.org/x/oauth2/google +google.golang.org/grpc/peer +google.golang.org/grpc/stats +google.golang.org/grpc/internal/transport +google.golang.org/grpc/naming github.com/aws/aws-sdk-go/aws/client github.com/aws/aws-sdk-go/private/protocol github.com/aws/aws-sdk-go/aws/corehandlers github.com/aws/aws-sdk-go/private/protocol/rest github.com/aws/aws-sdk-go/private/protocol/query/queryutil +github.com/prometheus/prometheus/discovery/dockerswarm github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil github.com/aws/aws-sdk-go/aws/signer/v4 -github.com/aws/aws-sdk-go/private/protocol/query github.com/aws/aws-sdk-go/aws/ec2metadata -github.com/aws/aws-sdk-go/service/sts +github.com/aws/aws-sdk-go/private/protocol/query github.com/aws/aws-sdk-go/aws/csm -github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds +github.com/aws/aws-sdk-go/service/sts github.com/aws/aws-sdk-go/private/protocol/json/jsonutil -github.com/aws/aws-sdk-go/service/sts/stsiface -github.com/aws/aws-sdk-go/aws/credentials/stscreds -github.com/aws/aws-sdk-go/aws/credentials/endpointcreds +github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds github.com/aws/aws-sdk-go/private/protocol/ec2query -github.com/aws/aws-sdk-go/aws/defaults +google.golang.org/grpc +github.com/aws/aws-sdk-go/aws/credentials/endpointcreds github.com/aws/aws-sdk-go/service/ec2 -github.com/aws/aws-sdk-go/aws/session -github.com/prometheus/prometheus/discovery/azure -google.golang.org/grpc/internal/grpcrand -google.golang.org/grpc/balancer/roundrobin -google.golang.org/grpc/encoding -google.golang.org/grpc/internal/backoff -google.golang.org/grpc/encoding/proto -google.golang.org/grpc/internal/balancerload -google.golang.org/grpc/binarylog/grpc_binarylog_v1 -google.golang.org/grpc/internal/channelz -google.golang.org/grpc/internal/binarylog -google.golang.org/grpc/internal/envconfig -google.golang.org/grpc/internal/resolver/dns -google.golang.org/grpc/internal/resolver/passthrough -google.golang.org/grpc/internal/syscall -google.golang.org/grpc/keepalive -google.golang.org/grpc/peer -google.golang.org/grpc/stats -google.golang.org/grpc/tap -google.golang.org/grpc/naming -google.golang.org/grpc/internal/transport +github.com/aws/aws-sdk-go/aws/defaults +github.com/aws/aws-sdk-go/service/sts/stsiface +github.com/aws/aws-sdk-go/aws/credentials/stscreds go.opencensus.io/internal go.opencensus.io/trace/tracestate go.opencensus.io/trace +github.com/aws/aws-sdk-go/aws/session go.opencensus.io/trace/propagation go.opencensus.io/plugin/ochttp/propagation/b3 go.opencensus.io/resource go.opencensus.io/metric/metricdata runtime/pprof -go.opencensus.io/tag -google.golang.org/grpc -go.opencensus.io/stats/internal -go.opencensus.io/stats go.opencensus.io/metric/metricproducer -go.opencensus.io/stats/view -go.opencensus.io/plugin/ochttp google.golang.org/api/googleapi/transport google.golang.org/api/transport/cert +google.golang.org/api/transport/http/internal/propagation github.com/googleapis/gax-go/v2 -google.golang.org/api/internal google.golang.org/api/internal/gensupport +google.golang.org/api/internal +go.opencensus.io/tag google.golang.org/api/option +go.opencensus.io/stats/internal +go.opencensus.io/stats google.golang.org/api/option/internaloption -google.golang.org/api/transport/http/internal/propagation +go.opencensus.io/stats/view github.com/hetznercloud/hcloud-go/hcloud/schema -google.golang.org/api/transport/http -github.com/hetznercloud/hcloud-go/hcloud -google.golang.org/api/compute/v1 -github.com/prometheus/prometheus/discovery/hetzner github.com/prometheus/prometheus/discovery/marathon +github.com/hetznercloud/hcloud-go/hcloud github.com/gophercloud/gophercloud +go.opencensus.io/plugin/ochttp +github.com/prometheus/prometheus/discovery/hetzner github.com/gophercloud/gophercloud/pagination -github.com/gophercloud/gophercloud/openstack/identity/v2/tenants -github.com/gophercloud/gophercloud/openstack/identity/v2/tokens +google.golang.org/api/transport/http github.com/gophercloud/gophercloud/openstack/identity/v3/tokens +github.com/gophercloud/gophercloud/openstack/identity/v2/tenants github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/ec2tokens +google.golang.org/api/compute/v1 +github.com/gophercloud/gophercloud/openstack/identity/v2/tokens github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/oauth1 github.com/gophercloud/gophercloud/openstack/utils -github.com/gophercloud/gophercloud/openstack github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/floatingips +github.com/gophercloud/gophercloud/openstack github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/hypervisors github.com/gophercloud/gophercloud/openstack/compute/v2/servers -github.com/prometheus/prometheus/discovery/openstack github.com/prometheus/prometheus/discovery/triton github.com/samuel/go-zookeeper/zk -github.com/prometheus/prometheus/util/treecache -github.com/prometheus/prometheus/discovery/zookeeper database/sql/driver github.com/asaskevich/govalidator +github.com/prometheus/prometheus/discovery/openstack +github.com/prometheus/prometheus/util/treecache +github.com/prometheus/prometheus/discovery/zookeeper github.com/go-openapi/errors github.com/mailru/easyjson/jlexer github.com/mailru/easyjson/buffer -github.com/mailru/easyjson/jwriter gopkg.in/mgo.v2/internal/json -gopkg.in/mgo.v2/bson -github.com/go-openapi/strfmt -github.com/go-openapi/swag -github.com/go-openapi/jsonpointer +github.com/mailru/easyjson/jwriter github.com/PuerkitoBio/urlesc -golang.org/x/text/width +github.com/go-openapi/swag github.com/PuerkitoBio/purell -github.com/go-openapi/jsonreference -github.com/go-openapi/spec -github.com/go-openapi/analysis -github.com/go-openapi/loads -github.com/go-openapi/validate/vendor/github.com/go-openapi/runtime -github.com/go-openapi/validate -github.com/prometheus/alertmanager/api/v2/models -go.uber.org/atomic -github.com/prometheus/prometheus/notifier -github.com/prometheus/prometheus/discovery/ec2 -github.com/prometheus/prometheus/discovery/gce golang.org/x/time/rate github.com/prometheus/prometheus/pkg/logging github.com/prometheus/prometheus/pkg/runtime -container/heap +github.com/go-openapi/jsonpointer github.com/edsrzf/mmap-go +github.com/go-openapi/jsonreference +gopkg.in/mgo.v2/bson github.com/opentracing/opentracing-go/log -github.com/prometheus/prometheus/pkg/timestamp -github.com/prometheus/prometheus/tsdb/chunkenc +github.com/go-openapi/spec github.com/opentracing/opentracing-go -github.com/prometheus/prometheus/discovery/install +github.com/prometheus/prometheus/tsdb/chunkenc github.com/prometheus/prometheus/tsdb/errors github.com/prometheus/prometheus/tsdb/fileutil +github.com/prometheus/prometheus/tsdb/chunks github.com/oklog/ulid +github.com/go-openapi/strfmt github.com/prometheus/prometheus/tsdb/encoding -github.com/prometheus/prometheus/tsdb/chunks -github.com/golang/snappy -github.com/prometheus/prometheus/tsdb/tombstones -golang.org/x/sync/errgroup -github.com/prometheus/prometheus/tsdb/record -github.com/prometheus/prometheus/util/stats -github.com/prometheus/prometheus/tsdb/wal github.com/prometheus/prometheus/tsdb/tsdbutil github.com/prometheus/prometheus/tsdb/index github.com/prometheus/prometheus/storage -github.com/davecgh/go-spew/spew -github.com/pmezard/go-difflib/difflib +github.com/go-openapi/analysis +github.com/go-openapi/validate/vendor/github.com/go-openapi/runtime github.com/prometheus/prometheus/promql/parser +github.com/prometheus/prometheus/tsdb/tombstones +github.com/prometheus/prometheus/tsdb/record +github.com/golang/snappy +github.com/go-openapi/loads +github.com/prometheus/prometheus/tsdb/wal +github.com/go-openapi/validate +github.com/prometheus/prometheus/util/stats +github.com/davecgh/go-spew/spew github.com/prometheus/prometheus/tsdb +github.com/prometheus/alertmanager/api/v2/models +github.com/pmezard/go-difflib/difflib gopkg.in/yaml.v3 +github.com/prometheus/prometheus/notifier net/http/httptest github.com/prometheus/prometheus/vendor/go.uber.org/goleak/internal/stack github.com/prometheus/prometheus/vendor/go.uber.org/goleak @@ -2460,10 +2530,9 @@ github.com/prometheus/prometheus/pkg/exemplar github.com/prometheus/prometheus/pkg/textparse github.com/stretchr/testify/assert +github.com/prometheus/prometheus/scrape github.com/opentracing/opentracing-go/ext -hash/fnv github.com/opentracing-contrib/go-stdlib/nethttp -github.com/prometheus/prometheus/scrape github.com/stretchr/testify/require github.com/prometheus/client_golang/prometheus/promauto github.com/gogo/protobuf/protoc-gen-gogo/descriptor @@ -2471,34 +2540,36 @@ github.com/prometheus/prometheus/util/testutil github.com/prometheus/prometheus/util/teststorage github.com/prometheus/prometheus/promql -github.com/julienschmidt/httprouter github.com/gogo/protobuf/gogoproto -github.com/prometheus/common/route -hash/adler32 github.com/prometheus/prometheus/prompb +github.com/julienschmidt/httprouter +github.com/prometheus/common/route compress/zlib github.com/modern-go/concurrent +github.com/prometheus/prometheus/storage/remote github.com/modern-go/reflect2 github.com/prometheus/prometheus/template github.com/prometheus/prometheus/pkg/rulefmt -github.com/prometheus/prometheus/storage/remote github.com/prometheus/prometheus/rules github.com/prometheus/prometheus/util/httputil -github.com/json-iterator/go -github.com/prometheus/prometheus/pkg/gate golang.org/x/net/netutil internal/profile archive/tar +github.com/json-iterator/go github.com/google/pprof/profile net/http/pprof github.com/prometheus/client_golang/api github.com/prometheus/client_golang/prometheus/testutil/promlint github.com/prometheus/prometheus/pkg/modtimevfs +github.com/prometheus/prometheus/discovery/azure github.com/prometheus/client_golang/api/prometheus/v1 github.com/prometheus/prometheus/web/api/v1 -github.com/prometheus/prometheus/cmd/promtool github.com/prometheus/prometheus/web +github.com/prometheus/prometheus/discovery/gce +github.com/prometheus/prometheus/discovery/ec2 +github.com/prometheus/prometheus/discovery/install github.com/prometheus/prometheus/cmd/prometheus +github.com/prometheus/prometheus/cmd/promtool build/bin/prometheus --help-man > build/prometheus.1 build/bin/promtool --help-man > build/promtool.1 # Fix whatis entry. @@ -2508,7 +2579,7 @@ debian/rules override_dh_auto_test make[1]: Entering directory '/build/prometheus-2.24.1+ds' dh_auto_test -- -timeout 60m -short - cd build && go test -vet=off -v -p 3 -timeout 60m -short github.com/prometheus/prometheus/cmd/prometheus github.com/prometheus/prometheus/cmd/promtool github.com/prometheus/prometheus/config github.com/prometheus/prometheus/discovery github.com/prometheus/prometheus/discovery/azure github.com/prometheus/prometheus/discovery/consul github.com/prometheus/prometheus/discovery/digitalocean github.com/prometheus/prometheus/discovery/dns github.com/prometheus/prometheus/discovery/dockerswarm github.com/prometheus/prometheus/discovery/ec2 github.com/prometheus/prometheus/discovery/eureka github.com/prometheus/prometheus/discovery/file github.com/prometheus/prometheus/discovery/gce github.com/prometheus/prometheus/discovery/hetzner github.com/prometheus/prometheus/discovery/install github.com/prometheus/prometheus/discovery/marathon github.com/prometheus/prometheus/discovery/openstack github.com/prometheus/prometheus/discovery/refresh github.com/prometheus/prometheus/discovery/targetgroup github.com/prometheus/prometheus/discovery/triton github.com/prometheus/prometheus/discovery/zookeeper github.com/prometheus/prometheus/notifier github.com/prometheus/prometheus/pkg/exemplar github.com/prometheus/prometheus/pkg/gate github.com/prometheus/prometheus/pkg/labels github.com/prometheus/prometheus/pkg/logging github.com/prometheus/prometheus/pkg/modtimevfs github.com/prometheus/prometheus/pkg/pool github.com/prometheus/prometheus/pkg/relabel github.com/prometheus/prometheus/pkg/rulefmt github.com/prometheus/prometheus/pkg/runtime github.com/prometheus/prometheus/pkg/textparse github.com/prometheus/prometheus/pkg/timestamp github.com/prometheus/prometheus/pkg/value github.com/prometheus/prometheus/prompb github.com/prometheus/prometheus/promql github.com/prometheus/prometheus/promql/parser github.com/prometheus/prometheus/rules github.com/prometheus/prometheus/scrape github.com/prometheus/prometheus/storage github.com/prometheus/prometheus/storage/remote github.com/prometheus/prometheus/template github.com/prometheus/prometheus/tsdb github.com/prometheus/prometheus/tsdb/chunkenc github.com/prometheus/prometheus/tsdb/chunks github.com/prometheus/prometheus/tsdb/encoding github.com/prometheus/prometheus/tsdb/errors github.com/prometheus/prometheus/tsdb/fileutil github.com/prometheus/prometheus/tsdb/goversion github.com/prometheus/prometheus/tsdb/index github.com/prometheus/prometheus/tsdb/record github.com/prometheus/prometheus/tsdb/test github.com/prometheus/prometheus/tsdb/tombstones github.com/prometheus/prometheus/tsdb/tsdbutil github.com/prometheus/prometheus/tsdb/wal github.com/prometheus/prometheus/util/httputil github.com/prometheus/prometheus/util/stats github.com/prometheus/prometheus/util/strutil github.com/prometheus/prometheus/util/teststorage github.com/prometheus/prometheus/util/testutil github.com/prometheus/prometheus/util/treecache github.com/prometheus/prometheus/web github.com/prometheus/prometheus/web/api/v1 + cd build && go test -vet=off -v -p 6 -timeout 60m -short github.com/prometheus/prometheus/cmd/prometheus github.com/prometheus/prometheus/cmd/promtool github.com/prometheus/prometheus/config github.com/prometheus/prometheus/discovery github.com/prometheus/prometheus/discovery/azure github.com/prometheus/prometheus/discovery/consul github.com/prometheus/prometheus/discovery/digitalocean github.com/prometheus/prometheus/discovery/dns github.com/prometheus/prometheus/discovery/dockerswarm github.com/prometheus/prometheus/discovery/ec2 github.com/prometheus/prometheus/discovery/eureka github.com/prometheus/prometheus/discovery/file github.com/prometheus/prometheus/discovery/gce github.com/prometheus/prometheus/discovery/hetzner github.com/prometheus/prometheus/discovery/install github.com/prometheus/prometheus/discovery/marathon github.com/prometheus/prometheus/discovery/openstack github.com/prometheus/prometheus/discovery/refresh github.com/prometheus/prometheus/discovery/targetgroup github.com/prometheus/prometheus/discovery/triton github.com/prometheus/prometheus/discovery/zookeeper github.com/prometheus/prometheus/notifier github.com/prometheus/prometheus/pkg/exemplar github.com/prometheus/prometheus/pkg/gate github.com/prometheus/prometheus/pkg/labels github.com/prometheus/prometheus/pkg/logging github.com/prometheus/prometheus/pkg/modtimevfs github.com/prometheus/prometheus/pkg/pool github.com/prometheus/prometheus/pkg/relabel github.com/prometheus/prometheus/pkg/rulefmt github.com/prometheus/prometheus/pkg/runtime github.com/prometheus/prometheus/pkg/textparse github.com/prometheus/prometheus/pkg/timestamp github.com/prometheus/prometheus/pkg/value github.com/prometheus/prometheus/prompb github.com/prometheus/prometheus/promql github.com/prometheus/prometheus/promql/parser github.com/prometheus/prometheus/rules github.com/prometheus/prometheus/scrape github.com/prometheus/prometheus/storage github.com/prometheus/prometheus/storage/remote github.com/prometheus/prometheus/template github.com/prometheus/prometheus/tsdb github.com/prometheus/prometheus/tsdb/chunkenc github.com/prometheus/prometheus/tsdb/chunks github.com/prometheus/prometheus/tsdb/encoding github.com/prometheus/prometheus/tsdb/errors github.com/prometheus/prometheus/tsdb/fileutil github.com/prometheus/prometheus/tsdb/goversion github.com/prometheus/prometheus/tsdb/index github.com/prometheus/prometheus/tsdb/record github.com/prometheus/prometheus/tsdb/test github.com/prometheus/prometheus/tsdb/tombstones github.com/prometheus/prometheus/tsdb/tsdbutil github.com/prometheus/prometheus/tsdb/wal github.com/prometheus/prometheus/util/httputil github.com/prometheus/prometheus/util/stats github.com/prometheus/prometheus/util/strutil github.com/prometheus/prometheus/util/teststorage github.com/prometheus/prometheus/util/testutil github.com/prometheus/prometheus/util/treecache github.com/prometheus/prometheus/web github.com/prometheus/prometheus/web/api/v1 === RUN TestComputeExternalURL --- PASS: TestComputeExternalURL (0.00s) === RUN TestFailedStartupExitCode @@ -2526,7 +2597,7 @@ main_test.go:201: skipping test in short mode. --- SKIP: TestWALSegmentSizeBounds (0.00s) === RUN TestTimeMetrics ---- PASS: TestTimeMetrics (0.09s) +--- PASS: TestTimeMetrics (0.15s) === RUN TestStartupInterrupt main_unix_test.go:30: skipping test in short mode. --- SKIP: TestStartupInterrupt (0.00s) @@ -2534,58 +2605,58 @@ query_log_test.go:409: skipping test in short mode. --- SKIP: TestQueryLog (0.00s) PASS -ok github.com/prometheus/prometheus/cmd/prometheus 0.650s +ok github.com/prometheus/prometheus/cmd/prometheus 0.888s === RUN TestBackfill backfill_test.go:490: Test:Empty file. backfill_test.go:490: Test:Multiple samples with different timestamp for different series. BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE -01FAXXTE1807G3GRD6CWT1D7R8 1565133713989 1565133713991 2ms 2 2 2 717 +01FAXZSPMM5WA5EWY1QDMGYQB3 1565133713989 1565133713991 2ms 2 2 2 717 backfill_test.go:490: Test:Multiple samples separated by 3 days. BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE -01FAXXTEGPJ1BJ8XFPKPRY8VYB 1565133713989 1565133713990 1ms 1 1 1 620 -01FAXXTEXYGG5PK5SA6FZ6BTCN 1565392913989 1565392913990 1ms 1 1 1 620 -01FAXXTFBK572Z2B873MH8J3TQ 1565652113989 1565652113990 1ms 1 1 1 620 +01FAXZSQ6VP4RDGBV6B2W9AGFQ 1565133713989 1565133713990 1ms 1 1 1 620 +01FAXZSQKTN0W4514HXM84EAW9 1565392913989 1565392913990 1ms 1 1 1 620 +01FAXZSR64S9WHXJNEDW04BCCE 1565652113989 1565652113990 1ms 1 1 1 620 backfill_test.go:490: Test:Unordered samples from multiple series, which end in different blocks. BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE -01FAXXTFNS41VM7PYSD67Z6JJ4 1565133713989 1565133713990 1ms 1 1 1 620 -01FAXXTG93N64PH3M7RDGC7H0Q 1565392913989 1565392913990 1ms 1 1 1 619 +01FAXZSRRMXDHMYMYVQ9R23E0G 1565133713989 1565133713990 1ms 1 1 1 620 +01FAXZSS6KPHYAJ5K24M3CHMKJ 1565392913989 1565392913990 1ms 1 1 1 619 backfill_test.go:490: Test:Multiple samples with different timestamp for the same series. BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE -01FAXXTGXB05JFPF2HF5GNRRKW 1565133713989 1565133715990 2.001s 3 2 2 723 +01FAXZSSP3JK24RBHSTZ173KW8 1565133713989 1565133715990 2.001s 3 2 2 723 backfill_test.go:490: Test:Multiple samples that end up in different blocks. BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE -01FAXXTHK8JEX87WHHX9X6RJ89 1565133713989 1565133713990 1ms 1 1 1 620 -01FAXXTJ9KK06QBYRANW9SJZ67 1565144513989 1565144513990 1ms 1 1 1 620 -01FAXXTJR5581H1FGTVHJ7XHEN 1565155313989 1565155313990 1ms 1 1 1 620 -01FAXXTK71FZ3YPTVF1JY3EHD2 1565166113989 1565166113990 1ms 1 1 1 620 +01FAXZST0BV2W87F1GEVY5NHSR 1565133713989 1565133713990 1ms 1 1 1 620 +01FAXZST83FCA8GE26J1VGA6KP 1565144513989 1565144513990 1ms 1 1 1 620 +01FAXZSTQXPQ3WWJZYEW43ZN6F 1565155313989 1565155313990 1ms 1 1 1 620 +01FAXZSTYRZTZNKR3SFG8P3QS4 1565166113989 1565166113990 1ms 1 1 1 620 backfill_test.go:490: Test:Number of samples are greater than the sample batch size. BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE -01FAXXTKQTQT84BA9FNNC4CP6N 1565133713989 1565133716001 2.012s 3 1 1 625 -01FAXXTM6N0M9672RTEJG6221N 1565144513989 1565144513990 1ms 1 1 1 620 -01FAXXTMQSR75MMEBSQXDBF6F6 1565155313989 1565155314001 12ms 2 1 1 622 -01FAXXTN378DJ2RF4GTAAV65VF 1565166113989 1565166113990 1ms 1 1 1 620 +01FAXZSVG6MGAT0D9FZ9MHFT7R 1565133713989 1565133716001 2.012s 3 1 1 625 +01FAXZSVX2S2RES2RNK4J4EMK8 1565144513989 1565144513990 1ms 1 1 1 620 +01FAXZSW33GVBSDZSZNEJM0CCA 1565155313989 1565155314001 12ms 2 1 1 622 +01FAXZSWGMT05JHGFPEYFFBH6M 1565166113989 1565166113990 1ms 1 1 1 620 backfill_test.go:490: Test:Sample with no #HELP or #TYPE keyword. BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE -01FAXXTNJXDQHQXJED458V7509 6900000 6900001 1ms 1 1 1 600 +01FAXZSX2P70NYCE36RRB3F3CF 6900000 6900001 1ms 1 1 1 600 backfill_test.go:490: Test:Sample without newline after # EOF. BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE -01FAXXTP22AZJGVWFVN3EY88BQ 6900000 6900001 1ms 1 1 1 531 +01FAXZSXJT45BK362JN1KVZDEW 6900000 6900001 1ms 1 1 1 531 backfill_test.go:490: Test:Bare sample. BLOCK ULID MIN TIME MAX TIME DURATION NUM SAMPLES NUM CHUNKS NUM SERIES SIZE -01FAXXTPQW1B2PC2T7JG2DVXQR 1001000 1001001 1ms 1 1 1 521 +01FAXZSY2GE6MP40DW60AFKCN3 1001000 1001001 1ms 1 1 1 521 backfill_test.go:490: Test:Does not have timestamp. backfill_test.go:490: Test:Has a bad type information. backfill_test.go:490: Test:No newline. backfill_test.go:490: Test:No EOF. backfill_test.go:490: Test:Data after EOF. ---- PASS: TestBackfill (9.75s) +--- PASS: TestBackfill (8.33s) === RUN TestQueryRange ---- PASS: TestQueryRange (0.04s) +--- PASS: TestQueryRange (0.01s) === RUN TestQueryInstant ---- PASS: TestQueryInstant (0.01s) +--- PASS: TestQueryInstant (0.02s) === RUN TestRulesUnitTest === RUN TestRulesUnitTest/Passing_Unit_Tests Unit Testing: ./testdata/unittest.yml @@ -2621,37 +2692,37 @@ exp:"{__name__=\"test\"} 1E+00" got:"{__name__=\"test\"} 0E+00" ---- PASS: TestRulesUnitTest (17.48s) - --- PASS: TestRulesUnitTest/Passing_Unit_Tests (16.67s) - --- PASS: TestRulesUnitTest/Bad_input_series (0.26s) - --- PASS: TestRulesUnitTest/Bad_PromQL (0.11s) - --- PASS: TestRulesUnitTest/Bad_rules_(syntax_error) (0.10s) - --- PASS: TestRulesUnitTest/Bad_rules_(error_evaluating) (0.13s) - --- PASS: TestRulesUnitTest/Simple_failing_test (0.20s) +--- PASS: TestRulesUnitTest (12.75s) + --- PASS: TestRulesUnitTest/Passing_Unit_Tests (11.93s) + --- PASS: TestRulesUnitTest/Bad_input_series (0.13s) + --- PASS: TestRulesUnitTest/Bad_PromQL (0.29s) + --- PASS: TestRulesUnitTest/Bad_rules_(syntax_error) (0.12s) + --- PASS: TestRulesUnitTest/Bad_rules_(error_evaluating) (0.14s) + --- PASS: TestRulesUnitTest/Simple_failing_test (0.14s) PASS -ok github.com/prometheus/prometheus/cmd/promtool 27.619s +ok github.com/prometheus/prometheus/cmd/promtool 21.530s === RUN TestYAMLRoundtrip ---- PASS: TestYAMLRoundtrip (0.05s) +--- PASS: TestYAMLRoundtrip (0.10s) === RUN TestLoadConfig ---- PASS: TestLoadConfig (0.03s) +--- PASS: TestLoadConfig (0.02s) === RUN TestScrapeIntervalLarger --- PASS: TestScrapeIntervalLarger (0.00s) === RUN TestElideSecrets ---- PASS: TestElideSecrets (0.04s) +--- PASS: TestElideSecrets (0.03s) === RUN TestLoadConfigRuleFilesAbsolutePath --- PASS: TestLoadConfigRuleFilesAbsolutePath (0.00s) === RUN TestBadConfigs ---- PASS: TestBadConfigs (0.30s) +--- PASS: TestBadConfigs (0.05s) === RUN TestBadStaticConfigsJSON ---- PASS: TestBadStaticConfigsJSON (0.01s) +--- PASS: TestBadStaticConfigsJSON (0.00s) === RUN TestBadStaticConfigsYML ---- PASS: TestBadStaticConfigsYML (0.01s) +--- PASS: TestBadStaticConfigsYML (0.00s) === RUN TestEmptyConfig --- PASS: TestEmptyConfig (0.00s) === RUN TestEmptyGlobalBlock --- PASS: TestEmptyGlobalBlock (0.00s) PASS -ok github.com/prometheus/prometheus/config 1.110s +ok github.com/prometheus/prometheus/config 0.402s === RUN TestTargetUpdatesOrder === RUN TestTargetUpdatesOrder/Single_TP_no_updates === RUN TestTargetUpdatesOrder/Multiple_TPs_no_updates @@ -2664,7 +2735,7 @@ === RUN TestTargetUpdatesOrder/Multiple_TPs_initials_and_new_groups === RUN TestTargetUpdatesOrder/One_TP_initials_arrive_after_other_TP_updates. === RUN TestTargetUpdatesOrder/Single_TP_empty_update_in_between ---- PASS: TestTargetUpdatesOrder (1.42s) +--- PASS: TestTargetUpdatesOrder (1.41s) --- PASS: TestTargetUpdatesOrder/Single_TP_no_updates (0.00s) --- PASS: TestTargetUpdatesOrder/Multiple_TPs_no_updates (0.00s) --- PASS: TestTargetUpdatesOrder/Single_TP_empty_initials (0.01s) @@ -2673,9 +2744,9 @@ --- PASS: TestTargetUpdatesOrder/Multiple_TPs_initials_only (0.01s) --- PASS: TestTargetUpdatesOrder/Single_TP_initials_followed_by_empty_updates (0.01s) --- PASS: TestTargetUpdatesOrder/Single_TP_initials_and_new_groups (0.01s) - --- PASS: TestTargetUpdatesOrder/Multiple_TPs_initials_and_new_groups (0.52s) - --- PASS: TestTargetUpdatesOrder/One_TP_initials_arrive_after_other_TP_updates. (0.31s) - --- PASS: TestTargetUpdatesOrder/Single_TP_empty_update_in_between (0.35s) + --- PASS: TestTargetUpdatesOrder/Multiple_TPs_initials_and_new_groups (0.51s) + --- PASS: TestTargetUpdatesOrder/One_TP_initials_arrive_after_other_TP_updates. (0.30s) + --- PASS: TestTargetUpdatesOrder/Single_TP_empty_update_in_between (0.34s) === RUN TestTargetSetRecreatesTargetGroupsEveryRun --- PASS: TestTargetSetRecreatesTargetGroupsEveryRun (0.20s) === RUN TestDiscovererConfigs @@ -2691,11 +2762,11 @@ === RUN TestCoordinationWithReceiver === RUN TestCoordinationWithReceiver/Receiver_should_get_all_updates_even_when_one_provider_closes_its_channel === RUN TestCoordinationWithReceiver/Receiver_should_get_all_updates_even_when_the_channel_is_blocked ---- PASS: TestCoordinationWithReceiver (1.01s) +--- PASS: TestCoordinationWithReceiver (0.91s) --- PASS: TestCoordinationWithReceiver/Receiver_should_get_all_updates_even_when_one_provider_closes_its_channel (0.20s) - --- PASS: TestCoordinationWithReceiver/Receiver_should_get_all_updates_even_when_the_channel_is_blocked (0.80s) + --- PASS: TestCoordinationWithReceiver/Receiver_should_get_all_updates_even_when_the_channel_is_blocked (0.70s) PASS -ok github.com/prometheus/prometheus/discovery 3.509s +ok github.com/prometheus/prometheus/discovery 3.349s === RUN TestMapFromVMWithEmptyTags --- PASS: TestMapFromVMWithEmptyTags (0.00s) === RUN TestMapFromVMWithTags @@ -2707,7 +2778,7 @@ === RUN TestNewAzureResourceFromID --- PASS: TestNewAzureResourceFromID (0.00s) PASS -ok github.com/prometheus/prometheus/discovery/azure 0.217s +ok github.com/prometheus/prometheus/discovery/azure 0.036s === RUN TestConfiguredService --- PASS: TestConfiguredService (0.00s) === RUN TestConfiguredServiceWithTag @@ -2723,21 +2794,21 @@ === RUN TestAllOptions --- PASS: TestAllOptions (1.01s) === RUN TestGetDatacenterShouldReturnError ---- PASS: TestGetDatacenterShouldReturnError (0.05s) +--- PASS: TestGetDatacenterShouldReturnError (0.02s) PASS -ok github.com/prometheus/prometheus/discovery/consul 2.279s +ok github.com/prometheus/prometheus/discovery/consul 2.266s === RUN TestDigitalOceanSDRefresh === RUN TestDigitalOceanSDRefresh/item_0 === RUN TestDigitalOceanSDRefresh/item_1 === RUN TestDigitalOceanSDRefresh/item_2 === RUN TestDigitalOceanSDRefresh/item_3 ---- PASS: TestDigitalOceanSDRefresh (0.07s) +--- PASS: TestDigitalOceanSDRefresh (0.06s) --- PASS: TestDigitalOceanSDRefresh/item_0 (0.00s) --- PASS: TestDigitalOceanSDRefresh/item_1 (0.00s) --- PASS: TestDigitalOceanSDRefresh/item_2 (0.00s) --- PASS: TestDigitalOceanSDRefresh/item_3 (0.00s) PASS -ok github.com/prometheus/prometheus/discovery/digitalocean 0.263s +ok github.com/prometheus/prometheus/discovery/digitalocean 0.250s === RUN TestDNS === RUN TestDNS/A_record_query_with_error === PAUSE TestDNS/A_record_query_with_error @@ -2752,18 +2823,18 @@ === RUN TestDNS/SRV_record_query_with_empty_answer_(NXDOMAIN) === PAUSE TestDNS/SRV_record_query_with_empty_answer_(NXDOMAIN) === CONT TestDNS/A_record_query_with_error -=== CONT TestDNS/SRV_record_query === CONT TestDNS/SRV_record_query_with_empty_answer_(NXDOMAIN) === CONT TestDNS/SRV_record_query_with_unsupported_resource_records +=== CONT TestDNS/SRV_record_query === CONT TestDNS/AAAA_record_query === CONT TestDNS/A_record_query ---- PASS: TestDNS (0.01s) +--- PASS: TestDNS (0.00s) --- PASS: TestDNS/A_record_query_with_error (0.00s) - --- PASS: TestDNS/SRV_record_query (0.00s) --- PASS: TestDNS/SRV_record_query_with_empty_answer_(NXDOMAIN) (0.00s) - --- PASS: TestDNS/A_record_query (0.00s) - --- PASS: TestDNS/AAAA_record_query (0.00s) --- PASS: TestDNS/SRV_record_query_with_unsupported_resource_records (0.00s) + --- PASS: TestDNS/SRV_record_query (0.00s) + --- PASS: TestDNS/AAAA_record_query (0.00s) + --- PASS: TestDNS/A_record_query (0.00s) === RUN TestSDConfigUnmarshalYAML === RUN TestSDConfigUnmarshalYAML/valid_srv === RUN TestSDConfigUnmarshalYAML/valid_a @@ -2779,16 +2850,16 @@ --- PASS: TestSDConfigUnmarshalYAML/invalid_a_without_port (0.00s) --- PASS: TestSDConfigUnmarshalYAML/invalid_aaaa_without_port (0.00s) --- PASS: TestSDConfigUnmarshalYAML/invalid_empty_names (0.00s) - --- PASS: TestSDConfigUnmarshalYAML/invalid_unknown_dns_type (0.01s) + --- PASS: TestSDConfigUnmarshalYAML/invalid_unknown_dns_type (0.00s) PASS -ok github.com/prometheus/prometheus/discovery/dns 0.341s +ok github.com/prometheus/prometheus/discovery/dns 0.096s === RUN TestDockerSwarmNodesSDRefresh === RUN TestDockerSwarmNodesSDRefresh/item_0 === RUN TestDockerSwarmNodesSDRefresh/item_1 === RUN TestDockerSwarmNodesSDRefresh/item_2 === RUN TestDockerSwarmNodesSDRefresh/item_3 === RUN TestDockerSwarmNodesSDRefresh/item_4 ---- PASS: TestDockerSwarmNodesSDRefresh (0.08s) +--- PASS: TestDockerSwarmNodesSDRefresh (0.06s) --- PASS: TestDockerSwarmNodesSDRefresh/item_0 (0.00s) --- PASS: TestDockerSwarmNodesSDRefresh/item_1 (0.00s) --- PASS: TestDockerSwarmNodesSDRefresh/item_2 (0.00s) @@ -2810,7 +2881,7 @@ === RUN TestDockerSwarmSDServicesRefresh/item_12 === RUN TestDockerSwarmSDServicesRefresh/item_13 === RUN TestDockerSwarmSDServicesRefresh/item_14 ---- PASS: TestDockerSwarmSDServicesRefresh (0.05s) +--- PASS: TestDockerSwarmSDServicesRefresh (0.03s) --- PASS: TestDockerSwarmSDServicesRefresh/item_0 (0.00s) --- PASS: TestDockerSwarmSDServicesRefresh/item_1 (0.00s) --- PASS: TestDockerSwarmSDServicesRefresh/item_2 (0.00s) @@ -2831,7 +2902,7 @@ === RUN TestDockerSwarmSDServicesRefreshWithFilters/item_1 === RUN TestDockerSwarmSDServicesRefreshWithFilters/item_2 === RUN TestDockerSwarmSDServicesRefreshWithFilters/item_3 ---- PASS: TestDockerSwarmSDServicesRefreshWithFilters (0.03s) +--- PASS: TestDockerSwarmSDServicesRefreshWithFilters (0.01s) --- PASS: TestDockerSwarmSDServicesRefreshWithFilters/item_0 (0.00s) --- PASS: TestDockerSwarmSDServicesRefreshWithFilters/item_1 (0.00s) --- PASS: TestDockerSwarmSDServicesRefreshWithFilters/item_2 (0.00s) @@ -2864,7 +2935,7 @@ === RUN TestDockerSwarmTasksSDRefresh/item_24 === RUN TestDockerSwarmTasksSDRefresh/item_25 === RUN TestDockerSwarmTasksSDRefresh/item_26 ---- PASS: TestDockerSwarmTasksSDRefresh (0.08s) +--- PASS: TestDockerSwarmTasksSDRefresh (0.06s) --- PASS: TestDockerSwarmTasksSDRefresh/item_0 (0.00s) --- PASS: TestDockerSwarmTasksSDRefresh/item_1 (0.00s) --- PASS: TestDockerSwarmTasksSDRefresh/item_2 (0.00s) @@ -2877,7 +2948,7 @@ --- PASS: TestDockerSwarmTasksSDRefresh/item_9 (0.00s) --- PASS: TestDockerSwarmTasksSDRefresh/item_10 (0.00s) --- PASS: TestDockerSwarmTasksSDRefresh/item_11 (0.00s) - --- PASS: TestDockerSwarmTasksSDRefresh/item_12 (0.00s) + --- PASS: TestDockerSwarmTasksSDRefresh/item_12 (0.01s) --- PASS: TestDockerSwarmTasksSDRefresh/item_13 (0.00s) --- PASS: TestDockerSwarmTasksSDRefresh/item_14 (0.00s) --- PASS: TestDockerSwarmTasksSDRefresh/item_15 (0.00s) @@ -2893,20 +2964,20 @@ --- PASS: TestDockerSwarmTasksSDRefresh/item_25 (0.00s) --- PASS: TestDockerSwarmTasksSDRefresh/item_26 (0.00s) PASS -ok github.com/prometheus/prometheus/discovery/dockerswarm 0.422s +ok github.com/prometheus/prometheus/discovery/dockerswarm 0.303s ? github.com/prometheus/prometheus/discovery/ec2 [no test files] === RUN TestFetchApps ---- PASS: TestFetchApps (0.06s) +--- PASS: TestFetchApps (0.02s) === RUN Test500ErrorHttpResponse ---- PASS: Test500ErrorHttpResponse (0.02s) +--- PASS: Test500ErrorHttpResponse (0.00s) === RUN TestEurekaSDHandleError ---- PASS: TestEurekaSDHandleError (0.03s) +--- PASS: TestEurekaSDHandleError (0.01s) === RUN TestEurekaSDEmptyList ---- PASS: TestEurekaSDEmptyList (0.01s) +--- PASS: TestEurekaSDEmptyList (0.00s) === RUN TestEurekaSDSendGroup ---- PASS: TestEurekaSDSendGroup (0.04s) +--- PASS: TestEurekaSDSendGroup (0.01s) PASS -ok github.com/prometheus/prometheus/discovery/eureka 0.342s +ok github.com/prometheus/prometheus/discovery/eureka 0.208s === RUN TestInitialUpdate === RUN TestInitialUpdate/fixtures/valid.yml === PAUSE TestInitialUpdate/fixtures/valid.yml @@ -2915,8 +2986,8 @@ === CONT TestInitialUpdate/fixtures/valid.yml === CONT TestInitialUpdate/fixtures/valid.json --- PASS: TestInitialUpdate (0.00s) - --- PASS: TestInitialUpdate/fixtures/valid.json (0.11s) - --- PASS: TestInitialUpdate/fixtures/valid.yml (0.12s) + --- PASS: TestInitialUpdate/fixtures/valid.yml (0.11s) + --- PASS: TestInitialUpdate/fixtures/valid.json (0.12s) === RUN TestInvalidFile === RUN TestInvalidFile/fixtures/invalid_nil.yml === PAUSE TestInvalidFile/fixtures/invalid_nil.yml @@ -2926,7 +2997,7 @@ === CONT TestInvalidFile/fixtures/invalid_nil.json --- PASS: TestInvalidFile (0.00s) --- PASS: TestInvalidFile/fixtures/invalid_nil.json (1.01s) - --- PASS: TestInvalidFile/fixtures/invalid_nil.yml (1.02s) + --- PASS: TestInvalidFile/fixtures/invalid_nil.yml (1.01s) === RUN TestNoopFileUpdate === PAUSE TestNoopFileUpdate === RUN TestFileUpdate @@ -2938,36 +3009,36 @@ === RUN TestRemoveFile === PAUSE TestRemoveFile === CONT TestNoopFileUpdate -=== CONT TestRemoveFile -=== CONT TestInvalidFileUpdate === CONT TestUpdateFileWithPartialWrites === CONT TestRemoveFile - file_test.go:474: update received after 112.23371ms ---- PASS: TestRemoveFile (0.23s) +=== CONT TestInvalidFileUpdate === CONT TestFileUpdate === CONT TestNoopFileUpdate - file_test.go:372: update received after 115.567232ms ---- PASS: TestNoopFileUpdate (0.24s) + file_test.go:372: update received after 137.437361ms +--- PASS: TestNoopFileUpdate (0.21s) === CONT TestFileUpdate - file_test.go:390: update received after 112.726404ms ---- PASS: TestFileUpdate (0.22s) ---- PASS: TestInvalidFileUpdate (1.13s) + file_test.go:390: update received after 130.514459ms +--- PASS: TestFileUpdate (0.21s) +=== CONT TestRemoveFile + file_test.go:474: update received after 127.944157ms +--- PASS: TestRemoveFile (0.22s) +--- PASS: TestInvalidFileUpdate (1.11s) === CONT TestUpdateFileWithPartialWrites - file_test.go:439: update received after 1.007360898s + file_test.go:439: update received after 1.134623977s --- PASS: TestUpdateFileWithPartialWrites (1.24s) PASS -ok github.com/prometheus/prometheus/discovery/file 2.662s +ok github.com/prometheus/prometheus/discovery/file 2.487s ? github.com/prometheus/prometheus/discovery/gce [no test files] === RUN TestHCloudSDRefresh === RUN TestHCloudSDRefresh/item_0 === RUN TestHCloudSDRefresh/item_1 === RUN TestHCloudSDRefresh/item_2 ---- PASS: TestHCloudSDRefresh (0.06s) +--- PASS: TestHCloudSDRefresh (0.02s) --- PASS: TestHCloudSDRefresh/item_0 (0.00s) --- PASS: TestHCloudSDRefresh/item_1 (0.00s) --- PASS: TestHCloudSDRefresh/item_2 (0.00s) PASS -ok github.com/prometheus/prometheus/discovery/hetzner 0.238s +ok github.com/prometheus/prometheus/discovery/hetzner 0.230s ? github.com/prometheus/prometheus/discovery/install [no test files] === RUN TestMarathonSDHandleError --- PASS: TestMarathonSDHandleError (0.00s) @@ -2982,7 +3053,7 @@ === RUN TestMarathonZeroTaskPorts --- PASS: TestMarathonZeroTaskPorts (0.00s) === RUN Test500ErrorHttpResponseWithValidJSONBody ---- PASS: Test500ErrorHttpResponseWithValidJSONBody (0.04s) +--- PASS: Test500ErrorHttpResponseWithValidJSONBody (0.00s) === RUN TestMarathonSDSendGroupWithPortDefinitions --- PASS: TestMarathonSDSendGroupWithPortDefinitions (0.00s) === RUN TestMarathonSDSendGroupWithPortDefinitionsRequirePorts @@ -2996,9 +3067,9 @@ === RUN TestMarathonSDSendGroupWithContainerNetworkAndPortMapping --- PASS: TestMarathonSDSendGroupWithContainerNetworkAndPortMapping (0.00s) PASS -ok github.com/prometheus/prometheus/discovery/marathon 0.110s +ok github.com/prometheus/prometheus/discovery/marathon 0.073s === RUN TestOpenstackSDHypervisorRefresh ---- PASS: TestOpenstackSDHypervisorRefresh (0.18s) +--- PASS: TestOpenstackSDHypervisorRefresh (0.05s) === RUN TestOpenstackSDHypervisorRefreshWithDoneContext --- PASS: TestOpenstackSDHypervisorRefreshWithDoneContext (0.00s) === RUN TestOpenstackSDInstanceRefresh @@ -3006,19 +3077,19 @@ === RUN TestOpenstackSDInstanceRefresh/item_1 === RUN TestOpenstackSDInstanceRefresh/item_2 === RUN TestOpenstackSDInstanceRefresh/item_3 ---- PASS: TestOpenstackSDInstanceRefresh (0.10s) +--- PASS: TestOpenstackSDInstanceRefresh (0.08s) --- PASS: TestOpenstackSDInstanceRefresh/item_0 (0.00s) --- PASS: TestOpenstackSDInstanceRefresh/item_1 (0.00s) --- PASS: TestOpenstackSDInstanceRefresh/item_2 (0.00s) - --- PASS: TestOpenstackSDInstanceRefresh/item_3 (0.01s) + --- PASS: TestOpenstackSDInstanceRefresh/item_3 (0.00s) === RUN TestOpenstackSDInstanceRefreshWithDoneContext --- PASS: TestOpenstackSDInstanceRefreshWithDoneContext (0.00s) PASS -ok github.com/prometheus/prometheus/discovery/openstack 0.459s +ok github.com/prometheus/prometheus/discovery/openstack 0.209s === RUN TestRefresh --- PASS: TestRefresh (0.01s) PASS -ok github.com/prometheus/prometheus/discovery/refresh 0.099s +ok github.com/prometheus/prometheus/discovery/refresh 0.073s === RUN TestTargetGroupStrictJsonUnmarshal --- PASS: TestTargetGroupStrictJsonUnmarshal (0.00s) === RUN TestTargetGroupYamlMarshal @@ -3028,7 +3099,7 @@ === RUN TestString --- PASS: TestString (0.00s) PASS -ok github.com/prometheus/prometheus/discovery/targetgroup 0.110s +ok github.com/prometheus/prometheus/discovery/targetgroup 0.056s === RUN TestTritonSDNew --- PASS: TestTritonSDNew (0.00s) === RUN TestTritonSDNewBadConfig @@ -3038,7 +3109,7 @@ === RUN TestTritonSDNewCNConfig --- PASS: TestTritonSDNewCNConfig (0.00s) === RUN TestTritonSDRefreshNoTargets ---- PASS: TestTritonSDRefreshNoTargets (0.11s) +--- PASS: TestTritonSDRefreshNoTargets (0.08s) === RUN TestTritonSDRefreshMultipleTargets --- PASS: TestTritonSDRefreshMultipleTargets (0.12s) === RUN TestTritonSDRefreshNoServer @@ -3046,21 +3117,21 @@ === RUN TestTritonSDRefreshCancelled --- PASS: TestTritonSDRefreshCancelled (0.00s) === RUN TestTritonSDRefreshCNsUUIDOnly ---- PASS: TestTritonSDRefreshCNsUUIDOnly (0.13s) +--- PASS: TestTritonSDRefreshCNsUUIDOnly (0.23s) === RUN TestTritonSDRefreshCNsWithHostname ---- PASS: TestTritonSDRefreshCNsWithHostname (0.10s) +--- PASS: TestTritonSDRefreshCNsWithHostname (0.15s) PASS -ok github.com/prometheus/prometheus/discovery/triton 0.610s +ok github.com/prometheus/prometheus/discovery/triton 0.704s === RUN TestNewDiscoveryError ---- PASS: TestNewDiscoveryError (0.03s) +--- PASS: TestNewDiscoveryError (0.02s) PASS -ok github.com/prometheus/prometheus/discovery/zookeeper 0.154s +ok github.com/prometheus/prometheus/discovery/zookeeper 0.099s === RUN TestPostPath --- PASS: TestPostPath (0.00s) === RUN TestHandlerNextBatch --- PASS: TestHandlerNextBatch (0.00s) === RUN TestHandlerSendAll ---- PASS: TestHandlerSendAll (0.12s) +--- PASS: TestHandlerSendAll (0.07s) === RUN TestCustomDo --- PASS: TestCustomDo (0.00s) === RUN TestExternalLabels @@ -3068,7 +3139,7 @@ === RUN TestHandlerRelabel --- PASS: TestHandlerRelabel (0.00s) === RUN TestHandlerQueuing ---- PASS: TestHandlerQueuing (0.31s) +--- PASS: TestHandlerQueuing (0.16s) === RUN TestLabelSetNotReused --- PASS: TestLabelSetNotReused (0.00s) === RUN TestReload @@ -3078,7 +3149,7 @@ === RUN TestLabelsToOpenAPILabelSet --- PASS: TestLabelsToOpenAPILabelSet (0.00s) PASS -ok github.com/prometheus/prometheus/notifier 1.112s +ok github.com/prometheus/prometheus/notifier 0.782s ? github.com/prometheus/prometheus/pkg/exemplar [no test files] ? github.com/prometheus/prometheus/pkg/gate [no test files] === RUN TestLabels_String @@ -3096,7 +3167,7 @@ === RUN TestLabels_WithoutEmpty/#05 --- PASS: TestLabels_WithoutEmpty (0.01s) --- PASS: TestLabels_WithoutEmpty/#00 (0.00s) - --- PASS: TestLabels_WithoutEmpty/#01 (0.00s) + --- PASS: TestLabels_WithoutEmpty/#01 (0.01s) --- PASS: TestLabels_WithoutEmpty/#02 (0.00s) --- PASS: TestLabels_WithoutEmpty/#03 (0.00s) --- PASS: TestLabels_WithoutEmpty/#04 (0.00s) @@ -3124,7 +3195,7 @@ === RUN TestBuilder_Del --- PASS: TestBuilder_Del (0.00s) === RUN TestBuilder_Set ---- PASS: TestBuilder_Set (0.00s) +--- PASS: TestBuilder_Set (0.01s) === RUN TestBuilder_Labels --- PASS: TestBuilder_Labels (0.00s) === RUN TestLabels_Hash @@ -3136,39 +3207,39 @@ === RUN TestNewFastRegexMatcher --- PASS: TestNewFastRegexMatcher (0.01s) === RUN TestOptimizeConcatRegex ---- PASS: TestOptimizeConcatRegex (0.01s) +--- PASS: TestOptimizeConcatRegex (0.00s) PASS -ok github.com/prometheus/prometheus/pkg/labels 0.164s +ok github.com/prometheus/prometheus/pkg/labels 0.131s === RUN TestDedupe ---- PASS: TestDedupe (0.21s) +--- PASS: TestDedupe (0.20s) === RUN TestJSONFileLogger_basic --- PASS: TestJSONFileLogger_basic (0.00s) === RUN TestJSONFileLogger_parallel ---- PASS: TestJSONFileLogger_parallel (0.00s) +--- PASS: TestJSONFileLogger_parallel (0.01s) PASS -ok github.com/prometheus/prometheus/pkg/logging 0.291s +ok github.com/prometheus/prometheus/pkg/logging 0.428s ? github.com/prometheus/prometheus/pkg/modtimevfs [no test files] === RUN TestPool --- PASS: TestPool (0.00s) PASS -ok github.com/prometheus/prometheus/pkg/pool 0.082s +ok github.com/prometheus/prometheus/pkg/pool 0.081s === RUN TestRelabel ---- PASS: TestRelabel (0.02s) +--- PASS: TestRelabel (0.01s) === RUN TestTargetLabelValidity --- PASS: TestTargetLabelValidity (0.00s) PASS -ok github.com/prometheus/prometheus/pkg/relabel 0.140s +ok github.com/prometheus/prometheus/pkg/relabel 0.064s === RUN TestParseFileSuccess ---- PASS: TestParseFileSuccess (0.07s) +--- PASS: TestParseFileSuccess (0.01s) === RUN TestParseFileFailure ---- PASS: TestParseFileFailure (0.11s) +--- PASS: TestParseFileFailure (0.01s) === RUN TestTemplateParsing ---- PASS: TestTemplateParsing (0.06s) +--- PASS: TestTemplateParsing (0.01s) PASS -ok github.com/prometheus/prometheus/pkg/rulefmt 0.563s +ok github.com/prometheus/prometheus/pkg/rulefmt 0.078s ? github.com/prometheus/prometheus/pkg/runtime [no test files] === RUN TestOpenMetricsParse ---- PASS: TestOpenMetricsParse (0.04s) +--- PASS: TestOpenMetricsParse (0.01s) === RUN TestOpenMetricsParseErrors --- PASS: TestOpenMetricsParseErrors (0.01s) === RUN TestOMNullByteHandling @@ -3176,22 +3247,22 @@ === RUN TestPromParse --- PASS: TestPromParse (0.01s) === RUN TestPromParseErrors ---- PASS: TestPromParseErrors (0.01s) +--- PASS: TestPromParseErrors (0.00s) === RUN TestPromNullByteHandling --- PASS: TestPromNullByteHandling (0.00s) PASS -ok github.com/prometheus/prometheus/pkg/textparse 0.253s +ok github.com/prometheus/prometheus/pkg/textparse 0.082s ? github.com/prometheus/prometheus/pkg/timestamp [no test files] ? github.com/prometheus/prometheus/pkg/value [no test files] ? github.com/prometheus/prometheus/prompb [no test files] === RUN TestQueryConcurrency ---- PASS: TestQueryConcurrency (0.04s) +--- PASS: TestQueryConcurrency (0.03s) === RUN TestQueryTimeout --- PASS: TestQueryTimeout (0.10s) === RUN TestQueryCancel --- PASS: TestQueryCancel (0.00s) === RUN TestQueryError ---- PASS: TestQueryError (0.01s) +--- PASS: TestQueryError (0.00s) === RUN TestSelectHintsSetCorrectly === RUN TestSelectHintsSetCorrectly/foo === RUN TestSelectHintsSetCorrectly/foo[2m] @@ -3213,33 +3284,33 @@ === RUN TestSelectHintsSetCorrectly/sum_by_(dim1)_(max_by_(dim2)_(foo)) === RUN TestSelectHintsSetCorrectly/(max_by_(dim1)_(foo))[5s:1s] === RUN TestSelectHintsSetCorrectly/(sum(http_requests{group=~"p.*"})+max(http_requests{group=~"c.*"}))[20s:5s] ---- PASS: TestSelectHintsSetCorrectly (0.18s) +--- PASS: TestSelectHintsSetCorrectly (0.15s) --- PASS: TestSelectHintsSetCorrectly/foo (0.00s) --- PASS: TestSelectHintsSetCorrectly/foo[2m] (0.01s) - --- PASS: TestSelectHintsSetCorrectly/foo[2m]_offset_2m (0.01s) - --- PASS: TestSelectHintsSetCorrectly/foo[2m:1s] (0.00s) - --- PASS: TestSelectHintsSetCorrectly/count_over_time(foo[2m:1s]) (0.01s) - --- PASS: TestSelectHintsSetCorrectly/count_over_time(foo[2m:1s]_offset_10s) (0.01s) - --- PASS: TestSelectHintsSetCorrectly/count_over_time((foo_offset_10s)[2m:1s]_offset_10s) (0.03s) + --- PASS: TestSelectHintsSetCorrectly/foo[2m]_offset_2m (0.00s) + --- PASS: TestSelectHintsSetCorrectly/foo[2m:1s] (0.01s) + --- PASS: TestSelectHintsSetCorrectly/count_over_time(foo[2m:1s]) (0.00s) + --- PASS: TestSelectHintsSetCorrectly/count_over_time(foo[2m:1s]_offset_10s) (0.00s) + --- PASS: TestSelectHintsSetCorrectly/count_over_time((foo_offset_10s)[2m:1s]_offset_10s) (0.04s) --- PASS: TestSelectHintsSetCorrectly/foo#01 (0.00s) --- PASS: TestSelectHintsSetCorrectly/rate(foo[2m]) (0.00s) - --- PASS: TestSelectHintsSetCorrectly/rate(foo[2m]_offset_2m) (0.00s) - --- PASS: TestSelectHintsSetCorrectly/rate(foo[2m:1s]) (0.01s) - --- PASS: TestSelectHintsSetCorrectly/count_over_time(foo[2m:1s])#01 (0.00s) - --- PASS: TestSelectHintsSetCorrectly/count_over_time(foo[2m:1s]_offset_10s)#01 (0.01s) - --- PASS: TestSelectHintsSetCorrectly/count_over_time((foo_offset_10s)[2m:1s]_offset_10s)#01 (0.00s) + --- PASS: TestSelectHintsSetCorrectly/rate(foo[2m]_offset_2m) (0.01s) + --- PASS: TestSelectHintsSetCorrectly/rate(foo[2m:1s]) (0.00s) + --- PASS: TestSelectHintsSetCorrectly/count_over_time(foo[2m:1s])#01 (0.01s) + --- PASS: TestSelectHintsSetCorrectly/count_over_time(foo[2m:1s]_offset_10s)#01 (0.00s) + --- PASS: TestSelectHintsSetCorrectly/count_over_time((foo_offset_10s)[2m:1s]_offset_10s)#01 (0.01s) --- PASS: TestSelectHintsSetCorrectly/sum_by_(dim1)_(foo) (0.00s) --- PASS: TestSelectHintsSetCorrectly/sum_without_(dim1)_(foo) (0.01s) - --- PASS: TestSelectHintsSetCorrectly/sum_by_(dim1)_(avg_over_time(foo[1s])) (0.01s) - --- PASS: TestSelectHintsSetCorrectly/sum_by_(dim1)_(max_by_(dim2)_(foo)) (0.01s) + --- PASS: TestSelectHintsSetCorrectly/sum_by_(dim1)_(avg_over_time(foo[1s])) (0.00s) + --- PASS: TestSelectHintsSetCorrectly/sum_by_(dim1)_(max_by_(dim2)_(foo)) (0.02s) --- PASS: TestSelectHintsSetCorrectly/(max_by_(dim1)_(foo))[5s:1s] (0.00s) - --- PASS: TestSelectHintsSetCorrectly/(sum(http_requests{group=~"p.*"})+max(http_requests{group=~"c.*"}))[20s:5s] (0.01s) + --- PASS: TestSelectHintsSetCorrectly/(sum(http_requests{group=~"p.*"})+max(http_requests{group=~"c.*"}))[20s:5s] (0.00s) === RUN TestEngineShutdown ---- PASS: TestEngineShutdown (0.00s) +--- PASS: TestEngineShutdown (0.01s) === RUN TestEngineEvalStmtTimestamps ---- PASS: TestEngineEvalStmtTimestamps (0.26s) +--- PASS: TestEngineEvalStmtTimestamps (0.11s) === RUN TestMaxQuerySamples ---- PASS: TestMaxQuerySamples (0.20s) +--- PASS: TestMaxQuerySamples (0.06s) === RUN TestRecoverEvaluatorRuntime --- PASS: TestRecoverEvaluatorRuntime (0.00s) === RUN TestRecoverEvaluatorError @@ -3264,32 +3335,32 @@ === RUN TestSubquerySelector/#01/sum(http_requests{group=~"pro.*"})[30s:10s] === RUN TestSubquerySelector/#01/sum(http_requests)[40s:10s] === RUN TestSubquerySelector/#01/(sum(http_requests{group=~"p.*"})+sum(http_requests{group=~"c.*"}))[20s:5s] ---- PASS: TestSubquerySelector (0.78s) - --- PASS: TestSubquerySelector/#00 (0.19s) +--- PASS: TestSubquerySelector (0.36s) + --- PASS: TestSubquerySelector/#00 (0.05s) --- PASS: TestSubquerySelector/#00/metric[20s:10s] (0.00s) - --- PASS: TestSubquerySelector/#00/metric[20s:5s] (0.01s) + --- PASS: TestSubquerySelector/#00/metric[20s:5s] (0.00s) --- PASS: TestSubquerySelector/#00/metric[20s:5s]_offset_2s (0.00s) --- PASS: TestSubquerySelector/#00/metric[20s:5s]_offset_6s (0.00s) - --- PASS: TestSubquerySelector/#00/metric[20s:5s]_offset_4s (0.01s) + --- PASS: TestSubquerySelector/#00/metric[20s:5s]_offset_4s (0.00s) --- PASS: TestSubquerySelector/#00/metric[20s:5s]_offset_5s (0.00s) --- PASS: TestSubquerySelector/#00/metric[20s:5s]_offset_6s#01 (0.00s) --- PASS: TestSubquerySelector/#00/metric[20s:5s]_offset_7s (0.00s) - --- PASS: TestSubquerySelector/#01 (0.60s) - --- PASS: TestSubquerySelector/#01/http_requests{group=~"pro.*",instance="0"}[30s:10s] (0.01s) + --- PASS: TestSubquerySelector/#01 (0.31s) + --- PASS: TestSubquerySelector/#01/http_requests{group=~"pro.*",instance="0"}[30s:10s] (0.00s) --- PASS: TestSubquerySelector/#01/http_requests{group=~"pro.*",instance="0"}[5m:] (0.01s) - --- PASS: TestSubquerySelector/#01/http_requests{group=~"pro.*",instance="0"}[5m:]_offset_20m (0.02s) - --- PASS: TestSubquerySelector/#01/rate(http_requests[1m])[15s:5s] (0.00s) + --- PASS: TestSubquerySelector/#01/http_requests{group=~"pro.*",instance="0"}[5m:]_offset_20m (0.00s) + --- PASS: TestSubquerySelector/#01/rate(http_requests[1m])[15s:5s] (0.01s) --- PASS: TestSubquerySelector/#01/sum(http_requests{group=~"pro.*"})[30s:10s] (0.00s) --- PASS: TestSubquerySelector/#01/sum(http_requests)[40s:10s] (0.00s) --- PASS: TestSubquerySelector/#01/(sum(http_requests{group=~"p.*"})+sum(http_requests{group=~"c.*"}))[20s:5s] (0.01s) === RUN TestQueryLogger_basic --- PASS: TestQueryLogger_basic (0.00s) === RUN TestQueryLogger_fields ---- PASS: TestQueryLogger_fields (0.01s) +--- PASS: TestQueryLogger_fields (0.00s) === RUN TestQueryLogger_error ---- PASS: TestQueryLogger_error (0.01s) +--- PASS: TestQueryLogger_error (0.00s) === RUN TestDeriv ---- PASS: TestDeriv (0.31s) +--- PASS: TestDeriv (0.08s) === RUN TestFunctionList --- PASS: TestFunctionList (0.00s) === RUN TestEvaluations @@ -3302,18 +3373,18 @@ === RUN TestEvaluations/testdata/selectors.test === RUN TestEvaluations/testdata/staleness.test === RUN TestEvaluations/testdata/subquery.test ---- PASS: TestEvaluations (11.75s) - --- PASS: TestEvaluations/testdata/aggregators.test (1.86s) - --- PASS: TestEvaluations/testdata/collision.test (0.51s) - --- PASS: TestEvaluations/testdata/functions.test (5.39s) - --- PASS: TestEvaluations/testdata/histograms.test (0.30s) - --- PASS: TestEvaluations/testdata/literals.test (0.15s) - --- PASS: TestEvaluations/testdata/operators.test (1.05s) - --- PASS: TestEvaluations/testdata/selectors.test (0.98s) - --- PASS: TestEvaluations/testdata/staleness.test (0.26s) - --- PASS: TestEvaluations/testdata/subquery.test (1.24s) +--- PASS: TestEvaluations (8.58s) + --- PASS: TestEvaluations/testdata/aggregators.test (0.87s) + --- PASS: TestEvaluations/testdata/collision.test (0.19s) + --- PASS: TestEvaluations/testdata/functions.test (4.21s) + --- PASS: TestEvaluations/testdata/histograms.test (0.32s) + --- PASS: TestEvaluations/testdata/literals.test (0.10s) + --- PASS: TestEvaluations/testdata/operators.test (1.10s) + --- PASS: TestEvaluations/testdata/selectors.test (0.79s) + --- PASS: TestEvaluations/testdata/staleness.test (0.14s) + --- PASS: TestEvaluations/testdata/subquery.test (0.86s) === RUN TestQueryLogging ---- PASS: TestQueryLogging (0.02s) +--- PASS: TestQueryLogging (0.00s) === RUN TestIndexReuse --- PASS: TestIndexReuse (0.00s) === RUN TestMMapFile @@ -3324,16 +3395,16 @@ === RUN TestParseBrokenJSON/#02 === RUN TestParseBrokenJSON/#03 === RUN TestParseBrokenJSON/#04 ---- PASS: TestParseBrokenJSON (0.01s) +--- PASS: TestParseBrokenJSON (0.00s) --- PASS: TestParseBrokenJSON/#00 (0.00s) --- PASS: TestParseBrokenJSON/#01 (0.00s) --- PASS: TestParseBrokenJSON/#02 (0.00s) --- PASS: TestParseBrokenJSON/#03 (0.00s) --- PASS: TestParseBrokenJSON/#04 (0.00s) === RUN TestLazyLoader_WithSamplesTill ---- PASS: TestLazyLoader_WithSamplesTill (0.34s) +--- PASS: TestLazyLoader_WithSamplesTill (0.13s) PASS -ok github.com/prometheus/prometheus/promql 14.303s +ok github.com/prometheus/prometheus/promql 9.774s === RUN TestLexer === RUN TestLexer/common === RUN TestLexer/numbers @@ -3350,22 +3421,22 @@ === RUN TestLexer/encoding_issues === RUN TestLexer/series_descriptions === RUN TestLexer/subqueries ---- PASS: TestLexer (0.03s) +--- PASS: TestLexer (0.01s) --- PASS: TestLexer/common (0.00s) --- PASS: TestLexer/numbers (0.00s) - --- PASS: TestLexer/strings (0.01s) + --- PASS: TestLexer/strings (0.00s) --- PASS: TestLexer/durations (0.00s) --- PASS: TestLexer/identifiers (0.00s) --- PASS: TestLexer/comments (0.00s) - --- PASS: TestLexer/operators (0.01s) + --- PASS: TestLexer/operators (0.00s) --- PASS: TestLexer/aggregators (0.00s) --- PASS: TestLexer/keywords (0.00s) - --- PASS: TestLexer/selectors (0.01s) + --- PASS: TestLexer/selectors (0.00s) --- PASS: TestLexer/common_errors (0.00s) --- PASS: TestLexer/mismatched_parentheses (0.00s) --- PASS: TestLexer/encoding_issues (0.00s) --- PASS: TestLexer/series_descriptions (0.00s) - --- PASS: TestLexer/subqueries (0.01s) + --- PASS: TestLexer/subqueries (0.00s) === RUN TestParseExpressions === RUN TestParseExpressions/1 === RUN TestParseExpressions/+Inf @@ -3592,7 +3663,7 @@ === RUN TestParseExpressions/(foo_+_bar{nm="val"})[5m:]_offset_10m === RUN TestParseExpressions/test[5d]_OFFSET_10s_[10m:5s] === RUN TestParseExpressions/(foo_+_bar{nm="val"})[5m:][10m:5s] ---- PASS: TestParseExpressions (73.03s) +--- PASS: TestParseExpressions (22.47s) --- PASS: TestParseExpressions/1 (0.00s) --- PASS: TestParseExpressions/+Inf (0.00s) --- PASS: TestParseExpressions/-Inf (0.00s) @@ -3690,7 +3761,7 @@ --- PASS: TestParseExpressions/foo_unless_on(bar)_group_left(baz)_bar (0.00s) --- PASS: TestParseExpressions/foo_unless_on(bar)_group_right(baz)_bar (0.00s) --- PASS: TestParseExpressions/http_requests{group="production"}_+_on(instance)_group_left(job,instance)_cpu_count{type="smp"} (0.00s) - --- PASS: TestParseExpressions/foo_+_bool_bar (0.00s) + --- PASS: TestParseExpressions/foo_+_bool_bar (0.02s) --- PASS: TestParseExpressions/foo_+_bool_10 (0.00s) --- PASS: TestParseExpressions/foo_and_bool_10 (0.00s) --- PASS: TestParseExpressions/foo (0.00s) @@ -3702,7 +3773,7 @@ --- PASS: TestParseExpressions/foo{NaN='bc'} (0.00s) --- PASS: TestParseExpressions/foo{bar='}'} (0.00s) --- PASS: TestParseExpressions/foo{a="b",_foo!="bar",_test=~"test",_bar!~"baz"} (0.00s) - --- PASS: TestParseExpressions/foo{a="b",_foo!="bar",_test=~"test",_bar!~"baz",} (0.00s) + --- PASS: TestParseExpressions/foo{a="b",_foo!="bar",_test=~"test",_bar!~"baz",} (0.01s) --- PASS: TestParseExpressions/{ (0.00s) --- PASS: TestParseExpressions/} (0.00s) --- PASS: TestParseExpressions/some{ (0.00s) @@ -3714,7 +3785,7 @@ --- PASS: TestParseExpressions/some_metric{a="�"} (0.00s) --- PASS: TestParseExpressions/foo{gibberish} (0.00s) --- PASS: TestParseExpressions/foo{1} (0.00s) - --- PASS: TestParseExpressions/{} (0.00s) + --- PASS: TestParseExpressions/{} (0.01s) --- PASS: TestParseExpressions/{x=""} (0.00s) --- PASS: TestParseExpressions/{x=~".*"} (0.00s) --- PASS: TestParseExpressions/{x!~".+"} (0.00s) @@ -3793,7 +3864,7 @@ --- PASS: TestParseExpressions/e-+=/(0) (0.00s) --- PASS: TestParseExpressions/a>b() (0.00s) --- PASS: TestParseExpressions/rate(avg) (0.00s) - --- PASS: TestParseExpressions/(-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1)[1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:] (72.87s) + --- PASS: TestParseExpressions/(-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1-{}-1)[1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:][1m:] (22.31s) --- PASS: TestParseExpressions/sum(sum) (0.00s) --- PASS: TestParseExpressions/a_+_sum (0.00s) --- PASS: TestParseExpressions/"double-quoted_string_\"_with_escaped_quote" (0.00s) @@ -3806,7 +3877,7 @@ --- PASS: TestParseExpressions/"\ (0.00s) --- PASS: TestParseExpressions/"\c" (0.00s) --- PASS: TestParseExpressions/"\x." (0.00s) - --- PASS: TestParseExpressions/foo{bar="baz"}[10m:6s] (0.00s) + --- PASS: TestParseExpressions/foo{bar="baz"}[10m:6s] (0.01s) --- PASS: TestParseExpressions/foo{bar="baz"}[10m5s:1h6ms] (0.00s) --- PASS: TestParseExpressions/foo[10m:] (0.00s) --- PASS: TestParseExpressions/min_over_time(rate(foo{bar="baz"}[2s])[5m:5s]) (0.00s) @@ -3814,7 +3885,7 @@ --- PASS: TestParseExpressions/min_over_time(rate(foo{bar="baz"}[2s])[5m:]_offset_4m)[4m:3s] (0.00s) --- PASS: TestParseExpressions/sum_without(and,_by,_avg,_count,_alert,_annotations)(some_metric)_[30m:10s] (0.00s) --- PASS: TestParseExpressions/some_metric_OFFSET_1m_[10m:5s] (0.00s) - --- PASS: TestParseExpressions/(foo_+_bar{nm="val"})[5m:] (0.01s) + --- PASS: TestParseExpressions/(foo_+_bar{nm="val"})[5m:] (0.00s) --- PASS: TestParseExpressions/(foo_+_bar{nm="val"})[5m:]_offset_10m (0.00s) --- PASS: TestParseExpressions/test[5d]_OFFSET_10s_[10m:5s] (0.00s) --- PASS: TestParseExpressions/(foo_+_bar{nm="val"})[5m:][10m:5s] (0.00s) @@ -3824,14 +3895,14 @@ --- PASS: TestParseSeries (0.00s) === RUN TestRecoverParserRuntime parser panic: runtime error: index out of range [123] with length 0 -goroutine 268 [running]: -github.com/prometheus/prometheus/promql/parser.(*parser).recover(0x109e000, 0x1032784) +goroutine 284 [running]: +github.com/prometheus/prometheus/promql/parser.(*parser).recover(0x1556000, 0x1432784) /build/prometheus-2.24.1+ds/build/src/github.com/prometheus/prometheus/promql/parser/parse.go:274 +0xdc -panic(0x1f2f80, 0x1018460) +panic(0x1f2f80, 0x22f6e30) /usr/lib/go-1.15/src/runtime/panic.go:969 +0x158 -github.com/prometheus/prometheus/promql/parser.TestRecoverParserRuntime(0x11b56c0) +github.com/prometheus/prometheus/promql/parser.TestRecoverParserRuntime(0x1659ea0) /build/prometheus-2.24.1+ds/build/src/github.com/prometheus/prometheus/promql/parser/parse_test.go:2835 +0x90 -testing.tRunner(0x11b56c0, 0x21c35c) +testing.tRunner(0x1659ea0, 0x21c35c) /usr/lib/go-1.15/src/testing/testing.go:1123 +0xc8 created by testing.(*T).Run /usr/lib/go-1.15/src/testing/testing.go:1168 +0x220 @@ -3841,9 +3912,9 @@ === RUN TestExprString --- PASS: TestExprString (0.01s) PASS -ok github.com/prometheus/prometheus/promql/parser 73.251s +ok github.com/prometheus/prometheus/promql/parser 22.915s === RUN TestAlertingRuleHTMLSnippet ---- PASS: TestAlertingRuleHTMLSnippet (0.00s) +--- PASS: TestAlertingRuleHTMLSnippet (0.01s) === RUN TestAlertingRuleState --- PASS: TestAlertingRuleState (0.00s) === RUN TestAlertingRuleLabelsUpdate @@ -3851,13 +3922,13 @@ alerting_test.go:170: case 1 alerting_test.go:170: case 2 alerting_test.go:170: case 3 ---- PASS: TestAlertingRuleLabelsUpdate (0.19s) +--- PASS: TestAlertingRuleLabelsUpdate (0.13s) === RUN TestAlertingRuleExternalLabelsInTemplate ---- PASS: TestAlertingRuleExternalLabelsInTemplate (0.14s) +--- PASS: TestAlertingRuleExternalLabelsInTemplate (0.12s) === RUN TestAlertingRuleEmptyLabelFromTemplate ---- PASS: TestAlertingRuleEmptyLabelFromTemplate (0.16s) +--- PASS: TestAlertingRuleEmptyLabelFromTemplate (0.13s) === RUN TestAlertingRuleDuplicate ---- PASS: TestAlertingRuleDuplicate (0.26s) +--- PASS: TestAlertingRuleDuplicate (0.12s) === RUN TestAlertingRule manager_test.go:155: case 0 manager_test.go:155: case 1 @@ -3866,7 +3937,7 @@ manager_test.go:155: case 4 manager_test.go:155: case 5 manager_test.go:155: case 6 ---- PASS: TestAlertingRule (0.14s) +--- PASS: TestAlertingRule (0.06s) === RUN TestForStateAddSamples manager_test.go:298: case 0 manager_test.go:298: case 1 @@ -3875,21 +3946,21 @@ manager_test.go:298: case 4 manager_test.go:298: case 5 manager_test.go:298: case 6 ---- PASS: TestForStateAddSamples (0.22s) +--- PASS: TestForStateAddSamples (0.35s) === RUN TestForStateRestore ---- PASS: TestForStateRestore (0.25s) +--- PASS: TestForStateRestore (0.14s) === RUN TestStaleness ---- PASS: TestStaleness (0.12s) +--- PASS: TestStaleness (0.14s) === RUN TestCopyState --- PASS: TestCopyState (0.00s) === RUN TestDeletedRuleMarkedStale --- PASS: TestDeletedRuleMarkedStale (0.19s) === RUN TestUpdate ---- PASS: TestUpdate (0.17s) +--- PASS: TestUpdate (0.09s) === RUN TestNotify ---- PASS: TestNotify (0.30s) +--- PASS: TestNotify (0.23s) === RUN TestMetricsUpdate ---- PASS: TestMetricsUpdate (8.16s) +--- PASS: TestMetricsUpdate (8.24s) === RUN TestGroupStalenessOnRemoval manager_test.go:983: skipping test in short mode. --- SKIP: TestGroupStalenessOnRemoval (0.00s) @@ -3899,17 +3970,17 @@ === RUN TestGroupHasAlertingRules --- PASS: TestGroupHasAlertingRules (0.00s) === RUN TestRuleEval ---- PASS: TestRuleEval (0.10s) +--- PASS: TestRuleEval (0.16s) === RUN TestRecordingRuleHTMLSnippet --- PASS: TestRecordingRuleHTMLSnippet (0.00s) === RUN TestRuleEvalDuplicate --- PASS: TestRuleEvalDuplicate (0.17s) PASS -ok github.com/prometheus/prometheus/rules 10.806s +ok github.com/prometheus/prometheus/rules 10.490s === RUN TestPopulateLabels ---- PASS: TestPopulateLabels (0.01s) +--- PASS: TestPopulateLabels (0.00s) === RUN TestManagerApplyConfig ---- PASS: TestManagerApplyConfig (0.04s) +--- PASS: TestManagerApplyConfig (0.03s) === RUN TestManagerTargetsUpdates --- PASS: TestManagerTargetsUpdates (0.00s) === RUN TestSetJitter @@ -3925,11 +3996,11 @@ === RUN TestScrapePoolReload --- PASS: TestScrapePoolReload (0.41s) === RUN TestScrapePoolTargetLimit ---- PASS: TestScrapePoolTargetLimit (0.10s) +--- PASS: TestScrapePoolTargetLimit (0.07s) === RUN TestScrapePoolAppender --- PASS: TestScrapePoolAppender (0.00s) === RUN TestScrapePoolRaces ---- PASS: TestScrapePoolRaces (0.26s) +--- PASS: TestScrapePoolRaces (0.25s) === RUN TestScrapePoolScrapeLoopsStarted --- PASS: TestScrapePoolScrapeLoopsStarted (0.00s) === RUN TestScrapeLoopStopBeforeRun @@ -3943,28 +4014,28 @@ === RUN TestScrapeLoopMetadata --- PASS: TestScrapeLoopMetadata (0.00s) === RUN TestScrapeLoopSeriesAdded ---- PASS: TestScrapeLoopSeriesAdded (0.16s) +--- PASS: TestScrapeLoopSeriesAdded (0.14s) === RUN TestScrapeLoopRunCreatesStaleMarkersOnFailedScrape --- PASS: TestScrapeLoopRunCreatesStaleMarkersOnFailedScrape (0.04s) === RUN TestScrapeLoopRunCreatesStaleMarkersOnParseFailure --- PASS: TestScrapeLoopRunCreatesStaleMarkersOnParseFailure (0.02s) === RUN TestScrapeLoopCache ---- PASS: TestScrapeLoopCache (0.22s) +--- PASS: TestScrapeLoopCache (0.15s) === RUN TestScrapeLoopCacheMemoryExhaustionProtection ---- PASS: TestScrapeLoopCacheMemoryExhaustionProtection (0.72s) +--- PASS: TestScrapeLoopCacheMemoryExhaustionProtection (0.54s) === RUN TestScrapeLoopAppend scrape_test.go:1261: Test:Label name collision scrape_test.go:1261: Test:Label name collision scrape_test.go:1261: Test:Delete Empty labels scrape_test.go:1261: Test:Honor Labels scrape_test.go:1261: Test:Stale - NaN ---- PASS: TestScrapeLoopAppend (0.01s) +--- PASS: TestScrapeLoopAppend (0.00s) === RUN TestScrapeLoopAppendCacheEntryButErrNotFound --- PASS: TestScrapeLoopAppendCacheEntryButErrNotFound (0.00s) === RUN TestScrapeLoopAppendSampleLimit --- PASS: TestScrapeLoopAppendSampleLimit (0.00s) === RUN TestScrapeLoop_ChangingMetricString ---- PASS: TestScrapeLoop_ChangingMetricString (0.15s) +--- PASS: TestScrapeLoop_ChangingMetricString (0.09s) === RUN TestScrapeLoopAppendStaleness --- PASS: TestScrapeLoopAppendStaleness (0.00s) === RUN TestScrapeLoopAppendNoStalenessIfTimestamp @@ -3978,59 +4049,59 @@ === RUN TestScrapeLoopOutOfBoundsTimeError --- PASS: TestScrapeLoopOutOfBoundsTimeError (0.00s) === RUN TestTargetScraperScrapeOK ---- PASS: TestTargetScraperScrapeOK (0.01s) +--- PASS: TestTargetScraperScrapeOK (0.00s) === RUN TestTargetScrapeScrapeCancel --- PASS: TestTargetScrapeScrapeCancel (1.01s) === RUN TestTargetScrapeScrapeNotFound --- PASS: TestTargetScrapeScrapeNotFound (0.01s) === RUN TestScrapeLoop_RespectTimestamps ---- PASS: TestScrapeLoop_RespectTimestamps (0.16s) +--- PASS: TestScrapeLoop_RespectTimestamps (0.15s) === RUN TestScrapeLoop_DiscardTimestamps ---- PASS: TestScrapeLoop_DiscardTimestamps (0.14s) +--- PASS: TestScrapeLoop_DiscardTimestamps (0.18s) === RUN TestScrapeLoopDiscardDuplicateLabels ---- PASS: TestScrapeLoopDiscardDuplicateLabels (0.18s) +--- PASS: TestScrapeLoopDiscardDuplicateLabels (0.08s) === RUN TestScrapeLoopDiscardUnnamedMetrics ---- PASS: TestScrapeLoopDiscardUnnamedMetrics (0.10s) +--- PASS: TestScrapeLoopDiscardUnnamedMetrics (0.12s) === RUN TestReusableConfig ---- PASS: TestReusableConfig (0.00s) +--- PASS: TestReusableConfig (0.01s) === RUN TestReuseScrapeCache --- PASS: TestReuseScrapeCache (0.01s) === RUN TestScrapeAddFast ---- PASS: TestScrapeAddFast (0.15s) +--- PASS: TestScrapeAddFast (0.07s) === RUN TestReuseCacheRace --- PASS: TestReuseCacheRace (5.01s) === RUN TestCheckAddError --- PASS: TestCheckAddError (0.00s) === RUN TestScrapeReportSingleAppender ---- PASS: TestScrapeReportSingleAppender (3.17s) +--- PASS: TestScrapeReportSingleAppender (3.18s) === RUN TestTargetLabels --- PASS: TestTargetLabels (0.00s) === RUN TestTargetOffset - target_test.go:74: [995 1032 960 1010 937 1053 1002 990 1024 997] ---- PASS: TestTargetOffset (1.28s) + target_test.go:74: [999 1009 1004 987 1003 946 1016 1023 995 1018] +--- PASS: TestTargetOffset (1.93s) === RUN TestTargetURL --- PASS: TestTargetURL (0.00s) === RUN TestNewHTTPBearerToken ---- PASS: TestNewHTTPBearerToken (0.00s) +--- PASS: TestNewHTTPBearerToken (0.01s) === RUN TestNewHTTPBearerTokenFile --- PASS: TestNewHTTPBearerTokenFile (0.02s) === RUN TestNewHTTPBasicAuth --- PASS: TestNewHTTPBasicAuth (0.01s) === RUN TestNewHTTPCACert ---- PASS: TestNewHTTPCACert (0.24s) +--- PASS: TestNewHTTPCACert (0.35s) === RUN TestNewHTTPClientCert ---- PASS: TestNewHTTPClientCert (1.38s) +--- PASS: TestNewHTTPClientCert (1.36s) === RUN TestNewHTTPWithServerName ---- PASS: TestNewHTTPWithServerName (0.28s) +--- PASS: TestNewHTTPWithServerName (0.16s) === RUN TestNewHTTPWithBadServerName -2021/07/18 23:07:53 http: TLS handshake error from 127.0.0.1:51670: read tcp 127.0.0.1:46771->127.0.0.1:51670: use of closed network connection ---- PASS: TestNewHTTPWithBadServerName (0.21s) +2021/07/18 23:39:33 http: TLS handshake error from 127.0.0.1:47476: read tcp 127.0.0.1:36573->127.0.0.1:47476: use of closed network connection +--- PASS: TestNewHTTPWithBadServerName (0.15s) === RUN TestNewClientWithBadTLSConfig --- PASS: TestNewClientWithBadTLSConfig (0.00s) PASS -ok github.com/prometheus/prometheus/scrape 18.013s +ok github.com/prometheus/prometheus/scrape 17.863s === RUN TestSampleRing ---- PASS: TestSampleRing (0.02s) +--- PASS: TestSampleRing (0.01s) === RUN TestBufferedSeriesIterator --- PASS: TestBufferedSeriesIterator (0.00s) === RUN TestBufferedSeriesIteratorNoBadAt @@ -4047,7 +4118,7 @@ === RUN TestMergeQuerierWithChainMerger/two_queriers,_only_two_queriers_have_two_time_unsorted_series_each,_with_3_noop_and_one_nil_querier_together === RUN TestMergeQuerierWithChainMerger/two_queriers,_with_two_series,_one_is_overlapping === RUN TestMergeQuerierWithChainMerger/two_queries,_one_with_NaN_samples_series ---- PASS: TestMergeQuerierWithChainMerger (0.02s) +--- PASS: TestMergeQuerierWithChainMerger (0.01s) --- PASS: TestMergeQuerierWithChainMerger/one_primary_querier_with_no_series (0.00s) --- PASS: TestMergeQuerierWithChainMerger/one_secondary_querier_with_no_series (0.00s) --- PASS: TestMergeQuerierWithChainMerger/many_secondary_queriers_with_no_series (0.00s) @@ -4055,7 +4126,7 @@ --- PASS: TestMergeQuerierWithChainMerger/one_querier,_two_series (0.00s) --- PASS: TestMergeQuerierWithChainMerger/two_queriers,_one_different_series_each (0.00s) --- PASS: TestMergeQuerierWithChainMerger/two_time_unsorted_queriers,_two_series_each (0.00s) - --- PASS: TestMergeQuerierWithChainMerger/five_queriers,_only_two_queriers_have_two_time_unsorted_series_each (0.01s) + --- PASS: TestMergeQuerierWithChainMerger/five_queriers,_only_two_queriers_have_two_time_unsorted_series_each (0.00s) --- PASS: TestMergeQuerierWithChainMerger/two_queriers,_only_two_queriers_have_two_time_unsorted_series_each,_with_3_noop_and_one_nil_querier_together (0.00s) --- PASS: TestMergeQuerierWithChainMerger/two_queriers,_with_two_series,_one_is_overlapping (0.00s) --- PASS: TestMergeQuerierWithChainMerger/two_queries,_one_with_NaN_samples_series (0.00s) @@ -4077,7 +4148,7 @@ --- PASS: TestMergeChunkQuerierWithNoVerticalChunkSeriesMerger/mix_of_queriers_with_no_series (0.00s) --- PASS: TestMergeChunkQuerierWithNoVerticalChunkSeriesMerger/one_querier,_two_series (0.00s) --- PASS: TestMergeChunkQuerierWithNoVerticalChunkSeriesMerger/two_secondaries,_one_different_series_each (0.00s) - --- PASS: TestMergeChunkQuerierWithNoVerticalChunkSeriesMerger/two_secondaries,_two_not_in_time_order_series_each (0.01s) + --- PASS: TestMergeChunkQuerierWithNoVerticalChunkSeriesMerger/two_secondaries,_two_not_in_time_order_series_each (0.00s) --- PASS: TestMergeChunkQuerierWithNoVerticalChunkSeriesMerger/five_secondaries,_only_two_have_two_not_in_time_order_series_each (0.00s) --- PASS: TestMergeChunkQuerierWithNoVerticalChunkSeriesMerger/two_secondaries,_with_two_not_in_time_order_series_each,_with_3_noop_queries_and_one_nil_together (0.00s) --- PASS: TestMergeChunkQuerierWithNoVerticalChunkSeriesMerger/two_queries,_one_with_NaN_samples_series (0.00s) @@ -4102,7 +4173,7 @@ --- PASS: TestCompactingChunkSeriesMerger/three_in_chained_overlap (0.00s) --- PASS: TestCompactingChunkSeriesMerger/three_in_chained_overlap_complex (0.00s) === RUN TestChainSampleIterator ---- PASS: TestChainSampleIterator (0.00s) +--- PASS: TestChainSampleIterator (0.01s) === RUN TestChainSampleIteratorSeek --- PASS: TestChainSampleIteratorSeek (0.00s) === RUN TestMergeGenericQuerierWithSecondaries_ErrorHandling @@ -4142,7 +4213,7 @@ === RUN TestMergeGenericQuerierWithSecondaries_ErrorHandling/successful_queriers_with_warnings/Select === RUN TestMergeGenericQuerierWithSecondaries_ErrorHandling/successful_queriers_with_warnings/LabelNames === RUN TestMergeGenericQuerierWithSecondaries_ErrorHandling/successful_queriers_with_warnings/LabelValues ---- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling (0.02s) +--- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling (0.03s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/#00 (0.00s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/#00/Select (0.00s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/#00/LabelNames (0.00s) @@ -4163,8 +4234,8 @@ --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_successful_secondaries/Select (0.00s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_successful_secondaries/LabelNames (0.00s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_successful_secondaries/LabelValues (0.00s) - --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_empty_response_and_successful_secondaries (0.00s) - --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_empty_response_and_successful_secondaries/Select (0.00s) + --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_empty_response_and_successful_secondaries (0.01s) + --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_empty_response_and_successful_secondaries/Select (0.01s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_empty_response_and_successful_secondaries/LabelNames (0.00s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_empty_response_and_successful_secondaries/LabelValues (0.00s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_failed_primary_querier_with_successful_secondaries (0.00s) @@ -4175,15 +4246,15 @@ --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_failed_secondaries/Select (0.00s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_failed_secondaries/LabelNames (0.00s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/one_successful_primary_querier_with_failed_secondaries/LabelValues (0.00s) - --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/successful_queriers_with_warnings (0.00s) + --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/successful_queriers_with_warnings (0.02s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/successful_queriers_with_warnings/Select (0.00s) --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/successful_queriers_with_warnings/LabelNames (0.00s) - --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/successful_queriers_with_warnings/LabelValues (0.00s) + --- PASS: TestMergeGenericQuerierWithSecondaries_ErrorHandling/successful_queriers_with_warnings/LabelValues (0.02s) === RUN TestFanout_SelectSorted === RUN TestFanout_SelectSorted/querier === RUN TestFanout_SelectSorted/chunk_querier ---- PASS: TestFanout_SelectSorted (0.44s) - --- PASS: TestFanout_SelectSorted/querier (0.00s) +--- PASS: TestFanout_SelectSorted (0.48s) + --- PASS: TestFanout_SelectSorted/querier (0.03s) --- PASS: TestFanout_SelectSorted/chunk_querier (0.00s) === RUN TestFanoutErrors === RUN TestFanoutErrors/samples @@ -4192,13 +4263,13 @@ === RUN TestFanoutErrors/samples#01 === RUN TestFanoutErrors/chunks#01 fanout_test.go:183: enable once TestStorage and TSDB implements ChunkQuerier ---- PASS: TestFanoutErrors (0.12s) +--- PASS: TestFanoutErrors (0.13s) --- PASS: TestFanoutErrors/samples (0.00s) --- SKIP: TestFanoutErrors/chunks (0.00s) --- PASS: TestFanoutErrors/samples#01 (0.00s) --- SKIP: TestFanoutErrors/chunks#01 (0.00s) PASS -ok github.com/prometheus/prometheus/storage 0.785s +ok github.com/prometheus/prometheus/storage 0.843s === RUN TestChunkedReaderCanReadFromChunkedWriter --- PASS: TestChunkedReaderCanReadFromChunkedWriter (0.00s) === RUN TestChunkedReader_Overflow @@ -4236,14 +4307,14 @@ === RUN TestFromQueryResultWithDuplicates --- PASS: TestFromQueryResultWithDuplicates (0.00s) === RUN TestNegotiateResponseType ---- PASS: TestNegotiateResponseType (0.01s) +--- PASS: TestNegotiateResponseType (0.00s) === RUN TestMergeLabels --- PASS: TestMergeLabels (0.00s) === RUN TestMetricTypeToMetricTypeProto === RUN TestMetricTypeToMetricTypeProto/with_a_single-word_metric === RUN TestMetricTypeToMetricTypeProto/with_a_two-word_metric === RUN TestMetricTypeToMetricTypeProto/with_an_unknown_metric ---- PASS: TestMetricTypeToMetricTypeProto (0.00s) +--- PASS: TestMetricTypeToMetricTypeProto (0.01s) --- PASS: TestMetricTypeToMetricTypeProto/with_a_single-word_metric (0.00s) --- PASS: TestMetricTypeToMetricTypeProto/with_a_two-word_metric (0.00s) --- PASS: TestMetricTypeToMetricTypeProto/with_an_unknown_metric (0.00s) @@ -4254,31 +4325,31 @@ === RUN TestIntern_DeleteRef --- PASS: TestIntern_DeleteRef (0.00s) === RUN TestIntern_MultiRef_Concurrent ---- PASS: TestIntern_MultiRef_Concurrent (0.01s) +--- PASS: TestIntern_MultiRef_Concurrent (0.00s) === RUN TestWatchScrapeManager_NotReady --- PASS: TestWatchScrapeManager_NotReady (0.00s) === RUN TestWatchScrapeManager_ReadyForCollection --- PASS: TestWatchScrapeManager_ReadyForCollection (0.00s) === RUN TestSampleDelivery ---- PASS: TestSampleDelivery (50.76s) +--- PASS: TestSampleDelivery (43.18s) === RUN TestMetadataDelivery --- PASS: TestMetadataDelivery (0.00s) === RUN TestSampleDeliveryTimeout ---- PASS: TestSampleDeliveryTimeout (0.21s) +--- PASS: TestSampleDeliveryTimeout (0.22s) === RUN TestSampleDeliveryOrder ---- PASS: TestSampleDeliveryOrder (0.31s) +--- PASS: TestSampleDeliveryOrder (0.24s) === RUN TestShutdown ---- PASS: TestShutdown (3.57s) +--- PASS: TestShutdown (2.71s) === RUN TestSeriesReset --- PASS: TestSeriesReset (0.00s) === RUN TestReshard ---- PASS: TestReshard (11.12s) +--- PASS: TestReshard (10.03s) === RUN TestReshardRaceWithStop ---- PASS: TestReshardRaceWithStop (7.43s) +--- PASS: TestReshardRaceWithStop (3.79s) === RUN TestReleaseNoninternedString ---- PASS: TestReleaseNoninternedString (0.05s) +--- PASS: TestReleaseNoninternedString (0.06s) === RUN TestShouldReshard ---- PASS: TestShouldReshard (0.03s) +--- PASS: TestShouldReshard (0.02s) === RUN TestProcessExternalLabels --- PASS: TestProcessExternalLabels (0.00s) === RUN TestCalculateDesiredShards @@ -4360,15 +4431,15 @@ queue_manager_test.go:782: desiredShards 11 pendingSamples 0 queue_manager_test.go:782: desiredShards 11 pendingSamples 0 queue_manager_test.go:782: desiredShards 11 pendingSamples 0 ---- PASS: TestCalculateDesiredShards (0.08s) +--- PASS: TestCalculateDesiredShards (0.02s) === RUN TestQueueManagerMetrics --- PASS: TestQueueManagerMetrics (0.00s) === RUN TestNoDuplicateReadConfigs === RUN TestNoDuplicateReadConfigs/#00 === RUN TestNoDuplicateReadConfigs/#01 === RUN TestNoDuplicateReadConfigs/#02 ---- PASS: TestNoDuplicateReadConfigs (0.01s) - --- PASS: TestNoDuplicateReadConfigs/#00 (0.01s) +--- PASS: TestNoDuplicateReadConfigs (0.00s) + --- PASS: TestNoDuplicateReadConfigs/#00 (0.00s) --- PASS: TestNoDuplicateReadConfigs/#01 (0.00s) --- PASS: TestNoDuplicateReadConfigs/#02 (0.00s) === RUN TestExternalLabelsQuerierAddExternalLabels @@ -4387,10 +4458,10 @@ === RUN TestSampleAndChunkQueryableClient/required_matcher_specified === RUN TestSampleAndChunkQueryableClient/required_matcher_specified,_given_matcher_does_not_match === RUN TestSampleAndChunkQueryableClient/required_matcher_specified,_given_matcher_does_not_match2 ---- PASS: TestSampleAndChunkQueryableClient (0.02s) +--- PASS: TestSampleAndChunkQueryableClient (0.01s) --- PASS: TestSampleAndChunkQueryableClient/empty (0.00s) --- PASS: TestSampleAndChunkQueryableClient/external_labels_specified,_not_explicitly_requested (0.00s) - --- PASS: TestSampleAndChunkQueryableClient/external_labels_specified,_explicitly_requested_europe (0.01s) + --- PASS: TestSampleAndChunkQueryableClient/external_labels_specified,_explicitly_requested_europe (0.00s) --- PASS: TestSampleAndChunkQueryableClient/external_labels_specified,_explicitly_requested_not_europe (0.00s) --- PASS: TestSampleAndChunkQueryableClient/prefer_local_storage (0.00s) --- PASS: TestSampleAndChunkQueryableClient/prefer_local_storage,_limited_time (0.00s) @@ -4404,31 +4475,31 @@ === RUN TestUpdateRemoteReadConfigs --- PASS: TestUpdateRemoteReadConfigs (0.00s) === RUN TestNoDuplicateWriteConfigs ---- PASS: TestNoDuplicateWriteConfigs (0.04s) +--- PASS: TestNoDuplicateWriteConfigs (0.02s) === RUN TestRestartOnNameChange ---- PASS: TestRestartOnNameChange (0.02s) +--- PASS: TestRestartOnNameChange (0.01s) === RUN TestUpdateWithRegisterer --- PASS: TestUpdateWithRegisterer (0.03s) === RUN TestWriteStorageLifecycle --- PASS: TestWriteStorageLifecycle (0.01s) === RUN TestUpdateExternalLabels ---- PASS: TestUpdateExternalLabels (0.02s) +--- PASS: TestUpdateExternalLabels (0.01s) === RUN TestWriteStorageApplyConfigsIdempotent ---- PASS: TestWriteStorageApplyConfigsIdempotent (0.02s) +--- PASS: TestWriteStorageApplyConfigsIdempotent (0.01s) === RUN TestWriteStorageApplyConfigsPartialUpdate ---- PASS: TestWriteStorageApplyConfigsPartialUpdate (0.06s) +--- PASS: TestWriteStorageApplyConfigsPartialUpdate (0.03s) PASS -ok github.com/prometheus/prometheus/storage/remote 74.397s +ok github.com/prometheus/prometheus/storage/remote 62.305s === RUN TestTemplateExpansion ---- PASS: TestTemplateExpansion (0.07s) +--- PASS: TestTemplateExpansion (0.03s) PASS -ok github.com/prometheus/prometheus/template 0.280s +ok github.com/prometheus/prometheus/template 0.169s === RUN TestBlockMetaMustNeverBeVersion2 --- PASS: TestBlockMetaMustNeverBeVersion2 (0.03s) === RUN TestSetCompactionFailed ---- PASS: TestSetCompactionFailed (0.38s) +--- PASS: TestSetCompactionFailed (0.30s) === RUN TestCreateBlock ---- PASS: TestCreateBlock (0.52s) +--- PASS: TestCreateBlock (0.39s) === RUN TestCorruptedChunk === RUN TestCorruptedChunk/invalid_header_size === RUN TestCorruptedChunk/invalid_magic_number @@ -4436,65 +4507,65 @@ === RUN TestCorruptedChunk/chunk_not_enough_bytes_to_read_the_chunk_length === RUN TestCorruptedChunk/chunk_not_enough_bytes_to_read_the_data === RUN TestCorruptedChunk/checksum_mismatch ---- PASS: TestCorruptedChunk (3.23s) - --- PASS: TestCorruptedChunk/invalid_header_size (0.59s) - --- PASS: TestCorruptedChunk/invalid_magic_number (0.62s) - --- PASS: TestCorruptedChunk/invalid_chunk_format_version (0.58s) - --- PASS: TestCorruptedChunk/chunk_not_enough_bytes_to_read_the_chunk_length (0.53s) - --- PASS: TestCorruptedChunk/chunk_not_enough_bytes_to_read_the_data (0.43s) - --- PASS: TestCorruptedChunk/checksum_mismatch (0.46s) +--- PASS: TestCorruptedChunk (1.87s) + --- PASS: TestCorruptedChunk/invalid_header_size (0.32s) + --- PASS: TestCorruptedChunk/invalid_magic_number (0.63s) + --- PASS: TestCorruptedChunk/invalid_chunk_format_version (0.27s) + --- PASS: TestCorruptedChunk/chunk_not_enough_bytes_to_read_the_chunk_length (0.18s) + --- PASS: TestCorruptedChunk/chunk_not_enough_bytes_to_read_the_data (0.23s) + --- PASS: TestCorruptedChunk/checksum_mismatch (0.24s) === RUN TestBlockSize ---- PASS: TestBlockSize (0.83s) +--- PASS: TestBlockSize (0.37s) === RUN TestReadIndexFormatV1 ---- PASS: TestReadIndexFormatV1 (0.02s) +--- PASS: TestReadIndexFormatV1 (0.00s) === RUN TestBlockWriter ---- PASS: TestBlockWriter (0.60s) +--- PASS: TestBlockWriter (0.17s) === RUN TestSplitByRange --- PASS: TestSplitByRange (0.00s) === RUN TestNoPanicFor0Tombstones ---- PASS: TestNoPanicFor0Tombstones (0.01s) +--- PASS: TestNoPanicFor0Tombstones (0.00s) === RUN TestLeveledCompactor_plan === RUN TestLeveledCompactor_plan/Regression_test:_we_were_stuck_in_a_compact_loop_where_we_always_recompacted___the_same_block_when_tombstones_and_series_counts_were_zero === RUN TestLeveledCompactor_plan/Overlapping_blocks_3 -=== RUN TestLeveledCompactor_plan/Overlapping_blocks_4 +=== RUN TestLeveledCompactor_plan/Outside_Range === RUN TestLeveledCompactor_plan/Block_to_fill_the_entire_parent_range_appeared_–_should_be_compacted === RUN TestLeveledCompactor_plan/Block_for_the_next_parent_range_appeared,_and_we_have_a_gap_with_size_20_between_second_and_third_block.___We_will_not_get_this_missed_gap_anymore_and_we_should_compact_just_these_two. -=== RUN TestLeveledCompactor_plan/Block_for_the_next_parent_range_appeared_with_gap_with_size_20._Nothing_will_happen_in_the_first_one___anymore_but_we_ignore_fresh_one_still,_so_no_compaction +=== RUN TestLeveledCompactor_plan/Do_not_select_large_blocks_that_have_many_tombstones_when_there_is_no_fresh_block === RUN TestLeveledCompactor_plan/For_small_blocks,_do_not_compact_tombstones,_even_when_fresh_appears. -=== RUN TestLeveledCompactor_plan/Overlapping_blocks_5 -=== RUN TestLeveledCompactor_plan/Outside_Range === RUN TestLeveledCompactor_plan/We_should_wait_for_four_blocks_of_size_20_to_appear_before_compacting. +=== RUN TestLeveledCompactor_plan/We_have_20,_20,_20,_60,_60_range_blocks._'5'_is_marked_as_fresh_one === RUN TestLeveledCompactor_plan/Select_large_blocks_that_have_many_tombstones_when_fresh_appears === RUN TestLeveledCompactor_plan/Regression_test:_we_were_wrongly_assuming_that_new_block_is_fresh_from_WAL_when_its_ULID_is_newest.___We_need_to_actually_look_on_max_time_instead.____With_previous,_wrong_approach_"8"_block_was_ignored,_so_we_were_wrongly_compacting_5_and_7_and_introducing___block_overlaps -=== RUN TestLeveledCompactor_plan/We_have_20,_20,_20,_60,_60_range_blocks._'5'_is_marked_as_fresh_one +=== RUN TestLeveledCompactor_plan/Overlapping_blocks_2 === RUN TestLeveledCompactor_plan/We_have_20,_60,_20,_60,_240_range_blocks._We_can_compact_20_+_60_+_60 === RUN TestLeveledCompactor_plan/Overlapping_blocks_1 -=== RUN TestLeveledCompactor_plan/Overlapping_blocks_2 +=== RUN TestLeveledCompactor_plan/Overlapping_blocks_4 === RUN TestLeveledCompactor_plan/We_should_wait_for_a_next_block_of_size_20_to_appear_before_compacting___the_existing_ones._We_have_three,_but_we_ignore_the_fresh_one_from_WAl -=== RUN TestLeveledCompactor_plan/Do_not_select_large_blocks_that_have_many_tombstones_when_there_is_no_fresh_block ---- PASS: TestLeveledCompactor_plan (0.02s) +=== RUN TestLeveledCompactor_plan/Block_for_the_next_parent_range_appeared_with_gap_with_size_20._Nothing_will_happen_in_the_first_one___anymore_but_we_ignore_fresh_one_still,_so_no_compaction +=== RUN TestLeveledCompactor_plan/Overlapping_blocks_5 +--- PASS: TestLeveledCompactor_plan (0.00s) --- PASS: TestLeveledCompactor_plan/Regression_test:_we_were_stuck_in_a_compact_loop_where_we_always_recompacted___the_same_block_when_tombstones_and_series_counts_were_zero (0.00s) --- PASS: TestLeveledCompactor_plan/Overlapping_blocks_3 (0.00s) - --- PASS: TestLeveledCompactor_plan/Overlapping_blocks_4 (0.00s) + --- PASS: TestLeveledCompactor_plan/Outside_Range (0.00s) --- PASS: TestLeveledCompactor_plan/Block_to_fill_the_entire_parent_range_appeared_–_should_be_compacted (0.00s) --- PASS: TestLeveledCompactor_plan/Block_for_the_next_parent_range_appeared,_and_we_have_a_gap_with_size_20_between_second_and_third_block.___We_will_not_get_this_missed_gap_anymore_and_we_should_compact_just_these_two. (0.00s) - --- PASS: TestLeveledCompactor_plan/Block_for_the_next_parent_range_appeared_with_gap_with_size_20._Nothing_will_happen_in_the_first_one___anymore_but_we_ignore_fresh_one_still,_so_no_compaction (0.00s) + --- PASS: TestLeveledCompactor_plan/Do_not_select_large_blocks_that_have_many_tombstones_when_there_is_no_fresh_block (0.00s) --- PASS: TestLeveledCompactor_plan/For_small_blocks,_do_not_compact_tombstones,_even_when_fresh_appears. (0.00s) - --- PASS: TestLeveledCompactor_plan/Overlapping_blocks_5 (0.00s) - --- PASS: TestLeveledCompactor_plan/Outside_Range (0.00s) --- PASS: TestLeveledCompactor_plan/We_should_wait_for_four_blocks_of_size_20_to_appear_before_compacting. (0.00s) + --- PASS: TestLeveledCompactor_plan/We_have_20,_20,_20,_60,_60_range_blocks._'5'_is_marked_as_fresh_one (0.00s) --- PASS: TestLeveledCompactor_plan/Select_large_blocks_that_have_many_tombstones_when_fresh_appears (0.00s) --- PASS: TestLeveledCompactor_plan/Regression_test:_we_were_wrongly_assuming_that_new_block_is_fresh_from_WAL_when_its_ULID_is_newest.___We_need_to_actually_look_on_max_time_instead.____With_previous,_wrong_approach_"8"_block_was_ignored,_so_we_were_wrongly_compacting_5_and_7_and_introducing___block_overlaps (0.00s) - --- PASS: TestLeveledCompactor_plan/We_have_20,_20,_20,_60,_60_range_blocks._'5'_is_marked_as_fresh_one (0.00s) + --- PASS: TestLeveledCompactor_plan/Overlapping_blocks_2 (0.00s) --- PASS: TestLeveledCompactor_plan/We_have_20,_60,_20,_60,_240_range_blocks._We_can_compact_20_+_60_+_60 (0.00s) --- PASS: TestLeveledCompactor_plan/Overlapping_blocks_1 (0.00s) - --- PASS: TestLeveledCompactor_plan/Overlapping_blocks_2 (0.00s) + --- PASS: TestLeveledCompactor_plan/Overlapping_blocks_4 (0.00s) --- PASS: TestLeveledCompactor_plan/We_should_wait_for_a_next_block_of_size_20_to_appear_before_compacting___the_existing_ones._We_have_three,_but_we_ignore_the_fresh_one_from_WAl (0.00s) - --- PASS: TestLeveledCompactor_plan/Do_not_select_large_blocks_that_have_many_tombstones_when_there_is_no_fresh_block (0.00s) + --- PASS: TestLeveledCompactor_plan/Block_for_the_next_parent_range_appeared_with_gap_with_size_20._Nothing_will_happen_in_the_first_one___anymore_but_we_ignore_fresh_one_still,_so_no_compaction (0.00s) + --- PASS: TestLeveledCompactor_plan/Overlapping_blocks_5 (0.00s) === RUN TestRangeWithFailedCompactionWontGetSelected --- PASS: TestRangeWithFailedCompactionWontGetSelected (0.00s) === RUN TestCompactionFailWillCleanUpTempDir ---- PASS: TestCompactionFailWillCleanUpTempDir (0.27s) +--- PASS: TestCompactionFailWillCleanUpTempDir (0.06s) === RUN TestCompaction_populateBlock === RUN TestCompaction_populateBlock/Populate_block_from_empty_input_should_return_error. === RUN TestCompaction_populateBlock/#00 @@ -4510,188 +4581,188 @@ === RUN TestCompaction_populateBlock/Populate_from_three_overlapping_blocks. === RUN TestCompaction_populateBlock/Populate_from_three_partially_overlapping_blocks_with_few_full_chunks. === RUN TestCompaction_populateBlock/Populate_from_three_partially_overlapping_blocks_with_chunks_that_are_expected_to_merge_into_single_big_chunks. ---- PASS: TestCompaction_populateBlock (0.15s) +--- PASS: TestCompaction_populateBlock (0.08s) --- PASS: TestCompaction_populateBlock/Populate_block_from_empty_input_should_return_error. (0.00s) --- PASS: TestCompaction_populateBlock/#00 (0.01s) --- PASS: TestCompaction_populateBlock/Populate_from_single_block._We_expect_the_same_samples_at_the_output. (0.00s) - --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks. (0.00s) - --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks;_chunks_with_negative_time. (0.01s) + --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks. (0.01s) + --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks;_chunks_with_negative_time. (0.00s) --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks_showing_that_order_is_maintained. (0.00s) --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks_showing_that_order_of_series_is_sorted. (0.00s) - --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks_1:1_duplicated_chunks;_with_negative_timestamps. (0.02s) - --- PASS: TestCompaction_populateBlock/Populate_from_single_block_containing_chunk_outside_of_compact_meta_time_range. (0.01s) + --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks_1:1_duplicated_chunks;_with_negative_timestamps. (0.01s) + --- PASS: TestCompaction_populateBlock/Populate_from_single_block_containing_chunk_outside_of_compact_meta_time_range. (0.00s) --- PASS: TestCompaction_populateBlock/Populate_from_single_block_containing_extra_chunk (0.00s) - --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks_containing_duplicated_chunk. (0.00s) - --- PASS: TestCompaction_populateBlock/Populate_from_three_overlapping_blocks. (0.01s) - --- PASS: TestCompaction_populateBlock/Populate_from_three_partially_overlapping_blocks_with_few_full_chunks. (0.06s) + --- PASS: TestCompaction_populateBlock/Populate_from_two_blocks_containing_duplicated_chunk. (0.01s) + --- PASS: TestCompaction_populateBlock/Populate_from_three_overlapping_blocks. (0.00s) + --- PASS: TestCompaction_populateBlock/Populate_from_three_partially_overlapping_blocks_with_few_full_chunks. (0.03s) --- PASS: TestCompaction_populateBlock/Populate_from_three_partially_overlapping_blocks_with_chunks_that_are_expected_to_merge_into_single_big_chunks. (0.00s) === RUN TestDisableAutoCompactions ---- PASS: TestDisableAutoCompactions (0.79s) +--- PASS: TestDisableAutoCompactions (0.45s) === RUN TestCancelCompactions ---- PASS: TestCancelCompactions (202.09s) +--- PASS: TestCancelCompactions (130.26s) === RUN TestDeleteCompactionBlockAfterFailedReload -=== RUN TestDeleteCompactionBlockAfterFailedReload/Test_Head_Compaction === RUN TestDeleteCompactionBlockAfterFailedReload/Test_Block_Compaction ---- PASS: TestDeleteCompactionBlockAfterFailedReload (3.84s) - --- PASS: TestDeleteCompactionBlockAfterFailedReload/Test_Head_Compaction (1.17s) - --- PASS: TestDeleteCompactionBlockAfterFailedReload/Test_Block_Compaction (2.67s) +=== RUN TestDeleteCompactionBlockAfterFailedReload/Test_Head_Compaction +--- PASS: TestDeleteCompactionBlockAfterFailedReload (1.74s) + --- PASS: TestDeleteCompactionBlockAfterFailedReload/Test_Block_Compaction (1.05s) + --- PASS: TestDeleteCompactionBlockAfterFailedReload/Test_Head_Compaction (0.69s) === RUN TestDB_reloadOrder ---- PASS: TestDB_reloadOrder (1.97s) +--- PASS: TestDB_reloadOrder (0.57s) === RUN TestDataAvailableOnlyAfterCommit ---- PASS: TestDataAvailableOnlyAfterCommit (0.10s) +--- PASS: TestDataAvailableOnlyAfterCommit (0.06s) === RUN TestNoPanicAfterWALCorruption ---- PASS: TestNoPanicAfterWALCorruption (0.69s) +--- PASS: TestNoPanicAfterWALCorruption (0.19s) === RUN TestDataNotAvailableAfterRollback ---- PASS: TestDataNotAvailableAfterRollback (0.20s) +--- PASS: TestDataNotAvailableAfterRollback (0.06s) === RUN TestDBAppenderAddRef ---- PASS: TestDBAppenderAddRef (0.14s) +--- PASS: TestDBAppenderAddRef (0.06s) === RUN TestAppendEmptyLabelsIgnored ---- PASS: TestAppendEmptyLabelsIgnored (0.10s) +--- PASS: TestAppendEmptyLabelsIgnored (0.06s) === RUN TestDeleteSimple ---- PASS: TestDeleteSimple (1.06s) +--- PASS: TestDeleteSimple (0.37s) === RUN TestAmendDatapointCausesError ---- PASS: TestAmendDatapointCausesError (0.18s) +--- PASS: TestAmendDatapointCausesError (0.06s) === RUN TestDuplicateNaNDatapointNoAmendError ---- PASS: TestDuplicateNaNDatapointNoAmendError (0.18s) +--- PASS: TestDuplicateNaNDatapointNoAmendError (0.06s) === RUN TestNonDuplicateNaNDatapointsCausesAmendError ---- PASS: TestNonDuplicateNaNDatapointsCausesAmendError (0.17s) +--- PASS: TestNonDuplicateNaNDatapointsCausesAmendError (0.06s) === RUN TestEmptyLabelsetCausesError ---- PASS: TestEmptyLabelsetCausesError (0.19s) +--- PASS: TestEmptyLabelsetCausesError (0.06s) === RUN TestSkippingInvalidValuesInSameTxn ---- PASS: TestSkippingInvalidValuesInSameTxn (0.14s) +--- PASS: TestSkippingInvalidValuesInSameTxn (0.06s) === RUN TestDB_Snapshot ---- PASS: TestDB_Snapshot (1.17s) +--- PASS: TestDB_Snapshot (0.41s) === RUN TestDB_Snapshot_ChunksOutsideOfCompactedRange ---- PASS: TestDB_Snapshot_ChunksOutsideOfCompactedRange (0.56s) +--- PASS: TestDB_Snapshot_ChunksOutsideOfCompactedRange (0.71s) === RUN TestDB_SnapshotWithDelete ---- PASS: TestDB_SnapshotWithDelete (0.67s) +--- PASS: TestDB_SnapshotWithDelete (0.26s) === RUN TestDB_e2e ---- PASS: TestDB_e2e (53.88s) +--- PASS: TestDB_e2e (36.64s) === RUN TestWALFlushedOnDBClose ---- PASS: TestWALFlushedOnDBClose (0.23s) +--- PASS: TestWALFlushedOnDBClose (0.15s) === RUN TestWALSegmentSizeOptions === RUN TestWALSegmentSizeOptions/WALSegmentSize_0_test === RUN TestWALSegmentSizeOptions/WALSegmentSize_65536_test === RUN TestWALSegmentSizeOptions/WALSegmentSize_-1_test ---- PASS: TestWALSegmentSizeOptions (1.29s) - --- PASS: TestWALSegmentSizeOptions/WALSegmentSize_0_test (0.53s) - --- PASS: TestWALSegmentSizeOptions/WALSegmentSize_65536_test (0.44s) - --- PASS: TestWALSegmentSizeOptions/WALSegmentSize_-1_test (0.32s) +--- PASS: TestWALSegmentSizeOptions (0.96s) + --- PASS: TestWALSegmentSizeOptions/WALSegmentSize_0_test (0.34s) + --- PASS: TestWALSegmentSizeOptions/WALSegmentSize_65536_test (0.37s) + --- PASS: TestWALSegmentSizeOptions/WALSegmentSize_-1_test (0.25s) === RUN TestTombstoneClean ---- PASS: TestTombstoneClean (0.74s) +--- PASS: TestTombstoneClean (0.45s) === RUN TestTombstoneCleanFail ---- PASS: TestTombstoneCleanFail (1.12s) +--- PASS: TestTombstoneCleanFail (0.57s) === RUN TestTimeRetention ---- PASS: TestTimeRetention (1.49s) +--- PASS: TestTimeRetention (0.80s) === RUN TestSizeRetention ---- PASS: TestSizeRetention (3.58s) +--- PASS: TestSizeRetention (2.04s) === RUN TestSizeRetentionMetric ---- PASS: TestSizeRetentionMetric (0.15s) +--- PASS: TestSizeRetentionMetric (0.17s) === RUN TestNotMatcherSelectsLabelsUnsetSeries --- PASS: TestNotMatcherSelectsLabelsUnsetSeries (0.06s) === RUN TestOverlappingBlocksDetectsAllOverlaps --- PASS: TestOverlappingBlocksDetectsAllOverlaps (0.00s) === RUN TestChunkAtBlockBoundary ---- PASS: TestChunkAtBlockBoundary (0.54s) +--- PASS: TestChunkAtBlockBoundary (0.26s) === RUN TestQuerierWithBoundaryChunks ---- PASS: TestQuerierWithBoundaryChunks (1.18s) +--- PASS: TestQuerierWithBoundaryChunks (0.49s) === RUN TestInitializeHeadTimestamp === RUN TestInitializeHeadTimestamp/clean === RUN TestInitializeHeadTimestamp/wal-only === RUN TestInitializeHeadTimestamp/existing-block === RUN TestInitializeHeadTimestamp/existing-block-and-wal ---- PASS: TestInitializeHeadTimestamp (1.28s) +--- PASS: TestInitializeHeadTimestamp (0.65s) --- PASS: TestInitializeHeadTimestamp/clean (0.06s) --- PASS: TestInitializeHeadTimestamp/wal-only (0.06s) - --- PASS: TestInitializeHeadTimestamp/existing-block (0.50s) - --- PASS: TestInitializeHeadTimestamp/existing-block-and-wal (0.67s) + --- PASS: TestInitializeHeadTimestamp/existing-block (0.25s) + --- PASS: TestInitializeHeadTimestamp/existing-block-and-wal (0.29s) === RUN TestNoEmptyBlocks === RUN TestNoEmptyBlocks/Test_no_blocks_after_compact_with_empty_head. === RUN TestNoEmptyBlocks/Test_no_blocks_after_deleting_all_samples_from_head. === RUN TestNoEmptyBlocks/When_no_new_block_is_created_from_head,_and_there_are_some_blocks_on_disk__compaction_should_not_run_into_infinite_loop_(was_seen_during_development). === RUN TestNoEmptyBlocks/Test_no_blocks_remaining_after_deleting_all_samples_from_disk. ---- PASS: TestNoEmptyBlocks (2.16s) +--- PASS: TestNoEmptyBlocks (0.89s) --- PASS: TestNoEmptyBlocks/Test_no_blocks_after_compact_with_empty_head. (0.00s) - --- PASS: TestNoEmptyBlocks/Test_no_blocks_after_deleting_all_samples_from_head. (0.56s) - --- PASS: TestNoEmptyBlocks/When_no_new_block_is_created_from_head,_and_there_are_some_blocks_on_disk__compaction_should_not_run_into_infinite_loop_(was_seen_during_development). (0.24s) - --- PASS: TestNoEmptyBlocks/Test_no_blocks_remaining_after_deleting_all_samples_from_disk. (1.29s) + --- PASS: TestNoEmptyBlocks/Test_no_blocks_after_deleting_all_samples_from_head. (0.23s) + --- PASS: TestNoEmptyBlocks/When_no_new_block_is_created_from_head,_and_there_are_some_blocks_on_disk__compaction_should_not_run_into_infinite_loop_(was_seen_during_development). (0.07s) + --- PASS: TestNoEmptyBlocks/Test_no_blocks_remaining_after_deleting_all_samples_from_disk. (0.51s) === RUN TestDB_LabelNames ---- PASS: TestDB_LabelNames (0.16s) +--- PASS: TestDB_LabelNames (0.14s) === RUN TestCorrectNumTombstones ---- PASS: TestCorrectNumTombstones (0.83s) +--- PASS: TestCorrectNumTombstones (0.35s) === RUN TestBlockRanges -level=info msg="Found healthy block" mint=0 maxt=3 ulid=01FAXYB3XNQNFTXC4CVEXP569Q +level=info msg="Found healthy block" mint=0 maxt=3 ulid=01FAY00HEZ8PZAA1SD2KKDXFB5 level=info msg="Replaying on-disk memory mappable chunks if any" -level=info msg="On-disk memory mappable chunks replay completed" duration=24.001µs +level=info msg="On-disk memory mappable chunks replay completed" duration=16.625µs level=info msg="Replaying WAL, this may take a while" level=info msg="WAL segment loaded" segment=0 maxSegment=0 -level=info msg="WAL replay completed" checkpoint_replay_duration=436.025µs wal_replay_duration=4.565592ms total_replay_duration=5.090622ms -level=info msg="write block" mint=3 maxt=10000 ulid=01FAXYB4E0YVJZWM3Y3G77YWCP duration=285.786236ms -level=info msg="Head GC completed" duration=12.56538ms +level=info msg="WAL replay completed" checkpoint_replay_duration=247.626µs wal_replay_duration=1.304922ms total_replay_duration=1.711798ms +level=info msg="write block" mint=3 maxt=10000 ulid=01FAY00HMBQ0FB95WRXXWNPHSP duration=125.352982ms +level=info msg="Head GC completed" duration=12.815299ms level=info msg="Compactions disabled" -level=info msg="Found healthy block" mint=0 maxt=3 ulid=01FAXYB3XNQNFTXC4CVEXP569Q -level=info msg="Found healthy block" mint=3 maxt=10000 ulid=01FAXYB4E0YVJZWM3Y3G77YWCP -level=info msg="Found healthy block" mint=15005 maxt=15006 ulid=01FAXYB4T2ZCPSB6RRAMWYG0CM +level=info msg="Found healthy block" mint=0 maxt=3 ulid=01FAY00HEZ8PZAA1SD2KKDXFB5 +level=info msg="Found healthy block" mint=3 maxt=10000 ulid=01FAY00HMBQ0FB95WRXXWNPHSP +level=info msg="Found healthy block" mint=15005 maxt=15006 ulid=01FAY00HWABF7VWW0WCZS1KACW level=info msg="Replaying on-disk memory mappable chunks if any" -level=info msg="On-disk memory mappable chunks replay completed" duration=37.336µs +level=info msg="On-disk memory mappable chunks replay completed" duration=36.75µs level=info msg="Replaying WAL, this may take a while" level=info msg="WAL segment loaded" segment=0 maxSegment=2 level=info msg="WAL segment loaded" segment=1 maxSegment=2 level=info msg="WAL segment loaded" segment=2 maxSegment=2 -level=info msg="WAL replay completed" checkpoint_replay_duration=373.688µs wal_replay_duration=15.391208ms total_replay_duration=15.851901ms -level=info msg="write block" mint=15006 maxt=20000 ulid=01FAXYB56K8J0TBYCT26RTH9DQ duration=290.791521ms -level=info msg="Head GC completed" duration=31.532125ms ---- PASS: TestBlockRanges (1.78s) +level=info msg="WAL replay completed" checkpoint_replay_duration=297.792µs wal_replay_duration=4.479726ms total_replay_duration=4.880477ms +level=info msg="write block" mint=15006 maxt=20000 ulid=01FAY00J1K788WJ5TNH9H16B60 duration=100.826054ms +level=info msg="Head GC completed" duration=13.169384ms +--- PASS: TestBlockRanges (0.86s) === RUN TestDBReadOnly -level=info msg="Found healthy block" mint=10 maxt=12 ulid=01FAXYB5NP1CH4MRHV37S6E3BX -level=info msg="Found healthy block" mint=12 maxt=14 ulid=01FAXYB64190ZX33DC6H6RSNGA -level=info msg="Found healthy block" mint=14 maxt=16 ulid=01FAXYB6FTHWPSNF55G1RF1CCW +level=info msg="Found healthy block" mint=10 maxt=12 ulid=01FAY00J9WMZRKHV1CY6DVXECP +level=info msg="Found healthy block" mint=12 maxt=14 ulid=01FAY00JES46JXWCC5JCR4N4YK +level=info msg="Found healthy block" mint=14 maxt=16 ulid=01FAY00JKZ6HSCECD8Q64NSDP4 level=info msg="Replaying on-disk memory mappable chunks if any" -level=info msg="On-disk memory mappable chunks replay completed" duration=21.668µs +level=info msg="On-disk memory mappable chunks replay completed" duration=18.083µs level=info msg="Replaying WAL, this may take a while" level=info msg="WAL segment loaded" segment=0 maxSegment=1 level=info msg="WAL segment loaded" segment=1 maxSegment=1 -level=info msg="WAL replay completed" checkpoint_replay_duration=330.352µs wal_replay_duration=18.625725ms total_replay_duration=19.030415ms +level=info msg="WAL replay completed" checkpoint_replay_duration=277.667µs wal_replay_duration=2.831219ms total_replay_duration=3.190262ms level=info msg="Compactions disabled" === RUN TestDBReadOnly/blocks === RUN TestDBReadOnly/querier level=info msg="Replaying on-disk memory mappable chunks if any" -level=info msg="On-disk memory mappable chunks replay completed" duration=4.187571ms +level=info msg="On-disk memory mappable chunks replay completed" duration=17.5µs level=info msg="Replaying WAL, this may take a while" level=info msg="WAL segment loaded" segment=0 maxSegment=1 level=info msg="WAL segment loaded" segment=1 maxSegment=1 -level=info msg="WAL replay completed" checkpoint_replay_duration=420.69µs wal_replay_duration=6.893058ms total_replay_duration=11.654662ms +level=info msg="WAL replay completed" checkpoint_replay_duration=253.459µs wal_replay_duration=3.417472ms total_replay_duration=3.759598ms === RUN TestDBReadOnly/chunk_querier level=info msg="Replaying on-disk memory mappable chunks if any" -level=info msg="On-disk memory mappable chunks replay completed" duration=23.335µs +level=info msg="On-disk memory mappable chunks replay completed" duration=16.917µs level=info msg="Replaying WAL, this may take a while" level=info msg="WAL segment loaded" segment=0 maxSegment=1 level=info msg="WAL segment loaded" segment=1 maxSegment=1 -level=info msg="WAL replay completed" checkpoint_replay_duration=386.688µs wal_replay_duration=15.285868ms total_replay_duration=15.765896ms ---- PASS: TestDBReadOnly (1.87s) - --- PASS: TestDBReadOnly/blocks (0.01s) - --- PASS: TestDBReadOnly/querier (0.18s) - --- PASS: TestDBReadOnly/chunk_querier (0.16s) +level=info msg="WAL replay completed" checkpoint_replay_duration=237.417µs wal_replay_duration=3.596556ms total_replay_duration=3.917682ms +--- PASS: TestDBReadOnly (0.82s) + --- PASS: TestDBReadOnly/blocks (0.00s) + --- PASS: TestDBReadOnly/querier (0.10s) + --- PASS: TestDBReadOnly/chunk_querier (0.10s) === RUN TestDBReadOnlyClosing --- PASS: TestDBReadOnlyClosing (0.00s) === RUN TestDBReadOnly_FlushWAL level=info msg="Replaying on-disk memory mappable chunks if any" -level=info msg="On-disk memory mappable chunks replay completed" duration=18.668µs +level=info msg="On-disk memory mappable chunks replay completed" duration=16.334µs level=info msg="Replaying WAL, this may take a while" level=info msg="WAL segment loaded" segment=0 maxSegment=0 -level=info msg="WAL replay completed" checkpoint_replay_duration=265.015µs wal_replay_duration=10.911953ms total_replay_duration=11.251639ms +level=info msg="WAL replay completed" checkpoint_replay_duration=195.126µs wal_replay_duration=1.157921ms total_replay_duration=1.430631ms level=info msg="Compactions disabled" level=info msg="Replaying on-disk memory mappable chunks if any" -level=info msg="On-disk memory mappable chunks replay completed" duration=26.001µs +level=info msg="On-disk memory mappable chunks replay completed" duration=19.542µs level=info msg="Replaying WAL, this may take a while" level=info msg="WAL segment loaded" segment=0 maxSegment=0 -level=info msg="WAL replay completed" checkpoint_replay_duration=310.684µs wal_replay_duration=98.602602ms total_replay_duration=99.000957ms -level=info msg="write block" mint=0 maxt=1000 ulid=01FAXYB7QJNR9QVK3E0ZYSGZZY duration=233.685277ms ---- PASS: TestDBReadOnly_FlushWAL (0.61s) +level=info msg="WAL replay completed" checkpoint_replay_duration=240.626µs wal_replay_duration=44.251545ms total_replay_duration=44.575588ms +level=info msg="write block" mint=0 maxt=1000 ulid=01FAY00K7V1QCGYQ71D5DJBDQD duration=116.411614ms +--- PASS: TestDBReadOnly_FlushWAL (0.35s) === RUN TestDBCannotSeePartialCommits ---- PASS: TestDBCannotSeePartialCommits (0.18s) +--- PASS: TestDBCannotSeePartialCommits (0.14s) === RUN TestDBQueryDoesntSeeAppendsAfterCreation ---- PASS: TestDBQueryDoesntSeeAppendsAfterCreation (0.07s) +--- PASS: TestDBQueryDoesntSeeAppendsAfterCreation (0.06s) === RUN TestChunkWriter_ReadAfterWrite === RUN TestChunkWriter_ReadAfterWrite/0 === RUN TestChunkWriter_ReadAfterWrite/1 @@ -4700,91 +4771,91 @@ === RUN TestChunkWriter_ReadAfterWrite/4 === RUN TestChunkWriter_ReadAfterWrite/5 === RUN TestChunkWriter_ReadAfterWrite/6 ---- PASS: TestChunkWriter_ReadAfterWrite (0.74s) - --- PASS: TestChunkWriter_ReadAfterWrite/0 (0.07s) - --- PASS: TestChunkWriter_ReadAfterWrite/1 (0.14s) - --- PASS: TestChunkWriter_ReadAfterWrite/2 (0.13s) - --- PASS: TestChunkWriter_ReadAfterWrite/3 (0.08s) - --- PASS: TestChunkWriter_ReadAfterWrite/4 (0.13s) - --- PASS: TestChunkWriter_ReadAfterWrite/5 (0.10s) - --- PASS: TestChunkWriter_ReadAfterWrite/6 (0.07s) +--- PASS: TestChunkWriter_ReadAfterWrite (0.31s) + --- PASS: TestChunkWriter_ReadAfterWrite/0 (0.03s) + --- PASS: TestChunkWriter_ReadAfterWrite/1 (0.05s) + --- PASS: TestChunkWriter_ReadAfterWrite/2 (0.06s) + --- PASS: TestChunkWriter_ReadAfterWrite/3 (0.02s) + --- PASS: TestChunkWriter_ReadAfterWrite/4 (0.04s) + --- PASS: TestChunkWriter_ReadAfterWrite/5 (0.05s) + --- PASS: TestChunkWriter_ReadAfterWrite/6 (0.04s) === RUN TestRangeForTimestamp --- PASS: TestRangeForTimestamp (0.00s) === RUN TestChunkReader_ConcurrentReads ---- PASS: TestChunkReader_ConcurrentReads (0.12s) +--- PASS: TestChunkReader_ConcurrentReads (0.06s) === RUN TestCompactHead ---- PASS: TestCompactHead (0.49s) +--- PASS: TestCompactHead (0.27s) === RUN TestOpen_VariousBlockStates level=info msg="Fixing broken block" mint=1511366400000 maxt=1511368200000 ulid=01BZJ9WJQPWHGNC2W4J9TA62KC -level=info msg="Found healthy block" mint=0 maxt=10 ulid=01FAXYB9N3PEFW2WYK9SVKD4VV -level=info msg="Found healthy block" mint=10 maxt=20 ulid=01FAXYBA00D66ZJ4QTFN8CE5YM -level=error msg="failed to read meta.json for a block during repair process; skipping" dir=/tmp/test231048245/01FAXYBAD3JYGMD662KHF351DN err="open /tmp/test231048245/01FAXYBAD3JYGMD662KHF351DN/meta.json: no such file or directory" -level=info msg="Found healthy block" mint=50 maxt=60 ulid=01FAXYBBH465ZNMHVPBM607XHK -level=info msg="Found healthy block" mint=50 maxt=55 ulid=01FAXYBBY0NSE5Q9TT6PT4967N -level=info msg="Found and deleted tmp block dir" dir=/tmp/test231048245/01FAXYBAQZKHCXV33MEJD0PAR1.tmp-for-creation -level=info msg="Found and deleted tmp block dir" dir=/tmp/test231048245/01FAXYBB4AW6X31T64DENDZGTP.tmp-for-deletion -level=error msg="Failed to read meta.json for a block during reloadBlocks. Skipping" dir=/tmp/test231048245/01FAXYBAD3JYGMD662KHF351DN err="open /tmp/test231048245/01FAXYBAD3JYGMD662KHF351DN/meta.json: no such file or directory" -level=info msg="Deleting obsolete block" block=01FAXYBBY0NSE5Q9TT6PT4967N +level=info msg="Found healthy block" mint=0 maxt=10 ulid=01FAY00M8VX6P1SRPH2AADVKYN +level=info msg="Found healthy block" mint=10 maxt=20 ulid=01FAY00NFD6JSW2WHKNYNGCEQV +level=error msg="failed to read meta.json for a block during repair process; skipping" dir=/tmp/test824787344/01FAY00NMDPM4RKZ64G58KX2W6 err="open /tmp/test824787344/01FAY00NMDPM4RKZ64G58KX2W6/meta.json: no such file or directory" +level=info msg="Found healthy block" mint=50 maxt=60 ulid=01FAY00P5FXJE53B8ND9VE3R9T +level=info msg="Found healthy block" mint=50 maxt=55 ulid=01FAY00PBAQYQKY86CX7AS7K49 +level=info msg="Found and deleted tmp block dir" dir=/tmp/test824787344/01FAY00NTQTWN0DSPW2P4P87W3.tmp-for-creation +level=info msg="Found and deleted tmp block dir" dir=/tmp/test824787344/01FAY00P0CZM4FCDFPDBBN4S71.tmp-for-deletion +level=error msg="Failed to read meta.json for a block during reloadBlocks. Skipping" dir=/tmp/test824787344/01FAY00NMDPM4RKZ64G58KX2W6 err="open /tmp/test824787344/01FAY00NMDPM4RKZ64G58KX2W6/meta.json: no such file or directory" +level=info msg="Deleting obsolete block" block=01FAY00PBAQYQKY86CX7AS7K49 level=info msg="Replaying on-disk memory mappable chunks if any" -level=info msg="On-disk memory mappable chunks replay completed" duration=21.668µs +level=info msg="On-disk memory mappable chunks replay completed" duration=21.291µs level=info msg="Replaying WAL, this may take a while" level=info msg="WAL segment loaded" segment=0 maxSegment=0 -level=info msg="WAL replay completed" checkpoint_replay_duration=338.353µs wal_replay_duration=2.820493ms total_replay_duration=3.233517ms ---- PASS: TestOpen_VariousBlockStates (2.93s) +level=info msg="WAL replay completed" checkpoint_replay_duration=277.667µs wal_replay_duration=1.344881ms total_replay_duration=1.704215ms +--- PASS: TestOpen_VariousBlockStates (2.41s) === RUN TestOneCheckpointPerCompactCall ---- PASS: TestOneCheckpointPerCompactCall (21.34s) +--- PASS: TestOneCheckpointPerCompactCall (9.33s) === RUN TestNoPanicOnTSDBOpenError ---- PASS: TestNoPanicOnTSDBOpenError (0.01s) +--- PASS: TestNoPanicOnTSDBOpenError (0.00s) === RUN TestHead_ReadWAL === RUN TestHead_ReadWAL/compress=false === RUN TestHead_ReadWAL/compress=true ---- PASS: TestHead_ReadWAL (0.26s) - --- PASS: TestHead_ReadWAL/compress=false (0.13s) - --- PASS: TestHead_ReadWAL/compress=true (0.13s) +--- PASS: TestHead_ReadWAL (0.11s) + --- PASS: TestHead_ReadWAL/compress=false (0.05s) + --- PASS: TestHead_ReadWAL/compress=true (0.06s) === RUN TestHead_WALMultiRef ---- PASS: TestHead_WALMultiRef (0.38s) +--- PASS: TestHead_WALMultiRef (0.22s) === RUN TestHead_UnknownWALRecord ---- PASS: TestHead_UnknownWALRecord (0.07s) +--- PASS: TestHead_UnknownWALRecord (0.06s) === RUN TestHead_Truncate ---- PASS: TestHead_Truncate (0.10s) +--- PASS: TestHead_Truncate (0.07s) === RUN TestMemSeries_truncateChunks ---- PASS: TestMemSeries_truncateChunks (0.07s) +--- PASS: TestMemSeries_truncateChunks (0.03s) === RUN TestHeadDeleteSeriesWithoutSamples === RUN TestHeadDeleteSeriesWithoutSamples/compress=false === RUN TestHeadDeleteSeriesWithoutSamples/compress=true ---- PASS: TestHeadDeleteSeriesWithoutSamples (0.27s) - --- PASS: TestHeadDeleteSeriesWithoutSamples/compress=false (0.09s) - --- PASS: TestHeadDeleteSeriesWithoutSamples/compress=true (0.17s) +--- PASS: TestHeadDeleteSeriesWithoutSamples (0.13s) + --- PASS: TestHeadDeleteSeriesWithoutSamples/compress=false (0.07s) + --- PASS: TestHeadDeleteSeriesWithoutSamples/compress=true (0.06s) === RUN TestHeadDeleteSimple === RUN TestHeadDeleteSimple/compress=false === RUN TestHeadDeleteSimple/compress=true ---- PASS: TestHeadDeleteSimple (2.58s) - --- PASS: TestHeadDeleteSimple/compress=false (1.32s) - --- PASS: TestHeadDeleteSimple/compress=true (1.25s) +--- PASS: TestHeadDeleteSimple (1.61s) + --- PASS: TestHeadDeleteSimple/compress=false (0.74s) + --- PASS: TestHeadDeleteSimple/compress=true (0.87s) === RUN TestDeleteUntilCurMax ---- PASS: TestDeleteUntilCurMax (0.07s) +--- PASS: TestDeleteUntilCurMax (0.04s) === RUN TestDeletedSamplesAndSeriesStillInWALAfterCheckpoint ---- PASS: TestDeletedSamplesAndSeriesStillInWALAfterCheckpoint (2.08s) +--- PASS: TestDeletedSamplesAndSeriesStillInWALAfterCheckpoint (1.35s) === RUN TestDelete_e2e ---- PASS: TestDelete_e2e (52.76s) +--- PASS: TestDelete_e2e (37.09s) === RUN TestComputeChunkEndTime --- PASS: TestComputeChunkEndTime (0.00s) === RUN TestMemSeries_append ---- PASS: TestMemSeries_append (0.08s) +--- PASS: TestMemSeries_append (0.04s) === RUN TestGCChunkAccess ---- PASS: TestGCChunkAccess (0.15s) +--- PASS: TestGCChunkAccess (0.08s) === RUN TestGCSeriesAccess ---- PASS: TestGCSeriesAccess (0.18s) +--- PASS: TestGCSeriesAccess (0.10s) === RUN TestUncommittedSamplesNotLostOnTruncate ---- PASS: TestUncommittedSamplesNotLostOnTruncate (0.12s) +--- PASS: TestUncommittedSamplesNotLostOnTruncate (0.06s) === RUN TestRemoveSeriesAfterRollbackAndTruncate ---- PASS: TestRemoveSeriesAfterRollbackAndTruncate (0.10s) +--- PASS: TestRemoveSeriesAfterRollbackAndTruncate (0.07s) === RUN TestHead_LogRollback === RUN TestHead_LogRollback/compress=false === RUN TestHead_LogRollback/compress=true --- PASS: TestHead_LogRollback (0.09s) --- PASS: TestHead_LogRollback/compress=false (0.04s) - --- PASS: TestHead_LogRollback/compress=true (0.05s) + --- PASS: TestHead_LogRollback/compress=true (0.04s) === RUN TestWalRepair_DecodingError === RUN TestWalRepair_DecodingError/decode_series,compress=false === RUN TestWalRepair_DecodingError/decode_series,compress=true @@ -4792,47 +4863,47 @@ === RUN TestWalRepair_DecodingError/decode_samples,compress=true === RUN TestWalRepair_DecodingError/decode_tombstone,compress=false === RUN TestWalRepair_DecodingError/decode_tombstone,compress=true ---- PASS: TestWalRepair_DecodingError (0.94s) - --- PASS: TestWalRepair_DecodingError/decode_series,compress=false (0.18s) +--- PASS: TestWalRepair_DecodingError (0.85s) + --- PASS: TestWalRepair_DecodingError/decode_series,compress=false (0.16s) --- PASS: TestWalRepair_DecodingError/decode_series,compress=true (0.12s) --- PASS: TestWalRepair_DecodingError/decode_samples,compress=false (0.14s) - --- PASS: TestWalRepair_DecodingError/decode_samples,compress=true (0.21s) - --- PASS: TestWalRepair_DecodingError/decode_tombstone,compress=false (0.15s) + --- PASS: TestWalRepair_DecodingError/decode_samples,compress=true (0.15s) + --- PASS: TestWalRepair_DecodingError/decode_tombstone,compress=false (0.14s) --- PASS: TestWalRepair_DecodingError/decode_tombstone,compress=true (0.13s) === RUN TestHeadReadWriterRepair ---- PASS: TestHeadReadWriterRepair (0.33s) +--- PASS: TestHeadReadWriterRepair (0.23s) === RUN TestNewWalSegmentOnTruncate ---- PASS: TestNewWalSegmentOnTruncate (0.15s) +--- PASS: TestNewWalSegmentOnTruncate (0.08s) === RUN TestAddDuplicateLabelName ---- PASS: TestAddDuplicateLabelName (0.09s) +--- PASS: TestAddDuplicateLabelName (0.06s) === RUN TestMemSeriesIsolation ---- PASS: TestMemSeriesIsolation (0.90s) +--- PASS: TestMemSeriesIsolation (0.49s) === RUN TestIsolationRollback ---- PASS: TestIsolationRollback (0.07s) +--- PASS: TestIsolationRollback (0.04s) === RUN TestIsolationLowWatermarkMonotonous ---- PASS: TestIsolationLowWatermarkMonotonous (0.12s) +--- PASS: TestIsolationLowWatermarkMonotonous (0.04s) === RUN TestIsolationAppendIDZeroIsNoop ---- PASS: TestIsolationAppendIDZeroIsNoop (0.04s) +--- PASS: TestIsolationAppendIDZeroIsNoop (0.07s) === RUN TestHeadSeriesChunkRace ---- PASS: TestHeadSeriesChunkRace (121.37s) +--- PASS: TestHeadSeriesChunkRace (81.98s) === RUN TestIsolationWithoutAdd ---- PASS: TestIsolationWithoutAdd (0.06s) +--- PASS: TestIsolationWithoutAdd (0.07s) === RUN TestOutOfOrderSamplesMetric ---- PASS: TestOutOfOrderSamplesMetric (0.70s) +--- PASS: TestOutOfOrderSamplesMetric (0.29s) === RUN TestHeadLabelNamesValuesWithMinMaxRange === RUN TestHeadLabelNamesValuesWithMinMaxRange/maxt_less_than_head_min === RUN TestHeadLabelNamesValuesWithMinMaxRange/mint_less_than_head_max === RUN TestHeadLabelNamesValuesWithMinMaxRange/mint_and_maxt_outside_head === RUN TestHeadLabelNamesValuesWithMinMaxRange/mint_and_maxt_within_head ---- PASS: TestHeadLabelNamesValuesWithMinMaxRange (0.08s) +--- PASS: TestHeadLabelNamesValuesWithMinMaxRange (0.05s) --- PASS: TestHeadLabelNamesValuesWithMinMaxRange/maxt_less_than_head_min (0.00s) --- PASS: TestHeadLabelNamesValuesWithMinMaxRange/mint_less_than_head_max (0.00s) --- PASS: TestHeadLabelNamesValuesWithMinMaxRange/mint_and_maxt_outside_head (0.00s) --- PASS: TestHeadLabelNamesValuesWithMinMaxRange/mint_and_maxt_within_head (0.00s) === RUN TestErrReuseAppender ---- PASS: TestErrReuseAppender (0.07s) +--- PASS: TestErrReuseAppender (0.04s) === RUN TestHeadMintAfterTruncation ---- PASS: TestHeadMintAfterTruncation (0.26s) +--- PASS: TestHeadMintAfterTruncation (0.13s) === RUN TestBlockQuerier === RUN TestBlockQuerier/#00 === RUN TestBlockQuerier/#00/sample @@ -4852,7 +4923,7 @@ === RUN TestBlockQuerier/#05 === RUN TestBlockQuerier/#05/sample === RUN TestBlockQuerier/#05/chunk ---- PASS: TestBlockQuerier (0.02s) +--- PASS: TestBlockQuerier (0.01s) --- PASS: TestBlockQuerier/#00 (0.00s) --- PASS: TestBlockQuerier/#00/sample (0.00s) --- PASS: TestBlockQuerier/#00/chunk (0.00s) @@ -4865,7 +4936,7 @@ --- PASS: TestBlockQuerier/#03 (0.00s) --- PASS: TestBlockQuerier/#03/sample (0.00s) --- PASS: TestBlockQuerier/#03/chunk (0.00s) - --- PASS: TestBlockQuerier/#04 (0.01s) + --- PASS: TestBlockQuerier/#04 (0.00s) --- PASS: TestBlockQuerier/#04/sample (0.00s) --- PASS: TestBlockQuerier/#04/chunk (0.00s) --- PASS: TestBlockQuerier/#05 (0.00s) @@ -4890,8 +4961,8 @@ === RUN TestBlockQuerier_AgainstHeadWithOpenChunks/#05 === RUN TestBlockQuerier_AgainstHeadWithOpenChunks/#05/sample === RUN TestBlockQuerier_AgainstHeadWithOpenChunks/#05/chunk ---- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks (0.19s) - --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#00 (0.03s) +--- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks (0.23s) + --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#00 (0.06s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#00/sample (0.00s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#00/chunk (0.00s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#01 (0.03s) @@ -4900,10 +4971,10 @@ --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#02 (0.03s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#02/sample (0.00s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#02/chunk (0.00s) - --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#03 (0.04s) + --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#03 (0.03s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#03/sample (0.00s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#03/chunk (0.00s) - --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#04 (0.03s) + --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#04 (0.04s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#04/sample (0.00s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#04/chunk (0.00s) --- PASS: TestBlockQuerier_AgainstHeadWithOpenChunks/#05 (0.03s) @@ -4928,7 +4999,7 @@ === RUN TestBlockQuerierDelete/#05 === RUN TestBlockQuerierDelete/#05/sample === RUN TestBlockQuerierDelete/#05/chunk ---- PASS: TestBlockQuerierDelete (0.02s) +--- PASS: TestBlockQuerierDelete (0.01s) --- PASS: TestBlockQuerierDelete/#00 (0.00s) --- PASS: TestBlockQuerierDelete/#00/sample (0.00s) --- PASS: TestBlockQuerierDelete/#00/chunk (0.00s) @@ -4993,7 +5064,7 @@ === RUN TestPopulateWithTombSeriesIterators/two_chunks_with_trimmed_first_and_last_samples_from_edge_chunks,_seek_from_middle_of_first_chunk === RUN TestPopulateWithTombSeriesIterators/two_chunks_with_trimmed_first_and_last_samples_from_edge_chunks,_seek_from_middle_of_first_chunk/sample === RUN TestPopulateWithTombSeriesIterators/two_chunks_with_trimmed_first_and_last_samples_from_edge_chunks,_seek_from_middle_of_first_chunk/chunk ---- PASS: TestPopulateWithTombSeriesIterators (0.03s) +--- PASS: TestPopulateWithTombSeriesIterators (0.01s) --- PASS: TestPopulateWithTombSeriesIterators/no_chunk (0.00s) --- PASS: TestPopulateWithTombSeriesIterators/no_chunk/sample (0.00s) --- PASS: TestPopulateWithTombSeriesIterators/no_chunk/chunk (0.00s) @@ -5048,15 +5119,15 @@ === RUN TestPopulateWithDelSeriesIterator_NextWithMinTime --- PASS: TestPopulateWithDelSeriesIterator_NextWithMinTime (0.00s) === RUN TestDeletedIterator ---- PASS: TestDeletedIterator (0.89s) +--- PASS: TestDeletedIterator (0.80s) === RUN TestDeletedIterator_WithSeek --- PASS: TestDeletedIterator_WithSeek (0.00s) === RUN TestFindSetMatches --- PASS: TestFindSetMatches (0.00s) === RUN TestPostingsForMatchers ---- PASS: TestPostingsForMatchers (0.04s) +--- PASS: TestPostingsForMatchers (0.07s) === RUN TestClose ---- PASS: TestClose (0.79s) +--- PASS: TestClose (0.44s) === RUN TestPostingsForMatcher --- PASS: TestPostingsForMatcher (0.00s) === RUN TestBlockBaseSeriesSet @@ -5066,88 +5137,88 @@ repair_test.go:89: next ID 3 repair_test.go:110: next ID 2 repair_test.go:110: next ID 3 ---- PASS: TestRepairBadIndexVersion (0.14s) +--- PASS: TestRepairBadIndexVersion (0.09s) === RUN TestSegmentWAL_cut ---- PASS: TestSegmentWAL_cut (0.15s) +--- PASS: TestSegmentWAL_cut (0.02s) === RUN TestSegmentWAL_Truncate ---- PASS: TestSegmentWAL_Truncate (22.56s) +--- PASS: TestSegmentWAL_Truncate (10.72s) === RUN TestSegmentWAL_Log_Restore ---- PASS: TestSegmentWAL_Log_Restore (0.26s) +--- PASS: TestSegmentWAL_Log_Restore (0.12s) === RUN TestWALRestoreCorrupted_invalidSegment -level=warn msg="Invalid segment file detected, truncating WAL" err="invalid magic header 1020304 in \"/tmp/test_wal_log_restore950809339/000001\"" file=/tmp/test_wal_log_restore950809339/000001 +level=warn msg="Invalid segment file detected, truncating WAL" err="invalid magic header 1020304 in \"/tmp/test_wal_log_restore697157534/000001\"" file=/tmp/test_wal_log_restore697157534/000001 --- PASS: TestWALRestoreCorrupted_invalidSegment (0.02s) === RUN TestWALRestoreCorrupted === RUN TestWALRestoreCorrupted/truncate_checksum -level=error msg="WAL corruption detected; truncating" err="invalid checksum length 3" file=/tmp/test_corrupted559468062/000001 pos=44 +level=error msg="WAL corruption detected; truncating" err="invalid checksum length 3" file=/tmp/test_corrupted419315813/000001 pos=44 === RUN TestWALRestoreCorrupted/truncate_body -level=error msg="WAL corruption detected; truncating" err="invalid entry body size 22" file=/tmp/test_corrupted895784165/000001 pos=44 +level=error msg="WAL corruption detected; truncating" err="invalid entry body size 22" file=/tmp/test_corrupted251667584/000001 pos=44 === RUN TestWALRestoreCorrupted/body_content -level=error msg="WAL corruption detected; truncating" err="unexpected CRC32 checksum 1d4d95cc, want 7c1a52ff" file=/tmp/test_corrupted254270208/000001 pos=44 +level=error msg="WAL corruption detected; truncating" err="unexpected CRC32 checksum 1d4d95cc, want 7c1a52ff" file=/tmp/test_corrupted032947679/000001 pos=44 === RUN TestWALRestoreCorrupted/checksum -level=error msg="WAL corruption detected; truncating" err="unexpected CRC32 checksum 7c1a52ff, want 1020304" file=/tmp/test_corrupted212660831/000001 pos=44 ---- PASS: TestWALRestoreCorrupted (8.81s) - --- PASS: TestWALRestoreCorrupted/truncate_checksum (2.18s) - --- PASS: TestWALRestoreCorrupted/truncate_body (2.24s) - --- PASS: TestWALRestoreCorrupted/body_content (2.21s) - --- PASS: TestWALRestoreCorrupted/checksum (2.18s) +level=error msg="WAL corruption detected; truncating" err="unexpected CRC32 checksum 7c1a52ff, want 1020304" file=/tmp/test_corrupted185922994/000001 pos=44 +--- PASS: TestWALRestoreCorrupted (8.21s) + --- PASS: TestWALRestoreCorrupted/truncate_checksum (2.05s) + --- PASS: TestWALRestoreCorrupted/truncate_body (2.06s) + --- PASS: TestWALRestoreCorrupted/body_content (2.06s) + --- PASS: TestWALRestoreCorrupted/checksum (2.04s) === RUN TestMigrateWAL_Empty --- PASS: TestMigrateWAL_Empty (0.01s) === RUN TestMigrateWAL_Fuzz ---- PASS: TestMigrateWAL_Fuzz (0.09s) +--- PASS: TestMigrateWAL_Fuzz (0.05s) PASS -ok github.com/prometheus/prometheus/tsdb 538.168s +ok github.com/prometheus/prometheus/tsdb 344.704s === RUN TestBstreamReader ---- PASS: TestBstreamReader (0.02s) +--- PASS: TestBstreamReader (0.03s) === RUN TestChunk === RUN TestChunk/XOR --- PASS: TestChunk (0.03s) --- PASS: TestChunk/XOR (0.03s) PASS -ok github.com/prometheus/prometheus/tsdb/chunkenc 0.216s +ok github.com/prometheus/prometheus/tsdb/chunkenc 0.163s === RUN TestReaderWithInvalidBuffer --- PASS: TestReaderWithInvalidBuffer (0.00s) === RUN TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks ---- PASS: TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks (0.81s) +--- PASS: TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks (0.53s) === RUN TestChunkDiskMapper_Truncate ---- PASS: TestChunkDiskMapper_Truncate (0.54s) +--- PASS: TestChunkDiskMapper_Truncate (0.31s) === RUN TestChunkDiskMapper_Truncate_PreservesFileSequence ---- PASS: TestChunkDiskMapper_Truncate_PreservesFileSequence (0.32s) +--- PASS: TestChunkDiskMapper_Truncate_PreservesFileSequence (0.17s) === RUN TestHeadReadWriter_TruncateAfterFailedIterateChunks ---- PASS: TestHeadReadWriter_TruncateAfterFailedIterateChunks (0.12s) +--- PASS: TestHeadReadWriter_TruncateAfterFailedIterateChunks (0.08s) === RUN TestHeadReadWriter_ReadRepairOnEmptyLastFile ---- PASS: TestHeadReadWriter_ReadRepairOnEmptyLastFile (0.22s) +--- PASS: TestHeadReadWriter_ReadRepairOnEmptyLastFile (0.08s) PASS -ok github.com/prometheus/prometheus/tsdb/chunks 2.150s +ok github.com/prometheus/prometheus/tsdb/chunks 1.296s ? github.com/prometheus/prometheus/tsdb/encoding [no test files] ? github.com/prometheus/prometheus/tsdb/errors [no test files] === RUN TestLocking --- PASS: TestLocking (0.00s) PASS -ok github.com/prometheus/prometheus/tsdb/fileutil 0.115s +ok github.com/prometheus/prometheus/tsdb/fileutil 0.073s === RUN Test --- PASS: Test (0.00s) PASS -ok github.com/prometheus/prometheus/tsdb/goversion 0.096s +ok github.com/prometheus/prometheus/tsdb/goversion 0.307s === RUN TestIndexRW_Create_Open ---- PASS: TestIndexRW_Create_Open (0.16s) +--- PASS: TestIndexRW_Create_Open (0.50s) === RUN TestIndexRW_Postings ---- PASS: TestIndexRW_Postings (0.24s) +--- PASS: TestIndexRW_Postings (0.16s) === RUN TestPostingsMany ---- PASS: TestPostingsMany (0.43s) +--- PASS: TestPostingsMany (0.45s) === RUN TestPersistence_index_e2e ---- PASS: TestPersistence_index_e2e (206.93s) +--- PASS: TestPersistence_index_e2e (121.16s) === RUN TestDecbufUvarintWithInvalidBuffer --- PASS: TestDecbufUvarintWithInvalidBuffer (0.00s) === RUN TestReaderWithInvalidBuffer --- PASS: TestReaderWithInvalidBuffer (0.00s) === RUN TestNewFileReaderErrorNoOpenFiles ---- PASS: TestNewFileReaderErrorNoOpenFiles (0.01s) +--- PASS: TestNewFileReaderErrorNoOpenFiles (0.00s) === RUN TestSymbols --- PASS: TestSymbols (0.01s) === RUN TestMemPostings_addFor --- PASS: TestMemPostings_addFor (0.00s) === RUN TestMemPostings_ensureOrder ---- PASS: TestMemPostings_ensureOrder (0.02s) +--- PASS: TestMemPostings_ensureOrder (0.01s) === RUN TestIntersect === RUN TestIntersect/#00 === RUN TestIntersect/#01 @@ -5195,7 +5266,7 @@ === RUN TestMergedPostings/#07 === RUN TestMergedPostings/#08 === RUN TestMergedPostings/#09 ---- PASS: TestMergedPostings (0.01s) +--- PASS: TestMergedPostings (0.00s) --- PASS: TestMergedPostings/#00 (0.00s) --- PASS: TestMergedPostings/#01 (0.00s) --- PASS: TestMergedPostings/#02 (0.00s) @@ -5211,14 +5282,14 @@ === RUN TestRemovedPostings --- PASS: TestRemovedPostings (0.00s) === RUN TestRemovedNextStackoverflow ---- PASS: TestRemovedNextStackoverflow (46.34s) +--- PASS: TestRemovedNextStackoverflow (32.70s) === RUN TestRemovedPostingsSeek --- PASS: TestRemovedPostingsSeek (0.00s) === RUN TestBigEndian === RUN TestBigEndian/Iteration === RUN TestBigEndian/Seek ---- PASS: TestBigEndian (0.09s) - --- PASS: TestBigEndian/Iteration (0.09s) +--- PASS: TestBigEndian (0.03s) + --- PASS: TestBigEndian/Iteration (0.03s) --- PASS: TestBigEndian/Seek (0.00s) === RUN TestIntersectWithMerge --- PASS: TestIntersectWithMerge (0.00s) @@ -5241,11 +5312,11 @@ === RUN TestMemPostings_Delete --- PASS: TestMemPostings_Delete (0.00s) === RUN TestPostingsStats ---- PASS: TestPostingsStats (1.11s) +--- PASS: TestPostingsStats (0.58s) === RUN TestPostingsStats2 --- PASS: TestPostingsStats2 (0.00s) PASS -ok github.com/prometheus/prometheus/tsdb/index 255.958s +ok github.com/prometheus/prometheus/tsdb/index 156.206s === RUN TestRecord_EncodeDecode --- PASS: TestRecord_EncodeDecode (0.00s) === RUN TestRecord_Corrupted @@ -5259,12 +5330,12 @@ === RUN TestRecord_Type --- PASS: TestRecord_Type (0.00s) PASS -ok github.com/prometheus/prometheus/tsdb/record 0.109s +ok github.com/prometheus/prometheus/tsdb/record 0.065s testing: warning: no tests to run PASS -ok github.com/prometheus/prometheus/tsdb/test 0.037s [no tests to run] +ok github.com/prometheus/prometheus/tsdb/test 0.029s [no tests to run] === RUN TestWriteAndReadbackTombstones ---- PASS: TestWriteAndReadbackTombstones (0.05s) +--- PASS: TestWriteAndReadbackTombstones (0.08s) === RUN TestAddingNewIntervals === RUN TestAddingNewIntervals/#00 === RUN TestAddingNewIntervals/#01 @@ -5283,7 +5354,7 @@ === RUN TestAddingNewIntervals/#14 === RUN TestAddingNewIntervals/#15 === RUN TestAddingNewIntervals/#16 ---- PASS: TestAddingNewIntervals (0.01s) +--- PASS: TestAddingNewIntervals (0.00s) --- PASS: TestAddingNewIntervals/#00 (0.00s) --- PASS: TestAddingNewIntervals/#01 (0.00s) --- PASS: TestAddingNewIntervals/#02 (0.00s) @@ -5302,25 +5373,25 @@ --- PASS: TestAddingNewIntervals/#15 (0.00s) --- PASS: TestAddingNewIntervals/#16 (0.00s) === RUN TestMemTombstonesConcurrency ---- PASS: TestMemTombstonesConcurrency (0.00s) +--- PASS: TestMemTombstonesConcurrency (0.01s) PASS -ok github.com/prometheus/prometheus/tsdb/tombstones 0.180s +ok github.com/prometheus/prometheus/tsdb/tombstones 0.229s === RUN TestSampleRing --- PASS: TestSampleRing (0.00s) === RUN TestBufferedSeriesIterator --- PASS: TestBufferedSeriesIterator (0.00s) PASS -ok github.com/prometheus/prometheus/tsdb/tsdbutil 0.127s +ok github.com/prometheus/prometheus/tsdb/tsdbutil 0.083s === RUN TestLastCheckpoint ---- PASS: TestLastCheckpoint (0.02s) +--- PASS: TestLastCheckpoint (0.01s) === RUN TestDeleteCheckpoints --- PASS: TestDeleteCheckpoints (0.01s) === RUN TestCheckpoint === RUN TestCheckpoint/compress=false === RUN TestCheckpoint/compress=true ---- PASS: TestCheckpoint (19.89s) - --- PASS: TestCheckpoint/compress=false (6.91s) - --- PASS: TestCheckpoint/compress=true (12.98s) +--- PASS: TestCheckpoint (13.32s) + --- PASS: TestCheckpoint/compress=false (5.27s) + --- PASS: TestCheckpoint/compress=true (8.04s) === RUN TestCheckpointNoTmpFolderAfterError --- PASS: TestCheckpointNoTmpFolderAfterError (0.03s) === RUN TestReader @@ -5358,9 +5429,9 @@ === RUN TestReader/LiveReader/7 === RUN TestReader/LiveReader/8 reader_test.go:180: record 0 ---- PASS: TestReader (0.05s) +--- PASS: TestReader (0.03s) --- PASS: TestReader/Reader/0 (0.00s) - --- PASS: TestReader/Reader/1 (0.00s) + --- PASS: TestReader/Reader/1 (0.01s) --- PASS: TestReader/Reader/2 (0.00s) --- PASS: TestReader/Reader/3 (0.00s) --- PASS: TestReader/Reader/4 (0.00s) @@ -5368,7 +5439,7 @@ --- PASS: TestReader/Reader/6 (0.00s) --- PASS: TestReader/Reader/7 (0.00s) --- PASS: TestReader/Reader/8 (0.00s) - --- PASS: TestReader/LiveReader/0 (0.01s) + --- PASS: TestReader/LiveReader/0 (0.00s) --- PASS: TestReader/LiveReader/1 (0.00s) --- PASS: TestReader/LiveReader/2 (0.00s) --- PASS: TestReader/LiveReader/3 (0.01s) @@ -5376,7 +5447,7 @@ --- PASS: TestReader/LiveReader/5 (0.00s) --- PASS: TestReader/LiveReader/6 (0.00s) --- PASS: TestReader/LiveReader/7 (0.00s) - --- PASS: TestReader/LiveReader/8 (0.01s) + --- PASS: TestReader/LiveReader/8 (0.00s) === RUN TestReader_Live === RUN TestReader_Live/0 === RUN TestReader_Live/1 @@ -5389,7 +5460,7 @@ === RUN TestReader_Live/6 === RUN TestReader_Live/7 === RUN TestReader_Live/8 ---- PASS: TestReader_Live (0.06s) +--- PASS: TestReader_Live (0.04s) --- PASS: TestReader_Live/0 (0.02s) --- PASS: TestReader_Live/1 (0.00s) --- PASS: TestReader_Live/2 (0.00s) @@ -5398,23 +5469,23 @@ --- PASS: TestReader_Live/5 (0.00s) --- PASS: TestReader_Live/6 (0.00s) --- PASS: TestReader_Live/7 (0.00s) - --- PASS: TestReader_Live/8 (0.00s) + --- PASS: TestReader_Live/8 (0.01s) === RUN TestReaderFuzz -=== RUN TestReaderFuzz/Reader,compress=false -=== RUN TestReaderFuzz/Reader,compress=true === RUN TestReaderFuzz/LiveReader,compress=false === RUN TestReaderFuzz/LiveReader,compress=true ---- PASS: TestReaderFuzz (11.38s) - --- PASS: TestReaderFuzz/Reader,compress=false (3.13s) - --- PASS: TestReaderFuzz/Reader,compress=true (3.11s) - --- PASS: TestReaderFuzz/LiveReader,compress=false (2.25s) - --- PASS: TestReaderFuzz/LiveReader,compress=true (2.87s) +=== RUN TestReaderFuzz/Reader,compress=false +=== RUN TestReaderFuzz/Reader,compress=true +--- PASS: TestReaderFuzz (10.59s) + --- PASS: TestReaderFuzz/LiveReader,compress=false (2.51s) + --- PASS: TestReaderFuzz/LiveReader,compress=true (3.19s) + --- PASS: TestReaderFuzz/Reader,compress=false (2.24s) + --- PASS: TestReaderFuzz/Reader,compress=true (2.65s) === RUN TestReaderFuzz_Live === RUN TestReaderFuzz_Live/compress=false === RUN TestReaderFuzz_Live/compress=true ---- PASS: TestReaderFuzz_Live (5.00s) - --- PASS: TestReaderFuzz_Live/compress=false (2.20s) - --- PASS: TestReaderFuzz_Live/compress=true (2.80s) +--- PASS: TestReaderFuzz_Live (3.37s) + --- PASS: TestReaderFuzz_Live/compress=false (1.59s) + --- PASS: TestReaderFuzz_Live/compress=true (1.78s) === RUN TestLiveReaderCorrupt_ShortFile --- PASS: TestLiveReaderCorrupt_ShortFile (0.02s) === RUN TestLiveReaderCorrupt_RecordTooLongAndShort @@ -5423,90 +5494,90 @@ === RUN TestReaderData --- PASS: TestReaderData (0.00s) === RUN TestWALRepair_ReadingError -=== RUN TestWALRepair_ReadingError/bad_length -=== RUN TestWALRepair_ReadingError/bad_content === RUN TestWALRepair_ReadingError/torn_last_record === RUN TestWALRepair_ReadingError/bad_header === RUN TestWALRepair_ReadingError/bad_fragment_sequence === RUN TestWALRepair_ReadingError/bad_fragment_flag === RUN TestWALRepair_ReadingError/bad_checksum ---- PASS: TestWALRepair_ReadingError (0.93s) - --- PASS: TestWALRepair_ReadingError/bad_length (0.12s) - --- PASS: TestWALRepair_ReadingError/bad_content (0.10s) - --- PASS: TestWALRepair_ReadingError/torn_last_record (0.14s) - --- PASS: TestWALRepair_ReadingError/bad_header (0.13s) - --- PASS: TestWALRepair_ReadingError/bad_fragment_sequence (0.14s) - --- PASS: TestWALRepair_ReadingError/bad_fragment_flag (0.14s) - --- PASS: TestWALRepair_ReadingError/bad_checksum (0.14s) +=== RUN TestWALRepair_ReadingError/bad_length +=== RUN TestWALRepair_ReadingError/bad_content +--- PASS: TestWALRepair_ReadingError (0.67s) + --- PASS: TestWALRepair_ReadingError/torn_last_record (0.10s) + --- PASS: TestWALRepair_ReadingError/bad_header (0.10s) + --- PASS: TestWALRepair_ReadingError/bad_fragment_sequence (0.08s) + --- PASS: TestWALRepair_ReadingError/bad_fragment_flag (0.09s) + --- PASS: TestWALRepair_ReadingError/bad_checksum (0.07s) + --- PASS: TestWALRepair_ReadingError/bad_length (0.08s) + --- PASS: TestWALRepair_ReadingError/bad_content (0.12s) === RUN TestCorruptAndCarryOn wal_test.go:257: segment 0 size 98304 wal_test.go:257: segment 1 size 98304 logging.go:33: level warn msg Starting corruption repair segment 0 offset 54612 logging.go:33: level warn msg Deleting all segments newer than corrupted segment segment 0 logging.go:33: level warn msg Rewrite corrupted segment segment 0 ---- PASS: TestCorruptAndCarryOn (0.16s) +--- PASS: TestCorruptAndCarryOn (0.13s) === RUN TestClose ---- PASS: TestClose (0.04s) +--- PASS: TestClose (0.01s) === RUN TestSegmentMetric ---- PASS: TestSegmentMetric (0.05s) +--- PASS: TestSegmentMetric (0.03s) === RUN TestCompression ---- PASS: TestCompression (0.82s) +--- PASS: TestCompression (1.22s) === RUN TestLogPartialWrite === RUN TestLogPartialWrite/partial_write_when_logging_first_record_in_a_page === RUN TestLogPartialWrite/partial_write_when_logging_record_in_the_middle_of_a_page === RUN TestLogPartialWrite/partial_write_when_logging_last_record_of_a_page ---- PASS: TestLogPartialWrite (0.45s) - --- PASS: TestLogPartialWrite/partial_write_when_logging_first_record_in_a_page (0.03s) - --- PASS: TestLogPartialWrite/partial_write_when_logging_record_in_the_middle_of_a_page (0.02s) - --- PASS: TestLogPartialWrite/partial_write_when_logging_last_record_of_a_page (0.40s) +--- PASS: TestLogPartialWrite (0.66s) + --- PASS: TestLogPartialWrite/partial_write_when_logging_first_record_in_a_page (0.06s) + --- PASS: TestLogPartialWrite/partial_write_when_logging_record_in_the_middle_of_a_page (0.03s) + --- PASS: TestLogPartialWrite/partial_write_when_logging_last_record_of_a_page (0.57s) === RUN TestTailSamples === RUN TestTailSamples/compress=false === RUN TestTailSamples/compress=true ---- PASS: TestTailSamples (0.87s) - --- PASS: TestTailSamples/compress=false (0.28s) - --- PASS: TestTailSamples/compress=true (0.58s) +--- PASS: TestTailSamples (0.71s) + --- PASS: TestTailSamples/compress=false (0.22s) + --- PASS: TestTailSamples/compress=true (0.49s) === RUN TestReadToEndNoCheckpoint === RUN TestReadToEndNoCheckpoint/compress=false === RUN TestReadToEndNoCheckpoint/compress=true ---- PASS: TestReadToEndNoCheckpoint (1.16s) - --- PASS: TestReadToEndNoCheckpoint/compress=false (0.48s) - --- PASS: TestReadToEndNoCheckpoint/compress=true (0.69s) +--- PASS: TestReadToEndNoCheckpoint (0.86s) + --- PASS: TestReadToEndNoCheckpoint/compress=false (0.36s) + --- PASS: TestReadToEndNoCheckpoint/compress=true (0.49s) === RUN TestReadToEndWithCheckpoint === RUN TestReadToEndWithCheckpoint/compress=false === RUN TestReadToEndWithCheckpoint/compress=true ---- PASS: TestReadToEndWithCheckpoint (3.20s) - --- PASS: TestReadToEndWithCheckpoint/compress=false (1.13s) - --- PASS: TestReadToEndWithCheckpoint/compress=true (2.07s) +--- PASS: TestReadToEndWithCheckpoint (2.21s) + --- PASS: TestReadToEndWithCheckpoint/compress=false (0.63s) + --- PASS: TestReadToEndWithCheckpoint/compress=true (1.58s) === RUN TestReadCheckpoint === RUN TestReadCheckpoint/compress=false === RUN TestReadCheckpoint/compress=true ---- PASS: TestReadCheckpoint (1.70s) - --- PASS: TestReadCheckpoint/compress=false (0.60s) - --- PASS: TestReadCheckpoint/compress=true (1.10s) +--- PASS: TestReadCheckpoint (1.06s) + --- PASS: TestReadCheckpoint/compress=false (0.41s) + --- PASS: TestReadCheckpoint/compress=true (0.65s) === RUN TestReadCheckpointMultipleSegments === RUN TestReadCheckpointMultipleSegments/compress=false === RUN TestReadCheckpointMultipleSegments/compress=true ---- PASS: TestReadCheckpointMultipleSegments (2.37s) - --- PASS: TestReadCheckpointMultipleSegments/compress=false (0.78s) - --- PASS: TestReadCheckpointMultipleSegments/compress=true (1.59s) +--- PASS: TestReadCheckpointMultipleSegments (1.16s) + --- PASS: TestReadCheckpointMultipleSegments/compress=false (0.39s) + --- PASS: TestReadCheckpointMultipleSegments/compress=true (0.77s) === RUN TestCheckpointSeriesReset === RUN TestCheckpointSeriesReset/compress=false === RUN TestCheckpointSeriesReset/compress=true ---- PASS: TestCheckpointSeriesReset (3.50s) - --- PASS: TestCheckpointSeriesReset/compress=false (1.19s) - --- PASS: TestCheckpointSeriesReset/compress=true (2.31s) +--- PASS: TestCheckpointSeriesReset (2.04s) + --- PASS: TestCheckpointSeriesReset/compress=false (0.71s) + --- PASS: TestCheckpointSeriesReset/compress=true (1.33s) PASS -ok github.com/prometheus/prometheus/tsdb/wal 51.891s +ok github.com/prometheus/prometheus/tsdb/wal 38.351s === RUN TestCompressionHandler_PlainText ---- PASS: TestCompressionHandler_PlainText (0.05s) +--- PASS: TestCompressionHandler_PlainText (0.01s) === RUN TestCompressionHandler_Gzip ---- PASS: TestCompressionHandler_Gzip (0.04s) +--- PASS: TestCompressionHandler_Gzip (0.02s) === RUN TestCompressionHandler_Deflate --- PASS: TestCompressionHandler_Deflate (0.02s) === RUN TestCORSHandler ---- PASS: TestCORSHandler (0.02s) +--- PASS: TestCORSHandler (0.00s) PASS -ok github.com/prometheus/prometheus/util/httputil 0.249s +ok github.com/prometheus/prometheus/util/httputil 0.148s === RUN TestTimerGroupNewTimer --- PASS: TestTimerGroupNewTimer (0.00s) === RUN TestQueryStatsWithTimers @@ -5516,7 +5587,7 @@ === RUN TestTimerGroup --- PASS: TestTimerGroup (0.00s) PASS -ok github.com/prometheus/prometheus/util/stats 0.156s +ok github.com/prometheus/prometheus/util/stats 0.060s === RUN TestUnquote --- PASS: TestUnquote (0.00s) === RUN TestLink @@ -5524,78 +5595,78 @@ === RUN TestSanitizeLabelName --- PASS: TestSanitizeLabelName (0.00s) PASS -ok github.com/prometheus/prometheus/util/strutil 0.090s +ok github.com/prometheus/prometheus/util/strutil 0.040s ? github.com/prometheus/prometheus/util/teststorage [no test files] ? github.com/prometheus/prometheus/util/testutil [no test files] ? github.com/prometheus/prometheus/util/treecache [no test files] === RUN TestFederation -=== RUN TestFederation/test_metric_without_labels -=== RUN TestFederation/test_stale_metric -=== RUN TestFederation/test_old_metric === RUN TestFederation/{foo='boo'} -=== RUN TestFederation/empty_label_value_matches_everything_that_doesn't_have_that_label +=== RUN TestFederation/empty_label_value_for_a_label_that_doesn't_exist_at_all,_matches_everything === RUN TestFederation/match_nothing === RUN TestFederation/invalid_params_from_the_beginning -=== RUN TestFederation/empty_label_value_for_a_label_that_doesn't_exist_at_all,_matches_everything -=== RUN TestFederation/instance_is_an_external_label -=== RUN TestFederation/empty -=== RUN TestFederation/test_metric1 -=== RUN TestFederation/two_matchers +=== RUN TestFederation/test_old_metric === RUN TestFederation/everything +=== RUN TestFederation/test_metric2 +=== RUN TestFederation/test_stale_metric +=== RUN TestFederation/two_matchers +=== RUN TestFederation/empty +=== RUN TestFederation/test_metric_without_labels +=== RUN TestFederation/empty_label_value_matches_everything_that_doesn't_have_that_label === RUN TestFederation/external_labels_are_added_if_not_already_present +=== RUN TestFederation/instance_is_an_external_label === RUN TestFederation/invalid_params_somewhere_in_the_middle -=== RUN TestFederation/test_metric2 ---- PASS: TestFederation (0.22s) - --- PASS: TestFederation/test_metric_without_labels (0.00s) - --- PASS: TestFederation/test_stale_metric (0.00s) - --- PASS: TestFederation/test_old_metric (0.00s) - --- PASS: TestFederation/{foo='boo'} (0.02s) - --- PASS: TestFederation/empty_label_value_matches_everything_that_doesn't_have_that_label (0.01s) +=== RUN TestFederation/test_metric1 +--- PASS: TestFederation (0.27s) + --- PASS: TestFederation/{foo='boo'} (0.00s) + --- PASS: TestFederation/empty_label_value_for_a_label_that_doesn't_exist_at_all,_matches_everything (0.00s) --- PASS: TestFederation/match_nothing (0.00s) --- PASS: TestFederation/invalid_params_from_the_beginning (0.00s) - --- PASS: TestFederation/empty_label_value_for_a_label_that_doesn't_exist_at_all,_matches_everything (0.01s) - --- PASS: TestFederation/instance_is_an_external_label (0.00s) - --- PASS: TestFederation/empty (0.00s) - --- PASS: TestFederation/test_metric1 (0.00s) - --- PASS: TestFederation/two_matchers (0.02s) + --- PASS: TestFederation/test_old_metric (0.01s) --- PASS: TestFederation/everything (0.00s) + --- PASS: TestFederation/test_metric2 (0.01s) + --- PASS: TestFederation/test_stale_metric (0.00s) + --- PASS: TestFederation/two_matchers (0.00s) + --- PASS: TestFederation/empty (0.05s) + --- PASS: TestFederation/test_metric_without_labels (0.01s) + --- PASS: TestFederation/empty_label_value_matches_everything_that_doesn't_have_that_label (0.00s) --- PASS: TestFederation/external_labels_are_added_if_not_already_present (0.01s) + --- PASS: TestFederation/instance_is_an_external_label (0.00s) --- PASS: TestFederation/invalid_params_somewhere_in_the_middle (0.00s) - --- PASS: TestFederation/test_metric2 (0.00s) + --- PASS: TestFederation/test_metric1 (0.00s) === RUN TestFederation_NotReady -=== RUN TestFederation_NotReady/{foo='boo'} +=== RUN TestFederation_NotReady/invalid_params_somewhere_in_the_middle +=== RUN TestFederation_NotReady/test_metric1 === RUN TestFederation_NotReady/empty_label_value_matches_everything_that_doesn't_have_that_label +=== RUN TestFederation_NotReady/external_labels_are_added_if_not_already_present +=== RUN TestFederation_NotReady/instance_is_an_external_label === RUN TestFederation_NotReady/match_nothing === RUN TestFederation_NotReady/invalid_params_from_the_beginning -=== RUN TestFederation_NotReady/test_metric_without_labels +=== RUN TestFederation_NotReady/{foo='boo'} +=== RUN TestFederation_NotReady/empty_label_value_for_a_label_that_doesn't_exist_at_all,_matches_everything +=== RUN TestFederation_NotReady/test_metric2 === RUN TestFederation_NotReady/test_stale_metric === RUN TestFederation_NotReady/test_old_metric +=== RUN TestFederation_NotReady/everything === RUN TestFederation_NotReady/empty -=== RUN TestFederation_NotReady/test_metric1 -=== RUN TestFederation_NotReady/empty_label_value_for_a_label_that_doesn't_exist_at_all,_matches_everything -=== RUN TestFederation_NotReady/instance_is_an_external_label -=== RUN TestFederation_NotReady/invalid_params_somewhere_in_the_middle -=== RUN TestFederation_NotReady/test_metric2 +=== RUN TestFederation_NotReady/test_metric_without_labels === RUN TestFederation_NotReady/two_matchers -=== RUN TestFederation_NotReady/everything -=== RUN TestFederation_NotReady/external_labels_are_added_if_not_already_present ---- PASS: TestFederation_NotReady (0.01s) - --- PASS: TestFederation_NotReady/{foo='boo'} (0.00s) +--- PASS: TestFederation_NotReady (0.02s) + --- PASS: TestFederation_NotReady/invalid_params_somewhere_in_the_middle (0.00s) + --- PASS: TestFederation_NotReady/test_metric1 (0.00s) --- PASS: TestFederation_NotReady/empty_label_value_matches_everything_that_doesn't_have_that_label (0.00s) + --- PASS: TestFederation_NotReady/external_labels_are_added_if_not_already_present (0.00s) + --- PASS: TestFederation_NotReady/instance_is_an_external_label (0.00s) --- PASS: TestFederation_NotReady/match_nothing (0.00s) --- PASS: TestFederation_NotReady/invalid_params_from_the_beginning (0.00s) - --- PASS: TestFederation_NotReady/test_metric_without_labels (0.00s) + --- PASS: TestFederation_NotReady/{foo='boo'} (0.00s) + --- PASS: TestFederation_NotReady/empty_label_value_for_a_label_that_doesn't_exist_at_all,_matches_everything (0.01s) + --- PASS: TestFederation_NotReady/test_metric2 (0.00s) --- PASS: TestFederation_NotReady/test_stale_metric (0.00s) --- PASS: TestFederation_NotReady/test_old_metric (0.00s) + --- PASS: TestFederation_NotReady/everything (0.00s) --- PASS: TestFederation_NotReady/empty (0.00s) - --- PASS: TestFederation_NotReady/test_metric1 (0.00s) - --- PASS: TestFederation_NotReady/empty_label_value_for_a_label_that_doesn't_exist_at_all,_matches_everything (0.00s) - --- PASS: TestFederation_NotReady/instance_is_an_external_label (0.00s) - --- PASS: TestFederation_NotReady/invalid_params_somewhere_in_the_middle (0.00s) - --- PASS: TestFederation_NotReady/test_metric2 (0.00s) + --- PASS: TestFederation_NotReady/test_metric_without_labels (0.00s) --- PASS: TestFederation_NotReady/two_matchers (0.00s) - --- PASS: TestFederation_NotReady/everything (0.00s) - --- PASS: TestFederation_NotReady/external_labels_are_added_if_not_already_present (0.00s) === RUN TestGlobalURL --- PASS: TestGlobalURL (0.00s) === RUN TestReadyAndHealthy @@ -5603,21 +5674,21 @@ === RUN TestRoutePrefix === PAUSE TestRoutePrefix === RUN TestDebugHandler ---- PASS: TestDebugHandler (0.13s) +--- PASS: TestDebugHandler (0.16s) === RUN TestHTTPMetrics === PAUSE TestHTTPMetrics === RUN TestShutdownWithStaleConnection ---- PASS: TestShutdownWithStaleConnection (5.11s) +--- PASS: TestShutdownWithStaleConnection (5.10s) === RUN TestHandleMultipleQuitRequests ---- PASS: TestHandleMultipleQuitRequests (5.04s) +--- PASS: TestHandleMultipleQuitRequests (5.03s) === CONT TestReadyAndHealthy === CONT TestHTTPMetrics === CONT TestRoutePrefix ---- PASS: TestHTTPMetrics (0.07s) ---- PASS: TestRoutePrefix (5.59s) ---- PASS: TestReadyAndHealthy (5.88s) +--- PASS: TestHTTPMetrics (0.05s) +--- PASS: TestRoutePrefix (5.34s) +--- PASS: TestReadyAndHealthy (5.51s) PASS -ok github.com/prometheus/prometheus/web 17.412s +ok github.com/prometheus/prometheus/web 16.521s === RUN TestEndpoints === RUN TestEndpoints/local === RUN TestEndpoints/local/run_0_query_"query=2&time=123.4" @@ -5937,21 +6008,21 @@ === RUN TestEndpoints/remote/run_47_rules_"type=alert"/GET === RUN TestEndpoints/remote/run_48_rules_"type=record" === RUN TestEndpoints/remote/run_48_rules_"type=record"/GET ---- PASS: TestEndpoints (1.67s) - --- PASS: TestEndpoints/local (0.79s) +--- PASS: TestEndpoints (1.47s) + --- PASS: TestEndpoints/local (0.60s) --- PASS: TestEndpoints/local/run_0_query_"query=2&time=123.4" (0.00s) --- PASS: TestEndpoints/local/run_0_query_"query=2&time=123.4"/GET (0.00s) --- PASS: TestEndpoints/local/run_0_query_"query=2&time=123.4"/POST (0.00s) --- PASS: TestEndpoints/local/run_1_query_"query=0.333&time=1970-01-01T00%3A02%3A03Z" (0.00s) --- PASS: TestEndpoints/local/run_1_query_"query=0.333&time=1970-01-01T00%3A02%3A03Z"/GET (0.00s) --- PASS: TestEndpoints/local/run_1_query_"query=0.333&time=1970-01-01T00%3A02%3A03Z"/POST (0.00s) - --- PASS: TestEndpoints/local/run_2_query_"query=0.333&time=1970-01-01T01%3A02%3A03%2B01%3A00" (0.01s) + --- PASS: TestEndpoints/local/run_2_query_"query=0.333&time=1970-01-01T01%3A02%3A03%2B01%3A00" (0.00s) --- PASS: TestEndpoints/local/run_2_query_"query=0.333&time=1970-01-01T01%3A02%3A03%2B01%3A00"/GET (0.00s) --- PASS: TestEndpoints/local/run_2_query_"query=0.333&time=1970-01-01T01%3A02%3A03%2B01%3A00"/POST (0.00s) --- PASS: TestEndpoints/local/run_3_query_"query=0.333" (0.00s) --- PASS: TestEndpoints/local/run_3_query_"query=0.333"/GET (0.00s) --- PASS: TestEndpoints/local/run_3_query_"query=0.333"/POST (0.00s) - --- PASS: TestEndpoints/local/run_4_queryRange_"end=2&query=time%28%29&start=0&step=1" (0.01s) + --- PASS: TestEndpoints/local/run_4_queryRange_"end=2&query=time%28%29&start=0&step=1" (0.00s) --- PASS: TestEndpoints/local/run_4_queryRange_"end=2&query=time%28%29&start=0&step=1"/GET (0.00s) --- PASS: TestEndpoints/local/run_4_queryRange_"end=2&query=time%28%29&start=0&step=1"/POST (0.00s) --- PASS: TestEndpoints/local/run_5_queryRange_"end=2&query=time%28%29&step=1" (0.00s) @@ -5978,28 +6049,28 @@ --- PASS: TestEndpoints/local/run_12_queryRange_"end=1489667272.372&query=time%28%29&start=148966367200.372&step=1" (0.00s) --- PASS: TestEndpoints/local/run_12_queryRange_"end=1489667272.372&query=time%28%29&start=148966367200.372&step=1"/GET (0.00s) --- PASS: TestEndpoints/local/run_12_queryRange_"end=1489667272.372&query=time%28%29&start=148966367200.372&step=1"/POST (0.00s) - --- PASS: TestEndpoints/local/run_13_series_"match%5B%5D=test_metric2" (0.01s) + --- PASS: TestEndpoints/local/run_13_series_"match%5B%5D=test_metric2" (0.00s) --- PASS: TestEndpoints/local/run_13_series_"match%5B%5D=test_metric2"/GET (0.00s) --- PASS: TestEndpoints/local/run_13_series_"match%5B%5D=test_metric2"/POST (0.00s) --- PASS: TestEndpoints/local/run_14_series_"match%5B%5D=%7Bfoo%3D%22%22%7D" (0.00s) --- PASS: TestEndpoints/local/run_14_series_"match%5B%5D=%7Bfoo%3D%22%22%7D"/GET (0.00s) --- PASS: TestEndpoints/local/run_14_series_"match%5B%5D=%7Bfoo%3D%22%22%7D"/POST (0.00s) - --- PASS: TestEndpoints/local/run_15_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D" (0.01s) - --- PASS: TestEndpoints/local/run_15_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/GET (0.01s) + --- PASS: TestEndpoints/local/run_15_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D" (0.00s) + --- PASS: TestEndpoints/local/run_15_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/GET (0.00s) --- PASS: TestEndpoints/local/run_15_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/POST (0.00s) - --- PASS: TestEndpoints/local/run_16_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D" (0.01s) + --- PASS: TestEndpoints/local/run_16_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D" (0.00s) --- PASS: TestEndpoints/local/run_16_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/GET (0.00s) - --- PASS: TestEndpoints/local/run_16_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/POST (0.01s) - --- PASS: TestEndpoints/local/run_17_series_"match%5B%5D=test_metric4%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric4%7Bdup%3D~%22%5E1%22%7D" (0.00s) - --- PASS: TestEndpoints/local/run_17_series_"match%5B%5D=test_metric4%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric4%7Bdup%3D~%22%5E1%22%7D"/GET (0.00s) + --- PASS: TestEndpoints/local/run_16_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/POST (0.00s) + --- PASS: TestEndpoints/local/run_17_series_"match%5B%5D=test_metric4%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric4%7Bdup%3D~%22%5E1%22%7D" (0.01s) + --- PASS: TestEndpoints/local/run_17_series_"match%5B%5D=test_metric4%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric4%7Bdup%3D~%22%5E1%22%7D"/GET (0.01s) --- PASS: TestEndpoints/local/run_17_series_"match%5B%5D=test_metric4%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric4%7Bdup%3D~%22%5E1%22%7D"/POST (0.00s) - --- PASS: TestEndpoints/local/run_18_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D&match%5B%5D=none" (0.00s) + --- PASS: TestEndpoints/local/run_18_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D&match%5B%5D=none" (0.01s) --- PASS: TestEndpoints/local/run_18_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D&match%5B%5D=none"/GET (0.00s) --- PASS: TestEndpoints/local/run_18_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D&match%5B%5D=none"/POST (0.00s) --- PASS: TestEndpoints/local/run_19_series_"end=-1&match%5B%5D=test_metric2&start=-2" (0.00s) --- PASS: TestEndpoints/local/run_19_series_"end=-1&match%5B%5D=test_metric2&start=-2"/GET (0.00s) --- PASS: TestEndpoints/local/run_19_series_"end=-1&match%5B%5D=test_metric2&start=-2"/POST (0.00s) - --- PASS: TestEndpoints/local/run_20_series_"end=100001&match%5B%5D=test_metric2&start=100000" (0.01s) + --- PASS: TestEndpoints/local/run_20_series_"end=100001&match%5B%5D=test_metric2&start=100000" (0.00s) --- PASS: TestEndpoints/local/run_20_series_"end=100001&match%5B%5D=test_metric2&start=100000"/GET (0.00s) --- PASS: TestEndpoints/local/run_20_series_"end=100001&match%5B%5D=test_metric2&start=100000"/POST (0.00s) --- PASS: TestEndpoints/local/run_21_series_"end=100000&match%5B%5D=test_metric2&start=-1" (0.00s) @@ -6041,7 +6112,7 @@ --- PASS: TestEndpoints/local/run_36_metricMetadata_""/GET (0.00s) --- PASS: TestEndpoints/local/run_37_metricMetadata_"" (0.00s) --- PASS: TestEndpoints/local/run_37_metricMetadata_""/GET (0.00s) - --- PASS: TestEndpoints/local/run_38_metricMetadata_"" (0.01s) + --- PASS: TestEndpoints/local/run_38_metricMetadata_"" (0.00s) --- PASS: TestEndpoints/local/run_38_metricMetadata_""/GET (0.00s) --- PASS: TestEndpoints/local/run_39_metricMetadata_"limit=2" (0.00s) --- PASS: TestEndpoints/local/run_39_metricMetadata_"limit=2"/GET (0.00s) @@ -6057,26 +6128,26 @@ --- PASS: TestEndpoints/local/run_44_serveFlags_""/GET (0.00s) --- PASS: TestEndpoints/local/run_45_alerts_"" (0.00s) --- PASS: TestEndpoints/local/run_45_alerts_""/GET (0.00s) - --- PASS: TestEndpoints/local/run_46_rules_"" (0.11s) - --- PASS: TestEndpoints/local/run_46_rules_""/GET (0.11s) - --- PASS: TestEndpoints/local/run_47_rules_"type=alert" (0.15s) - --- PASS: TestEndpoints/local/run_47_rules_"type=alert"/GET (0.15s) - --- PASS: TestEndpoints/local/run_48_rules_"type=record" (0.18s) - --- PASS: TestEndpoints/local/run_48_rules_"type=record"/GET (0.18s) - --- PASS: TestEndpoints/local/run_49_labelValues_"" (0.01s) - --- PASS: TestEndpoints/local/run_49_labelValues_""/GET (0.01s) + --- PASS: TestEndpoints/local/run_46_rules_"" (0.09s) + --- PASS: TestEndpoints/local/run_46_rules_""/GET (0.09s) + --- PASS: TestEndpoints/local/run_47_rules_"type=alert" (0.13s) + --- PASS: TestEndpoints/local/run_47_rules_"type=alert"/GET (0.13s) + --- PASS: TestEndpoints/local/run_48_rules_"type=record" (0.13s) + --- PASS: TestEndpoints/local/run_48_rules_"type=record"/GET (0.13s) + --- PASS: TestEndpoints/local/run_49_labelValues_"" (0.00s) + --- PASS: TestEndpoints/local/run_49_labelValues_""/GET (0.00s) --- PASS: TestEndpoints/local/run_50_labelValues_"" (0.00s) --- PASS: TestEndpoints/local/run_50_labelValues_""/GET (0.00s) --- PASS: TestEndpoints/local/run_51_labelValues_"" (0.00s) --- PASS: TestEndpoints/local/run_51_labelValues_""/GET (0.00s) - --- PASS: TestEndpoints/local/run_52_labelValues_"end=-1&start=-2" (0.01s) + --- PASS: TestEndpoints/local/run_52_labelValues_"end=-1&start=-2" (0.00s) --- PASS: TestEndpoints/local/run_52_labelValues_"end=-1&start=-2"/GET (0.00s) --- PASS: TestEndpoints/local/run_53_labelValues_"end=100&start=1" (0.00s) --- PASS: TestEndpoints/local/run_53_labelValues_"end=100&start=1"/GET (0.00s) - --- PASS: TestEndpoints/local/run_54_labelValues_"end=3&start=-1" (0.00s) + --- PASS: TestEndpoints/local/run_54_labelValues_"end=3&start=-1" (0.01s) --- PASS: TestEndpoints/local/run_54_labelValues_"end=3&start=-1"/GET (0.00s) - --- PASS: TestEndpoints/local/run_55_labelValues_"end=1970-02-01T00%3A02%3A03Z&start=1969-12-31T00%3A00%3A00Z" (0.01s) - --- PASS: TestEndpoints/local/run_55_labelValues_"end=1970-02-01T00%3A02%3A03Z&start=1969-12-31T00%3A00%3A00Z"/GET (0.01s) + --- PASS: TestEndpoints/local/run_55_labelValues_"end=1970-02-01T00%3A02%3A03Z&start=1969-12-31T00%3A00%3A00Z" (0.00s) + --- PASS: TestEndpoints/local/run_55_labelValues_"end=1970-02-01T00%3A02%3A03Z&start=1969-12-31T00%3A00%3A00Z"/GET (0.00s) --- PASS: TestEndpoints/local/run_56_labelValues_"end=1&start=boop" (0.00s) --- PASS: TestEndpoints/local/run_56_labelValues_"end=1&start=boop"/GET (0.00s) --- PASS: TestEndpoints/local/run_57_labelValues_"end=100000000&start=1" (0.00s) @@ -6099,8 +6170,8 @@ --- PASS: TestEndpoints/local/run_65_labelValues_"match%5B%5D=test_metric1%7Bfoo%3D%22bar%22%7D"/GET (0.00s) --- PASS: TestEndpoints/local/run_66_labelValues_"end=100000000&match%5B%5D=test_metric1&start=1" (0.00s) --- PASS: TestEndpoints/local/run_66_labelValues_"end=100000000&match%5B%5D=test_metric1&start=1"/GET (0.00s) - --- PASS: TestEndpoints/local/run_67_labelNames_"" (0.00s) - --- PASS: TestEndpoints/local/run_67_labelNames_""/GET (0.00s) + --- PASS: TestEndpoints/local/run_67_labelNames_"" (0.01s) + --- PASS: TestEndpoints/local/run_67_labelNames_""/GET (0.01s) --- PASS: TestEndpoints/local/run_68_labelNames_"end=-1&start=-2" (0.00s) --- PASS: TestEndpoints/local/run_68_labelNames_"end=-1&start=-2"/GET (0.00s) --- PASS: TestEndpoints/local/run_69_labelNames_"end=100&start=1" (0.00s) @@ -6144,7 +6215,7 @@ --- PASS: TestEndpoints/remote/run_3_query_"query=0.333" (0.00s) --- PASS: TestEndpoints/remote/run_3_query_"query=0.333"/GET (0.00s) --- PASS: TestEndpoints/remote/run_3_query_"query=0.333"/POST (0.00s) - --- PASS: TestEndpoints/remote/run_4_queryRange_"end=2&query=time%28%29&start=0&step=1" (0.00s) + --- PASS: TestEndpoints/remote/run_4_queryRange_"end=2&query=time%28%29&start=0&step=1" (0.01s) --- PASS: TestEndpoints/remote/run_4_queryRange_"end=2&query=time%28%29&start=0&step=1"/GET (0.00s) --- PASS: TestEndpoints/remote/run_4_queryRange_"end=2&query=time%28%29&start=0&step=1"/POST (0.00s) --- PASS: TestEndpoints/remote/run_5_queryRange_"end=2&query=time%28%29&step=1" (0.00s) @@ -6153,8 +6224,8 @@ --- PASS: TestEndpoints/remote/run_6_queryRange_"query=time%28%29&start=0&step=1" (0.00s) --- PASS: TestEndpoints/remote/run_6_queryRange_"query=time%28%29&start=0&step=1"/GET (0.00s) --- PASS: TestEndpoints/remote/run_6_queryRange_"query=time%28%29&start=0&step=1"/POST (0.00s) - --- PASS: TestEndpoints/remote/run_7_queryRange_"end=2&query=time%28%29&start=0" (0.00s) - --- PASS: TestEndpoints/remote/run_7_queryRange_"end=2&query=time%28%29&start=0"/GET (0.00s) + --- PASS: TestEndpoints/remote/run_7_queryRange_"end=2&query=time%28%29&start=0" (0.01s) + --- PASS: TestEndpoints/remote/run_7_queryRange_"end=2&query=time%28%29&start=0"/GET (0.01s) --- PASS: TestEndpoints/remote/run_7_queryRange_"end=2&query=time%28%29&start=0"/POST (0.00s) --- PASS: TestEndpoints/remote/run_8_query_"query=invalid%5D%5Bquery&time=1970-01-01T01%3A02%3A03%2B01%3A00" (0.00s) --- PASS: TestEndpoints/remote/run_8_query_"query=invalid%5D%5Bquery&time=1970-01-01T01%3A02%3A03%2B01%3A00"/GET (0.00s) @@ -6179,7 +6250,7 @@ --- PASS: TestEndpoints/remote/run_14_series_"match%5B%5D=%7Bfoo%3D%22%22%7D"/POST (0.00s) --- PASS: TestEndpoints/remote/run_15_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D" (0.01s) --- PASS: TestEndpoints/remote/run_15_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/GET (0.01s) - --- PASS: TestEndpoints/remote/run_15_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/POST (0.00s) + --- PASS: TestEndpoints/remote/run_15_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/POST (0.01s) --- PASS: TestEndpoints/remote/run_16_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D" (0.02s) --- PASS: TestEndpoints/remote/run_16_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/GET (0.01s) --- PASS: TestEndpoints/remote/run_16_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D"/POST (0.01s) @@ -6187,19 +6258,19 @@ --- PASS: TestEndpoints/remote/run_17_series_"match%5B%5D=test_metric4%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric4%7Bdup%3D~%22%5E1%22%7D"/GET (0.01s) --- PASS: TestEndpoints/remote/run_17_series_"match%5B%5D=test_metric4%7Bfoo%3D~%22.%2Bo%24%22%7D&match%5B%5D=test_metric4%7Bdup%3D~%22%5E1%22%7D"/POST (0.01s) --- PASS: TestEndpoints/remote/run_18_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D&match%5B%5D=none" (0.02s) - --- PASS: TestEndpoints/remote/run_18_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D&match%5B%5D=none"/GET (0.02s) + --- PASS: TestEndpoints/remote/run_18_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D&match%5B%5D=none"/GET (0.01s) --- PASS: TestEndpoints/remote/run_18_series_"match%5B%5D=test_metric1%7Bfoo%3D~%22.%2Bo%22%7D&match%5B%5D=none"/POST (0.01s) --- PASS: TestEndpoints/remote/run_19_series_"end=-1&match%5B%5D=test_metric2&start=-2" (0.01s) --- PASS: TestEndpoints/remote/run_19_series_"end=-1&match%5B%5D=test_metric2&start=-2"/GET (0.00s) - --- PASS: TestEndpoints/remote/run_19_series_"end=-1&match%5B%5D=test_metric2&start=-2"/POST (0.01s) + --- PASS: TestEndpoints/remote/run_19_series_"end=-1&match%5B%5D=test_metric2&start=-2"/POST (0.00s) --- PASS: TestEndpoints/remote/run_20_series_"end=100001&match%5B%5D=test_metric2&start=100000" (0.01s) - --- PASS: TestEndpoints/remote/run_20_series_"end=100001&match%5B%5D=test_metric2&start=100000"/GET (0.00s) - --- PASS: TestEndpoints/remote/run_20_series_"end=100001&match%5B%5D=test_metric2&start=100000"/POST (0.01s) + --- PASS: TestEndpoints/remote/run_20_series_"end=100001&match%5B%5D=test_metric2&start=100000"/GET (0.01s) + --- PASS: TestEndpoints/remote/run_20_series_"end=100001&match%5B%5D=test_metric2&start=100000"/POST (0.00s) --- PASS: TestEndpoints/remote/run_21_series_"end=100000&match%5B%5D=test_metric2&start=-1" (0.01s) - --- PASS: TestEndpoints/remote/run_21_series_"end=100000&match%5B%5D=test_metric2&start=-1"/GET (0.00s) - --- PASS: TestEndpoints/remote/run_21_series_"end=100000&match%5B%5D=test_metric2&start=-1"/POST (0.00s) - --- PASS: TestEndpoints/remote/run_22_series_"end=100&match%5B%5D=test_metric2&start=1" (0.02s) - --- PASS: TestEndpoints/remote/run_22_series_"end=100&match%5B%5D=test_metric2&start=1"/GET (0.01s) + --- PASS: TestEndpoints/remote/run_21_series_"end=100000&match%5B%5D=test_metric2&start=-1"/GET (0.01s) + --- PASS: TestEndpoints/remote/run_21_series_"end=100000&match%5B%5D=test_metric2&start=-1"/POST (0.01s) + --- PASS: TestEndpoints/remote/run_22_series_"end=100&match%5B%5D=test_metric2&start=1" (0.01s) + --- PASS: TestEndpoints/remote/run_22_series_"end=100&match%5B%5D=test_metric2&start=1"/GET (0.00s) --- PASS: TestEndpoints/remote/run_22_series_"end=100&match%5B%5D=test_metric2&start=1"/POST (0.01s) --- PASS: TestEndpoints/remote/run_23_series_"end=100000&match%5B%5D=test_metric2&start=1" (0.01s) --- PASS: TestEndpoints/remote/run_23_series_"end=100000&match%5B%5D=test_metric2&start=1"/GET (0.00s) @@ -6250,18 +6321,18 @@ --- PASS: TestEndpoints/remote/run_44_serveFlags_""/GET (0.00s) --- PASS: TestEndpoints/remote/run_45_alerts_"" (0.00s) --- PASS: TestEndpoints/remote/run_45_alerts_""/GET (0.00s) - --- PASS: TestEndpoints/remote/run_46_rules_"" (0.14s) - --- PASS: TestEndpoints/remote/run_46_rules_""/GET (0.14s) - --- PASS: TestEndpoints/remote/run_47_rules_"type=alert" (0.11s) - --- PASS: TestEndpoints/remote/run_47_rules_"type=alert"/GET (0.11s) - --- PASS: TestEndpoints/remote/run_48_rules_"type=record" (0.15s) - --- PASS: TestEndpoints/remote/run_48_rules_"type=record"/GET (0.15s) + --- PASS: TestEndpoints/remote/run_46_rules_"" (0.10s) + --- PASS: TestEndpoints/remote/run_46_rules_""/GET (0.10s) + --- PASS: TestEndpoints/remote/run_47_rules_"type=alert" (0.12s) + --- PASS: TestEndpoints/remote/run_47_rules_"type=alert"/GET (0.12s) + --- PASS: TestEndpoints/remote/run_48_rules_"type=record" (0.13s) + --- PASS: TestEndpoints/remote/run_48_rules_"type=record"/GET (0.13s) === RUN TestLabelNames ---- PASS: TestLabelNames (0.16s) +--- PASS: TestLabelNames (0.07s) === RUN TestSampledReadEndpoint ---- PASS: TestSampledReadEndpoint (0.16s) +--- PASS: TestSampledReadEndpoint (0.19s) === RUN TestStreamReadEndpoint ---- PASS: TestStreamReadEndpoint (0.22s) +--- PASS: TestStreamReadEndpoint (0.38s) === RUN TestAdminEndpoints === RUN TestAdminEndpoints/#00 === RUN TestAdminEndpoints/#01 @@ -6282,28 +6353,28 @@ === RUN TestAdminEndpoints/#16 === RUN TestAdminEndpoints/#17 === RUN TestAdminEndpoints/#18 ---- PASS: TestAdminEndpoints (0.08s) +--- PASS: TestAdminEndpoints (0.04s) --- PASS: TestAdminEndpoints/#00 (0.00s) - --- PASS: TestAdminEndpoints/#01 (0.01s) + --- PASS: TestAdminEndpoints/#01 (0.00s) --- PASS: TestAdminEndpoints/#02 (0.01s) --- PASS: TestAdminEndpoints/#03 (0.00s) - --- PASS: TestAdminEndpoints/#04 (0.01s) - --- PASS: TestAdminEndpoints/#05 (0.00s) + --- PASS: TestAdminEndpoints/#04 (0.00s) + --- PASS: TestAdminEndpoints/#05 (0.01s) --- PASS: TestAdminEndpoints/#06 (0.00s) --- PASS: TestAdminEndpoints/#07 (0.00s) --- PASS: TestAdminEndpoints/#08 (0.00s) - --- PASS: TestAdminEndpoints/#09 (0.01s) + --- PASS: TestAdminEndpoints/#09 (0.00s) --- PASS: TestAdminEndpoints/#10 (0.00s) --- PASS: TestAdminEndpoints/#11 (0.00s) --- PASS: TestAdminEndpoints/#12 (0.00s) - --- PASS: TestAdminEndpoints/#13 (0.01s) + --- PASS: TestAdminEndpoints/#13 (0.00s) --- PASS: TestAdminEndpoints/#14 (0.00s) --- PASS: TestAdminEndpoints/#15 (0.00s) - --- PASS: TestAdminEndpoints/#16 (0.01s) + --- PASS: TestAdminEndpoints/#16 (0.00s) --- PASS: TestAdminEndpoints/#17 (0.00s) --- PASS: TestAdminEndpoints/#18 (0.00s) === RUN TestRespondSuccess ---- PASS: TestRespondSuccess (0.01s) +--- PASS: TestRespondSuccess (0.00s) === RUN TestRespondError --- PASS: TestRespondError (0.01s) === RUN TestParseTimeParam @@ -6313,17 +6384,17 @@ === RUN TestParseDuration --- PASS: TestParseDuration (0.00s) === RUN TestOptionsMethod ---- PASS: TestOptionsMethod (0.01s) +--- PASS: TestOptionsMethod (0.03s) === RUN TestRespond ---- PASS: TestRespond (0.17s) +--- PASS: TestRespond (0.07s) === RUN TestTSDBStatus === RUN TestTSDBStatus/0 ---- PASS: TestTSDBStatus (0.09s) - --- PASS: TestTSDBStatus/0 (0.08s) +--- PASS: TestTSDBStatus (0.02s) + --- PASS: TestTSDBStatus/0 (0.02s) === RUN TestReturnAPIError --- PASS: TestReturnAPIError (0.00s) PASS -ok github.com/prometheus/prometheus/web/api/v1 2.839s +ok github.com/prometheus/prometheus/web/api/v1 2.462s make[1]: Leaving directory '/build/prometheus-2.24.1+ds' create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=golang -O--builddirectory=/build/prometheus-2.24.1\+ds/build @@ -6376,12 +6447,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/11448/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/11448/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/29873 and its subdirectories -I: Current time: Sun Jul 18 11:23:28 -12 2021 -I: pbuilder-time-stamp: 1626650608 +I: removing directory /srv/workspace/pbuilder/11448 and its subdirectories +I: Current time: Mon Jul 19 13:48:08 +14 2021 +I: pbuilder-time-stamp: 1626652088