315 lines
53 KiB
Bash
Executable File
315 lines
53 KiB
Bash
Executable File
# **************************************************************************** #
|
||
# #
|
||
# .--. _ #
|
||
# test.sh |o_o || | #
|
||
# |:_/ || |_ _ ___ __ #
|
||
# By: houtworm <codam@houtworm.net> // \ \ __| | | \ \/ / #
|
||
# (| | )|_| |_| |> < #
|
||
# Created: 2023/02/20 12:46:46 by houtworm /'\_ _/`\__|\__,_/_/\_\ #
|
||
# Updated: 2023/03/01 17:08:17 by houtworm \___)=(___/ #
|
||
# #
|
||
# **************************************************************************** #
|
||
|
||
#!/bin/bash
|
||
|
||
SLEEP=1
|
||
SERVER=$1
|
||
FAULTS=0
|
||
|
||
if [ -z "$1" ]
|
||
then
|
||
printf "\e[1;31mPlease add the server pid as an argument\e[0;00m\n"
|
||
exit 1
|
||
fi
|
||
|
||
if [ $2 ]
|
||
then
|
||
SLEEP=$2
|
||
fi
|
||
|
||
checkfile()
|
||
{
|
||
ls $1 2> /dev/null | grep $1 > /dev/null
|
||
if [ $? -ne $2 ]
|
||
then
|
||
printf "\e[1;31mMakefile does not create $1\e[0;00m\n"
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
searchobj()
|
||
{
|
||
FILES=$(find ./ -name '*.o' | wc -l)
|
||
if [ $1 -eq 0 ]
|
||
then
|
||
if [ $FILES -ne 0 ]
|
||
then
|
||
printf "\e[1;31mObject files found after clean\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
fi
|
||
fi
|
||
if [ $1 -eq 1 ]
|
||
then
|
||
if [ $FILES -eq 0 ]
|
||
then
|
||
printf "\e[1;31mObject files not found after make\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
fi
|
||
fi
|
||
}
|
||
|
||
checkrule()
|
||
{
|
||
make $1 > /dev/null 2>&1
|
||
if [ $? -eq 2 ]
|
||
then
|
||
printf "\e[1;31mMissing rule $1\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
fi
|
||
}
|
||
|
||
# Norminette Check
|
||
|
||
printf "\e[1;36mChecking all source with Norminette\e[0;00m\n"
|
||
norminette > /dev/null 2>&1
|
||
if [ $? -eq 1 ]
|
||
then
|
||
printf "\e[1;31mYour shit is not norm!\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
else
|
||
printf "\e[1;32mNorminette OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# Makefile Rule check
|
||
|
||
printf "\e[1;36mChecking all mandatory rules Makefile\e[0;00m\n"
|
||
checkrule all
|
||
checkfile server 0
|
||
checkfile client 0
|
||
searchobj 1
|
||
checkrule clean
|
||
searchobj 0
|
||
checkrule fclean
|
||
checkrule server
|
||
checkfile server 0
|
||
checkfile client 1
|
||
searchobj 1
|
||
checkrule fclean
|
||
checkrule client
|
||
checkfile server 1
|
||
checkfile client 0
|
||
searchobj 1
|
||
checkrule fclean
|
||
searchobj 0
|
||
checkfile server 1
|
||
checkfile client 1
|
||
checkrule re
|
||
searchobj 1
|
||
checkfile server 0
|
||
checkfile client 0
|
||
if [ $FAULTS -eq 0 ]
|
||
then
|
||
printf "\e[1;32mMakefile rules OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# Makefile Relink Test
|
||
|
||
printf "\e[1;36mChecking if Makefile relinks\e[0;00m\n"
|
||
make 2>&1 | grep Nothing
|
||
if [ $? -eq 1 ]
|
||
then
|
||
printf "\e[1;31mMakefile relinks\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
else
|
||
printf "\e[1;32mMakefile OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# Wrong input test
|
||
|
||
printf "\e[1;36mRunning client without arguments\e[0;00m\n"
|
||
./client
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;31mwrong return value without arguments\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
else
|
||
printf "\e[1;32mNo Arguments OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
printf "\e[1;36mRunning client with one argument\e[0;00m\n"
|
||
./client "hallo"
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;31mwrong return value with single argument\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
else
|
||
printf "\e[1;32mSingle Argument OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
printf "\e[1;36mRunning client with three arguments\e[0;00m\n"
|
||
./client $SERVER "hallo" "hallo"
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;31mwrong return value with 3 arguments\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
else
|
||
printf "\e[1;32m3 Arguments OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
printf "\e[1;36mRunning client with invalid PID -1\e[0;00m\n"
|
||
./client -1 "hallo"
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;31mWrong return value with invalid PID -1\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
else
|
||
printf "\e[1;32mInvalid PID int OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
printf "\e[1;36mRunning client with invalid PID 0\e[0;00m\n"
|
||
./client 0 "hallo"
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;31mWrong return value with invalid PID -1\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
else
|
||
printf "\e[1;32mInvalid PID int OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
printf "\e[1;36mRunning client with invalid PID a\e[0;00m\n"
|
||
./client a "hallo"
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;31mWrong return value with invalid PID a\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
else
|
||
printf "\e[1;32mInvalid PID char OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# Basic test
|
||
|
||
printf "\e[1;36mRunning client with proper input\e[0;00m\n"
|
||
./client $SERVER "The whole test should take no langer than 30 seconds"
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;32mBasic test OK\e[0;00m\n"
|
||
else
|
||
printf "\e[1;31mwrong return value with the basic test\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# Multiple test
|
||
|
||
printf "\e[1;36mRunning client 10.000 times\e[0;00m\n"
|
||
MULTIPLETEST=0
|
||
for ((i=1; i<=10000; i++))
|
||
do
|
||
./client $SERVER GNU/ð§ > /dev/null 2>&1
|
||
if [ $? -eq 0 ]
|
||
then
|
||
continue
|
||
else
|
||
printf "\e[1;31mwrong return value with 10.000 clients test\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
MULTIPLETEST=1
|
||
break
|
||
fi
|
||
done
|
||
if [ $MULTIPLETEST -eq 0 ]
|
||
then
|
||
printf "\e[1;32m10.000 clients test OK\e[0;00m\n"
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# 100000 char string test
|
||
|
||
printf "\e[1;36mRunning client with 100.000 char str\e[0;00m\n"
|
||
./client $SERVER 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;32m100.000 char string test OK\e[0;00m\n"
|
||
else
|
||
printf "\e[1;31mwrong return value with 100.000 char string test\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# Empty string test
|
||
|
||
printf "\e[1;36mRunning client with NULL string\e[0;00m\n"
|
||
./client $SERVER ""
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;32mNULL string test OK\e[0;00m\n"
|
||
else
|
||
printf "\e[1;31mwrong return value NULL string test\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# Space test
|
||
|
||
printf "\e[1;36mRunning client with single space string\e[0;00m\n"
|
||
./client $SERVER " "
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;32mSpace test OK\e[0;00m\n"
|
||
else
|
||
printf "\e[1;31mwrong return value with Space test\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# Multiline test
|
||
|
||
printf "\e[1;36mRunning client with multiline string\e[0;00m\n"
|
||
./client $SERVER "1
|
||
2
|
||
3
|
||
4
|
||
5"
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;32mMultiline test OK\e[0;00m\n"
|
||
else
|
||
printf "\e[1;31mwrong return value with multiline test\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# All Emoji test
|
||
|
||
printf "\e[1;36mRunning client with all Emojis\e[0;00m\n"
|
||
./client $SERVER ðððððð
ðð€£ð¥²ð¥¹âºïžðððððððð¥°ððððððððð€ªð€šð§ð€ðð¥žð€©ð¥³ðððððððâ¹ïžð£ðð«ð©ð¥ºð¢ðð®âðšð€ð ð¡ð€¬ð€¯ð³ð¥µð¥¶ð±ðšð°ð¥ðð«£ð€ð«¡ð€ð«¢ð€ð€«ð€¥ð¶ð¶âð«ïžððð¬ð« ðð¯ðŠð§ð®ð²ð¥±ðŽð€€ðªðµðµâð«ð«¥ð€ð¥Žð€¢ð€®ð€§ð·ð€ð€ð€ð€ ðð¿ð¹ðºð€¡ð©ð»ðâ ïžðœðŸð€ððºðžð¹ð»ðŒðœðð¿ðŸðð€ðâððð€ð€âïžð€ð«°ð€ð€ð€ð«µð«±ð«²ð«³ð«Žðððððâïžððâðð€ð€ðð«¶ððð€²ð€ðâïžð
ð€³ðªðŠŸðŠµðŠ¿ðŠ¶ð£ððŠ»ðð«ð«ð§ ðŠ·ðŠŽððð
ðð«Šðð©žð¶ð§ð§ðŠð©ð§ðšð©âðŠ±ð§âðŠ±ðšâðŠ±ð©âðŠ°ð§âðŠ°ðšâðŠ°ð±ââïžð±ð±ââïžð©âðŠ³ð§âðŠ³ðšâðŠ³ð©âðŠ²ð§âðŠ²ðšâðŠ²ð§ââïžð§ð§ââïžðµð§ðŽð²ð³ââïžð³ð³ââïžð§ð®ââïžð®ð®ââïžð·ââïžð·ð·ââïžðââïžððââïžðµïžââïžðµïžðµïžââïžð©ââïžð§ââïžðšââïžð©âðŸð§âðŸðšâðŸð©âð³ð§âð³ðšâð³ð©âðð§âððšâðð©âð€ð§âð€ðšâð€ð©âð«ð§âð«ðšâð«ð©âðð§âððšâðð©âð»ð§âð»ðšâð»ð©âðŒð§âðŒðšâðŒð©âð§ð§âð§ðšâð§ð©âð¬ð§âð¬ðšâð¬ð©âðšð§âðšðšâðšð©âðð§âððšâðð©ââïžð§ââïžðšââïžð©âðð§âððšâðð©ââïžð§ââïžðšââïžð°ââïžð°ð°ââïžð€µââïžð€µð€µââïžðžð«
ð€Žð¥·ðŠžââïžðŠžðŠžââïžðŠ¹ââïžðŠ¹ðŠ¹ââïžð€¶ð§âðð
ð§ââïžð§ð§ââïžð§ââïžð§ð§ââïžð§ââïžð§ð§ââïžð§ââïžð§ð§ââïžð§ââïžð§ð§ââïžð§ââïžð§ð§ââïžð§ââïžð§ð§ââïžð§ðŒð€°ð«ð«ð€±ð©âðŒð§âðŒðšâðŒðââïžððââïžðââïžððââïžð
ââïžð
ð
ââïžðââïžððââïžðââïžððââïžð§ââïžð§ð§ââïžð€Šââïžð€Šð€Šââïžð€·ââïžð€·ð€·ââïžðââïžððââïžðââïžððââïžðââïžððââïžðââïžððââïžð§ââïžð§ð§ââïžð
ð€³ððºð¯ââïžð¯ð¯ââïžðŽð©âðŠœð§âðŠœðšâðŠœð©âðŠŒð§âðŠŒðšâðŠŒð¶ââïžð¶ð¶ââïžð©âðŠ¯ð§âðŠ¯ðšâðŠ¯ð§ââïžð§ð§ââïžðââïžððââïžð§ââïžð§ð§ââïžðð§âð€âð§ð¬ð«ð©ââ€ïžâð©ððšââ€ïžâðšð©ââ€ïžâðšð©ââ€ïžâðâð©ððšââ€ïžâðâðšð©ââ€ïžâðâðšðªðšâð©âðŠðšâð©âð§ðšâð©âð§âðŠðšâð©âðŠâðŠðšâð©âð§âð§ðšâðšâðŠðšâðšâð§ðšâðšâð§âðŠðšâðšâðŠâðŠðšâðšâð§âð§ð©âð©âðŠð©âð©âð§ð©âð©âð§âðŠð©âð©âðŠâðŠð©âð©âð§âð§ðšâðŠðšâðŠâðŠðšâð§ðšâð§âðŠðšâð§âð§ð©âðŠð©âðŠâðŠð©âð§ð©âð§âðŠð©âð§âð§ð£ð€ð¥ð«ð§³ðâïžð§µðª¡ðª¢ð§¶ðð¶ð¥œð¥ŒðŠºðððð§£ð§€ð§¥ð§Šððð¥»ð©Žð©±ð©²ð©³ððððððððð¥Ÿð¥¿ð ð¡ð©°ð¢ððð©ðð§¢âðªðððŒðð»ð€ð»ðð»âð»ðð»ðð»ð€ð»ð€ð»âð»ð€ð»ð«°ð»ð€ð»ð€ð»ð€ð»ð«µð»ð«±ð»ð«²ð»ð«³ð»ð«Žð»ðð»ðð»ðð»ðð»ðð»âð»ðð»ðð»âð»ðð»ð€ð»ð€ð»ðð»ð«¶ð»ðð»ðð»ð€²ð»ðð»âð»ð
ð»ð€³ð»ðªð»ðŠµð»ðŠ¶ð»ðð»ðŠ»ð»ðð»ð¶ð»ð§ð»ð§ð»ðŠð»ð©ð»ð§ð»ðšð»ð©ð»âðŠ±ð§ð»âðŠ±ðšð»âðŠ±ð©ð»âðŠ°ð§ð»âðŠ°ðšð»âðŠ°ð±ð»ââïžð±ð»ð±ð»ââïžð©ð»âðŠ³ð§ð»âðŠ³ðšð»âðŠ³ð©ð»âðŠ²ð§ð»âðŠ²ðšð»âðŠ²ð§ð»ââïžð§ð»ð§ð»ââïžðµð»ð§ð»ðŽð»ð²ð»ð³ð»ââïžð³ð»ð³ð»ââïžð§ð»ð®ð»ââïžð®ð»ð®ð»ââïžð·ð»ââïžð·ð»ð·ð»ââïžðð»ââïžðð»ðð»ââïžðµð»ââïžðµð»ðµð»ââïžð©ð»ââïžð§ð»ââïžðšð»ââïžð©ð»âðŸð§ð»âðŸðšð»âðŸð©ð»âð³ð§ð»âð³ðšð»âð³ð©ð»âðð§ð»âððšð»âðð©ð»âð€ð§ð»âð€ðšð»âð€ð©ð»âð«ð§ð»âð«ðšð»âð«ð©ð»âðð§ð»âððšð»âðð©ð»âð»ð§ð»âð»ðšð»âð»ð©ð»âðŒð§ð»âðŒðšð»âðŒð©ð»âð§ð§ð»âð§ðšð»âð§ð©ð»âð¬ð§ð»âð¬ðšð»âð¬ð©ð»âðšð§ð»âðšðšð»âðšð©ð»âðð§ð»âððšð»âðð©ð»ââïžð§ð»ââïžðšð»ââïžð©ð»âðð§ð»âððšð»âðð©ð»ââïžð§ð»ââïžðšð»ââïžð°ð»ââïžð°ð»ð°ð»ââïžð€µð»ââïžð€µð»ð€µð»ââïžðžð»ð«
ð»ð€Žð»ð¥·ð»ðŠžð»ââïžðŠžð»ðŠžð»ââïžðŠ¹ð»ââïžðŠ¹ð»ðŠ¹ð»ââïžð€¶ð»ð§ð»âðð
ð»ð§ð»ââïžð§ð»ð§ð»ââïžð§ð»ââïžð§ð»ð§ð»ââïžð§ð»ââïžð§ð»ð§ð»ââïžð§ð»ââïžð§ð»ð§ð»ââïžð§ð»ââïžð§ð»ð§ð»ââïžðŒð»ð€°ð»ð«ð»ð«ð»ð€±ð»ð©ð»âðŒð§ð»âðŒðšð»âðŒðð»ââïžðð»ðð»ââïžðð»ââïžðð»ðð»ââïžð
ð»ââïžð
ð»ð
ð»ââïžðð»ââïžðð»ðð»ââïžðð»ââïžðð»ðð»ââïžð§ð»ââïžð§ð»ð§ð»ââïžð€Šð»ââïžð€Šð»ð€Šð»ââïžð€·ð»ââïžð€·ð»ð€·ð»ââïžðð»ââïžðð»ðð»ââïžðð»ââïžðð»ðð»ââïžðð»ââïžðð»ðð»ââïžðð»ââïžðð»ðð»ââïžð§ð»ââïžð§ð»ð§ð»ââïžðð»ðºð»ðŽð»ð©ð»âðŠœð§ð»âðŠœðšð»âðŠœð©ð»âðŠŒð§ð»âðŠŒðšð»âðŠŒð¶ð»ââïžð¶ð»ð¶ð»ââïžð©ð»âðŠ¯ð§ð»âðŠ¯ðšð»âðŠ¯ð§ð»ââïžð§ð»ð§ð»ââïžðð»ââïžðð»ðð»ââïžð§ð»ââïžð§ð»ð§ð»ââïžðð»ð§ð»âð€âð§ð»ð¬ð»ð«ð»ð§ð»ââïžð§ð»ð§ð»ââïžðð»ðð»ðð»ââïžðð»ðð»ââïžðð»ââïžðð»ðð»ââïžð£ð»ââïžð£ð»ð£ð»ââïžðð»ââïžðð»ðð»ââïžâ¹ð»ââïžâ¹ð»â¹ð»ââïžðð»ââïžðð»ðð»ââïžðŽð»ââïžðŽð»ðŽð»ââïžðµð»ââïžðµð»ðµð»ââïžð€žð»ââïžð€žð»ð€žð»ââïžð€œð»ââïžð€œð»ð€œð»ââïžð€Ÿð»ââïžð€Ÿð»ð€Ÿð»ââïžð€¹ð»ââïžð€¹ð»ð€¹ð»ââïžð§ð»ââïžð§ð»ð§ð»ââïžðð»ðð»ððŒð€ðŒððŒâðŒððŒððŒð€ðŒð€ðŒâðŒð€ðŒð«°ðŒð€ðŒð€ðŒð€ðŒð«µðŒð«±ðŒð«²ðŒð«³ðŒð«ŽðŒððŒððŒððŒððŒððŒâðŒððŒððŒâðŒððŒð€ðŒð€ðŒððŒð«¶ðŒððŒððŒð€²ðŒððŒâðŒð
ðŒð€³ðŒðªðŒðŠµðŒðŠ¶ðŒððŒðŠ»ðŒððŒð¶ðŒð§ðŒð§ðŒðŠðŒð©ðŒð§ðŒðšðŒð©ðŒâðŠ±ð§ðŒâðŠ±ðšðŒâðŠ±ð©ðŒâðŠ°ð§ðŒâðŠ°ðšðŒâðŠ°ð±ðŒââïžð±ðŒð±ðŒââïžð©ðŒâðŠ³ð§ðŒâðŠ³ðšðŒâðŠ³ð©ðŒâðŠ²ð§ðŒâðŠ²ðšðŒâðŠ²ð§ðŒââïžð§ðŒð§ðŒââïžðµðŒð§ðŒðŽðŒð²ðŒð³ðŒââïžð³ðŒð³ðŒââïžð§ðŒð®ðŒââïžð®ðŒð®ðŒââïžð·ðŒââïžð·ðŒð·ðŒââïžððŒââïžððŒððŒââïžðµðŒââïžðµðŒðµðŒââïžð©ðŒââïžð§ðŒââïžðšðŒââïžð©ðŒâðŸð§ðŒâðŸðšðŒâðŸð©ðŒâð³ð§ðŒâð³ðšðŒâð³ð©ðŒâðð§ðŒâððšðŒâðð©ðŒâð€ð§ðŒâð€ðšðŒâð€ð©ðŒâð«ð§ðŒâð«ðšðŒâð«ð©ðŒâðð§ðŒâððšðŒâðð©ðŒâð»ð§ðŒâð»ðšðŒâð»ð©ðŒâðŒð§ðŒâðŒðšðŒâðŒð©ðŒâð§ð§ðŒâð§ðšðŒâð§ð©ðŒâð¬ð§ðŒâð¬ðšðŒâð¬ð©ðŒâðšð§ðŒâðšðšðŒâðšð©ðŒâðð§ðŒâððšðŒâðð©ðŒââïžð§ðŒââïžðšðŒââïžð©ðŒâðð§ðŒâððšðŒâðð©ðŒââïžð§ðŒââïžðšðŒââïžð°ðŒââïžð°ðŒð°ðŒââïžð€µðŒââïžð€µðŒð€µðŒââïžðžðŒð«
ðŒð€ŽðŒð¥·ðŒðŠžðŒââïžðŠžðŒðŠžðŒââïžðŠ¹ðŒââïžðŠ¹ðŒðŠ¹ðŒââïžð€¶ðŒð§ðŒâðð
ðŒð§ðŒââïžð§ðŒð§ðŒââïžð§ðŒââïžð§ðŒð§ðŒââïžð§ðŒââïžð§ðŒð§ðŒââïžð§ðŒââïžð§ðŒð§ðŒââïžð§ðŒââïžð§ðŒð§ðŒââïžðŒðŒð€°ðŒð«ðŒð«ðŒð€±ðŒð©ðŒâðŒð§ðŒâðŒðšðŒâðŒððŒââïžððŒððŒââïžððŒââïžððŒððŒââïžð
ðŒââïžð
ðŒð
ðŒââïžððŒââïžððŒððŒââïžððŒââïžððŒððŒââïžð§ðŒââïžð§ðŒð§ðŒââïžð€ŠðŒââïžð€ŠðŒð€ŠðŒââïžð€·ðŒââïžð€·ðŒð€·ðŒââïžððŒââïžððŒððŒââïžððŒââïžððŒððŒââïžððŒââïžððŒððŒââïžððŒââïžððŒððŒââïžð§ðŒââïžð§ðŒð§ðŒââïžððŒðºðŒðŽðŒð©ðŒâðŠœð§ðŒâðŠœðšðŒâðŠœð©ðŒâðŠŒð§ðŒâðŠŒðšðŒâðŠŒð¶ðŒââïžð¶ðŒð¶ðŒââïžð©ðŒâðŠ¯ð§ðŒâðŠ¯ðšðŒâðŠ¯ð§ðŒââïžð§ðŒð§ðŒââïžððŒââïžððŒððŒââïžð§ðŒââïžð§ðŒð§ðŒââïžððŒð§ðŒâð€âð§ðŒð¬ðŒð«ðŒð§ðŒââïžð§ðŒð§ðŒââïžððŒððŒððŒââïžððŒððŒââïžððŒââïžððŒððŒââïžð£ðŒââïžð£ðŒð£ðŒââïžððŒââïžððŒððŒââïžâ¹ðŒââïžâ¹ðŒâ¹ðŒââïžððŒââïžððŒððŒââïžðŽðŒââïžðŽðŒðŽðŒââïžðµðŒââïžðµðŒðµðŒââïžð€žðŒââïžð€žðŒð€žðŒââïžð€œðŒââïžð€œðŒð€œðŒââïžð€ŸðŒââïžð€ŸðŒð€ŸðŒââïžð€¹ðŒââïžð€¹ðŒð€¹ðŒââïžð§ðŒââïžð§ðŒð§ðŒââïžððŒððŒððœð€ðœððœâðœððœððœð€ðœð€ðœâðœð€ðœð«°ðœð€ðœð€ðœð€ðœð«µðœð«±ðœð«²ðœð«³ðœð«Žðœððœððœððœððœððœâðœððœððœâðœððœð€ðœð€ðœððœð«¶ðœððœððœð€²ðœððœâðœð
ðœð€³ðœðªðœðŠµðœðŠ¶ðœððœðŠ»ðœððœð¶ðœð§ðœð§ðœðŠðœð©ðœð§ðœðšðœð©ðœâðŠ±ð§ðœâðŠ±ðšðœâðŠ±ð©ðœâðŠ°ð§ðœâðŠ°ðšðœâðŠ°ð±ðœââïžð±ðœð±ðœââïžð©ðœâðŠ³ð§ðœâðŠ³ðšðœâðŠ³ð©ðœâðŠ²ð§ðœâðŠ²ðšðœâðŠ²ð§ðœââïžð§ðœð§ðœââïžðµðœð§ðœðŽðœð²ðœð³ðœââïžð³ðœð³ðœââïžð§ðœð®ðœââïžð®ðœð®ðœââïžð·ðœââïžð·ðœð·ðœââïžððœââïžððœððœââïžðµðœââïžðµðœðµðœââïžð©ðœââïžð§ðœââïžðšðœââïžð©ðœâðŸð§ðœâðŸðšðœâðŸð©ðœâð³ð§ðœâð³ðšðœâð³ð©ðœâðð§ðœâððšðœâðð©ðœâð€ð§ðœâð€ðšðœâð€ð©ðœâð«ð§ðœâð«ðšðœâð«ð©ðœâðð§ðœâððšðœâðð©ðœâð»ð§ðœâð»ðšðœâð»ð©ðœâðŒð§ðœâðŒðšðœâðŒð©ðœâð§ð§ðœâð§ðšðœâð§ð©ðœâð¬ð§ðœâð¬ðšðœâð¬ð©ðœâðšð§ðœâðšðšðœâðšð©ðœâðð§ðœâððšðœâðð©ðœââïžð§ðœââïžðšðœââïžð©ðœâðð§ðœâððšðœâðð©ðœââïžð§ðœââïžðšðœââïžð°ðœââïžð°ðœð°ðœââïžð€µðœââïžð€µðœð€µðœââïžðžðœð«
ðœð€Žðœð¥·ðœðŠžðœââïžðŠžðœðŠžðœââïžðŠ¹ðœââïžðŠ¹ðœðŠ¹ðœââïžð€¶ðœð§ðœâðð
ðœð§ðœââïžð§ðœð§ðœââïžð§ðœââïžð§ðœð§ðœââïžð§ðœââïžð§ðœð§ðœââïžð§ðœââïžð§ðœð§ðœââïžð§ðœââïžð§ðœð§ðœââïžðŒðœð€°ðœð«ðœð«ðœð€±ðœð©ðœâðŒð§ðœâðŒðšðœâðŒððœââïžððœððœââïžððœââïžððœððœââïžð
ðœââïžð
ðœð
ðœââïžððœââïžððœððœââïžððœââïžððœððœââïžð§ðœââïžð§ðœð§ðœââïžð€Šðœââïžð€Šðœð€Šðœââïžð€·ðœââïžð€·ðœð€·ðœââïžððœââïžððœððœââïžððœââïžððœððœââïžððœââïžððœððœââïžððœââïžððœððœââïžð§ðœââïžð§ðœð§ðœââïžððœðºðœðŽðœð©ðœâðŠœð§ðœâðŠœðšðœâðŠœð©ðœâðŠŒð§ðœâðŠŒðšðœâðŠŒð¶ðœââïžð¶ðœð¶ðœââïžð©ðœâðŠ¯ð§ðœâðŠ¯ðšðœâðŠ¯ð§ðœââïžð§ðœð§ðœââïžððœââïžððœððœââïžð§ðœââïžð§ðœð§ðœââïžððœð§ðœâð€âð§ðœð¬ðœð«ðœð§ðœââïžð§ðœð§ðœââïžððœððœððœââïžððœððœââïžððœââïžððœððœââïžð£ðœââïžð£ðœð£ðœââïžððœââïžððœððœââïžâ¹ðœââïžâ¹ðœâ¹ðœââïžððœââïžððœððœââïžðŽðœââïžðŽðœðŽðœââïžðµðœââïžðµðœðµðœââïžð€žðœââïžð€žðœð€žðœââïžð€œðœââïžð€œðœð€œðœââïžð€Ÿðœââïžð€Ÿðœð€Ÿðœââïžð€¹ðœââïžð€¹ðœð€¹ðœââïžð§ðœââïžð§ðœð§ðœââïžððœððœððŸð€ðŸððŸâðŸððŸððŸð€ðŸð€ðŸâðŸð€ðŸð«°ðŸð€ðŸð€ðŸð€ðŸð«µðŸð«±ðŸð«²ðŸð«³ðŸð«ŽðŸððŸððŸððŸððŸððŸâðŸððŸððŸâðŸððŸð€ðŸð€ðŸððŸð«¶ðŸððŸððŸð€²ðŸððŸâðŸð
ðŸð€³ðŸðªðŸðŠµðŸðŠ¶ðŸððŸðŠ»ðŸððŸð¶ðŸð§ðŸð§ðŸðŠðŸð©ðŸð§ðŸðšðŸð©ðŸâðŠ±ð§ðŸâðŠ±ðšðŸâðŠ±ð©ðŸâðŠ°ð§ðŸâðŠ°ðšðŸâðŠ°ð±ðŸââïžð±ðŸð±ðŸââïžð©ðŸâðŠ³ð§ðŸâðŠ³ðšðŸâðŠ³ð©ðŸâðŠ²ð§ðŸâðŠ²ðšðŸâðŠ²ð§ðŸââïžð§ðŸð§ðŸââïžðµðŸð§ðŸðŽðŸð²ðŸð³ðŸââïžð³ðŸð³ðŸââïžð§ðŸð®ðŸââïžð®ðŸð®ðŸââïžð·ðŸââïžð·ðŸð·ðŸââïžððŸââïžððŸððŸââïžðµðŸââïžðµðŸðµðŸââïžð©ðŸââïžð§ðŸââïžðšðŸââïžð©ðŸâðŸð§ðŸâðŸðšðŸâðŸð©ðŸâð³ð§ðŸâð³ðšðŸâð³ð©ðŸâðð§ðŸâððšðŸâðð©ðŸâð€ð§ðŸâð€ðšðŸâð€ð©ðŸâð«ð§ðŸâð«ðšðŸâð«ð©ðŸâðð§ðŸâððšðŸâðð©ðŸâð»ð§ðŸâð»ðšðŸâð»ð©ðŸâðŒð§ðŸâðŒðšðŸâðŒð©ðŸâð§ð§ðŸâð§ðšðŸâð§ð©ðŸâð¬ð§ðŸâð¬ðšðŸâð¬ð©ðŸâðšð§ðŸâðšðšðŸâðšð©ðŸâðð§ðŸâððšðŸâðð©ðŸââïžð§ðŸââïžðšðŸââïžð©ðŸâðð§ðŸâððšðŸâðð©ðŸââïžð§ðŸââïžðšðŸââïžð°ðŸââïžð°ðŸð°ðŸââïžð€µðŸââïžð€µðŸð€µðŸââïžðžðŸð«
ðŸð€ŽðŸð¥·ðŸðŠžðŸââïžðŠžðŸðŠžðŸââïžðŠ¹ðŸââïžðŠ¹ðŸðŠ¹ðŸââïžð€¶ðŸð§ðŸâðð
ðŸð§ðŸââïžð§ðŸð§ðŸââïžð§ðŸââïžð§ðŸð§ðŸââïžð§ðŸââïžð§ðŸð§ðŸââïžð§ðŸââïžð§ðŸð§ðŸââïžð§ðŸââïžð§ðŸð§ðŸââïžðŒðŸð€°ðŸð«ðŸð«ðŸð€±ðŸð©ðŸâðŒð§ðŸâðŒðšðŸâðŒððŸââïžððŸððŸââïžððŸââïžððŸððŸââïžð
ðŸââïžð
ðŸð
ðŸââïžððŸââïžððŸððŸââïžððŸââïžððŸððŸââïžð§ðŸââïžð§ðŸð§ðŸââïžð€ŠðŸââïžð€ŠðŸð€ŠðŸââïžð€·ðŸââïžð€·ðŸð€·ðŸââïžððŸââïžððŸððŸââïžððŸââïžððŸððŸââïžððŸââïžððŸððŸââïžððŸââïžððŸððŸââïžð§ðŸââïžð§ðŸð§ðŸââïžððŸðºðŸðŽð¿ð©ðŸâðŠœð§ðŸâðŠœðšðŸâðŠœð©ðŸâðŠŒð§ðŸâðŠŒðšðŸâðŠŒð¶ðŸââïžð¶ðŸð¶ðŸââïžð©ðŸâðŠ¯ð§ðŸâðŠ¯ðšðŸâðŠ¯ð§ðŸââïžð§ðŸð§ðŸââïžððŸââïžððŸððŸââïžð§ðŸââïžð§ðŸð§ðŸââïžððŸð§ðŸâð€âð§ðŸð¬ðŸð«ðŸð§ðŸââïžð§ðŸð§ðŸââïžððŸððŸððŸââïžððŸððŸââïžððŸââïžððŸððŸââïžð£ðŸââïžð£ðŸð£ðŸââïžððŸââïžððŸððŸââïžâ¹ðŸââïžâ¹ðŸâ¹ðŸââïžððŸââïžððŸððŸââïžðŽðŸââïžðŽðŸðŽðŸââïžðµðŸââïžðµðŸðµðŸââïžð€žðŸââïžð€žðŸð€žðŸââïžð€œðŸââïžð€œðŸð€œðŸââïžð€ŸðŸââïžð€ŸðŸð€ŸðŸââïžð€¹ðŸââïžð€¹ðŸð€¹ðŸââïžð§ðŸââïžð§ðŸð§ðŸââïžððŸððŸðð¿ð€ð¿ðð¿âð¿ðð¿ðð¿ð€ð¿ð€ð¿âð¿ð€ð¿ð«°ð¿ð€ð¿ð€ð¿ð€ð¿ð«µð¿ð«±ð¿ð«²ð¿ð«³ð¿ð«Žð¿ðð¿ðð¿ðð¿ðð¿ðð¿âð¿ðð¿ðð¿âð¿ðð¿ð€ð¿ð€ð¿ðð¿ð«¶ð¿ðð¿ðð¿ð€²ð¿ðð¿âð¿ð
ð¿ð€³ð¿ðªð¿ðŠµð¿ðŠ¶ð¿ðð¿ðŠ»ð¿ðð¿ð¶ð¿ð§ð¿ð§ð¿ðŠð¿ð©ð¿ð§ð¿ðšð¿ð©ð¿âðŠ±ð§ð¿âðŠ±ðšð¿âðŠ±ð©ð¿âðŠ°ð§ð¿âðŠ°ðšð¿âðŠ°ð±ð¿ââïžð±ð¿ð±ð¿ââïžð©ð¿âðŠ³ð§ð¿âðŠ³ðšð¿âðŠ³ð©ð¿âðŠ²ð§ð¿âðŠ²ðšð¿âðŠ²ð§ð¿ââïžð§ð¿ð§ð¿ââïžðµð¿ð§ð¿ðŽð¿ð²ð¿ð³ð¿ââïžð³ð¿ð³ð¿ââïžð§ð¿ð®ð¿ââïžð®ð¿ð®ð¿ââïžð·ð¿ââïžð·ð¿ð·ð¿ââïžðð¿ââïžðð¿ðð¿ââïžðµð¿ââïžðµð¿ðµð¿ââïžð©ð¿ââïžð§ð¿ââïžðšð¿ââïžð©ð¿âðŸð§ð¿âðŸðšð¿âðŸð©ð¿âð³ð§ð¿âð³ðšð¿âð³ð©ð¿âðð§ð¿âððšð¿âðð©ð¿âð€ð§ð¿âð€ðšð¿âð€ð©ð¿âð«ð§ð¿âð«ðšð¿âð«ð©ð¿âðð§ð¿âððšð¿âðð©ð¿âð»ð§ð¿âð»ðšð¿âð»ð©ð¿âðŒð§ð¿âðŒðšð¿âðŒð©ð¿âð§ð§ð¿âð§ðšð¿âð§ð©ð¿âð¬ð§ð¿âð¬ðšð¿âð¬ð©ð¿âðšð§ð¿âðšðšð¿âðšð©ð¿âðð§ð¿âððšð¿âðð©ð¿ââïžð§ð¿ââïžðšð¿ââïžð©ð¿âðð§ð¿âððšð¿âðð©ð¿ââïžð§ð¿ââïžðšð¿ââïžð°ð¿ââïžð°ð¿ð°ð¿ââïžð€µð¿ââïžð€µð¿ð€µð¿ââïžðžð¿ð«
ð¿ð€Žð¿ð¥·ð¿ðŠžð¿ââïžðŠžð¿ðŠžð¿ââïžðŠ¹ð¿ââïžðŠ¹ð¿ðŠ¹ð¿ââïžð€¶ð¿ð§ð¿âðð
ð¿ð§ð¿ââïžð§ð¿ð§ð¿ââïžð§ð¿ââïžð§ð¿ð§ð¿ââïžð§ð¿ââïžð§ð¿ð§ð¿ââïžð§ð¿ââïžð§ð¿ð§ð¿ââïžð§ð¿ââïžð§ð¿ð§ð¿ââïžðŒð¿ð€°ð¿ð«ð¿ð«ð¿ð€±ð¿ð©ð¿âðŒð§ð¿âðŒðšð¿âðŒðð¿ââïžðð¿ðð¿ââïžðð¿ââïžðð¿ðð¿ââïžð
ð¿ââïžð
ð¿ð
ð¿ââïžðð¿ââïžðð¿ðð¿ââïžðð¿ââïžðð¿ðð¿ââïžð§ð¿ââïžð§ð¿ð§ð¿ââïžð€Šð¿ââïžð€Šð¿ð€Šð¿ââïžð€·ð¿ââïžð€·ð¿ð€·ð¿ââïžðð¿ââïžðð¿ðð¿ââïžðð¿ââïžðð¿ðð¿ââïžðð¿ââïžðð¿ðð¿ââïžðð¿ââïžðð¿ðð¿ââïžð§ð¿ââïžð§ð¿ð§ð¿ââïžðð¿ðºð¿ðŽð¿ð©ð¿âðŠœð§ð¿âðŠœðšð¿âðŠœð©ð¿âðŠŒð§ð¿âðŠŒðšð¿âðŠŒð¶ð¿ââïžð¶ð¿ð¶ð¿ââïžð©ð¿âðŠ¯ð§ð¿âðŠ¯ðšð¿âðŠ¯ð§ð¿ââïžð§ð¿ð§ð¿ââïžðð¿ââïžðð¿ðð¿ââïžð§ð¿ââïžð§ð¿ð§ð¿ââïžðð¿ð§ð¿âð€âð§ð¿ð¬ð¿ð«ð¿ð§ð¿ââïžð§ð¿ð§ð¿ââïžðð¿ðð¿ðð¿ââïžðð¿ðð¿ââïžðð¿ââïžðð¿ðð¿ââïžð£ð¿ââïžð£ð¿ð£ð¿ââïžðð¿ââïžðð¿ðð¿ââïžâ¹ð¿ââïžâ¹ð¿â¹ð¿ââïžðð¿ââïžðð¿ðð¿ââïžðŽð¿ââïžðŽð¿ðŽð¿ââïžðµð¿ââïžðµð¿ðµð¿ââïžð€žð¿ââïžð€žð¿ð€žð¿ââïžð€œð¿ââïžð€œð¿ð€œð¿ââïžð€Ÿð¿ââïžð€Ÿð¿ð€Ÿð¿ââïžð€¹ð¿ââïžð€¹ð¿ð€¹ð¿ââïžð§ð¿ââïžð§ð¿ð§ð¿ââïžðð¿ðð¿ð¶ð±ðð¹ð°ðŠð»ðŒð»ââïžðšð¯ðŠð®ð·ðœðžðµðððððð§ðŠð€ð£ð¥ðŠðŠ
ðŠðŠðºððŽðŠððª±ððŠððððª°ðª²ðª³ðŠðŠð·ðžðŠð¢ððŠðŠðŠððŠðŠðŠðŠðªžð¡ð ðð¬ð³ððŠðð
ððŠðŠðŠ§ðŠ£ððŠðŠðªð«ðŠðŠðŠ¬ððððððððŠððŠðð©ðŠ®ðâðŠºððââ¬ðª¶ððŠðŠ€ðŠðŠðŠ¢ðŠ©ðððŠðŠšðŠ¡ðŠ«ðŠŠðŠ¥ððð¿ðŠðŸðð²ðµðð²ð³ðŽðª¹ðªºðªµð±ð¿âïžðððªŽðððððððªšðŸðð·ðª·ð¹ð¥ðºðžðŒð»ððððððððððððððððððªð«âïžðâšâ¡ïžâïžð¥ð¥ðªðâïžð€â
ïžð¥âïžðŠð§âð©ðšâïžâïžâïžð¬ðšð§ðŠð«§âïžâïžðð«ðððððððððð«ðððð¥ðð¥¥ð¥ð
ðð¥ð¥Šð¥¬ð¥ð¶ð«ðœð¥ð«ð§ð§
ð¥ð ð«ð¥ð¥¯ðð¥ð¥šð§ð¥ð³ð§ð¥ð§ð¥ð¥©ðððŠŽððððð«ð¥ªð¥ð§ð®ð¯ð«ð¥ð¥ð«ð¥«ððð²ðð£ð±ð¥ðŠªð€ðððð¥ð¥ ð¥®ð¢ð¡ð§ðšðŠð¥§ð§ð°ðð®ðð¬ð«ð¿ð©ðªð°ð¥ð¯ð¥ðŒð«âïžðµð§ð¥€ð§ð«ð¶ðºð»ð¥ð·ð«ð¥ðžð¹ð§ðŸð§ð¥ðŽðœð¥£ð¥¡ð¥¢ð§âœïžððâŸïžð¥ðŸððð¥ð±ðªððžððð¥ððªð¥
â³ïžðªð¹ð£ð€¿ð¥ð¥ðœð¹ðŒð·âžð¥ð¿â·ððªðïžââïžðïžðïžââïžð€Œââïžð€Œð€Œââïžð€žââïžð€žð€žââïžâ¹ïžââïžâ¹ïžâ¹ïžââïžð€ºð€Ÿââïžð€Ÿð€Ÿââïžðïžââïžðïžðïžââïžðð§ââïžð§ð§ââïžðââïžððââïžðââïžððââïžð€œââïžð€œð€œââïžð£ââïžð£ð£ââïžð§ââïžð§ð§ââïžðµââïžðµðµââïžðŽââïžðŽðŽââïžðð¥ð¥ð¥ð
ððµðð«ððªð€¹ð€¹ââïžð€¹ââïžðð©°ðšð¬ð€ð§ðŒð¹ð¥ðªð·ðºðªðžðªð»ð²âð¯ð³ð®ð°ð§©ððððððððððð»ððððŠ¯ðŠœðŠŒðŽð²ðµððºðšðððððð¡ð ððððððð
ððððððâïžð«ð¬ð©ðºð°ððžðð¶âµïžð€ð¥ð³âŽð¢âïžððªâœïžð§ðŠð¥ððºð¿ðœðŒð°ð¯ðð¡ð¢ðð â²ïžâ±ððððâ°ðð»ðâºïžðð ð¡ððððð¢ð¬ð£ð€ð¥ðŠðšðªð«ð©ððâªïžððððâ©ð€ð£ðŸððð
ðð ðððððððððâïžð±ð²ð»âšïžð¥ðšð±ð²ð¹ððœðŸð¿ððŒð·ðžð¹ð¥ðœððâïžðð ðºð»ðððð§â±â²â°ð°âïžâ³ð¡ððª«ðð¡ðŠð¯ðªð§¯ð¢ðžðµðŽð¶ð·ðªð°ð³ðâïžðªð§°ðªð§ðšâð âðªð©âïžðª€ð§±âð§²ð«ð£ð§šðªðªð¡âïžð¡ð¬â°ïžðªŠâ±ïžðºð®ð¿ð§¿ðª¬ðâïžðð¬ð³ð©¹ð©ºð©»ð©Œððð©žð§¬ðŠ ð§«ð§ªð¡ð§¹ðª ð§ºð§»ðœð°ð¿ððð§Œðª¥ðªð§œðª£ð§Žððððªðªðððð§žðªðŒðªðªðððððððªðª
ðððª©ðð®ðð§§âïžð©ðšð§ðð¥ð€ðŠð·ðª§ðªð«ð¬ðð®ð¯ððððð§Ÿððððððð
ððªªððð³ððððððð°ððððððððððð§·ðððððð§®ððâïžððâïžðððâïžððððððâ€ïžð§¡ððððð€ð€ð€â€ïžâð¥â€ïžâð©¹ðâ£ïžððððððððâ®ïžâïžâªïžðâžïžâ¡ïžð¯ðâ¯ïžâŠïžðââïžâïžâïžâïžâïžâïžâïžâïžâïžâïžâïžâïžðâïžðâ¢ïžâ£ïžðŽð³ð¶ðïžðžðºð·ïžâŽïžðð®ðãïžãïžðŽðµð¹ð²ð
°ïžð
±ïžððð
Ÿïžðââïžðâïžðð«ð¯ð¢âšïžð·ð¯ð³ð±ððµðâïžââââŒïžâïžð
ðãœïžâ ïžðžð±âïžð°â»ïžâ
ð¯ïžð¹âïžâ³ïžâðð âïžðð€ð§ðŸâ¿ïžð
¿ïžðð³ðïžðððð
ð¹ðºðŒâ§ð»ð®ðŠð¶ðð£â¹ïžð€ð¡ð ðððððð0ïžâ£1ïžâ£2ïžâ£3ïžâ£4ïžâ£5ïžâ£6ïžâ£7ïžâ£8ïžâ£9ïžâ£ðð¢#ïžâ£*ïžâ£âïžâ¶ïžâžâ¯â¹âºââ®â©âªâ«â¬âïžðŒðœâ¡ïžâ¬
ïžâ¬ïžâ¬ïžâïžâïžâïžâïžâïžâïžâªïžâ©ïžâ€Žïžâ€µïžððððððµð¶ââââïžð°âŸð²ð±â¢ïžÂ©ïžÂ®ïžã°ïžâ°â¿ðððððâïžâïžððŽð ð¡ð¢ðµð£â«ïžâªïžð€ðºð»ðžð¹ð¶ð·ð³ð²âªïžâ«ïžâŸïžâœïžâŒïžâ»ïžð¥ð§ðšð©ðŠðªâ¬ïžâ¬ïžð«ððððððð£ð¢ðâðšð¬ðð¯â ïžâ£ïžâ¥ïžâŠïžððŽðïžððððððððððððððððð ð¡ð¢ð£ð€ð¥ðŠð§â¢â£â€â¥âŠâ§â
ââ¯â¡ïžâ©âªâ«â¬ââ®â¶â·âµâžâ¹âââ¹âšâŸâŸâ¢âââââââââ ïžâ£ïžâ¥ïžâŠïžâ€â§â¡â¢ââââââââââââââââââ
ð ââââðððððð
ððððððððððððððððððððððððð³ïžðŽðð©ð³ïžâðð³ïžââ§ïžðŽââ ïžðŠð«ðŠðœðŠð±ð©ð¿ðŠðžðŠð©ðŠðŽðŠð®ðŠð¶ðŠð¬ðŠð·ðŠð²ðŠðŒðŠðºðŠð¹ðŠð¿ð§ðžð§ðð§ð©ð§ð§ð§ðŸð§ðªð§ð¿ð§ð¯ð§ð²ð§ð¹ð§ðŽð§ðŠð§ðŒð§ð·ð®ðŽð»ð¬ð§ð³ð§ð¬ð§ð«ð§ð®ð°ððšð²ðšðŠð®ðšðšð»ð§ð¶ð°ðŸðšð«ð¹ð©ðšð±ðšð³ðšðœðšðšðšðŽð°ð²ðšð¬ðšð©ðšð°ðšð·ðšð®ðð·ðšðºðšðŒðšðŸðšð¿ð©ð°ð©ð¯ð©ð²ð©ðŽðªðšðªð¬ðžð»ð¬ð¶ðªð·ðªðªðªð¹ðªðºð«ð°ð«ðŽð«ð¯ð«ð®ð«ð·ð¬ð«ðµð«ð¹ð«ð¬ðŠð¬ð²ð¬ðªð©ðªð¬ðð¬ð®ð¬ð·ð¬ð±ð¬ð©ð¬ðµð¬ðºð¬ð¹ð¬ð¬ð¬ð³ð¬ðŒð¬ðŸðð¹ðð³ðð°ððºð®ðžð®ð³ð®ð©ð®ð·ð®ð¶ð®ðªð®ð²ð®ð±ð®ð¹ð¯ð²ð¯ðµðð¯ðªð¯ðŽð°ð¿ð°ðªð°ð®ðœð°ð°ðŒð°ð¬ð±ðŠð±ð»ð±ð§ð±ðžð±ð·ð±ðŸð±ð®ð±ð¹ð±ðºð²ðŽð²ð°ð²ð¬ð²ðŒð²ðŸð²ð»ð²ð±ð²ð¹ð²ðð²ð¶ð²ð·ð²ðºðŸð¹ð²ðœð«ð²ð²ð©ð²ðšð²ð³ð²ðªð²ðžð²ðŠð²ð¿ð²ð²ð³ðŠð³ð·ð³ðµð³ð±ð³ðšð³ð¿ð³ð®ð³ðªð³ð¬ð³ðºð³ð«ð°ðµð²ðµð³ðŽðŽð²ðµð°ðµðŒðµðžðµðŠðµð¬ðµðŸðµðªðµððµð³ðµð±ðµð¹ðµð·ð¶ðŠð·ðªð·ðŽð·ðºð·ðŒðŒðžðžð²ðžðŠðžð³ð·ðžðžðšðžð±ðžð¬ðžðœðžð°ðžð®ð¬ðžðžð§ðžðŽð¿ðŠð°ð·ðžðžðªðžð±ð°ð§ð±ðžðð°ð³ð±ðšðµð²ð»ðšðžð©ðžð·ðžð¿ðžðªðšððžðŸð¹ðŒð¹ð¯ð¹ð¿ð¹ðð¹ð±ð¹ð¬ð¹ð°ð¹ðŽð¹ð¹ð¹ð³ð¹ð·ð¹ð²ð¹ðšð¹ð»ð»ð®ðºð¬ðºðŠðŠðªð¬ð§ðŽó §ó ¢ó ¥ó ®ó §ó ¿ðŽó §ó ¢ó ³ó £ó Žó ¿ðŽó §ó ¢ó ·ó ¬ó ³ó ¿ðºð³ðºðžðºðŸðºð¿ð»ðºð»ðŠð»ðªð»ð³ðŒð«ðªððŸðªð¿ð²ð¿ðŒððð»ð»ðð¹ð·âœïžððð¡ððð£ðð³ïžâðð« ð«¢ð«£ð«¡ð«¥ð«€ð¥¹ð«±ð«±ð»ð«±ðŒð«±ðœð«±ðŸð«±ð¿ð«²ð«²ð»ð«²ðŒð«²ðœð«²ðŸð«²ð¿ð«³ð«³ð»ð«³ðŒð«³ðœð«³ðŸð«³ð¿ð«Žð«Žð»ð«ŽðŒð«Žðœð«ŽðŸð«Žð¿ð«°ð«°ð»ð«°ðŒð«°ðœð«°ðŸð«°ð¿ð«µð«µð»ð«µðŒð«µðœð«µðŸð«µð¿ð«¶ð«¶ð»ð«¶ðŒð«¶ðœð«¶ðŸð«¶ð¿ð€ð»ð€ðŒð€ðœð€ðŸð€ð¿ð«±ð»âð«²ðŒð«±ð»âð«²ðœð«±ð»âð«²ðŸð«±ð»âð«²ð¿ð«±ðŒâð«²ð»ð«±ðŒâð«²ðœð«±ðŒâð«²ðŸð«±ðŒâð«²ð¿ð«±ðœâð«²ð»ð«±ðœâð«²ðŒð«±ðœâð«²ðŸð«±ðœâð«²ð¿ð«±ðŸâð«²ð»ð«±ðŸâð«²ðŒð«±ðŸâð«²ðœð«±ðŸâð«²ð¿ð«±ð¿âð«²ð»ð«±ð¿âð«²ðŒð«±ð¿âð«²ðœð«±ð¿âð«²ðŸð«Šð«
ð«
ð»ð«
ðŒð«
ðœð«
ðŸð«
ð¿ð«ð«ð»ð«ðŒð«ðœð«ðŸð«ð¿ð«ð«ð»ð«ðŒð«ðœð«ðŸð«ð¿ð§ðªžðª·ðª¹ðªºð«ð«ð«ððððª¬ðª©ðª«ð©Œð©»ð«§ðªªð°ð®âðšðµâð«ð¶âð«ïžâ€ïžâð¥â€ïžâð©¹ð§ââïžð§ð»ââïžð§ðŒââïžð§ðœââïžð§ðŸââïžð§ð¿ââïžð§ââïžð§ð»ââïžð§ðŒââïžð§ðœââïžð§ðŸââïžð§ð¿ââïžðð»ððŒððœððŸðð¿ðð»ððŒððœððŸðð¿ðšð»ââ€ïžâðšð»ðšð»ââ€ïžâðšðŒðšð»ââ€ïžâðšðœðšð»ââ€ïžâðšðŸðšð»ââ€ïžâðšð¿ðšðŒââ€ïžâðšð»ðšðŒââ€ïžâðšðŒðšðŒââ€ïžâðšðœðšðŒââ€ïžâðšðŸðšðŒââ€ïžâðšð¿ðšðœââ€ïžâðšð»ðšðœââ€ïžâðšðŒðšðœââ€ïžâðšðœðšðœââ€ïžâðšðŸðšðœââ€ïžâðšð¿ðšðŸââ€ïžâðšð»ðšðŸââ€ïžâðšðŒðšðŸââ€ïžâðšðœðšðŸââ€ïžâðšðŸðšðŸââ€ïžâðšð¿ðšð¿ââ€ïžâðšð»ðšð¿ââ€ïžâðšðŒðšð¿ââ€ïžâðšðœðšð¿ââ€ïžâðšðŸðšð¿ââ€ïžâðšð¿ð©ð»ââ€ïžâðšð»ð©ð»ââ€ïžâðšðŒð©ð»ââ€ïžâðšðœð©ð»ââ€ïžâðšðŸð©ð»ââ€ïžâðšð¿ð©ð»ââ€ïžâð©ð»ð©ð»ââ€ïžâð©ðŒð©ð»ââ€ïžâð©ðœð©ð»ââ€ïžâð©ðŸð©ð»ââ€ïžâð©ð¿ð©ðŒââ€ïžâðšð»ð©ðŒââ€ïžâðšðŒð©ðŒââ€ïžâðšðœð©ðŒââ€ïžâðšðŸð©ðŒââ€ïžâðšð¿ð©ðŒââ€ïžâð©ð»ð©ðŒââ€ïžâð©ðŒð©ðŒââ€ïžâð©ðœð©ðŒââ€ïžâð©ðŸð©ðŒââ€ïžâð©ð¿ð©ðœââ€ïžâðšð»ð©ðœââ€ïžâðšðŒð©ðœââ€ïžâðšðœð©ðœââ€ïžâðšðŸð©ðœââ€ïžâðšð¿ð©ðœââ€ïžâð©ð»ð©ðœââ€ïžâð©ðŒð©ðœââ€ïžâð©ðœð©ðœââ€ïžâð©ðŸð©ðœââ€ïžâð©ð¿ð©ðŸââ€ïžâðšð»ð©ðŸââ€ïžâðšðŒð©ðŸââ€ïžâðšðœð©ðŸââ€ïžâðšðŸð©ðŸââ€ïžâðšð¿ð©ðŸââ€ïžâð©ð»ð©ðŸââ€ïžâð©ðŒð©ðŸââ€ïžâð©ðœð©ðŸââ€ïžâð©ðŸð©ðŸââ€ïžâð©ð¿ð©ð¿ââ€ïžâðšð»ð©ð¿ââ€ïžâðšðŒð©ð¿ââ€ïžâðšðœð©ð¿ââ€ïžâðšðŸð©ð¿ââ€ïžâðšð¿ð©ð¿ââ€ïžâð©ð»ð©ð¿ââ€ïžâð©ðŒð©ð¿ââ€ïžâð©ðœð©ð¿ââ€ïžâð©ðŸð©ð¿ââ€ïžâð©ð¿ð§ð»ââ€ïžâð§ðŒð§ð»ââ€ïžâð§ðœð§ð»ââ€ïžâð§ðŸð§ð»ââ€ïžâð§ð¿ð§ðŒââ€ïžâð§ð»ð§ðŒââ€ïžâð§ðœð§ðŒââ€ïžâð§ðŸð§ðŒââ€ïžâð§ð¿ð§ðœââ€ïžâð§ð»ð§ðœââ€ïžâð§ðŒð§ðœââ€ïžâð§ðŸð§ðœââ€ïžâð§ð¿ð§ðŸââ€ïžâð§ð»ð§ðŸââ€ïžâð§ðŒð§ðŸââ€ïžâð§ðœð§ðŸââ€ïžâð§ð¿ð§ð¿ââ€ïžâð§ð»ð§ð¿ââ€ïžâð§ðŒð§ð¿ââ€ïžâð§ðœð§ð¿ââ€ïžâð§ðŸðšð»ââ€ïžâðâðšð»ðšð»ââ€ïžâðâðšðŒðšð»ââ€ïžâðâðšðœðšð»ââ€ïžâðâðšðŸðšð»ââ€ïžâðâðšð¿ðšðŒââ€ïžâðâðšð»ðšðŒââ€ïžâðâðšðŒðšðŒââ€ïžâðâðšðœðšðŒââ€ïžâðâðšðŸðšðŒââ€ïžâðâðšð¿ðšðœââ€ïžâðâðšð»ðšðœââ€ïžâðâðšðŒðšðœââ€ïžâðâðšðœðšðœââ€ïžâðâðšðŸðšðœââ€ïžâðâðšð¿ðšðŸââ€ïžâðâðšð»ðšðŸââ€ïžâðâðšðŒðšðŸââ€ïžâðâðšðœðšðŸââ€ïžâðâðšðŸðšðŸââ€ïžâðâðšð¿ðšð¿ââ€ïžâðâðšð»ðšð¿ââ€ïžâðâðšðŒðšð¿ââ€ïžâðâðšðœðšð¿ââ€ïžâðâðšðŸðšð¿ââ€ïžâðâðšð¿ð©ð»ââ€ïžâðâðšð»ð©ð»ââ€ïžâðâðšðŒð©ð»ââ€ïžâðâðšðœð©ð»ââ€ïžâðâðšðŸð©ð»ââ€ïžâðâðšð¿ð©ð»ââ€ïžâðâð©ð»ð©ð»ââ€ïžâðâð©ðŒð©ð»ââ€ïžâðâð©ðœð©ð»ââ€ïžâðâð©ðŸð©ð»ââ€ïžâðâð©ð¿ð©ðŒââ€ïžâðâðšð»ð©ðŒââ€ïžâðâðšðŒð©ðŒââ€ïžâðâðšðœð©ðŒââ€ïžâðâðšðŸð©ðŒââ€ïžâðâðšð¿ð©ðŒââ€ïžâðâð©ð»ð©ðŒââ€ïžâðâð©ðŒð©ðŒââ€ïžâðâð©ðœð©ðŒââ€ïžâðâð©ðŸð©ðŒââ€ïžâðâð©ð¿ð©ðœââ€ïžâðâðšð»ð©ðœââ€ïžâðâðšðŒð©ðœââ€ïžâðâðšðœð©ðœââ€ïžâðâðšðŸð©ðœââ€ïžâðâðšð¿ð©ðœââ€ïžâðâð©ð»ð©ðœââ€ïžâðâð©ðŒð©ðœââ€ïžâðâð©ðœð©ðœââ€ïžâðâð©ðŸð©ðœââ€ïžâðâð©ð¿ð©ðŸââ€ïžâðâðšð»ð©ðŸââ€ïžâðâðšðŒð©ðŸââ€ïžâðâðšðœð©ðŸââ€ïžâðâðšðŸð©ðŸââ€ïžâðâðšð¿ð©ðŸââ€ïžâðâð©ð»ð©ðŸââ€ïžâðâð©ðŒð©ðŸââ€ïžâðâð©ðœð©ðŸââ€ïžâðâð©ðŸð©ðŸââ€ïžâðâð©ð¿ð©ð¿ââ€ïžâðâðšð»ð©ð¿ââ€ïžâðâðšðŒð©ð¿ââ€ïžâðâðšðœð©ð¿ââ€ïžâðâðšðŸð©ð¿ââ€ïžâðâðšð¿ð©ð¿ââ€ïžâðâð©ð»ð©ð¿ââ€ïžâðâð©ðŒð©ð¿ââ€ïžâðâð©ðœð©ð¿ââ€ïžâðâð©ðŸð©ð¿ââ€ïžâðâð©ð¿ð§ð»ââ€ïžâðâð§ðŒð§ð»ââ€ïžâðâð§ðœð§ð»ââ€ïžâðâð§ðŸð§ð»ââ€ïžâðâð§ð¿ð§ðŒââ€ïžâðâð§ð»ð§ðŒââ€ïžâðâð§ðœð§ðŒââ€ïžâðâð§ðŸð§ðŒââ€ïžâðâð§ð¿ð§ðœââ€ïžâðâð§ð»ð§ðœââ€ïžâðâð§ðŒð§ðœââ€ïžâðâð§ðŸð§ðœââ€ïžâðâð§ð¿ð§ðŸââ€ïžâðâð§ð»ð§ðŸââ€ïžâðâð§ðŒð§ðŸââ€ïžâðâð§ðœð§ðŸââ€ïžâðâð§ð¿ð§ð¿ââ€ïžâðâð§ð»ð§ð¿ââ€ïžâðâð§ðŒð§ð¿ââ€ïžâðâð§ðœð§ð¿ââ€ïžâðâð§ðŸ
|
||
if [ $? -eq 0 ]
|
||
then
|
||
printf "\e[1;32mAll Emoticon test OK\e[0;00m\n"
|
||
else
|
||
printf "\e[1;31mwrong return value with emoticon test\e[0;00m\n"
|
||
FAULTS=$(($FAULTS+1))
|
||
fi
|
||
sleep $SLEEP
|
||
|
||
# Congratulations
|
||
|
||
if [ $FAULTS -eq 0 ]
|
||
then
|
||
printf "There are no problems with the error codes\nDouble check the output in the server terminal\nFor the bonus check emojis and the following confirmation message\n"
|
||
./client $SERVER "Congratulationsð"
|
||
printf "\e[1;32mAlso kudos if the whole test finished within 30 seconds\e[0;00m\n"
|
||
else
|
||
printf "\e[1;31mwe got $FAULTS faulty error codes\nSo that's a bummer\e[0;00m\n"
|
||
exit 1
|
||
fi
|
||
exit 0
|