this doesn't work lol
commit
4bab6f1fa6
|
@ -0,0 +1,2 @@
|
||||||
|
# Skyscraper Parser
|
||||||
|
Simple python parser for getting skyscraper problems from the Caribou context website into a format which can be used in machine learning tasks
|
|
@ -0,0 +1,63 @@
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
import subprocess
|
||||||
|
from selenium import webdriver
|
||||||
|
from requests_html import HTMLSession
|
||||||
|
# from seleniumrequests import Firefox
|
||||||
|
import time
|
||||||
|
|
||||||
|
URL = "https://cariboutests.com/games/skyscrapers.php"
|
||||||
|
|
||||||
|
|
||||||
|
def process_header_tr(tr):
|
||||||
|
for td in tr.find_all('td')[1:-1]:
|
||||||
|
print (f"header number: {td.div.span.text}")
|
||||||
|
|
||||||
|
def process_middle_tr(tr):
|
||||||
|
tds = tr.find_all('td')
|
||||||
|
left = tds[0].div.span.text
|
||||||
|
right = tds[-1].div.span.text
|
||||||
|
print (f"left: {left}, right: {right}")
|
||||||
|
|
||||||
|
def process_page(source):
|
||||||
|
soup = BeautifulSoup(source, 'html.parser')
|
||||||
|
problem = soup.find(id='sky')
|
||||||
|
table = problem.table.tbody
|
||||||
|
trs = table.find_all('tr')
|
||||||
|
for index,tr in enumerate(trs):
|
||||||
|
if index == 0:
|
||||||
|
process_header_tr(tr)
|
||||||
|
elif index == len(trs)-1:
|
||||||
|
process_header_tr(tr)
|
||||||
|
else:
|
||||||
|
process_middle_tr(tr)
|
||||||
|
|
||||||
|
def download_page():
|
||||||
|
subprocess.run(["curl", "-X", "POST", "--user-agent", "Mozilla/5.0 (X11; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0", "-d", "board_size: 8", "-o", "skyscrapers.php", URL])
|
||||||
|
with open("skyscrapers.php", "r+") as file:
|
||||||
|
content = file.read()
|
||||||
|
# subprocess.run(["rm", "skyscrapers.php"])
|
||||||
|
print(content)
|
||||||
|
return content
|
||||||
|
# options = webdriver.ChromeOptions()
|
||||||
|
# options.add_argument('--headless')
|
||||||
|
# driver = webdriver.Chrome(options=options)
|
||||||
|
|
||||||
|
# session = HTMLSession()
|
||||||
|
# r = session.post(url=URL, data={"board_size": "6"}, headers={"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0"})
|
||||||
|
# r.html.render()
|
||||||
|
# print(r.html.find(id='sky'))
|
||||||
|
# print(r.text)
|
||||||
|
|
||||||
|
# print(driver.page_source)
|
||||||
|
|
||||||
|
# post(driver, "6")
|
||||||
|
# driver.get(URL)
|
||||||
|
|
||||||
|
# src = driver.page_source
|
||||||
|
# print(src)
|
||||||
|
# driver.quit()
|
||||||
|
|
||||||
|
# return r.text
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
process_page(download_page())
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,565 @@
|
||||||
|
/usr/bin/python3.11 /home/brett/Documents/code/python/skyscraper_parser/parser.py
|
||||||
|
[INFO] Starting Chromium download.
|
||||||
|
100%|██████████| 183M/183M [00:23<00:00, 7.65Mb/s]
|
||||||
|
[INFO] Beginning extraction
|
||||||
|
[INFO] Chromium extracted to: /home/brett/.local/share/pyppeteer/local-chromium/1181205
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/home/brett/Documents/code/python/skyscraper_parser/parser.py", line 55, in <module>
|
||||||
|
process_page(download_page())
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
File "/home/brett/Documents/code/python/skyscraper_parser/parser.py", line 48, in download_page
|
||||||
|
src = driver.page_source
|
||||||
|
^^^^^^
|
||||||
|
NameError: name 'driver' is not defined. Did you mean: 'webdriver'?
|
||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
|
||||||
|
<meta property="og:site_name" content="Caribou Contests"/>
|
||||||
|
<meta property="og:url" content="https://cariboutests.com/"/>
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<!-- todo: update later -->
|
||||||
|
<meta name="google-site-verification" content="x2OjRaNkay-9i5riotU6BeVCG8kWHbo6qMmgYMat6WY" />
|
||||||
|
<!-- Google tag (gtag.js) -->
|
||||||
|
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-252381798-1"></script>
|
||||||
|
<script>
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
|
function gtag(){dataLayer.push(arguments);}
|
||||||
|
gtag('js', new Date());
|
||||||
|
gtag('config', 'UA-252381798-1');
|
||||||
|
</script>
|
||||||
|
<!-- Google tag (gtag.js) -->
|
||||||
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-RJSN5NPMLF"></script>
|
||||||
|
<script>
|
||||||
|
window.dataLayer = window.dataLayer || [];
|
||||||
|
function gtag(){dataLayer.push(arguments);}
|
||||||
|
gtag('js', new Date());
|
||||||
|
gtag('config', 'G-RJSN5NPMLF');
|
||||||
|
</script>
|
||||||
|
<meta property="og:image" content="http://cariboutests.com/images/header.png"/>
|
||||||
|
<meta property="og:description" content="Math games, puzzles, practice tests and worldwide challenges."/>
|
||||||
|
<style>
|
||||||
|
#contest {
|
||||||
|
font-size: 20px !important;
|
||||||
|
line-height: 18px !important;
|
||||||
|
text-align: center !important;
|
||||||
|
padding-right: 0px !important;
|
||||||
|
padding-left: 0px !important;
|
||||||
|
color: #ff0000;
|
||||||
|
background-color: transparent !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php" hreflang="x-default" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=en" hreflang="en" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=fr" hreflang="fr" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=pr" hreflang="pr" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=cn" hreflang="cn" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=uk" hreflang="uk" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=az" hreflang="az" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=kh" hreflang="kh" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=vi" hreflang="vi" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=ms" hreflang="ms" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=tr" hreflang="tr" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=de" hreflang="de" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=es" hreflang="es" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=uz" hreflang="uz" />
|
||||||
|
<link rel="alternate" href="https://cariboutests.com/games/skyscrapers.php?lang=ru" hreflang="ru" />
|
||||||
|
<head>
|
||||||
|
<meta property="og:title" content="Skyscrapers ©"/>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<title>Skyscrapers ©</title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
|
||||||
|
<!-- Preload: Russell S., 2023 -->
|
||||||
|
<link rel="preload" href="/includes/css/jameel-noori-nastaleeq-regular/JameelNooriNastaleeq.woff2" as="font" type="font/woff2" crossorigin />
|
||||||
|
<link rel="preload" href="/includes/css/b-koodak-cufonfonts-webfont/B Koodak Bold_0.woff" as="font" type="font/woff" crossorigin />
|
||||||
|
<link rel="preload" href="/images/logo/header_en.svg" as="image" type="image/svg+xml" />
|
||||||
|
<link rel="preload" href="/images/logo/logo_en.svg" as="image" type="image/svg+xml" />
|
||||||
|
<link rel="preload" href="/images/circle-flags/flags/CA.svg" as="image" type="image/svg+xml" />
|
||||||
|
<link rel="stylesheet" href="/includes/css/jquery-ui.min.css" type='text/css'/>
|
||||||
|
<link rel="stylesheet" href="/includes/css/bootstrap.min.css" type='text/css'/>
|
||||||
|
<link rel="stylesheet" href="/includes/css/style.css" type='text/css'/>
|
||||||
|
<link rel="stylesheet" href="/includes/css/fonts/raleway.min.css" type='text/css'/>
|
||||||
|
<link rel='stylesheet' href="/includes/css/bootnavbar.min.css" type='text/css'/>
|
||||||
|
<link rel='shortcut icon' href="/images/favicon.ico">
|
||||||
|
<link rel="stylesheet" href="/includes/fontawesome/css/font-awesome.min.css" type='text/css'/>
|
||||||
|
<link rel='stylesheet' href="/includes/css/page_loader.min.css" type='text/css'/>
|
||||||
|
<script type='text/javascript' src="/includes/js/jquery-3.5.1.min.js"></script>
|
||||||
|
<script type='text/javascript' src="/includes/js/jquery.maskedinput.min.js"></script>
|
||||||
|
<script>window.lang = "en";</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<a name="top"></a>
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="top">
|
||||||
|
<div class="header">
|
||||||
|
<div id="flag" class="d-none d-lg-block">
|
||||||
|
<img src="/images/circle-flags/flags/CA.svg" alt="Flag" height="300px">
|
||||||
|
<div id='gradient'></div>
|
||||||
|
</div>
|
||||||
|
<div id="status">
|
||||||
|
<div id="message"></div> <div class="float-right">
|
||||||
|
<div style="position: absolute; top: 40px;">
|
||||||
|
<div id="contest"></div>
|
||||||
|
<div id="timer" style="float: right;"></div>
|
||||||
|
<div id="header-start-the-contest" style="float: right; display: none;">
|
||||||
|
<a class='start-the-contest' href="/test/">
|
||||||
|
Start the Contest </a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div> <!-- end #status -->
|
||||||
|
<div id="logo">
|
||||||
|
<a href=/>
|
||||||
|
<img class="d-none d-lg-block"
|
||||||
|
src='/images/logo/header_en.svg'
|
||||||
|
alt='Caribou Contests'
|
||||||
|
height='140' />
|
||||||
|
<img class="d-block d-lg-none"
|
||||||
|
src='/images/logo/logo_en.svg'
|
||||||
|
alt='Caribou Contests'
|
||||||
|
width='140' height='140' />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<style> @media (max-width: 512px){.header #logo {
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
.header #status{
|
||||||
|
z-index: 1;
|
||||||
|
}</style> </div>
|
||||||
|
<!-- We are not currently using this, but this displays the google translate bar.
|
||||||
|
<div id="bar">
|
||||||
|
<div id="google_translate_element"></div><script type="text/javascript">
|
||||||
|
function googleTranslateElementInit() {
|
||||||
|
new google.translate.TranslateElement({pageLanguage: "en", layout: google.translate.TranslateElement.InlineLayout.HORIZONTAL}, "google_translate_element");
|
||||||
|
}
|
||||||
|
</script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
</div><!-- end .top -->
|
||||||
|
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-dark" id="bootnavbar">
|
||||||
|
|
||||||
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Menu">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="d-none col-10 row"> <!-- for the options that show up to the right of the menu toggler in mobile (currently not showing) -->
|
||||||
|
|
||||||
|
<div class="nav-item dropdown col">
|
||||||
|
<a class='notranslate nav-link active no_decoration' href='/sign_in.php'>Sign In</a></li> </div>
|
||||||
|
|
||||||
|
<div class="nav-item dropdown col" id='help'>
|
||||||
|
<a class='nav-link active dropdown-toggle no_decoration' role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=/faq.php >?</a>
|
||||||
|
<ul class="dropdown-menu" style="z-index:2005"> <!-- z-index is ridicuously high because we need to be on top of everything else
|
||||||
|
Bootstrap z-indexes can be found here: https://getbootstrap.com/docs/4.3/layout/overview/#z-index
|
||||||
|
-->
|
||||||
|
<a class='dropdown-item no_decoration' href=/chatbot/help_caribot.php?redirect=games%2Fskyscrapers.php>Live Help</a><a class='dropdown-item no_decoration' href=/faq.php?node=80%7CHelp%20Tree%20%20%E2%86%92%20Contact%20Information>Contact Us</a><a class='dropdown-item no_decoration' href=/faq.php>Help / FAQ</a> </ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="nav-item col">
|
||||||
|
<a class='notranslate nav-link active no_decoration' href=/faq.php>
|
||||||
|
Contact Us </a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="collapse navbar-collapse justify-content-center flex-wrap" id="navbarCollapse">
|
||||||
|
<ul class="navbar-nav">
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link active dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=/>
|
||||||
|
Home </a>
|
||||||
|
<ul class="dropdown-menu" style="z-index:2005">
|
||||||
|
<a class='dropdown-item no_decoration' href=/>Homepage</a><a class='dropdown-item no_decoration' href=/public/about.php>About Caribou</a><a class='dropdown-item no_decoration' href=/index.php#news>News</a><a class='dropdown-item no_decoration' href=/posters.php>Posters</a><a class='dropdown-item no_decoration' href=/gallery.php>Gallery</a><li class="dropdown"><a class="dropdown-item dropdown dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=#>Social Media</a><ul class='dropdown-menu scrollable-menu' style='z-index:5'><a class='dropdown-item no_decoration' href="https://www.youtube.com/channel/UCe9dU5vJ41RDq249eUo004Q">YouTube</a><a class='dropdown-item no_decoration' href="https://www.dailymotion.com/CaribouContest">Dailymotion</a><a class='dropdown-item no_decoration' href=https://twitter.com/CaribouTests>Twitter</a><a class='dropdown-item no_decoration' href=https://www.facebook.com/cariboucontests>Facebook</a><a class='dropdown-item no_decoration' href=https://www.instagram.com/cariboucontests>Instagram</a></ul></li><a class='dropdown-item no_decoration' href=/public/Security_Bounty.php>Report a Security Weakness</a> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link active dropdown-toggle no_decoration" role="button" data-toggle="dropdown" data-hover="dropdown" aria-haspopup="true" aria-expanded="false" href=/public/participate.php>
|
||||||
|
Contests </a>
|
||||||
|
|
||||||
|
<ul class="dropdown-menu" style="z-index:2005"> <!-- shorten all submenus with scrollable-menu class -->
|
||||||
|
<a class='dropdown-item no_decoration' href=/test/>Start the Contest</a><a class='dropdown-item no_decoration' href=/public/register.php>Register</a><a class='dropdown-item no_decoration' href=/public/participate.php>Caribou Cup Participation</a><a class='dropdown-item no_decoration' href=/public/subject-challenges.php>Subject Challenge Participation</a><a class='dropdown-item no_decoration' href=/public/participate.php#upcoming>Contest Dates</a><a class='dropdown-item no_decoration' href=/public/contest_rules.php>Contest Rules</a><a class='dropdown-item no_decoration' href=/judge>Coding Contests</a><a class='dropdown-item no_decoration' href=/public/prizes.php>Prizes</a><a class='dropdown-item no_decoration' href=/registered_schools.php>Participating Schools</a> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link active dropdown-toggle no_decoration" role="button" data-toggle="dropdown" data-hover="dropdown" aria-haspopup="true" aria-expanded="false" href=/payments/test_shop.php style="white-space: normal">
|
||||||
|
Shop </a>
|
||||||
|
|
||||||
|
<ul class="dropdown-menu" style="z-index:2005">
|
||||||
|
<a class='dropdown-item no_decoration' href=/public/Product_Overview.php>Products & Prices</a><a class='dropdown-item no_decoration' href=/payments/test_shop.php>Make a Purchase</a><a class='dropdown-item no_decoration' href=/public/vouchers.php>Vouchers</a> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link active dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=/test/practice_test_login.php style="white-space: normal">
|
||||||
|
Prepare </a>
|
||||||
|
<ul class="dropdown-menu" style="z-index:2005">
|
||||||
|
<li class="dropdown"><a class="dropdown-item dropdown dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=#>Games</a><ul class='dropdown-menu scrollable-menu' style='z-index:5'><a class='dropdown-item no_decoration' href=/games/>All Games</a><a class='dropdown-item no_decoration' href=/games/2048.php>2048 ©</a><a class='dropdown-item no_decoration' href=/games/bomb_defuser.php>Bomb Defuser ©</a><a class='dropdown-item no_decoration' href=/games/calcrostic.php>Calcrostic ©</a><a class='dropdown-item no_decoration' href=/games/chess.php>Chess ©</a><a class='dropdown-item no_decoration' href=/games/chomp.php>Chomp ©</a><a class='dropdown-item no_decoration' href=/games/dots.php>Dots ©</a><a class='dropdown-item no_decoration' href=/games/floodfill.php>Floodfill ©</a><a class='dropdown-item no_decoration' href=/games/fruit_salad.php>Fruit Salad ©</a><a class='dropdown-item no_decoration' href=/games/geometree.php>GeomeTree ©</a><a class='dropdown-item no_decoration' href=/games/hackenbush.php>Hackenbush ©</a><a class='dropdown-item no_decoration' href=/games/iChomp.php>iChomp ©</a><a class='dropdown-item no_decoration' href=/games/induction.php>Induction ©</a><a class='dropdown-item no_decoration' href=/games/knot_colouring.php>Knot Colouring ©</a><a class='dropdown-item no_decoration' href=/games/lights.php>Lights ©</a><a class='dropdown-item no_decoration' href=/games/magic_square.php>Magic Square ©</a><a class='dropdown-item no_decoration' href=/games/mastermind.php>Mastermind ©</a><a class='dropdown-item no_decoration' href=/games/mazes.php>Mazes ©</a><a class='dropdown-item no_decoration' href=/games/nim.php>Nim ©</a><a class='dropdown-item no_decoration' href=/games/packing.php>Packing ©</a><a class='dropdown-item no_decoration' href=/games/skyscrapers.php>Skyscrapers ©</a><a class='dropdown-item no_decoration' href=/games/sliding_Blocks.php>Sliding Blocks ©</a><a class='dropdown-item no_decoration' href=/games/sokoban.php>Sokoban ©</a><a class='dropdown-item no_decoration' href=/games/spider_web.php>Spider Web ©</a><a class='dropdown-item no_decoration' href=/games/sudoku.php>Sudoku ©</a><a class='dropdown-item no_decoration' href=/games/tangram.php>Tangram ©</a><a class='dropdown-item no_decoration' href=/games/towers_of_hanoi.php>Towers of Hanoi ©</a><a class='dropdown-item no_decoration' href=/games/turtle_walk.php>Turtle Walk ©</a><a class='dropdown-item no_decoration' href=/games/unknotting.php>Unknotting ©</a></ul></li><a class='dropdown-item no_decoration' href=/public/history_en.php>Math History</a><li class="dropdown"><a class="dropdown-item dropdown dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=#>Previous Tests</a><ul class='dropdown-menu scrollable-menu' style='z-index:5'><a class='dropdown-item no_decoration' href=/test/practice_test_login.php>Take a Past Contest</a><a class='dropdown-item no_decoration' href=/test/view_solutions.php>View Written Solutions</a><a class='dropdown-item no_decoration' href=/test/video_solutions.php>Video Solutions</a><a class='dropdown-item no_decoration' href=/test/practice_stats.php>Practice Test Statistics</a></ul></li><li class="dropdown"><a class="dropdown-item dropdown dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=#>More</a><ul class='dropdown-menu scrollable-menu' style='z-index:5'><a class='dropdown-item no_decoration' href=/public/calcrostic_puzzle_book.php>Calcrostic Puzzle Book</a><a class='dropdown-item no_decoration' href=/public/other_resources.php>External Links</a></ul></li> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link active dropdown-toggle no_decoration" role="button" data-toggle="dropdown" data-hover="dropdown" aria-haspopup="true" aria-expanded="false" href="#" >
|
||||||
|
Results </a>
|
||||||
|
|
||||||
|
<ul class="dropdown-menu" style="z-index:2005">
|
||||||
|
<a class='dropdown-item no_decoration' href=/test/results.php>Overview</a><a class='dropdown-item no_decoration' href=/test/contest_results.php>Single Contest Statistics</a><a class='dropdown-item no_decoration' href=/test/overall_results.php>Overall Contest Statistics</a><a class='dropdown-item no_decoration' href=/test/cup_results.php>Caribou Cup Standings</a><a class='dropdown-item no_decoration' href=/students/results.php>My Results</a><a class='dropdown-item no_decoration' href=/teachers/contest_results.php>My School's Contest Results</a><a class='dropdown-item no_decoration' href=/test/country_stats.php>Country Participation Statistics</a> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link active dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=/students/>
|
||||||
|
Students </a>
|
||||||
|
<ul class="dropdown-menu" style="z-index:2005">
|
||||||
|
<a class='dropdown-item no_decoration' href=/students/login.php>Sign In</a><li class='dropdown-divider'></li><a class='dropdown-item no_decoration' href=/students/contest_results.php>My Contest Results & Certificates</a><a class='dropdown-item no_decoration' href=/students/cup_results.php>My Caribou Cup Standings</a> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link active dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=/students/>
|
||||||
|
Parents </a>
|
||||||
|
<ul class="dropdown-menu" style="z-index:2005">
|
||||||
|
<a class='dropdown-item no_decoration' href=/subscribe.php>Join Our Subscriber List</a><a class='dropdown-item no_decoration' href=/public/parents.php>Information for Parents</a> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link active dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=/teachers/>
|
||||||
|
Coordinators </a>
|
||||||
|
<ul class="dropdown-menu" style="z-index:2005">
|
||||||
|
<a class='dropdown-item no_decoration' href=/teachers/login.php>Sign In</a><a class='dropdown-item no_decoration' href=/teachers/become_contact.php>Register</a><a class='dropdown-item no_decoration' href=/teachers/board_coordinator_login.php>Schoolboard Coordinators</a><li class='dropdown-divider'></li><a class='dropdown-item no_decoration' href=/teachers/readme.php>Contest Coordinator Instructions</a><a class='dropdown-item no_decoration' href=/teachers/checklist.php>Contest Checklist</a><li class="dropleft"><a class="dropdown-item dropdown dropdown-toggle no_decoration" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=#>Contest Day Guide</a><ul class='dropdown-menu scrollable-menu' style='z-index:5'><a class='dropdown-item no_decoration' href=/public/guide/Caribou%20Contests%20Contest%20Day%20Guide.pdf>Contest Day Guide (English)</a><a class='dropdown-item no_decoration' href=/public/guide/Caribou%20Contests%20Contest%20Day%20Guide%20FRENCH.pdf>Consignes de Surveillance</a><a class='dropdown-item no_decoration' href=/public/guide/TurkishSupervisionInstructions.pdf>Yarışması Uygulama Yönergeleri</a><a class='dropdown-item no_decoration' href=/public/guide/Caribou%20Contests%20Contest%20Day%20Guide%20UKRAINIAN.pdf>Інструкція для участі в конкурсі</a><a class='dropdown-item no_decoration' href=/public/guide/Caribou%20Contests%20Contest%20Day%20Guide%20AZERBAIJANI.pdf>Yarışmada nəzarətçi təlimatları</a><a class='dropdown-item no_decoration' href=/public/guide/Caribou%20Contests%20Contest%20Day%20Guide%20GERMAN.pdf>Instruktionen zur Beaufsichtigung des Mathe Wettbewerbs</a><a class='dropdown-item no_decoration' href=/public/guide/Caribou%20Contests%20Contest%20Day%20Guide%20URDU.pdf>ہدایات۔ لیے کے نگرانی کی امتحان کے میتھ</a><a class='dropdown-item no_decoration' href=/public/guide/Caribou%20Contests%20Contest%20Day%20Guide%20CHINESE.pdf>北美驯鹿数学竞赛——网站操作指南</a><a class='dropdown-item no_decoration' href=/public/guide/Caribou%20Contests%20Contest%20Day%20Guide%20KHMER.pdf>សេចក្ត ីណែនាំេម្រាប់អនុរក្សម្ររួរពិនិរយការម្របឡងគែិរ វ ិទ្យា</a></ul></li> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown" id='help'>
|
||||||
|
<a class='nav-link active dropdown-toggle no_decoration' role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=/faq.php style="white-space: normal">
|
||||||
|
Help </a>
|
||||||
|
<ul class="dropdown-menu scrollable-menu dropdown-submenu" style="z-index:2005">
|
||||||
|
<a class='dropdown-item no_decoration' href=/chatbot/help_caribot.php?redirect=games%2Fskyscrapers.php>Live Help</a><a class='dropdown-item no_decoration' href=/faq.php?node=80%7CHelp%20Tree%20%20%E2%86%92%20Contact%20Information>Contact Us</a><a class='dropdown-item no_decoration' href=/faq.php>Help / FAQ</a> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class='notranslate nav-link active no_decoration' href='/sign_in.php'>Sign In</a></li> </li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown" id='help'>
|
||||||
|
<a class='nav-link active dropdown-toggle no_decoration' role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href=/faq.php style="white-space: normal">
|
||||||
|
Language <span class="fa fa-globe"></span>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu scrollable-menu dropdown-submenu" style="z-index:2005">
|
||||||
|
<a class='dropdown-item no_decoration' href=/set_lang.php?lang=en&redirect=games%2Fskyscrapers.php>English</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=fr&redirect=games%2Fskyscrapers.php>Français</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=pr&redirect=games%2Fskyscrapers.php>فارسی</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=cn&redirect=games%2Fskyscrapers.php>中文</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=uk&redirect=games%2Fskyscrapers.php>Українська</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=az&redirect=games%2Fskyscrapers.php>Azerbaijani</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=vi&redirect=games%2Fskyscrapers.php>Tiếng Việt</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=ms&redirect=games%2Fskyscrapers.php>Bahasa Melayu</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=tr&redirect=games%2Fskyscrapers.php>Türkçe</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=de&redirect=games%2Fskyscrapers.php>Deutsch</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=uz&redirect=games%2Fskyscrapers.php>O'zbek</a><a class='dropdown-item no_decoration' href=/set_lang.php?lang=ru&redirect=games%2Fskyscrapers.php>Русский</a> </ul>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
</ul> <!-- end .navbar-nav -->
|
||||||
|
</div> <!-- end #navbarCollapse -->
|
||||||
|
|
||||||
|
</nav><!-- end #bootnavbar -->
|
||||||
|
|
||||||
|
<div class="container"> <!-- this is for the bootstrap container class, which has some formatting changes -->
|
||||||
|
<div class="content" > <!-- this is for the content div in the css from previously -->
|
||||||
|
<!-- <div class='covid-notice' style='color:red; width:100%; text-align: center; font-size:1.15em;' lang='en' >
|
||||||
|
<b>
|
||||||
|
<p>Caribou in Covid: Contests are running online as usual. Check out the <a href='https://cariboutests.com/faq.php?node=979'>FAQ</a> for further questions.</p>
|
||||||
|
</b>
|
||||||
|
</div> -->
|
||||||
|
<!-- Modal that appears on every page that includes this file -->
|
||||||
|
<!-- To display the modal, attach the following attributes to a button -->
|
||||||
|
<!-- data-toggle="modal" data-target="#mainModal" -->
|
||||||
|
<!-- AND/OR you can use jquery to open and close it -->
|
||||||
|
<!-- $('#main-modal').modal('show'); -->
|
||||||
|
<!-- $('#main-modal').modal('hide'); -->
|
||||||
|
<div class="modal fade" id="main-modal" tabindex="-1" role="dialog" aria-labelledby="main-modal-label" aria-hidden="true" data-backdrop="static" data-keyboard="false">
|
||||||
|
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<!-- Add text into the modal title div for the title -->
|
||||||
|
<div class="modal-title" id="main-modal-title"></div>
|
||||||
|
</div>
|
||||||
|
<!-- Add text into the modal body div for the body message -->
|
||||||
|
<div class="modal-body" id="main-modal-body"></div>
|
||||||
|
<div class="modal-body" id="main-modal-translate"></div>
|
||||||
|
<div class="modal-footer" id="main-modal-footer">
|
||||||
|
<!-- Default footer has one close button, but can be overridden if necessary -->
|
||||||
|
<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="toast" id="main-toast" style="position: sticky; top: 8px; right: 8px; z-index:-1;" data-autohide="false">
|
||||||
|
<div class="toast-header" id="main-toast-header">
|
||||||
|
<strong class="mr-auto" id="main-toast-header"></strong>
|
||||||
|
<small id="main-toast-time"></small>
|
||||||
|
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="toast-body" id="main-toast-body"></div>
|
||||||
|
</div>
|
||||||
|
<p id='time'>300000</p> <script>
|
||||||
|
var c = getCookie('game_time');
|
||||||
|
var t;
|
||||||
|
var d = new Date();
|
||||||
|
d.setTime(d.getTime() + (1 * 24 * 60 * 60 * 1000));
|
||||||
|
timedCount();
|
||||||
|
|
||||||
|
function timedCount() {
|
||||||
|
c = c + 1000;
|
||||||
|
t = setTimeout(timedCount, 1000);
|
||||||
|
var timeLeft = 300000 - c;
|
||||||
|
var min = Math.floor(timeLeft / 60000);
|
||||||
|
var sec = ((timeLeft % 60000) / 1000) < 10 ? "0" + ((timeLeft % 60000) / 1000) : ((timeLeft % 60000) / 1000);
|
||||||
|
//console.log(min +":"+sec);
|
||||||
|
var p = document.getElementById("time");
|
||||||
|
p.innerHTML = 'Free Time Remaining For Today: ' + min + ':' + sec;
|
||||||
|
|
||||||
|
document.cookie = "game_time=" + c + "; expires=" + d.toGMTString() + "; path=/";
|
||||||
|
if (c >= 300000) {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCookie(cname) {
|
||||||
|
var name = cname + "=";
|
||||||
|
var decodedCookie = decodeURIComponent(document.cookie);
|
||||||
|
var ca = decodedCookie.split(';');
|
||||||
|
for (var i = 0; i < ca.length; i++) {
|
||||||
|
var c = ca[i];
|
||||||
|
while (c.charAt(0) == ' ') {
|
||||||
|
c = c.substring(1);
|
||||||
|
}
|
||||||
|
if (c.indexOf(name) == 0) {
|
||||||
|
return parseInt(c.substring(name.length, c.length));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<div lang='en' ><div class="fltrt"><form id='form2' name='form2' method='post' action='/games/skyscrapers.php'><span class="form_label required_by_form">Board Size</span><select name='board_size' class='text'><option value="3">3×3</option><option value="4" selected="selected">4×4</option><option value="5">5×5</option><option value="6">6×6</option><option value="7">7×7</option><option value="8">8×8</option><option value="9">9×9</option><option value="10">10×10</option><option value="11">11×11</option><option value="12">12×12</option><option value="13">13×13</option><option value="14">14×14</option><option value="15">15×15</option><option value="16">16×16</option><option value="17">17×17</option><option value="18">18×18</option><option value="19">19×19</option><option value="20">20×20</option><option value="21">21×21</option><option value="22">22×22</option><option value="23">23×23</option><option value="24">24×24</option><option value="25">25×25</option><option value="26">26×26</option></select><input name='lang' type='hidden' value='en'/><input class='save-form-input' name='form2serial' value='cmxNeG5UV2FCMjl2b3pJa0syTTJvS1Z6TVR1dk1tZjZybE14blRXYUIzeWhvM1c1V3pFYkx6cDdCdk14blRXYUIwOXZveklrVlJNMm9LVnpNVHV2TW1mZld6RWJMenA3TUtXeG5VTXlwYVJ6TVR1dk1tZjZNMklicHZqek1UdXZNbWdhb1RBbFd6RWJMenA3QnZNeG5UV2FCM1N5THpBa0x6Y3VXekViTHpwN3NGanpNVHV2TW1nNW96UzBXekViTHpwN0JhZnpNVHV2TW1nNW96OWxyRk14blRXYUJtYnpNVHV2TW1nNW96UzBXekViTHpwN1lQTXhuVFdhQjJJbE1UdTJNS1drV3pFYkx6cDdCYUFockpNbFlQTXhuVFdhQjJxZkwzVnpNVHV2TW1mNld6RWJMenA3cUtNa3BLV3VXekViTHpwN3NLMD0=' type='hidden'/><input name='form2submit' id='form2submit' type='submit' value='Change Size' style="background-color:orange; border-radius: 10%;"
|
||||||
|
onmouseover="this.style.backgroundColor='#FFE4B5';"
|
||||||
|
onmouseout="this.style.backgroundColor='orange';" /></form><script type="text/javascript">
|
||||||
|
$(() => {
|
||||||
|
var form_name = "#form2";
|
||||||
|
var $form = $(form_name);
|
||||||
|
$form.submit(() => {
|
||||||
|
var problems = [];
|
||||||
|
|
||||||
|
$form.children(".form_errors").remove();
|
||||||
|
|
||||||
|
$(".form_wrapper").has(form_name).find(".form_row").each((i, e) => {
|
||||||
|
$(e).removeClass("form_row_error");
|
||||||
|
$label = $(".form_left, .form_label", e).text();
|
||||||
|
$input = $("input, textarea, select", e);
|
||||||
|
$name = $input.prop("name");
|
||||||
|
|
||||||
|
// Required
|
||||||
|
if ($(".required_by_form", e).length && !(
|
||||||
|
($input.prop("type") !== "radio" && $input.prop("type") !== "checkbox" && $input.val())
|
||||||
|
|| $("input:checked", e).length)) {
|
||||||
|
$(e).addClass("form_row_error");
|
||||||
|
problems.push("<span style='color: blue'>" + $label.replace(/\s*\*\s*/, "") + "</span> is required.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Email field
|
||||||
|
if (/email/i.test($name) && $input.val() && !/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/i.test($input.val()) && $input.prop("type") == "text") {
|
||||||
|
$(e).addClass("form_row_error");
|
||||||
|
problems.push("Invalid email address: " + $input.val() + ".");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Date field
|
||||||
|
if ($input.hasClass("hasDatepicker") && $input.val() && !/^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/.test($input.val())) {
|
||||||
|
$(e).addClass("form_row_error");
|
||||||
|
problems.push("Invalid date format (must be YYYY-MM-DD): " + $input.val() + ".");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Now check to see if there are any problems
|
||||||
|
if (problems.length > 0) {
|
||||||
|
pleaseNote = '<div class="form_msg form_errors" style="margin-bottom: 1.2em;"><p>Please note: </p><ul>';
|
||||||
|
for (var problem of Object.values(problems)) {
|
||||||
|
pleaseNote += "<li>" + problem + "</li>";
|
||||||
|
}
|
||||||
|
pleaseNote += "</ul></div>";
|
||||||
|
$form.prepend(pleaseNote);
|
||||||
|
return false; // deny form
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script></div><div class="clear"></div><span id='all_languages'>English | <a href='/games/skyscrapers.php?lang=fr'>Français</a> | <a href='/games/skyscrapers.php?lang=pr'>فارسی</a> | <a href='/games/skyscrapers.php?lang=cn'>中文</a> | <a href='/games/skyscrapers.php?lang=uk'>Українська</a> | <a href='/games/skyscrapers.php?lang=az'>Azerbaijani</a> | <a href='/games/skyscrapers.php?lang=kh'>ខ្មែរ</a> | <a href='/games/skyscrapers.php?lang=vi'>Tiếng Việt</a> | <a href='/games/skyscrapers.php?lang=ms'>Bahasa Melayu</a> | <a href='/games/skyscrapers.php?lang=de'>Deutsch</a> | <a href='/games/skyscrapers.php?lang=uz'>O'zbek</a> | <a href='/games/skyscrapers.php?lang=ru'>Русский</a></span><script type='text/javascript'>var lang="en";var isTest = false;</script><style> .container-fluid{min-width: 900px;}.container{min-width: 875px;margin-bottom: 15px;}</style>
|
||||||
|
<div style="display: flex; align-items: center; justify-content: space-between;">
|
||||||
|
<h2>Skyscrapers<sup>©</sup></h2>
|
||||||
|
<div class="playCounts">
|
||||||
|
<span id='playLabel'>Total number of plays</span>: <span id='plays'>611085</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var problem = "cdba|dbac|bacd|acdb";
|
||||||
|
var lang = "en";
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="/interactive/skyscrapers.min.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
/**
|
||||||
|
* void update()
|
||||||
|
* Writes a play to the database.
|
||||||
|
*/
|
||||||
|
update = function(answer){
|
||||||
|
$.get("update.php", { game : "skyscrapers" }, function(text){
|
||||||
|
$("#plays").html(text);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<div class='center'><span id='play_label'></span><span id='plays'>611085</span></div><br>
|
||||||
|
<p id='copyright' style='text-align:center'></p>
|
||||||
|
<br>
|
||||||
|
<h4 id='example'></h4>
|
||||||
|
<p id='example_exp'></p><br/>
|
||||||
|
<img src='images/sky/eg1.png' alt=''>
|
||||||
|
<img src='images/sky/eg2.png' alt=''><br/><br/>
|
||||||
|
<img src='images/sky/eg3.png' alt=''>
|
||||||
|
<img src='images/sky/eg4.png' alt=''>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function fillGamePage() {
|
||||||
|
get('new_game').value = "New Game";
|
||||||
|
get('play_label').innerHTML = "Total number of plays: ";
|
||||||
|
get('copyright').innerHTML = "Puzzles shown on this page are created and owned by Caribou Contests" + " ©";
|
||||||
|
get('example').innerHTML = "Examples";
|
||||||
|
get('example_exp').innerHTML = "These examples demonstrate how the number of the arrows is affected by the visible buildings.";
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.addEventListener('load', function() {
|
||||||
|
|
||||||
|
if (window.location.pathname == "/teachers/thankyou.php") {
|
||||||
|
gtag('event', 'conversion', {
|
||||||
|
'send_to': 'AW-874800282/RywVCKTQ1vECEJrJkaED'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window.location.pathname == "/payments/checkout.php") {
|
||||||
|
gtag('event', 'conversion', {
|
||||||
|
'send_to': 'AW-874800282/F56hCK7R1_ECEJrJkaED'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- <style>
|
||||||
|
div.footer{
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style> -->
|
||||||
|
|
||||||
|
|
||||||
|
</div> <!-- end .content -->
|
||||||
|
</div> <!-- end .container -->
|
||||||
|
|
||||||
|
<div id="chatbot" style="width: 300px; height: 450px; position: fixed; right: 30px; bottom: 30px; z-index: 15; pointer-events: none;"></div>
|
||||||
|
<script src="/chatbot/client/public/index.js"></script>
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
<div class="row">
|
||||||
|
<div id='footer-logo' class='d-none d-lg-block col-4'>
|
||||||
|
<a href=''>
|
||||||
|
<img src='/images/logo/logo_en.svg' alt='Caribou logo'
|
||||||
|
width='140' height='140' />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div id='footer-link' class='d-none d-lg-block col-2' style='text-align:left;'>
|
||||||
|
<b>Quick Links</b><br/>
|
||||||
|
<a style='color: #42413c;' href='/'>
|
||||||
|
Home </a><br/>
|
||||||
|
<a style='color: #42413c;' href='/public/about.php'>
|
||||||
|
About Caribou </a><br/>
|
||||||
|
<a style='color: #42413c;' href='/sign_in.php'>
|
||||||
|
Sign In </a><br/>
|
||||||
|
<a style='color: #42413c;' href='/public/register.php'>
|
||||||
|
Register </a><br/>
|
||||||
|
<a style='color: #42413c;' href='/faq.php'>
|
||||||
|
Help </a>
|
||||||
|
</div>
|
||||||
|
<div id='social_media' class='row col-sm-6 col-lg-3'>
|
||||||
|
<p>Follow or subscribe for updates:</p>
|
||||||
|
<div class='center'>
|
||||||
|
<a href='https://www.youtube.com/user/CaribouContest' target='_blank' title='Find us on YouTube'><img src='/images/icons/48by48gif/youtube.gif' alt='Find us on YouTube' title='Find us on Youtube'/></a>
|
||||||
|
|
||||||
|
<a href="https://www.dailymotion.com/CaribouContest" target='_blank' title='Find us on Dailymotion'><img src='/images/icons/48by48gif/dailymotion.gif' alt='Find us on Dailymotion' title='Find us on Dailymotion'/></a>
|
||||||
|
|
||||||
|
<a href='https://twitter.com/CaribouTests' target='_blank' title='Find us on Twitter'><img src='/images/icons/48by48gif/twitter.gif' alt='Find us on Twitter' title='Find us on Twitter'/></a>
|
||||||
|
|
||||||
|
<a href='https://www.facebook.com/cariboucontests' target='_blank' title='Find us on Facebook'><img src='/images/icons/48by48gif/facebook.gif' alt='Find us on Facebook' title='Find us on Facebook'/></a>
|
||||||
|
|
||||||
|
<a href='https://www.instagram.com/cariboucontests' target='_blank' title='Find us on Instagram'><img src='/images/icons/48by48gif/instagram.gif' alt='Find us on Instagram' title='Find us on Instagram'/></a>
|
||||||
|
|
||||||
|
<a href='/subscribe.php' target='_blank' title='Receive Updates by Email'><img src='/images/icons/48by48gif/email.gif' alt='Receive updates by email' title='Receive updates by email'/></a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> <!-- end .center, end #social media -->
|
||||||
|
|
||||||
|
<div id="sponsors" class="sponsor row col-sm-6 col-lg-3">
|
||||||
|
<p>Many thanks to our 2024/2025 sponsors:</p>
|
||||||
|
<ul class="sponsor"><li><a href='http://www.fields.utoronto.ca/'><img src='/images/Fieldsgrey.gif' alt='Fields Institute' height='84'/></a></li><li><a href='https://cms.math.ca/'><img src='/images/CMSblue.gif' alt='Canadian Mathematical Society' height='84px'></a></li></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer-links">
|
||||||
|
<a href="#top">Back to Top</a> |
|
||||||
|
<a href='/faq.php'>Contact Us</a> |
|
||||||
|
<a href='/public/terms.php'>Terms of Use</a> |
|
||||||
|
<a href='/public/privacy_policy.php'>Privacy Policy</a>
|
||||||
|
</div>
|
||||||
|
</div> <!-- end .footer -->
|
||||||
|
</div> <!-- end .container-fluid -->
|
||||||
|
<a name="bottom"></a>
|
||||||
|
|
||||||
|
<span id = 'ilypikachu'></span>
|
||||||
|
<script src="/includes/js/popper-1.16.1.min.js"></script>
|
||||||
|
<script src="/includes/js/bootstrap.min.js"></script>
|
||||||
|
<script src=/includes/js/bootnavbar.min.js></script>
|
||||||
|
<script type='text/javascript' src=/includes/js/Mask-Input-jQuery-Samask/dist/jquery.samask-masker.min.js></script>
|
||||||
|
<script type='text/javascript' src='/includes/js/county.min.js'></script>
|
||||||
|
<script src="/includes/js/jquery-ui-1.13.2.min.js" integrity="sha512-C9swUxkf9vWzYr0focoiC/oeQHsplQsqIh5ZGv2mbVhIHLcjYYiWrGnXJ7aqBGhaFF3ZH7+3sX3Su5Q8rY0LdA==" crossorigin="anonymous"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var siteRoot = "";
|
||||||
|
var testToday = true;
|
||||||
|
var codingTestToday = false;
|
||||||
|
var calcrosticsTestToday = false;
|
||||||
|
var county_labels = {"days":"Days","hours":"Hours","minutes":"Minutes","seconds":"Seconds"};
|
||||||
|
var subject = "";
|
||||||
|
</script><script type='text/javascript' src="/includes/js/trans.min.js"></script>
|
||||||
|
<script type='text/javascript' src="/includes/js/init.min.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#more {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.readMoreButton {
|
||||||
|
padding:10px 20px;
|
||||||
|
border:1px solid black;
|
||||||
|
margin: 20px auto;
|
||||||
|
text-align: center;
|
||||||
|
width:150px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function myFunction() {
|
||||||
|
var dots = document.getElementById("dots");
|
||||||
|
var moreText = document.getElementById("more");
|
||||||
|
var btnText = document.getElementById("myBtn");
|
||||||
|
|
||||||
|
if (dots.style.display === "none") {
|
||||||
|
dots.style.display = "inline";
|
||||||
|
btnText.innerHTML = "Read more";
|
||||||
|
moreText.style.display = "none";
|
||||||
|
} else {
|
||||||
|
dots.style.display = "none";
|
||||||
|
btnText.innerHTML = "Read less";
|
||||||
|
moreText.style.display = "inline";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
||||||
|
Process finished with exit code 1
|
Loading…
Reference in New Issue