Site has moved to gh-pages.
@ -1 +0,0 @@
|
|||||||
../../Press/MasterPassword_PressKit.zip
|
|
@ -1,445 +0,0 @@
|
|||||||
<!DOCTYPE HTML>
|
|
||||||
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Master Password — Securing your online life.</title>
|
|
||||||
|
|
||||||
<link rel="icon" href="images/resources/favicon.png" type="image/x-png" />
|
|
||||||
<link rel="shortcut icon" href="images/resources/favicon.png" type="image/x-png" />
|
|
||||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
|
||||||
<meta name="apple-itunes-app" content="app-id=510296984" />
|
|
||||||
|
|
||||||
<link rel='stylesheet' type='text/css' href='http://fonts.googleapis.com/css?family=Exo:100,400,600,900,100italic,400italic,600italic' />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/screen.css" />
|
|
||||||
|
|
||||||
<script src="js/jquery-1.6.1.min.js" type="text/javascript"></script>
|
|
||||||
<script src="js/functions.js" type="text/javascript"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$(window).scroll(function() {
|
|
||||||
if ($(window).scrollTop() > 100) {
|
|
||||||
$(".appstore").show();
|
|
||||||
$("header .appstore").hide();
|
|
||||||
} else {
|
|
||||||
$(".appstore").hide();
|
|
||||||
$("header .appstore").show();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _gaq = _gaq || [];
|
|
||||||
_gaq.push(['_setAccount', 'UA-90535-15']);
|
|
||||||
_gaq.push(['_trackPageview']);
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
||||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
var is_ssl = ("https:" == document.location.protocol);
|
|
||||||
var asset_host = is_ssl ? "https://d3rdqalhjaisuu.cloudfront.net/" : "http://d3rdqalhjaisuu.cloudfront.net/";
|
|
||||||
document.write(unescape("%3Cscript src='" + asset_host + "javascripts/feedback-v2.js' type='text/javascript'%3E%3C/script%3E"));
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Get Satisfaction -->
|
|
||||||
<!--script type="text/javascript" charset="utf-8">
|
|
||||||
var is_ssl = ("https:" == document.location.protocol);
|
|
||||||
var asset_host = is_ssl ? "https://d3rdqalhjaisuu.cloudfront.net/" : "http://d3rdqalhjaisuu.cloudfront.net/";
|
|
||||||
document.write(unescape("%3Cscript src='" + asset_host + "javascripts/feedback-v2.js' type='text/javascript'%3E%3C/script%3E"));
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
var feedback_widget_options = {};
|
|
||||||
feedback_widget_options.display = "overlay";
|
|
||||||
feedback_widget_options.company = "lyndir";
|
|
||||||
feedback_widget_options.placement = "right";
|
|
||||||
feedback_widget_options.color = "#222";
|
|
||||||
feedback_widget_options.style = "question";
|
|
||||||
var feedback_widget = new GSFN.feedback_widget(feedback_widget_options);
|
|
||||||
</script-->
|
|
||||||
|
|
||||||
<!-- UserEcho -->
|
|
||||||
<script type='text/javascript'>
|
|
||||||
var _ues = {
|
|
||||||
host:'support.lyndir.com',
|
|
||||||
forum:'13031',
|
|
||||||
lang:'en',
|
|
||||||
tab_icon_show:false,
|
|
||||||
tab_corner_radius:5,
|
|
||||||
tab_font_size:20,
|
|
||||||
tab_image_hash:'RmVlZGJhY2s%3D',
|
|
||||||
tab_alignment:'right',
|
|
||||||
tab_text_color:'#FFFFFF',
|
|
||||||
tab_bg_color:'#DDDDDD',
|
|
||||||
tab_hover_color:'#CCCCCC'
|
|
||||||
};
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var _ue = document.createElement('script'); _ue.type = 'text/javascript'; _ue.async = true;
|
|
||||||
_ue.src = ('https:' == document.location.protocol ? 'https://s3.amazonaws.com/' : 'http://') + 'cdn.userecho.com/js/widget-1.4.gz.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(_ue, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- jQuery -->
|
|
||||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
|
|
||||||
|
|
||||||
<!-- Page JS -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$(window).scroll(function() {
|
|
||||||
if ($(window).scrollTop() > 100) {
|
|
||||||
$(".appstore").show();
|
|
||||||
$("header .appstore").hide();
|
|
||||||
} else {
|
|
||||||
$(".appstore").hide();
|
|
||||||
$("header .appstore").show();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$(".tip.appstore").hide().delay(1000).fadeIn();
|
|
||||||
$(".tip.phone").hide();
|
|
||||||
$("#sendtophone").mouseenter(function() {
|
|
||||||
$(".tip.phone").fadeIn();
|
|
||||||
});
|
|
||||||
$("#sendtophone").mouseleave(function() {
|
|
||||||
$(".tip.phone").fadeOut();
|
|
||||||
});
|
|
||||||
$("#sendtophone").submit(function() {
|
|
||||||
$.ajax({
|
|
||||||
url: "http://masterpassword.lyndir.com/send.php",
|
|
||||||
data: {
|
|
||||||
destination: $(this).find("input[type='text']").val(),
|
|
||||||
},
|
|
||||||
cache: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
goog_report_conversion('index-sendtophone');
|
|
||||||
_gaq.push(['_trackPageview', '/outbound/sendtophone']);
|
|
||||||
|
|
||||||
$("#sendtophone .field").hide();
|
|
||||||
$("#sendtophone .confirm").show();
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
$("#sendtophone .field").show();
|
|
||||||
$("#sendtophone .confirm").hide();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- AdWords -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
/* <![CDATA[ */
|
|
||||||
goog_snippet_vars = function() {
|
|
||||||
var w = window;
|
|
||||||
w.google_conversion_id = 1015576061;
|
|
||||||
w.google_conversion_label = "PcXqCPPz5AIQ_euh5AM";
|
|
||||||
w.google_conversion_value = 4;
|
|
||||||
}
|
|
||||||
goog_report_conversion = function(url) {
|
|
||||||
goog_snippet_vars();
|
|
||||||
window.google_conversion_format = "3";
|
|
||||||
window.google_is_call = true;
|
|
||||||
var opt = new Object();
|
|
||||||
opt.onload_callback = function() {
|
|
||||||
if (typeof(url) != 'undefined') {
|
|
||||||
window.location = url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var conv_handler = window['google_trackConversion'];
|
|
||||||
if (typeof(conv_handler) == 'function') {
|
|
||||||
conv_handler(opt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* ]]> */
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion_async.js"></script>
|
|
||||||
|
|
||||||
<!-- Google +1 -->
|
|
||||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<a class="badge appstore" href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-fixed-header');_gaq.push(['_trackPageview', '/outbound/itunes']);"><img src="img/appstore.png" /></a>
|
|
||||||
<header>
|
|
||||||
|
|
||||||
<div class="badge appstore">
|
|
||||||
<a href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-top-header');_gaq.push(['_trackPageview', '/outbound/itunes']);">
|
|
||||||
<!--span class="tip appstore">Great feedback may earn you a free copy for a friend!</span-->
|
|
||||||
<img src="img/appstore.png" />
|
|
||||||
</a><br />
|
|
||||||
<form id="sendtophone">
|
|
||||||
<span class="field">
|
|
||||||
Or send to your phone:<br />
|
|
||||||
<input type="text" name="email" placeholder="E-mail or phone number" />
|
|
||||||
<span class="tip phone">Phone needs country code (eg. +1 for US/CA, +44 for UK)</span>
|
|
||||||
</span>
|
|
||||||
<span class="confirm">
|
|
||||||
Message sent!
|
|
||||||
</span>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<h1><a href="."><img class="logo" src="img/iTunesArtwork-Bare.png" /> Master Password</a></h1>
|
|
||||||
<div class="footnote"><a href="mailto:masterpassword+remove_this@lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/mail']);">Contact</a> | <a href="http://www.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a> | <a href="https://plus.google.com/116256327773442623984/about" rel="publisher" onclick="_gaq.push(['_trackPageview', '/outbound/google+']);">Google+</a></div>
|
|
||||||
<div class="divider"></div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
<div id="fixedheader">
|
|
||||||
<h2><a href=".">Master Password</a></h2>
|
|
||||||
</div>
|
|
||||||
<!--a href="http://bit.ly/vNN5Zi" onclick="_gaq.push(['_trackPageview', '/outbound/testflight']);" id="ribbon"></a-->
|
|
||||||
|
|
||||||
<section class="heading">
|
|
||||||
<div>
|
|
||||||
<h1>So how does it work? <div class="g-plusone" data-annotation="none" data-href="http://masterpassword.lyndir.com/algorithm.html"></div></h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The theory behind Master Password is simple. The user remembers a single, secure password. The user only ever uses that password to log into the Master Password application. This master password is then used as a seed to generate a different password based on the name of the site to generate a password for.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The result is that each master password generates its own unique sequence of passwords for any site name. Since the only input data is the master password and the site name (along with a password counter, see below), there is no need for any kind of storage to recreate a site's password. All that's needed is the correct master password and the correct algorithm implementation. What that does for you is make it almost impossible to lose your passwords. It also makes it nearly impossible for hackers to steal your online identity.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<h1>The Algorithm</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Master Password uses a stateless algorithm that relies solely on its implementation and the user's inputs. The user is expected to remember the following information:
|
|
||||||
<ul>
|
|
||||||
<li><strong>The master password</strong> (eg. <em>pink fluffy door frame</em>):<br />
|
|
||||||
This is a secret that the user shares with nobody.</li>
|
|
||||||
<li><strong>The site name</strong> (eg. <em>apple.com</em>):<br />
|
|
||||||
The user chooses a name for each site. Its domain name is an ideal choice, since it needn't necessarily be remembered.</li>
|
|
||||||
<li><strong>The site's password counter</strong> (default: <em>0</em>):<br />
|
|
||||||
This is an integer that can be incremented when the user needs a new password for the site.</li>
|
|
||||||
<li><strong>The site's password type</strong> (default: <em>Long Password</em>):<br />
|
|
||||||
This type determines the format of the output password. It can be changed if the site's password policy does not accept passwords of this format.</li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
In short, the algorithm is comprised of the following steps:
|
|
||||||
<ul>
|
|
||||||
<li>Determining the master <code>key</code></li>
|
|
||||||
<li>Determining the template <code>seed</code></li>
|
|
||||||
<li>Encoding a user-friendly <code>password</code></li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
A note on types:
|
|
||||||
<ul>
|
|
||||||
<li>Any character string is UTF-8 de- or encoded, depending on context.</li>
|
|
||||||
<li>Any number is converted to 32-bit network byte order.</li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>The Master Password</h2>
|
|
||||||
<p>
|
|
||||||
The user chooses a single master password, preferably sufficiently long to harden against brute-force attacks. Master Password recommends absurd three or four-word sentences as they're easily remembered and generally sufficiently high in entropy.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The application then creates a <a href="http://www.tarsnap.com/scrypt.html" onclick="_gaq.push(['_trackPageview', '/outbound/tarsnap.com/scrypt.html">scrypt</a> key derivative from the user's password. This process takes quite a bit of processing time and memory. This step exists to make brute-force attempts at guessing the master password from a given output password <strong>far more difficult</strong>, to practically infeasible, even for otherwise vulnerable password strings.
|
|
||||||
</p>
|
|
||||||
<code><pre>
|
|
||||||
key = scrypt( P, S, N, r, p, dkLen )
|
|
||||||
where
|
|
||||||
P = master password
|
|
||||||
S = "com.lyndir.masterpassword" . name length . name
|
|
||||||
N = 32768
|
|
||||||
r = 8
|
|
||||||
p = 2
|
|
||||||
dkLen = 64
|
|
||||||
</pre></code>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The result is a 64-byte <code>key</code> derived from the user's master password. This key will be fed into the rest of the algorithm to produce output passwords that are as private to the user as their master password is.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>Combining The Inputs</h2>
|
|
||||||
<p>
|
|
||||||
The theory behind Master Password requires that all inputs are given by the user. The two main inputs are the master password that we used to determine the <code>key</code> and the site's name. There is a third input value, the password counter, which is a 32-bit unsigned integer value. Initially, the password counter should be zero, but a user may specify a non-zero counter value in case he wants to force the algorithm to produce a new output password for the site.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
These input values are combined in a byte array, separated by a single <code>NUL</code> byte. In order, the input values are the <code>site name</code>, the master <code>key</code>, and a <code>counter</code>. The byte array is hashed using the HMAC-SHA-256 algorithm to yield the <code>seed</code> as a result.
|
|
||||||
</p>
|
|
||||||
<code><pre>
|
|
||||||
seed = hmac-sha256( key, "com.lyndir.masterpassword" . site name length . site name . counter )
|
|
||||||
</pre></code>
|
|
||||||
|
|
||||||
<h2>Generating The Output</h2>
|
|
||||||
<p>
|
|
||||||
We now have a <code>seed</code> which is a sufficiently long seemingly-arbitrary string of bytes that is unique to the site and the user. This string of bytes, however, is not very useful for a user to use as a password. We have two additional problems that need to be solved: The output password must be easy for a user to read and type in using a keyboard or smartphone, but it should also be compatible with most site's password policies.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Password policies are strict rules imposed by applications on their users, designed to limit the types of passwords these users are allowed to use with the application. Usually, these policies exist to force users into thinking about passwords with a healthy entropy. Often, they exist purely as a side-effect of bad password handling such as storing the clear-text passwords in a database.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Since the idea is that the output password can be used directly as a password to protect the user's account on the site, it needs to be able to pass the site's password policy.
|
|
||||||
Master Password addresses this problem by introducing <em>password types</em>. Each password type describes what an output password must look like and maps to a set of <code>templates</code>. Templates describe the resulting output password using a series of characters that map to character groups of candidate output characters. A template has the same length as the output password it yields. Each character in the template maps to a specific character group. At each position of the output password, a character is chosen from the character group identified by the character in the template at the same position.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The following templates are defined:
|
|
||||||
<ul>
|
|
||||||
<li><p>
|
|
||||||
Type: <strong>Maximum Security Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>anoxxxxxxxxxxxxxxxxx</li></code>
|
|
||||||
<li><code>axxxxxxxxxxxxxxxxxno</li></code>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>Long Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>CvcvnoCvcvCvcv</li></code>
|
|
||||||
<li><code>CvcvCvcvnoCvcv</li></code>
|
|
||||||
<li><code>CvcvCvcvCvcvno</li></code>
|
|
||||||
<li><code>CvccnoCvcvCvcv</li></code>
|
|
||||||
<li><code>CvccCvcvnoCvcv</li></code>
|
|
||||||
<li><code>CvccCvcvCvcvno</li></code>
|
|
||||||
<li><code>CvcvnoCvccCvcv</li></code>
|
|
||||||
<li><code>CvcvCvccnoCvcv</li></code>
|
|
||||||
<li><code>CvcvCvccCvcvno</li></code>
|
|
||||||
<li><code>CvcvnoCvcvCvcc</li></code>
|
|
||||||
<li><code>CvcvCvcvnoCvcc</li></code>
|
|
||||||
<li><code>CvcvCvcvCvccno</li></code>
|
|
||||||
<li><code>CvccnoCvccCvcv</li></code>
|
|
||||||
<li><code>CvccCvccnoCvcv</li></code>
|
|
||||||
<li><code>CvccCvccCvcvno</li></code>
|
|
||||||
<li><code>CvcvnoCvccCvcc</li></code>
|
|
||||||
<li><code>CvcvCvccnoCvcc</li></code>
|
|
||||||
<li><code>CvcvCvccCvccno</li></code>
|
|
||||||
<li><code>CvccnoCvcvCvcc</li></code>
|
|
||||||
<li><code>CvccCvcvnoCvcc</li></code>
|
|
||||||
<li><code>CvccCvcvCvccno</li></code>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>Medium Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>CvcnoCvc</code></li>
|
|
||||||
<li><code>CvcCvcno</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>Short Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>Cvcn</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>Basic Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>aaanaaan</code></li>
|
|
||||||
<li><code>aannaaan</code></li>
|
|
||||||
<li><code>aaannaaa</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>PIN</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>nnnn</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Where each of the letters above expand any of the characters in their respective character group:
|
|
||||||
<ul>
|
|
||||||
<li><p>Template character: <code>V</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>AEIOU</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>C</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>BCDFGHJKLMNPQRSTVWXYZ</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>v</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>aeiou</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>c</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>bcdfghjklmnpqrstvwxyz</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>A</code> (<code>= V . C</code>)
|
|
||||||
<ul>
|
|
||||||
<li><code>AEIOUBCDFGHJKLMNPQRSTVWXYZ</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>a</code> (<code>= V . v . C . c</code>)
|
|
||||||
<ul>
|
|
||||||
<li><code>AEIOUaeiouBCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>n</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>0123456789</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>o</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>@&%?,=[]_:-+*$#!'^~;()/.</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>X</code> (<code>= a . n . o</code>)
|
|
||||||
<ul>
|
|
||||||
<li><code>AEIOUaeiouBCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz0123456789@&%?,=[]_:-+*$#!'^~;()/.</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
By default, Master Password uses the <em>Long Password</em> type for any new passwords. The user is able to choose a different password type, which is normally only done if the site's password policy is incompatible with the output password produced by this type.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
To create the output password, the bytes in the <code>seed</code> are encoded according to the template. The first <code>seed</code> byte is used to determine which of the type's templates to use for encoding an output password. We take the byte value of the first <code>seed</code> byte modulo the amount of templates set for the chosen password type and use the result as a zero-based index in the template list for the password type.
|
|
||||||
</p>
|
|
||||||
<code><pre>
|
|
||||||
templates = [ "CvcvCvcvnoCvcv", "CvcvnoCvcvCvcv", "CvcvCvcvCvcvno", ... ]
|
|
||||||
template = templates[ seed[0] % count( templates ) ]
|
|
||||||
</pre></code>
|
|
||||||
<p>
|
|
||||||
Now that we know what template to use for building our output password, all that's left is to iterate the template, and produce a character of password output for each step. When we iterate the template (index <code>i</code>), we look in the character group identified by the character (string <code>passChars</code>) in the template at index <code>i</code>.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
We use the <code>seed</code>'s byte value at index <code>i + 1</code> modulo the amount of characters in the character class to determine which character (<code>passChar</code>) in the class to use for the output password at index <code>i</code>.
|
|
||||||
</p>
|
|
||||||
<code><pre>
|
|
||||||
passChar = passChars[ seed[i + 1] % count( passChars ) ]
|
|
||||||
passWord[i] = passChar
|
|
||||||
</pre></code>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
<a class="next" href="https://github.com/Lyndir/MasterPassword">Show me the code!</a>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<span itemscope itemtype="http://schema.org/MobileSoftwareApplication">
|
|
||||||
<meta itemprop="image" content="http://masterpassword.lyndir.com/img/iTunesArtwork-Rounded.png" />
|
|
||||||
<meta itemprop="name" content="Master Password" />
|
|
||||||
<meta itemprop="operatingsystems" content="iOS" />
|
|
||||||
<meta itemprop="softwareversion" content="5.0" />
|
|
||||||
|
|
||||||
<span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
|
|
||||||
<meta itemprop="name" content="iOS" />
|
|
||||||
<meta itemprop="price" content="5.99" />
|
|
||||||
<meta itemprop="priceCurrency" content="USD" />
|
|
||||||
<span itemprop="seller" itemscope itemtype="http://schema.org/Organization">
|
|
||||||
<meta itemprop="name" content="Apple" />
|
|
||||||
<meta itemprop="url" content="http://itunes.apple.com/app/id510296984" />
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
<span itemprop="author" itemscope itemtype="http://schema.org/Organization">
|
|
||||||
<meta itemprop="name" content="Lyndir" />
|
|
||||||
<meta itemprop="url" content="http://www.lyndir.com" />
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<footer>
|
|
||||||
Master Password is a security and productivity product by <a href="http://www.lyndir.com" rel="author" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a>, © 2011.
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,114 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<link rel="stylesheet" href="buttons.css" type="text/css" charset="utf-8" />
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body{
|
|
||||||
background: #fff;
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
margin: 30px 10px;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
.clear {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul li {
|
|
||||||
float: left;
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0 20px 0 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<title>CSS Button Kit</title>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h1>Small Buttons</h1>
|
|
||||||
|
|
||||||
<ul class="smallbuttons">
|
|
||||||
<li><a href="#" class="btn_smallwhite">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallblack">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallblue">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallgreen">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallred">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallorange">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallpurple">Button</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
<ul class="smallbuttons">
|
|
||||||
<li><a href="#" class="btn_smallwhite ico_action"> Action</a></li>
|
|
||||||
<li><a href="#" class="btn_smallblack ico_box"> Download</a></li>
|
|
||||||
<li><a href="#" class="btn_smallblue ico_email"> Email</a></li>
|
|
||||||
<li><a href="#" class="btn_smallgreen ico_folder"> Folder</a></li>
|
|
||||||
<li><a href="#" class="btn_smallred ico_heart"> Like</a></li>
|
|
||||||
<li><a href="#" class="btn_smallorange ico_collection"> Collections</a></li>
|
|
||||||
<li><a href="#" class="btn_smallpurple ico_eye"> View</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
<h1>Medium Buttons</h1>
|
|
||||||
|
|
||||||
<ul class="mediumbuttons">
|
|
||||||
<li><a href="#" class="btn_mediumwhite"> Button</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumblack">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray1">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray2">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray3">Button</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
<ul class="mediumbuttons">
|
|
||||||
<li><a href="#" class="btn_mediumwhite ico_file"> Document</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumblack ico_chart"> Stats</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray1 ico_locked"> Lock</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray2 ico_music"> Music</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray3 ico_print"> Print</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
<h1>Large Buttons</h1>
|
|
||||||
|
|
||||||
<ul class="largebuttons">
|
|
||||||
<li><a href="#" class="btn_largewhite">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largeblack">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largegray">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largeblue">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largered">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largegreen">Button</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" /><br/>
|
|
||||||
|
|
||||||
<ul class="largebuttons">
|
|
||||||
<li><a href="#" class="btn_largewhite ico_playvideo"> Watch</a></li>
|
|
||||||
<li><a href="#" class="btn_largeblack ico_search"> Search</a></li>
|
|
||||||
<li><a href="#" class="btn_largegray ico_tel"> Call</a></li>
|
|
||||||
<li><a href="#" class="btn_largeblue ico_user"> Login</a></li>
|
|
||||||
<li><a href="#" class="btn_largered ico_settings1"> Settings</a></li>
|
|
||||||
<li><a href="#" class="btn_largegreen ico_link"> Link</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,141 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<metadata>
|
|
||||||
This is a custom SVG webfont generated by Font Squirrel.
|
|
||||||
Copyright : Copyright MediaLoot 2011
|
|
||||||
Designer : Tony Thomas
|
|
||||||
Foundry : MediaLoot
|
|
||||||
Foundry URL : httpwwwmedialootcom
|
|
||||||
</metadata>
|
|
||||||
<defs>
|
|
||||||
<font id="SignifyLiteRegular" horiz-adv-x="2048" >
|
|
||||||
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
|
||||||
<missing-glyph horiz-adv-x="512" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="512" />
|
|
||||||
<glyph unicode="	" horiz-adv-x="512" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="512" />
|
|
||||||
<glyph unicode="!" />
|
|
||||||
<glyph unicode=""" />
|
|
||||||
<glyph unicode="#" />
|
|
||||||
<glyph unicode="$" />
|
|
||||||
<glyph unicode="%" />
|
|
||||||
<glyph unicode="&" />
|
|
||||||
<glyph unicode="'" />
|
|
||||||
<glyph unicode="(" />
|
|
||||||
<glyph unicode=")" />
|
|
||||||
<glyph unicode="*" />
|
|
||||||
<glyph unicode="+" />
|
|
||||||
<glyph unicode="," />
|
|
||||||
<glyph unicode="-" />
|
|
||||||
<glyph unicode="." />
|
|
||||||
<glyph unicode="/" />
|
|
||||||
<glyph unicode="0" />
|
|
||||||
<glyph unicode="1" horiz-adv-x="1816" d="M121 786l788 787l787 -787h-492v-786h-590v786h-493z" />
|
|
||||||
<glyph unicode="2" horiz-adv-x="1734" d="M80 494v589h788v492l787 -787l-787 -786v492h-788z" />
|
|
||||||
<glyph unicode="3" horiz-adv-x="1742" d="M84 782h491v787h590v-787h494l-787 -786z" />
|
|
||||||
<glyph unicode="4" horiz-adv-x="1794" d="M111 793l786 786v-492h786v-589h-786v-492z" />
|
|
||||||
<glyph unicode="5" horiz-adv-x="1429" d="M113 8v1204l1204 -604z" />
|
|
||||||
<glyph unicode="6" horiz-adv-x="1574" d="M147 4v1278h482v-1278h-482zM946 4v1278h481v-1278h-481z" />
|
|
||||||
<glyph unicode="7" horiz-adv-x="1591" d="M115 -8v1360h1362v-1360h-1362z" />
|
|
||||||
<glyph unicode="8" d="M184 16v240v360h240v-360h960v295l388 -387l-388 -387v239h-960h-240zM276 1067l388 389v-242h960h240v-239v-359h-240v359h-960v-295z" />
|
|
||||||
<glyph unicode="9" horiz-adv-x="1677" d="M162 481v1035h1034l-311 -312q14 -6 40.5 -19.5t99.5 -65.5t138.5 -117.5t141 -178t125 -243.5t73 -319.5t2.5 -399.5q-25 47 -69.5 121.5t-173.5 260t-250 315.5t-272.5 210t-268.5 23z" />
|
|
||||||
<glyph unicode=":" />
|
|
||||||
<glyph unicode=";" />
|
|
||||||
<glyph unicode="<" horiz-adv-x="1931" d="M160 707l919 708v-534l693 534v-1417l-693 534v-534z" />
|
|
||||||
<glyph unicode="=" />
|
|
||||||
<glyph unicode=">" horiz-adv-x="1976" d="M182 -6v1417l692 -534v534l920 -709l-920 -708v534z" />
|
|
||||||
<glyph unicode="?" />
|
|
||||||
<glyph unicode="@" />
|
|
||||||
<glyph unicode="A" horiz-adv-x="2029" d="M111 -2v227v905v113v113h790v-226h-565v-905h1358v226h225v-226v-227h-225h-1583zM1024 315q-6 68 -6 133q0 415 262 672q98 96 188 135l-208 215h659v-718l-184 219q-35 17 -74 17q-26 0 -52 -8q-67 -19 -135.5 -75.5t-134 -130.5t-123 -154.5t-100.5 -148.5t-67 -111z " />
|
|
||||||
<glyph unicode="B" horiz-adv-x="1792" d="M154 6v1010h1484v-1010h-1484zM154 1130l227 343h438v-343h-665zM973 1130v343h438l227 -343h-665z" />
|
|
||||||
<glyph unicode="C" horiz-adv-x="1863" d="M129 811q0 334 235.5 568.5t567.5 234.5t567.5 -234.5t235.5 -568.5q0 -332 -235.5 -567.5t-567.5 -235.5t-567.5 235.5t-235.5 567.5zM330 811q0 -250 177 -426t425 -176t425 176t177 426t-177 426t-425 176t-425 -176t-177 -426zM590 819q0 190 100 291 q100 102 285 102q150 0 227 -57q82 -57 123 -180l-207 -47q-12 35 -24 51q-18 27 -47 43q-29 14 -66 14q-80 0 -123 -65q-33 -49 -33 -150q0 -125 39 -174q39 -47 109 -47q68 0 102 37q35 39 51 111l207 -62q-20 -84 -65 -145q-49 -61 -113 -88q-66 -31 -168 -31 q-125 0 -205 37q-80 35 -135 127q-57 90 -57 233z" />
|
|
||||||
<glyph unicode="D" horiz-adv-x="1900" d="M152 793q0 330 234.5 564t563.5 234q190 0 348 -77.5t253.5 -198.5t146.5 -257t51 -265q0 -332 -234.5 -565.5t-564.5 -233.5q-332 0 -565 236.5t-233 562.5zM352 793q0 -193 111 -349l833 836q-156 111 -346 111q-248 0 -423 -175t-175 -423zM604 303q156 -111 346 -110 q248 0 423 176t175 424q0 190 -110 346z" />
|
|
||||||
<glyph unicode="E" horiz-adv-x="2426" d="M106 14v1420v104h2214v-1524h-2214zM244 256l618 573l-618 465v-1038zM309 1399l924 -676l924 676h-1848zM324 154h1736l-563 618l-268 -199l-266 189zM1587 834l596 -641v1101z" />
|
|
||||||
<glyph unicode="F" horiz-adv-x="2351" d="M170 10v1094h2011v-1094h-2011zM170 1233v88l88 262h786l89 -262h1048v-88h-2011z" />
|
|
||||||
<glyph unicode="G" horiz-adv-x="2177" d="M166 -6l2 971l342 872h1149l350 -872l2 -971h-1845zM342 1010h1495l-252 710h-999zM467 1128v80h1227v-80h-1227zM569 1331v80h1039v-80h-1039zM643 1526v80h889v-80h-889zM756 381h665v237h-665v-237z" />
|
|
||||||
<glyph unicode="H" horiz-adv-x="1933" d="M133 1102q0 178 137.5 303t331.5 125q223 0 365 -162q141 162 364 162q195 0 332 -125t137 -303q0 -10 -2 -30.5t-18.5 -86t-45 -134.5t-91 -172.5t-146.5 -203.5t-222 -224t-308 -241q-233 160 -405.5 331t-250.5 301t-123 237.5t-49 164.5z" />
|
|
||||||
<glyph unicode="I" horiz-adv-x="2330" d="M121 758q348 365 842 465q123 25 202 24q23 0 65 -3t167 -29.5t244.5 -72.5t278.5 -146.5t290 -237.5q-131 -137 -287 -238.5t-285 -147.5t-238.5 -73t-170.5 -29l-64 -4q-23 0 -64.5 3t-166.5 30t-245 73t-278.5 147.5t-289.5 238.5zM774 758q0 -154 113.5 -261.5 t277.5 -107.5t277.5 107.5t113.5 261.5q0 152 -114.5 260t-276 108t-276.5 -108t-115 -260zM1034 758q0 51 39 87t92.5 36t92 -36t38.5 -87t-38.5 -87t-92 -36t-92.5 36t-39 87z" />
|
|
||||||
<glyph unicode="J" horiz-adv-x="1712" d="M154 4v1182l577 629h828v-1811h-1405zM307 154h1118v1525h-610v-589h-508v-936z" />
|
|
||||||
<glyph unicode="K" horiz-adv-x="2177" d="M168 119v526q0 55 38 94t93 39h262q55 0 94 -39t39 -94v-526q0 -53 -39 -92t-94 -39h-262q-55 0 -93 39t-38 92zM825 119v1581q0 53 39 92t92 39h265q53 0 92 -39t39 -92v-1581q0 -53 -39 -92t-92 -39h-265q-53 0 -92 39t-39 92zM1483 119v921q0 55 39 94.5t94 39.5h262 q55 0 93 -39t38 -95v-921q0 -53 -38 -92t-93 -39h-262q-55 0 -94 39t-39 92z" />
|
|
||||||
<glyph unicode="L" horiz-adv-x="1728" d="M188 104v1012q0 47 34 81t79 34h21q16 209 170.5 353.5t365.5 144.5t364.5 -144.5t170.5 -353.5h32q45 0 80 -34t35 -81v-1012q0 -47 -33.5 -81.5t-81.5 -34.5h-1124q-45 0 -79 34.5t-34 81.5zM469 1231h776q-16 147 -126.5 248.5t-260.5 101.5q-152 0 -262.5 -101.5 t-126.5 -248.5zM680 670q0 -106 100 -168v-226h197v226q96 59 96 168q0 82 -58.5 139t-140.5 57q-80 0 -137 -57t-57 -139z" />
|
|
||||||
<glyph unicode="M" horiz-adv-x="1972" d="M147 293q0 123 110 209t267 86q160 0 160 -27v778v269q0 23 16.5 38t38.5 15h1030q23 0 39.5 -15.5t16.5 -37.5v-269v-1073h-2q-16 -94 -107.5 -181t-226.5 -87q-156 0 -265.5 87t-109.5 208q0 123 109.5 209t265.5 86q162 0 162 -27v692h-793v-960v-27h-2 q-14 -94 -106.5 -181t-225.5 -87q-156 0 -266.5 87t-110.5 208z" />
|
|
||||||
<glyph unicode="N" horiz-adv-x="2121" d="M166 309v383v193v-127v127h256v770h127h1282h127v-129v-1409v-129h-127h-1409v8q-111 23 -183.5 109.5t-72.5 203.5zM293 309q0 -61 36 -110t93 -70v-12h1409v1409h-1282v-1280h-127v512h-129v-66v-190v-193zM678 246v127h897v-127h-897zM678 502v127h768v-127h-768z M678 758v127h1024v-127h-1024zM678 1014v383h512v-383h-512zM1319 1014v127h256v-127h-256zM1319 1270v127h383v-127h-383z" />
|
|
||||||
<glyph unicode="O" horiz-adv-x="1900" d="M119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63q14 -18 45 -48.5 t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22t-10 17.5 t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46q-8 -3 -15 -3 q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2q-2 2 -7 2t-7 2 h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4t13 25.5t-28 32.5 q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69q10 43 33 16q20 -29 6 -59 q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1q57 0 71 -59q5 -19 5 -35 q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12q-66 -11 -119 -27zM752 1201 q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1q-21 -4 -21 -21q0 -33 33 -12 zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z " />
|
|
||||||
<glyph unicode="P" horiz-adv-x="2043" d="M160 322v968h432v215v109h106h754v-109v-215h432v-968h-432v-109h-106v-109v-106h-648h-106v106v218h-432zM483 537h109v215h106v-215v-215v-218h432v218h107h109v215v215h106v-215h217v323h-1186v-323zM698 1290h648v215h-648v-215zM1452 1075h217v109h-217v-109z" />
|
|
||||||
<glyph unicode="Q" horiz-adv-x="2095" d="M152 334v1122q0 47 32.5 79t77.5 32h1571q47 0 79 -32t32 -79v-1122q0 -47 -32 -79t-79 -32h-1571q-45 0 -77.5 32t-32.5 79zM375 446h1345v897h-1345v-897zM487 55.5q0 22.5 16.5 39t39.5 16.5h1009q23 0 39.5 -16.5t16.5 -39t-16.5 -40t-39.5 -17.5h-1009 q-23 0 -39.5 17.5t-16.5 40zM823 559v672l449 -336z" />
|
|
||||||
<glyph unicode="R" horiz-adv-x="1847" d="M125 811q0 330 234.5 564.5t564 234.5t564 -234.5t234.5 -564.5q0 -332 -234.5 -565.5t-564 -233.5t-564 233.5t-234.5 565.5zM326 811q0 -248 175 -424t422.5 -176t423 176t175.5 424t-175.5 423t-423 175t-422.5 -175t-175 -423zM625 512v598h336q90 0 143 -16 q51 -14 80 -60q31 -43 30 -106q0 -53 -22 -94q-27 -41 -64 -64q-29 -16 -71 -25q33 -10 53 -24q23 -23 31 -35q25 -33 28 -41l54 -133h-199l-92 143q-31 47 -37 52q-20 14 -49 14h-19l-4 -209h-198zM823 811h86q18 0 54 8q20 6 32 21q12 18 13 104q0 35 -21 49 q-16 16 -74 17h-90v-199z" />
|
|
||||||
<glyph unicode="S" horiz-adv-x="1953" d="M137 993.5q0 270.5 190.5 461t460.5 190.5q268 0 460 -190.5t192 -461.5q0 -188 -101 -344q20 -10 39 -26l406 -406q33 -33 33 -80t-33 -82q-33 -33 -82 -32.5t-82 32.5l-406 406q-10 12 -16 26q-182 -145 -410 -145q-270 0 -460.5 190.5t-190.5 461zM338 993.5 q0 -186.5 132 -318.5t318 -132q160 0 283 100l57 47l41 66q70 111 70 237q0 186 -132 318.5t-318.5 132.5t-318.5 -132t-132 -318.5z" />
|
|
||||||
<glyph unicode="T" horiz-adv-x="2066" d="M164 1642l196 197l494 -491l-197 -197l-82 82q2 -74 75 -204t210 -267q215 -215 461 -293l25 -8l-99 98l199 197l491 -492l-196 -198q-72 -72 -187 -73q-113 0 -267 70q-310 141 -646 480q-303 303 -436 620q-77 184 -77 315q0 94 40 160z" />
|
|
||||||
<glyph unicode="U" horiz-adv-x="2420" d="M160 -41v356h2q0 2 -2 7v4q0 37 20 73q6 10 65.5 42t126.5 63l126 57q59 27 61 29q57 27 151.5 59.5t155 61t92.5 67.5q-8 76 -84.5 256t-82.5 291l-2 42q0 177 79 312q88 152 258 213h84h84q170 -61 258 -213q79 -136 79 -312q0 -21 -1 -42q-6 -111 -83 -291t-85 -256 q33 -39 93.5 -67.5t154.5 -61.5t152 -59q2 -2 61 -29l126 -57q67 -31 126 -62.5t66 -42.5q20 -37 20 -73v-4q-2 -4 -2 -7h2v-356h-20h-1031h-1030h-20z" />
|
|
||||||
<glyph unicode="V" horiz-adv-x="1996" d="M139 6v1837h1719v-1837h-1719zM225 80h172v145h-172v-145zM225 299h172v147h-172v-147zM225 520h172v148h-172v-148zM225 741h172v146h-172v-146zM225 961h172v147h-172v-147zM225 1182h172v147h-172v-147zM225 1401h172v147h-172v-147zM225 1622h172v147h-172v-147z M483 80h1030v807h-1030v-807zM483 961h1030v808h-1030v-808zM1599 80h173v145h-173v-145zM1599 299h173v147h-173v-147zM1599 520h173v148h-173v-148zM1599 741h173v146h-173v-146zM1599 961h173v147h-173v-147zM1599 1182h173v147h-173v-147zM1599 1401h173v147h-173v-147z M1599 1622h173v147h-173v-147z" />
|
|
||||||
<glyph unicode="W" horiz-adv-x="2418" d="M82 1130q229 252 529 383.5t630 131.5q315 0 595 -136.5t501 -378.5l-213 -233q-383 449 -889 449q-264 0 -505 -117t-435 -332zM434 743q152 166 354.5 253t422 87t421 -87t353.5 -253l-213 -233q-270 299 -562 299q-295 0 -565 -299zM961 278.5q0 112.5 73 194.5 q72 80 175.5 80t174.5 -80q74 -82 74 -194.5t-74 -192.5q-72 -82 -175 -82t-175 82q-73 80 -73 192.5z" />
|
|
||||||
<glyph unicode="X" horiz-adv-x="1931" d="M152 229l585 584l-585 586l229 227l586 -584l583 584l230 -227l-586 -586l586 -584l-230 -229l-583 584l-586 -584z" />
|
|
||||||
<glyph unicode="Y" horiz-adv-x="2101" d="M150 1364l288 -287l342 90l92 344l-286 287q36 5 71 5q80 0 158 -25q113 -37 199 -123q141 -141 147 -340l-176 -178q-53 -53 -53 -127q0 -41 16 -80l-131 -131l-10 10q-73 -24 -150 -24q-59 0 -119 14q-140 33 -243 135q-86 86 -124 200q-26 79 -26 160q0 35 5 70z M268 -6l121 362l174 19l549 549l-43 43q-16 16 -16 43q0 25 16 41l80 79l516 519q18 16 44 16t42 -16l170 -172q18 -16 18 -42t-18 -42l-596 -598q-16 -16 -42 -16.5t-44 16.5l-41 43l-211 -209l-338 -340l-20 -174zM1073 543l131 133q37 -18 78 -18q15 0 31 2q57 9 98 51 l80 80l369 -369q10 -8 26 -25q70 -70 70 -168t-69.5 -167.5t-168 -69.5t-168.5 69q-10 10 -22 27zM1587 260q0 -43 29 -72q31 -31 73 -30.5t70 30.5q31 29 31 72t-31 72q-29 29 -70.5 28.5t-72.5 -28.5q-29 -29 -29 -72z" />
|
|
||||||
<glyph unicode="Z" horiz-adv-x="1525" d="M182 -23l582 928h-465l1044 928l-464 -696h464z" />
|
|
||||||
<glyph unicode="[" />
|
|
||||||
<glyph unicode="\" />
|
|
||||||
<glyph unicode="]" />
|
|
||||||
<glyph unicode="^" />
|
|
||||||
<glyph unicode="_" />
|
|
||||||
<glyph unicode="`" />
|
|
||||||
<glyph unicode="a" />
|
|
||||||
<glyph unicode="b" />
|
|
||||||
<glyph unicode="c" />
|
|
||||||
<glyph unicode="d" />
|
|
||||||
<glyph unicode="e" />
|
|
||||||
<glyph unicode="f" />
|
|
||||||
<glyph unicode="g" />
|
|
||||||
<glyph unicode="h" />
|
|
||||||
<glyph unicode="i" />
|
|
||||||
<glyph unicode="j" />
|
|
||||||
<glyph unicode="k" />
|
|
||||||
<glyph unicode="l" />
|
|
||||||
<glyph unicode="m" />
|
|
||||||
<glyph unicode="n" />
|
|
||||||
<glyph unicode="o" />
|
|
||||||
<glyph unicode="p" />
|
|
||||||
<glyph unicode="q" />
|
|
||||||
<glyph unicode="r" />
|
|
||||||
<glyph unicode="s" />
|
|
||||||
<glyph unicode="t" />
|
|
||||||
<glyph unicode="u" />
|
|
||||||
<glyph unicode="v" />
|
|
||||||
<glyph unicode="w" />
|
|
||||||
<glyph unicode="x" />
|
|
||||||
<glyph unicode="y" />
|
|
||||||
<glyph unicode="z" />
|
|
||||||
<glyph unicode="{" />
|
|
||||||
<glyph unicode="|" />
|
|
||||||
<glyph unicode="}" />
|
|
||||||
<glyph unicode="~" horiz-adv-x="1720" d="M204 393.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM400 411.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM735 1117.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="­" />
|
|
||||||
<glyph unicode="²" horiz-adv-x="1734" d="M80 494v589h788v492l787 -787l-787 -786v492h-788z" />
|
|
||||||
<glyph unicode="³" horiz-adv-x="1742" d="M84 782h491v787h590v-787h494l-787 -786z" />
|
|
||||||
<glyph unicode="¹" horiz-adv-x="1816" d="M121 786l788 787l787 -787h-492v-786h-590v786h-493z" />
|
|
||||||
<glyph unicode="À" horiz-adv-x="2029" d="M111 -2v227v905v113v113h790v-226h-565v-905h1358v226h225v-226v-227h-225h-1583zM1024 315q-6 68 -6 133q0 415 262 672q98 96 188 135l-208 215h659v-718l-184 219q-35 17 -74 17q-26 0 -52 -8q-67 -19 -135.5 -75.5t-134 -130.5t-123 -154.5t-100.5 -148.5t-67 -111z " />
|
|
||||||
<glyph unicode="Â" horiz-adv-x="2029" d="M111 -2v227v905v113v113h790v-226h-565v-905h1358v226h225v-226v-227h-225h-1583zM1024 315q-6 68 -6 133q0 415 262 672q98 96 188 135l-208 215h659v-718l-184 219q-35 17 -74 17q-26 0 -52 -8q-67 -19 -135.5 -75.5t-134 -130.5t-123 -154.5t-100.5 -148.5t-67 -111z " />
|
|
||||||
<glyph unicode="Ã" horiz-adv-x="2029" d="M933 2175.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM1129 2193.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM1464 2899.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5zM111 -2v227v905v113v113h790v-226h-565v-905h1358v226h225v-226v-227h-225h-1583zM1024 315q-6 68 -6 133q0 415 262 672q98 96 188 135l-208 215h659v-718l-184 219q-35 17 -74 17q-26 0 -52 -8q-67 -19 -135.5 -75.5t-134 -130.5t-123 -154.5 t-100.5 -148.5t-67 -111z" />
|
|
||||||
<glyph unicode="È" horiz-adv-x="2426" d="M106 14v1420v104h2214v-1524h-2214zM244 256l618 573l-618 465v-1038zM309 1399l924 -676l924 676h-1848zM324 154h1736l-563 618l-268 -199l-266 189zM1587 834l596 -641v1101z" />
|
|
||||||
<glyph unicode="Ê" horiz-adv-x="2426" d="M106 14v1420v104h2214v-1524h-2214zM244 256l618 573l-618 465v-1038zM309 1399l924 -676l924 676h-1848zM324 154h1736l-563 618l-268 -199l-266 189zM1587 834l596 -641v1101z" />
|
|
||||||
<glyph unicode="Ì" horiz-adv-x="2330" d="M121 758q348 365 842 465q123 25 202 24q23 0 65 -3t167 -29.5t244.5 -72.5t278.5 -146.5t290 -237.5q-131 -137 -287 -238.5t-285 -147.5t-238.5 -73t-170.5 -29l-64 -4q-23 0 -64.5 3t-166.5 30t-245 73t-278.5 147.5t-289.5 238.5zM774 758q0 -154 113.5 -261.5 t277.5 -107.5t277.5 107.5t113.5 261.5q0 152 -114.5 260t-276 108t-276.5 -108t-115 -260zM1034 758q0 51 39 87t92.5 36t92 -36t38.5 -87t-38.5 -87t-92 -36t-92.5 36t-39 87z" />
|
|
||||||
<glyph unicode="Î" horiz-adv-x="2330" d="M121 758q348 365 842 465q123 25 202 24q23 0 65 -3t167 -29.5t244.5 -72.5t278.5 -146.5t290 -237.5q-131 -137 -287 -238.5t-285 -147.5t-238.5 -73t-170.5 -29l-64 -4q-23 0 -64.5 3t-166.5 30t-245 73t-278.5 147.5t-289.5 238.5zM774 758q0 -154 113.5 -261.5 t277.5 -107.5t277.5 107.5t113.5 261.5q0 152 -114.5 260t-276 108t-276.5 -108t-115 -260zM1034 758q0 51 39 87t92.5 36t92 -36t38.5 -87t-38.5 -87t-92 -36t-92.5 36t-39 87z" />
|
|
||||||
<glyph unicode="Ñ" horiz-adv-x="2121" d="M534 2175.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM730 2193.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM1065 2899.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5zM166 309v383v193v-127v127h256v770h127h1282h127v-129v-1409v-129h-127h-1409v8q-111 23 -183.5 109.5t-72.5 203.5zM293 309q0 -61 36 -110t93 -70v-12h1409v1409h-1282v-1280h-127v512h-129v-66v-190v-193zM678 246v127h897v-127h-897zM678 502v127 h768v-127h-768zM678 758v127h1024v-127h-1024zM678 1014v383h512v-383h-512zM1319 1014v127h256v-127h-256zM1319 1270v127h383v-127h-383z" />
|
|
||||||
<glyph unicode="Ò" horiz-adv-x="1900" d="M119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63q14 -18 45 -48.5 t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22t-10 17.5 t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46q-8 -3 -15 -3 q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2q-2 2 -7 2t-7 2 h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4t13 25.5t-28 32.5 q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69q10 43 33 16q20 -29 6 -59 q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1q57 0 71 -59q5 -19 5 -35 q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12q-66 -11 -119 -27zM752 1201 q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1q-21 -4 -21 -21q0 -33 33 -12 zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z " />
|
|
||||||
<glyph unicode="Ô" horiz-adv-x="1900" d="M119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63q14 -18 45 -48.5 t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22t-10 17.5 t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46q-8 -3 -15 -3 q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2q-2 2 -7 2t-7 2 h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4t13 25.5t-28 32.5 q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69q10 43 33 16q20 -29 6 -59 q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1q57 0 71 -59q5 -19 5 -35 q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12q-66 -11 -119 -27zM752 1201 q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1q-21 -4 -21 -21q0 -33 33 -12 zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z " />
|
|
||||||
<glyph unicode="Õ" horiz-adv-x="1900" d="M294 2175.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM490 2193.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM825 2899.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5zM119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63 q14 -18 45 -48.5t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22 t-10 17.5t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46 q-8 -3 -15 -3q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2 q-2 2 -7 2t-7 2h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4 t13 25.5t-28 32.5q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69 q10 43 33 16q20 -29 6 -59q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1 q57 0 71 -59q5 -19 5 -35q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12 q-66 -11 -119 -27zM752 1201q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1 q-21 -4 -21 -21q0 -33 33 -12zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19 q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z" />
|
|
||||||
<glyph unicode="Ù" horiz-adv-x="2420" d="M160 -41v356h2q0 2 -2 7v4q0 37 20 73q6 10 65.5 42t126.5 63l126 57q59 27 61 29q57 27 151.5 59.5t155 61t92.5 67.5q-8 76 -84.5 256t-82.5 291l-2 42q0 177 79 312q88 152 258 213h84h84q170 -61 258 -213q79 -136 79 -312q0 -21 -1 -42q-6 -111 -83 -291t-85 -256 q33 -39 93.5 -67.5t154.5 -61.5t152 -59q2 -2 61 -29l126 -57q67 -31 126 -62.5t66 -42.5q20 -37 20 -73v-4q-2 -4 -2 -7h2v-356h-20h-1031h-1030h-20z" />
|
|
||||||
<glyph unicode="Û" horiz-adv-x="2420" d="M160 -41v356h2q0 2 -2 7v4q0 37 20 73q6 10 65.5 42t126.5 63l126 57q59 27 61 29q57 27 151.5 59.5t155 61t92.5 67.5q-8 76 -84.5 256t-82.5 291l-2 42q0 177 79 312q88 152 258 213h84h84q170 -61 258 -213q79 -136 79 -312q0 -21 -1 -42q-6 -111 -83 -291t-85 -256 q33 -39 93.5 -67.5t154.5 -61.5t152 -59q2 -2 61 -29l126 -57q67 -31 126 -62.5t66 -42.5q20 -37 20 -73v-4q-2 -4 -2 -7h2v-356h-20h-1031h-1030h-20z" />
|
|
||||||
<glyph unicode="ã" d="M-656 510.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM-460 528.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM-125 1234.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="ñ" d="M-656 510.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM-460 528.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM-125 1234.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="õ" d="M-656 510.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM-460 528.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM-125 1234.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="Œ" horiz-adv-x="4327" d="M2007 14v1420v104h2214v-1524h-2214zM2145 256l618 573l-618 465v-1038zM2210 1399l924 -676l924 676h-1848zM2225 154h1736l-563 618l-268 -199l-266 189zM3488 834l596 -641v1101zM119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588 t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63q14 -18 45 -48.5t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27 t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22t-10 17.5t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22 q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46q-8 -3 -15 -3q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4 q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2q-2 2 -7 2t-7 2h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44 q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4t13 25.5t-28 32.5q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2 q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69q10 43 33 16q20 -29 6 -59q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27 q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1q57 0 71 -59q5 -19 5 -35q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5 q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12q-66 -11 -119 -27zM752 1201q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26 q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1q-21 -4 -21 -21q0 -33 33 -12zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5 t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z" />
|
|
||||||
<glyph unicode="˜" horiz-adv-x="512" d="M-656 510.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM-460 528.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM-125 1234.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="–" horiz-adv-x="1024" d="M205 512v205h614v-205h-614z" />
|
|
||||||
<glyph unicode="—" d="M205 512v205h1638v-205h-1638z" />
|
|
||||||
<glyph unicode="‹" horiz-adv-x="1931" d="M160 707l919 708v-534l693 534v-1417l-693 534v-534z" />
|
|
||||||
<glyph unicode="›" horiz-adv-x="1976" d="M182 -6v1417l692 -534v534l920 -709l-920 -708v534z" />
|
|
||||||
<glyph unicode="™" horiz-adv-x="4038" d="M2213 293q0 123 110 209t267 86q160 0 160 -27v778v269q0 23 16.5 38t38.5 15h1030q23 0 39.5 -15.5t16.5 -37.5v-269v-1073h-2q-16 -94 -107.5 -181t-226.5 -87q-156 0 -265.5 87t-109.5 208q0 123 109.5 209t265.5 86q162 0 162 -27v692h-793v-960v-27h-2 q-14 -94 -106.5 -181t-225.5 -87q-156 0 -266.5 87t-110.5 208zM164 1642l196 197l494 -491l-197 -197l-82 82q2 -74 75 -204t210 -267q215 -215 461 -293l25 -8l-99 98l199 197l491 -492l-196 -198q-72 -72 -187 -73q-113 0 -267 70q-310 141 -646 480q-303 303 -436 620 q-77 184 -77 315q0 94 40 160z" />
|
|
||||||
<glyph unicode="" horiz-adv-x="500" d="M0 0v0v0v0v0z" />
|
|
||||||
</font>
|
|
||||||
</defs></svg>
|
|
Before Width: | Height: | Size: 35 KiB |
@ -1,318 +0,0 @@
|
|||||||
/* effect-1 */
|
|
||||||
|
|
||||||
.effect-1:before,
|
|
||||||
.effect-1:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
bottom:20px;
|
|
||||||
left:10px;
|
|
||||||
width:50%;
|
|
||||||
height:20%;
|
|
||||||
max-width:300px;
|
|
||||||
-webkit-box-shadow: 0 20px 10px rgba(0, 0, 0, 0.75);
|
|
||||||
-moz-box-shadow: 0 20px 10px rgba(0, 0, 0, 0.75);
|
|
||||||
box-shadow: 0 20px 10px rgba(0, 0, 0, 0.75);
|
|
||||||
-webkit-transform:rotate(-4deg);
|
|
||||||
-moz-transform:rotate(-4deg);
|
|
||||||
-o-transform:rotate(-4deg);
|
|
||||||
-ms-transform:rotate(-4deg);
|
|
||||||
transform:rotate(-4deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-1:after {
|
|
||||||
right:10px;
|
|
||||||
left:auto;
|
|
||||||
-webkit-transform:rotate(4deg);
|
|
||||||
-moz-transform:rotate(4deg);
|
|
||||||
-o-transform:rotate(4deg);
|
|
||||||
-ms-transform:rotate(4deg);
|
|
||||||
transform:rotate(4deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-2 */
|
|
||||||
|
|
||||||
.effect-2:before,
|
|
||||||
.effect-2:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
bottom:20px;
|
|
||||||
left:10px;
|
|
||||||
width:50%;
|
|
||||||
height:20%;
|
|
||||||
max-width:300px;
|
|
||||||
-webkit-box-shadow:0 22px 10px rgba(0, 0, 0, 0.6);
|
|
||||||
-moz-box-shadow:0 22px 10px rgba(0, 0, 0, 0.6);
|
|
||||||
box-shadow:0 22px 10px rgba(0, 0, 0, 0.6);
|
|
||||||
-webkit-transform:rotate(-8deg);
|
|
||||||
-moz-transform:rotate(-8deg);
|
|
||||||
-o-transform:rotate(-8deg);
|
|
||||||
-ms-transform:rotate(-8deg);
|
|
||||||
transform:rotate(-8deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-2:after {
|
|
||||||
right:10px;
|
|
||||||
left:auto;
|
|
||||||
-webkit-transform:rotate(8deg);
|
|
||||||
-moz-transform:rotate(8deg);
|
|
||||||
-o-transform:rotate(8deg);
|
|
||||||
-ms-transform:rotate(8deg);
|
|
||||||
transform:rotate(8deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-3 */
|
|
||||||
|
|
||||||
.effect-3:before,
|
|
||||||
.effect-3:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
bottom:8px;
|
|
||||||
left:2%;
|
|
||||||
width:48.5%;
|
|
||||||
height:55%;
|
|
||||||
-webkit-box-shadow:0 7px 9px rgba(0, 0, 0, 0.75);
|
|
||||||
-moz-box-shadow:0 7px 9px rgba(0, 0, 0, 0.75);
|
|
||||||
box-shadow:0 7px 9px rgba(0, 0, 0, 0.75);
|
|
||||||
-webkit-transform: rotate(2deg);
|
|
||||||
-moz-transform: rotate(2deg);
|
|
||||||
-o-transform: rotate(2deg);
|
|
||||||
-ms-transform: rotate(2deg);
|
|
||||||
transform: rotate(2deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-3:after {
|
|
||||||
right:2%;
|
|
||||||
left:auto;
|
|
||||||
-webkit-transform: rotate(-2deg);
|
|
||||||
-moz-transform: rotate(-2deg);
|
|
||||||
-o-transform: rotate(-2deg);
|
|
||||||
-ms-transform: rotate(-2deg);
|
|
||||||
transform: rotate(-2deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-4 */
|
|
||||||
|
|
||||||
.effect-4:before,
|
|
||||||
.effect-4:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
bottom:12px;
|
|
||||||
left:2%;
|
|
||||||
width:49%;
|
|
||||||
height:55%;
|
|
||||||
-webkit-box-shadow:0 12px 18px rgba(0, 0, 0, 0.75);
|
|
||||||
-moz-box-shadow:0 12px 18px rgba(0, 0, 0, 0.75);
|
|
||||||
box-shadow:0 12px 18px rgba(0, 0, 0, 0.75);
|
|
||||||
-webkit-transform: rotate(3deg);
|
|
||||||
-moz-transform: rotate(3deg);
|
|
||||||
-o-transform: rotate(3deg);
|
|
||||||
-ms-transform: rotate(3deg);
|
|
||||||
transform: rotate(3deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-4:after {
|
|
||||||
right:2%;
|
|
||||||
left:auto;
|
|
||||||
-webkit-transform: rotate(-3deg);
|
|
||||||
-moz-transform: rotate(-3deg);
|
|
||||||
-o-transform: rotate(-3deg);
|
|
||||||
-ms-transform: rotate(-3deg);
|
|
||||||
transform: rotate(-3deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-5 */
|
|
||||||
|
|
||||||
.effect-5:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:-2.5%;
|
|
||||||
bottom:15px;
|
|
||||||
width:105%;
|
|
||||||
height:8px;
|
|
||||||
-webkit-box-shadow: 0px 20px 5px rgba(0, 0, 0, 0.5);
|
|
||||||
-moz-box-shadow: 0px 20px 5px rgba(0, 0, 0, 0.5);
|
|
||||||
box-shadow: 0px 20px 5px rgba(0, 0, 0, 0.5);
|
|
||||||
-webkit-border-radius:10px;
|
|
||||||
-moz-border-radius:10px;
|
|
||||||
border-radius:10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-6 */
|
|
||||||
|
|
||||||
.effect-6:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:-3.5%;
|
|
||||||
bottom:25px;
|
|
||||||
width:107%;
|
|
||||||
height:15px;
|
|
||||||
-webkit-box-shadow: 0px 30px 9px rgba(0, 0, 0, 0.5);
|
|
||||||
-moz-box-shadow: 0px 30px 9px rgba(0, 0, 0, 0.5);
|
|
||||||
box-shadow: 0px 30px 9px rgba(0, 0, 0, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-7 */
|
|
||||||
|
|
||||||
.effect-7:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:0;
|
|
||||||
right:0;
|
|
||||||
top:10px;
|
|
||||||
bottom:10px;
|
|
||||||
-webkit-box-shadow: 0 0 8px rgba(0,0,0,0.5);
|
|
||||||
-moz-box-shadow: 0 0 8px rgba(0,0,0,0.5);
|
|
||||||
box-shadow: 0 0 8px rgba(0,0,0,0.5);
|
|
||||||
-webkit-border-radius:15px;
|
|
||||||
-moz-border-radius:15px;
|
|
||||||
border-radius:15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-8 */
|
|
||||||
|
|
||||||
.effect-8:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:0px;
|
|
||||||
right:0;
|
|
||||||
top:15px;
|
|
||||||
bottom:15px;
|
|
||||||
-webkit-box-shadow: 0px 0 20px rgba(0,0,0,0.8);
|
|
||||||
-moz-box-shadow: 0px 0 20px rgba(0,0,0,0.8);
|
|
||||||
box-shadow: 0px 0 20px rgba(0,0,0,0.8);
|
|
||||||
-webkit-border-radius:35px;
|
|
||||||
-moz-border-radius:35px;
|
|
||||||
border-radius:35px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-9 */
|
|
||||||
|
|
||||||
.effect-9:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:15px;
|
|
||||||
max-width:200px;
|
|
||||||
-webkit-box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(60deg);
|
|
||||||
-moz-transform:skew(60deg);
|
|
||||||
-o-transform:skew(60deg);
|
|
||||||
-ms-transform:skew(60deg);
|
|
||||||
transform:skew(60deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-10 */
|
|
||||||
|
|
||||||
.effect-10:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:15px;
|
|
||||||
max-width:200px;
|
|
||||||
-webkit-box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(60deg);
|
|
||||||
-moz-transform:skew(60deg);
|
|
||||||
-o-transform:skew(60deg);
|
|
||||||
-ms-transform:skew(60deg);
|
|
||||||
-webkit-transform:skew(60deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-10:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
right:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:15px;
|
|
||||||
max-width:200px;
|
|
||||||
-webkit-box-shadow: 85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow: 85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow: 85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(-60deg);
|
|
||||||
-moz-transform:skew(-60deg);
|
|
||||||
-o-transform:skew(-60deg);
|
|
||||||
-ms-transform:skew(-60deg);
|
|
||||||
transform:skew(-60deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-11 */
|
|
||||||
|
|
||||||
.effect-11:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:75px;
|
|
||||||
max-width:200px;
|
|
||||||
-webkit-box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(20deg);
|
|
||||||
-moz-transform:skew(20deg);
|
|
||||||
-o-transform:skew(20deg);
|
|
||||||
-ms-transform:skew(20deg);
|
|
||||||
transform:skew(20deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-11:after {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-12 */
|
|
||||||
|
|
||||||
.effect-12:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:75px;
|
|
||||||
-webkit-box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(20deg);
|
|
||||||
-moz-transform:skew(20deg);
|
|
||||||
-o-transform:skew(20deg);
|
|
||||||
-ms-transform:skew(20deg);
|
|
||||||
transform:skew(20deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-12:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
right:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:75px;
|
|
||||||
-webkit-box-shadow:86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(-20deg);
|
|
||||||
-moz-transform:skew(-20deg);
|
|
||||||
-o-transform:skew(-20deg);
|
|
||||||
-ms-transform:skew(-20deg);
|
|
||||||
transform:skew(-20deg);
|
|
||||||
}
|
|
@ -1,420 +0,0 @@
|
|||||||
html {
|
|
||||||
background: url("../img/back2-light.png") center 0;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
color: black;
|
|
||||||
|
|
||||||
font: 105% "Hoefler Text", Garamond, Baskerville, "Baskerville Old Face", "Times New Roman", serif;
|
|
||||||
font-weight: 100;
|
|
||||||
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
h1, h2, h3, h4 {
|
|
||||||
text-shadow: #FFF 0 -1px 1px, #AAA 0 0 5px;
|
|
||||||
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", "Liberation Sans", sans-serif;
|
|
||||||
|
|
||||||
font-weight: 100;
|
|
||||||
}
|
|
||||||
strong {
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
h1 .sub {
|
|
||||||
font-size: 0.5em;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: 250%;
|
|
||||||
}
|
|
||||||
h2 {
|
|
||||||
font-size: inherit;
|
|
||||||
}
|
|
||||||
p, blockquote, ul {
|
|
||||||
text-shadow: #FFF 0 -1px 1px, #CCC 0 0 3px;
|
|
||||||
}
|
|
||||||
p {
|
|
||||||
text-align: justify;
|
|
||||||
}
|
|
||||||
ul {
|
|
||||||
font-size: 90%;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
ul.clean {
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
blockquote {
|
|
||||||
font-size: 90%;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
a, .link, :link {
|
|
||||||
color: inherit;
|
|
||||||
text-decoration: underline;
|
|
||||||
cursor: pointer;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
a:hover, .link:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
label {
|
|
||||||
display: inline-block;
|
|
||||||
width: 15em;
|
|
||||||
}
|
|
||||||
img {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Classes */
|
|
||||||
.button {
|
|
||||||
display: inline-block;
|
|
||||||
background: rgba(255, 255, 255, 0.7);
|
|
||||||
border: 1px solid rgba(255, 255, 255, 1);
|
|
||||||
border-radius: 5px;
|
|
||||||
-webkit-box-shadow: 1px 1px 6px rgba(200, 200, 200, 0.5);
|
|
||||||
-moz-box-shadow: 1px 1px 6px rgba(200, 200, 200, 0.5);
|
|
||||||
box-shadow: 1px 1px 6px rgba(200, 200, 200, 0.5);
|
|
||||||
padding: 1em;
|
|
||||||
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.button:hover {
|
|
||||||
background: rgba(240, 240, 240, 0.5);
|
|
||||||
border-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Page */
|
|
||||||
header {
|
|
||||||
position: relative;
|
|
||||||
z-index: 99;
|
|
||||||
background: url("../img/back2-dark.png") center 0;
|
|
||||||
border-bottom: 1px solid #FFF;
|
|
||||||
-webkit-box-shadow: 0 0 50px #666;
|
|
||||||
-moz-box-shadow: 0 0 50px #666;
|
|
||||||
box-shadow: 0 0 50px #666;
|
|
||||||
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 150px;
|
|
||||||
margin: 0;
|
|
||||||
padding: 1em 0 0;
|
|
||||||
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
header h1 {
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
color: white;
|
|
||||||
font-size: 350%;
|
|
||||||
}
|
|
||||||
header .logo {
|
|
||||||
height: 128px;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
header .divider {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
bottom: -90px;
|
|
||||||
}
|
|
||||||
#fixedheader {
|
|
||||||
position: fixed;
|
|
||||||
z-index: 98;
|
|
||||||
background: url("../img/back2-dark.png") center 0;
|
|
||||||
border-bottom: 1px solid #FFF;
|
|
||||||
-webkit-box-shadow: 0 0 10px #000;
|
|
||||||
-moz-box-shadow: 0 0 10px #000;
|
|
||||||
box-shadow: 0 0 10px #000;
|
|
||||||
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 50px;
|
|
||||||
padding: 10px 0 0;
|
|
||||||
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
#fixedheader h2 {
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
color: white;
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
header a, header .link, header :link,
|
|
||||||
#fixedheader a, #fixedheader .link, #fixedheader :link {
|
|
||||||
font-family: Exo;
|
|
||||||
font-weight: 600;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
header a:hover, header .link:hover,
|
|
||||||
#fixedheader a:hover, #fixedheader .link:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
footer {
|
|
||||||
clear: both;
|
|
||||||
padding: 10em 0 1em;
|
|
||||||
|
|
||||||
color: #333;
|
|
||||||
text-shadow: #FFF 0 -1px 1px, #999 0 0 5px;
|
|
||||||
|
|
||||||
text-align: center;
|
|
||||||
font-size: 80%;
|
|
||||||
}
|
|
||||||
section {
|
|
||||||
position: relative;
|
|
||||||
width: 950px;
|
|
||||||
margin: 0 auto 2em;
|
|
||||||
padding: 1em 0 0;
|
|
||||||
}
|
|
||||||
section.heading {
|
|
||||||
background: rgba(200, 200, 200, 0.3);
|
|
||||||
border: 1px solid rgba(200, 200, 200, 0.5);
|
|
||||||
border-width: 0 0 1px;
|
|
||||||
-webkit-box-shadow: inset 0 0 15px rgba(255, 255, 255, 0.5), 2px 2px 6px rgba(200, 200, 200, 0.5);
|
|
||||||
-moz-box-shadow: inset 0 0 15px rgba(255, 255, 255, 0.5), 2px 2px 6px rgba(200, 200, 200, 0.5);
|
|
||||||
box-shadow: inset 0 0 15px rgba(255, 255, 255, 0.5), 2px 2px 6px rgba(200, 200, 200, 0.5);
|
|
||||||
|
|
||||||
width: 100%;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
section.heading>div {
|
|
||||||
width: 950px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 1em 0;
|
|
||||||
}
|
|
||||||
hr {
|
|
||||||
background: url("../img/Dividers/Simple.png") center center no-repeat;
|
|
||||||
border: none;
|
|
||||||
height: 4em;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
blockquote {
|
|
||||||
margin-left: 5em;
|
|
||||||
}
|
|
||||||
blockquote:before {
|
|
||||||
content: "❝";
|
|
||||||
position: absolute;
|
|
||||||
margin: -0.5ex 0 0 -1em;
|
|
||||||
font-size: 300%;
|
|
||||||
font-weight: 100;
|
|
||||||
}
|
|
||||||
#sendtophone input[type=text] {
|
|
||||||
border: 1px solid #666;
|
|
||||||
border-radius: 5px;
|
|
||||||
width: 15em;
|
|
||||||
|
|
||||||
-webkit-box-shadow: 0 0 5px #AAA;
|
|
||||||
-moz-box-shadow: 0 0 5px #AAA;
|
|
||||||
box-shadow: 0 0 5px #AAA;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Utilities */
|
|
||||||
.side {
|
|
||||||
float: right;
|
|
||||||
margin: 1em -10em 1em 1em;
|
|
||||||
}
|
|
||||||
.sidebox {
|
|
||||||
background: url("../img/Dividers/Divider_H.png") center bottom no-repeat;
|
|
||||||
position: relative;
|
|
||||||
z-index: 2;
|
|
||||||
float: right;
|
|
||||||
margin: 1em;
|
|
||||||
width: 546px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.sidebox .clip {
|
|
||||||
overflow: hidden;
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
.badge.appstore {
|
|
||||||
position: fixed;
|
|
||||||
display: none;
|
|
||||||
z-index: 100;
|
|
||||||
|
|
||||||
/* appstore-bubble.png *
|
|
||||||
top: 8px;
|
|
||||||
right: 5px;
|
|
||||||
*/
|
|
||||||
/* appstore.png */
|
|
||||||
top: 25px;
|
|
||||||
right: 25px;
|
|
||||||
width: 200px;
|
|
||||||
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.badge.appstore img {
|
|
||||||
width: 200px;
|
|
||||||
border-radius: 5px;
|
|
||||||
-webkit-box-shadow: 0 0 30px #AAA;
|
|
||||||
-moz-box-shadow: 0 0 30px #AAA;
|
|
||||||
box-shadow: 0 0 30px #AAA;
|
|
||||||
}
|
|
||||||
.badge.appstore:hover img {
|
|
||||||
-webkit-box-shadow: 0 0 30px #FFF;
|
|
||||||
-moz-box-shadow: 0 0 30px #FFF;
|
|
||||||
box-shadow: 0 0 30px #FFF;
|
|
||||||
}
|
|
||||||
header .badge.appstore {
|
|
||||||
position: absolute;
|
|
||||||
display: block;
|
|
||||||
|
|
||||||
top: auto;
|
|
||||||
/* appstore-bubble.png *
|
|
||||||
bottom: -73px;
|
|
||||||
*/
|
|
||||||
/* appstore.png
|
|
||||||
bottom: -25px;
|
|
||||||
*/
|
|
||||||
top: 125px;
|
|
||||||
}
|
|
||||||
.tip {
|
|
||||||
background: url("../img/tip-above.png") no-repeat;
|
|
||||||
color: white;
|
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
display: block;
|
|
||||||
right: 65px;
|
|
||||||
width: 410px;
|
|
||||||
height: 60px;
|
|
||||||
padding: 12px 20px;
|
|
||||||
margin-top: -60px;
|
|
||||||
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
|
|
||||||
font: 14px "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", "Liberation Sans", sans-serif;
|
|
||||||
}
|
|
||||||
.tip.phone {
|
|
||||||
background: url("../img/tip-below.png") no-repeat;
|
|
||||||
padding: 23px 20px;
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
.badge {
|
|
||||||
position: absolute;
|
|
||||||
right: 20px;
|
|
||||||
top: 20px;
|
|
||||||
}
|
|
||||||
.footnote {
|
|
||||||
color: #444;
|
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
width: inherit;
|
|
||||||
bottom: 2px;
|
|
||||||
|
|
||||||
text-align: center;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
.footnote a:hover {
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
*>.nothover {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
*:hover>.nothover {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
*>.hover {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
*:hover>.hover {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
.columns {
|
|
||||||
position: relative;
|
|
||||||
clear: both;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.columns>div {
|
|
||||||
float: left;
|
|
||||||
width: 25%;
|
|
||||||
height: 22em;
|
|
||||||
margin: 0 4%;
|
|
||||||
padding: 3em 0 1em;
|
|
||||||
text-align: justify;
|
|
||||||
font-size: smaller;
|
|
||||||
}
|
|
||||||
.columns h2 {
|
|
||||||
font-size: 120%;
|
|
||||||
}
|
|
||||||
.columns .columnhead {
|
|
||||||
}
|
|
||||||
.box {
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
font-size: 0;
|
|
||||||
}
|
|
||||||
.box img {
|
|
||||||
border: 1px solid white;
|
|
||||||
}
|
|
||||||
.hoverShow {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.center {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.clear {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
*:hover>.hoverShow {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.previous, a.next {
|
|
||||||
display: block;
|
|
||||||
|
|
||||||
font-size: 150%;
|
|
||||||
font-weight: 400;
|
|
||||||
text-align: center;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
a.previous {
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
a.previous:before {
|
|
||||||
content: "< ";
|
|
||||||
}
|
|
||||||
a.next {
|
|
||||||
}
|
|
||||||
a.next:after {
|
|
||||||
content: " >";
|
|
||||||
}
|
|
||||||
|
|
||||||
#ribbon {
|
|
||||||
background: url("../img/ribbon-join-beta.png");
|
|
||||||
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
margin-top: -1em;
|
|
||||||
width: 184px;
|
|
||||||
height: 184px;
|
|
||||||
}
|
|
||||||
#frontpage .heading {
|
|
||||||
height: 100% !important;
|
|
||||||
padding-top: 100px;
|
|
||||||
}
|
|
||||||
#frontpage #about {
|
|
||||||
padding-top: 4em;
|
|
||||||
}
|
|
||||||
#frontpage .sidebox {
|
|
||||||
background-position: center 397px;
|
|
||||||
margin-right: -100px;
|
|
||||||
}
|
|
||||||
#frontpage .sidebox .clip {
|
|
||||||
height: 416px;
|
|
||||||
margin-bottom: 2em;
|
|
||||||
}
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<!-- Google Analytics -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _gaq = _gaq || [];
|
|
||||||
_gaq.push(['_setAccount', 'UA-90535-15']);
|
|
||||||
_gaq.push(['_trackPageview']);
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
||||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body onload="javascript:void(function(w){try{_gaq._getAsyncTracker()._setVar(w)}catch(e){try{__utmSetVar(w)}catch(e){pageTracker._setVar(w)}}alert('Done. You are now excluded from tracking.')}('exclude_me'));void(0);">
|
|
||||||
|
|
||||||
<h1>Excluding you from Google Analytics web tracking for this site.</h1>
|
|
||||||
|
|
||||||
<p>After the pop-up appears, you should be excluded from any web tracking done by Google Analytics on this web site.</p>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,118 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
width="135px" height="40px" viewBox="0 0 135 40" enable-background="new 0 0 135 40" xml:space="preserve">
|
|
||||||
<g>
|
|
||||||
<path fill="#FFFFFF" d="M134.032,35.268c0,2.116-1.714,3.83-3.834,3.83H4.729c-2.119,0-3.839-1.714-3.839-3.83V4.725
|
|
||||||
c0-2.115,1.72-3.835,3.839-3.835h125.468c2.121,0,3.834,1.72,3.834,3.835L134.032,35.268L134.032,35.268z"/>
|
|
||||||
<path fill="#A6A6A6" d="M130.198,39.989H4.729C2.122,39.989,0,37.872,0,35.268V4.726C0,2.12,2.122,0,4.729,0h125.468
|
|
||||||
c2.604,0,4.729,2.12,4.729,4.726v30.542C134.928,37.872,132.803,39.989,130.198,39.989L130.198,39.989z"/>
|
|
||||||
<path d="M134.032,35.268c0,2.116-1.714,3.83-3.834,3.83H4.729c-2.119,0-3.839-1.714-3.839-3.83V4.725
|
|
||||||
c0-2.115,1.72-3.835,3.839-3.835h125.468c2.121,0,3.834,1.72,3.834,3.835L134.032,35.268L134.032,35.268z"/>
|
|
||||||
<path fill="#FFFFFF" d="M30.128,19.784c-0.029-3.223,2.639-4.791,2.761-4.864c-1.511-2.203-3.853-2.504-4.676-2.528
|
|
||||||
c-1.967-0.207-3.875,1.177-4.877,1.177c-1.022,0-2.565-1.157-4.228-1.123c-2.14,0.033-4.142,1.272-5.24,3.196
|
|
||||||
c-2.266,3.923-0.576,9.688,1.595,12.859c1.086,1.554,2.355,3.287,4.016,3.226c1.625-0.066,2.232-1.035,4.193-1.035
|
|
||||||
c1.943,0,2.513,1.035,4.207,0.996c1.744-0.027,2.842-1.56,3.89-3.127c1.255-1.779,1.759-3.533,1.779-3.623
|
|
||||||
C33.508,24.924,30.162,23.646,30.128,19.784z"/>
|
|
||||||
<path fill="#FFFFFF" d="M26.928,10.306c0.874-1.093,1.472-2.58,1.306-4.089c-1.265,0.056-2.847,0.875-3.758,1.944
|
|
||||||
c-0.806,0.942-1.526,2.486-1.34,3.938C24.557,12.205,26.016,11.382,26.928,10.306z"/>
|
|
||||||
|
|
||||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="98.9609" y1="0.9028" x2="98.9609" y2="36.9487" gradientTransform="matrix(1 0 0 -1 0 41)">
|
|
||||||
<stop offset="0" style="stop-color:#1A1A1A;stop-opacity:0.1"/>
|
|
||||||
<stop offset="0.1235" style="stop-color:#212121;stop-opacity:0.1506"/>
|
|
||||||
<stop offset="0.3085" style="stop-color:#353535;stop-opacity:0.2265"/>
|
|
||||||
<stop offset="0.5321" style="stop-color:#575757;stop-opacity:0.3181"/>
|
|
||||||
<stop offset="0.7834" style="stop-color:#858585;stop-opacity:0.4212"/>
|
|
||||||
<stop offset="1" style="stop-color:#B3B3B3;stop-opacity:0.51"/>
|
|
||||||
</linearGradient>
|
|
||||||
<path fill="url(#SVGID_1_)" d="M130.198,0H62.993l26.323,39.989h40.882c2.604,0,4.729-2.117,4.729-4.724V4.726
|
|
||||||
C134.928,2.12,132.803,0,130.198,0z"/>
|
|
||||||
<g>
|
|
||||||
<path fill="#FFFFFF" d="M53.665,31.504h-2.271l-1.244-3.909h-4.324l-1.185,3.909H42.43l4.285-13.308h2.646L53.665,31.504z
|
|
||||||
M49.775,25.955L48.65,22.48c-0.119-0.355-0.343-1.191-0.671-2.507h-0.04c-0.132,0.566-0.343,1.402-0.632,2.507l-1.106,3.475
|
|
||||||
H49.775z"/>
|
|
||||||
<path fill="#FFFFFF" d="M64.663,26.588c0,1.632-0.443,2.922-1.33,3.869c-0.794,0.843-1.781,1.264-2.958,1.264
|
|
||||||
c-1.271,0-2.185-0.453-2.74-1.361v5.035h-2.132V25.062c0-1.025-0.027-2.076-0.079-3.154h1.875l0.119,1.521h0.04
|
|
||||||
c0.711-1.146,1.79-1.719,3.238-1.719c1.132,0,2.077,0.447,2.833,1.342C64.284,23.949,64.663,25.127,64.663,26.588z M62.491,26.666
|
|
||||||
c0-0.934-0.21-1.704-0.632-2.311c-0.461-0.631-1.08-0.947-1.856-0.947c-0.526,0-1.004,0.176-1.431,0.523
|
|
||||||
c-0.428,0.35-0.708,0.807-0.839,1.373c-0.066,0.264-0.099,0.479-0.099,0.649v1.601c0,0.697,0.214,1.286,0.642,1.768
|
|
||||||
c0.428,0.48,0.984,0.721,1.668,0.721c0.803,0,1.428-0.311,1.875-0.928C62.267,28.496,62.491,27.68,62.491,26.666z"/>
|
|
||||||
<path fill="#FFFFFF" d="M75.7,26.588c0,1.632-0.443,2.922-1.33,3.869c-0.795,0.843-1.781,1.264-2.959,1.264
|
|
||||||
c-1.271,0-2.185-0.453-2.74-1.361v5.035h-2.132V25.062c0-1.025-0.027-2.076-0.079-3.154h1.875l0.119,1.521h0.04
|
|
||||||
c0.71-1.146,1.789-1.719,3.238-1.719c1.131,0,2.076,0.447,2.834,1.342C75.32,23.949,75.7,25.127,75.7,26.588z M73.527,26.666
|
|
||||||
c0-0.934-0.211-1.704-0.633-2.311c-0.461-0.631-1.078-0.947-1.854-0.947c-0.526,0-1.004,0.176-1.433,0.523
|
|
||||||
c-0.428,0.35-0.707,0.807-0.838,1.373c-0.065,0.264-0.1,0.479-0.1,0.649v1.601c0,0.697,0.215,1.286,0.641,1.768
|
|
||||||
c0.428,0.479,0.984,0.721,1.67,0.721c0.804,0,1.429-0.311,1.875-0.928C73.303,28.496,73.527,27.68,73.527,26.666z"/>
|
|
||||||
<path fill="#FFFFFF" d="M88.04,27.771c0,1.133-0.396,2.054-1.183,2.765c-0.866,0.776-2.075,1.165-3.625,1.165
|
|
||||||
c-1.432,0-2.58-0.276-3.446-0.829l0.493-1.777c0.935,0.554,1.962,0.83,3.08,0.83c0.804,0,1.429-0.182,1.875-0.543
|
|
||||||
c0.447-0.362,0.673-0.846,0.673-1.45c0-0.541-0.187-0.994-0.554-1.363c-0.369-0.368-0.979-0.711-1.836-1.026
|
|
||||||
c-2.33-0.869-3.496-2.14-3.496-3.812c0-1.092,0.412-1.986,1.234-2.685c0.822-0.698,1.912-1.047,3.268-1.047
|
|
||||||
c1.211,0,2.22,0.211,3.021,0.632l-0.535,1.738c-0.754-0.408-1.605-0.612-2.557-0.612c-0.752,0-1.342,0.185-1.764,0.553
|
|
||||||
c-0.355,0.329-0.535,0.73-0.535,1.206c0,0.525,0.205,0.961,0.613,1.303c0.354,0.315,1,0.658,1.934,1.026
|
|
||||||
c1.146,0.462,1.988,1,2.527,1.618C87.77,26.081,88.04,26.852,88.04,27.771z"/>
|
|
||||||
<path fill="#FFFFFF" d="M95.107,23.508h-2.35v4.659c0,1.185,0.414,1.776,1.244,1.776c0.381,0,0.697-0.032,0.947-0.099l0.059,1.619
|
|
||||||
c-0.42,0.157-0.973,0.236-1.658,0.236c-0.842,0-1.5-0.257-1.975-0.771c-0.473-0.514-0.711-1.375-0.711-2.587v-4.837h-1.4v-1.6h1.4
|
|
||||||
v-1.757l2.094-0.632v2.389h2.35V23.508z"/>
|
|
||||||
<path fill="#FFFFFF" d="M105.689,26.627c0,1.475-0.422,2.686-1.264,3.633c-0.881,0.975-2.053,1.461-3.514,1.461
|
|
||||||
c-1.41,0-2.531-0.467-3.367-1.4c-0.836-0.935-1.254-2.113-1.254-3.534c0-1.487,0.432-2.705,1.293-3.652
|
|
||||||
c0.863-0.948,2.025-1.422,3.486-1.422c1.408,0,2.539,0.468,3.395,1.402C105.282,24.021,105.689,25.191,105.689,26.627z
|
|
||||||
M103.479,26.676c0-0.879-0.19-1.633-0.571-2.264c-0.447-0.762-1.087-1.143-1.916-1.143c-0.854,0-1.509,0.381-1.955,1.143
|
|
||||||
c-0.382,0.631-0.572,1.398-0.572,2.304c0,0.88,0.19,1.636,0.572,2.265c0.461,0.762,1.104,1.143,1.937,1.143
|
|
||||||
c0.815,0,1.454-0.389,1.916-1.162C103.282,28.316,103.479,27.557,103.479,26.676z"/>
|
|
||||||
<path fill="#FFFFFF" d="M112.622,23.783c-0.211-0.039-0.437-0.059-0.672-0.059c-0.75,0-1.33,0.282-1.738,0.85
|
|
||||||
c-0.354,0.5-0.532,1.132-0.532,1.895v5.035h-2.132V24.93c0-1.105-0.021-2.113-0.062-3.021h1.857l0.078,1.836h0.059
|
|
||||||
c0.226-0.631,0.58-1.14,1.066-1.521c0.475-0.343,0.988-0.514,1.541-0.514c0.197,0,0.375,0.014,0.533,0.039L112.622,23.783
|
|
||||||
L112.622,23.783z"/>
|
|
||||||
<path fill="#FFFFFF" d="M122.157,26.252c0,0.382-0.025,0.704-0.078,0.967h-6.396c0.024,0.948,0.334,1.674,0.928,2.174
|
|
||||||
c0.539,0.446,1.236,0.67,2.092,0.67c0.947,0,1.811-0.15,2.588-0.453l0.334,1.479c-0.908,0.396-1.98,0.593-3.217,0.593
|
|
||||||
c-1.488,0-2.656-0.438-3.506-1.312c-0.848-0.875-1.273-2.051-1.273-3.524c0-1.446,0.395-2.651,1.186-3.612
|
|
||||||
c0.828-1.026,1.947-1.539,3.355-1.539c1.383,0,2.43,0.513,3.141,1.539C121.874,24.047,122.157,25.055,122.157,26.252z
|
|
||||||
M120.124,25.699c0.015-0.633-0.125-1.178-0.414-1.639c-0.369-0.594-0.937-0.89-1.698-0.89c-0.697,0-1.265,0.289-1.697,0.869
|
|
||||||
c-0.355,0.461-0.566,1.015-0.631,1.658L120.124,25.699L120.124,25.699z"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<path fill="#FFFFFF" d="M48.747,13.433H47.63l-0.611-1.921h-2.125l-0.583,1.921h-1.087l2.106-6.541h1.3L48.747,13.433z
|
|
||||||
M46.835,10.706l-0.553-1.708c-0.058-0.175-0.165-0.582-0.33-1.232h-0.02c-0.068,0.281-0.165,0.689-0.311,1.232l-0.543,1.708
|
|
||||||
H46.835z"/>
|
|
||||||
<path fill="#FFFFFF" d="M54.013,8.717l-1.786,4.716h-1.019L49.48,8.717h1.126l0.806,2.494c0.136,0.417,0.252,0.815,0.339,1.193
|
|
||||||
h0.029c0.078-0.339,0.194-0.737,0.339-1.193l0.796-2.494H54.013z"/>
|
|
||||||
<path fill="#FFFFFF" d="M57.815,13.433l-0.078-0.543h-0.029c-0.32,0.437-0.786,0.65-1.378,0.65c-0.844,0-1.446-0.592-1.446-1.388
|
|
||||||
c0-1.164,1.009-1.766,2.756-1.766v-0.087c0-0.621-0.33-0.932-0.98-0.932c-0.466,0-0.874,0.117-1.232,0.35l-0.213-0.689
|
|
||||||
c0.437-0.272,0.98-0.408,1.621-0.408c1.232,0,1.854,0.65,1.854,1.951v1.737c0,0.476,0.02,0.845,0.068,1.126L57.815,13.433
|
|
||||||
L57.815,13.433z M57.669,11.084c-1.165,0-1.747,0.282-1.747,0.951c0,0.495,0.301,0.737,0.718,0.737
|
|
||||||
c0.534,0,1.029-0.407,1.029-0.96V11.084z"/>
|
|
||||||
<path fill="#FFFFFF" d="M61.024,7.94c-0.349,0-0.621-0.272-0.621-0.631s0.281-0.621,0.641-0.621c0.359,0,0.65,0.262,0.64,0.621
|
|
||||||
C61.684,7.688,61.413,7.94,61.024,7.94z M61.568,13.433H60.52V8.717h1.048V13.433z"/>
|
|
||||||
<path fill="#FFFFFF" d="M64.478,13.433H63.43v-6.88h1.048V13.433z"/>
|
|
||||||
<path fill="#FFFFFF" d="M68.932,13.433l-0.078-0.543h-0.029c-0.32,0.437-0.786,0.65-1.378,0.65c-0.844,0-1.446-0.592-1.446-1.388
|
|
||||||
c0-1.164,1.009-1.766,2.756-1.766v-0.087c0-0.621-0.33-0.932-0.98-0.932c-0.466,0-0.874,0.117-1.232,0.35l-0.214-0.69
|
|
||||||
c0.437-0.272,0.98-0.408,1.621-0.408c1.232,0,1.854,0.65,1.854,1.951v1.737c0,0.476,0.021,0.845,0.067,1.126H68.932z
|
|
||||||
M68.786,11.084c-1.165,0-1.747,0.282-1.747,0.951c0,0.495,0.301,0.737,0.718,0.737c0.534,0,1.029-0.407,1.029-0.96V11.084z"/>
|
|
||||||
<path fill="#FFFFFF" d="M74.052,13.54c-0.669,0-1.163-0.282-1.483-0.835h-0.021l-0.06,0.728h-0.893
|
|
||||||
c0.029-0.378,0.039-0.806,0.039-1.271V6.553h1.049v2.854h0.02c0.311-0.524,0.814-0.786,1.504-0.786
|
|
||||||
c1.136,0,1.932,0.971,1.932,2.387C76.139,12.472,75.255,13.54,74.052,13.54z M73.839,9.444c-0.603,0-1.155,0.524-1.155,1.252
|
|
||||||
v0.825c0,0.65,0.496,1.184,1.137,1.184c0.785,0,1.252-0.64,1.252-1.659C75.072,10.095,74.586,9.444,73.839,9.444z"/>
|
|
||||||
<path fill="#FFFFFF" d="M78.736,13.433h-1.047v-6.88h1.047V13.433z"/>
|
|
||||||
<path fill="#FFFFFF" d="M84.441,11.327h-3.146c0.021,0.893,0.611,1.397,1.485,1.397c0.466,0,0.893-0.078,1.271-0.223l0.163,0.728
|
|
||||||
c-0.446,0.194-0.97,0.291-1.581,0.291c-1.476,0-2.349-0.932-2.349-2.377c0-1.446,0.894-2.533,2.231-2.533
|
|
||||||
c1.203,0,1.961,0.893,1.961,2.242C84.48,11.036,84.471,11.201,84.441,11.327z M83.48,10.58c0-0.728-0.369-1.242-1.039-1.242
|
|
||||||
c-0.602,0-1.076,0.524-1.146,1.242H83.48z"/>
|
|
||||||
<path fill="#FFFFFF" d="M90.793,13.54c-1.378,0-2.271-1.029-2.271-2.426c0-1.456,0.912-2.494,2.35-2.494
|
|
||||||
c1.357,0,2.271,0.98,2.271,2.417C93.143,12.511,92.201,13.54,90.793,13.54z M90.833,9.386c-0.757,0-1.242,0.708-1.242,1.698
|
|
||||||
c0,0.971,0.495,1.679,1.232,1.679s1.231-0.757,1.231-1.699C92.055,10.104,91.57,9.386,90.833,9.386z"/>
|
|
||||||
<path fill="#FFFFFF" d="M98.777,13.433H97.73v-2.708c0-0.834-0.32-1.252-0.951-1.252c-0.621,0-1.049,0.534-1.049,1.155v2.805
|
|
||||||
h-1.047v-3.368c0-0.417-0.011-0.864-0.039-1.349h0.922l0.049,0.728h0.029c0.28-0.504,0.854-0.825,1.494-0.825
|
|
||||||
c0.989,0,1.639,0.757,1.639,1.989V13.433L98.777,13.433z"/>
|
|
||||||
<path fill="#FFFFFF" d="M105.634,9.503h-1.153v2.29c0,0.583,0.203,0.874,0.61,0.874c0.185,0,0.341-0.02,0.466-0.049l0.029,0.796
|
|
||||||
c-0.204,0.078-0.477,0.117-0.814,0.117c-0.826,0-1.319-0.456-1.319-1.65V9.503h-0.688V8.717h0.688V7.853l1.028-0.311v1.174h1.153
|
|
||||||
V9.503z"/>
|
|
||||||
<path fill="#FFFFFF" d="M111.184,13.433h-1.049v-2.688c0-0.844-0.32-1.271-0.951-1.271c-0.543,0-1.047,0.369-1.047,1.116v2.843
|
|
||||||
h-1.049v-6.88h1.049v2.833h0.02c0.33-0.514,0.806-0.767,1.417-0.767c0.999,0,1.61,0.776,1.61,2.009V13.433z"/>
|
|
||||||
<path fill="#FFFFFF" d="M116.539,11.327h-3.145c0.02,0.893,0.61,1.397,1.484,1.397c0.467,0,0.893-0.078,1.271-0.223l0.164,0.728
|
|
||||||
c-0.446,0.194-0.971,0.291-1.582,0.291c-1.476,0-2.349-0.932-2.349-2.377c0-1.446,0.894-2.533,2.231-2.533
|
|
||||||
c1.203,0,1.961,0.893,1.961,2.242C116.578,11.036,116.568,11.201,116.539,11.327z M115.578,10.58c0-0.728-0.368-1.242-1.038-1.242
|
|
||||||
c-0.603,0-1.077,0.524-1.146,1.242H115.578z"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 322 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 697 B |
Before Width: | Height: | Size: 376 KiB |
Before Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 8.0 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 133 KiB |
Before Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 334 KiB |
Before Width: | Height: | Size: 510 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 8.8 KiB |
Before Width: | Height: | Size: 188 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.4 KiB |
@ -1,351 +0,0 @@
|
|||||||
<!DOCTYPE HTML>
|
|
||||||
|
|
||||||
<html itemscope itemtype="http://schema.org/Product">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title itemprop="name">Master Password — Secure your online identity and privacy.</title>
|
|
||||||
|
|
||||||
<link rel="icon" href="img/favicon.png" type="image/x-png" />
|
|
||||||
<link rel="shortcut icon" href="img/favicon.png" type="image/x-png" />
|
|
||||||
|
|
||||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
|
||||||
<meta itemprop="description" content="Do you also reuse simple passwords? Master Password makes secure passwords for you. What's more: they aren't saved and cannot get lost!" />
|
|
||||||
<meta itemprop="image" content="http://masterpassword.lyndir.com/img/iTunesArtwork-Rounded.png" />
|
|
||||||
<meta name="apple-itunes-app" content="app-id=510296984" />
|
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Exo:100,400,600,900,100italic,400italic,600italic" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/buttons/buttons.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/screen.css" />
|
|
||||||
|
|
||||||
<!-- Google Analytics -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _gaq = _gaq || [];
|
|
||||||
_gaq.push(['_setAccount', 'UA-90535-15']);
|
|
||||||
_gaq.push(['_trackPageview']);
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
||||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Get Satisfaction -->
|
|
||||||
<!--script type="text/javascript" charset="utf-8">
|
|
||||||
var is_ssl = ("https:" == document.location.protocol);
|
|
||||||
var asset_host = is_ssl ? "https://d3rdqalhjaisuu.cloudfront.net/" : "http://d3rdqalhjaisuu.cloudfront.net/";
|
|
||||||
document.write(unescape("%3Cscript src='" + asset_host + "javascripts/feedback-v2.js' type='text/javascript'%3E%3C/script%3E"));
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
var feedback_widget_options = {};
|
|
||||||
feedback_widget_options.display = "overlay";
|
|
||||||
feedback_widget_options.company = "lyndir";
|
|
||||||
feedback_widget_options.placement = "right";
|
|
||||||
feedback_widget_options.color = "#222";
|
|
||||||
feedback_widget_options.style = "question";
|
|
||||||
var feedback_widget = new GSFN.feedback_widget(feedback_widget_options);
|
|
||||||
</script-->
|
|
||||||
|
|
||||||
<!-- UserEcho -->
|
|
||||||
<script type='text/javascript'>
|
|
||||||
var _ues = {
|
|
||||||
host:'support.lyndir.com',
|
|
||||||
forum:'13031',
|
|
||||||
lang:'en',
|
|
||||||
tab_icon_show:false,
|
|
||||||
tab_corner_radius:5,
|
|
||||||
tab_font_size:20,
|
|
||||||
tab_image_hash:'RmVlZGJhY2s%3D',
|
|
||||||
tab_alignment:'right',
|
|
||||||
tab_text_color:'#FFFFFF',
|
|
||||||
tab_bg_color:'#DDDDDD',
|
|
||||||
tab_hover_color:'#CCCCCC'
|
|
||||||
};
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var _ue = document.createElement('script'); _ue.type = 'text/javascript'; _ue.async = true;
|
|
||||||
_ue.src = ('https:' == document.location.protocol ? 'https://s3.amazonaws.com/' : 'http://') + 'cdn.userecho.com/js/widget-1.4.gz.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(_ue, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- jQuery -->
|
|
||||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
|
|
||||||
|
|
||||||
<!-- Page JS -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$(window).scroll(function() {
|
|
||||||
if ($(window).scrollTop() > 100) {
|
|
||||||
$(".appstore").show();
|
|
||||||
$("header .appstore").hide();
|
|
||||||
} else {
|
|
||||||
$(".appstore").hide();
|
|
||||||
$("header .appstore").show();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$(".tip.appstore").hide().delay(1000).fadeIn();
|
|
||||||
$(".tip.phone").hide();
|
|
||||||
$("#sendtophone").mouseenter(function() {
|
|
||||||
$(".tip.phone").fadeIn();
|
|
||||||
});
|
|
||||||
$("#sendtophone").mouseleave(function() {
|
|
||||||
$(".tip.phone").fadeOut();
|
|
||||||
});
|
|
||||||
$("#sendtophone").submit(function() {
|
|
||||||
$.ajax({
|
|
||||||
url: "http://masterpassword.lyndir.com/send.php",
|
|
||||||
data: {
|
|
||||||
destination: $(this).find("input[type='text']").val(),
|
|
||||||
},
|
|
||||||
cache: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
goog_report_conversion('index-sendtophone');
|
|
||||||
_gaq.push(['_trackPageview', '/outbound/sendtophone']);
|
|
||||||
|
|
||||||
$("#sendtophone .field").hide();
|
|
||||||
$("#sendtophone .confirm").show();
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
$("#sendtophone .field").show();
|
|
||||||
$("#sendtophone .confirm").hide();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- AdWords -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
/* <![CDATA[ */
|
|
||||||
goog_snippet_vars = function() {
|
|
||||||
var w = window;
|
|
||||||
w.google_conversion_id = 1015576061;
|
|
||||||
w.google_conversion_label = "PcXqCPPz5AIQ_euh5AM";
|
|
||||||
w.google_conversion_value = 4;
|
|
||||||
}
|
|
||||||
goog_report_conversion = function(url) {
|
|
||||||
goog_snippet_vars();
|
|
||||||
window.google_conversion_format = "3";
|
|
||||||
window.google_is_call = true;
|
|
||||||
var opt = new Object();
|
|
||||||
opt.onload_callback = function() {
|
|
||||||
if (typeof(url) != 'undefined') {
|
|
||||||
window.location = url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var conv_handler = window['google_trackConversion'];
|
|
||||||
if (typeof(conv_handler) == 'function') {
|
|
||||||
conv_handler(opt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* ]]> */
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion_async.js"></script>
|
|
||||||
|
|
||||||
<!-- Google +1 -->
|
|
||||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body id="frontpage" itemscope itemtype="http://schema.org/MobileSoftwareApplication">
|
|
||||||
<a class="badge appstore" href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-fixed-header');_gaq.push(['_trackPageview', '/outbound/itunes']);"><img src="img/Available_on_the_App_Store_Badge_US-UK_135x40_0801.svg" /></a>
|
|
||||||
<header>
|
|
||||||
|
|
||||||
<div class="badge appstore">
|
|
||||||
<a href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-top-header');_gaq.push(['_trackPageview', '/outbound/itunes']);">
|
|
||||||
<!--span class="tip appstore">Great feedback may earn you a free copy for a friend!</span-->
|
|
||||||
<img src="img/Available_on_the_App_Store_Badge_US-UK_135x40_0801.svg" />
|
|
||||||
</a><br />
|
|
||||||
<!--form id="sendtophone">
|
|
||||||
<span class="field">
|
|
||||||
Or send to your phone:<br />
|
|
||||||
<input type="text" name="email" placeholder="E-mail or phone number" />
|
|
||||||
<span class="tip phone">Phone needs country code (eg. +1 for US/CA, +44 for UK)</span>
|
|
||||||
</span>
|
|
||||||
<span class="confirm">
|
|
||||||
Message sent!
|
|
||||||
</span>
|
|
||||||
</form-->
|
|
||||||
</div>
|
|
||||||
<h1><a href="."><img class="logo" src="img/iTunesArtwork-Bare.png" /> Master Password</a></h1>
|
|
||||||
<div class="footnote"><a href="mailto:masterpassword+remove_this@lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/mail']);">Contact</a> | <a href="http://www.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a> | <a href="https://plus.google.com/116256327773442623984/about" rel="publisher" onclick="_gaq.push(['_trackPageview', '/outbound/google+']);">Google+</a></div>
|
|
||||||
<div class="divider"></div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
<div id="fixedheader">
|
|
||||||
<h2><a href=".">Master Password</a></h2>
|
|
||||||
</div>
|
|
||||||
<!--a href="http://bit.ly/vNN5Zi" onclick="_gaq.push(['_trackPageview', '/outbound/testflight']);" id="ribbon"></a-->
|
|
||||||
|
|
||||||
<section class="heading">
|
|
||||||
<div class="center">
|
|
||||||
|
|
||||||
<div class="box effect-8">
|
|
||||||
<!--iframe id="ytplayer" type="text/html" width="640" height="360" frameborder="0"
|
|
||||||
src="http://www.youtube.com/embed/QTfA0O7YnHQ?origin=http://masterpassword.lyndir.com&autohide=1&autoplay=0&rel=0&showinfo=0&theme=light&color=white"></iframe-->
|
|
||||||
<iframe width="640" height="360" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen
|
|
||||||
src="http://player.vimeo.com/video/45803664?title=0&byline=0&portrait=0&color=ffffff"></iframe>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h1><a href="#about" onclick="_gaq.push(['_trackPageview', '/anchor/about']);"><img src="img/arrow-down.png" height="100" /></a></h1>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<section id="about">
|
|
||||||
<div>
|
|
||||||
<div class="sidebox">
|
|
||||||
<div class="clip" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
|
|
||||||
<meta itemprop="name" content="iOS" />
|
|
||||||
<meta itemprop="price" content="5.99" />
|
|
||||||
<meta itemprop="priceCurrency" content="USD" />
|
|
||||||
<a itemprop="url" href="http://itunes.apple.com/app/id510296984">
|
|
||||||
<!--img itemprop="image" class="badge" src="img/price.png" /-->
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
<img src="img/frontpage_phone.png" />
|
|
||||||
</div>
|
|
||||||
<a href="MasterPassword_PressKit.zip" class="btn_largeblack ico_down" onclick="_gaq.push(['_trackPageview', '/outbound/presskit']);">Press Kit</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h1>
|
|
||||||
Stop worrying<br />
|
|
||||||
about passwords
|
|
||||||
|
|
||||||
<div class="g-plusone" data-annotation="none" data-href="http://masterpassword.lyndir.com"></div>
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Admit it, you're terrible at memorizing passwords.</h2>
|
|
||||||
|
|
||||||
<p>Just like the rest of the world, your passwords are too simple or reused between many sites. To hackers, <em>your accounts are like an empty house with the door left open</em>.</p>
|
|
||||||
|
|
||||||
<p>I'm sure you've <em>tried</em> to do better. Maybe you keep a notebook or post-it with passwords. Maybe you even store your passwords in a program or just in your browser. The problem with putting your passwords somewhere "safe" is two-fold: Somebody can <em>steal them</em>, and you can <em>lose them</em>.</p>
|
|
||||||
|
|
||||||
<p> </p>
|
|
||||||
|
|
||||||
<p><strong>Master Password is a <em>stateless solution</em></strong>, which means <strong>your passwords aren't saved <em>anywhere</em></strong>. Not in your head, not in a notebook, not on your computer and not in the cloud.<br />
|
|
||||||
Nothing to store means nothing to keep safe and nothing to lose.</p>
|
|
||||||
|
|
||||||
<p>Master Password just recreates the passwords for your sites whenever you need them: instantly and on-demand. At the same time it makes sure that your accounts are adequately protected with <em>secure and unique</em> passwords.</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<p>Master Password is <strong>different</strong> from other vault-like password solutions. It helps you set <strong>secure passwords</strong> for your sites, and at the same time makes <strong>losing your passwords almost impossible</strong>. It requires <span itemprop="operatingsystems">iOS</span> <span itemprop="softwareversion">5.0</span>, but a <a href="https://github.com/Lyndir/MasterPassword/tree/master/MasterPassword/Java">Java & CLI</a> version exists too. A <a href="https://github.com/Lyndir/MasterPassword/tree/master/MasterPassword/Mac">Mac</a> version is under development.</p>
|
|
||||||
|
|
||||||
<p>Built on algorithms such as <a href="http://www.bsdcan.org/2009/schedule/events/147.en.html" onclick="_gaq.push(['_trackPageview', '/outbound/scrypt']);">scrypt</a> and <a href="http://en.wikipedia.org/wiki/HMAC" onclick="_gaq.push(['_trackPageview', '/outbound/HMAC']);">HMAC-SHA256</a>, your master password is kept safe even if websites you use get hacked.</p>
|
|
||||||
|
|
||||||
<p>As to prove a point, <a href="http://www.washingtonpost.com/business/technology/linkedin-eharmony-deal-with-breach-aftermath/2012/06/07/gJQAwqs5KV_story.html" onclick="_gaq.push(['_trackPageview', '/outbound/linkedin-breach']);"><strong>LinkedIn</strong>, <strong>eHarmony</strong></a>, <a href="http://securitywatch.pcmag.com/none/298865-last-fm-joins-eharmony-linkedin-to-celebrate-breach-week" onclick="_gaq.push(['_trackPageview', '/outbound/lastfm-breach']);"><strong>Last.FM</strong></a> and <a href="http://www.switchfast.com/switchfast-blog/2012/7/13/latest-password-leak-affects-yahoo,-gmail,-and-aol-users.aspx" onclick="_gaq.push(['_trackPageview', '/outbound/yahoo-breach']);"><strong>Yahoo!</strong></a> have announced breaches that compromise millions of passwords in the past few months alone. These breaches usually leak "<em>hashes</em>" of people's passwords, which make it trivial for attackers to find out the actual passwords <em>if they're not secure enough</em>.</p>
|
|
||||||
|
|
||||||
<hr class="clear" />
|
|
||||||
|
|
||||||
<div class="columns" id="how">
|
|
||||||
<div>
|
|
||||||
<div class="columnhead">
|
|
||||||
<div class="box effect-7">
|
|
||||||
<img src="img/shots/feature-unlock.png" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<h2>Locked from prying eyes</h2>
|
|
||||||
Your master password <strong>unlocks the application</strong> and grants access all the passwords inside.<br />
|
|
||||||
It is the only thing you will need to remember from now on.
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="columnhead">
|
|
||||||
<div class="box effect-7">
|
|
||||||
<img src="img/shots/feature-password.png" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<h2>Creates secure passwords</h2>
|
|
||||||
The application <strong>generates secure, random and unique passwords</strong> in a format that's easy for you to copy.
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="columnhead">
|
|
||||||
<div class="box effect-7">
|
|
||||||
<img src="img/shots/feature-types.png" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<h2>Different password types</h2>
|
|
||||||
Master Password's <strong>presets allow you to comply with</strong> almost any site's restrictive <strong>password policies</strong>, while still producing as secure a password for them as they permit.
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="columnhead">
|
|
||||||
<div class="box effect-7">
|
|
||||||
<img src="img/shots/feature-copy.png" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<h2>Copy with a tap</h2>
|
|
||||||
It's really easy to use the password on your iPhone: Just <strong>tap the password to copy it</strong> and paste it in a different application's password field.<br />
|
|
||||||
Goodbye, annoying App Store password pop-up.
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="columnhead">
|
|
||||||
<div class="box effect-7">
|
|
||||||
<img src="img/shots/feature-custom.png" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<h2>Saves custom passwords</h2>
|
|
||||||
You can also <strong>store custom passwords</strong> in the application. They will be safely encrypted with your master password.
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="columnhead">
|
|
||||||
<div class="box effect-7">
|
|
||||||
<img src="img/shots/feature-bike.png" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<h2>Not just for online</h2>
|
|
||||||
These passwords <strong>can also be used for the things around you</strong>: Your bike lock, your home alarm system, PIN codes, ...
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="columnhead">
|
|
||||||
<div class="box effect-7">
|
|
||||||
<img src="img/shots/feature-icloud.png" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<h2>Syncs with iCloud</h2>
|
|
||||||
Enable iCloud support to store all your password names in your iCloud account. Great for <strong>keeping multiple Apple devices in sync</strong> or backing up your site list.<br />
|
|
||||||
Apple will never see any of your passwords.
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="columnhead">
|
|
||||||
<div class="box effect-7">
|
|
||||||
<img src="img/shots/feature-export.png" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<h2>Data liberation</h2>
|
|
||||||
And of course, <strong>you retain full control over all your passwords</strong>: You can export them at any time, and import new site lists.
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="columnhead">
|
|
||||||
<div class="box effect-7">
|
|
||||||
<img src="img/shots/feature-mac.png" />
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
</div>
|
|
||||||
<h2>What about your Mac?</h2>
|
|
||||||
A Mac version of Master Password exists too! It gives you access to all of your passwords without needing to bring up your phone.<br />
|
|
||||||
Just enable iCloud for a seamless experience.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
<a class="next" href="what.html">What is this thing and why do I need it?</a>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<footer>
|
|
||||||
<a href="http://www.jetbrains.com/objc/" style="display:inline-block; background:url('img/objc468x60.png') no-repeat 10px 50%; margin:0;padding:0;text-decoration:none;text-indent:0;letter-spacing:-0.001em; width:466px; height:58px" alt="Smarter and faster IDE for iOS and Mac OS applications development" title="Smarter and faster IDE for iOS and Mac OS applications development"><span style="margin: 2px 0 0 65px;padding: 0;float: left;font-size: 12px;cursor:pointer; background-image:none;border:0;color: #435570; font-family: trebuchet ms,arial,sans-serif;font-weight: normal;text-align:left;">Developed with</span><span style="margin:0 0 0 200px;padding:18px 0 2px 0; line-height:14px;font-size:15px;cursor:pointer; background-image:none;border:0;display:block; width:265px; color:#435570; font-family: trebuchet ms,arial,sans-serif;font-weight: normal;text-align:left;">Smarter and faster IDE for iOS and<br/>Mac OS applications development</span></a>
|
|
||||||
<br /> <br />
|
|
||||||
Master Password is a security and productivity product by <a href="http://www.lyndir.com" rel="author" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a>, © 2011.
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,61 +0,0 @@
|
|||||||
// jQuery plugin: PutCursorAtEnd 1.0
|
|
||||||
// http://plugins.jquery.com/project/PutCursorAtEnd
|
|
||||||
// by teedyay
|
|
||||||
//
|
|
||||||
// Puts the cursor at the end of a textbox/ textarea
|
|
||||||
|
|
||||||
// codesnippet: 691e18b1-f4f9-41b4-8fe8-bc8ee51b48d4
|
|
||||||
(function($)
|
|
||||||
{
|
|
||||||
jQuery.fn.putCursorAtEnd = function()
|
|
||||||
{
|
|
||||||
return this.each(function()
|
|
||||||
{
|
|
||||||
$(this).focus()
|
|
||||||
|
|
||||||
// If this function exists...
|
|
||||||
if (this.setSelectionRange)
|
|
||||||
{
|
|
||||||
// ... then use it
|
|
||||||
// (Doesn't work in IE)
|
|
||||||
|
|
||||||
// Double the length because Opera is inconsistent about whether a carriage return is one character or two. Sigh.
|
|
||||||
var len = $(this).val().length * 2;
|
|
||||||
this.setSelectionRange(len, len);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// ... otherwise replace the contents with itself
|
|
||||||
// (Doesn't work in Google Chrome)
|
|
||||||
$(this).val($(this).val());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scroll to the bottom, in case we're in a tall textarea
|
|
||||||
// (Necessary for Firefox and Google Chrome)
|
|
||||||
this.scrollTop = 999999;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
})(jQuery);
|
|
||||||
|
|
||||||
|
|
||||||
// Show the content element referenced by the document's hash
|
|
||||||
function updateHash() {
|
|
||||||
var hashContent = document.location.hash.split('/', 1)[0];
|
|
||||||
var foundCurrent = false;
|
|
||||||
var contentElement = $(hashContent + "-content");
|
|
||||||
if (contentElement.size() != 1)
|
|
||||||
contentElement = $("#about-content");
|
|
||||||
|
|
||||||
$("#content section").each(function (i) {
|
|
||||||
if (foundCurrent)
|
|
||||||
this.className = "future";
|
|
||||||
else {
|
|
||||||
if (this.id == contentElement.attr("id")) {
|
|
||||||
foundCurrent = true;
|
|
||||||
this.className = "current";
|
|
||||||
} else
|
|
||||||
this.className = "past";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
18
public/site/2012-07/js/jquery-1.6.1.min.js
vendored
@ -1 +0,0 @@
|
|||||||
Nivo Slider is "The Most Awesome jQuery Image Slider". See http://nivo.dev7studios.com for more info.
|
|
@ -1,35 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<title>Nivo Slider Demo</title>
|
|
||||||
<link rel="stylesheet" href="../themes/default/default.css" type="text/css" media="screen" />
|
|
||||||
<link rel="stylesheet" href="../nivo-slider.css" type="text/css" media="screen" />
|
|
||||||
<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="wrapper">
|
|
||||||
<a href="http://dev7studios.com" id="dev7link" title="Go to dev7studios">dev7studios</a>
|
|
||||||
|
|
||||||
<div class="slider-wrapper theme-default">
|
|
||||||
<div id="slider" class="nivoSlider">
|
|
||||||
<img src="images/toystory.jpg" data-thumb="images/toystory.jpg" alt="" />
|
|
||||||
<a href="http://dev7studios.com"><img src="images/up.jpg" data-thumb="images/up.jpg" alt="" title="This is an example of a caption" /></a>
|
|
||||||
<img src="images/walle.jpg" data-thumb="images/walle.jpg" alt="" data-transition="slideInLeft" />
|
|
||||||
<img src="images/nemo.jpg" data-thumb="images/nemo.jpg" alt="" title="#htmlcaption" />
|
|
||||||
</div>
|
|
||||||
<div id="htmlcaption" class="nivo-html-caption">
|
|
||||||
<strong>This</strong> is an example of a <em>HTML</em> caption with <a href="#">a link</a>.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<script type="text/javascript" src="scripts/jquery-1.7.1.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../jquery.nivo.slider.js"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(window).load(function() {
|
|
||||||
$('#slider').nivoSlider();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 89 KiB |
Before Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 75 KiB |
@ -1,103 +0,0 @@
|
|||||||
/*=================================*/
|
|
||||||
/* Nivo Slider Demo
|
|
||||||
/* November 2010
|
|
||||||
/* By: Gilbert Pellegrom
|
|
||||||
/* http://dev7studios.com
|
|
||||||
/*=================================*/
|
|
||||||
|
|
||||||
/*====================*/
|
|
||||||
/*=== Reset Styles ===*/
|
|
||||||
/*====================*/
|
|
||||||
html, body, div, span, applet, object, iframe,
|
|
||||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
|
||||||
a, abbr, acronym, address, big, cite, code,
|
|
||||||
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
|
||||||
small, strike, strong, sub, sup, tt, var,
|
|
||||||
dl, dt, dd, ol, ul, li,
|
|
||||||
fieldset, form, label, legend,
|
|
||||||
table, caption, tbody, tfoot, thead, tr, th, td {
|
|
||||||
margin:0;
|
|
||||||
padding:0;
|
|
||||||
border:0;
|
|
||||||
outline:0;
|
|
||||||
font-weight:inherit;
|
|
||||||
font-style:inherit;
|
|
||||||
font-size:100%;
|
|
||||||
font-family:inherit;
|
|
||||||
vertical-align:baseline;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
line-height:1;
|
|
||||||
color:black;
|
|
||||||
background:white;
|
|
||||||
}
|
|
||||||
table {
|
|
||||||
border-collapse:separate;
|
|
||||||
border-spacing:0;
|
|
||||||
}
|
|
||||||
caption, th, td {
|
|
||||||
text-align:left;
|
|
||||||
font-weight:normal;
|
|
||||||
}
|
|
||||||
blockquote:before, blockquote:after,
|
|
||||||
q:before, q:after {
|
|
||||||
content:"";
|
|
||||||
}
|
|
||||||
blockquote, q {
|
|
||||||
quotes:"" "";
|
|
||||||
}
|
|
||||||
/* HTML5 tags */
|
|
||||||
header, section, footer,
|
|
||||||
aside, nav, article, figure {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*===================*/
|
|
||||||
/*=== Main Styles ===*/
|
|
||||||
/*===================*/
|
|
||||||
body {
|
|
||||||
font:14px/1.6 Georgia, Palatino, Palatino Linotype, Times, Times New Roman, serif;
|
|
||||||
color:#333;
|
|
||||||
background:#eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
a, a:visited {
|
|
||||||
color:blue;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
a:hover, a:active {
|
|
||||||
color:#000;
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#dev7link {
|
|
||||||
position:absolute;
|
|
||||||
top:0;
|
|
||||||
left:50px;
|
|
||||||
background:url(images/dev7logo.png) no-repeat;
|
|
||||||
width:60px;
|
|
||||||
height:67px;
|
|
||||||
border:0;
|
|
||||||
display:block;
|
|
||||||
text-indent:-9999px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-wrapper {
|
|
||||||
width: 80%;
|
|
||||||
margin: 20px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-default #slider {
|
|
||||||
margin:100px auto 0 auto;
|
|
||||||
}
|
|
||||||
.theme-pascal.slider-wrapper,
|
|
||||||
.theme-orman.slider-wrapper {
|
|
||||||
margin-top:150px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*====================*/
|
|
||||||
/*=== Other Styles ===*/
|
|
||||||
/*====================*/
|
|
||||||
.clear {
|
|
||||||
clear:both;
|
|
||||||
}
|
|
@ -1,673 +0,0 @@
|
|||||||
/*
|
|
||||||
* jQuery Nivo Slider v3.0.1
|
|
||||||
* http://nivo.dev7studios.com
|
|
||||||
*
|
|
||||||
* Copyright 2012, Dev7studios
|
|
||||||
* Free to use and abuse under the MIT license.
|
|
||||||
* http://www.opensource.org/licenses/mit-license.php
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function($) {
|
|
||||||
var NivoSlider = function(element, options){
|
|
||||||
// Defaults are below
|
|
||||||
var settings = $.extend({}, $.fn.nivoSlider.defaults, options);
|
|
||||||
|
|
||||||
// Useful variables. Play carefully.
|
|
||||||
var vars = {
|
|
||||||
currentSlide: 0,
|
|
||||||
currentImage: '',
|
|
||||||
totalSlides: 0,
|
|
||||||
running: false,
|
|
||||||
paused: false,
|
|
||||||
stop: false,
|
|
||||||
controlNavEl: false
|
|
||||||
};
|
|
||||||
|
|
||||||
// Get this slider
|
|
||||||
var slider = $(element);
|
|
||||||
slider.data('nivo:vars', vars).addClass('nivoSlider');
|
|
||||||
|
|
||||||
// Find our slider children
|
|
||||||
var kids = slider.children();
|
|
||||||
kids.each(function() {
|
|
||||||
var child = $(this);
|
|
||||||
var link = '';
|
|
||||||
if(!child.is('img')){
|
|
||||||
if(child.is('a')){
|
|
||||||
child.addClass('nivo-imageLink');
|
|
||||||
link = child;
|
|
||||||
}
|
|
||||||
child = child.find('img:first');
|
|
||||||
}
|
|
||||||
// Get img width & height
|
|
||||||
var childWidth = (childWidth === 0) ? child.attr('width') : child.width(),
|
|
||||||
childHeight = (childHeight === 0) ? child.attr('height') : child.height();
|
|
||||||
|
|
||||||
if(link !== ''){
|
|
||||||
link.css('display','none');
|
|
||||||
}
|
|
||||||
child.css('display','none');
|
|
||||||
vars.totalSlides++;
|
|
||||||
});
|
|
||||||
|
|
||||||
// If randomStart
|
|
||||||
if(settings.randomStart){
|
|
||||||
settings.startSlide = Math.floor(Math.random() * vars.totalSlides);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set startSlide
|
|
||||||
if(settings.startSlide > 0){
|
|
||||||
if(settings.startSlide >= vars.totalSlides) { settings.startSlide = vars.totalSlides - 1; }
|
|
||||||
vars.currentSlide = settings.startSlide;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get initial image
|
|
||||||
if($(kids[vars.currentSlide]).is('img')){
|
|
||||||
vars.currentImage = $(kids[vars.currentSlide]);
|
|
||||||
} else {
|
|
||||||
vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show initial link
|
|
||||||
if($(kids[vars.currentSlide]).is('a')){
|
|
||||||
$(kids[vars.currentSlide]).css('display','block');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set first background
|
|
||||||
var sliderImg = $('<img class="nivo-main-image" src="#" />');
|
|
||||||
sliderImg.attr('src', vars.currentImage.attr('src')).show();
|
|
||||||
slider.append(sliderImg);
|
|
||||||
|
|
||||||
// Detect Window Resize
|
|
||||||
$(window).resize(function() {
|
|
||||||
slider.children('img').width(slider.width());
|
|
||||||
sliderImg.attr('src', vars.currentImage.attr('src'));
|
|
||||||
sliderImg.stop().height('auto');
|
|
||||||
$('.nivo-slice').remove();
|
|
||||||
$('.nivo-box').remove();
|
|
||||||
});
|
|
||||||
|
|
||||||
//Create caption
|
|
||||||
slider.append($('<div class="nivo-caption"></div>'));
|
|
||||||
|
|
||||||
// Process caption function
|
|
||||||
var processCaption = function(settings){
|
|
||||||
var nivoCaption = $('.nivo-caption', slider);
|
|
||||||
if(vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined){
|
|
||||||
var title = vars.currentImage.attr('title');
|
|
||||||
if(title.substr(0,1) == '#') title = $(title).html();
|
|
||||||
|
|
||||||
if(nivoCaption.css('display') == 'block'){
|
|
||||||
setTimeout(function(){
|
|
||||||
nivoCaption.html(title);
|
|
||||||
}, settings.animSpeed);
|
|
||||||
} else {
|
|
||||||
nivoCaption.html(title);
|
|
||||||
nivoCaption.stop().fadeIn(settings.animSpeed);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
nivoCaption.stop().fadeOut(settings.animSpeed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Process initial caption
|
|
||||||
processCaption(settings);
|
|
||||||
|
|
||||||
// In the words of Super Mario "let's a go!"
|
|
||||||
var timer = 0;
|
|
||||||
if(!settings.manualAdvance && kids.length > 1){
|
|
||||||
timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add Direction nav
|
|
||||||
if(settings.directionNav){
|
|
||||||
slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+ settings.prevText +'</a><a class="nivo-nextNav">'+ settings.nextText +'</a></div>');
|
|
||||||
|
|
||||||
// Hide Direction nav
|
|
||||||
if(settings.directionNavHide){
|
|
||||||
$('.nivo-directionNav', slider).hide();
|
|
||||||
slider.hover(function(){
|
|
||||||
$('.nivo-directionNav', slider).show();
|
|
||||||
}, function(){
|
|
||||||
$('.nivo-directionNav', slider).hide();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$('a.nivo-prevNav', slider).live('click', function(){
|
|
||||||
if(vars.running) { return false; }
|
|
||||||
clearInterval(timer);
|
|
||||||
timer = '';
|
|
||||||
vars.currentSlide -= 2;
|
|
||||||
nivoRun(slider, kids, settings, 'prev');
|
|
||||||
});
|
|
||||||
|
|
||||||
$('a.nivo-nextNav', slider).live('click', function(){
|
|
||||||
if(vars.running) { return false; }
|
|
||||||
clearInterval(timer);
|
|
||||||
timer = '';
|
|
||||||
nivoRun(slider, kids, settings, 'next');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add Control nav
|
|
||||||
if(settings.controlNav){
|
|
||||||
vars.controlNavEl = $('<div class="nivo-controlNav"></div>');
|
|
||||||
slider.after(vars.controlNavEl);
|
|
||||||
for(var i = 0; i < kids.length; i++){
|
|
||||||
if(settings.controlNavThumbs){
|
|
||||||
vars.controlNavEl.addClass('nivo-thumbs-enabled');
|
|
||||||
var child = kids.eq(i);
|
|
||||||
if(!child.is('img')){
|
|
||||||
child = child.find('img:first');
|
|
||||||
}
|
|
||||||
if(child.attr('data-thumb')) vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'"><img src="'+ child.attr('data-thumb') +'" alt="" /></a>');
|
|
||||||
} else {
|
|
||||||
vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'">'+ (i + 1) +'</a>');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Set initial active link
|
|
||||||
$('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active');
|
|
||||||
|
|
||||||
$('a', vars.controlNavEl).bind('click', function(){
|
|
||||||
if(vars.running) return false;
|
|
||||||
if($(this).hasClass('active')) return false;
|
|
||||||
clearInterval(timer);
|
|
||||||
timer = '';
|
|
||||||
sliderImg.attr('src', vars.currentImage.attr('src'));
|
|
||||||
vars.currentSlide = $(this).attr('rel') - 1;
|
|
||||||
nivoRun(slider, kids, settings, 'control');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//For pauseOnHover setting
|
|
||||||
if(settings.pauseOnHover){
|
|
||||||
slider.hover(function(){
|
|
||||||
vars.paused = true;
|
|
||||||
clearInterval(timer);
|
|
||||||
timer = '';
|
|
||||||
}, function(){
|
|
||||||
vars.paused = false;
|
|
||||||
// Restart the timer
|
|
||||||
if(timer === '' && !settings.manualAdvance){
|
|
||||||
timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Event when Animation finishes
|
|
||||||
slider.bind('nivo:animFinished', function(){
|
|
||||||
sliderImg.attr('src', vars.currentImage.attr('src'));
|
|
||||||
vars.running = false;
|
|
||||||
// Hide child links
|
|
||||||
$(kids).each(function(){
|
|
||||||
if($(this).is('a')){
|
|
||||||
$(this).css('display','none');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// Show current link
|
|
||||||
if($(kids[vars.currentSlide]).is('a')){
|
|
||||||
$(kids[vars.currentSlide]).css('display','block');
|
|
||||||
}
|
|
||||||
// Restart the timer
|
|
||||||
if(timer === '' && !vars.paused && !settings.manualAdvance){
|
|
||||||
timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
|
|
||||||
}
|
|
||||||
// Trigger the afterChange callback
|
|
||||||
settings.afterChange.call(this);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add slices for slice animations
|
|
||||||
var createSlices = function(slider, settings, vars) {
|
|
||||||
if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
|
|
||||||
$('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
|
|
||||||
var sliceHeight = ($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().is('a')) ? $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().height() : $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height();
|
|
||||||
|
|
||||||
for(var i = 0; i < settings.slices; i++){
|
|
||||||
var sliceWidth = Math.round(slider.width()/settings.slices);
|
|
||||||
|
|
||||||
if(i === settings.slices-1){
|
|
||||||
slider.append(
|
|
||||||
$('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({
|
|
||||||
left:(sliceWidth*i)+'px',
|
|
||||||
width:(slider.width()-(sliceWidth*i))+'px',
|
|
||||||
height:sliceHeight+'px',
|
|
||||||
opacity:'0',
|
|
||||||
overflow:'hidden'
|
|
||||||
})
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
slider.append(
|
|
||||||
$('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({
|
|
||||||
left:(sliceWidth*i)+'px',
|
|
||||||
width:sliceWidth+'px',
|
|
||||||
height:sliceHeight+'px',
|
|
||||||
opacity:'0',
|
|
||||||
overflow:'hidden'
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$('.nivo-slice', slider).height(sliceHeight);
|
|
||||||
sliderImg.stop().animate({
|
|
||||||
height: $(vars.currentImage).height()
|
|
||||||
}, settings.animSpeed);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Add boxes for box animations
|
|
||||||
var createBoxes = function(slider, settings, vars){
|
|
||||||
if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
|
|
||||||
$('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
|
|
||||||
var boxWidth = Math.round(slider.width()/settings.boxCols),
|
|
||||||
boxHeight = Math.round($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height() / settings.boxRows);
|
|
||||||
|
|
||||||
|
|
||||||
for(var rows = 0; rows < settings.boxRows; rows++){
|
|
||||||
for(var cols = 0; cols < settings.boxCols; cols++){
|
|
||||||
if(cols === settings.boxCols-1){
|
|
||||||
slider.append(
|
|
||||||
$('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({
|
|
||||||
opacity:0,
|
|
||||||
left:(boxWidth*cols)+'px',
|
|
||||||
top:(boxHeight*rows)+'px',
|
|
||||||
width:(slider.width()-(boxWidth*cols))+'px'
|
|
||||||
|
|
||||||
})
|
|
||||||
);
|
|
||||||
$('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
|
|
||||||
} else {
|
|
||||||
slider.append(
|
|
||||||
$('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({
|
|
||||||
opacity:0,
|
|
||||||
left:(boxWidth*cols)+'px',
|
|
||||||
top:(boxHeight*rows)+'px',
|
|
||||||
width:boxWidth+'px'
|
|
||||||
})
|
|
||||||
);
|
|
||||||
$('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sliderImg.stop().animate({
|
|
||||||
height: $(vars.currentImage).height()
|
|
||||||
}, settings.animSpeed);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Private run method
|
|
||||||
var nivoRun = function(slider, kids, settings, nudge){
|
|
||||||
// Get our vars
|
|
||||||
var vars = slider.data('nivo:vars');
|
|
||||||
|
|
||||||
// Trigger the lastSlide callback
|
|
||||||
if(vars && (vars.currentSlide === vars.totalSlides - 1)){
|
|
||||||
settings.lastSlide.call(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Stop
|
|
||||||
if((!vars || vars.stop) && !nudge) { return false; }
|
|
||||||
|
|
||||||
// Trigger the beforeChange callback
|
|
||||||
settings.beforeChange.call(this);
|
|
||||||
|
|
||||||
// Set current background before change
|
|
||||||
if(!nudge){
|
|
||||||
sliderImg.attr('src', vars.currentImage.attr('src'));
|
|
||||||
} else {
|
|
||||||
if(nudge === 'prev'){
|
|
||||||
sliderImg.attr('src', vars.currentImage.attr('src'));
|
|
||||||
}
|
|
||||||
if(nudge === 'next'){
|
|
||||||
sliderImg.attr('src', vars.currentImage.attr('src'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
vars.currentSlide++;
|
|
||||||
// Trigger the slideshowEnd callback
|
|
||||||
if(vars.currentSlide === vars.totalSlides){
|
|
||||||
vars.currentSlide = 0;
|
|
||||||
settings.slideshowEnd.call(this);
|
|
||||||
}
|
|
||||||
if(vars.currentSlide < 0) { vars.currentSlide = (vars.totalSlides - 1); }
|
|
||||||
// Set vars.currentImage
|
|
||||||
if($(kids[vars.currentSlide]).is('img')){
|
|
||||||
vars.currentImage = $(kids[vars.currentSlide]);
|
|
||||||
} else {
|
|
||||||
vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set active links
|
|
||||||
if(settings.controlNav){
|
|
||||||
$('a', vars.controlNavEl).removeClass('active');
|
|
||||||
$('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Process caption
|
|
||||||
processCaption(settings);
|
|
||||||
|
|
||||||
// Remove any slices from last transition
|
|
||||||
$('.nivo-slice', slider).remove();
|
|
||||||
|
|
||||||
// Remove any boxes from last transition
|
|
||||||
$('.nivo-box', slider).remove();
|
|
||||||
|
|
||||||
var currentEffect = settings.effect,
|
|
||||||
anims = '';
|
|
||||||
|
|
||||||
// Generate random effect
|
|
||||||
if(settings.effect === 'random'){
|
|
||||||
anims = new Array('sliceDownRight','sliceDownLeft','sliceUpRight','sliceUpLeft','sliceUpDown','sliceUpDownLeft','fold','fade',
|
|
||||||
'boxRandom','boxRain','boxRainReverse','boxRainGrow','boxRainGrowReverse');
|
|
||||||
currentEffect = anims[Math.floor(Math.random()*(anims.length + 1))];
|
|
||||||
if(currentEffect === undefined) { currentEffect = 'fade'; }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run random effect from specified set (eg: effect:'fold,fade')
|
|
||||||
if(settings.effect.indexOf(',') !== -1){
|
|
||||||
anims = settings.effect.split(',');
|
|
||||||
currentEffect = anims[Math.floor(Math.random()*(anims.length))];
|
|
||||||
if(currentEffect === undefined) { currentEffect = 'fade'; }
|
|
||||||
}
|
|
||||||
|
|
||||||
// Custom transition as defined by "data-transition" attribute
|
|
||||||
if(vars.currentImage.attr('data-transition')){
|
|
||||||
currentEffect = vars.currentImage.attr('data-transition');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run effects
|
|
||||||
vars.running = true;
|
|
||||||
var timeBuff = 0,
|
|
||||||
i = 0,
|
|
||||||
slices = '',
|
|
||||||
firstSlice = '',
|
|
||||||
totalBoxes = '',
|
|
||||||
boxes = '';
|
|
||||||
|
|
||||||
if(currentEffect === 'sliceDown' || currentEffect === 'sliceDownRight' || currentEffect === 'sliceDownLeft'){
|
|
||||||
createSlices(slider, settings, vars);
|
|
||||||
timeBuff = 0;
|
|
||||||
i = 0;
|
|
||||||
slices = $('.nivo-slice', slider);
|
|
||||||
if(currentEffect === 'sliceDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
|
|
||||||
|
|
||||||
slices.each(function(){
|
|
||||||
var slice = $(this);
|
|
||||||
slice.css({ 'top': '0px' });
|
|
||||||
if(i === settings.slices-1){
|
|
||||||
setTimeout(function(){
|
|
||||||
slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
} else {
|
|
||||||
setTimeout(function(){
|
|
||||||
slice.animate({opacity:'1.0' }, settings.animSpeed);
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
}
|
|
||||||
timeBuff += 50;
|
|
||||||
i++;
|
|
||||||
});
|
|
||||||
} else if(currentEffect === 'sliceUp' || currentEffect === 'sliceUpRight' || currentEffect === 'sliceUpLeft'){
|
|
||||||
createSlices(slider, settings, vars);
|
|
||||||
timeBuff = 0;
|
|
||||||
i = 0;
|
|
||||||
slices = $('.nivo-slice', slider);
|
|
||||||
if(currentEffect === 'sliceUpLeft') { slices = $('.nivo-slice', slider)._reverse(); }
|
|
||||||
|
|
||||||
slices.each(function(){
|
|
||||||
var slice = $(this);
|
|
||||||
slice.css({ 'bottom': '0px' });
|
|
||||||
if(i === settings.slices-1){
|
|
||||||
setTimeout(function(){
|
|
||||||
slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
} else {
|
|
||||||
setTimeout(function(){
|
|
||||||
slice.animate({opacity:'1.0' }, settings.animSpeed);
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
}
|
|
||||||
timeBuff += 50;
|
|
||||||
i++;
|
|
||||||
});
|
|
||||||
} else if(currentEffect === 'sliceUpDown' || currentEffect === 'sliceUpDownRight' || currentEffect === 'sliceUpDownLeft'){
|
|
||||||
createSlices(slider, settings, vars);
|
|
||||||
timeBuff = 0;
|
|
||||||
i = 0;
|
|
||||||
var v = 0;
|
|
||||||
slices = $('.nivo-slice', slider);
|
|
||||||
if(currentEffect === 'sliceUpDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
|
|
||||||
|
|
||||||
slices.each(function(){
|
|
||||||
var slice = $(this);
|
|
||||||
if(i === 0){
|
|
||||||
slice.css('top','0px');
|
|
||||||
i++;
|
|
||||||
} else {
|
|
||||||
slice.css('bottom','0px');
|
|
||||||
i = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(v === settings.slices-1){
|
|
||||||
setTimeout(function(){
|
|
||||||
slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
} else {
|
|
||||||
setTimeout(function(){
|
|
||||||
slice.animate({opacity:'1.0' }, settings.animSpeed);
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
}
|
|
||||||
timeBuff += 50;
|
|
||||||
v++;
|
|
||||||
});
|
|
||||||
} else if(currentEffect === 'fold'){
|
|
||||||
createSlices(slider, settings, vars);
|
|
||||||
timeBuff = 0;
|
|
||||||
i = 0;
|
|
||||||
|
|
||||||
$('.nivo-slice', slider).each(function(){
|
|
||||||
var slice = $(this);
|
|
||||||
var origWidth = slice.width();
|
|
||||||
slice.css({ top:'0px', width:'0px' });
|
|
||||||
if(i === settings.slices-1){
|
|
||||||
setTimeout(function(){
|
|
||||||
slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
} else {
|
|
||||||
setTimeout(function(){
|
|
||||||
slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed);
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
}
|
|
||||||
timeBuff += 50;
|
|
||||||
i++;
|
|
||||||
});
|
|
||||||
} else if(currentEffect === 'fade'){
|
|
||||||
createSlices(slider, settings, vars);
|
|
||||||
|
|
||||||
firstSlice = $('.nivo-slice:first', slider);
|
|
||||||
firstSlice.css({
|
|
||||||
'width': slider.width() + 'px'
|
|
||||||
});
|
|
||||||
|
|
||||||
firstSlice.animate({ opacity:'1.0' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
|
|
||||||
} else if(currentEffect === 'slideInRight'){
|
|
||||||
createSlices(slider, settings, vars);
|
|
||||||
|
|
||||||
firstSlice = $('.nivo-slice:first', slider);
|
|
||||||
firstSlice.css({
|
|
||||||
'width': '0px',
|
|
||||||
'opacity': '1'
|
|
||||||
});
|
|
||||||
|
|
||||||
firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
|
|
||||||
} else if(currentEffect === 'slideInLeft'){
|
|
||||||
createSlices(slider, settings, vars);
|
|
||||||
|
|
||||||
firstSlice = $('.nivo-slice:first', slider);
|
|
||||||
firstSlice.css({
|
|
||||||
'width': '0px',
|
|
||||||
'opacity': '1',
|
|
||||||
'left': '',
|
|
||||||
'right': '0px'
|
|
||||||
});
|
|
||||||
|
|
||||||
firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){
|
|
||||||
// Reset positioning
|
|
||||||
firstSlice.css({
|
|
||||||
'left': '0px',
|
|
||||||
'right': ''
|
|
||||||
});
|
|
||||||
slider.trigger('nivo:animFinished');
|
|
||||||
});
|
|
||||||
} else if(currentEffect === 'boxRandom'){
|
|
||||||
createBoxes(slider, settings, vars);
|
|
||||||
|
|
||||||
totalBoxes = settings.boxCols * settings.boxRows;
|
|
||||||
i = 0;
|
|
||||||
timeBuff = 0;
|
|
||||||
|
|
||||||
boxes = shuffle($('.nivo-box', slider));
|
|
||||||
boxes.each(function(){
|
|
||||||
var box = $(this);
|
|
||||||
if(i === totalBoxes-1){
|
|
||||||
setTimeout(function(){
|
|
||||||
box.animate({ opacity:'1' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
} else {
|
|
||||||
setTimeout(function(){
|
|
||||||
box.animate({ opacity:'1' }, settings.animSpeed);
|
|
||||||
}, (100 + timeBuff));
|
|
||||||
}
|
|
||||||
timeBuff += 20;
|
|
||||||
i++;
|
|
||||||
});
|
|
||||||
} else if(currentEffect === 'boxRain' || currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
|
|
||||||
createBoxes(slider, settings, vars);
|
|
||||||
|
|
||||||
totalBoxes = settings.boxCols * settings.boxRows;
|
|
||||||
i = 0;
|
|
||||||
timeBuff = 0;
|
|
||||||
|
|
||||||
// Split boxes into 2D array
|
|
||||||
var rowIndex = 0;
|
|
||||||
var colIndex = 0;
|
|
||||||
var box2Darr = [];
|
|
||||||
box2Darr[rowIndex] = [];
|
|
||||||
boxes = $('.nivo-box', slider);
|
|
||||||
if(currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrowReverse'){
|
|
||||||
boxes = $('.nivo-box', slider)._reverse();
|
|
||||||
}
|
|
||||||
boxes.each(function(){
|
|
||||||
box2Darr[rowIndex][colIndex] = $(this);
|
|
||||||
colIndex++;
|
|
||||||
if(colIndex === settings.boxCols){
|
|
||||||
rowIndex++;
|
|
||||||
colIndex = 0;
|
|
||||||
box2Darr[rowIndex] = [];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Run animation
|
|
||||||
for(var cols = 0; cols < (settings.boxCols * 2); cols++){
|
|
||||||
var prevCol = cols;
|
|
||||||
for(var rows = 0; rows < settings.boxRows; rows++){
|
|
||||||
if(prevCol >= 0 && prevCol < settings.boxCols){
|
|
||||||
/* Due to some weird JS bug with loop vars
|
|
||||||
being used in setTimeout, this is wrapped
|
|
||||||
with an anonymous function call */
|
|
||||||
(function(row, col, time, i, totalBoxes) {
|
|
||||||
var box = $(box2Darr[row][col]);
|
|
||||||
var w = box.width();
|
|
||||||
var h = box.height();
|
|
||||||
if(currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
|
|
||||||
box.width(0).height(0);
|
|
||||||
}
|
|
||||||
if(i === totalBoxes-1){
|
|
||||||
setTimeout(function(){
|
|
||||||
box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3, '', function(){ slider.trigger('nivo:animFinished'); });
|
|
||||||
}, (100 + time));
|
|
||||||
} else {
|
|
||||||
setTimeout(function(){
|
|
||||||
box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3);
|
|
||||||
}, (100 + time));
|
|
||||||
}
|
|
||||||
})(rows, prevCol, timeBuff, i, totalBoxes);
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
prevCol--;
|
|
||||||
}
|
|
||||||
timeBuff += 100;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Shuffle an array
|
|
||||||
var shuffle = function(arr){
|
|
||||||
for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i, 10), x = arr[--i], arr[i] = arr[j], arr[j] = x);
|
|
||||||
return arr;
|
|
||||||
};
|
|
||||||
|
|
||||||
// For debugging
|
|
||||||
var trace = function(msg){
|
|
||||||
if(this.console && typeof console.log !== 'undefined') { console.log(msg); }
|
|
||||||
};
|
|
||||||
|
|
||||||
// Start / Stop
|
|
||||||
this.stop = function(){
|
|
||||||
if(!$(element).data('nivo:vars').stop){
|
|
||||||
$(element).data('nivo:vars').stop = true;
|
|
||||||
trace('Stop Slider');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
this.start = function(){
|
|
||||||
if($(element).data('nivo:vars').stop){
|
|
||||||
$(element).data('nivo:vars').stop = false;
|
|
||||||
trace('Start Slider');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Trigger the afterLoad callback
|
|
||||||
settings.afterLoad.call(this);
|
|
||||||
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
|
|
||||||
$.fn.nivoSlider = function(options) {
|
|
||||||
return this.each(function(key, value){
|
|
||||||
var element = $(this);
|
|
||||||
// Return early if this element already has a plugin instance
|
|
||||||
if (element.data('nivoslider')) { return element.data('nivoslider'); }
|
|
||||||
// Pass options to plugin constructor
|
|
||||||
var nivoslider = new NivoSlider(this, options);
|
|
||||||
// Store plugin object in this element's data
|
|
||||||
element.data('nivoslider', nivoslider);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
//Default settings
|
|
||||||
$.fn.nivoSlider.defaults = {
|
|
||||||
effect: 'random',
|
|
||||||
slices: 15,
|
|
||||||
boxCols: 8,
|
|
||||||
boxRows: 4,
|
|
||||||
animSpeed: 500,
|
|
||||||
pauseTime: 3000,
|
|
||||||
startSlide: 0,
|
|
||||||
directionNav: true,
|
|
||||||
directionNavHide: true,
|
|
||||||
controlNav: true,
|
|
||||||
controlNavThumbs: false,
|
|
||||||
pauseOnHover: true,
|
|
||||||
manualAdvance: false,
|
|
||||||
prevText: 'Prev',
|
|
||||||
nextText: 'Next',
|
|
||||||
randomStart: false,
|
|
||||||
beforeChange: function(){},
|
|
||||||
afterChange: function(){},
|
|
||||||
slideshowEnd: function(){},
|
|
||||||
lastSlide: function(){},
|
|
||||||
afterLoad: function(){}
|
|
||||||
};
|
|
||||||
|
|
||||||
$.fn._reverse = [].reverse;
|
|
||||||
|
|
||||||
})(jQuery);
|
|
@ -1,22 +0,0 @@
|
|||||||
Copyright (c) 2010-2012 Dev7studios
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person
|
|
||||||
obtaining a copy of this software and associated documentation
|
|
||||||
files (the "Software"), to deal in the Software without
|
|
||||||
restriction, including without limitation the rights to use,
|
|
||||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the
|
|
||||||
Software is furnished to do so, subject to the following
|
|
||||||
conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
|
||||||
included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
||||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
||||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
||||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
||||||
OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -1,109 +0,0 @@
|
|||||||
/*
|
|
||||||
* jQuery Nivo Slider v3.0.1
|
|
||||||
* http://nivo.dev7studios.com
|
|
||||||
*
|
|
||||||
* Copyright 2012, Dev7studios
|
|
||||||
* Free to use and abuse under the MIT license.
|
|
||||||
* http://www.opensource.org/licenses/mit-license.php
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* The Nivo Slider styles */
|
|
||||||
.nivoSlider {
|
|
||||||
position:relative;
|
|
||||||
width:100%;
|
|
||||||
height:auto;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.nivoSlider img {
|
|
||||||
position:absolute;
|
|
||||||
top:0px;
|
|
||||||
left:0px;
|
|
||||||
}
|
|
||||||
.nivo-main-image {
|
|
||||||
display: block !important;
|
|
||||||
position: relative !important;
|
|
||||||
width: 100% !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If an image is wrapped in a link */
|
|
||||||
.nivoSlider a.nivo-imageLink {
|
|
||||||
position:absolute;
|
|
||||||
top:0px;
|
|
||||||
left:0px;
|
|
||||||
width:100%;
|
|
||||||
height:100%;
|
|
||||||
border:0;
|
|
||||||
padding:0;
|
|
||||||
margin:0;
|
|
||||||
z-index:6;
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
/* The slices and boxes in the Slider */
|
|
||||||
.nivo-slice {
|
|
||||||
display:block;
|
|
||||||
position:absolute;
|
|
||||||
z-index:5;
|
|
||||||
height:100%;
|
|
||||||
top:0;
|
|
||||||
}
|
|
||||||
.nivo-box {
|
|
||||||
display:block;
|
|
||||||
position:absolute;
|
|
||||||
z-index:5;
|
|
||||||
overflow:hidden;
|
|
||||||
}
|
|
||||||
.nivo-box img { display:block; }
|
|
||||||
|
|
||||||
/* Caption styles */
|
|
||||||
.nivo-caption {
|
|
||||||
position:absolute;
|
|
||||||
left:0px;
|
|
||||||
bottom:0px;
|
|
||||||
background:#000;
|
|
||||||
color:#fff;
|
|
||||||
width:100%;
|
|
||||||
z-index:8;
|
|
||||||
padding: 5px 10px;
|
|
||||||
opacity: 0.8;
|
|
||||||
overflow: hidden;
|
|
||||||
display: none;
|
|
||||||
-moz-opacity: 0.8;
|
|
||||||
filter:alpha(opacity=8);
|
|
||||||
-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
|
|
||||||
-moz-box-sizing: border-box; /* Firefox, other Gecko */
|
|
||||||
box-sizing: border-box; /* Opera/IE 8+ */
|
|
||||||
}
|
|
||||||
.nivo-caption p {
|
|
||||||
padding:5px;
|
|
||||||
margin:0;
|
|
||||||
}
|
|
||||||
.nivo-caption a {
|
|
||||||
display:inline !important;
|
|
||||||
}
|
|
||||||
.nivo-html-caption {
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
/* Direction nav styles (e.g. Next & Prev) */
|
|
||||||
.nivo-directionNav a {
|
|
||||||
position:absolute;
|
|
||||||
top:45%;
|
|
||||||
z-index:9;
|
|
||||||
cursor:pointer;
|
|
||||||
}
|
|
||||||
.nivo-prevNav {
|
|
||||||
left:0px;
|
|
||||||
}
|
|
||||||
.nivo-nextNav {
|
|
||||||
right:0px;
|
|
||||||
}
|
|
||||||
/* Control nav styles (e.g. 1,2,3...) */
|
|
||||||
.nivo-controlNav {
|
|
||||||
text-align:center;
|
|
||||||
padding: 15px 0;
|
|
||||||
}
|
|
||||||
.nivo-controlNav a {
|
|
||||||
cursor:pointer;
|
|
||||||
}
|
|
||||||
.nivo-controlNav a.active {
|
|
||||||
font-weight:bold;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 824 B |
Before Width: | Height: | Size: 1.3 KiB |
@ -1,87 +0,0 @@
|
|||||||
/*
|
|
||||||
Skin Name: Nivo Slider Default Theme
|
|
||||||
Skin URI: http://nivo.dev7studios.com
|
|
||||||
Skin Type: flexible
|
|
||||||
Description: The default skin for the Nivo Slider.
|
|
||||||
Version: 1.2
|
|
||||||
Author: Gilbert Pellegrom
|
|
||||||
Author URI: http://dev7studios.com
|
|
||||||
*/
|
|
||||||
|
|
||||||
.theme-default .nivoSlider {
|
|
||||||
position:relative;
|
|
||||||
background:#fff url(loading.gif) no-repeat 50% 50%;
|
|
||||||
margin-bottom:50px;
|
|
||||||
-webkit-box-shadow: 0px 1px 5px 0px #4a4a4a;
|
|
||||||
-moz-box-shadow: 0px 1px 5px 0px #4a4a4a;
|
|
||||||
box-shadow: 0px 1px 5px 0px #4a4a4a;
|
|
||||||
}
|
|
||||||
.theme-default .nivoSlider img {
|
|
||||||
position:absolute;
|
|
||||||
top:0px;
|
|
||||||
left:0px;
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
.theme-default .nivoSlider a {
|
|
||||||
border:0;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-default .nivo-controlNav {
|
|
||||||
text-align: center;
|
|
||||||
padding: 20px 0;
|
|
||||||
}
|
|
||||||
.theme-default .nivo-controlNav a {
|
|
||||||
display:inline-block;
|
|
||||||
width:22px;
|
|
||||||
height:22px;
|
|
||||||
background:url(bullets.png) no-repeat;
|
|
||||||
text-indent:-9999px;
|
|
||||||
border:0;
|
|
||||||
margin: 0 2px;
|
|
||||||
}
|
|
||||||
.theme-default .nivo-controlNav a.active {
|
|
||||||
background-position:0 -22px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-default .nivo-directionNav a {
|
|
||||||
display:block;
|
|
||||||
width:30px;
|
|
||||||
height:30px;
|
|
||||||
background:url(arrows.png) no-repeat;
|
|
||||||
text-indent:-9999px;
|
|
||||||
border:0;
|
|
||||||
}
|
|
||||||
.theme-default a.nivo-nextNav {
|
|
||||||
background-position:-30px 0;
|
|
||||||
right:15px;
|
|
||||||
}
|
|
||||||
.theme-default a.nivo-prevNav {
|
|
||||||
left:15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-default .nivo-caption {
|
|
||||||
font-family: Helvetica, Arial, sans-serif;
|
|
||||||
}
|
|
||||||
.theme-default .nivo-caption a {
|
|
||||||
color:#fff;
|
|
||||||
border-bottom:1px dotted #fff;
|
|
||||||
}
|
|
||||||
.theme-default .nivo-caption a:hover {
|
|
||||||
color:#fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-default .nivo-controlNav.nivo-thumbs-enabled {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.theme-default .nivo-controlNav.nivo-thumbs-enabled a {
|
|
||||||
width: auto;
|
|
||||||
height: auto;
|
|
||||||
background: none;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
.theme-default .nivo-controlNav.nivo-thumbs-enabled img {
|
|
||||||
display: block;
|
|
||||||
width: 120px;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.7 KiB |
@ -1,26 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0 20px;
|
|
||||||
font: 10pt "Helvetica";
|
|
||||||
color: #DDD;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
*:link, *:visited {
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
margin: 0;
|
|
||||||
font: 12pt "Copperplate";
|
|
||||||
}
|
|
||||||
p {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,79 +0,0 @@
|
|||||||
<?php
|
|
||||||
//==================================== Simple PHP code sample ==========================================//
|
|
||||||
|
|
||||||
header('Content-Type: text/plain;');
|
|
||||||
$countryToCC = array(
|
|
||||||
"AC" => 247, "AD" => 376, "AE" => 971, "AF" => 93, "AG" => 1, "AI" => 1, "AL" => 355, "AM" => 374, "AO" => 244, "AQ" => 672, "AR" => 54, "AS" => 1, "AT" => 43, "AU" => 61, "AW" => 297, "AX" => 358, "AZ" => 994, "BA" => 387, "BB" => 1, "BD" => 880, "BE" => 32, "BF" => 226, "BG" => 359, "BH" => 973, "BI" => 257, "BJ" => 229, "BL" => 590, "BM" => 1, "BN" => 673, "BO" => 591, "BQ" => 599, "BR" => 55, "BS" => 1, "BT" => 975, "BW" => 267, "BY" => 375, "BZ" => 501, "CA" => 1, "CC" => 61, "CD" => 243, "CF" => 236, "CG" => 242, "CH" => 41, "CI" => 225, "CK" => 682, "CL" => 56, "CM" => 237, "CN" => 86, "CO" => 57, "CR" => 506, "CU" => 53, "CV" => 238, "CW" => 599, "CX" => 61, "CY" => 357, "CZ" => 420, "DE" => 49, "DJ" => 253,
|
|
||||||
"DK" => 45, "DM" => 1, "DO" => 1, "DZ" => 213, "EC" => 593, "EE" => 372, "EG" => 20, "EH" => 212, "ER" => 291, "ES" => 34, "ET" => 251, "EU" => 388, "FI" => 358, "FJ" => 679, "FK" => 500, "FM" => 691, "FO" => 298, "FR" => 33, "GA" => 241, "GB" => 44, "GD" => 1, "GE" => 995, "GF" => 594, "GG" => 44, "GH" => 233, "GI" => 350, "GL" => 299, "GM" => 220, "GN" => 224, "GP" => 590, "GQ" => 240, "GR" => 30, "GT" => 502, "GU" => 1, "GW" => 245, "GY" => 592, "HK" => 852, "HN" => 504, "HR" => 385, "HT" => 509, "HU" => 36, "ID" => 62, "IE" => 353, "IL" => 972, "IM" => 44, "IN" => 91, "IO" => 246, "IQ" => 964,
|
|
||||||
"IR" => 98, "IS" => 354, "IT" => 39, "JE" => 44, "JM" => 1, "JO" => 962, "JP" => 81, "KE" => 254, "KG" => 996, "KH" => 855, "KI" => 686, "KM" => 269, "KN" => 1, "KP" => 850, "KR" => 82, "KW" => 965, "KY" => 1, "KZ" => 7, "LA" => 856, "LB" => 961, "LC" => 1, "LI" => 423, "LK" => 94, "LR" => 231, "LS" => 266, "LT" => 370, "LU" => 352, "LV" => 371, "LY" => 218, "MA" => 212, "MC" => 377, "MD" => 373, "ME" => 382, "MF" => 590, "MG" => 261, "MH" => 692, "MK" => 389, "ML" => 223, "MM" => 95, "MN" => 976, "MO" => 853, "MP" => 1, "MQ" => 596, "MR" => 222, "MS" => 1, "MT" => 356, "MU" => 230, "MV" => 960, "MW" => 265, "MX" => 52, "MY" => 60, "MZ" => 258, "NA" => 264, "NC" => 687, "NE" => 227, "NF" => 672, "NG" => 234, "NI" => 505, "NL" => 31, "NO" => 47, "NP" => 977, "NR" => 674, "NU" => 683, "NZ" => 64, "OM" => 968, "PA" => 507, "PE" => 51, "PF" => 689, "PG" => 675, "PH" => 63, "PK" => 92, "PL" => 48, "PM" => 508, "PR" => 1,
|
|
||||||
"PS" => 970, "PT" => 351, "PW" => 680, "PY" => 595, "QA" => 974, "QN" => 374, "QS" => 252, "QY" => 90, "RE" => 262, "RO" => 40, "RS" => 381, "RU" => 7, "RW" => 250, "SA" => 966, "SB" => 677, "SC" => 248, "SD" => 249, "SE" => 46, "SG" => 65, "SH" => 290, "SI" => 386, "SJ" => 47, "SK" => 421, "SL" => 232, "SM" => 378, "SN" => 221, "SO" => 252, "SR" => 597, "SS" => 211, "ST" => 239, "SV" => 503, "SX" => 1, "SY" => 963, "SZ" => 268, "TA" => 290, "TC" => 1, "TD" => 235, "TG" => 228, "TH" => 66, "TJ" => 992, "TK" => 690, "TL" => 670, "TM" => 993, "TN" => 216, "TO" => 676, "TR" => 90, "TT" => 1, "TV" => 688, "TW" => 886, "TZ" => 255, "UA" => 380, "UG" => 256, "UK" => 44, "US" => 1, "UY" => 598, "UZ" => 998, "VA" => 379,
|
|
||||||
"VC" => 1, "VE" => 58, "VG" => 1, "VI" => 1, "VN" => 84, "VU" => 678, "WF" => 681, "WS" => 685, "XC" => 991, "XD" => 888, "XG" => 881, "XN" => 870, "XP" => 878, "XR" => 979, "XS" => 808, "XT" => 800, "XV" => 882, "XV" => 883, "YE" => 967, "YT" => 262, "ZA" => 27, "ZM" => 260, "ZW" => 263,
|
|
||||||
);
|
|
||||||
/*
|
|
||||||
* This example requires allow_url_fopen to be enabled in php.ini. If it is not enabled, file_get_contents()
|
|
||||||
* will return an empty result.
|
|
||||||
*
|
|
||||||
* We recommend that you use port 5567 instead of port 80, but your
|
|
||||||
* firewall will probably block access to this port (see FAQ for more
|
|
||||||
* details):
|
|
||||||
* $url = 'http://www.bulksms.co.uk:5567/eapi/submission/send_sms/2/2.0';
|
|
||||||
*
|
|
||||||
* Please note that this is only for illustrative purposes, we strongly recommend that you use our comprehensive example
|
|
||||||
*/
|
|
||||||
$host = $_SERVER['REMOTE_ADDR'];
|
|
||||||
$destination = trim($_REQUEST['destination']);
|
|
||||||
if (strpos($destination, '@') === FALSE) {
|
|
||||||
// MSISDN
|
|
||||||
print("phone: $destination\n");
|
|
||||||
$destination = preg_replace('/[^[:digit:]]/', '', $destination);
|
|
||||||
print("phone: $destination\n");
|
|
||||||
if (strpos($destination, '0') === 0) {
|
|
||||||
$country = file_get_contents('http://api.hostip.info/country.php?ip='.urlencode($host));
|
|
||||||
$countryCode = $countryToCC[$country];
|
|
||||||
if (empty($countryCode)) {
|
|
||||||
print("Can't internationalize destination.");
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
$destination = preg_replace('/^0+/', $countryCode, $destination);
|
|
||||||
print("phone: $destination\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Rate-limit the destination.
|
|
||||||
$destinationFile = "rate-limit/".str_replace("/", "", $destination);
|
|
||||||
$lastSend = @file_get_contents($destinationFile);
|
|
||||||
if (!empty($lastSend) && time() - $lastSend < 3600) {
|
|
||||||
print("Rate-limited destination.");
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Rate-limit the host.
|
|
||||||
$hostFile = "rate-limit/".str_replace("/", "", $host);
|
|
||||||
$lastSend = @file_get_contents($hostFile);
|
|
||||||
if (!empty($lastSend) && time() - $lastSend < 3600) {
|
|
||||||
print("Rate-limited host.");
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Limit check passed, record new operation.
|
|
||||||
file_put_contents($destinationFile, time());
|
|
||||||
file_put_contents($hostFile, time());
|
|
||||||
|
|
||||||
if (strpos($destination, '@') === FALSE) {
|
|
||||||
// Send message as SMS.
|
|
||||||
$url = 'http://www.bulksms.co.uk/eapi/submission/send_sms/2/2.0';
|
|
||||||
$data = 'username='.urlencode('lhunath').'&password='.file_get_contents('send.sms.pw').'&message='.urlencode('Tap to install Master Password: http://itunes.apple.com/app/id510296984').'&msisdn='.urlencode($destination);
|
|
||||||
$params = array('http' => array(
|
|
||||||
'method' => 'POST',
|
|
||||||
'content' => $data,
|
|
||||||
'header' => 'Content-type:application/x-www-form-urlencoded',
|
|
||||||
));
|
|
||||||
|
|
||||||
print(file_get_contents($url, false, stream_context_create($params)));
|
|
||||||
print("Sent to $destination as SMS.");
|
|
||||||
} else {
|
|
||||||
mail($destination, 'Master Password', 'Tap to install Master Password: http://itunes.apple.com/app/id510296984', 'From: Master Password Website <masterpassword@lyndir.com>');
|
|
||||||
print("Sent to $destination as E-mail.");
|
|
||||||
}
|
|
||||||
?>
|
|
@ -1,96 +0,0 @@
|
|||||||
<!DOCTYPE HTML>
|
|
||||||
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Master Password — Securing your online life.</title>
|
|
||||||
|
|
||||||
<link rel="icon" href="images/resources/favicon.png" type="image/x-png" />
|
|
||||||
<link rel="shortcut icon" href="images/resources/favicon.png" type="image/x-png" />
|
|
||||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
|
||||||
<meta http-equiv="refresh" content="3; url=http://support.lyndir.com/forum/13031-master-password/">
|
|
||||||
|
|
||||||
<link rel='stylesheet' type='text/css' href='http://fonts.googleapis.com/css?family=Exo:100,400,600,900,100italic,400italic,600italic' />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/screen.css" />
|
|
||||||
|
|
||||||
<script src="js/jquery-1.6.1.min.js" type="text/javascript"></script>
|
|
||||||
<script src="js/functions.js" type="text/javascript"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _gaq = _gaq || [];
|
|
||||||
_gaq.push(['_setAccount', 'UA-90535-15']);
|
|
||||||
_gaq.push(['_trackPageview']);
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
||||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<a class="badge appstore" href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-fixed-header');_gaq.push(['_trackPageview', '/outbound/itunes']);"><img src="img/appstore.png" /></a>
|
|
||||||
<header>
|
|
||||||
|
|
||||||
<div class="badge appstore">
|
|
||||||
<a href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-top-header');_gaq.push(['_trackPageview', '/outbound/itunes']);">
|
|
||||||
<!--span class="tip appstore">Great feedback may earn you a free copy for a friend!</span-->
|
|
||||||
<img src="img/appstore.png" />
|
|
||||||
</a><br />
|
|
||||||
<form id="sendtophone">
|
|
||||||
<span class="field">
|
|
||||||
Or send to your phone:<br />
|
|
||||||
<input type="text" name="email" placeholder="E-mail or phone number" />
|
|
||||||
<span class="tip phone">Phone needs country code (eg. +1 for US/CA, +44 for UK)</span>
|
|
||||||
</span>
|
|
||||||
<span class="confirm">
|
|
||||||
Message sent!
|
|
||||||
</span>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<h1><a href="."><img class="logo" src="img/iTunesArtwork-Bare.png" /> Master Password</a></h1>
|
|
||||||
<div class="footnote"><a href="mailto:masterpassword+remove_this@lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/mail']);">Contact</a> | <a href="http://www.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a> | <a href="https://plus.google.com/116256327773442623984/about" rel="publisher" onclick="_gaq.push(['_trackPageview', '/outbound/google+']);">Google+</a></div>
|
|
||||||
<div class="divider"></div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
<div id="fixedheader">
|
|
||||||
<h2><a href=".">Master Password</a></h2>
|
|
||||||
</div>
|
|
||||||
<!--a href="http://bit.ly/vNN5Zi" onclick="_gaq.push(['_trackPageview', '/outbound/testflight']);" id="ribbon"></a-->
|
|
||||||
<section>
|
|
||||||
|
|
||||||
<h1>Opening the support forum...</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Stand by while you're being redirected to the Master Password support forum...
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<span itemscope itemtype="http://schema.org/MobileSoftwareApplication">
|
|
||||||
<meta itemprop="image" content="http://masterpassword.lyndir.com/img/iTunesArtwork-Rounded.png" />
|
|
||||||
<meta itemprop="name" content="Master Password" />
|
|
||||||
<meta itemprop="operatingsystems" content="iOS" />
|
|
||||||
<meta itemprop="softwareversion" content="5.0" />
|
|
||||||
|
|
||||||
<span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
|
|
||||||
<meta itemprop="name" content="iOS" />
|
|
||||||
<meta itemprop="price" content="5.99" />
|
|
||||||
<meta itemprop="priceCurrency" content="USD" />
|
|
||||||
<span itemprop="seller" itemscope itemtype="http://schema.org/Organization">
|
|
||||||
<meta itemprop="name" content="Apple" />
|
|
||||||
<meta itemprop="url" content="http://itunes.apple.com/app/id510296984" />
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
<span itemprop="author" itemscope itemtype="http://schema.org/Organization">
|
|
||||||
<meta itemprop="name" content="Lyndir" />
|
|
||||||
<meta itemprop="url" content="http://www.lyndir.com" />
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<footer>
|
|
||||||
Master Password is a security and productivity product by <a href="http://www.lyndir.com" rel="author" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a>, © 2011.
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
cd "${BASH_SOURCE[0]%/*}"
|
|
||||||
s3cmd sync . s3://masterpassword.lyndir.com/
|
|
||||||
s3cmd sync . s3://www.masterpasswordapp.com/
|
|
||||||
nice rsync --partial --progress --delete --sparse --archive --no-owner --no-perms --no-group --chmod=ugo=rwX \
|
|
||||||
--exclude rate-limit \
|
|
||||||
. satura.lyndir.com:/usr/local/www/masterpassword.lyndir.com/htdocs/
|
|
@ -1,306 +0,0 @@
|
|||||||
<!DOCTYPE HTML>
|
|
||||||
|
|
||||||
<html>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Master Password — Securing your online life.</title>
|
|
||||||
|
|
||||||
<link rel="icon" href="images/resources/favicon.png" type="image/x-png" />
|
|
||||||
<link rel="shortcut icon" href="images/resources/favicon.png" type="image/x-png" />
|
|
||||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
|
||||||
<meta name="apple-itunes-app" content="app-id=510296984" />
|
|
||||||
|
|
||||||
<link rel='stylesheet' type='text/css' href='http://fonts.googleapis.com/css?family=Exo:100,400,600,900,100italic,400italic,600italic' />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="css/screen.css" />
|
|
||||||
|
|
||||||
<script src="js/jquery-1.6.1.min.js" type="text/javascript"></script>
|
|
||||||
<script src="js/functions.js" type="text/javascript"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$(window).scroll(function() {
|
|
||||||
if ($(window).scrollTop() > 100) {
|
|
||||||
$(".appstore").show();
|
|
||||||
$("header .appstore").hide();
|
|
||||||
} else {
|
|
||||||
$(".appstore").hide();
|
|
||||||
$("header .appstore").show();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
var _gaq = _gaq || [];
|
|
||||||
_gaq.push(['_setAccount', 'UA-90535-15']);
|
|
||||||
_gaq.push(['_trackPageview']);
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
|
||||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
var is_ssl = ("https:" == document.location.protocol);
|
|
||||||
var asset_host = is_ssl ? "https://d3rdqalhjaisuu.cloudfront.net/" : "http://d3rdqalhjaisuu.cloudfront.net/";
|
|
||||||
document.write(unescape("%3Cscript src='" + asset_host + "javascripts/feedback-v2.js' type='text/javascript'%3E%3C/script%3E"));
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Get Satisfaction -->
|
|
||||||
<!--script type="text/javascript" charset="utf-8">
|
|
||||||
var is_ssl = ("https:" == document.location.protocol);
|
|
||||||
var asset_host = is_ssl ? "https://d3rdqalhjaisuu.cloudfront.net/" : "http://d3rdqalhjaisuu.cloudfront.net/";
|
|
||||||
document.write(unescape("%3Cscript src='" + asset_host + "javascripts/feedback-v2.js' type='text/javascript'%3E%3C/script%3E"));
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
var feedback_widget_options = {};
|
|
||||||
feedback_widget_options.display = "overlay";
|
|
||||||
feedback_widget_options.company = "lyndir";
|
|
||||||
feedback_widget_options.placement = "right";
|
|
||||||
feedback_widget_options.color = "#222";
|
|
||||||
feedback_widget_options.style = "question";
|
|
||||||
var feedback_widget = new GSFN.feedback_widget(feedback_widget_options);
|
|
||||||
</script-->
|
|
||||||
|
|
||||||
<!-- UserEcho -->
|
|
||||||
<script type='text/javascript'>
|
|
||||||
var _ues = {
|
|
||||||
host:'support.lyndir.com',
|
|
||||||
forum:'13031',
|
|
||||||
lang:'en',
|
|
||||||
tab_icon_show:false,
|
|
||||||
tab_corner_radius:5,
|
|
||||||
tab_font_size:20,
|
|
||||||
tab_image_hash:'RmVlZGJhY2s%3D',
|
|
||||||
tab_alignment:'right',
|
|
||||||
tab_text_color:'#FFFFFF',
|
|
||||||
tab_bg_color:'#DDDDDD',
|
|
||||||
tab_hover_color:'#CCCCCC'
|
|
||||||
};
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var _ue = document.createElement('script'); _ue.type = 'text/javascript'; _ue.async = true;
|
|
||||||
_ue.src = ('https:' == document.location.protocol ? 'https://s3.amazonaws.com/' : 'http://') + 'cdn.userecho.com/js/widget-1.4.gz.js';
|
|
||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(_ue, s);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- jQuery -->
|
|
||||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
|
|
||||||
|
|
||||||
<!-- Page JS -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$(window).scroll(function() {
|
|
||||||
if ($(window).scrollTop() > 100) {
|
|
||||||
$(".appstore").show();
|
|
||||||
$("header .appstore").hide();
|
|
||||||
} else {
|
|
||||||
$(".appstore").hide();
|
|
||||||
$("header .appstore").show();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$(".tip.appstore").hide().delay(1000).fadeIn();
|
|
||||||
$(".tip.phone").hide();
|
|
||||||
$("#sendtophone").mouseenter(function() {
|
|
||||||
$(".tip.phone").fadeIn();
|
|
||||||
});
|
|
||||||
$("#sendtophone").mouseleave(function() {
|
|
||||||
$(".tip.phone").fadeOut();
|
|
||||||
});
|
|
||||||
$("#sendtophone").submit(function() {
|
|
||||||
$.ajax({
|
|
||||||
url: "http://masterpassword.lyndir.com/send.php",
|
|
||||||
data: {
|
|
||||||
destination: $(this).find("input[type='text']").val(),
|
|
||||||
},
|
|
||||||
cache: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
goog_report_conversion('index-sendtophone');
|
|
||||||
_gaq.push(['_trackPageview', '/outbound/sendtophone']);
|
|
||||||
|
|
||||||
$("#sendtophone .field").hide();
|
|
||||||
$("#sendtophone .confirm").show();
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
$("#sendtophone .field").show();
|
|
||||||
$("#sendtophone .confirm").hide();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- AdWords -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
/* <![CDATA[ */
|
|
||||||
goog_snippet_vars = function() {
|
|
||||||
var w = window;
|
|
||||||
w.google_conversion_id = 1015576061;
|
|
||||||
w.google_conversion_label = "PcXqCPPz5AIQ_euh5AM";
|
|
||||||
w.google_conversion_value = 4;
|
|
||||||
}
|
|
||||||
goog_report_conversion = function(url) {
|
|
||||||
goog_snippet_vars();
|
|
||||||
window.google_conversion_format = "3";
|
|
||||||
window.google_is_call = true;
|
|
||||||
var opt = new Object();
|
|
||||||
opt.onload_callback = function() {
|
|
||||||
if (typeof(url) != 'undefined') {
|
|
||||||
window.location = url;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var conv_handler = window['google_trackConversion'];
|
|
||||||
if (typeof(conv_handler) == 'function') {
|
|
||||||
conv_handler(opt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* ]]> */
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion_async.js"></script>
|
|
||||||
|
|
||||||
<!-- Google +1 -->
|
|
||||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<a class="badge appstore" href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-fixed-header');_gaq.push(['_trackPageview', '/outbound/itunes']);"><img src="img/appstore.png" /></a>
|
|
||||||
<header>
|
|
||||||
|
|
||||||
<div class="badge appstore">
|
|
||||||
<a href="http://itunes.apple.com/app/id510296984" onclick="goog_report_conversion('index-top-header');_gaq.push(['_trackPageview', '/outbound/itunes']);">
|
|
||||||
<!--span class="tip appstore">Great feedback may earn you a free copy for a friend!</span-->
|
|
||||||
<img src="img/appstore.png" />
|
|
||||||
</a><br />
|
|
||||||
<form id="sendtophone">
|
|
||||||
<span class="field">
|
|
||||||
Or send to your phone:<br />
|
|
||||||
<input type="text" name="email" placeholder="E-mail or phone number" />
|
|
||||||
<span class="tip phone">Phone needs country code (eg. +1 for US/CA, +44 for UK)</span>
|
|
||||||
</span>
|
|
||||||
<span class="confirm">
|
|
||||||
Message sent!
|
|
||||||
</span>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<h1><a href="."><img class="logo" src="img/iTunesArtwork-Bare.png" /> Master Password</a></h1>
|
|
||||||
<div class="footnote"><a href="mailto:masterpassword+remove_this@lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/mail']);">Contact</a> | <a href="http://www.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a> | <a href="https://plus.google.com/116256327773442623984/about" rel="publisher" onclick="_gaq.push(['_trackPageview', '/outbound/google+']);">Google+</a></div>
|
|
||||||
<div class="divider"></div>
|
|
||||||
|
|
||||||
</header>
|
|
||||||
<div id="fixedheader">
|
|
||||||
<h2><a href=".">Master Password</a></h2>
|
|
||||||
</div>
|
|
||||||
<!--a href="http://bit.ly/vNN5Zi" onclick="_gaq.push(['_trackPageview', '/outbound/testflight']);" id="ribbon"></a-->
|
|
||||||
|
|
||||||
<section class="heading">
|
|
||||||
<div>
|
|
||||||
|
|
||||||
<h1>What is this? <div class="g-plusone" data-annotation="none" data-href="http://masterpassword.lyndir.com"></div></h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Master Password is a revolution in password management.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
It aims to secure your online (and offline!) life by <em>changing the way you deal with passwords</em>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
<h1>Revolution? Why would I need that?</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
You already know the problem:<br />
|
|
||||||
Passwords are confidential information between you and a site. They should never be shared with anyone else, definitely not other sites. Yet that's exactly what happens with most of us: Hundereds of online accounts to manage and authenticate, <strong>we can't help but reuse one, two or five passwords that we can remember</strong>. Maybe we keep a paper stuck to our monitor with a list of passwords on them, because we realize the truth:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<blockquote>It is impossible to remember a secure password for each of our accounts and still keep those passwords both <em>exclusive</em> and <em>confidential</em>.</blockquote>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Multiple solutions exist:<br />
|
|
||||||
Sites that realize that passwords aren't the end-all of authentication usually implement some sort of alternative authentication mechanism: <em>OpenID, SAML, some form of mobile authentication, secure tokens, etc</em>.<br />
|
|
||||||
The problem here is that these solutions only work for the select few sites that have chosen to implement them; and then you, the user, are stuck with whatever mechanism the site has chosen for you.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To solve the problem for other sites, there are <em>programs that remember our passwords for us</em>.<br />
|
|
||||||
The problem with these is that they do not actually help us with setting exclusive and confidential passwords for our accounts. They just offload the work of remembering passwords, and at a great expense: <strong>If you lose your data, you lose your online identity and are locked out of everything</strong>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<h1>So, I guess you claim to do better?</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Master Password aims to turn the tables in favor of the user, you.<br />
|
|
||||||
In the end, <em>what we really want</em> is a way of dealing with passwords in an exclusive and confidential way <em>without having to remember</em> them, and <em>without running the risk of losing our online identity</em> to fraudsters.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Master Password does exactly this. You remember a single master password. Make it a long and secure one. Master Password uses this password along with the name of the site that you want to log into and generates a secure but unique password for that site. What's more, it doesn't store this information anywhere. If you lose your phone, the thieves can get none the wiser from it. You kick yourself for losing your phone, pick up any other phone, start the application, enter your master password, and instantly have access to all your passwords again. No sync, no backups, no hassle.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>Built with the highest security considerations in mind.</li>
|
|
||||||
<li>Designed with beauty, elegance, simplicity and usability in mind.</li>
|
|
||||||
<li>Different types of passwords can be generated to curb sites with strange password policies.</li>
|
|
||||||
<li>A password counter lets you generate a new password for a site in case it gets compromised.</li>
|
|
||||||
<li>Master password can be either:
|
|
||||||
<ul>
|
|
||||||
<li>Stored securely on the device (so you don't need to enter it anymore).</li>
|
|
||||||
<li>Not stored but remembered between sessions (so you only enter it once after powering on).</li>
|
|
||||||
<li>Not stored or remembered and required for every usage of the application (safest).</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>For those cases where you cannot change your account's password, the application will encrypt passwords with your master password and store them securely (as explained, stored passwords can get lost).</li>
|
|
||||||
<li>Integrates with iCloud to synchronize and back up your site history and stored passwords.</li>
|
|
||||||
<li>For those that care to know, the password generation algorithm is open and fully documented, so you aren't tied down to this application.</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p class="center">
|
|
||||||
<img src="img/ComparisonOfPasswordSolutions.png" />
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<h1>OK, I'm convinced. Where do I get it?</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Master Password is available from Apple's App Store for iOS and Mac. The Mac application currently requires the iOS application and iCloud to be enabled and set up on both the iPhone and the Mac.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
The application is fully open source under the GPLv3, which means you can inspect the code and build the application for yourself, if you prefer. You can find the Master Password source code on <a href="http://github.com/Lyndir/MasterPassword">GitHub</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
<a class="next" href="algorithm.html">So how does it work? Can I trust it?</a>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<span itemscope itemtype="http://schema.org/MobileSoftwareApplication">
|
|
||||||
<meta itemprop="image" content="http://masterpassword.lyndir.com/img/iTunesArtwork-Rounded.png" />
|
|
||||||
<meta itemprop="name" content="Master Password" />
|
|
||||||
<meta itemprop="operatingsystems" content="iOS" />
|
|
||||||
<meta itemprop="softwareversion" content="5.0" />
|
|
||||||
|
|
||||||
<span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
|
|
||||||
<meta itemprop="name" content="iOS" />
|
|
||||||
<meta itemprop="price" content="5.99" />
|
|
||||||
<meta itemprop="priceCurrency" content="USD" />
|
|
||||||
<span itemprop="seller" itemscope itemtype="http://schema.org/Organization">
|
|
||||||
<meta itemprop="name" content="Apple" />
|
|
||||||
<meta itemprop="url" content="http://itunes.apple.com/app/id510296984" />
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
<span itemprop="author" itemscope itemtype="http://schema.org/Organization">
|
|
||||||
<meta itemprop="name" content="Lyndir" />
|
|
||||||
<meta itemprop="url" content="http://www.lyndir.com" />
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<footer>
|
|
||||||
Master Password is a security and productivity product by <a href="http://www.lyndir.com" rel="author" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a>, © 2011.
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,157 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Page Not Found :(</title>
|
|
||||||
<style>
|
|
||||||
::-moz-selection {
|
|
||||||
background: #b3d4fc;
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
::selection {
|
|
||||||
background: #b3d4fc;
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
padding: 30px 10px;
|
|
||||||
font-size: 20px;
|
|
||||||
line-height: 1.4;
|
|
||||||
color: #737373;
|
|
||||||
background: #f0f0f0;
|
|
||||||
-webkit-text-size-adjust: 100%;
|
|
||||||
-ms-text-size-adjust: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
html,
|
|
||||||
input {
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
max-width: 500px;
|
|
||||||
_width: 500px;
|
|
||||||
padding: 30px 20px 50px;
|
|
||||||
border: 1px solid #b3b3b3;
|
|
||||||
border-radius: 4px;
|
|
||||||
margin: 0 auto;
|
|
||||||
box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
|
|
||||||
background: #fcfcfc;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
margin: 0 10px;
|
|
||||||
font-size: 50px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 span {
|
|
||||||
color: #bbb;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
margin: 1.5em 0 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin: 1em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
padding: 0 0 0 40px;
|
|
||||||
margin: 1em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.container {
|
|
||||||
max-width: 380px;
|
|
||||||
_width: 380px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* google search */
|
|
||||||
|
|
||||||
#goog-fixurl ul {
|
|
||||||
list-style: none;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#goog-fixurl form {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#goog-wm-qt,
|
|
||||||
#goog-wm-sb {
|
|
||||||
border: 1px solid #bbb;
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: normal;
|
|
||||||
vertical-align: top;
|
|
||||||
color: #444;
|
|
||||||
border-radius: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#goog-wm-qt {
|
|
||||||
width: 220px;
|
|
||||||
height: 20px;
|
|
||||||
padding: 5px;
|
|
||||||
margin: 5px 10px 0 0;
|
|
||||||
box-shadow: inset 0 1px 1px #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
#goog-wm-sb {
|
|
||||||
display: inline-block;
|
|
||||||
height: 32px;
|
|
||||||
padding: 0 10px;
|
|
||||||
margin: 5px 0 0;
|
|
||||||
white-space: nowrap;
|
|
||||||
cursor: pointer;
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
|
||||||
background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
|
||||||
background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
|
||||||
background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
|
||||||
-webkit-appearance: none;
|
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
*overflow: visible;
|
|
||||||
*display: inline;
|
|
||||||
*zoom: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#goog-wm-sb:hover,
|
|
||||||
#goog-wm-sb:focus {
|
|
||||||
border-color: #aaa;
|
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
|
||||||
background-color: #f8f8f8;
|
|
||||||
}
|
|
||||||
|
|
||||||
#goog-wm-qt:hover,
|
|
||||||
#goog-wm-qt:focus {
|
|
||||||
border-color: #105cb6;
|
|
||||||
outline: 0;
|
|
||||||
color: #222;
|
|
||||||
}
|
|
||||||
|
|
||||||
input::-moz-focus-inner {
|
|
||||||
padding: 0;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="container">
|
|
||||||
<h1>Not found <span>:(</span></h1>
|
|
||||||
<p>Sorry, but the page you were trying to view does not exist.</p>
|
|
||||||
<p>It looks like this was the result of either:</p>
|
|
||||||
<ul>
|
|
||||||
<li>a mistyped address</li>
|
|
||||||
<li>an out-of-date link</li>
|
|
||||||
</ul>
|
|
||||||
<script>
|
|
||||||
var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
|
|
||||||
</script>
|
|
||||||
<script src="://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,318 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html class="no-js" itemscope itemtype="://schema.org/Product">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title itemprop="name">Master Password — Secure your life, forget your passwords.</title>
|
|
||||||
<meta itemprop="description" content="Master Password is an ingenious password solution that makes your passwords truly impossible to lose." />
|
|
||||||
<meta itemprop="image" content="img/about.png" />
|
|
||||||
<meta name="apple-itunes-app" content="app-id=510296984" />
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
|
|
||||||
<link rel="icon" href="img/favicon.png" type="image/x-png" />
|
|
||||||
<link rel="shortcut icon" href="img/favicon.png" type="image/x-png" />
|
|
||||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
|
||||||
<link rel="stylesheet" href="css/bootstrap-responsive.min.css">
|
|
||||||
<link rel="stylesheet" href="css/main.css?7">
|
|
||||||
|
|
||||||
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
|
|
||||||
<script src="js/vendor/prefixfree.min.js"></script>
|
|
||||||
</head>
|
|
||||||
<body itemscope itemtype="://schema.org/MobileSoftwareApplication" id="algorithm">
|
|
||||||
<!--[if lt IE 7]>
|
|
||||||
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<nav class="navbar navbar-fixed-top">
|
|
||||||
<div class="navbar-inner">
|
|
||||||
<div class="container">
|
|
||||||
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
<a class="brand" href="./">●●●|</a>
|
|
||||||
<div class="nav-collapse collapse">
|
|
||||||
<ul class="nav">
|
|
||||||
<li><a href="what.html">What is it? How do I use it?</a></li>
|
|
||||||
<li><a href="security.html">Is it safe?</a></li>
|
|
||||||
<li class="active"><a href="algorithm.html">How does it work?</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="nav pull-right">
|
|
||||||
<li><a href="irc://irc.freenode.net/#masterpassword" onclick="_gaq.push(['_trackPageview', '/outbound/irc']);">#masterpassword</a></li>
|
|
||||||
<li class="divider-vertical"></li>
|
|
||||||
<li><a href="faq.html">FAQ</a></li>
|
|
||||||
<li><a href="support.html">Support</a></li>
|
|
||||||
<li><a href="https://github.com/Lyndir/MasterPassword/" onclick="_gaq.push(['_trackPageview', '/outbound/github']);">Source</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><!--/.nav-collapse -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<header>
|
|
||||||
<img class="background" src="img/mp-process-angled.png" data-stellar-ratio="2.5" />
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
<h2>The Master Password Algorithm</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<section><div class="content">
|
|
||||||
|
|
||||||
<div class="thumb clearfix">
|
|
||||||
<p><b>Master Password is <em>an algorithm used to generate unique passwords</em></b> for websites, email accounts, or anything else <em>based only on easily reproducible input</em>.<br />
|
|
||||||
The goal is a process that avoids all the problems involved with other password solutions.</p>
|
|
||||||
<p>The Master Password algorithm is <i>open</i>: this page describes its inner workings in detail. We believe the following is an important lesson we should all learn: Regardless of how much encryption a solution claims, <a href="http://www.geekzone.co.nz/foobar/5823" onclick="_gaq.push(['_trackPageview', '/outbound/skype']);">if you don't know how it works, you <strong>cannot</strong> assume it is secure</a> (at least, not the kind of secure you care about).</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="thumb clearfix">
|
|
||||||
<img class="pull-left" src="img/thumb-process-black.png" />
|
|
||||||
<h1>How Does It Work?</h1>
|
|
||||||
<p>The user is expected to remember the following information:
|
|
||||||
<ul>
|
|
||||||
<li>Their <strong>full name</strong> (eg. <em>Robert Lee Mitchell</em>):<br />
|
|
||||||
This is a salt for the master key generation.</li>
|
|
||||||
<li>Their personal <strong>master password</strong> (eg. <em>pink fluffy door frame</em>):<br />
|
|
||||||
This is the secret for the master key generation.</li>
|
|
||||||
<li><strong>The site name</strong> (eg. <em>apple.com</em>):<br />
|
|
||||||
The user chooses a name for each site. The bare domain name is an ideal choice.</li>
|
|
||||||
<li><strong>The site's password counter</strong> (default: <em>1</em>):<br />
|
|
||||||
This is an integer that can be incremented when the user needs a new password for the site.</li>
|
|
||||||
<li><strong>The site's password type</strong> (default: <em>Long Password</em>):<br />
|
|
||||||
This type determines the format of the output password. It can be changed if the site's password policy does not accept passwords of this format.</li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
<p>In practice, the secret master password is the only extra thing users will actually need to remember. Their full name, they'll hopefully remember regardless. If the site is always named after the bare domain name, it needn't explicitly be remembered but can be found in the browser's address bar. The counter and type need only be remembered if they are changed from their default values.</p>
|
|
||||||
|
|
||||||
<hr />
|
|
||||||
|
|
||||||
<p>In short, the algorithm involves the following steps:
|
|
||||||
<ol>
|
|
||||||
<li>Calculate the <strong>master key</strong> from a user's name and master password.</li>
|
|
||||||
<li>Calculate the <strong>template seed</strong> from the site's name and counter.</li>
|
|
||||||
<li>Encode a <strong>site password</strong> using the site's type template.</li>
|
|
||||||
</ol>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>To ensure cross-platform compatibility, we define all data as byte streams using the following encodings for other types:
|
|
||||||
<ul>
|
|
||||||
<li>Strings (eg. <code>"com.lyndir"</code>) are encoded as UTF-8.</li>
|
|
||||||
<li>Numbers (eg. <code>name length</code>) are encoded as 32-bit unsigned integers in network byte order.</li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h1>The Master Key</h1>
|
|
||||||
<p>The master <code>key</code> is a 64-byte secret key generated by performing expensive key derivation using the user's master password salted by their full name. It represents the user's global secret.</p>
|
|
||||||
<p>The purpose of this process is to deter any attempts at brute-forcing a user's master password from a known site password. The key derivation is done using the <a href="https://www.tarsnap.com/scrypt.html" onclick="_gaq.push(['_trackPageview', '/outbound/tarsnap.com/scrypt.html">scrypt</a> algorithm, which guarantees that the process sufficiently time- and resource-consuming to make brute-forcing an infeasible attack.</p>
|
|
||||||
<p>The key derivation is salted by the user's full name to prevent the generation of rainbow tables on the algorithm. This salt is not secret, and the user's full name is chosen because it is an input of sufficiently high entropy while being (hopefully) impossible to forget by the user.</p>
|
|
||||||
|
|
||||||
<pre>key = scrypt( P, S, N, r, p, dkLen )
|
|
||||||
where
|
|
||||||
P = master password
|
|
||||||
S = "com.lyndir.masterpassword" . name length . name
|
|
||||||
N = 32768
|
|
||||||
r = 8
|
|
||||||
p = 2
|
|
||||||
dkLen = 64</pre>
|
|
||||||
|
|
||||||
<h1>The Template Seed</h1>
|
|
||||||
<p>With the master <code>key</code> known, we can proceed to calculate a template <code>seed</code> for the site. The template <code>seed</code> is essentially the site-specific secret in binary form.</p>
|
|
||||||
<p>To generate the template <code>seed</code>, we construct an authentication code for the site's <code>name</code> and <code>counter</code> using the user's master <code>key</code>.</p>
|
|
||||||
<p>We employ the <a href="https://tools.ietf.org/html/rfc4868" onclick="_gaq.push(['_trackPageview', '/outbound/sha-256']);">HMAC-SHA-256</a> algorithm to obtain a large enough <code>seed</code> for the encoding step that follows.</p>
|
|
||||||
|
|
||||||
<pre>seed = hmac-sha256( key, "com.lyndir.masterpassword" . site name length . site name . counter )</pre>
|
|
||||||
|
|
||||||
<h1>The Site Password</h1>
|
|
||||||
<p>The template <code>seed</code> is a site-specific secret for our user, but it's in a binary form which is not useful as a password. To convert this byte string into a password, we need to encode it as a string of characters.</p>
|
|
||||||
<p>We have two additional problems that need to be solved: The output password should be easy for a user to read from a screen and type using a keyboard or smartphone. Additionally, it should also be compatible with most site's password policies. These policies often restrict the kind of passwords users can assign to their accounts in an attempt to foil bad password habits but often have the opposite effect, especially on secure passwords. Commonly, they are a side-effect of a site's bad password handling (eg. storing clear-text passwords in a database).</p>
|
|
||||||
|
|
||||||
<p>Master Password addresses these problems by introducing password type templates. Each password type describes what an output password must look like and maps to a set of <code>templates</code>. Templates describe the resulting output password using a series of character groups mappings.</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
By default, Master Password uses the <em>Long Password</em> type for any new passwords. The user is able to choose a different password type, which is normally only done if the site's password policy is incompatible with the output password produced by this type.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
To create the output password, the bytes in the template <code>seed</code> are encoded according to the <code>template</code>. The first <code>seed</code> byte is used to determine which of the type's templates to use for encoding an output password. We take the byte value of the first <code>seed</code> byte modulo the amount of <code>templates</code> set for the chosen password type and use the result as a zero-based index in the <code>templates</code> list for the password type.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>templates = [ "CvcvCvcvnoCvcv", "CvcvnoCvcvCvcv", "CvcvCvcvCvcvno", ... ]
|
|
||||||
template = templates[ seed[0] % count( templates ) ]</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Now that we know what <code>template</code> to use for building our output password, all that's left is to iterate the <code>template</code>, and produce a character of password output for each step. When we iterate the <code>template</code> (index <code>i</code>), we look in the character group identified by the character (string <code>passChars</code>) in the <code>template</code> at index <code>i</code>.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
We use the <code>seed</code>'s byte value at index <code>i + 1</code> modulo the amount of characters in the character class to determine which character (<code>passChar</code>) in the class to use for the output password at index <code>i</code>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre>passChar = passChars[ seed[i + 1] % count( passChars ) ]
|
|
||||||
passWord[i] = passChar</pre>
|
|
||||||
|
|
||||||
<p>The result is an encoded <code>passWord</code> string that contains the password generated for the site, such as:</p>
|
|
||||||
<h2 class="text-center well well-large">CuzaSasy3*Rimo</h2>
|
|
||||||
|
|
||||||
<h1>Password Type Templates</h1>
|
|
||||||
<p>
|
|
||||||
Master Password defines the following password types and their templates:
|
|
||||||
<ul>
|
|
||||||
<li><p>
|
|
||||||
Type: <strong>Maximum Security Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>anoxxxxxxxxxxxxxxxxx</li></code>
|
|
||||||
<li><code>axxxxxxxxxxxxxxxxxno</li></code>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>Long Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>CvcvnoCvcvCvcv</li></code>
|
|
||||||
<li><code>CvcvCvcvnoCvcv</li></code>
|
|
||||||
<li><code>CvcvCvcvCvcvno</li></code>
|
|
||||||
<li><code>CvccnoCvcvCvcv</li></code>
|
|
||||||
<li><code>CvccCvcvnoCvcv</li></code>
|
|
||||||
<li><code>CvccCvcvCvcvno</li></code>
|
|
||||||
<li><code>CvcvnoCvccCvcv</li></code>
|
|
||||||
<li><code>CvcvCvccnoCvcv</li></code>
|
|
||||||
<li><code>CvcvCvccCvcvno</li></code>
|
|
||||||
<li><code>CvcvnoCvcvCvcc</li></code>
|
|
||||||
<li><code>CvcvCvcvnoCvcc</li></code>
|
|
||||||
<li><code>CvcvCvcvCvccno</li></code>
|
|
||||||
<li><code>CvccnoCvccCvcv</li></code>
|
|
||||||
<li><code>CvccCvccnoCvcv</li></code>
|
|
||||||
<li><code>CvccCvccCvcvno</li></code>
|
|
||||||
<li><code>CvcvnoCvccCvcc</li></code>
|
|
||||||
<li><code>CvcvCvccnoCvcc</li></code>
|
|
||||||
<li><code>CvcvCvccCvccno</li></code>
|
|
||||||
<li><code>CvccnoCvcvCvcc</li></code>
|
|
||||||
<li><code>CvccCvcvnoCvcc</li></code>
|
|
||||||
<li><code>CvccCvcvCvccno</li></code>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>Medium Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>CvcnoCvc</code></li>
|
|
||||||
<li><code>CvcCvcno</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>Short Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>Cvcn</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>Basic Password</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>aaanaaan</code></li>
|
|
||||||
<li><code>aannaaan</code></li>
|
|
||||||
<li><code>aaannaaa</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Type: <strong>PIN</strong>
|
|
||||||
<ul>
|
|
||||||
<li><code>nnnn</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Where each of the letters above expand any of the characters in their respective character group:
|
|
||||||
<ul>
|
|
||||||
<li><p>Template character: <code>V</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>AEIOU</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>C</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>BCDFGHJKLMNPQRSTVWXYZ</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>v</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>aeiou</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>c</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>bcdfghjklmnpqrstvwxyz</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>A</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>AEIOUBCDFGHJKLMNPQRSTVWXYZ</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>a</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>AEIOUaeiouBCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>n</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>0123456789</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>o</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>@&%?,=[]_:-+*$#!'^~;()/.</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
<li><p>Template character: <code>x</code>
|
|
||||||
<ul>
|
|
||||||
<li><code>AEIOUaeiouBCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz0123456789!@#$%^&*()</code></li>
|
|
||||||
</ul>
|
|
||||||
</p></li>
|
|
||||||
</ul>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div></section>
|
|
||||||
|
|
||||||
<footer><div class="muted content">
|
|
||||||
|
|
||||||
<p><em>Master Password is a security product and algorithm by <a href="http://www.lhunath.com" onclick="_gaq.push(['_trackPageview', '/outbound/lhunath']);">Maarten Billemont</a>, <a href="http://www.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir']);">Lyndir</a> (© 2011-2014).</em><br>Usage implies agreement with our <a href="privacy.html">privacy policy and disclaimer</a>.</p>
|
|
||||||
<p><a href="http://gorillas.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/gorillas']);">Gorillas</a> ● <a href="http://deblock.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/deblock']);">DeBlock</a> ● <a href="https://github.com/Lyndir" onclick="_gaq.push(['_trackPageview', '/outbound/github']);">GitHub</a> ● <a href="http://thanks.lhunath.com" onclick="_gaq.push(['_trackPageview', '/outbound/thanks']);">Send Thanks</a></p>
|
|
||||||
|
|
||||||
</div></footer>
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
|
|
||||||
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script>
|
|
||||||
|
|
||||||
<script src="js/vendor/bootstrap.min.js"></script>
|
|
||||||
|
|
||||||
<script src="js/plugins.js"></script>
|
|
||||||
<script src="js/main.js"></script>
|
|
||||||
|
|
||||||
<!-- Internet Defense League -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
window._idl = {};
|
|
||||||
_idl.variant = "modal";
|
|
||||||
(function() {
|
|
||||||
var idl = document.createElement('script');
|
|
||||||
idl.type = 'text/javascript';
|
|
||||||
idl.async = true;
|
|
||||||
idl.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'members.internetdefenseleague.org/include/?url=' + (_idl.url || '') + '&campaign=' + (_idl.campaign || '') + '&variant=' + (_idl.variant || 'banner');
|
|
||||||
document.getElementsByTagName('body')[0].appendChild(idl);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Google Analytics -->
|
|
||||||
<script>
|
|
||||||
var _gaq=[['_setAccount','UA-90535-15'],['_trackPageview']];
|
|
||||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
|
|
||||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
|
||||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Google +1 -->
|
|
||||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
|
||||||
|
|
||||||
<!-- Tender -->
|
|
||||||
<script src="https://masterpassword.tenderapp.com/tender_widget.js" type="text/javascript"></script>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB |
@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
|
|
||||||
<cross-domain-policy>
|
|
||||||
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
|
|
||||||
|
|
||||||
<!-- Most restrictive policy: -->
|
|
||||||
<site-control permitted-cross-domain-policies="none"/>
|
|
||||||
|
|
||||||
<!-- Least restrictive policy: -->
|
|
||||||
<!--
|
|
||||||
<site-control permitted-cross-domain-policies="all"/>
|
|
||||||
<allow-access-from domain="*" to-ports="*" secure="false"/>
|
|
||||||
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
|
|
||||||
-->
|
|
||||||
</cross-domain-policy>
|
|
1109
public/site/2013-05/css/bootstrap-responsive.css
vendored
6158
public/site/2013-05/css/bootstrap.css
vendored
9
public/site/2013-05/css/bootstrap.min.css
vendored
@ -1,114 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<link rel="stylesheet" href="buttons.css" type="text/css" charset="utf-8" />
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
body{
|
|
||||||
background: #fff;
|
|
||||||
font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
margin: 30px 10px;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
.clear {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul li {
|
|
||||||
float: left;
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0 20px 0 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<title>CSS Button Kit</title>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h1>Small Buttons</h1>
|
|
||||||
|
|
||||||
<ul class="smallbuttons">
|
|
||||||
<li><a href="#" class="btn_smallwhite">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallblack">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallblue">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallgreen">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallred">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallorange">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_smallpurple">Button</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
<ul class="smallbuttons">
|
|
||||||
<li><a href="#" class="btn_smallwhite ico_action"> Action</a></li>
|
|
||||||
<li><a href="#" class="btn_smallblack ico_box"> Download</a></li>
|
|
||||||
<li><a href="#" class="btn_smallblue ico_email"> Email</a></li>
|
|
||||||
<li><a href="#" class="btn_smallgreen ico_folder"> Folder</a></li>
|
|
||||||
<li><a href="#" class="btn_smallred ico_heart"> Like</a></li>
|
|
||||||
<li><a href="#" class="btn_smallorange ico_collection"> Collections</a></li>
|
|
||||||
<li><a href="#" class="btn_smallpurple ico_eye"> View</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
<h1>Medium Buttons</h1>
|
|
||||||
|
|
||||||
<ul class="mediumbuttons">
|
|
||||||
<li><a href="#" class="btn_mediumwhite"> Button</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumblack">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray1">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray2">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray3">Button</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
<ul class="mediumbuttons">
|
|
||||||
<li><a href="#" class="btn_mediumwhite ico_file"> Document</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumblack ico_chart"> Stats</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray1 ico_locked"> Lock</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray2 ico_music"> Music</a></li>
|
|
||||||
<li><a href="#" class="btn_mediumgray3 ico_print"> Print</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
<h1>Large Buttons</h1>
|
|
||||||
|
|
||||||
<ul class="largebuttons">
|
|
||||||
<li><a href="#" class="btn_largewhite">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largeblack">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largegray">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largeblue">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largered">Button</a></li>
|
|
||||||
<li><a href="#" class="btn_largegreen">Button</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" /><br/>
|
|
||||||
|
|
||||||
<ul class="largebuttons">
|
|
||||||
<li><a href="#" class="btn_largewhite ico_playvideo"> Watch</a></li>
|
|
||||||
<li><a href="#" class="btn_largeblack ico_search"> Search</a></li>
|
|
||||||
<li><a href="#" class="btn_largegray ico_tel"> Call</a></li>
|
|
||||||
<li><a href="#" class="btn_largeblue ico_user"> Login</a></li>
|
|
||||||
<li><a href="#" class="btn_largered ico_settings1"> Settings</a></li>
|
|
||||||
<li><a href="#" class="btn_largegreen ico_link"> Link</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<br class="clear" />
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,141 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<metadata>
|
|
||||||
This is a custom SVG webfont generated by Font Squirrel.
|
|
||||||
Copyright : Copyright MediaLoot 2011
|
|
||||||
Designer : Tony Thomas
|
|
||||||
Foundry : MediaLoot
|
|
||||||
Foundry URL : httpwwwmedialootcom
|
|
||||||
</metadata>
|
|
||||||
<defs>
|
|
||||||
<font id="SignifyLiteRegular" horiz-adv-x="2048" >
|
|
||||||
<font-face units-per-em="2048" ascent="1638" descent="-410" />
|
|
||||||
<missing-glyph horiz-adv-x="512" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="512" />
|
|
||||||
<glyph unicode="	" horiz-adv-x="512" />
|
|
||||||
<glyph unicode=" " horiz-adv-x="512" />
|
|
||||||
<glyph unicode="!" />
|
|
||||||
<glyph unicode=""" />
|
|
||||||
<glyph unicode="#" />
|
|
||||||
<glyph unicode="$" />
|
|
||||||
<glyph unicode="%" />
|
|
||||||
<glyph unicode="&" />
|
|
||||||
<glyph unicode="'" />
|
|
||||||
<glyph unicode="(" />
|
|
||||||
<glyph unicode=")" />
|
|
||||||
<glyph unicode="*" />
|
|
||||||
<glyph unicode="+" />
|
|
||||||
<glyph unicode="," />
|
|
||||||
<glyph unicode="-" />
|
|
||||||
<glyph unicode="." />
|
|
||||||
<glyph unicode="/" />
|
|
||||||
<glyph unicode="0" />
|
|
||||||
<glyph unicode="1" horiz-adv-x="1816" d="M121 786l788 787l787 -787h-492v-786h-590v786h-493z" />
|
|
||||||
<glyph unicode="2" horiz-adv-x="1734" d="M80 494v589h788v492l787 -787l-787 -786v492h-788z" />
|
|
||||||
<glyph unicode="3" horiz-adv-x="1742" d="M84 782h491v787h590v-787h494l-787 -786z" />
|
|
||||||
<glyph unicode="4" horiz-adv-x="1794" d="M111 793l786 786v-492h786v-589h-786v-492z" />
|
|
||||||
<glyph unicode="5" horiz-adv-x="1429" d="M113 8v1204l1204 -604z" />
|
|
||||||
<glyph unicode="6" horiz-adv-x="1574" d="M147 4v1278h482v-1278h-482zM946 4v1278h481v-1278h-481z" />
|
|
||||||
<glyph unicode="7" horiz-adv-x="1591" d="M115 -8v1360h1362v-1360h-1362z" />
|
|
||||||
<glyph unicode="8" d="M184 16v240v360h240v-360h960v295l388 -387l-388 -387v239h-960h-240zM276 1067l388 389v-242h960h240v-239v-359h-240v359h-960v-295z" />
|
|
||||||
<glyph unicode="9" horiz-adv-x="1677" d="M162 481v1035h1034l-311 -312q14 -6 40.5 -19.5t99.5 -65.5t138.5 -117.5t141 -178t125 -243.5t73 -319.5t2.5 -399.5q-25 47 -69.5 121.5t-173.5 260t-250 315.5t-272.5 210t-268.5 23z" />
|
|
||||||
<glyph unicode=":" />
|
|
||||||
<glyph unicode=";" />
|
|
||||||
<glyph unicode="<" horiz-adv-x="1931" d="M160 707l919 708v-534l693 534v-1417l-693 534v-534z" />
|
|
||||||
<glyph unicode="=" />
|
|
||||||
<glyph unicode=">" horiz-adv-x="1976" d="M182 -6v1417l692 -534v534l920 -709l-920 -708v534z" />
|
|
||||||
<glyph unicode="?" />
|
|
||||||
<glyph unicode="@" />
|
|
||||||
<glyph unicode="A" horiz-adv-x="2029" d="M111 -2v227v905v113v113h790v-226h-565v-905h1358v226h225v-226v-227h-225h-1583zM1024 315q-6 68 -6 133q0 415 262 672q98 96 188 135l-208 215h659v-718l-184 219q-35 17 -74 17q-26 0 -52 -8q-67 -19 -135.5 -75.5t-134 -130.5t-123 -154.5t-100.5 -148.5t-67 -111z " />
|
|
||||||
<glyph unicode="B" horiz-adv-x="1792" d="M154 6v1010h1484v-1010h-1484zM154 1130l227 343h438v-343h-665zM973 1130v343h438l227 -343h-665z" />
|
|
||||||
<glyph unicode="C" horiz-adv-x="1863" d="M129 811q0 334 235.5 568.5t567.5 234.5t567.5 -234.5t235.5 -568.5q0 -332 -235.5 -567.5t-567.5 -235.5t-567.5 235.5t-235.5 567.5zM330 811q0 -250 177 -426t425 -176t425 176t177 426t-177 426t-425 176t-425 -176t-177 -426zM590 819q0 190 100 291 q100 102 285 102q150 0 227 -57q82 -57 123 -180l-207 -47q-12 35 -24 51q-18 27 -47 43q-29 14 -66 14q-80 0 -123 -65q-33 -49 -33 -150q0 -125 39 -174q39 -47 109 -47q68 0 102 37q35 39 51 111l207 -62q-20 -84 -65 -145q-49 -61 -113 -88q-66 -31 -168 -31 q-125 0 -205 37q-80 35 -135 127q-57 90 -57 233z" />
|
|
||||||
<glyph unicode="D" horiz-adv-x="1900" d="M152 793q0 330 234.5 564t563.5 234q190 0 348 -77.5t253.5 -198.5t146.5 -257t51 -265q0 -332 -234.5 -565.5t-564.5 -233.5q-332 0 -565 236.5t-233 562.5zM352 793q0 -193 111 -349l833 836q-156 111 -346 111q-248 0 -423 -175t-175 -423zM604 303q156 -111 346 -110 q248 0 423 176t175 424q0 190 -110 346z" />
|
|
||||||
<glyph unicode="E" horiz-adv-x="2426" d="M106 14v1420v104h2214v-1524h-2214zM244 256l618 573l-618 465v-1038zM309 1399l924 -676l924 676h-1848zM324 154h1736l-563 618l-268 -199l-266 189zM1587 834l596 -641v1101z" />
|
|
||||||
<glyph unicode="F" horiz-adv-x="2351" d="M170 10v1094h2011v-1094h-2011zM170 1233v88l88 262h786l89 -262h1048v-88h-2011z" />
|
|
||||||
<glyph unicode="G" horiz-adv-x="2177" d="M166 -6l2 971l342 872h1149l350 -872l2 -971h-1845zM342 1010h1495l-252 710h-999zM467 1128v80h1227v-80h-1227zM569 1331v80h1039v-80h-1039zM643 1526v80h889v-80h-889zM756 381h665v237h-665v-237z" />
|
|
||||||
<glyph unicode="H" horiz-adv-x="1933" d="M133 1102q0 178 137.5 303t331.5 125q223 0 365 -162q141 162 364 162q195 0 332 -125t137 -303q0 -10 -2 -30.5t-18.5 -86t-45 -134.5t-91 -172.5t-146.5 -203.5t-222 -224t-308 -241q-233 160 -405.5 331t-250.5 301t-123 237.5t-49 164.5z" />
|
|
||||||
<glyph unicode="I" horiz-adv-x="2330" d="M121 758q348 365 842 465q123 25 202 24q23 0 65 -3t167 -29.5t244.5 -72.5t278.5 -146.5t290 -237.5q-131 -137 -287 -238.5t-285 -147.5t-238.5 -73t-170.5 -29l-64 -4q-23 0 -64.5 3t-166.5 30t-245 73t-278.5 147.5t-289.5 238.5zM774 758q0 -154 113.5 -261.5 t277.5 -107.5t277.5 107.5t113.5 261.5q0 152 -114.5 260t-276 108t-276.5 -108t-115 -260zM1034 758q0 51 39 87t92.5 36t92 -36t38.5 -87t-38.5 -87t-92 -36t-92.5 36t-39 87z" />
|
|
||||||
<glyph unicode="J" horiz-adv-x="1712" d="M154 4v1182l577 629h828v-1811h-1405zM307 154h1118v1525h-610v-589h-508v-936z" />
|
|
||||||
<glyph unicode="K" horiz-adv-x="2177" d="M168 119v526q0 55 38 94t93 39h262q55 0 94 -39t39 -94v-526q0 -53 -39 -92t-94 -39h-262q-55 0 -93 39t-38 92zM825 119v1581q0 53 39 92t92 39h265q53 0 92 -39t39 -92v-1581q0 -53 -39 -92t-92 -39h-265q-53 0 -92 39t-39 92zM1483 119v921q0 55 39 94.5t94 39.5h262 q55 0 93 -39t38 -95v-921q0 -53 -38 -92t-93 -39h-262q-55 0 -94 39t-39 92z" />
|
|
||||||
<glyph unicode="L" horiz-adv-x="1728" d="M188 104v1012q0 47 34 81t79 34h21q16 209 170.5 353.5t365.5 144.5t364.5 -144.5t170.5 -353.5h32q45 0 80 -34t35 -81v-1012q0 -47 -33.5 -81.5t-81.5 -34.5h-1124q-45 0 -79 34.5t-34 81.5zM469 1231h776q-16 147 -126.5 248.5t-260.5 101.5q-152 0 -262.5 -101.5 t-126.5 -248.5zM680 670q0 -106 100 -168v-226h197v226q96 59 96 168q0 82 -58.5 139t-140.5 57q-80 0 -137 -57t-57 -139z" />
|
|
||||||
<glyph unicode="M" horiz-adv-x="1972" d="M147 293q0 123 110 209t267 86q160 0 160 -27v778v269q0 23 16.5 38t38.5 15h1030q23 0 39.5 -15.5t16.5 -37.5v-269v-1073h-2q-16 -94 -107.5 -181t-226.5 -87q-156 0 -265.5 87t-109.5 208q0 123 109.5 209t265.5 86q162 0 162 -27v692h-793v-960v-27h-2 q-14 -94 -106.5 -181t-225.5 -87q-156 0 -266.5 87t-110.5 208z" />
|
|
||||||
<glyph unicode="N" horiz-adv-x="2121" d="M166 309v383v193v-127v127h256v770h127h1282h127v-129v-1409v-129h-127h-1409v8q-111 23 -183.5 109.5t-72.5 203.5zM293 309q0 -61 36 -110t93 -70v-12h1409v1409h-1282v-1280h-127v512h-129v-66v-190v-193zM678 246v127h897v-127h-897zM678 502v127h768v-127h-768z M678 758v127h1024v-127h-1024zM678 1014v383h512v-383h-512zM1319 1014v127h256v-127h-256zM1319 1270v127h383v-127h-383z" />
|
|
||||||
<glyph unicode="O" horiz-adv-x="1900" d="M119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63q14 -18 45 -48.5 t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22t-10 17.5 t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46q-8 -3 -15 -3 q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2q-2 2 -7 2t-7 2 h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4t13 25.5t-28 32.5 q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69q10 43 33 16q20 -29 6 -59 q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1q57 0 71 -59q5 -19 5 -35 q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12q-66 -11 -119 -27zM752 1201 q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1q-21 -4 -21 -21q0 -33 33 -12 zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z " />
|
|
||||||
<glyph unicode="P" horiz-adv-x="2043" d="M160 322v968h432v215v109h106h754v-109v-215h432v-968h-432v-109h-106v-109v-106h-648h-106v106v218h-432zM483 537h109v215h106v-215v-215v-218h432v218h107h109v215v215h106v-215h217v323h-1186v-323zM698 1290h648v215h-648v-215zM1452 1075h217v109h-217v-109z" />
|
|
||||||
<glyph unicode="Q" horiz-adv-x="2095" d="M152 334v1122q0 47 32.5 79t77.5 32h1571q47 0 79 -32t32 -79v-1122q0 -47 -32 -79t-79 -32h-1571q-45 0 -77.5 32t-32.5 79zM375 446h1345v897h-1345v-897zM487 55.5q0 22.5 16.5 39t39.5 16.5h1009q23 0 39.5 -16.5t16.5 -39t-16.5 -40t-39.5 -17.5h-1009 q-23 0 -39.5 17.5t-16.5 40zM823 559v672l449 -336z" />
|
|
||||||
<glyph unicode="R" horiz-adv-x="1847" d="M125 811q0 330 234.5 564.5t564 234.5t564 -234.5t234.5 -564.5q0 -332 -234.5 -565.5t-564 -233.5t-564 233.5t-234.5 565.5zM326 811q0 -248 175 -424t422.5 -176t423 176t175.5 424t-175.5 423t-423 175t-422.5 -175t-175 -423zM625 512v598h336q90 0 143 -16 q51 -14 80 -60q31 -43 30 -106q0 -53 -22 -94q-27 -41 -64 -64q-29 -16 -71 -25q33 -10 53 -24q23 -23 31 -35q25 -33 28 -41l54 -133h-199l-92 143q-31 47 -37 52q-20 14 -49 14h-19l-4 -209h-198zM823 811h86q18 0 54 8q20 6 32 21q12 18 13 104q0 35 -21 49 q-16 16 -74 17h-90v-199z" />
|
|
||||||
<glyph unicode="S" horiz-adv-x="1953" d="M137 993.5q0 270.5 190.5 461t460.5 190.5q268 0 460 -190.5t192 -461.5q0 -188 -101 -344q20 -10 39 -26l406 -406q33 -33 33 -80t-33 -82q-33 -33 -82 -32.5t-82 32.5l-406 406q-10 12 -16 26q-182 -145 -410 -145q-270 0 -460.5 190.5t-190.5 461zM338 993.5 q0 -186.5 132 -318.5t318 -132q160 0 283 100l57 47l41 66q70 111 70 237q0 186 -132 318.5t-318.5 132.5t-318.5 -132t-132 -318.5z" />
|
|
||||||
<glyph unicode="T" horiz-adv-x="2066" d="M164 1642l196 197l494 -491l-197 -197l-82 82q2 -74 75 -204t210 -267q215 -215 461 -293l25 -8l-99 98l199 197l491 -492l-196 -198q-72 -72 -187 -73q-113 0 -267 70q-310 141 -646 480q-303 303 -436 620q-77 184 -77 315q0 94 40 160z" />
|
|
||||||
<glyph unicode="U" horiz-adv-x="2420" d="M160 -41v356h2q0 2 -2 7v4q0 37 20 73q6 10 65.5 42t126.5 63l126 57q59 27 61 29q57 27 151.5 59.5t155 61t92.5 67.5q-8 76 -84.5 256t-82.5 291l-2 42q0 177 79 312q88 152 258 213h84h84q170 -61 258 -213q79 -136 79 -312q0 -21 -1 -42q-6 -111 -83 -291t-85 -256 q33 -39 93.5 -67.5t154.5 -61.5t152 -59q2 -2 61 -29l126 -57q67 -31 126 -62.5t66 -42.5q20 -37 20 -73v-4q-2 -4 -2 -7h2v-356h-20h-1031h-1030h-20z" />
|
|
||||||
<glyph unicode="V" horiz-adv-x="1996" d="M139 6v1837h1719v-1837h-1719zM225 80h172v145h-172v-145zM225 299h172v147h-172v-147zM225 520h172v148h-172v-148zM225 741h172v146h-172v-146zM225 961h172v147h-172v-147zM225 1182h172v147h-172v-147zM225 1401h172v147h-172v-147zM225 1622h172v147h-172v-147z M483 80h1030v807h-1030v-807zM483 961h1030v808h-1030v-808zM1599 80h173v145h-173v-145zM1599 299h173v147h-173v-147zM1599 520h173v148h-173v-148zM1599 741h173v146h-173v-146zM1599 961h173v147h-173v-147zM1599 1182h173v147h-173v-147zM1599 1401h173v147h-173v-147z M1599 1622h173v147h-173v-147z" />
|
|
||||||
<glyph unicode="W" horiz-adv-x="2418" d="M82 1130q229 252 529 383.5t630 131.5q315 0 595 -136.5t501 -378.5l-213 -233q-383 449 -889 449q-264 0 -505 -117t-435 -332zM434 743q152 166 354.5 253t422 87t421 -87t353.5 -253l-213 -233q-270 299 -562 299q-295 0 -565 -299zM961 278.5q0 112.5 73 194.5 q72 80 175.5 80t174.5 -80q74 -82 74 -194.5t-74 -192.5q-72 -82 -175 -82t-175 82q-73 80 -73 192.5z" />
|
|
||||||
<glyph unicode="X" horiz-adv-x="1931" d="M152 229l585 584l-585 586l229 227l586 -584l583 584l230 -227l-586 -586l586 -584l-230 -229l-583 584l-586 -584z" />
|
|
||||||
<glyph unicode="Y" horiz-adv-x="2101" d="M150 1364l288 -287l342 90l92 344l-286 287q36 5 71 5q80 0 158 -25q113 -37 199 -123q141 -141 147 -340l-176 -178q-53 -53 -53 -127q0 -41 16 -80l-131 -131l-10 10q-73 -24 -150 -24q-59 0 -119 14q-140 33 -243 135q-86 86 -124 200q-26 79 -26 160q0 35 5 70z M268 -6l121 362l174 19l549 549l-43 43q-16 16 -16 43q0 25 16 41l80 79l516 519q18 16 44 16t42 -16l170 -172q18 -16 18 -42t-18 -42l-596 -598q-16 -16 -42 -16.5t-44 16.5l-41 43l-211 -209l-338 -340l-20 -174zM1073 543l131 133q37 -18 78 -18q15 0 31 2q57 9 98 51 l80 80l369 -369q10 -8 26 -25q70 -70 70 -168t-69.5 -167.5t-168 -69.5t-168.5 69q-10 10 -22 27zM1587 260q0 -43 29 -72q31 -31 73 -30.5t70 30.5q31 29 31 72t-31 72q-29 29 -70.5 28.5t-72.5 -28.5q-29 -29 -29 -72z" />
|
|
||||||
<glyph unicode="Z" horiz-adv-x="1525" d="M182 -23l582 928h-465l1044 928l-464 -696h464z" />
|
|
||||||
<glyph unicode="[" />
|
|
||||||
<glyph unicode="\" />
|
|
||||||
<glyph unicode="]" />
|
|
||||||
<glyph unicode="^" />
|
|
||||||
<glyph unicode="_" />
|
|
||||||
<glyph unicode="`" />
|
|
||||||
<glyph unicode="a" />
|
|
||||||
<glyph unicode="b" />
|
|
||||||
<glyph unicode="c" />
|
|
||||||
<glyph unicode="d" />
|
|
||||||
<glyph unicode="e" />
|
|
||||||
<glyph unicode="f" />
|
|
||||||
<glyph unicode="g" />
|
|
||||||
<glyph unicode="h" />
|
|
||||||
<glyph unicode="i" />
|
|
||||||
<glyph unicode="j" />
|
|
||||||
<glyph unicode="k" />
|
|
||||||
<glyph unicode="l" />
|
|
||||||
<glyph unicode="m" />
|
|
||||||
<glyph unicode="n" />
|
|
||||||
<glyph unicode="o" />
|
|
||||||
<glyph unicode="p" />
|
|
||||||
<glyph unicode="q" />
|
|
||||||
<glyph unicode="r" />
|
|
||||||
<glyph unicode="s" />
|
|
||||||
<glyph unicode="t" />
|
|
||||||
<glyph unicode="u" />
|
|
||||||
<glyph unicode="v" />
|
|
||||||
<glyph unicode="w" />
|
|
||||||
<glyph unicode="x" />
|
|
||||||
<glyph unicode="y" />
|
|
||||||
<glyph unicode="z" />
|
|
||||||
<glyph unicode="{" />
|
|
||||||
<glyph unicode="|" />
|
|
||||||
<glyph unicode="}" />
|
|
||||||
<glyph unicode="~" horiz-adv-x="1720" d="M204 393.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM400 411.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM735 1117.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="­" />
|
|
||||||
<glyph unicode="²" horiz-adv-x="1734" d="M80 494v589h788v492l787 -787l-787 -786v492h-788z" />
|
|
||||||
<glyph unicode="³" horiz-adv-x="1742" d="M84 782h491v787h590v-787h494l-787 -786z" />
|
|
||||||
<glyph unicode="¹" horiz-adv-x="1816" d="M121 786l788 787l787 -787h-492v-786h-590v786h-493z" />
|
|
||||||
<glyph unicode="À" horiz-adv-x="2029" d="M111 -2v227v905v113v113h790v-226h-565v-905h1358v226h225v-226v-227h-225h-1583zM1024 315q-6 68 -6 133q0 415 262 672q98 96 188 135l-208 215h659v-718l-184 219q-35 17 -74 17q-26 0 -52 -8q-67 -19 -135.5 -75.5t-134 -130.5t-123 -154.5t-100.5 -148.5t-67 -111z " />
|
|
||||||
<glyph unicode="Â" horiz-adv-x="2029" d="M111 -2v227v905v113v113h790v-226h-565v-905h1358v226h225v-226v-227h-225h-1583zM1024 315q-6 68 -6 133q0 415 262 672q98 96 188 135l-208 215h659v-718l-184 219q-35 17 -74 17q-26 0 -52 -8q-67 -19 -135.5 -75.5t-134 -130.5t-123 -154.5t-100.5 -148.5t-67 -111z " />
|
|
||||||
<glyph unicode="Ã" horiz-adv-x="2029" d="M933 2175.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM1129 2193.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM1464 2899.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5zM111 -2v227v905v113v113h790v-226h-565v-905h1358v226h225v-226v-227h-225h-1583zM1024 315q-6 68 -6 133q0 415 262 672q98 96 188 135l-208 215h659v-718l-184 219q-35 17 -74 17q-26 0 -52 -8q-67 -19 -135.5 -75.5t-134 -130.5t-123 -154.5 t-100.5 -148.5t-67 -111z" />
|
|
||||||
<glyph unicode="È" horiz-adv-x="2426" d="M106 14v1420v104h2214v-1524h-2214zM244 256l618 573l-618 465v-1038zM309 1399l924 -676l924 676h-1848zM324 154h1736l-563 618l-268 -199l-266 189zM1587 834l596 -641v1101z" />
|
|
||||||
<glyph unicode="Ê" horiz-adv-x="2426" d="M106 14v1420v104h2214v-1524h-2214zM244 256l618 573l-618 465v-1038zM309 1399l924 -676l924 676h-1848zM324 154h1736l-563 618l-268 -199l-266 189zM1587 834l596 -641v1101z" />
|
|
||||||
<glyph unicode="Ì" horiz-adv-x="2330" d="M121 758q348 365 842 465q123 25 202 24q23 0 65 -3t167 -29.5t244.5 -72.5t278.5 -146.5t290 -237.5q-131 -137 -287 -238.5t-285 -147.5t-238.5 -73t-170.5 -29l-64 -4q-23 0 -64.5 3t-166.5 30t-245 73t-278.5 147.5t-289.5 238.5zM774 758q0 -154 113.5 -261.5 t277.5 -107.5t277.5 107.5t113.5 261.5q0 152 -114.5 260t-276 108t-276.5 -108t-115 -260zM1034 758q0 51 39 87t92.5 36t92 -36t38.5 -87t-38.5 -87t-92 -36t-92.5 36t-39 87z" />
|
|
||||||
<glyph unicode="Î" horiz-adv-x="2330" d="M121 758q348 365 842 465q123 25 202 24q23 0 65 -3t167 -29.5t244.5 -72.5t278.5 -146.5t290 -237.5q-131 -137 -287 -238.5t-285 -147.5t-238.5 -73t-170.5 -29l-64 -4q-23 0 -64.5 3t-166.5 30t-245 73t-278.5 147.5t-289.5 238.5zM774 758q0 -154 113.5 -261.5 t277.5 -107.5t277.5 107.5t113.5 261.5q0 152 -114.5 260t-276 108t-276.5 -108t-115 -260zM1034 758q0 51 39 87t92.5 36t92 -36t38.5 -87t-38.5 -87t-92 -36t-92.5 36t-39 87z" />
|
|
||||||
<glyph unicode="Ñ" horiz-adv-x="2121" d="M534 2175.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM730 2193.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM1065 2899.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5zM166 309v383v193v-127v127h256v770h127h1282h127v-129v-1409v-129h-127h-1409v8q-111 23 -183.5 109.5t-72.5 203.5zM293 309q0 -61 36 -110t93 -70v-12h1409v1409h-1282v-1280h-127v512h-129v-66v-190v-193zM678 246v127h897v-127h-897zM678 502v127 h768v-127h-768zM678 758v127h1024v-127h-1024zM678 1014v383h512v-383h-512zM1319 1014v127h256v-127h-256zM1319 1270v127h383v-127h-383z" />
|
|
||||||
<glyph unicode="Ò" horiz-adv-x="1900" d="M119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63q14 -18 45 -48.5 t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22t-10 17.5 t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46q-8 -3 -15 -3 q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2q-2 2 -7 2t-7 2 h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4t13 25.5t-28 32.5 q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69q10 43 33 16q20 -29 6 -59 q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1q57 0 71 -59q5 -19 5 -35 q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12q-66 -11 -119 -27zM752 1201 q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1q-21 -4 -21 -21q0 -33 33 -12 zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z " />
|
|
||||||
<glyph unicode="Ô" horiz-adv-x="1900" d="M119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63q14 -18 45 -48.5 t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22t-10 17.5 t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46q-8 -3 -15 -3 q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2q-2 2 -7 2t-7 2 h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4t13 25.5t-28 32.5 q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69q10 43 33 16q20 -29 6 -59 q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1q57 0 71 -59q5 -19 5 -35 q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12q-66 -11 -119 -27zM752 1201 q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1q-21 -4 -21 -21q0 -33 33 -12 zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z " />
|
|
||||||
<glyph unicode="Õ" horiz-adv-x="1900" d="M294 2175.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM490 2193.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM825 2899.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5zM119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63 q14 -18 45 -48.5t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22 t-10 17.5t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46 q-8 -3 -15 -3q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2 q-2 2 -7 2t-7 2h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4 t13 25.5t-28 32.5q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69 q10 43 33 16q20 -29 6 -59q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1 q57 0 71 -59q5 -19 5 -35q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12 q-66 -11 -119 -27zM752 1201q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1 q-21 -4 -21 -21q0 -33 33 -12zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19 q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z" />
|
|
||||||
<glyph unicode="Ù" horiz-adv-x="2420" d="M160 -41v356h2q0 2 -2 7v4q0 37 20 73q6 10 65.5 42t126.5 63l126 57q59 27 61 29q57 27 151.5 59.5t155 61t92.5 67.5q-8 76 -84.5 256t-82.5 291l-2 42q0 177 79 312q88 152 258 213h84h84q170 -61 258 -213q79 -136 79 -312q0 -21 -1 -42q-6 -111 -83 -291t-85 -256 q33 -39 93.5 -67.5t154.5 -61.5t152 -59q2 -2 61 -29l126 -57q67 -31 126 -62.5t66 -42.5q20 -37 20 -73v-4q-2 -4 -2 -7h2v-356h-20h-1031h-1030h-20z" />
|
|
||||||
<glyph unicode="Û" horiz-adv-x="2420" d="M160 -41v356h2q0 2 -2 7v4q0 37 20 73q6 10 65.5 42t126.5 63l126 57q59 27 61 29q57 27 151.5 59.5t155 61t92.5 67.5q-8 76 -84.5 256t-82.5 291l-2 42q0 177 79 312q88 152 258 213h84h84q170 -61 258 -213q79 -136 79 -312q0 -21 -1 -42q-6 -111 -83 -291t-85 -256 q33 -39 93.5 -67.5t154.5 -61.5t152 -59q2 -2 61 -29l126 -57q67 -31 126 -62.5t66 -42.5q20 -37 20 -73v-4q-2 -4 -2 -7h2v-356h-20h-1031h-1030h-20z" />
|
|
||||||
<glyph unicode="ã" d="M-656 510.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM-460 528.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM-125 1234.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="ñ" d="M-656 510.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM-460 528.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM-125 1234.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="õ" d="M-656 510.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM-460 528.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM-125 1234.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="Œ" horiz-adv-x="4327" d="M2007 14v1420v104h2214v-1524h-2214zM2145 256l618 573l-618 465v-1038zM2210 1399l924 -676l924 676h-1848zM2225 154h1736l-563 618l-268 -199l-266 189zM3488 834l596 -641v1101zM119 834q0 346 243.5 588.5t587.5 242.5t588 -242.5t244 -588.5q0 -344 -244 -588 t-588 -244t-587.5 244t-243.5 588zM258 813q14 -41 37.5 -81t57.5 -91t48 -76q10 -14 15.5 -32.5t4.5 -29.5l-3 -35q-2 -24 -2 -32v-2q-1 -6 -1 -11q0 -38 25 -63q14 -18 45 -48.5t52.5 -57.5t31.5 -57l4 -2q68 -41 170 -74q6 0 24.5 7t78.5 11v2q0 8 20.5 19.5t52 27 t46.5 25.5q19 22 18 43q0 28 -36 52q-43 29 -83 29q-18 0 -35 -5q-25 16 -96 80.5t-121 85.5q-23 20 -64.5 33.5t-75.5 20.5t-59.5 31.5t-25.5 67.5q-4 16 0 24.5t-5 22t-10 17.5t-13.5 15t-15.5 14.5t-17.5 13.5t-16.5 12q-4 12 -3 23q0 38 44 59q22 10 41 10q28 0 47 -22 q16 -16 17 -43q29 2 69.5 56t73.5 60q12 10 44 13.5t47.5 10.5t0.5 34q8 8 32 18l38 17q14 6 22.5 24.5t-12.5 42.5q-12 55 -60 69q-9 3 -18 2q-35 0 -53 -46q-8 -3 -15 -3q-26 0 -30 38v10q0 48 35 74q18 14 43 8q27 -2 38 10t4 27.5t-26 23.5q0 6 -4 2q-16 6 -20 4 q-25 16 -22 44t18.5 54.5t14.5 53t-36 39.5q-285 -244 -358 -396q-24 -71 -25 -201q0 -34 2 -73zM449 702q-7 -3 -8 -7q0 -9 24 -23q16 -20 35 -15q8 31 -25 39v2q-2 2 -7 2t-7 2h-12zM590 909l2 -4h2q6 2 10 6q-8 0 -14 -2zM725 1546q38 3 74 3q136 0 223 -44 q8 -27 36.5 -35t57.5 -5t50.5 -8t19.5 -40l4 -4l2 -10q2 -2 2 4q50 -50 50 -69q0 -11 -18 -11h-5h-4q-35 4 -46 -30q-4 -14 -4 -29q0 -22 9 -46q14 -42 41 -55q25 -10 41 -4t13 25.5t-28 32.5q-2 23 12 22q27 -2 52 -43q10 -18 10 -31q0 -16 -14 -26q-4 -4 -7 -4l-2 -2 q-37 -27 -40 -114t-9 -103q-9 -19 -9 -32q0 -20 26 -22h4q36 0 57 35q10 18 4 41q-8 23 6.5 35t36 15t35.5 10.5t4 23.5q21 -11 35 -11q27 0 31 40q1 9 1 17q0 42 -26 69q10 43 33 16q20 -29 6 -59q2 -10 5 -16.5t10 -12.5t11.5 -8t15.5 -6t13 -6q2 0 4 -2q20 -8 21 -27 q0 -13 -10 -31q-24 -81 -116 -81q-27 0 -61 7q-31 -12 -51 -40.5t-38.5 -68.5t-30.5 -58q-44 -80 -44 -140q0 -58 42 -98q25 -23 51 -28t54 6.5t47.5 23.5t45.5 33q10 1 19 1q57 0 71 -59q5 -19 5 -35q0 -45 -31 -81q-4 -16 -4 -19q180 211 180 482l-6 86q-7 -4 -15 -5 q-23 0 -49 37q-20 29 -6 27q8 0 29 -16q20 4 30 12q-12 70 -36 135l-11.5 12t-9.5 11q0 4 -1 12t-1 14v2q-92 188 -273.5 304t-398.5 116q-41 0 -61 -2q-20 -4 -33 -6h-12q-66 -11 -119 -27zM752 1201q-3 -15 -4 -27q0 -24 14 -33q20 8 29.5 39.5t2 59.5t-29.5 26 q-2 0 -6 -1t-6 -1q10 -17 0 -63zM762 973q-10 -2 -10 -7q0 -7 20 -20h16q2 -2 -4 -8q25 18 11.5 28.5t-33.5 6.5zM862 1331l6 6q18 8 11 23q-2 4 -11 4q-2 2 -8 2q-2 0 -5 -1t-5 -1q-21 -4 -21 -21q0 -33 33 -12zM853 1315q-9 -13 -9 -27q0 -20 18 -41q18 -25 6 -53.5 t-11 -59t36 -40.5q10 25 42 64.5t48 74.5q10 21 10 44q0 14 -4 30q-11 46 -55 46q-7 0 -14 -1q-45 -6 -67 -37zM1196 1087q-8 0 -8 -4q0 -6 14 -20q-12 -31 15 -33q18 0 30 19q2 16 -17 28q-17 11 -30 11q-2 -1 -4 -1z" />
|
|
||||||
<glyph unicode="˜" horiz-adv-x="512" d="M-656 510.5q-7 145.5 89 259.5l188 228q37 41 88 80q-45 88 -28.5 195.5t88.5 193.5l186 227q61 74 147.5 110.5t174.5 28.5q94 -8 170 -69l96 -82q109 -86 115 -240q4 -137 -91 -254l-188 -227q-39 -45 -88 -78q31 -68 31 -137q6 -139 -90 -254l-189 -228 q-59 -74 -144 -110.5t-175 -28.5q-98 10 -170 72l-97 80q-106 88 -113 233.5zM-460 528.5q-1 -63.5 42 -100.5l99 -80q25 -20 61 -24q86 -10 150 67l188 228q45 51 45 123q-4 49 -31 80h-10q-16 -33 -48 -48.5t-67 -7.5q-39 10 -60 45t-11 74l-4 2l-6 6l-41 33 q-37 -14 -72 -55l-189 -226q-45 -53 -46 -116.5zM-125 1234.5q-4 -58.5 31 -97.5h37q4 0 10 -2t8 -2l21 74q10 41 46 60t75 9q39 -8 59 -44t10 -77l-28 -114l10 -9q41 18 71 56l189 227q49 55 45 123q-4 57 -41 92l-98 80q-27 20 -62 27q-86 6 -149 -70l-189 -225 q-41 -49 -45 -107.5z" />
|
|
||||||
<glyph unicode="–" horiz-adv-x="1024" d="M205 512v205h614v-205h-614z" />
|
|
||||||
<glyph unicode="—" d="M205 512v205h1638v-205h-1638z" />
|
|
||||||
<glyph unicode="‹" horiz-adv-x="1931" d="M160 707l919 708v-534l693 534v-1417l-693 534v-534z" />
|
|
||||||
<glyph unicode="›" horiz-adv-x="1976" d="M182 -6v1417l692 -534v534l920 -709l-920 -708v534z" />
|
|
||||||
<glyph unicode="™" horiz-adv-x="4038" d="M2213 293q0 123 110 209t267 86q160 0 160 -27v778v269q0 23 16.5 38t38.5 15h1030q23 0 39.5 -15.5t16.5 -37.5v-269v-1073h-2q-16 -94 -107.5 -181t-226.5 -87q-156 0 -265.5 87t-109.5 208q0 123 109.5 209t265.5 86q162 0 162 -27v692h-793v-960v-27h-2 q-14 -94 -106.5 -181t-225.5 -87q-156 0 -266.5 87t-110.5 208zM164 1642l196 197l494 -491l-197 -197l-82 82q2 -74 75 -204t210 -267q215 -215 461 -293l25 -8l-99 98l199 197l491 -492l-196 -198q-72 -72 -187 -73q-113 0 -267 70q-310 141 -646 480q-303 303 -436 620 q-77 184 -77 315q0 94 40 160z" />
|
|
||||||
<glyph unicode="" horiz-adv-x="500" d="M0 0v0v0v0v0z" />
|
|
||||||
</font>
|
|
||||||
</defs></svg>
|
|
Before Width: | Height: | Size: 35 KiB |
@ -1,539 +0,0 @@
|
|||||||
html, body {
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
|
|
||||||
font-weight: 300;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
position: relative;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
a:link, a:visited, *[onclick] {
|
|
||||||
color: #08c;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
a:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
a:link:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
a .popup {
|
|
||||||
display: none;
|
|
||||||
border-radius: 5px;
|
|
||||||
color: #AAA;
|
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
z-index: 99;
|
|
||||||
right: 0;
|
|
||||||
bottom: 100%;
|
|
||||||
max-width: inherit;
|
|
||||||
max-height: 400px;
|
|
||||||
margin-right: -100px;
|
|
||||||
padding: 8px;
|
|
||||||
}
|
|
||||||
a .popup.border {
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
a:hover .popup {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav, h4 {
|
|
||||||
font-family: "Myriad Pro", "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav {
|
|
||||||
opacity: 0.85;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1, h2, h3, h4 {
|
|
||||||
margin-top: 1em;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
*[id]::before {
|
|
||||||
position: relative;
|
|
||||||
content: "";
|
|
||||||
display: block;
|
|
||||||
height: 60px;
|
|
||||||
width: 5px;
|
|
||||||
background: red;
|
|
||||||
margin-top: -60px;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
section {
|
|
||||||
padding: 1ex 0;
|
|
||||||
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.content {
|
|
||||||
padding-top: 100px;
|
|
||||||
width: 940px;
|
|
||||||
margin: auto;
|
|
||||||
|
|
||||||
text-align: left;
|
|
||||||
text-align: initial;
|
|
||||||
}
|
|
||||||
.hlvl {
|
|
||||||
border-left: 5px solid #EEE;
|
|
||||||
padding-left: 1em;
|
|
||||||
}
|
|
||||||
.hlvl .hlvl {
|
|
||||||
border-color: #CCC;
|
|
||||||
margin-left: -1em;
|
|
||||||
padding-left: 2em;
|
|
||||||
}
|
|
||||||
.hlvl .hlvl .hlvl {
|
|
||||||
border-color: #AAA;
|
|
||||||
margin-left: -2em;
|
|
||||||
padding-left: 3em;
|
|
||||||
}
|
|
||||||
h2.inline, h3.inline, h4.inline {
|
|
||||||
display: inline-block;
|
|
||||||
line-height: inherit;
|
|
||||||
}
|
|
||||||
.box {
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
font-size: 0;
|
|
||||||
}
|
|
||||||
.box img {
|
|
||||||
border: 1px solid white;
|
|
||||||
}
|
|
||||||
img.block {
|
|
||||||
display: block;
|
|
||||||
border: 1px solid black;
|
|
||||||
padding: 4px;
|
|
||||||
margin: auto 1em;
|
|
||||||
width: 640px;
|
|
||||||
}
|
|
||||||
img.border {
|
|
||||||
background: #AAA;
|
|
||||||
border: 1px solid #333;
|
|
||||||
padding: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.thumb {
|
|
||||||
clear: both;
|
|
||||||
border-bottom: 2px ridge white;
|
|
||||||
margin-bottom: 4em;
|
|
||||||
}
|
|
||||||
.thumb img.pull-right, img.pull-left {
|
|
||||||
width: 400px;
|
|
||||||
}
|
|
||||||
.thumb .pull-right {
|
|
||||||
margin-left: 5ex;
|
|
||||||
}
|
|
||||||
.thumb .pull-left {
|
|
||||||
margin-right: 5ex;
|
|
||||||
}
|
|
||||||
.fit-height {
|
|
||||||
height: 100%;
|
|
||||||
max-height: 100%;
|
|
||||||
}
|
|
||||||
.middle {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
.middle::before {
|
|
||||||
display: inline-block;
|
|
||||||
content: "";
|
|
||||||
width: 0;
|
|
||||||
height: 100%;
|
|
||||||
margin-left: -2px;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
.middle.play::after {
|
|
||||||
content: "▶";
|
|
||||||
display: inline-block;
|
|
||||||
background: rgba(0, 0, 0, 0.7);
|
|
||||||
box-shadow: 0 0 1px white;
|
|
||||||
border-radius: 50%;
|
|
||||||
padding: 1ex;
|
|
||||||
font-size: 200%;
|
|
||||||
vertical-align: middle;
|
|
||||||
transition: box-shadow 0.3s;
|
|
||||||
}
|
|
||||||
.middle.play:hover::after {
|
|
||||||
box-shadow: 0 0 10px white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.column {
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0 2em;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar .nav .img {
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar .nav .img img {
|
|
||||||
display: block;
|
|
||||||
height: 32px;
|
|
||||||
}
|
|
||||||
ul.pictures {
|
|
||||||
list-style: none;
|
|
||||||
}
|
|
||||||
ul.pictures li {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 1ex;
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
|
|
||||||
color: white;
|
|
||||||
background: black;
|
|
||||||
text-shadow: black 0 1px 50px;
|
|
||||||
box-shadow: 0 1px 5px #000;
|
|
||||||
|
|
||||||
transition: height 0.3s;
|
|
||||||
}
|
|
||||||
header .container {
|
|
||||||
/*position: relative;*/
|
|
||||||
width: 100%;
|
|
||||||
/*height: 100%;*/
|
|
||||||
z-index: 1;
|
|
||||||
|
|
||||||
background: radial-gradient(center, ellipse cover, rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.8) 100%);
|
|
||||||
background: gradient(radial, center center, 0px, center center, 100%, color-stop(50%,rgba(0,0,0,0.3)), color-stop(100%,rgba(0,0,0,0.8)));
|
|
||||||
background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.8) 100%);
|
|
||||||
background: radial-gradient(70% 50% at 30% 50%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.8) 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#44000000', endColorstr='#cc000000',GradientType=1 );
|
|
||||||
}
|
|
||||||
header a:link, header a:visited, header *[onclick] {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
header .background {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
header .box {
|
|
||||||
background: rgba(0, 0, 0, 0.8);
|
|
||||||
transition: all 0.5s;
|
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
right: 1em;
|
|
||||||
bottom: 1em;
|
|
||||||
width: 160px;
|
|
||||||
height: 100px;
|
|
||||||
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
header .box.active {
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
header .box::before {
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
width: 0;
|
|
||||||
height: 100%;
|
|
||||||
content: "";
|
|
||||||
margin-left: -2px;
|
|
||||||
}
|
|
||||||
header .box .minimized,
|
|
||||||
header .box .maximized {
|
|
||||||
position: relative;
|
|
||||||
vertical-align: middle;
|
|
||||||
font-size: 12pt;
|
|
||||||
}
|
|
||||||
header .box .minimized,
|
|
||||||
header .box.active .maximized {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
header .box.active .minimized,
|
|
||||||
header .box .maximized {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
#scrollDown {
|
|
||||||
position: fixed;
|
|
||||||
z-index: -1;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
bottom: 0;
|
|
||||||
height: 1ex;
|
|
||||||
text-align: center;
|
|
||||||
|
|
||||||
color: #DDD;
|
|
||||||
font-size: 7em;
|
|
||||||
}
|
|
||||||
#app header {
|
|
||||||
height: 80%;
|
|
||||||
}
|
|
||||||
#app header .background {
|
|
||||||
background: url('../img/shot-laptop-leaning-iphone.jpg') center center;
|
|
||||||
background-size: cover;
|
|
||||||
}
|
|
||||||
#what header,
|
|
||||||
#security header,
|
|
||||||
#algorithm header,
|
|
||||||
#support header {
|
|
||||||
height: 40%;
|
|
||||||
|
|
||||||
background: #272727;
|
|
||||||
}
|
|
||||||
#what header .background,
|
|
||||||
#security header .background,
|
|
||||||
#algorithm header .background,
|
|
||||||
#support header .background {
|
|
||||||
width: 940px;
|
|
||||||
height: auto;
|
|
||||||
left: 50%;
|
|
||||||
top: -10%;
|
|
||||||
margin-left: -470px;
|
|
||||||
}
|
|
||||||
#what header .container,
|
|
||||||
#security header .container,
|
|
||||||
#algorithm header .container,
|
|
||||||
#support header .container {
|
|
||||||
background: radial-gradient(center, ellipse cover, rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.8) 100%);
|
|
||||||
background: gradient(radial, center center, 0px, center center, 100%, color-stop(50%,rgba(0,0,0,0.3)), color-stop(100%,rgba(0,0,0,0.8)));
|
|
||||||
background: radial-gradient(ellipse at center, rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.8) 100%);
|
|
||||||
background: radial-gradient(50% 50% at 50% 30%, rgba(0,0,0,0.3) 50%, rgba(0,0,0,0.8) 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#44000000', endColorstr='#cc000000',GradientType=1 );
|
|
||||||
}
|
|
||||||
#tender_toggler {
|
|
||||||
z-index: 2;
|
|
||||||
}
|
|
||||||
header .content {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 5px;
|
|
||||||
left: 50%;
|
|
||||||
margin-left: -470px;
|
|
||||||
|
|
||||||
text-align: right;
|
|
||||||
|
|
||||||
/*background: linear-gradient(to bottom, rgba(0,0,0,0) 85%, rgba(0,0,0,0.7) 85%);*/
|
|
||||||
/*background: black url("../img/shot-laptop-leaning-iphone.png") center top / cover no-repeat;*/
|
|
||||||
}
|
|
||||||
h1, h2 {
|
|
||||||
font-weight: 100;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: 3em;
|
|
||||||
margin: 0 0 1ex;
|
|
||||||
}
|
|
||||||
header h1 {
|
|
||||||
font-size: 6em;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
header h2 {
|
|
||||||
font-size: 2em;
|
|
||||||
font-style: oblique;
|
|
||||||
}
|
|
||||||
header .movie {
|
|
||||||
display: none;
|
|
||||||
background: url('../img/about.png') no-repeat scroll 50% 40px/cover black;
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
padding-top: 40px;
|
|
||||||
}
|
|
||||||
/*header .movie::before {
|
|
||||||
display: block;
|
|
||||||
content: " ";
|
|
||||||
position: absolute;
|
|
||||||
z-index: -1;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background: url('../img/loading-spin.svg') no-repeat scroll center center transparent;
|
|
||||||
}*/
|
|
||||||
header.play {
|
|
||||||
height: auto !important;
|
|
||||||
max-height: 94%;
|
|
||||||
}
|
|
||||||
header.play .movie {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
header.play .movie video {
|
|
||||||
/*position: relative;
|
|
||||||
z-index: 3;*/
|
|
||||||
}
|
|
||||||
header.play .content, header.play .box {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
header .moviecontrol {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 9;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
margin-top: -.5em;
|
|
||||||
margin-left: -.5em;
|
|
||||||
|
|
||||||
font-size: 400%;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
header .moviecontrol::before {
|
|
||||||
content: "▶";
|
|
||||||
}
|
|
||||||
header .moviecontrol:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
header.play .moviecontrol {
|
|
||||||
right: 1em;
|
|
||||||
bottom: 1em;
|
|
||||||
left: auto;
|
|
||||||
top: auto;
|
|
||||||
}
|
|
||||||
header.play .moviecontrol::before {
|
|
||||||
content: "❙❙";
|
|
||||||
}
|
|
||||||
/*header .movie::before {
|
|
||||||
display: block;
|
|
||||||
content: " ";
|
|
||||||
position: absolute;
|
|
||||||
z-index: 4;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background: url('../img/video-pattern.png') repeat;
|
|
||||||
background: url('../img/video-bg.png') no-repeat scroll 50% 100%/cover transparent;
|
|
||||||
}*/
|
|
||||||
header .movie video {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
height: calc(100% - 40px);
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
header .movie .fallback {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 60px;
|
|
||||||
text-align: center;
|
|
||||||
z-index: 5;
|
|
||||||
color: #BBB;
|
|
||||||
}
|
|
||||||
header .help {
|
|
||||||
position: absolute;
|
|
||||||
top: 60px;
|
|
||||||
right: 0;
|
|
||||||
padding: 1em;
|
|
||||||
background: white;
|
|
||||||
border-radius: 8px 0 0 8px;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
header .help:hover .hidden {
|
|
||||||
display: block;
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
header .help a:link, header .help a:visited, header .help *[onclick] {
|
|
||||||
color: #08c;
|
|
||||||
}
|
|
||||||
footer {
|
|
||||||
overflow: hidden;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
footer h1 {
|
|
||||||
background: #EEE;
|
|
||||||
|
|
||||||
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
|
|
||||||
font-size: 170%;
|
|
||||||
font-weight: 100;
|
|
||||||
}
|
|
||||||
footer .content {
|
|
||||||
margin: 1em auto;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
footer .column {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
q::before {
|
|
||||||
content: open-quote;
|
|
||||||
}
|
|
||||||
q {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
q::after {
|
|
||||||
content: close-quote;
|
|
||||||
}
|
|
||||||
table {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
thead {
|
|
||||||
background: #DDD;
|
|
||||||
}
|
|
||||||
tbody {
|
|
||||||
background: #EEE;
|
|
||||||
}
|
|
||||||
th {
|
|
||||||
background: #E9E9E9;
|
|
||||||
}
|
|
||||||
td, th {
|
|
||||||
padding: 1ex;
|
|
||||||
}
|
|
||||||
thead {
|
|
||||||
border: 1px solid #DDD;
|
|
||||||
}
|
|
||||||
tbody td, tbody th {
|
|
||||||
border: 1px solid #DDD;
|
|
||||||
}
|
|
||||||
caption {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 120%;
|
|
||||||
}
|
|
||||||
table .box {
|
|
||||||
display: block;
|
|
||||||
width: 15px;
|
|
||||||
height: 15px;
|
|
||||||
float: right;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
table .box.red {
|
|
||||||
background: #A66;
|
|
||||||
border: 1px solid #C33;
|
|
||||||
}
|
|
||||||
table .box.orange {
|
|
||||||
background: #AA6;
|
|
||||||
border: 1px solid #CC3;
|
|
||||||
}
|
|
||||||
table .box.green {
|
|
||||||
background: #6A6;
|
|
||||||
border: 1px solid #3C3;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 979px) {
|
|
||||||
.content {
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
header .content {
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
margin: 0;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
.pull-right, .pull-left {
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media (max-width: 767px) {
|
|
||||||
header h1 {
|
|
||||||
font-size: 4em;
|
|
||||||
}
|
|
||||||
header h2 {
|
|
||||||
font-size: 2em;
|
|
||||||
}
|
|
||||||
header .moviecontrol {
|
|
||||||
top: 1em;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,318 +0,0 @@
|
|||||||
/* effect-1 */
|
|
||||||
|
|
||||||
.effect-1:before,
|
|
||||||
.effect-1:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
bottom:20px;
|
|
||||||
left:10px;
|
|
||||||
width:50%;
|
|
||||||
height:20%;
|
|
||||||
max-width:300px;
|
|
||||||
-webkit-box-shadow: 0 20px 10px rgba(0, 0, 0, 0.75);
|
|
||||||
-moz-box-shadow: 0 20px 10px rgba(0, 0, 0, 0.75);
|
|
||||||
box-shadow: 0 20px 10px rgba(0, 0, 0, 0.75);
|
|
||||||
-webkit-transform:rotate(-4deg);
|
|
||||||
-moz-transform:rotate(-4deg);
|
|
||||||
-o-transform:rotate(-4deg);
|
|
||||||
-ms-transform:rotate(-4deg);
|
|
||||||
transform:rotate(-4deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-1:after {
|
|
||||||
right:10px;
|
|
||||||
left:auto;
|
|
||||||
-webkit-transform:rotate(4deg);
|
|
||||||
-moz-transform:rotate(4deg);
|
|
||||||
-o-transform:rotate(4deg);
|
|
||||||
-ms-transform:rotate(4deg);
|
|
||||||
transform:rotate(4deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-2 */
|
|
||||||
|
|
||||||
.effect-2:before,
|
|
||||||
.effect-2:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
bottom:20px;
|
|
||||||
left:10px;
|
|
||||||
width:50%;
|
|
||||||
height:20%;
|
|
||||||
max-width:300px;
|
|
||||||
-webkit-box-shadow:0 22px 10px rgba(0, 0, 0, 0.6);
|
|
||||||
-moz-box-shadow:0 22px 10px rgba(0, 0, 0, 0.6);
|
|
||||||
box-shadow:0 22px 10px rgba(0, 0, 0, 0.6);
|
|
||||||
-webkit-transform:rotate(-8deg);
|
|
||||||
-moz-transform:rotate(-8deg);
|
|
||||||
-o-transform:rotate(-8deg);
|
|
||||||
-ms-transform:rotate(-8deg);
|
|
||||||
transform:rotate(-8deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-2:after {
|
|
||||||
right:10px;
|
|
||||||
left:auto;
|
|
||||||
-webkit-transform:rotate(8deg);
|
|
||||||
-moz-transform:rotate(8deg);
|
|
||||||
-o-transform:rotate(8deg);
|
|
||||||
-ms-transform:rotate(8deg);
|
|
||||||
transform:rotate(8deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-3 */
|
|
||||||
|
|
||||||
.effect-3:before,
|
|
||||||
.effect-3:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
bottom:8px;
|
|
||||||
left:2%;
|
|
||||||
width:48.5%;
|
|
||||||
height:55%;
|
|
||||||
-webkit-box-shadow:0 7px 9px rgba(0, 0, 0, 0.75);
|
|
||||||
-moz-box-shadow:0 7px 9px rgba(0, 0, 0, 0.75);
|
|
||||||
box-shadow:0 7px 9px rgba(0, 0, 0, 0.75);
|
|
||||||
-webkit-transform: rotate(2deg);
|
|
||||||
-moz-transform: rotate(2deg);
|
|
||||||
-o-transform: rotate(2deg);
|
|
||||||
-ms-transform: rotate(2deg);
|
|
||||||
transform: rotate(2deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-3:after {
|
|
||||||
right:2%;
|
|
||||||
left:auto;
|
|
||||||
-webkit-transform: rotate(-2deg);
|
|
||||||
-moz-transform: rotate(-2deg);
|
|
||||||
-o-transform: rotate(-2deg);
|
|
||||||
-ms-transform: rotate(-2deg);
|
|
||||||
transform: rotate(-2deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-4 */
|
|
||||||
|
|
||||||
.effect-4:before,
|
|
||||||
.effect-4:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
bottom:12px;
|
|
||||||
left:2%;
|
|
||||||
width:49%;
|
|
||||||
height:55%;
|
|
||||||
-webkit-box-shadow:0 12px 18px rgba(0, 0, 0, 0.75);
|
|
||||||
-moz-box-shadow:0 12px 18px rgba(0, 0, 0, 0.75);
|
|
||||||
box-shadow:0 12px 18px rgba(0, 0, 0, 0.75);
|
|
||||||
-webkit-transform: rotate(3deg);
|
|
||||||
-moz-transform: rotate(3deg);
|
|
||||||
-o-transform: rotate(3deg);
|
|
||||||
-ms-transform: rotate(3deg);
|
|
||||||
transform: rotate(3deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-4:after {
|
|
||||||
right:2%;
|
|
||||||
left:auto;
|
|
||||||
-webkit-transform: rotate(-3deg);
|
|
||||||
-moz-transform: rotate(-3deg);
|
|
||||||
-o-transform: rotate(-3deg);
|
|
||||||
-ms-transform: rotate(-3deg);
|
|
||||||
transform: rotate(-3deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-5 */
|
|
||||||
|
|
||||||
.effect-5:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:-2.5%;
|
|
||||||
bottom:15px;
|
|
||||||
width:105%;
|
|
||||||
height:8px;
|
|
||||||
-webkit-box-shadow: 0px 20px 5px rgba(0, 0, 0, 0.5);
|
|
||||||
-moz-box-shadow: 0px 20px 5px rgba(0, 0, 0, 0.5);
|
|
||||||
box-shadow: 0px 20px 5px rgba(0, 0, 0, 0.5);
|
|
||||||
-webkit-border-radius:10px;
|
|
||||||
-moz-border-radius:10px;
|
|
||||||
border-radius:10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-6 */
|
|
||||||
|
|
||||||
.effect-6:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:-3.5%;
|
|
||||||
bottom:25px;
|
|
||||||
width:107%;
|
|
||||||
height:15px;
|
|
||||||
-webkit-box-shadow: 0px 30px 9px rgba(0, 0, 0, 0.5);
|
|
||||||
-moz-box-shadow: 0px 30px 9px rgba(0, 0, 0, 0.5);
|
|
||||||
box-shadow: 0px 30px 9px rgba(0, 0, 0, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-7 */
|
|
||||||
|
|
||||||
.effect-7:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:0;
|
|
||||||
right:0;
|
|
||||||
top:10px;
|
|
||||||
bottom:10px;
|
|
||||||
-webkit-box-shadow: 0 0 8px rgba(0,0,0,0.5);
|
|
||||||
-moz-box-shadow: 0 0 8px rgba(0,0,0,0.5);
|
|
||||||
box-shadow: 0 0 8px rgba(0,0,0,0.5);
|
|
||||||
-webkit-border-radius:15px;
|
|
||||||
-moz-border-radius:15px;
|
|
||||||
border-radius:15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-8 */
|
|
||||||
|
|
||||||
.effect-8:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:0px;
|
|
||||||
right:0;
|
|
||||||
top:15px;
|
|
||||||
bottom:15px;
|
|
||||||
-webkit-box-shadow: 0px 0 20px rgba(0,0,0,0.8);
|
|
||||||
-moz-box-shadow: 0px 0 20px rgba(0,0,0,0.8);
|
|
||||||
box-shadow: 0px 0 20px rgba(0,0,0,0.8);
|
|
||||||
-webkit-border-radius:35px;
|
|
||||||
-moz-border-radius:35px;
|
|
||||||
border-radius:35px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-9 */
|
|
||||||
|
|
||||||
.effect-9:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:15px;
|
|
||||||
max-width:200px;
|
|
||||||
-webkit-box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(60deg);
|
|
||||||
-moz-transform:skew(60deg);
|
|
||||||
-o-transform:skew(60deg);
|
|
||||||
-ms-transform:skew(60deg);
|
|
||||||
transform:skew(60deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-10 */
|
|
||||||
|
|
||||||
.effect-10:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:15px;
|
|
||||||
max-width:200px;
|
|
||||||
-webkit-box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:-85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(60deg);
|
|
||||||
-moz-transform:skew(60deg);
|
|
||||||
-o-transform:skew(60deg);
|
|
||||||
-ms-transform:skew(60deg);
|
|
||||||
-webkit-transform:skew(60deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-10:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
right:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:15px;
|
|
||||||
max-width:200px;
|
|
||||||
-webkit-box-shadow: 85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow: 85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow: 85px 0 3px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(-60deg);
|
|
||||||
-moz-transform:skew(-60deg);
|
|
||||||
-o-transform:skew(-60deg);
|
|
||||||
-ms-transform:skew(-60deg);
|
|
||||||
transform:skew(-60deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-11 */
|
|
||||||
|
|
||||||
.effect-11:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:75px;
|
|
||||||
max-width:200px;
|
|
||||||
-webkit-box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(20deg);
|
|
||||||
-moz-transform:skew(20deg);
|
|
||||||
-o-transform:skew(20deg);
|
|
||||||
-ms-transform:skew(20deg);
|
|
||||||
transform:skew(20deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-11:after {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* effect-12 */
|
|
||||||
|
|
||||||
.effect-12:before {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
left:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:75px;
|
|
||||||
-webkit-box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:-86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(20deg);
|
|
||||||
-moz-transform:skew(20deg);
|
|
||||||
-o-transform:skew(20deg);
|
|
||||||
-ms-transform:skew(20deg);
|
|
||||||
transform:skew(20deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.effect-12:after {
|
|
||||||
content:"";
|
|
||||||
position:absolute;
|
|
||||||
z-index:-500;
|
|
||||||
right:70px;
|
|
||||||
bottom:2px;
|
|
||||||
width:50%;
|
|
||||||
height:75px;
|
|
||||||
-webkit-box-shadow:86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-moz-box-shadow:86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
box-shadow:86px 0 6px rgba(0, 0, 0, 0.4);
|
|
||||||
-webkit-transform:skew(-20deg);
|
|
||||||
-moz-transform:skew(-20deg);
|
|
||||||
-o-transform:skew(-20deg);
|
|
||||||
-ms-transform:skew(-20deg);
|
|
||||||
transform:skew(-20deg);
|
|
||||||
}
|
|
@ -1,265 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html class="no-js" itemscope itemtype="://schema.org/Product">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
||||||
<title itemprop="name">Master Password — Secure your life, forget your passwords.</title>
|
|
||||||
<meta itemprop="description" content="Master Password is an ingenious password solution that makes your passwords truly impossible to lose." />
|
|
||||||
<meta itemprop="image" content="img/about.png" />
|
|
||||||
<meta name="apple-itunes-app" content="app-id=510296984" />
|
|
||||||
<meta name="viewport" content="width=device-width">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
|
|
||||||
<link rel="icon" href="img/favicon.png" type="image/x-png" />
|
|
||||||
<link rel="shortcut icon" href="img/favicon.png" type="image/x-png" />
|
|
||||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
|
||||||
<link rel="stylesheet" href="css/bootstrap-responsive.min.css">
|
|
||||||
<link rel="stylesheet" href="css/main.css?7">
|
|
||||||
|
|
||||||
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
|
|
||||||
<script src="js/vendor/prefixfree.min.js"></script>
|
|
||||||
</head>
|
|
||||||
<body itemscope itemtype="://schema.org/MobileSoftwareApplication" id="trouble">
|
|
||||||
<!--[if lt IE 7]>
|
|
||||||
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
<nav class="navbar navbar-fixed-top">
|
|
||||||
<div class="navbar-inner">
|
|
||||||
<div class="container">
|
|
||||||
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
<a class="brand" href="./">●●●|</a>
|
|
||||||
<div class="nav-collapse collapse">
|
|
||||||
<ul class="nav">
|
|
||||||
<li><a href="what.html">What is it? How do I use it?</a></li>
|
|
||||||
<li><a href="security.html">Is it safe?</a></li>
|
|
||||||
<li><a href="algorithm.html">How does it work?</a></li>
|
|
||||||
</ul>
|
|
||||||
<ul class="nav pull-right">
|
|
||||||
<li><a href="irc://irc.freenode.net/#masterpassword" onclick="_gaq.push(['_trackPageview', '/outbound/irc']);">#masterpassword</a></li>
|
|
||||||
<li class="divider-vertical"></li>
|
|
||||||
<li class="active"><a href="faq.html">FAQ</a></li>
|
|
||||||
<li><a href="support.html">Support</a></li>
|
|
||||||
<li><a href="https://github.com/Lyndir/MasterPassword/" onclick="_gaq.push(['_trackPageview', '/outbound/github']);">Source</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><!--/.nav-collapse -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<header>
|
|
||||||
<img class="background" src="img/mp-process-angled.png" data-stellar-ratio="2.5" />
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
<h2>Security Overview</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<section><div class="content">
|
|
||||||
|
|
||||||
<p>Master Password is an "unconventional" way of managing passwords. If you've got questions and need answers, read on. For a full overview of the security features in this app, see the <a href="security.html">Security page</a>. For the technical details on how Master
|
|
||||||
Password works, see the <a href="algorithm.html">Algorithm page</a>.</p>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li><a href="#hacking">Can Master Password get hacked?</a></li>
|
|
||||||
<li><a href="#theft">Can a thief get to my passwords if he steals my phone?</a></li>
|
|
||||||
<li><a href="#masterpassword">What should my master password be?</a></li>
|
|
||||||
<li><a href="#numbers">What is the basis for your numbers?</a></li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<div class="thumb clearfix">
|
|
||||||
<h1 id="hacking">Can Master Password get hacked?</h1>
|
|
||||||
<p>There are ways around everything, including Master Password's algorithm. A hacker could install a program on your computer that watches as you send your password to the website. At this point, however, no amount of password management will help you, if this is your worry, you need to use two-factor authentication methods which most sites don't support.</p>
|
|
||||||
<p>A hacker could also attempt to derive your master password from a password stolen from a site. Master Password has been designed specifically to thwart any attempts to break its security model. For more information, <a href="security.html#strength">read "Why Is Master Password Strong?"</a>.</p>
|
|
||||||
|
|
||||||
<h1 id="theft">Can a thief get to my passwords if he steals my phone?</h1>
|
|
||||||
<p>Master Password has been engineered not to store any secrets on your phone. The secret is your master password and it is only in your head. You enter it when opening the app at which point Master Password remembers it only as long as you leave the app open. Once you ask the app for a site's password, your master password is used to calculate the site's password.</p>
|
|
||||||
<p>To answer the question directly: not unless the app is showing at the time he steals your phone, or you configured it to save the master password and used a weak PIN on your phone.</p>
|
|
||||||
<p>There is an exception: Master Password allows you to save "custom" or "personal" passwords in the app. These passwords don't use Master Password's special algorithm and are merely encrypted using the strong master key derived from your master password. These types of passwords behave more like conventional vault-based passwords do. They are however very well protected and an attacker would still need to find a way to crack your master password (which is extremely
|
|
||||||
difficult, see below) before being able to decode the passwords in its vault.</p>
|
|
||||||
|
|
||||||
<h1 id="surrender">Can an officer force me to divulge my master password?</h1>
|
|
||||||
<p>Cryptography only provides technical security. It does not protect you from situations where you are legally required or forced by peers to surrender your key.</p>
|
|
||||||
<img class="block" src="https://sslimgs.xkcd.com/comics/security.png" />
|
|
||||||
<p>In fact, many countries provide their officers with a legal grounds for forcing you to divulge your encryption keys to any encrypted information they've recovered during a warranted search.</p>
|
|
||||||
<p>Again, unlike ordinary password managers, Master Password might have an edge here. If you make no use of stored passwords, Master Password doesn't actually encrypt anything with your master password. That means, when your devices are seized, these legal grounds may no longer apply. Note however that this does not constitute legal advice and that this theory has never been tested in practice.</p>
|
|
||||||
<p>For your safety, we recommend that in preparation of travelling, you change the master password for your user on the device. That way, if your device is seized by a foreign entity and they force you to divulge your master password, you'll likely be fully compliant by simply giving up the new master password even though it will cause the app to generate invalid passwords for all your sites. Later, you can always change the master password back to the real one.</p>
|
|
||||||
|
|
||||||
<h1 id="masterpassword">What should my master password be?</h1>
|
|
||||||
<p>The simple answer to that question is: First and foremost, memorable and unrelated to you. What that means is that the most important thing about your master password is that you need to be able to recall it any time and yet it should not be derived from anything personal.</p>
|
|
||||||
<p>That advice usually doesn't help very much with actually picking a good master password. <strong>The goal of a good password is that it'll take an attacker a lot of guesses before he'll find it</strong>. That is the core idea behind good passwords.</p>
|
|
||||||
<img class="block" src="https://sslimgs.xkcd.com/comics/password_strength.png" />
|
|
||||||
<p>There are a few strategies of getting good passwords. The speed with which an attacker can guess your password depends a lot on whether he knows what kind of password you're using or not. So we'll compare a few password strategies, their strength and how memorable they are.</p>
|
|
||||||
<p>The simplest strategy for picking good passwords is by just picking a bunch of random letters, digits and symbols and mixing them up. This is a great strategy for strong passwords but those passwords are usually not very memorable.</p>
|
|
||||||
<p>Another strategy is by "encoding" something you already know. This can seem like a good way to make memorable passwords, but recalling the "encoding" you used two years later can be tricky. This also makes it much easier for attackers that know you to find your password.</p>
|
|
||||||
<p>Master Password itself generates very random passwords that look semi-legible, for instance <code>Togu3]ToxiBuzb</code>. Such passwords have been found to be very memorable while also being very high in entropy (hard to guess).</p>
|
|
||||||
<p>A strategy that's gaining traction lately is that of combining words into a sentence. Some claim it's best for the sentence to make no grammatical sense, others dispute these claims. It's a fact, though, that if your attacker doesn't expect such a password, they're nearly impossible to defeat.</p>
|
|
||||||
<p><iframe width="420" height="315" src="//www.youtube.com/embed/MSyIhapMdI8?start=109" frameborder="0" allowfullscreen></iframe></p>
|
|
||||||
<p>Let's sum these strategies up in a table, note that this type of comparison is very subjective.</p>
|
|
||||||
<table>
|
|
||||||
<caption>Time to crack a master password</caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Strategy</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>Example</th>
|
|
||||||
<th>Time to crack<br />(bulk/ignorant attack)</th>
|
|
||||||
<th>Time to crack<br />(attacker knows strategy)</th>
|
|
||||||
<th>Memorability</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Random password, 4 number PIN</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>9174</code></td>
|
|
||||||
<td>50 minutes<span class="red box"></span></td>
|
|
||||||
<td>50 minutes<span class="red box"></span></td>
|
|
||||||
<td>Moderate</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Random password, 4 alphanumeric characters</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>a1qd</code></td>
|
|
||||||
<td>1.7 months<span class="red box"></span></td>
|
|
||||||
<td>1.7 months<span class="red box"></span></td>
|
|
||||||
<td>Difficult</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Random password, 6 alphanumeric characters</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>v9ea30</code></td>
|
|
||||||
<td>560 years<span class="green box"></span></td>
|
|
||||||
<td>560 years<span class="green box"></span></td>
|
|
||||||
<td>Difficult</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Encoding a word, <a href="https://xkcd.com/936/" onclick="_gaq.push(['_trackPageview', '/outbound/xkcd/troubador']);">Tr0ub4dor</a> style</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>Tr0ub4dor</code></td>
|
|
||||||
<td>2.6 years<span class="red box"></span></td>
|
|
||||||
<td>2.6 years<span class="red box"></span></td>
|
|
||||||
<td>Moderate</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Master Password style</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>Togu3]ToxiBuzb</code></td>
|
|
||||||
<td>> age of the universe<span class="green box"></span></td>
|
|
||||||
<td>632 million years<span class="green box"></span></td>
|
|
||||||
<td>Moderate</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Nonsense sentence, <a href="https://xkcd.com/936/" onclick="_gaq.push(['_trackPageview', '/outbound/xkcd/correct-horse']);">correct horse</a> style</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>correct horse battery staple</code></td>
|
|
||||||
<td>> age of the universe<span class="green box"></span></td>
|
|
||||||
<td>173 thousand years<span class="green box"></span></td>
|
|
||||||
<td>Moderate</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Real sentence, 4 words (1 verb, 1 noun)</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>I have a dream</code></td>
|
|
||||||
<td>> age of the universe<span class="green box"></span></td>
|
|
||||||
<td>8.7 months<span class="orange box"></span></td>
|
|
||||||
<td>Easy</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Real sentence, 4 words (1 adjective, 2 nouns)</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>My red beach ball</code></td>
|
|
||||||
<td>> age of the universe<span class="green box"></span></td>
|
|
||||||
<td>551 years<span class="green box"></span></td>
|
|
||||||
<td>Easy</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">Real sentence, 6 words (1 adverb, 1 verb, 1 adjective, 1 nouns)</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>I once had a red ball</code></td>
|
|
||||||
<td>> age of the universe<span class="green box"></span></td>
|
|
||||||
<td>27 thousand years<span class="green box"></span></td>
|
|
||||||
<td>Easy</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>The numbers on sentences assume the attacker thinks you know no more than 500 adjectives, 2000 nouns, 333 verbs and 300 adverbs. These calculations are very subjective, since language is such a complex thing to write a password cracker for. Never mind adding in punctuation, names or using other languages.</p>
|
|
||||||
<p>Pick a strategy that works best for you, but remember that <strong>far more important than maximizing the "time to crack" is making your master password memorable and impersonal</strong>.</p>
|
|
||||||
|
|
||||||
<h1 id="numbers">What is the basis for your numbers?</h1>
|
|
||||||
<p>The time-to-crack numbers throughout this website are based on the following assumptions:</p>
|
|
||||||
<ul>
|
|
||||||
<li>The attacker can calculate <code>1 479 million</code> SHA-256 hashes per second (<a href="http://hashcat.net/oclhashcat/" onclick="_gaq.push(['_trackPageview', '/outbound/hashcat']);">hashcat on AMD HD 6990</a>)</li>
|
|
||||||
<li>The attacker can calculate <code>3.3</code> Master Password passwords per second (2GHz MacBook Pro, scrypt N=32768, r=8, p=2, dkLen=64).</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="thumb clearfix">
|
|
||||||
<h1>Other Questions / Issues</h1>
|
|
||||||
<p>Don't hesitate to send us a message at <a href="mailto:masterpassword@lyndir.com">masterpassword@lyndir.com</a>. I'll get right on your case. Try to include any details you can. Good or common questions will have their answers added to this page.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div></section>
|
|
||||||
|
|
||||||
<footer><div class="muted content">
|
|
||||||
|
|
||||||
<p><em>Master Password is a security product and algorithm by <a href="http://www.lhunath.com" onclick="_gaq.push(['_trackPageview', '/outbound/lhunath']);">Maarten Billemont</a>, <a href="http://www.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir']);">Lyndir</a> (© 2011-2014).</em><br>Usage implies agreement with our <a href="privacy.html">privacy policy and disclaimer</a>.</p>
|
|
||||||
<p><a href="http://gorillas.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/gorillas']);">Gorillas</a> ● <a href="http://deblock.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/deblock']);">DeBlock</a> ● <a href="https://github.com/Lyndir" onclick="_gaq.push(['_trackPageview', '/outbound/github']);">GitHub</a> ● <a href="http://thanks.lhunath.com" onclick="_gaq.push(['_trackPageview', '/outbound/thanks']);">Send Thanks</a></p>
|
|
||||||
|
|
||||||
</div></footer>
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
|
|
||||||
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script>
|
|
||||||
|
|
||||||
<script src="js/vendor/bootstrap.min.js"></script>
|
|
||||||
|
|
||||||
<script src="js/plugins.js"></script>
|
|
||||||
<script src="js/main.js"></script>
|
|
||||||
|
|
||||||
<!-- Internet Defense League -->
|
|
||||||
<script type="text/javascript">
|
|
||||||
window._idl = {};
|
|
||||||
_idl.variant = "modal";
|
|
||||||
(function() {
|
|
||||||
var idl = document.createElement('script');
|
|
||||||
idl.type = 'text/javascript';
|
|
||||||
idl.async = true;
|
|
||||||
idl.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'members.internetdefenseleague.org/include/?url=' + (_idl.url || '') + '&campaign=' + (_idl.campaign || '') + '&variant=' + (_idl.variant || 'banner');
|
|
||||||
document.getElementsByTagName('body')[0].appendChild(idl);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Google Analytics -->
|
|
||||||
<script>
|
|
||||||
var _gaq=[['_setAccount','UA-90535-15'],['_trackPageview']];
|
|
||||||
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
|
|
||||||
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
|
||||||
s.parentNode.insertBefore(g,s)}(document,'script'));
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Google +1 -->
|
|
||||||
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
|
|
||||||
|
|
||||||
<!-- Tender -->
|
|
||||||
<script src="https://masterpassword.tenderapp.com/tender_widget.js" type="text/javascript"></script>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
Before Width: | Height: | Size: 4.2 KiB |