diff --git a/api/event/event.controller.js b/api/event/event.controller.js index e6840484c..b47d8e658 100644 --- a/api/event/event.controller.js +++ b/api/event/event.controller.js @@ -1,12 +1,40 @@ var express = require('express'); var Event = require('./event.model'); -var debug = require('debug')('myapp'); +var debug = require('debug')('eventapi'); +var communicator = require('../../communicator'); -exports.create = function(req, res){ +var getRandomString = function(){ + return require('crypto').randomBytes(16).toString('hex'); +} + +exports.verifyEmail = function(req, res, next){ + var id = req.params.id, + code = req.params.code; + Event.update({ + '_id' : id, + '__private.verificationCode' : code + }, { + 'creator.isVerified' : true , + '__private.verificationCode' : getRandomString() + }, function(err, num){ + if (err) return handleError(res, err); + if (num == 0) return res.status(498).end(); + next(); + }); +} + +exports.create = function(req, res, next){ + var event = req.body; + event.__private = { + 'verificationCode' : getRandomString(), + 'deleteCode' : getRandomString() + } Event.create(req.body, function(err, event){ if (err) return handleError(res, err); if (!event) return res.status(404); - return res.json(event); + communicator.emit('event:create', event); + req.event = event; + next(); }); } @@ -14,34 +42,103 @@ exports.show = function(req, res, next){ Event.findById(req.params.id, function(err, event){ if (err) return handleError(res, err); if (!event) return res.status(404).end(); - return res.json(event); + req.event = event; + next(); }); } exports.update = function(req, res){ - req.body.updated = Date.now(); - Event.update({ '_id' : req.params.id }, req.body, function(){ - return res.status(204).end(); + var updatedEvent = req.body; + updatedEvent.updated = Date.now(); + Event.findById(req.params.id, function(err, event){ + if (err) return handleError(res, err); + if (!event) return res.status(404).end(); + // If the creator's email has changed OR the notifications setting has changed - start a new email confirmation transaction + if (event.creator.email != updatedEvent.creator.email || + (!event.creator.allowNotifications && updatedEvent.creator.allowNotifications)) { + updatedEvent.creator.isVerified = false; + updatedEvent.creator.allowNotifications = true; + updatedEvent.__private = event.__private; + communicator.emit('event:update:creator.email', updatedEvent, event); + } + Event.update({ '_id' : req.params.id }, updatedEvent, function(){ + communicator.emit('event:update', updatedEvent, event); + return res.status(204).end(); + }); }); } +exports.delete = function(req, res, next){ + var eventId = req.params.id, + code = req.params.code; + if (code){ + Event.update({ + '_id' : eventId, + '__private.deleteCode' : code + }, { + 'isDeleted' : true , + '__private.deleteCode' : getRandomString() + }, function(err, num){ + if (err) return handleError(res, err); + if (num == 0) return res.status(498).end(); + next(); + }); + } else { + Event.findById(eventId, function(err, event){ + if (err) return handleError(res, err); + if (!event) return res.status(404).end(); + communicator.emit('event:delete', event); + next(); + }); + } +} + +exports.createComment = function(req, res, next){ + var eventId = req.params.id, + comment = req.body; + Event.findById(eventId, function(err, event){ + if (err) return handleError(res, err); + event.comments.push(comment); + event.save(function(err, event){ + if (err) return next(err); + req.event = event; + next(); + }); + }); +} + +exports.deleteComment = function(req, res, next){ + var eventId = req.params.id, + commentId = req.params.cid; + Event.findById(eventId, function(err, event){ + if (err) return handleError(res, err); + event.comments.pull({ '_id' : commentId }); + event.save(function(err, event){ + req.event = event; + next(); + }) + }); +} + + exports.createParticipant = function(req, res, next){ - var eventId = req.params.id; - var participant = req.body; + var eventId = req.params.id, + participant = req.body; Event.findById(eventId, function(err, event){ if (err) return handleError(res, err); event.updated = Date.now(); event.participants.push(participant); event.save(function(err, event){ if (err) return next(err); - res.json(event); + req.event = event; + next(); }); }); } exports.updateParticipant = function(req, res, next){ - var eventId = req.params.id; - var participantId = req.params.pid; + var eventId = req.params.id, + participantId = req.params.pid; Event.update({ '_id' : eventId, 'participants._id': participantId @@ -51,20 +148,21 @@ exports.updateParticipant = function(req, res, next){ 'participants.$' : req.body } }, function(err, num){ - if (err) return next(err); + if (err) return handleError(res, err); res.status(204).end(); }); } exports.deleteParticipant = function(req, res, next){ - var eventId = req.params.id; - var participantId = req.params.pid; + var eventId = req.params.id, + participantId = req.params.pid; Event.findById(eventId, function(err, event){ if (err) return handleError(res, err); event.updated = Date.now(); event.participants.pull({ '_id' : participantId }); event.save(function(err, event){ - res.json(event); + req.event = event; + next(); }) }); } diff --git a/api/event/event.model.js b/api/event/event.model.js index 4425cc302..a79f341d1 100644 --- a/api/event/event.model.js +++ b/api/event/event.model.js @@ -8,7 +8,15 @@ var EventSchema = new Schema({ description : String, creator : { name : String, - email : String + email : String, + isVerified : { + type : Boolean, + default : false + }, + allowNotifications : { + type : Boolean, + default : true + } }, created : { type : Date, @@ -17,18 +25,38 @@ var EventSchema = new Schema({ updated : Date, title : String, dates : [Date], - emails : [String], + emails : [{ + email : String + }], + comments : [{ + id : Schema.Types.ObjectId, + author : { + name : String + }, + content : String, + created : { + type: Date, + default : Date.now + } + }], location: String, participants : [{ id : Schema.Types.ObjectId, name : String, dates : [Boolean] }], - comments : [{ - id : Schema.Types.ObjectId, - author : String, - comment : String, - }] + isClosed : { + type : Boolean, + default : false + }, + isDeleted : { + type : Boolean, + default : false + }, + __private : { + verificationCode : String, + deleteCode : String, + } }); var model = mongoose.model('Event', EventSchema); diff --git a/api/event/index.js b/api/event/index.js index 113e39091..5b009466b 100644 --- a/api/event/index.js +++ b/api/event/index.js @@ -6,8 +6,26 @@ var debug = require('debug')('api/event/index'); router.post('/', controller.create); router.get('/:id', controller.show); -router.post('/:id/participant', controller.createParticipant); router.put('/:id', controller.update); +router.delete('/:id', controller.delete); +router.delete('/:id/code/:code', controller.delete); +router.get('/:id/code/:code', controller.verifyEmail); + +router.post('/:id/comment', controller.createComment); +router.delete('/:id/comment/:cid', controller.deleteComment); + +router.post('/:id/participant', controller.createParticipant); router.delete('/:id/participant/:pid', controller.deleteParticipant); router.put('/:id/participant/:pid', controller.updateParticipant); + +router.all('/*', function(req, res){ + if (req.event){ + var event = req.event.toObject(); + delete event['__private']; + res.json(event); + } else { + res.status(204).end(); + } +}); + module.exports = router; diff --git a/app.js b/app.js index c1af74b99..b9f538904 100644 --- a/app.js +++ b/app.js @@ -6,20 +6,22 @@ var bodyParser = require('body-parser'); var debug = require('debug')('app'); var mongoose = require('mongoose'); -var app = express(); +var app = module.exports = express(); + +require('./config/main')(app); +require('./helpers/notification.helper'); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); -// uncomment after placing your favicon in /public app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); -require('./config/routes')(app) +require('./config/routes')(app); var dbname = 'myapp'; mongoose.connect('mongodb://localhost/' + dbname); @@ -28,6 +30,3 @@ db.on('error', debug.bind(debug, 'connection error')); db.once('open', function(){ debug('connected successfully to db: ' + dbname); }); - - -module.exports = app; diff --git a/bin/www b/bin/www index 38a3b7aa6..2afd59ae2 100755 --- a/bin/www +++ b/bin/www @@ -1,9 +1,7 @@ #!/usr/bin/env node -var debug = require('debug')('rallly_app'); +var debug = require('debug')('www'); var app = require('../app'); -app.set('port', process.env.PORT || 3000); - var server = app.listen(app.get('port'), function() { debug('Express server listening on port ' + server.address().port); }); diff --git a/bower.json b/bower.json index c42dae78c..62c05b37b 100644 --- a/bower.json +++ b/bower.json @@ -23,6 +23,8 @@ "ngFx": "~1.0.5", "angular-modal": "~0.4.0", "jquery": "~2.1.3", - "angular-hotkeys": "~0.2.2" + "angular-hotkeys": "~0.2.2", + "ng-tags-input": "2.1.1", + "angular-animate": "~1.3.10" } } diff --git a/communicator.js b/communicator.js new file mode 100644 index 000000000..dd2011a15 --- /dev/null +++ b/communicator.js @@ -0,0 +1,10 @@ +var util = require('util'); +var EventEmitter = require('events').EventEmitter; + +function Communicator(){ + EventEmitter.call(this); +} + +util.inherits(Communicator, EventEmitter); + +module.exports = new Communicator(); diff --git a/config/main.js b/config/main.js new file mode 100644 index 000000000..a638f6e44 --- /dev/null +++ b/config/main.js @@ -0,0 +1,8 @@ +module.exports = function(app){ + app.set('port', 3000); + app.set('siteUrl', 'http://localhost'); + app.set('absoluteUrl', function(path){ + return app.get('siteUrl') + ':' + app.get('port') + '/' + path; + }); + app.set('mandrillAPIKey','suEKoTkjRDeYie0Wd16Knw'); +}; diff --git a/config/main.sample.js b/config/main.sample.js new file mode 100644 index 000000000..497e34534 --- /dev/null +++ b/config/main.sample.js @@ -0,0 +1,8 @@ +module.exports = function(app){ + app.set('port', 3000); + app.set('siteUrl', 'http://localhost'); + app.set('absoluteUrl', function(path){ + return app.get('siteUrl') + ':' + app.get('port') + '/' + path; + }); + app.set('mandrillAPIKey',''); // Put your Mandrill API Key Here. +}; diff --git a/config/routes.js b/config/routes.js index 75686efad..7507956bb 100644 --- a/config/routes.js +++ b/config/routes.js @@ -5,8 +5,8 @@ module.exports = function(app) { // All undefined asset or api routes should return a 404 // app.route('/:url(api|auth|components|app|bower_components|assets)/*') // .get(errors[404]); - - // All other routes should redirect to the index.html + + // All other routes should redirect to the app.route('/*') .get(function(req, res) { res.render('index.ejs'); diff --git a/helpers/notification.helper.js b/helpers/notification.helper.js new file mode 100644 index 000000000..9c927e63f --- /dev/null +++ b/helpers/notification.helper.js @@ -0,0 +1,196 @@ +/* + Email Notifications Helper Class +*/ + +var app = require('../app'); +var communicator = require('../communicator'); +var debug = require('debug')('notification'); +var mandrill = require('mandrill-api'); +var mandrill_client = new mandrill.Mandrill(app.get('mandrillAPIKey')); + +communicator.on('event:create', function(event){ + if (!event.creator.allowNotifications && event.isClosed) return; + sendEmailConfirmation(event); + sendInvites(event); +}); + +communicator.on('event:update:creator.email', function(event, oldEvent){ + if (!event.creator.allowNotifications && event.isClosed) return; + verifyEmail(event); +}); + +communicator.on('event:delete', function(event){ + deleteConfirmation(event); +}); + +// Send confirmation to the creator of the event with a link to verify the creators email address +var sendEmailConfirmation = function(event){ + var message = { + subject : "Rallly: " + event.title + " - Verify Email Address", + from_email : 'noreply@rallly.co', + from_name : 'Rallly', + to: [{ + 'email': event.creator.email + }], + global_merge_vars : [{ + 'name' : 'TITLE', + 'content' : 'Your event ' + event.title + ' has been created successfully.' + }, { + 'name' : 'MESSAGE', + 'content' : 'Hi ' + event.creator.name + ',

' + + 'An email has been sent to each participant with a link to the event.

' + + 'Important: To continue receiving email notifications about this event, please click the button below to verify your email address.' + }, { + 'name' : 'BUTTONTEXT', + 'content' : 'Verify Email Address' + }, { + 'name' : 'BUTTONLINK', + 'content' : app.get('absoluteUrl')('verify/'+event._id+'/code/'+event.__private.verificationCode) + }] + } + mandrill_client.messages.sendTemplate({ + message : message, + template_name : 'rallly-standard', + async : true, + template_content : [] + }, mandrillSuccessHandler, mandrillErrorHandler); +} + +// Send an invite to all participants of the evnet +var sendInvites = function(event){ + event.emails.forEach(function(item){ + var toEmail = item.email; + var message = { + subject : "Rallly: " + event.title, + from_email : 'noreply@rallly.co', + from_name : 'Rallly', + to: [{ + 'email': toEmail + }], + headers : { + 'Reply-To' : event.creator.email + }, + global_merge_vars : [{ + 'name' : 'TITLE', + 'content' : event.creator.name + ' has invited you to participate in their event: ' + event.title, }, { + 'name' : 'MESSAGE', + 'content' : 'Rallly is a free collaborative scheduling service that lets you and your friends vote on a date to host an event. ' + + 'Click on the button below to visit the event page and vote on the dates that best suit you. ' + }, { + 'name' : 'BUTTONTEXT', + 'content' : 'View Event' + }, { + 'name' : 'BUTTONLINK', + 'content' : app.get('absoluteUrl')(event._id) + }] + } + mandrill_client.messages.sendTemplate({ + message : message, + template_name : 'rallly-standard', + async : true, + template_content : [] + }, mandrillSuccessHandler, mandrillErrorHandler); + }) +} + +// This message is sent when the user want to verify an email address after the event has been created +var verifyEmail = function(event){ + var message = { + subject : "Rallly: " + event.title + " - Verify Email Address", + from_email : 'noreply@rallly.co', + from_name : 'Rallly', + to: [{ + 'email': event.creator.email + }], + global_merge_vars : [{ + 'name' : 'TITLE', + 'content' : 'Please verify your email address to receive updates from this event.' + }, { + 'name' : 'MESSAGE', + 'content' : 'Hi ' + event.creator.name + ',

' + + 'If you would like to receive email updates from this event, please click on the button below to verify your email address.' + }, { + 'name' : 'BUTTONTEXT', + 'content' : 'Verify Email Address' + }, { + 'name' : 'BUTTONLINK', + 'content' : app.get('absoluteUrl')('verify/'+event._id+'/code/'+event.__private.verificationCode) + }] + } + mandrill_client.messages.sendTemplate({ + message : message, + template_name : 'rallly-standard', + async : true, + template_content : [] + }, mandrillSuccessHandler, mandrillErrorHandler); +} + +var sendUpdate = function(event){ + var message = { + subject : "Rallly: " + event.title + " - Verify Email Address", + from_email : 'noreply@rallly.co', + from_name : 'Rallly', + to: [{ + 'email': event.creator.email + }], + global_merge_vars : [{ + 'name' : 'Name', + 'content' : event.creator.name + }, { + 'name' : 'Event', + 'content' : event.title + }, { + 'name' : 'VerifyUrl', + 'content' : app.get('absoluteUrl')('verify/'+event._id+'/code/'+event.creator.verificationCode) + }] + } + mandrill_client.messages.sendTemplate({ + message : message, + template_name : 'rallly-standard', + async : true, + template_content : [] + }, mandrillSuccessHandler, mandrillErrorHandler); +} + +var deleteConfirmation = function(event){ + var message = { + subject : "Rallly: " + event.title + " - Delete Request", + from_email : 'noreply@rallly.co', + from_name : 'Rallly', + to: [{ + 'email': event.creator.email + }], + global_merge_vars : [{ + 'name' : 'TITLE', + 'content' : 'Are you sure you want to delete ' + event.title + '?' + }, { + 'name' : 'MESSAGE', + 'content' : 'Hi ' + event.creator.name + ',

' + + 'A request has been made to delete this event. If you would like to delete it click the button below. If you did not make this request, please ignore this email.' + }, { + 'name' : 'BUTTONTEXT', + 'content' : 'Delete Event' + }, { + 'name' : 'BUTTONLINK', + 'content' : app.get('absoluteUrl')('delete/'+event._id+'/code/'+event.__private.deleteCode) + }] + } + mandrill_client.messages.sendTemplate({ + message : message, + template_name : 'rallly-standard', + async : true, + template_content : [] + }, mandrillSuccessHandler, mandrillErrorHandler); +} + +var mandrillSuccessHandler = function(result){ + if (result.length == 1) { + debug('Email sent to ' + result[0].email); + } else { + debug('Email sent to ' + result.length + ' recipients'); + } +} + +var mandrillErrorHandler = function(e){ + debug('A mandrill error occurred: ' + e.name + ' - ' + e.message); +} diff --git a/package.json b/package.json index 7bbe37f2a..e79c6aa38 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "scripts": { - "start": "DEBUG=myapp nodemon ./bin/www" + "start": "DEBUG=eventapi nodemon ./bin/www" }, "dependencies": { "amdefine": "^0.1.0", @@ -14,6 +14,7 @@ "ejs": "^1.0.0", "express": "~4.9.0", "jade": "^1.6.0", + "mandrill-api": "^1.0.41", "mongoose": "^3.8.19", "mongoose-shortid": "^0.4.2", "morgan": "~1.3.0", diff --git a/public/build/app.js b/public/build/app.js index b1769d16d..ed7fa4e56 100644 --- a/public/build/app.js +++ b/public/build/app.js @@ -1,2 +1,2 @@ -angular.module("rallly",["ui.router","ngResource","ngFx","btford.modal"]).config(["$stateProvider","$urlRouterProvider","$locationProvider",function(e,t,n){n.html5Mode(!0),t.otherwise("/notfound"),e.state("index",{url:"/",templateUrl:"templates/home.html",controller:"HomeCtrl"}).state("newevent",{url:"/new",templateUrl:"templates/newevent.html",controller:"NewEventCtrl"}).state("about",{url:"/about",templateUrl:"templates/about.html",controller:"AboutCtrl"}).state("notfound",{url:"/notfound",templateUrl:"templates/notfound.html"}).state("event",{url:"/:id",templateUrl:"templates/event.html",controller:"EventCtrl"}).state("editevent",{url:"/:id/edit",templateUrl:"templates/editevent.html",controller:"EditEventCtrl"})}]).factory("Event",["$resource",function(e){return e("/api/event/:id",{id:"@_id"},{update:{method:"PUT"}})}]).factory("Participant",["$resource",function(e){return e("/api/event/:id/participant/:pid",{id:"@_id",pid:"@pid"},{update:{method:"PUT"}})}]).factory("Title",function(){return{set:function(e){document.title=e}}}),angular.module("rallly").run(["$templateCache",function(e){e.put("templates/about.html",'
\n

What is Rallly?

\n
Rallly is a collaborative scheduling service that makes deciding on a date fast and easy.
\n

Hi, I\'m Luke!

\n

\n I created Rallly as side project to help me learn some new technologies. I decided to publish it because I thought other people might find it useful. Rallly is a completely free service. In fact it is even open source. You can look at the latest source code on Github.\n

\n
\n'),e.put("templates/confirmmodal.html",'
\n\n
\n
{{modal.title}}
\n
\n {{modal.message}}\n
\n
\n \n \n
\n
\n'),e.put("templates/editevent.html",'
\n
\n\n
Edit Event
\n
\n You can makes changes to your existing event by changing the fields in the form below.\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n
\n \n \n Done\n
\n\n
\n\n
\n\n
\n'),e.put("templates/event.html",'
\n
\n
\n
\n \n
\n
\n
\n {{event.title}}\n
\n
\n Created by {{event.creator.name}} • {{event.created | elapsed}}\n
\n
\n
\n \n
\n
\n
{{event.description}}
\n \n\n
\n
\n
\n
\n
\n
\n'),e.put("templates/home.html",'
\n
\n \n
\n
\n Schedule an Event\n
\n
\n Want to host an event but can’t decide on a date? Click on the button below to start!\n
\n \n
\n'),e.put("templates/newevent.html",'
\n
\n\n
Schedule a New Event
\n
\n Fill in the form below to create your event and share it with your friends and colleagues.\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n \n
\n\n
\n
\n
\n
\n
\n
\n \n
\n
Event Created
\n
\n Your event has been created successfully! Make sure you visit the page yourself and fill in the poll.\n
\n
\n
\n
\n \n GO\n
\n
\n
\n'),e.put("templates/notfound.html","

Error 404

\n

Not Found

\n"),e.put("templates/directives/poll.html",'
\n
\n {{event.participants.length}} participants\n
\n
\n
\n
\n {{date | date: \'EEE\'}}\n
\n
\n {{date | date: \'d\'}}\n
\n
\n {{date | date : \'MMM\'}}\n
\n {{selectedDate($index)}}\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n \n \n {{participant.name}}\n
\n
\n \n \n \n
\n
\n
\n Edit\n Delete\n \n Cancel\n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n'),e.put("templates/directives/eventForm/dateForm.html",'
\n
Choose Dates
\n \n
\n
\n
\n
\n \n \n You need to select a few dates\n \n
\n\n
\n
\n
\n
\n'),e.put("templates/directives/eventForm/eventForm.html",'
\n
Event Details
\n
\n
\n
\n
\n
\n \n \n {{errors.title}}\n \n \n
\n
\n
\n
\n \n \n {{errors.location}}\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n'),e.put("templates/directives/eventForm/participantsForm.html",'
\n
Invite Participants
\n
\n
\n
\n
\n \n \n
\n
\n
\n\n'),e.put("templates/directives/eventForm/userForm.html",'
\n
Your Details
\n
\n
\n
\n
\n
\n \n \n {{errors.name}}\n \n \n
\n
\n
\n
\n \n \n {{errors.email}}\n \n \n
\n
\n
\n
\n')}]),angular.module("rallly").controller("AboutCtrl",["Title",function(e){e.set("About Rallly")}]),angular.module("rallly").controller("EditEventCtrl",["$scope","$http","$state","$timeout","Event","ConfirmModal","Title",function(e,t,n,i,a,o,l){var r=n.params.id;e.event=a.get({id:r},function(){l.set("Edit: "+e.event.title),e.master=angular.copy(e.event)},function(){n.go("notfound")}),e.undoChanges=function(){e.event=angular.copy(e.master),resetDates()},e.didChange=function(){return JSON.stringify(e.master)!=JSON.stringify(e.event)},e.didChangeDates=function(){return JSON.stringify(e.master.dates)!=JSON.stringify(e.event.dates)},e.submit=function(){if(e.form.$valid)if(e.didChangeDates()){new o({title:"Hold up!",message:"Changing the dates will reset all entries by the participants. Are you sure you want to do that?",confirmText:"Yes, I'm sure",isDestructive:!0,confirm:function(){e.event.participants=[],s()}})}else s();else{new o({title:"Not so fast!",message:"Make sure you fill in all the required fields and try again.",cancelText:"OK"})}};var s=function(){a.update({id:r},e.event,function(){new o({title:"Event Updated",message:"Your changes have been saved successfully!",confirmText:"Back to Event Page",cancelText:"Stay here",confirm:function(){n.go("event",{id:e.event._id})}});e.master=angular.copy(e.event),e.didSave=i(function(){e.didSave=!1},2e3)})}}]),angular.module("rallly").controller("EventCtrl",["$scope","$http","$state","Title","Event",function(e,t,n,i,a){var o=n.params.id;e.participant={},e.event=a.get({id:o},function(){i.set(e.event.title),e.eventUrl=n.href("event",{id:e.event._id},{absolute:!0})},function(){n.go("notfound")}),e.editEvent=function(){n.go("editevent",{id:e.event._id})}}]).directive("poll",["Event","Participant","ConfirmModal",function(e,t,n){return{restrict:"A",templateUrl:"templates/directives/poll.html",scope:{event:"=",participant:"="},link:function(e){e.defaults=[];var i=[];e.delete=function(i){var a=new n({title:"Delete "+i.name+"?",message:"Are you sure you want to remove "+i.name+" from the poll?",confirmText:"Yes - delete",cancelText:"No - nevermind",isDestructive:!0,confirm:function(){t.remove({id:e.event._id,pid:i._id},function(t){e.event=t})}});a.show()},e.isTopDate=function(e){for(var t=i[e],n=0;nt)return!1;return!0},e.selectedDate=function(t){i[t]=0;for(var n=0;nt.getTime()?!0:!1}),i.$setViewValue(t,e)});var a=function(e,n){if(e&&n&&e.length!=n.length){for(var i=[],a=0;a30?"on "+e("date")(t,"MMMM d"):s>1?s+" days ago":1==s?"1 day ago":r>1?r+" hours ago":1==r?"an hour ago":l>1?l+" minutes ago":1==l?"a minute ago":"a few seconds ago"}}}]),angular.module("rallly").factory("ConfirmModal",["btfModal",function(e){return function(t){var n;n=e({templateUrl:"templates/confirmmodal.html",controllerAs:"modal",controller:function(){this.title=t.title,this.message=t.message,this.confirm=t.confirm?function(){t.confirm(),n.deactivate()}:!1,this.cancel=n.deactivate,this.confirmText=t.confirmText||"Confirm",this.cancelText=t.cancelText||"Cancel",this.isDestructive=t.isDestructive}}),n.activate(),this.destroy=function(){n.deactivate()}}}]); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiLCJ0ZW1wbGF0ZXMuanMiLCJjb250cm9sbGVycy9hYm91dC5jb250cm9sbGVyLmpzIiwiY29udHJvbGxlcnMvZWRpdGV2ZW50LmNvbnRyb2xsZXIuanMiLCJjb250cm9sbGVycy9ldmVudC5jb250cm9sbGVyLmpzIiwiY29udHJvbGxlcnMvaG9tZS5jb250cm9sbGVyLmpzIiwiY29udHJvbGxlcnMvbmF2aWdhdGlvbi5jb250cm9sbGVyLmpzIiwiY29udHJvbGxlcnMvbmV3ZXZlbnQuY29udHJvbGxlci5qcyIsImRpcmVjdGl2ZXMvYmFja0ltZy5kaXJlY3RpdmUuanMiLCJkaXJlY3RpdmVzL2RhdGVwaWNrZXIuZGlyZWN0aXZlLmpzIiwiZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZS5qcyIsImZpbHRlcnMvZWxhcHNlZC5maWx0ZXIuanMiLCJzZXJ2aWNlcy9tb2RhbC5zZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFFBQUEsT0FBQSxVQUFBLFlBQUEsYUFBQSxPQUFBLGlCQUNBLFFBQUEsaUJBQUEscUJBQUEsb0JBQUEsU0FBQSxFQUFBLEVBQUEsR0FDQSxFQUFBLFdBQUEsR0FDQSxFQUFBLFVBQUEsYUFDQSxFQUNBLE1BQUEsU0FDQSxJQUFBLElBQ0EsWUFBQSxzQkFDQSxXQUFBLGFBRUEsTUFBQSxZQUNBLElBQUEsT0FDQSxZQUFBLDBCQUNBLFdBQUEsaUJBRUEsTUFBQSxTQUNBLElBQUEsU0FDQSxZQUFBLHVCQUNBLFdBQUEsY0FFQSxNQUFBLFlBQ0EsSUFBQSxZQUNBLFlBQUEsNEJBRUEsTUFBQSxTQUNBLElBQUEsT0FDQSxZQUFBLHVCQUNBLFdBQUEsY0FFQSxNQUFBLGFBQ0EsSUFBQSxZQUNBLFlBQUEsMkJBQ0EsV0FBQSxxQkFHQSxRQUFBLFNBQUEsWUFBQSxTQUFBLEdBQ0EsTUFBQSxHQUFBLGtCQUFBLEdBQUEsU0FDQSxRQUFBLE9BQUEsWUFHQSxRQUFBLGVBQUEsWUFBQSxTQUFBLEdBQ0EsTUFBQSxHQUFBLG1DQUFBLEdBQUEsT0FBQSxJQUFBLFNBQ0EsUUFBQSxPQUFBLFlBR0EsUUFBQSxRQUFBLFdBQ0EsT0FDQSxJQUFBLFNBQUEsR0FDQSxTQUFBLE1BQUEsTUNoREEsUUFBQSxPQUFBLFVBQUEsS0FBQSxpQkFBQSxTQUFBLEdBQUEsRUFBQSxJQUFBLHVCQUFBLDhnQkFDQSxFQUFBLElBQUEsOEJBQUEsdWdCQUNBLEVBQUEsSUFBQSwyQkFBQSxrbkNBQ0EsRUFBQSxJQUFBLHVCQUFBLGl0Q0FDQSxFQUFBLElBQUEsc0JBQUEsMlpBQ0EsRUFBQSxJQUFBLDBCQUFBLGlxREFDQSxFQUFBLElBQUEsMEJBQUEsNENBQ0EsRUFBQSxJQUFBLGlDQUFBLGtnSEFDQSxFQUFBLElBQUEsK0NBQUEsc3FDQUNBLEVBQUEsSUFBQSxnREFBQSxra0RBQ0EsRUFBQSxJQUFBLHVEQUFBLGdjQUNBLEVBQUEsSUFBQSwrQ0FBQSwwdkNDWEEsUUFBQSxPQUFBLFVBQ0EsV0FBQSxhQUFBLFFBQUEsU0FBQSxHQUNBLEVBQUEsSUFBQSxtQkNGQSxRQUFBLE9BQUEsVUFDQSxXQUFBLGlCQUFBLFNBQUEsUUFBQSxTQUFBLFdBQUEsUUFBQSxlQUFBLFFBQUEsU0FBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxHQUNBLEdBQUEsR0FBQSxFQUFBLE9BQUEsRUFDQSxHQUFBLE1BQUEsRUFBQSxLQUFBLEdBQUEsR0FBQSxXQUNBLEVBQUEsSUFBQSxTQUFBLEVBQUEsTUFBQSxPQUNBLEVBQUEsT0FBQSxRQUFBLEtBQUEsRUFBQSxRQUNBLFdBQ0EsRUFBQSxHQUFBLGNBRUEsRUFBQSxZQUFBLFdBQ0EsRUFBQSxNQUFBLFFBQUEsS0FBQSxFQUFBLFFBQ0EsY0FFQSxFQUFBLFVBQUEsV0FDQSxNQUFBLE1BQUEsVUFBQSxFQUFBLFNBQUEsS0FBQSxVQUFBLEVBQUEsUUFFQSxFQUFBLGVBQUEsV0FDQSxNQUFBLE1BQUEsVUFBQSxFQUFBLE9BQUEsUUFBQSxLQUFBLFVBQUEsRUFBQSxNQUFBLFFBRUEsRUFBQSxPQUFBLFdBQ0EsR0FBQSxFQUFBLEtBQUEsT0FDQSxHQUFBLEVBQUEsaUJBQ0EsQ0FBQSxHQUFBLElBQ0EsTUFBQSxXQUNBLFFBQUEsbUdBQ0EsWUFBQSxnQkFDQSxlQUFBLEVBQ0EsUUFBQSxXQUNBLEVBQUEsTUFBQSxnQkFDQSxXQUtBLFNBR0EsQ0FBQSxHQUFBLElBQ0EsTUFBQSxlQUNBLFFBQUEsK0RBQ0EsV0FBQSxRQUlBLElBQUEsR0FBQSxXQUNBLEVBQUEsUUFDQSxHQUFBLEdBQ0EsRUFBQSxNQUNBLFdBQ0EsR0FBQSxJQUNBLE1BQUEsZ0JBQ0EsUUFBQSw2Q0FDQSxZQUFBLHFCQUNBLFdBQUEsWUFDQSxRQUFBLFdBQ0EsRUFBQSxHQUFBLFNBQUEsR0FBQSxFQUFBLE1BQUEsUUFHQSxHQUFBLE9BQUEsUUFBQSxLQUFBLEVBQUEsT0FDQSxFQUFBLFFBQUEsRUFBQSxXQUNBLEVBQUEsU0FBQSxHQUNBLFdDN0RBLFFBQUEsT0FBQSxVQUNBLFdBQUEsYUFBQSxTQUFBLFFBQUEsU0FBQSxRQUFBLFFBQUEsU0FBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEdBQ0EsR0FBQSxHQUFBLEVBQUEsT0FBQSxFQUNBLEdBQUEsZUFDQSxFQUFBLE1BQUEsRUFBQSxLQUFBLEdBQUEsR0FBQSxXQUNBLEVBQUEsSUFBQSxFQUFBLE1BQUEsT0FDQSxFQUFBLFNBQUEsRUFBQSxLQUFBLFNBQ0EsR0FBQSxFQUFBLE1BQUEsTUFFQSxVQUFBLEtBRUEsV0FDQSxFQUFBLEdBQUEsY0FHQSxFQUFBLFVBQUEsV0FDQSxFQUFBLEdBQUEsYUFBQSxHQUFBLEVBQUEsTUFBQSxVQUlBLFVBQUEsUUFBQSxRQUFBLGNBQUEsZUFBQSxTQUFBLEVBQUEsRUFBQSxHQUNBLE9BQ0EsU0FBQSxJQUNBLFlBQUEsaUNBQ0EsT0FDQSxNQUFBLElBQ0EsWUFBQSxLQUVBLEtBQUEsU0FBQSxHQUNBLEVBQUEsV0FDQSxJQUFBLEtBQ0EsR0FBQSxPQUFBLFNBQUEsR0FDQSxHQUFBLEdBQUEsR0FBQSxJQUNBLE1BQUEsVUFBQSxFQUFBLEtBQUEsSUFDQSxRQUFBLG1DQUFBLEVBQUEsS0FBQSxrQkFDQSxZQUFBLGVBQ0EsV0FBQSxpQkFDQSxlQUFBLEVBQ0EsUUFBQSxXQUNBLEVBQUEsUUFBQSxHQUFBLEVBQUEsTUFBQSxJQUFBLElBQUEsRUFBQSxLQUFBLFNBQUEsR0FDQSxFQUFBLE1BQUEsTUFJQSxHQUFBLFFBRUEsRUFBQSxVQUFBLFNBQUEsR0FFQSxJQUFBLEdBREEsR0FBQSxFQUFBLEdBQ0EsRUFBQSxFQUFBLEVBQUEsRUFBQSxPQUFBLElBQ0EsR0FBQSxFQUFBLEdBQUEsRUFBQSxPQUFBLENBRUEsUUFBQSxHQUVBLEVBQUEsYUFBQSxTQUFBLEdBQ0EsRUFBQSxHQUFBLENBQ0EsS0FBQSxHQUFBLEdBQUEsRUFBQSxFQUFBLEVBQUEsTUFBQSxhQUFBLE9BQUEsSUFDQSxFQUFBLE1BQUEsYUFBQSxHQUFBLE1BQUEsSUFBQSxFQUFBLElBRUEsT0FBQSxHQUFBLElBRUEsRUFBQSxPQUFBLFNBQUEsR0FDQSxFQUFBLFFBQ0EsR0FBQSxFQUFBLE1BQUEsSUFDQSxJQUFBLEVBQUEsS0FDQSxJQUVBLEVBQUEsS0FBQSxTQUFBLEdBQ0EsRUFBQSxTQUFBLEVBQUEsTUFBQSxhQUFBLFFBQUEsSUFBQSxRQUFBLEtBQUEsSUFFQSxFQUFBLE9BQUEsU0FBQSxHQUNBLEVBQUEsTUFBQSxhQUFBLEdBQUEsRUFBQSxTQUFBLElBRUEsRUFBQSxLQUFBLFNBQUEsR0FDQSxHQUFBLEVBQUEsUUFBQSxPQUFBLENBQ0EsR0FBQSxHQUFBLEdBQUEsR0FBQSxFQUNBLEdBQUEsT0FBQSxHQUFBLEVBQUEsTUFBQSxLQUFBLFNBQUEsR0FDQSxFQUFBLE1BQUEsRUFDQSxFQUFBLGlCQUVBLEVBQUEsUUFBQSxzQkMvRUEsUUFBQSxPQUFBLFVBQ0EsV0FBQSxZQUFBLFNBQUEsU0FBQSxRQUFBLFNBQUEsRUFBQSxFQUFBLEdBQ0EsRUFBQSxJQUFBLHFDQUVBLEVBQUEsU0FBQSxXQUNBLEVBQUEsR0FBQSxnQkNMQSxRQUFBLE9BQUEsVUFDQSxXQUFBLGtCQUFBLFNBQUEsWUFBQSxTQUFBLEVBQUEsR0FDQSxFQUFBLFNBQUEsU0FBQSxHQUNBLE1BQUEsR0FBQSxRQUFBLEdBQ0EsR0FFQSxNQ05BLFFBQUEsT0FBQSxVQUNBLFdBQUEsZ0JBQUEsU0FBQSxRQUFBLFNBQUEsUUFBQSxlQUFBLFNBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxHQUVBLEVBQUEsTUFBQSx1QkFDQSxFQUFBLFlBQUEsNEZBRUEsSUFBQSxHQUFBLFNBQUEsRUFBQSxHQUNBLEdBQUEsSUFDQSxNQUFBLEdBQUEsZUFDQSxRQUFBLEdBQUEsK0RBQ0EsV0FBQSxPQUlBLEdBQUEsT0FBQSxXQUNBLEVBQUEsS0FBQSxPQUNBLEVBQUEsS0FBQSxhQUFBLEVBQUEsT0FDQSxRQUFBLFNBQUEsR0FDQSxFQUFBLE1BQUEsRUFDQSxFQUFBLFNBQUEsRUFBQSxLQUFBLFNBQ0EsR0FBQSxFQUFBLE1BQUEsTUFFQSxVQUFBLE1BR0EsTUFBQSxXQUNBLEVBQUEsU0FBQSxxRUFHQSxLQUlBLEVBQUEsV0FBQSxRQ2pDQSxRQUFBLE9BQUEsVUFDQSxVQUFBLFVBQUEsV0FDQSxNQUFBLFVBQUEsRUFBQSxFQUFBLEdBQ0EsR0FBQSxHQUFBLEVBQUEsT0FDQSxHQUFBLEtBQ0EsbUJBQUEsZUFBQSxFQUFBLGFDTEEsUUFBQSxPQUFBLFVBQ0EsVUFBQSxhQUFBLFdBQ0EsT0FDQSxTQUFBLElBQ0EsUUFBQSxVQUNBLE9BQ0EsTUFBQSxXQUNBLFFBQUEsS0FFQSxLQUFBLFNBQUEsRUFBQSxFQUFBLEVBQUEsR0FDQSxFQUFBLE1BQUEsRUFBQSxVQUNBLFFBQUEsUUFBQSxHQUFBLFlBQ0EsV0FBQSxFQUNBLGdCQUFBLElBRUEsR0FBQSxhQUFBLFNBQUEsR0FDQSxHQUFBLEdBQUEsRUFBQSxLQUNBLEdBQUEsS0FBQSxTQUFBLEVBQUEsR0FDQSxNQUFBLEdBQUEsVUFBQSxFQUFBLFdBQUEsR0FDQSxJQUVBLEVBQUEsY0FBQSxFQUFBLElBR0EsSUFBQSxHQUFBLFNBQUEsRUFBQSxHQUNBLEdBQUEsR0FBQSxHQUFBLEVBQUEsUUFBQSxFQUFBLE9BQUEsQ0FFQSxJQUFBLEdBREEsTUFDQSxFQUFBLEVBQUEsRUFBQSxFQUFBLE9BQUEsSUFDQSxFQUFBLEtBQUEsR0FBQSxNQUFBLEVBQUEsSUFFQSxTQUFBLFFBQUEsR0FBQSxXQUFBLFdBQUEsSUFFQSxHQUFBLGlCQUFBLFFBQUEsR0FFQSxFQUFBLFFBQUEsRUFBQSxZQUNBLEVBQUEsUUFBQSxVQUFBLFNBQUEsR0FDQSxHQUFBLEdBQUEsRUFBQSxNQUFBLFFBQUEsRUFDQSxHQUFBLE1BQUEsT0FBQSxFQUFBLElBR0EsRUFBQSxZQUFBLFNBQUEsU0FBQSxHQUNBLE1BQUEsSUFBQSxHQUFBLEVBQUEsUUFHQSxHQUZBLE9DMUNBLFFBQUEsT0FBQSxVQUNBLFFBQUEsYUFBQSxXQUNBLEtBQUEsWUFBQSxTQUFBLEVBQUEsR0FDQSxNQUFBLEdBQUEsU0FBQSxFQUFBLGVBQ0EsRUFBQSxRQUFBLEVBQUEsY0FDQSxFQUFBLFVBQUEsRUFBQSxnQkFDQSxLQUdBLFVBQUEsWUFBQSxhQUFBLFNBQUEsR0FDQSxPQUNBLE9BQ0EsTUFBQSxJQUNBLEtBQUEsS0FFQSxZQUFBLCtDQUNBLEtBQUEsU0FBQSxHQUNBLEVBQUEsVUFFQSxFQUFBLFdBQUEsc0NBRUEsRUFBQSxpQkFBQSxtQkFBQSxTQUFBLEdBQ0EsRUFBQSxPQUFBLEtBQUEsRUFBQSxZQUFBLEVBQUEsVUFHQSxFQUFBLGlCQUFBLG9CQUFBLFNBQUEsR0FDQSxFQUFBLE9BQUEsTUFBQSxFQUFBLFlBQUEsRUFBQSxnQkFLQSxVQUFBLGFBQUEsYUFBQSxTQUFBLEdBQ0EsT0FDQSxPQUNBLE1BQUEsSUFDQSxLQUFBLEtBRUEsWUFBQSxnREFDQSxLQUFBLFNBQUEsR0FDQSxFQUFBLFVBRUEsRUFBQSxpQkFBQSxvQkFBQSxTQUFBLEdBQ0EsRUFBQSxPQUFBLE1BQUEsRUFBQSxZQUFBLEVBQUEsV0FHQSxFQUFBLGlCQUFBLHVCQUFBLFNBQUEsR0FDQSxFQUFBLE9BQUEsU0FBQSxFQUFBLFlBQUEsRUFBQSxtQkFNQSxVQUFBLFdBQUEsV0FDQSxPQUNBLE9BQ0EsTUFBQSxJQUNBLEtBQUEsS0FFQSxZQUFBLGtEQUdBLFVBQUEsbUJBQUEsV0FDQSxPQUNBLE9BQ0EsTUFBQSxJQUNBLEtBQUEsS0FFQSxZQUFBLDBEQ25FQSxRQUFBLE9BQUEsVUFDQSxPQUFBLFdBQUEsVUFBQSxTQUFBLEdBQ0EsTUFBQSxVQUFBLEdBQ0EsR0FBQSxFQUFBLENBQ0EsR0FBQSxHQUFBLEtBQUEsTUFBQSxHQUNBLEdBQUEsR0FBQSxPQUFBLFVBQ0EsRUFBQSxFQUFBLEVBQ0EsRUFBQSxLQUFBLE1BQUEsRUFBQSxLQUNBLEVBQUEsS0FBQSxNQUFBLEVBQUEsSUFDQSxFQUFBLEtBQUEsTUFBQSxFQUFBLElBQ0EsRUFBQSxLQUFBLE1BQUEsRUFBQSxHQUNBLE9BQUEsR0FBQSxHQUNBLE1BQUEsRUFBQSxRQUFBLEVBQUEsVUFDQSxFQUFBLEVBQ0EsRUFBQSxZQUNBLEdBQUEsRUFDQSxZQUNBLEVBQUEsRUFDQSxFQUFBLGFBQ0EsR0FBQSxFQUNBLGNBQ0EsRUFBQSxFQUNBLEVBQUEsZUFDQSxHQUFBLEVBQ0EsZUFFQSx5QkMxQkEsUUFBQSxPQUFBLFVBQ0EsUUFBQSxnQkFBQSxXQUFBLFNBQUEsR0FFQSxNQUFBLFVBQUEsR0FDQSxHQUFBLEVBQ0EsR0FBQSxHQUNBLFlBQUEsOEJBQ0EsYUFBQSxRQUNBLFdBQUEsV0FDQSxLQUFBLE1BQUEsRUFBQSxNQUNBLEtBQUEsUUFBQSxFQUFBLFFBQ0EsS0FBQSxRQUFBLEVBQUEsUUFBQSxXQUFBLEVBQUEsVUFBQSxFQUFBLGVBQUEsRUFDQSxLQUFBLE9BQUEsRUFBQSxXQUNBLEtBQUEsWUFBQSxFQUFBLGFBQUEsVUFDQSxLQUFBLFdBQUEsRUFBQSxZQUFBLFNBQ0EsS0FBQSxjQUFBLEVBQUEsaUJBR0EsRUFBQSxXQUVBLEtBQUEsUUFBQSxXQUNBLEVBQUEiLCJmaWxlIjoicHVibGljL2J1aWxkL2FwcC5qcyIsInNvdXJjZXNDb250ZW50IjpbImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknLCBbJ3VpLnJvdXRlcicsJ25nUmVzb3VyY2UnLCduZ0Z4JywnYnRmb3JkLm1vZGFsJ10pXG4gICAgLmNvbmZpZyhmdW5jdGlvbigkc3RhdGVQcm92aWRlciwgJHVybFJvdXRlclByb3ZpZGVyLCAkbG9jYXRpb25Qcm92aWRlcil7XG4gICAgICAgICRsb2NhdGlvblByb3ZpZGVyLmh0bWw1TW9kZSh0cnVlKTtcbiAgICAgICAgJHVybFJvdXRlclByb3ZpZGVyLm90aGVyd2lzZShcIi9ub3Rmb3VuZFwiKVxuICAgICAgICAkc3RhdGVQcm92aWRlclxuICAgICAgICAuc3RhdGUoJ2luZGV4Jyx7XG4gICAgICAgICAgICB1cmwgOiAnLycsXG4gICAgICAgICAgICB0ZW1wbGF0ZVVybCA6ICd0ZW1wbGF0ZXMvaG9tZS5odG1sJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgOiAnSG9tZUN0cmwnXG4gICAgICAgIH0pXG4gICAgICAgIC5zdGF0ZSgnbmV3ZXZlbnQnLHtcbiAgICAgICAgICAgIHVybCA6ICcvbmV3JyxcbiAgICAgICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9uZXdldmVudC5odG1sJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgOiAnTmV3RXZlbnRDdHJsJ1xuICAgICAgICB9KVxuICAgICAgICAuc3RhdGUoJ2Fib3V0Jywge1xuICAgICAgICAgICAgdXJsIDogJy9hYm91dCcsXG4gICAgICAgICAgICB0ZW1wbGF0ZVVybCA6ICd0ZW1wbGF0ZXMvYWJvdXQuaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyIDogJ0Fib3V0Q3RybCdcbiAgICAgICAgfSlcbiAgICAgICAgLnN0YXRlKCdub3Rmb3VuZCcsIHtcbiAgICAgICAgICAgIHVybCA6ICcvbm90Zm91bmQnLFxuICAgICAgICAgICAgdGVtcGxhdGVVcmwgOiAndGVtcGxhdGVzL25vdGZvdW5kLmh0bWwnXG4gICAgICAgIH0pXG4gICAgICAgIC5zdGF0ZSgnZXZlbnQnLHtcbiAgICAgICAgICAgIHVybCA6ICcvOmlkJyxcbiAgICAgICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9ldmVudC5odG1sJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgOiAnRXZlbnRDdHJsJ1xuICAgICAgICB9KVxuICAgICAgICAuc3RhdGUoJ2VkaXRldmVudCcsIHtcbiAgICAgICAgICAgIHVybDogJy86aWQvZWRpdCcsXG4gICAgICAgICAgICB0ZW1wbGF0ZVVybCA6ICd0ZW1wbGF0ZXMvZWRpdGV2ZW50Lmh0bWwnLFxuICAgICAgICAgICAgY29udHJvbGxlciA6ICdFZGl0RXZlbnRDdHJsJ1xuICAgICAgICB9KVxuICAgIH0pXG4gICAgLmZhY3RvcnkoJ0V2ZW50JywgZnVuY3Rpb24oJHJlc291cmNlKXtcbiAgICAgICAgcmV0dXJuICRyZXNvdXJjZSgnL2FwaS9ldmVudC86aWQnLCB7IGlkIDogJ0BfaWQnIH0sIHtcbiAgICAgICAgICAgICd1cGRhdGUnIDogeyBtZXRob2QgOiAnUFVUJyB9XG4gICAgICAgIH0pO1xuICAgIH0pXG4gICAgLmZhY3RvcnkoJ1BhcnRpY2lwYW50JywgZnVuY3Rpb24oJHJlc291cmNlKXtcbiAgICAgICAgcmV0dXJuICRyZXNvdXJjZSgnL2FwaS9ldmVudC86aWQvcGFydGljaXBhbnQvOnBpZCcsIHsgaWQ6ICdAX2lkJywgcGlkIDogJ0BwaWQnfSwge1xuICAgICAgICAgICAgJ3VwZGF0ZScgOiB7IG1ldGhvZCA6ICdQVVQnIH1cbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICAuZmFjdG9yeSgnVGl0bGUnLCBmdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2V0IDogZnVuY3Rpb24odGl0bGUpe1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnRpdGxlID0gdGl0bGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiIsImFuZ3VsYXIubW9kdWxlKFwicmFsbGx5XCIpLnJ1bihbXCIkdGVtcGxhdGVDYWNoZVwiLCBmdW5jdGlvbigkdGVtcGxhdGVDYWNoZSkgeyR0ZW1wbGF0ZUNhY2hlLnB1dChcInRlbXBsYXRlcy9hYm91dC5odG1sXCIsXCI8ZGl2IHN0eWxlPVxcXCJtYXgtd2lkdGg6NjAwcHhcXFwiPlxcbiAgICA8aDE+V2hhdCBpcyBSYWxsbHk/PC9oMT5cXG4gICAgPGRpdiBjbGFzcz1cXFwicmwtcGFnZS1kZXNjXFxcIj5SYWxsbHkgaXMgYSBjb2xsYWJvcmF0aXZlIHNjaGVkdWxpbmcgc2VydmljZSB0aGF0IG1ha2VzIGRlY2lkaW5nIG9uIGEgZGF0ZSBmYXN0IGFuZCBlYXN5LjwvZGl2PlxcbiAgICA8aDI+SGksIElcXCdtIEx1a2UhPC9oMj5cXG4gICAgPHA+XFxuICAgICAgICBJIGNyZWF0ZWQgUmFsbGx5IGFzIHNpZGUgcHJvamVjdCB0byBoZWxwIG1lIGxlYXJuIHNvbWUgbmV3IHRlY2hub2xvZ2llcy4gSSBkZWNpZGVkIHRvIHB1Ymxpc2ggaXQgYmVjYXVzZSBJIHRob3VnaHQgb3RoZXIgcGVvcGxlIG1pZ2h0IGZpbmQgaXQgdXNlZnVsLiBSYWxsbHkgaXMgYSBjb21wbGV0ZWx5IGZyZWUgc2VydmljZS4gSW4gZmFjdCBpdCBpcyBldmVuIG9wZW4gc291cmNlLiBZb3UgY2FuIGxvb2sgYXQgdGhlIGxhdGVzdCBzb3VyY2UgY29kZSBvbiBHaXRodWIuXFxuICAgIDwvcD5cXG48L2Rpdj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvY29uZmlybW1vZGFsLmh0bWxcIixcIjxkaXYgY2xhc3M9XFxcInJsLW1vZGFsLW92ZXJsYXlcXFwiIG5nLWNsaWNrPVxcXCJtb2RhbC5jYW5jZWwoKVxcXCI+PC9kaXY+XFxuXFxuPGRpdiBjbGFzcz1cXFwicmwtbW9kYWxcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJybC1tb2RhbC10aXRsZVxcXCI+e3ttb2RhbC50aXRsZX19PC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJsLW1vZGFsLW1lc3NhZ2VcXFwiPlxcbiAgICAgICAge3ttb2RhbC5tZXNzYWdlfX1cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJsLW1vZGFsLWFjdGlvbnNcXFwiPlxcbiAgICAgICAgPGJ1dHRvbiBuZy1jbGljaz1cXFwibW9kYWwuY29uZmlybSgpXFxcIiBuZy1zaG93PVxcXCJtb2RhbC5jb25maXJtXFxcIiBjbGFzcz1cXFwiYnRuXFxcIiBuZy1jbGFzcz1cXFwie2RhbmdlciA6IG1vZGFsLmlzRGVzdHJ1Y3RpdmV9XFxcIj57e21vZGFsLmNvbmZpcm1UZXh0fX08L2J1dHRvbj5cXG4gICAgICAgIDxidXR0b24gbmctY2xpY2s9XFxcIm1vZGFsLmNhbmNlbCgpXFxcIiAgY2xhc3M9XFxcImJ0blxcXCI+e3ttb2RhbC5jYW5jZWxUZXh0fX08L2J1dHRvbj5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuXCIpO1xuJHRlbXBsYXRlQ2FjaGUucHV0KFwidGVtcGxhdGVzL2VkaXRldmVudC5odG1sXCIsXCI8ZGl2IG5nLXNob3c9XFxcImV2ZW50Ll9pZFxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImJveFxcXCI+XFxuXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJib3gtdGl0bGVcXFwiPkVkaXQgRXZlbnQ8L2Rpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImJveC1kZXNjcmlwdGlvblxcXCI+XFxuICAgICAgICAgICAgWW91IGNhbiBtYWtlcyBjaGFuZ2VzIHRvIHlvdXIgZXhpc3RpbmcgZXZlbnQgYnkgY2hhbmdpbmcgdGhlIGZpZWxkcyBpbiB0aGUgZm9ybSBiZWxvdy5cXG4gICAgICAgIDwvZGl2PlxcblxcbiAgICAgICAgPGZvcm0gbm92YWxpZGF0ZSBuYW1lPVxcXCJmb3JtXFxcIiBuZy1zdWJtaXQ9XFxcInN1Ym1pdCgpXFxcIj5cXG5cXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cXFwiYm94LXNlY3Rpb25cXFwiIHVzZXItZm9ybSBmb3JtPVxcXCJmb3JtXFxcIiBldmVudD1cXFwiZXZlbnRcXFwiPlxcblxcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cXG5cXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cXFwiYm94LXNlY3Rpb25cXFwiIGV2ZW50LWZvcm0gZm9ybT1cXFwiZm9ybVxcXCIgZXZlbnQ9XFxcImV2ZW50XFxcIj5cXG5cXG4gICAgICAgICAgICA8L3NlY3Rpb24+XFxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XFxcImJveC1zZWN0aW9uXFxcIiBkYXRlLWZvcm0gZm9ybT1cXFwiZm9ybVxcXCIgZXZlbnQ9XFxcImV2ZW50XFxcIj5cXG5cXG4gICAgICAgICAgICA8L3NlY3Rpb24+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiYm94LWNvbnRyb2xzIGJveC1ib3R0b20tc3RpY2t5XFxcIj5cXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVxcXCJzdWJtaXRcXFwiIG5nLXNob3c9XFxcImRpZENoYW5nZSgpXFxcIiBjbGFzcz1cXFwiYnRuIGJ0bi1wcmltYXJ5XFxcIiBuZy1jbGFzcz1cXFwie2Rpc2FibGVkIDogIWRpZENoYW5nZSgpfVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICBTYXZlIENoYW5nZXNcXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gbmctY2xpY2s9XFxcInVuZG9DaGFuZ2VzKClcXFwiIGNsYXNzPVxcXCJidG5cXFwiIG5nLXNob3c9XFxcImRpZENoYW5nZSgpXFxcIj5VbmRvIENoYW5nZXM8L2J1dHRvbj5cXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cXFwiL3t7ZXZlbnQuX2lkfX1cXFwiIGNsYXNzPVxcXCJidG5cXFwiIG5nLWhpZGU9XFxcImRpZENoYW5nZSgpXFxcIj5Eb25lPC9hPlxcbiAgICAgICAgICAgIDwvZGl2PlxcblxcbiAgICAgICAgPC9mb3JtPlxcblxcbiAgICA8L2Rpdj5cXG5cXG48L2Rpdj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvZXZlbnQuaHRtbFwiLFwiPGRpdiBuZy1zaG93PVxcXCJldmVudC5faWRcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJib3ggXFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImV2ZW50LWhlYWRlclxcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiYXZhdGFyXFxcIj5cXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XFxcIi9pbWFnZXMvZXZlbnRpY29uLnBuZ1xcXCIgd2lkdGg9XFxcIjMyICBcXFwiIC8+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZGV0YWlsc1xcXCI+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInRpdGxlXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIHt7ZXZlbnQudGl0bGV9fVxcbiAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwic3VidGl0bGVcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlZCBieSA8YSBocmVmPVxcXCJtYWlsdG86e3tldmVudC5jcmVhdG9yLmVtYWlsfX1cXFwiPnt7ZXZlbnQuY3JlYXRvci5uYW1lfX08L2E+ICZidWxsOyB7e2V2ZW50LmNyZWF0ZWQgfCBlbGFwc2VkfX1cXG4gICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiYWN0aW9uc1xcXCI+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XFxcImJ0blxcXCIgbmctY2xpY2s9XFxcImVkaXRFdmVudCgpXFxcIj5FZGl0IEV2ZW50PC9idXR0b24+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImJveC1zaWRlLXN0aWNreSBldmVudC1kZXNjcmlwdGlvblxcXCIgbmctc2hvdz1cXFwiZXZlbnQuZGVzY3JpcHRpb25cXFwiPnt7ZXZlbnQuZGVzY3JpcHRpb259fTwvZGl2PlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiYm94LWJvdHRvbS1zdGlja3kgZXZlbnQtbG9jYXRpb25cXFwiIG5nLXNob3c9XFxcImV2ZW50LmxvY2F0aW9uXFxcIj5cXG4gICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy9sb2NhdGlvbi5wbmdcXFwiIHdpZHRoPVxcXCIxOFxcXCIgLz48YSBocmVmPVxcXCJodHRwOi8vZ29vZ2xlLmNvbS9tYXBzP3E9e3tldmVudC5sb2NhdGlvbn19XFxcIiB0YXJnZXQ9XFxcIl9ibGFua1xcXCI+e3tldmVudC5sb2NhdGlvbn19PC9hPlxcbiAgICAgICAgPC9kaXY+XFxuXFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJib3ggYm94LXgtc2Nyb2xsXFxcIj5cXG4gICAgICAgIDxkaXYgcG9sbCBldmVudD1cXFwiZXZlbnRcXFwiIGNsYXNzPVxcXCJwb2xsXFxcIiBwYXJ0aWNpcGFudD1cXFwicGFydGljaXBhbnRcXFwiPlxcbiAgICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbjwvZGl2PlxcblwiKTtcbiR0ZW1wbGF0ZUNhY2hlLnB1dChcInRlbXBsYXRlcy9ob21lLmh0bWxcIixcIjxkaXYgY2xhc3M9XFxcInBhZ2UtcGxhY2Vob2xkZXJcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJpbWFnZVxcXCI+XFxuICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy9tYXJrX2xhcmdlLnBuZ1xcXCIgd2lkdGg9XFxcIjY3XFxcIiAvPlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwidGl0bGVcXFwiPlxcbiAgICAgICAgU2NoZWR1bGUgYW4gRXZlbnRcXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImNvbnRlbnRcXFwiPlxcbiAgICAgICAgV2FudCB0byBob3N0IGFuIGV2ZW50IGJ1dCBjYW7igJl0IGRlY2lkZSBvbiBhIGRhdGU/IENsaWNrIG9uIHRoZSBidXR0b24gYmVsb3cgdG8gc3RhcnQhXFxuICAgIDwvZGl2PlxcbiAgICA8YnV0dG9uIG5nLWNsaWNrPVxcXCJuZXdFdmVudCgpXFxcIiBjbGFzcz1cXFwiYnRuXFxcIj5TY2hlZHVsZSBOZXcgRXZlbnQ8L2J1dHRvbj5cXG48L2Rpdj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvbmV3ZXZlbnQuaHRtbFwiLFwiPGRpdiBuZy1oaWRlPVxcXCJldmVudFVybFxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImJveFxcXCIgbmctY2xhc3M9XFxcIntcXCdhbmltYXRlZCBzaGFrZVxcJzogZm9ybS4kc3VibWl0dGVkICYmIGZvcm0uJGludmFsaWQgfVxcXCI+XFxuXFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJib3gtdGl0bGVcXFwiPlNjaGVkdWxlIGEgTmV3IEV2ZW50PC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJib3gtZGVzY3JpcHRpb25cXFwiPlxcbiAgICAgICAgICAgIEZpbGwgaW4gdGhlIGZvcm0gYmVsb3cgdG8gY3JlYXRlIHlvdXIgZXZlbnQgYW5kIHNoYXJlIGl0IHdpdGggeW91ciBmcmllbmRzIGFuZCBjb2xsZWFndWVzLlxcbiAgICAgICAgPC9kaXY+XFxuXFxuICAgICAgICA8Zm9ybSBub3ZhbGlkYXRlIG5hbWU9XFxcImZvcm1cXFwiIG5nLXN1Ym1pdD1cXFwic3VibWl0KClcXFwiPlxcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVxcXCJib3gtc2VjdGlvblxcXCIgdXNlci1mb3JtIGZvcm09XFxcImZvcm1cXFwiIGV2ZW50PVxcXCJldmVudFxcXCI+XFxuXFxuICAgICAgICAgICAgPC9zZWN0aW9uPlxcblxcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVxcXCJib3gtc2VjdGlvblxcXCIgZXZlbnQtZm9ybSBmb3JtPVxcXCJmb3JtXFxcIiBldmVudD1cXFwiZXZlbnRcXFwiPlxcblxcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cXG5cXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cXFwiYm94LXNlY3Rpb25cXFwiIGRhdGUtZm9ybSBmb3JtPVxcXCJmb3JtXFxcIiBldmVudD1cXFwiZXZlbnRcXFwiPlxcblxcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cXG5cXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cXFwiYm94LXNlY3Rpb25cXFwiIHBhcnRpY2lwYW50cy1mb3JtIGZvcm09XFxcImZvcm1cXFwiIGV2ZW50PVxcXCJldmVudFxcXCI+XFxuXFxuICAgICAgICAgICAgPC9zZWN0aW9uPlxcblxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImJveC1jb250cm9scyBib3gtYm90dG9tLXN0aWNreVxcXCI+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cXFwic3VibWl0XFxcIiBjbGFzcz1cXFwiYnRuIGJ0bi1wcmltYXJ5XFxcIj5DcmVhdGUgRXZlbnQ8L2J1dHRvbj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG5cXG4gICAgICAgIDwvZm9ybT5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuPGRpdiBuZy1zaG93PVxcXCJldmVudFVybFxcXCIgY2xhc3M9XFxcImJveCBmeC1mYWRlLXVwXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiYm94LW1lc3NhZ2VcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcIm1haW4taW1hZ2VcXFwiPlxcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy9zdWNjZXNzX2xhcmdlLnBuZ1xcXCIgd2lkdGg9XFxcIjEwMFxcXCIgLz5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwidGl0bGVcXFwiPkV2ZW50IENyZWF0ZWQ8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiY29udGVudFxcXCI+XFxuICAgICAgICBZb3VyIGV2ZW50IGhhcyBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5ISBNYWtlIHN1cmUgeW91IHZpc2l0IHRoZSBwYWdlIHlvdXJzZWxmIGFuZCBmaWxsIGluIHRoZSBwb2xsLlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWluaS1kaXZpZGVyXFxcIj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgPGlucHV0IHR5cGU9XFxcInRleHRcXFwiIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiIGRpc2FibGVkPVxcXCJ0cnVlXFxcIiB2YWx1ZT1cXFwie3tldmVudFVybH19XFxcIiAvPlxcbiAgICAgICAgPGEgaHJlZj1cXFwie3tldmVudFVybH19XFxcIiBjbGFzcz1cXFwiYnRuIGZvcm0tYnRuXFxcIj5HTzwvYT5cXG4gICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbjwvZGl2PlxcblwiKTtcbiR0ZW1wbGF0ZUNhY2hlLnB1dChcInRlbXBsYXRlcy9ub3Rmb3VuZC5odG1sXCIsXCI8aDE+RXJyb3IgNDA0PC9oMT5cXG48aDI+Tm90IEZvdW5kPC9oMj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvZGlyZWN0aXZlcy9wb2xsLmh0bWxcIixcIjxkaXYgY2xhc3M9XFxcInBvbGwtaGVhZGVyXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiaGVhZGVyIHBhcnRpY2lwYW50cy1oZWFkZXJcXFwiPlxcbiAgICAgICAge3tldmVudC5wYXJ0aWNpcGFudHMubGVuZ3RofX0gcGFydGljaXBhbnRzXFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJoZWFkZXIgZGF0ZS1oZWFkZXJcXFwiIG5nLXJlcGVhdD1cXFwiZGF0ZSBpbiBldmVudC5kYXRlc1xcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJkYXRpY29uXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJkb3dcXFwiPlxcbiAgICAgICAgICAgICAgICB7e2RhdGUgfCBkYXRlOiBcXCdFRUVcXCd9fVxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImRheVxcXCI+XFxuICAgICAgICAgICAgICAgIHt7ZGF0ZSB8IGRhdGU6IFxcJ2RcXCd9fVxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcIm1vbnRoXFxcIj5cXG4gICAgICAgICAgICAgICAge3tkYXRlIHwgZGF0ZSA6IFxcJ01NTVxcJ319XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImNvdW50XFxcIiBuZy1zaG93PVxcXCJzZWxlY3RlZERhdGUoJGluZGV4KVxcXCIgbmctY2xhc3M9e3RvcDppc1RvcERhdGUoJGluZGV4KX0+e3tzZWxlY3RlZERhdGUoJGluZGV4KX19PC9zcGFuPlxcbiAgICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJoZWFkZXIgYWN0aW9ucy1oZWFkZXJcXFwiPlxcblxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cXG48ZGl2IGNsYXNzPVxcXCJwb2xsLWJvZHlcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJwb2xsLWVudHJ5XFxcIiBuZy1yZXBlYXQ9XFxcInBhcnRpY2lwYW50IGluIGV2ZW50LnBhcnRpY2lwYW50c1xcXCI+XFxuICAgICAgICA8Zm9ybSBub3ZhbGlkYXRlIG5nLXN1Ym1pdD1cXFwidXBkYXRlKHBhcnRpY2lwYW50KTsgZWRpdE1vZGUgPSBmYWxzZVxcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY2VsbCBuYW1lLWNlbGxcXFwiPlxcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiYXZhdGFyIHN0eWxlLXt7JGluZGV4ICsgMX19XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL3VzZXIucG5nXFxcIiB3aWR0aD1cXFwiMTFcXFwiIC8+XFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgPGlucHV0IHJlcXVpcmVkIGF1dG9jb21wbGV0ZT1cXFwib2ZmXFxcIiB0eXBlPVxcXCJ0ZXh0XFxcIiBjbGFzcz1cXFwiZm9ybS1jb250cm9sXFxcIiBuZy1tb2RlbD1cXFwicGFydGljaXBhbnQubmFtZVxcXCIgbmctc2hvdz1cXFwiZWRpdE1vZGVcXFwiIHZhbHVlPVxcXCJwYXJ0aWNpcGFudC5uYW1lXFxcIi8+XFxuICAgICAgICAgICAgICAgIDxzcGFuIG5nLWhpZGU9XFxcImVkaXRNb2RlXFxcIiBjbGFzcz1cXFwibmFtZVxcXCIgbmctY2xpY2s9XFxcImVkaXRNb2RlID0gdHJ1ZTsgZWRpdChwYXJ0aWNpcGFudClcXFwiPnt7cGFydGljaXBhbnQubmFtZX19PC9zcGFuPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImNlbGwgdm90ZS1jZWxsXFxcIiBuZy1yZXBlYXQ9XFxcImRhdGUgaW4gZXZlbnQuZGF0ZXNcXFwiPlxcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy90aWNrQDJ4LnBuZ1xcXCIgIHdpZHRoPVxcXCIxNlxcXCIgbmctaGlkZT1cXFwiZWRpdE1vZGVcXFwiIG5nLWlmPVxcXCJwYXJ0aWNpcGFudC5kYXRlc1skaW5kZXhdXFxcIiAvPlxcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy9ub3BlQDJ4LnBuZ1xcXCIgd2lkdGg9XFxcIjhcXFwiIG5nLWhpZGU9XFxcImVkaXRNb2RlXFxcIiBuZy1pZj1cXFwiIXBhcnRpY2lwYW50LmRhdGVzWyRpbmRleF1cXFwiIC8+XFxuICAgICAgICAgICAgICAgIDxpbnB1dCBuZy1tb2RlbD1cXFwicGFydGljaXBhbnQuZGF0ZXNbJGluZGV4XVxcXCIgbmctc2hvdz1cXFwiZWRpdE1vZGVcXFwiIG5nLWZhbHNlLXZhbHVlPVxcXCJmYWxzZVxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIC8+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcIm92ZXJsYXlcXFwiIG5nLXNob3c9XFxcImVkaXRNb2RlXFxcIiBuZy1jbGljaz1cXFwicGFydGljaXBhbnQuZGF0ZXNbJGluZGV4XSA9ICFwYXJ0aWNpcGFudC5kYXRlc1skaW5kZXhdXFxcIj48L2Rpdj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjZWxsIGFjdGlvbi1jZWxsXFxcIj5cXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cXFwiI1xcXCIgbmctaGlkZT1cXFwiZWRpdE1vZGVcXFwiIG5nLWNsaWNrPVxcXCJlZGl0TW9kZSA9IHRydWU7IGVkaXQocGFydGljaXBhbnQpXFxcIiBjbGFzcz1cXFwiYnRuIGhvdmVyXFxcIj5FZGl0PC9hPlxcbiAgICAgICAgICAgICAgICA8YSBocmVmPVxcXCIjXFxcIiBuZy1oaWRlPVxcXCJlZGl0TW9kZVxcXCIgbmctY2xpY2s9XFxcImRlbGV0ZShwYXJ0aWNpcGFudClcXFwiIGNsYXNzPVxcXCJidG4gZGFuZ2VyIGhvdmVyXFxcIj5EZWxldGU8L2E+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gbmctc2hvdz1cXFwiZWRpdE1vZGVcXFwiIHR5cGU9XFxcInN1Ym1pdFxcXCIgY2xhc3M9XFxcImJ0blxcXCI+U2F2ZTwvYnV0dG9uPlxcbiAgICAgICAgICAgICAgICA8YSBocmVmPVxcXCIjXFxcIiBuZy1zaG93PVxcXCJlZGl0TW9kZVxcXCIgbmctY2xpY2s9XFxcImVkaXRNb2RlID0gZmFsc2U7IGNhbmNlbCgkaW5kZXgpXFxcIiAgY2xhc3M9XFxcImJ0blxcXCI+Q2FuY2VsPC9hPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9mb3JtPlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicG9sbC1lbnRyeSBoaWdobGlnaHRcXFwiPlxcbiAgICAgICAgPGZvcm0gbm92YWxpZGF0ZSBuYW1lPVxcXCJmb3JtbmV3XFxcIiBuZy1zdWJtaXQ9XFxcInNhdmUocGFydGljaXBhbnQpXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJjZWxsIG5hbWUtY2VsbFxcXCI+XFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJhdmF0YXIgc3R5bGUte3twYXJ0aWNpcGFudC5zdHlsZX19XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL3VzZXIucG5nXFxcIiB3aWR0aD1cXFwiMTFcXFwiIC8+XFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgPGlucHV0IGF1dG9jb21wbGV0ZT1cXFwib2ZmXFxcIiBuYW1lPVxcXCJ1c2VybmFtZVxcXCIgdHlwZT1cXFwidGV4dFxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCIgcGxhY2Vob2xkZXI9XFxcIllvdXIgbmFtZS4uLlxcXCIgbmctbW9kZWw9XFxcInBhcnRpY2lwYW50Lm5hbWVcXFwiIHJlcXVpcmVkIHZhbHVlPVxcXCJwYXJ0aWNpcGFudC5uYW1lXFxcIi8+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY2VsbCB2b3RlLWNlbGxcXFwiIG5nLXJlcGVhdD1cXFwiZGF0ZSBpbiBldmVudC5kYXRlc1xcXCI+XFxuICAgICAgICAgICAgICAgIDxpbnB1dCBuZy1tb2RlbD1cXFwicGFydGljaXBhbnQuZGF0ZXNbJGluZGV4XVxcXCIgbmctZmFsc2UtdmFsdWU9XFxcImZhbHNlXFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgLz5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwib3ZlcmxheVxcXCIgbmctY2xpY2s9XFxcInBhcnRpY2lwYW50LmRhdGVzWyRpbmRleF0gPSAhcGFydGljaXBhbnQuZGF0ZXNbJGluZGV4XVxcXCI+PC9kaXY+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY2VsbCBhY3Rpb24tY2VsbFxcXCI+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cXFwic3VibWl0XFxcIiBuZy1jbGFzcz1cXFwieyBcXCdhbmltYXRlZCBzaGFrZVxcJyA6IGZvcm1uZXcuJHN1Ym1pdHRlZCAmJiBmb3JtbmV3LiRpbnZhbGlkICB9XFxcIiBjbGFzcz1cXFwiYnRuXFxcIj5TYXZlPC9idXR0b24+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Zvcm0+XFxuICAgIDwvZGl2PlxcbjwvZGl2PlxcblwiKTtcbiR0ZW1wbGF0ZUNhY2hlLnB1dChcInRlbXBsYXRlcy9kaXJlY3RpdmVzL2V2ZW50Rm9ybS9kYXRlRm9ybS5odG1sXCIsXCI8ZGl2IGNsYXNzPVxcXCJzZWN0aW9uLWRldGFpbHNcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzZWN0aW9uLXRpdGxlXFxcIj5DaG9vc2UgRGF0ZXM8L2Rpdj5cXG4gICAgPHVsIGNsYXNzPVxcXCJkYXRpY29uLWxpc3RcXFwiPlxcbiAgICAgICAgPGxpIG5nLXJlcGVhdD1cXFwiZGF0ZSBpbiBldmVudC5kYXRlc1xcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZGF0aWNvblxcXCI+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImRvd1xcXCI+XFxuICAgICAgICAgICAgICAgICAgICB7e2RhdGUgfCBkYXRlOiBcXCdFRUVcXCd9fVxcbiAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZGF5XFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIHt7ZGF0ZSB8IGRhdGU6IFxcJ2RcXCd9fVxcbiAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwibW9udGhcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAge3tkYXRlIHwgZGF0ZSA6IFxcJ01NTVxcJ319XFxuICAgICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZGVsZXRlXFxcIiBuZy1jbGljaz1cXFwiZGF0ZXBpY2tlci51bnNldERhdGUoZGF0ZSlcXFwiPjwvc3Bhbj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvbGk+XFxuICAgIDwvdWw+XFxuPC9kaXY+XFxuPGRpdiBjbGFzcz1cXFwic2VjdGlvbi1tYWluXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1yb3dcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cXFwiZW1haWxcXFwiPkNhbGVuZGFyPC9sYWJlbD5cXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZm9ybS1lcnJvclxcXCIgbmctc2hvdz1cXFwiKGZvcm0uZGF0ZXBpY2tlci4kZGlydHkgfHwgZm9ybS4kc3VibWl0dGVkKSAmJiBmb3JtLmRhdGVwaWNrZXIuJGVycm9yLnJlcXVpcmVkXFxcIj5cXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XFxcIi9pbWFnZXMvZXJyb3IucG5nXFxcIiB3aWR0aD1cXFwiMTRcXFwiIC8+IFlvdSBuZWVkIHRvIHNlbGVjdCBhIGZldyBkYXRlc1xcbiAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICA8ZGl2IGRhdGVwaWNrZXIgcmVxdWlyZWQgbmFtZT1cXFwiZGF0ZXBpY2tlclxcXCIgY29udHJvbD1cXFwiZGF0ZXBpY2tlclxcXCIgbmctbW9kZWw9XFxcImV2ZW50LmRhdGVzXFxcIj5cXG5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvZGlyZWN0aXZlcy9ldmVudEZvcm0vZXZlbnRGb3JtLmh0bWxcIixcIjxkaXYgY2xhc3M9XFxcInNlY3Rpb24tZGV0YWlsc1xcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInNlY3Rpb24tdGl0bGVcXFwiPkV2ZW50IERldGFpbHM8L2Rpdj5cXG48L2Rpdj5cXG48ZGl2IGNsYXNzPVxcXCJzZWN0aW9uLW1haW5cXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLXJvd1xcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWNvbFxcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XFxcInRpdGxlXFxcIj5UaXRsZTwvbGFiZWw+XFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJmb3JtLWVycm9yXFxcIiBuZy1zaG93PVxcXCIoZm9ybS50aXRsZS4kdG91Y2hlZCB8fCBmb3JtLiRzdWJtaXR0ZWQpICYmIGVycm9ycy50aXRsZVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy9lcnJvci5wbmdcXFwiIHdpZHRoPVxcXCIxNFxcXCIgLz4ge3tlcnJvcnMudGl0bGV9fVxcbiAgICAgICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cXFwidGl0bGVcXFwiIG5hbWU9XFxcInRpdGxlXFxcIiBuZy1tYXhsZW5ndGg9XFxcIjMwXFxcIiByZXF1aXJlZCBuZy1tb2RlbD1cXFwiZXZlbnQudGl0bGVcXFwiIHR5cGU9XFxcInRleHRcXFwiIHBsYWNlaG9sZGVyPVxcXCJNb250aGx5IE1lZXR1cC4uLlxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbCBleHRlbmRcXFwiLz5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1jb2xcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXAgb3B0aW9uYWxcXFwiPlxcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVxcXCJsb2NhdGlvblxcXCI+TG9jYXRpb248L2xhYmVsPlxcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZm9ybS1lcnJvclxcXCIgbmctc2hvdz1cXFwiKGZvcm0ubG9jYXRpb24uJHRvdWNoZWQgfHwgZm9ybS4kc3VibWl0dGVkKSAmJiBlcnJvcnMubG9jYXRpb25cXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XFxcIi9pbWFnZXMvZXJyb3IucG5nXFxcIiB3aWR0aD1cXFwiMTRcXFwiIC8+IHt7ZXJyb3JzLmxvY2F0aW9ufX1cXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XFxcImxvY2F0aW9uXFxcIiBuYW1lPVxcXCJsb2NhdGlvblxcXCIgbmctbW9kZWw9XFxcImV2ZW50LmxvY2F0aW9uXFxcIiBuZy1tYXhsZW5ndGg9XFxcIjUwXFxcIiB0eXBlPVxcXCJ0ZXh0XFxcIiBwbGFjZWhvbGRlcj1cXFwiUmlja1xcJ3MgQ2FmZS4uLlxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbCBleHRlbmRcXFwiLz5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1yb3dcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cCBvcHRpb25hbFxcXCI+XFxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cXFwiZGVzY3JpcHRpb25cXFwiID5EZXNjcmlwdGlvbjwvbGFiZWw+XFxuICAgICAgICAgICAgPHRleHRhcmVhIGlkPVxcXCJkZXNjcmlwdGlvblxcXCIgbmFtZT1cXFwiZGVzY3JpcHRpb25cXFwiIG5nLW1vZGVsPVxcXCJldmVudC5kZXNjcmlwdGlvblxcXCIgcGxhY2Vob2xkZXI9XFxcIkVudGVyIERlc2NyaXB0aW9uLi4uXFxcIiBjbGFzcz1cXFwiZm9ybS1jb250cm9sIGV4dGVuZFxcXCI+PC90ZXh0YXJlYT5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvZGlyZWN0aXZlcy9ldmVudEZvcm0vcGFydGljaXBhbnRzRm9ybS5odG1sXCIsXCI8ZGl2IGNsYXNzPVxcXCJzZWN0aW9uLWRldGFpbHNcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzZWN0aW9uLXRpdGxlXFxcIj5JbnZpdGUgUGFydGljaXBhbnRzPC9kaXY+XFxuPC9kaXY+XFxuPGRpdiBjbGFzcz1cXFwic2VjdGlvbi1tYWluXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1yb3dcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cCBvcHRpb25hbFxcXCI+XFxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cXFwiZW1haWxzXFxcIj5QYXJ0aWNpcGFudFxcJ3MgRW1haWxzPC9sYWJlbD5cXG4gICAgICAgICAgICA8dGV4dGFyZWEgaWQ9XFxcImVtYWlsc1xcXCIgbmctbGlzdCBuZy1tb2RlbD1cXFwiZXZlbnQuZW1haWxzXFxcIiBwbGFjZWhvbGRlcj1cXFwiRW50ZXIgRW1haWxzLi4uXFxcIiBjbGFzcz1cXFwiZm9ybS1jb250cm9sIGV4dGVuZFxcXCI+PC90ZXh0YXJlYT5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cXG48L3NlY3Rpb24+XFxuXCIpO1xuJHRlbXBsYXRlQ2FjaGUucHV0KFwidGVtcGxhdGVzL2RpcmVjdGl2ZXMvZXZlbnRGb3JtL3VzZXJGb3JtLmh0bWxcIixcIjxkaXYgY2xhc3M9XFxcInNlY3Rpb24tZGV0YWlsc1xcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInNlY3Rpb24tdGl0bGVcXFwiPllvdXIgRGV0YWlsczwvZGl2PlxcbjwvZGl2PlxcbjxkaXYgY2xhc3M9XFxcInNlY3Rpb24tbWFpblxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tcm93XFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tY29sXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cXFwibmFtZVxcXCI+TmFtZTwvbGFiZWw+XFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJmb3JtLWVycm9yXFxcIiBuZy1zaG93PVxcXCIoZm9ybS5uYW1lLiR0b3VjaGVkIHx8IGZvcm0uJHN1Ym1pdHRlZCkgJiYgZXJyb3JzLm5hbWVcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XFxcIi9pbWFnZXMvZXJyb3IucG5nXFxcIiB3aWR0aD1cXFwiMTRcXFwiIC8+IHt7ZXJyb3JzLm5hbWV9fVxcbiAgICAgICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cXFwibmFtZVxcXCIgbmFtZT1cXFwibmFtZVxcXCIgbmctbWF4bGVuZ3RoPVxcXCIzMFxcXCIgcmVxdWlyZWQgbmctbW9kZWw9XFxcImV2ZW50LmNyZWF0b3IubmFtZVxcXCIgdHlwZT1cXFwidGV4dFxcXCIgcGxhY2Vob2xkZXI9XFxcIkpvaG4gRG9lLi4uXFxcIiBjbGFzcz1cXFwiZm9ybS1jb250cm9sIGV4dGVuZFxcXCIvPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWNvbFxcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1ncm91cFxcXCI+XFxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XFxcImVtYWlsXFxcIj5FbWFpbDwvbGFiZWw+XFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJmb3JtLWVycm9yXFxcIiBuZy1zaG93PVxcXCIoZm9ybS5lbWFpbC4kdG91Y2hlZCB8fCBmb3JtLiRzdWJtaXR0ZWQpICYmIGVycm9ycy5lbWFpbFxcXCI+XFxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy9lcnJvci5wbmdcXFwiIHdpZHRoPVxcXCIxNFxcXCIgLz4ge3tlcnJvcnMuZW1haWx9fVxcbiAgICAgICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVxcXCJlbWFpbFxcXCIgaWQ9XFxcImVtYWlsXFxcIiBuYW1lPVxcXCJlbWFpbFxcXCIgbmctcGF0dGVybj1cXFwiZW1haWxSZWdleFxcXCIgcmVxdWlyZWQgbmctbW9kZWw9XFxcImV2ZW50LmNyZWF0b3IuZW1haWxcXFwiIHBsYWNlaG9sZGVyPVxcXCJqb2huLmRvZUBlbWFpbC5jb20uLi5cXFwiIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2wgZXh0ZW5kXFxcIi8+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuXCIpO31dKTsiLCJhbmd1bGFyLm1vZHVsZSgncmFsbGx5Jylcbi5jb250cm9sbGVyKCdBYm91dEN0cmwnLCBmdW5jdGlvbihUaXRsZSl7XG4gICAgVGl0bGUuc2V0KCdBYm91dCBSYWxsbHknKVxufSk7XG4iLCJhbmd1bGFyLm1vZHVsZSgncmFsbGx5Jylcbi5jb250cm9sbGVyKCdFZGl0RXZlbnRDdHJsJywgZnVuY3Rpb24oJHNjb3BlLCAkaHR0cCwgJHN0YXRlLCAkdGltZW91dCwgRXZlbnQsIENvbmZpcm1Nb2RhbCwgVGl0bGUpe1xuICAgIHZhciBpZCA9ICRzdGF0ZS5wYXJhbXMuaWRcbiAgICAkc2NvcGUuZXZlbnQgPSBFdmVudC5nZXQoe2lkOmlkfSwgZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIFRpdGxlLnNldChcIkVkaXQ6IFwiICsgJHNjb3BlLmV2ZW50LnRpdGxlKTtcbiAgICAgICAgJHNjb3BlLm1hc3RlciA9IGFuZ3VsYXIuY29weSgkc2NvcGUuZXZlbnQpO1xuICAgIH0sIGZ1bmN0aW9uKGUpe1xuICAgICAgICAkc3RhdGUuZ28oJ25vdGZvdW5kJyk7XG4gICAgfSk7XG4gICAgJHNjb3BlLnVuZG9DaGFuZ2VzID0gZnVuY3Rpb24oKXtcbiAgICAgICAgJHNjb3BlLmV2ZW50ID0gYW5ndWxhci5jb3B5KCRzY29wZS5tYXN0ZXIpO1xuICAgICAgICByZXNldERhdGVzKCk7XG4gICAgfVxuICAgICRzY29wZS5kaWRDaGFuZ2UgPSBmdW5jdGlvbigpe1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoJHNjb3BlLm1hc3RlcikgIT0gSlNPTi5zdHJpbmdpZnkoJHNjb3BlLmV2ZW50KTtcbiAgICB9XG4gICAgJHNjb3BlLmRpZENoYW5nZURhdGVzID0gZnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KCRzY29wZS5tYXN0ZXIuZGF0ZXMpICE9IEpTT04uc3RyaW5naWZ5KCRzY29wZS5ldmVudC5kYXRlcyk7XG4gICAgfVxuICAgICRzY29wZS5zdWJtaXQgPSBmdW5jdGlvbigpe1xuICAgICAgICBpZiAoJHNjb3BlLmZvcm0uJHZhbGlkKXtcbiAgICAgICAgICAgIGlmICgkc2NvcGUuZGlkQ2hhbmdlRGF0ZXMoKSApe1xuICAgICAgICAgICAgICAgIHZhciBtb2RhbCA9IG5ldyBDb25maXJtTW9kYWwoe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZSA6ICdIb2xkIHVwIScsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgOiAnQ2hhbmdpbmcgdGhlIGRhdGVzIHdpbGwgcmVzZXQgYWxsIGVudHJpZXMgYnkgdGhlIHBhcnRpY2lwYW50cy4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRvIHRoYXQ/JyxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlybVRleHQgOiAnWWVzLCBJXFwnbSBzdXJlJyxcbiAgICAgICAgICAgICAgICAgICAgaXNEZXN0cnVjdGl2ZSA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpcm0gOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAgICAgJHNjb3BlLmV2ZW50LnBhcnRpY2lwYW50cyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBtb2RhbCA9IG5ldyBDb25maXJtTW9kYWwoe1xuICAgICAgICAgICAgICAgIHRpdGxlIDogJ05vdCBzbyBmYXN0IScsXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA6ICdNYWtlIHN1cmUgeW91IGZpbGwgaW4gYWxsIHRoZSByZXF1aXJlZCBmaWVsZHMgYW5kIHRyeSBhZ2Fpbi4nLFxuICAgICAgICAgICAgICAgIGNhbmNlbFRleHQgOiAnT0snXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIgdXBkYXRlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgRXZlbnQudXBkYXRlKHtcbiAgICAgICAgICAgIGlkIDogaWRcbiAgICAgICAgfSwgJHNjb3BlLmV2ZW50LFxuICAgICAgICBmdW5jdGlvbigpe1xuICAgICAgICAgICAgdmFyIG1vZGFsID0gbmV3IENvbmZpcm1Nb2RhbCh7XG4gICAgICAgICAgICAgICAgdGl0bGUgOiAnRXZlbnQgVXBkYXRlZCcsXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA6ICdZb3VyIGNoYW5nZXMgaGF2ZSBiZWVuIHNhdmVkIHN1Y2Nlc3NmdWxseSEnLFxuICAgICAgICAgICAgICAgIGNvbmZpcm1UZXh0IDogJ0JhY2sgdG8gRXZlbnQgUGFnZScsXG4gICAgICAgICAgICAgICAgY2FuY2VsVGV4dCA6ICdTdGF5IGhlcmUnLFxuICAgICAgICAgICAgICAgIGNvbmZpcm0gOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAkc3RhdGUuZ28oJ2V2ZW50Jyx7aWQgOiAkc2NvcGUuZXZlbnQuX2lkfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkc2NvcGUubWFzdGVyID0gYW5ndWxhci5jb3B5KCRzY29wZS5ldmVudCk7XG4gICAgICAgICAgICAkc2NvcGUuZGlkU2F2ZSA9ICR0aW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgJHNjb3BlLmRpZFNhdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIDIwMDApO1xuICAgICAgICB9KTtcbiAgICB9XG59KTtcbiIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLmNvbnRyb2xsZXIoJ0V2ZW50Q3RybCcsIGZ1bmN0aW9uKCRzY29wZSwgJGh0dHAsICRzdGF0ZSwgVGl0bGUsIEV2ZW50KXtcbiAgICB2YXIgaWQgPSAkc3RhdGUucGFyYW1zLmlkO1xuICAgICRzY29wZS5wYXJ0aWNpcGFudCA9IHt9O1xuICAgICRzY29wZS5ldmVudCA9IEV2ZW50LmdldCh7aWQ6aWR9LCBmdW5jdGlvbihkYXRhKXtcbiAgICAgICAgVGl0bGUuc2V0KCRzY29wZS5ldmVudC50aXRsZSk7XG4gICAgICAgICRzY29wZS5ldmVudFVybCA9ICRzdGF0ZS5ocmVmKCdldmVudCcsIHtcbiAgICAgICAgICAgIGlkOiAkc2NvcGUuZXZlbnQuX2lkXG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGFic29sdXRlIDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9LCBmdW5jdGlvbihlKXtcbiAgICAgICAgJHN0YXRlLmdvKCdub3Rmb3VuZCcpO1xuICAgIH0pO1xuXG4gICAgJHNjb3BlLmVkaXRFdmVudCA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICRzdGF0ZS5nbygnZWRpdGV2ZW50JywgeyBpZCA6ICRzY29wZS5ldmVudC5faWQgfSk7XG4gICAgfVxuXG59KVxuLmRpcmVjdGl2ZSgncG9sbCcsIGZ1bmN0aW9uKEV2ZW50LCBQYXJ0aWNpcGFudCwgQ29uZmlybU1vZGFsKXtcbiAgICByZXR1cm4ge1xuICAgICAgICByZXN0cmljdCA6ICdBJyxcbiAgICAgICAgdGVtcGxhdGVVcmwgOiAndGVtcGxhdGVzL2RpcmVjdGl2ZXMvcG9sbC5odG1sJyxcbiAgICAgICAgc2NvcGUgOiB7XG4gICAgICAgICAgICAnZXZlbnQnIDogJz0nLFxuICAgICAgICAgICAgJ3BhcnRpY2lwYW50JyA6ICc9J1xuICAgICAgICB9LFxuICAgICAgICBsaW5rIDogZnVuY3Rpb24oc2NvcGUsIGVsLCBhdHRycyl7XG4gICAgICAgICAgICBzY29wZS5kZWZhdWx0cyA9IFtdO1xuICAgICAgICAgICAgdmFyIGRhdGVzQ291bnQgPSBbXTtcbiAgICAgICAgICAgIHNjb3BlLmRlbGV0ZSA9IGZ1bmN0aW9uKHBhcnRpY2lwYW50KXtcbiAgICAgICAgICAgICAgICB2YXIgbW9kYWwgPSBuZXcgQ29uZmlybU1vZGFsKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgOiAnRGVsZXRlICcgKyBwYXJ0aWNpcGFudC5uYW1lICsgJz8nLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIDogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgJytwYXJ0aWNpcGFudC5uYW1lKycgZnJvbSB0aGUgcG9sbD8nLFxuICAgICAgICAgICAgICAgICAgICBjb25maXJtVGV4dCA6ICdZZXMgLSBkZWxldGUnLFxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0IDogJ05vIC0gbmV2ZXJtaW5kJyxcbiAgICAgICAgICAgICAgICAgICAgaXNEZXN0cnVjdGl2ZSA6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpcm0gOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAgICAgUGFydGljaXBhbnQucmVtb3ZlKHsgaWQgOiBzY29wZS5ldmVudC5faWQgLCBwaWQgOiBwYXJ0aWNpcGFudC5faWQgfSwgZnVuY3Rpb24oZXZlbnQpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1vZGFsLnNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLmlzVG9wRGF0ZSA9IGZ1bmN0aW9uKGluZGV4KXtcbiAgICAgICAgICAgICAgICB2YXIgY291bnQgPSBkYXRlc0NvdW50W2luZGV4XTtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGVzQ291bnQubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZXNDb3VudFtpXSA+IGNvdW50KSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2NvcGUuc2VsZWN0ZWREYXRlID0gZnVuY3Rpb24oaW5kZXgpe1xuICAgICAgICAgICAgICAgIGRhdGVzQ291bnRbaW5kZXhdID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjb3BlLmV2ZW50LnBhcnRpY2lwYW50cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzY29wZS5ldmVudC5wYXJ0aWNpcGFudHNbaV0uZGF0ZXNbaW5kZXhdKSBkYXRlc0NvdW50W2luZGV4XSsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZXNDb3VudFtpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY29wZS51cGRhdGUgPSBmdW5jdGlvbihwYXJ0aWNpcGFudCl7XG4gICAgICAgICAgICAgICAgUGFydGljaXBhbnQudXBkYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgaWQgOiBzY29wZS5ldmVudC5faWQsXG4gICAgICAgICAgICAgICAgICAgIHBpZCA6IHBhcnRpY2lwYW50Ll9pZFxuICAgICAgICAgICAgICAgIH0sIHBhcnRpY2lwYW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLmVkaXQgPSBmdW5jdGlvbihwYXJ0aWNpcGFudCl7XG4gICAgICAgICAgICAgICAgc2NvcGUuZGVmYXVsdHNbc2NvcGUuZXZlbnQucGFydGljaXBhbnRzLmluZGV4T2YocGFydGljaXBhbnQpXSA9IGFuZ3VsYXIuY29weShwYXJ0aWNpcGFudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY29wZS5jYW5jZWwgPSBmdW5jdGlvbihpbmRleCl7XG4gICAgICAgICAgICAgICAgc2NvcGUuZXZlbnQucGFydGljaXBhbnRzW2luZGV4XSA9IHNjb3BlLmRlZmF1bHRzW2luZGV4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLnNhdmUgPSBmdW5jdGlvbihwYXJ0aWNpcGFudCl7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLmZvcm1uZXcuJHZhbGlkKXtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnRpY2lwYW50ID0gbmV3IFBhcnRpY2lwYW50KHBhcnRpY2lwYW50KTtcbiAgICAgICAgICAgICAgICAgICAgcGFydGljaXBhbnQuJHNhdmUoe2lkOnNjb3BlLmV2ZW50Ll9pZH0sIGZ1bmN0aW9uKGV2ZW50KXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5wYXJ0aWNpcGFudCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuZm9ybW5ldy4kc2V0UHJpc3RpbmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59KTtcbiIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLmNvbnRyb2xsZXIoJ0hvbWVDdHJsJywgZnVuY3Rpb24oJHNjb3BlLCAkc3RhdGUsIFRpdGxlKXtcbiAgICBUaXRsZS5zZXQoJ1JhbGxseSAtIENvbGxhYm9yYXRpdmUgU2NoZWR1bGluZycpXG5cbiAgICAkc2NvcGUubmV3RXZlbnQgPSBmdW5jdGlvbigpe1xuICAgICAgICAkc3RhdGUuZ28oJ25ld2V2ZW50Jyk7XG4gICAgfVxufSk7XG4iLCJhbmd1bGFyLm1vZHVsZSgncmFsbGx5Jylcbi5jb250cm9sbGVyKCdOYXZpZ2F0aW9uQ3RybCcsIGZ1bmN0aW9uKCRzY29wZSwgJGxvY2F0aW9uKXtcbiAgICAkc2NvcGUuaXNBY3RpdmUgPSBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIGlmICgkbG9jYXRpb24ucGF0aCgpID09IHBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICB9XG59KVxuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uY29udHJvbGxlcignTmV3RXZlbnRDdHJsJywgZnVuY3Rpb24oJHNjb3BlLCAkaHR0cCwgJHN0YXRlLCBFdmVudCwgQ29uZmlybU1vZGFsKXtcblxuICAgICRzY29wZS50aXRsZSA9IFwiU2NoZWR1bGUgYSBOZXcgRXZlbnRcIjtcbiAgICAkc2NvcGUuZGVzY3JpcHRpb24gPSBcIkZpbGwgaW4gdGhlIGZvcm0gYmVsb3cgdG8gY3JlYXRlIHlvdXIgZXZlbnQgYW5kIHNoYXJlIGl0IHdpdGggeW91ciBmcmllbmRzIGFuZCBjb2xsZWFndWVzLlwiO1xuXG4gICAgdmFyIHNob3dNb2RhbCA9IGZ1bmN0aW9uKHRpdGxlLCBtZXNzYWdlKXtcbiAgICAgICAgdmFyIG1vZGFsID0gbmV3IENvbmZpcm1Nb2RhbCh7XG4gICAgICAgICAgICB0aXRsZSA6IHRpdGxlIHx8ICdOb3Qgc28gZmFzdCEnLFxuICAgICAgICAgICAgbWVzc2FnZSA6IG1lc3NhZ2UgfHwgJ01ha2Ugc3VyZSB5b3UgZmlsbCBpbiBhbGwgdGhlIHJlcXVpcmVkIGZpZWxkcyBhbmQgdHJ5IGFnYWluLicsXG4gICAgICAgICAgICBjYW5jZWxUZXh0IDogJ09LJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAkc2NvcGUuc3VibWl0ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgaWYgKCRzY29wZS5mb3JtLiR2YWxpZCl7XG4gICAgICAgICAgICAkaHR0cC5wb3N0KCcvYXBpL2V2ZW50JywgJHNjb3BlLmV2ZW50KVxuICAgICAgICAgICAgLnN1Y2Nlc3MoZnVuY3Rpb24oZXZlbnQsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKXtcbiAgICAgICAgICAgICAgICAkc2NvcGUuZXZlbnQgPSBldmVudDtcbiAgICAgICAgICAgICAgICAkc2NvcGUuZXZlbnRVcmwgPSAkc3RhdGUuaHJlZignZXZlbnQnLCB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAkc2NvcGUuZXZlbnQuX2lkXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBhYnNvbHV0ZSA6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZXJyb3IoZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBzaG93TW9kYWwoJ1VoIG9oIScsICdUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgeW91ciBldmVudC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2hvd01vZGFsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAkc2NvcGUuY2xlYXJEYXRlcyA9IG51bGxcbn0pO1xuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uZGlyZWN0aXZlKCdiYWNrSW1nJywgZnVuY3Rpb24oKXtcbiAgICByZXR1cm4gZnVuY3Rpb24oc2NvcGUsIGVsZW1lbnQsIGF0dHJzKXtcbiAgICAgICAgdmFyIHVybCA9IGF0dHJzLmJhY2tJbWc7XG4gICAgICAgIGVsZW1lbnQuY3NzKHtcbiAgICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgvaW1hZ2VzLycgKyB1cmwgKycucG5nKSdcbiAgICAgICAgfSk7XG4gICAgfTtcbn0pXG4iLCJhbmd1bGFyLm1vZHVsZSgncmFsbGx5Jylcbi5kaXJlY3RpdmUoJ2RhdGVwaWNrZXInLCBmdW5jdGlvbigpe1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlc3RyaWN0IDogJ0EnLFxuICAgICAgICByZXF1aXJlIDogJ25nTW9kZWwnLFxuICAgICAgICBzY29wZSA6IHtcbiAgICAgICAgICAgIG1vZGVsIDogJz1uZ01vZGVsJyxcbiAgICAgICAgICAgIGNvbnRyb2wgOiAnPSdcbiAgICAgICAgfSxcbiAgICAgICAgbGluayA6IGZ1bmN0aW9uKHNjb3BlLCBlbCwgYXR0cnMsIG5nTW9kZWwpe1xuICAgICAgICAgICAgc2NvcGUubW9kZWwgPSBzY29wZS5tb2RlbCB8fCBbXTtcbiAgICAgICAgICAgIGFuZ3VsYXIuZWxlbWVudChlbCkuZGF0ZXBpY2tlcih7XG4gICAgICAgICAgICAgICAgbXVsdGlkYXRlIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB0b2RheUhpZ2hsaWdodDogdHJ1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5vbignY2hhbmdlRGF0ZScsIGZ1bmN0aW9uKGUpe1xuICAgICAgICAgICAgICAgIHZhciBkYXRlcyA9IGUuZGF0ZXM7XG4gICAgICAgICAgICAgICAgZGF0ZXMuc29ydChmdW5jdGlvbihhLCBiKXtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEuZ2V0VGltZSgpID4gYi5nZXRUaW1lKCkpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbmdNb2RlbC4kc2V0Vmlld1ZhbHVlKGRhdGVzLCBlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB2YXIgdXBkYXRlID0gZnVuY3Rpb24obW9kZWxWYWx1ZSwgb2xkVmFsdWUpe1xuICAgICAgICAgICAgICAgIGlmICghbW9kZWxWYWx1ZSB8fCAhb2xkVmFsdWUgfHwgKG1vZGVsVmFsdWUubGVuZ3RoID09IG9sZFZhbHVlLmxlbmd0aCkpIHJldHVybjtcbiAgICAgICAgICAgICAgICB2YXIgZGF0ZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1vZGVsVmFsdWUubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBkYXRlcy5wdXNoKG5ldyBEYXRlKG1vZGVsVmFsdWVbaV0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYW5ndWxhci5lbGVtZW50KGVsKS5kYXRlcGlja2VyKCdzZXREYXRlcycsIGRhdGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLiR3YXRjaENvbGxlY3Rpb24oJ21vZGVsJywgdXBkYXRlKTtcblxuICAgICAgICAgICAgc2NvcGUuY29udHJvbCA9IHNjb3BlLmNvbnRyb2wgfHwge307XG4gICAgICAgICAgICBzY29wZS5jb250cm9sLnVuc2V0RGF0ZSA9IGZ1bmN0aW9uKGRhdGUpe1xuICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHNjb3BlLm1vZGVsLmluZGV4T2YoZGF0ZSk7XG4gICAgICAgICAgICAgICAgc2NvcGUubW9kZWwuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmdNb2RlbC4kdmFsaWRhdG9ycy5yZXF1aXJlZCA9IGZ1bmN0aW9uKG1vZGVsVmFsdWUsIHZpZXdWYWx1ZSl7XG4gICAgICAgICAgICAgICAgaWYgKCFtb2RlbFZhbHVlIHx8IG1vZGVsVmFsdWUubGVuZ3RoID09IDApe1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG59KTtcbiIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLnNlcnZpY2UoJ0Zvcm1IZWxwZXInLCBmdW5jdGlvbigpe1xuICAgIHRoaXMucHJldHR5RXJyb3IgPSBmdW5jdGlvbihlcnJvcnMsIGZpZWxkKXtcbiAgICAgICAgaWYgKGVycm9ycy5yZXF1aXJlZCkgcmV0dXJuIGZpZWxkICsgXCIgaXMgcmVxdWlyZWRcIjtcbiAgICAgICAgaWYgKGVycm9ycy5wYXR0ZXJuKSByZXR1cm4gZmllbGQgKyBcIiBpcyBpbnZhbGlkXCIgO1xuICAgICAgICBpZiAoZXJyb3JzLm1heGxlbmd0aCkgcmV0dXJuIGZpZWxkICsgXCIgaXMgdG9vIGxvbmdcIjtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn0pXG4uZGlyZWN0aXZlKCd1c2VyRm9ybScsIGZ1bmN0aW9uKEZvcm1IZWxwZXIpe1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjb3BlIDoge1xuICAgICAgICAgICAgZXZlbnQgOiAnPScsXG4gICAgICAgICAgICBmb3JtIDogJz0nXG4gICAgICAgIH0sXG4gICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9kaXJlY3RpdmVzL2V2ZW50Rm9ybS91c2VyRm9ybS5odG1sJyxcbiAgICAgICAgbGluayA6IGZ1bmN0aW9uKHNjb3BlLCBlbCwgYXR0cnMpIHtcbiAgICAgICAgICAgIHNjb3BlLmVycm9ycyA9IHt9O1xuXG4gICAgICAgICAgICBzY29wZS5lbWFpbFJlZ2V4ID0gL14oW1xcdy1cXC5dK0AoW1xcdy1dK1xcLikrW1xcdy1dezIsNH0pPyQvO1xuXG4gICAgICAgICAgICBzY29wZS4kd2F0Y2hDb2xsZWN0aW9uKCdmb3JtLm5hbWUuJGVycm9yJyxmdW5jdGlvbihlcnJvcnMpe1xuICAgICAgICAgICAgICAgIHNjb3BlLmVycm9ycy5uYW1lID0gRm9ybUhlbHBlci5wcmV0dHlFcnJvcihlcnJvcnMsIFwiTmFtZVwiKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzY29wZS4kd2F0Y2hDb2xsZWN0aW9uKCdmb3JtLmVtYWlsLiRlcnJvcicsZnVuY3Rpb24oZXJyb3JzKXtcbiAgICAgICAgICAgICAgICBzY29wZS5lcnJvcnMuZW1haWwgPSBGb3JtSGVscGVyLnByZXR0eUVycm9yKGVycm9ycywgXCJFbWFpbFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufSlcbi5kaXJlY3RpdmUoJ2V2ZW50Rm9ybScsIGZ1bmN0aW9uKEZvcm1IZWxwZXIpe1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjb3BlIDoge1xuICAgICAgICAgICAgZXZlbnQgOiAnPScsXG4gICAgICAgICAgICBmb3JtIDogJz0nXG4gICAgICAgIH0sXG4gICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9kaXJlY3RpdmVzL2V2ZW50Rm9ybS9ldmVudEZvcm0uaHRtbCcsXG4gICAgICAgIGxpbmsgOiBmdW5jdGlvbihzY29wZSwgZWwsIGF0dHJzKSB7XG4gICAgICAgICAgICBzY29wZS5lcnJvcnMgPSB7fTtcblxuICAgICAgICAgICAgc2NvcGUuJHdhdGNoQ29sbGVjdGlvbignZm9ybS50aXRsZS4kZXJyb3InLGZ1bmN0aW9uKGVycm9ycyl7XG4gICAgICAgICAgICAgICAgc2NvcGUuZXJyb3JzLnRpdGxlID0gRm9ybUhlbHBlci5wcmV0dHlFcnJvcihlcnJvcnMsIFwiVGl0bGVcIik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgc2NvcGUuJHdhdGNoQ29sbGVjdGlvbignZm9ybS5sb2NhdGlvbi4kZXJyb3InLGZ1bmN0aW9uKGVycm9ycyl7XG4gICAgICAgICAgICAgICAgc2NvcGUuZXJyb3JzLmxvY2F0aW9uID0gRm9ybUhlbHBlci5wcmV0dHlFcnJvcihlcnJvcnMsIFwiTG9jYXRpb25cIik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9XG4gICAgfVxufSlcbi5kaXJlY3RpdmUoJ2RhdGVGb3JtJywgZnVuY3Rpb24oKXtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY29wZSA6IHtcbiAgICAgICAgICAgIGV2ZW50IDogJz0nLFxuICAgICAgICAgICAgZm9ybSA6ICc9J1xuICAgICAgICB9LFxuICAgICAgICB0ZW1wbGF0ZVVybCA6ICd0ZW1wbGF0ZXMvZGlyZWN0aXZlcy9ldmVudEZvcm0vZGF0ZUZvcm0uaHRtbCdcbiAgICB9XG59KVxuLmRpcmVjdGl2ZSgncGFydGljaXBhbnRzRm9ybScsIGZ1bmN0aW9uKCl7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NvcGUgOiB7XG4gICAgICAgICAgICBldmVudCA6ICc9JyxcbiAgICAgICAgICAgIGZvcm0gOiAnPSdcbiAgICAgICAgfSxcbiAgICAgICAgdGVtcGxhdGVVcmwgOiAndGVtcGxhdGVzL2RpcmVjdGl2ZXMvZXZlbnRGb3JtL3BhcnRpY2lwYW50c0Zvcm0uaHRtbCdcbiAgICB9XG59KTtcbiIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLmZpbHRlcignZWxhcHNlZCcsIGZ1bmN0aW9uKCRmaWx0ZXIpe1xuICAgIHJldHVybiBmdW5jdGlvbihkYXRlKXtcbiAgICAgICAgaWYgKCFkYXRlKSByZXR1cm47XG4gICAgICAgIHZhciB0aW1lID0gRGF0ZS5wYXJzZShkYXRlKSxcbiAgICAgICAgICAgIHRpbWVOb3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcbiAgICAgICAgICAgIGRpZmZlcmVuY2UgPSB0aW1lTm93IC0gdGltZSxcbiAgICAgICAgICAgIHNlY29uZHMgPSBNYXRoLmZsb29yKGRpZmZlcmVuY2UgLyAxMDAwKSxcbiAgICAgICAgICAgIG1pbnV0ZXMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyA2MCksXG4gICAgICAgICAgICBob3VycyA9IE1hdGguZmxvb3IobWludXRlcyAvIDYwKSxcbiAgICAgICAgICAgIGRheXMgPSBNYXRoLmZsb29yKGhvdXJzIC8gMjQpO1xuICAgICAgICBpZiAoZGF5cyA+IDMwKSB7XG4gICAgICAgICAgICByZXR1cm4gJ29uICcgKyAkZmlsdGVyKCdkYXRlJykoZGF0ZSwgJ01NTU0gZCcpO1xuICAgICAgICB9IGVsc2UgaWYgKGRheXMgPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF5cyArIFwiIGRheXMgYWdvXCI7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5cyA9PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gXCIxIGRheSBhZ29cIlxuICAgICAgICB9IGVsc2UgaWYgKGhvdXJzID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGhvdXJzICsgXCIgaG91cnMgYWdvXCI7XG4gICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYW4gaG91ciBhZ29cIjtcbiAgICAgICAgfSBlbHNlIGlmIChtaW51dGVzID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIG1pbnV0ZXMgKyBcIiBtaW51dGVzIGFnb1wiO1xuICAgICAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPT0gMSl7XG4gICAgICAgICAgICByZXR1cm4gXCJhIG1pbnV0ZSBhZ29cIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBcImEgZmV3IHNlY29uZHMgYWdvXCI7XG4gICAgICAgIH1cbiAgICB9XG59KVxuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uZmFjdG9yeSgnQ29uZmlybU1vZGFsJywgZnVuY3Rpb24oYnRmTW9kYWwpe1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uKGNvbmZpZyl7XG4gICAgICAgIHZhciBtb2RhbDtcbiAgICAgICAgbW9kYWwgPSBidGZNb2RhbCh7XG4gICAgICAgICAgICB0ZW1wbGF0ZVVybCA6ICd0ZW1wbGF0ZXMvY29uZmlybW1vZGFsLmh0bWwnLFxuICAgICAgICAgICAgY29udHJvbGxlckFzIDogJ21vZGFsJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHRoaXMudGl0bGUgPSBjb25maWcudGl0bGVcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBjb25maWcubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm0gPSAoY29uZmlnLmNvbmZpcm0pID8gZnVuY3Rpb24oKXtjb25maWcuY29uZmlybSgpOyBtb2RhbC5kZWFjdGl2YXRlKCl9IDogZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWwgPSBtb2RhbC5kZWFjdGl2YXRlO1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybVRleHQgPSBjb25maWcuY29uZmlybVRleHQgfHwgJ0NvbmZpcm0nO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsVGV4dCA9IGNvbmZpZy5jYW5jZWxUZXh0IHx8ICdDYW5jZWwnO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNEZXN0cnVjdGl2ZSA9IGNvbmZpZy5pc0Rlc3RydWN0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbW9kYWwuYWN0aXZhdGUoKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuZGVzdHJveSA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBtb2RhbC5kZWFjdGl2YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG59KTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== \ No newline at end of file +angular.module("rallly",["ui.router","ngResource","ngFx","btford.modal","ngTagsInput","ngAnimate"]).config(["$stateProvider","$urlRouterProvider","$locationProvider",function(e,t,n){n.html5Mode(!0),t.otherwise("/notfound"),e.state("index",{url:"/",templateUrl:"templates/home.html",controller:"HomeCtrl"}).state("newevent",{url:"/new",templateUrl:"templates/newevent.html",controller:"NewEventCtrl"}).state("about",{url:"/about",templateUrl:"templates/about.html",controller:"AboutCtrl"}).state("notfound",{url:"/notfound",templateUrl:"templates/notfound.html"}).state("event",{url:"/:id",templateUrl:"templates/event.html",controller:"EventCtrl"}).state("editevent",{url:"/:id/edit",templateUrl:"templates/editevent.html",controller:"EditEventCtrl"}).state("verifyevent",{url:"/verify/:id/code/:code",controller:"VerificationCtrl"}).state("deleteevent",{url:"/delete/:id/code/:code",controller:"DeletionCtrl"})}]).factory("Event",["$resource",function(e){return e("/api/event/:id",{id:"@_id"},{update:{method:"PUT"},verify:{method:"GET",url:"/api/event/:id/code/:code"},destroy:{method:"DELETE",url:"/api/event/:id/code/:code"}})}]).factory("Participant",["$resource",function(e){return e("/api/event/:id/participant/:pid",{id:"@_id"},{update:{method:"PUT"}})}]).factory("Comment",["$resource",function(e){return e("/api/event/:id/comment/:cid",{id:"@_id"},{update:{method:"PUT"}})}]).factory("Title",function(){return{set:function(e){document.title=e}}}),angular.module("rallly").run(["$templateCache",function(e){e.put("templates/about.html",'
\n

What is Rallly?

\n
Rallly is a collaborative scheduling service that makes deciding on a date fast and easy.
\n

Hi, I\'m Luke!

\n

\n I created Rallly as side project to help me learn some new technologies. I decided to publish it because I thought other people might find it useful. Rallly is a completely free service. In fact it is even open source. You can look at the latest source code on Github.\n

\n
\n'),e.put("templates/confirmmodal.html",'
\n\n
\n
{{modal.title}}
\n
\n {{modal.message}}\n
\n
\n \n \n
\n
\n'),e.put("templates/editevent.html",'
\n
\n\n
Edit Event
\n
\n You can makes changes to your existing event by changing the fields in the form below.\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n \n \n Done\n
\n\n
\n\n
\n\n
\n'),e.put("templates/event.html",'
\n
\n
\n
\n \n
\n
\n
\n {{event.title}}\n Poll Closed\n Poll Open\n
\n
\n Created by {{event.creator.name}} • {{event.created | elapsed}}\n
\n
\n
\n \n
\n
\n
{{event.description}}
\n \n\n
\n
\n
\n
\n
\n\n
\n
\n Discussion\n
\n
\n You can discuss the event with your friends by leaving a comment below.\n
\n
\n\n
\n
\n
\n'),e.put("templates/home.html",'
\n
\n \n
\n
\n Schedule an Event\n
\n
\n Want to host an event but can’t decide on a date? Click on the button below to start!\n
\n \n
\n'),e.put("templates/newevent.html",'
\n
\n\n
Schedule a New Event
\n
\n Fill in the form below to create your event and share it with your friends and colleagues.\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n \n
\n\n
\n
\n
\n
\n
\n
\n \n
\n
Event Created
\n
\n Your event has been created successfully! You should receive an email shortly with instructions to verify your email address.\n
\n
\n
\n
\n \n GO\n
\n
\n
\n'),e.put("templates/notfound.html","

Error 404

\n

Not Found

\n"),e.put("templates/notification.html",'
\n
\n {{notification.title}}\n
\n
\n {{notification.message}}\n
\n
\n'),e.put("templates/directives/discussion.html",'
    \n
  • \n
    \n \n
    \n
    \n ×\n
    \n {{comment.author.name}}\n {{comment.created | elapsed}}\n
    \n
    {{comment.content}}
    \n
    \n
  • \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n \n \n Make sure you fill in all the fields.\n \n
\n
\n
\n
\n'),e.put("templates/directives/poll.html",'
\n
\n {{event.participants.length}} participants\n
\n
\n
\n
\n {{date | date: \'EEE\'}}\n
\n
\n {{date | date: \'d\'}}\n
\n
\n {{date | date : \'MMM\'}}\n
\n {{selectedDate($index)}}\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n \n \n {{participant.name}}\n
\n
\n \n \n \n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n'),e.put("templates/directives/eventForm/dateForm.html",'
\n
Choose Dates
\n
    \n
  • \n
    \n
    \n {{date | date: \'EEE\'}}\n
    \n
    \n {{date | date: \'d\'}}\n
    \n
    \n {{date | date : \'MMM\'}}\n
    \n \n
    \n
  • \n
\n
\n
\n
\n
\n \n \n You need to select a few dates\n \n
\n\n
\n
\n
\n
\n'),e.put("templates/directives/eventForm/eventForm.html",'
\n
Event Details
\n
\n
\n
\n
\n
\n \n \n {{errors.title}}\n \n \n
\n
\n
\n
\n \n \n {{errors.location}}\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n'),e.put("templates/directives/eventForm/participantsForm.html",'
\n
Invite Participants
\n
\n
\n
\n
\n \n \n
\n
\n
\n\n'),e.put("templates/directives/eventForm/settingsForm.html",'
\n
Settings
\n
\n
\n
\n
\n
\n Poll Status\n
\n
\n Let people vote on the poll.\n
\n
\n
\n
\n {{event.isClosed ? \'Closed\' : \'Open\' }}\n
\n
\n
\n
\n
\n
\n
\n
\n Notifications\n
\n
\n Send email notifications to the creator of this event.\n
\n
\n
\n
\n {{event.creator.allowNotifications ? \'Enabled\' : \'Disabled\' }}\n
\n
\n
\n
\n
\n
\n
\n
\n Delete Event\n
\n
\n Once you delete an event it will no longer be accessible.\n
\n
\n
\n \n
\n
\n
\n\n'),e.put("templates/directives/eventForm/userForm.html",'
\n
Your Details
\n
\n
\n
\n
\n
\n \n \n {{errors.name}}\n \n \n
\n
\n
\n
\n \n \n {{errors.email}}\n \n \n
\n
\n
\n
\n')}]),angular.module("rallly").controller("AboutCtrl",["Title",function(e){e.set("About Rallly")}]),angular.module("rallly").controller("AccountCtrl",["$scope","ConfirmModal",function(e){e.showNotice=function(){}}]),angular.module("rallly").controller("DeletionCtrl",["$state","Notification","Event",function(e,t,n){n.destroy({id:e.params.id,code:e.params.code},function(){new t({title:"Event deleted",message:"This event has been deleted",type:"success",timeout:5e3})},function(){new t({title:"Deletion Failed",message:"The event could not be deleted. Make sure that it exists and that the url is correct",type:"error"})}),e.go("event",{id:e.params.id})}]),angular.module("rallly").controller("EditEventCtrl",["$scope","$http","$state","$timeout","Event","ConfirmModal","Notification","Title",function(e,t,n,i,o,a,l,s){var r=n.params.id;e.event=o.get({id:r},function(){s.set("Edit: "+e.event.title),e.master=angular.copy(e.event)},function(){n.go("notfound")}),e.undoChanges=function(){e.event=angular.copy(e.master)},e.didChange=function(){return JSON.stringify(e.master)!=JSON.stringify(e.event)},e.didChangeDates=function(){return JSON.stringify(e.master.dates)!=JSON.stringify(e.event.dates)},e.submit=function(){if(e.form.$valid)if(e.didChangeDates()){new a({title:"Hold up!",message:"Changing the dates will reset all entries by the participants. Are you sure you want to do that?",confirmText:"Yes, I'm sure",isDestructive:!0,confirm:function(){e.event.participants=[],c()}})}else c();else{new l({title:"Not so fast",message:"Make sure you fill in all the required fields and try again.",type:"error"})}};var c=function(){o.update({id:r},e.event,function(){new l({title:"Changes Saved",message:"Your changes have been saved successfully.",type:"success"});e.master=angular.copy(e.event)})}}]),angular.module("rallly").controller("EventCtrl",["$scope","$http","$state","Title","Event","ConfirmModal",function(e,t,n,i,o,a){var l=n.params.id;e.event=o.get({id:l},function(){i.set(e.event.title),e.eventUrl=n.href("event",{id:e.event._id},{absolute:!0})},function(){n.go("notfound")}),e.openEvent=function(){e.event.isClosed=!1,o.update({id:l},e.event,function(){new a({title:"Event Open",message:"People can vote and comment on this event.",cancelText:"OK"})})},e.closeEvent=function(){e.event.isClosed=!0,o.update({id:l},e.event,function(){new a({title:"Event Closed",message:"People can no longer vote or comment on this event.",cancelText:"OK"})})},e.editEvent=function(){n.go("editevent",{id:e.event._id})}}]),angular.module("rallly").controller("HomeCtrl",["$scope","$state","Title",function(e,t,n){n.set("Rallly - Collaborative Scheduling"),e.newEvent=function(){t.go("newevent")}}]),angular.module("rallly").controller("NavigationCtrl",["$scope","$location",function(e,t){e.isActive=function(e){return t.path()==e?!0:!1}}]),angular.module("rallly").controller("NewEventCtrl",["$scope","$http","$state","Event","ConfirmModal","Notification",function(e,t,n,i,o,a){e.title="Schedule a New Event",e.description="Fill in the form below to create your event and share it with your friends and colleagues.",e.submit=function(){if(e.form.$valid)t.post("/api/event",e.event).success(function(t){e.event=t,e.eventUrl=n.href("event",{id:e.event._id},{absolute:!0})}).error(function(){new o({title:"Uh oh!",message:"There was an error creating your event. Please try again later.",cancelText:"OK"})});else{new a({title:"Not so fast",message:"Make sure you fill in all the required fields and try again.",type:"error"})}},e.clearDates=null}]),angular.module("rallly").controller("VerificationCtrl",["Event","Notification","$state",function(e,t,n){e.verify({id:n.params.id,code:n.params.code},function(){new t({title:"Email Verified",message:"Your email has been verified. You will now be able to receive email notifications for this event",type:"success",timeout:5e3})},function(){new t({title:"Verification Failed",message:"Your verification code has expired.",type:"error"})}),n.go("event",{id:n.params.id})}]),angular.module("rallly").directive("backImg",function(){return function(e,t,n){var i=n.backImg;t.css({"background-image":"url(/images/"+i+".png)"})}}),angular.module("rallly").directive("datepicker",function(){return{restrict:"A",require:"ngModel",scope:{model:"=ngModel",control:"="},link:function(e,t,n,i){e.model=e.model||[],angular.element(t).datepicker({multidate:!0,todayHighlight:!0}).on("changeDate",function(e){var t=e.dates;t.sort(function(e,t){return e.getTime()>t.getTime()?!0:!1}),i.$setViewValue(t,e)});var o=function(e,n){if(e&&n&&e.length!=n.length){for(var i=[],o=0;o0;i||t.toggle()};t.toggle=function(){t.open=!t.open,t.open?(n.addClass("open"),e.bind("click",i)):(n.removeClass("open"),e.unbind("click",i))}}}}]),angular.module("rallly").service("FormHelper",function(){this.emailRegexString="^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$",this.emailRegex=new RegExp(this.emailRegexString),this.prettyError=function(e,t){return e.required?t+" is required":e.pattern?t+" is invalid":e.maxlength?t+" is too long":!1}}).directive("userForm",["FormHelper",function(e){return{scope:{event:"=",form:"="},templateUrl:"templates/directives/eventForm/userForm.html",link:function(t){t.errors={},t.emailRegex=e.emailRegex,t.$watchCollection("form.name.$error",function(n){t.errors.name=e.prettyError(n,"Name")}),t.$watchCollection("form.email.$error",function(n){t.errors.email=e.prettyError(n,"Email")})}}}]).directive("eventForm",["FormHelper",function(e){return{scope:{event:"=",form:"="},templateUrl:"templates/directives/eventForm/eventForm.html",link:function(t){t.errors={},t.$watchCollection("form.title.$error",function(n){t.errors.title=e.prettyError(n,"Title")}),t.$watchCollection("form.location.$error",function(n){t.errors.location=e.prettyError(n,"Location")})}}}]).directive("dateForm",function(){return{scope:{event:"=",form:"="},templateUrl:"templates/directives/eventForm/dateForm.html"}}).directive("participantsForm",["FormHelper",function(e){return{scope:{event:"=",form:"="},templateUrl:"templates/directives/eventForm/participantsForm.html",link:function(t){t.emailRegex=e.emailRegexString}}}]).directive("settingsForm",["Event",function(e){return{scope:{event:"=",form:"="},templateUrl:"templates/directives/eventForm/settingsForm.html",link:function(t){t.deleteEvent=function(){e.delete({id:t.event._id},function(){console.log("delete")})}}}}]).directive("switchToggle",function(){return{scope:{model:"=ngModel"},require:"ngModel",link:function(e,t,n,i){t.addClass("switch-toggle");var o=function(){e.model^"undefined"!=typeof n.invert?t.addClass("active"):t.removeClass("active")};e.$watch("model",o),t.bind("click",function(t){e.model=!e.model,i.$setViewValue(e.model,t)})}}}),angular.module("rallly").directive("poll",["Participant","ConfirmModal",function(e,t){return{restrict:"A",templateUrl:"templates/directives/poll.html",scope:{event:"="},link:function(n){n.defaults=[],n.participant={};var i=[];n.delete=function(i){new t({title:"Delete "+i.name+"?",message:"Are you sure you want to remove "+i.name+" from the poll?",confirmText:"Yes - delete",cancelText:"No - nevermind",isDestructive:!0,confirm:function(){e.remove({id:n.event._id,pid:i._id},function(e){n.event=e})}})},n.isTopDate=function(e){for(var t=i[e],n=0;nt)return!1;return!0},n.selectedDate=function(e){i[e]=0;for(var t=0;t30?"on "+e("date")(t,"MMMM d"):r>1?r+" days ago":1==r?"1 day ago":s>1?s+" hours ago":1==s?"an hour ago":l>1?l+" minutes ago":1==l?"a minute ago":"a few seconds ago"}}}]),angular.module("rallly").factory("ConfirmModal",["btfModal",function(e){return function(t){var n;n=e({templateUrl:"templates/confirmmodal.html",controllerAs:"modal",controller:function(){this.title=t.title,this.message=t.message,this.confirm=t.confirm?function(){t.confirm(),n.deactivate()}:!1,this.cancel=n.deactivate,this.confirmText=t.confirmText||"Confirm",this.cancelText=t.cancelText||"Cancel",this.isDestructive=t.isDestructive}}),n.activate(),this.destroy=function(){n.deactivate()}}}]),angular.module("rallly").factory("Notification",["$timeout","btfModal",function(e,t){return function(n){var i;i=t({templateUrl:"templates/notification.html",controllerAs:"notification",controller:function(){this.title=n.title,this.message=n.message,this.close=i.deactivate,this.type=n.type;var t=n.timeout||5e3;e(i.deactivate,t)}}),i.activate(),this.destroy=function(){i.deactivate()}}}]); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uanMiLCJ0ZW1wbGF0ZXMuanMiLCJjb250cm9sbGVycy9hYm91dC5jb250cm9sbGVyLmpzIiwiY29udHJvbGxlcnMvYWNjb3VudC5jb250cm9sbGVyLmpzIiwiY29udHJvbGxlcnMvZGVsZXRpb24uY29udHJvbGxlci5qcyIsImNvbnRyb2xsZXJzL2VkaXRldmVudC5jb250cm9sbGVyLmpzIiwiY29udHJvbGxlcnMvZXZlbnQuY29udHJvbGxlci5qcyIsImNvbnRyb2xsZXJzL2hvbWUuY29udHJvbGxlci5qcyIsImNvbnRyb2xsZXJzL25hdmlnYXRpb24uY29udHJvbGxlci5qcyIsImNvbnRyb2xsZXJzL25ld2V2ZW50LmNvbnRyb2xsZXIuanMiLCJjb250cm9sbGVycy92ZXJpZmljYXRpb24uY29udHJvbGxlci5qcyIsImRpcmVjdGl2ZXMvYmFja0ltZy5kaXJlY3RpdmUuanMiLCJkaXJlY3RpdmVzL2RhdGVwaWNrZXIuZGlyZWN0aXZlLmpzIiwiZGlyZWN0aXZlcy9kaXNjdXNzaW9uLmRpcmVjdGl2ZS5qcyIsImRpcmVjdGl2ZXMvZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwiZGlyZWN0aXZlcy9mb3JtLmRpcmVjdGl2ZS5qcyIsImRpcmVjdGl2ZXMvcG9sbC5kaXJlY3RpdmUuanMiLCJmaWx0ZXJzL2VsYXBzZWQuZmlsdGVyLmpzIiwic2VydmljZXMvbW9kYWwuc2VydmljZS5qcyIsInNlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFFBQUEsT0FBQSxVQUFBLFlBQUEsYUFBQSxPQUFBLGVBQUEsY0FBQSxjQUNBLFFBQUEsaUJBQUEscUJBQUEsb0JBQUEsU0FBQSxFQUFBLEVBQUEsR0FDQSxFQUFBLFdBQUEsR0FDQSxFQUFBLFVBQUEsYUFDQSxFQUNBLE1BQUEsU0FDQSxJQUFBLElBQ0EsWUFBQSxzQkFDQSxXQUFBLGFBRUEsTUFBQSxZQUNBLElBQUEsT0FDQSxZQUFBLDBCQUNBLFdBQUEsaUJBRUEsTUFBQSxTQUNBLElBQUEsU0FDQSxZQUFBLHVCQUNBLFdBQUEsY0FFQSxNQUFBLFlBQ0EsSUFBQSxZQUNBLFlBQUEsNEJBRUEsTUFBQSxTQUNBLElBQUEsT0FDQSxZQUFBLHVCQUNBLFdBQUEsY0FFQSxNQUFBLGFBQ0EsSUFBQSxZQUNBLFlBQUEsMkJBQ0EsV0FBQSxrQkFFQSxNQUFBLGVBQ0EsSUFBQSx5QkFDQSxXQUFBLHFCQUVBLE1BQUEsZUFDQSxJQUFBLHlCQUNBLFdBQUEsb0JBR0EsUUFBQSxTQUFBLFlBQUEsU0FBQSxHQUNBLE1BQUEsR0FBQSxrQkFBQSxHQUFBLFNBQ0EsUUFBQSxPQUFBLE9BQ0EsUUFBQSxPQUFBLE1BQUEsSUFBQSw2QkFDQSxTQUFBLE9BQUEsU0FBQSxJQUFBLGtDQUdBLFFBQUEsZUFBQSxZQUFBLFNBQUEsR0FDQSxNQUFBLEdBQUEsbUNBQUEsR0FBQSxTQUNBLFFBQUEsT0FBQSxZQUdBLFFBQUEsV0FBQSxZQUFBLFNBQUEsR0FDQSxNQUFBLEdBQUEsK0JBQUEsR0FBQSxTQUNBLFFBQUEsT0FBQSxZQUdBLFFBQUEsUUFBQSxXQUNBLE9BQ0EsSUFBQSxTQUFBLEdBQ0EsU0FBQSxNQUFBLE1DL0RBLFFBQUEsT0FBQSxVQUFBLEtBQUEsaUJBQUEsU0FBQSxHQUFBLEVBQUEsSUFBQSx1QkFBQSw4Z0JBQ0EsRUFBQSxJQUFBLDhCQUFBLG1pQkFDQSxFQUFBLElBQUEsMkJBQUEsaXZDQUNBLEVBQUEsSUFBQSx1QkFBQSx1dkRBQ0EsRUFBQSxJQUFBLHNCQUFBLDJaQUNBLEVBQUEsSUFBQSwwQkFBQSw0c0RBQ0EsRUFBQSxJQUFBLDBCQUFBLDRDQUNBLEVBQUEsSUFBQSw4QkFBQSw0T0FDQSxFQUFBLElBQUEsdUNBQUEsa2tEQUNBLEVBQUEsSUFBQSxpQ0FBQSx3bUhBQ0EsRUFBQSxJQUFBLCtDQUFBLHNxQ0FDQSxFQUFBLElBQUEsZ0RBQUEsa2tEQUNBLEVBQUEsSUFBQSx1REFBQSx1ZkFDQSxFQUFBLElBQUEsbURBQUEsb3NEQUNBLEVBQUEsSUFBQSwrQ0FBQSwwdkNDZEEsUUFBQSxPQUFBLFVBQ0EsV0FBQSxhQUFBLFFBQUEsU0FBQSxHQUNBLEVBQUEsSUFBQSxtQkNGQSxRQUFBLE9BQUEsVUFDQSxXQUFBLGVBQUEsU0FBQSxlQUFBLFNBQUEsR0FDQSxFQUFBLFdBQUEsZ0JDRkEsUUFBQSxPQUFBLFVBQ0EsV0FBQSxnQkFBQSxTQUFBLGVBQUEsUUFBQSxTQUFBLEVBQUEsRUFBQSxHQUNBLEVBQUEsU0FBQSxHQUFBLEVBQUEsT0FBQSxHQUFBLEtBQUEsRUFBQSxPQUFBLE1BQUEsV0FDQSxHQUFBLElBQ0EsTUFBQSxnQkFDQSxRQUFBLDhCQUNBLEtBQUEsVUFDQSxRQUFBLE9BRUEsV0FDQSxHQUFBLElBQ0EsTUFBQSxrQkFDQSxRQUFBLHVGQUNBLEtBQUEsWUFHQSxFQUFBLEdBQUEsU0FBQSxHQUFBLEVBQUEsT0FBQSxRQ2hCQSxRQUFBLE9BQUEsVUFDQSxXQUFBLGlCQUFBLFNBQUEsUUFBQSxTQUFBLFdBQUEsUUFBQSxlQUFBLGVBQUEsUUFBQSxTQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsR0FDQSxHQUFBLEdBQUEsRUFBQSxPQUFBLEVBQ0EsR0FBQSxNQUFBLEVBQUEsS0FBQSxHQUFBLEdBQUEsV0FDQSxFQUFBLElBQUEsU0FBQSxFQUFBLE1BQUEsT0FDQSxFQUFBLE9BQUEsUUFBQSxLQUFBLEVBQUEsUUFDQSxXQUNBLEVBQUEsR0FBQSxjQUVBLEVBQUEsWUFBQSxXQUNBLEVBQUEsTUFBQSxRQUFBLEtBQUEsRUFBQSxTQUVBLEVBQUEsVUFBQSxXQUNBLE1BQUEsTUFBQSxVQUFBLEVBQUEsU0FBQSxLQUFBLFVBQUEsRUFBQSxRQUVBLEVBQUEsZUFBQSxXQUNBLE1BQUEsTUFBQSxVQUFBLEVBQUEsT0FBQSxRQUFBLEtBQUEsVUFBQSxFQUFBLE1BQUEsUUFFQSxFQUFBLE9BQUEsV0FDQSxHQUFBLEVBQUEsS0FBQSxPQUNBLEdBQUEsRUFBQSxpQkFDQSxDQUFBLEdBQUEsSUFDQSxNQUFBLFdBQ0EsUUFBQSxtR0FDQSxZQUFBLGdCQUNBLGVBQUEsRUFDQSxRQUFBLFdBQ0EsRUFBQSxNQUFBLGdCQUNBLFdBS0EsU0FHQSxDQUFBLEdBQUEsSUFDQSxNQUFBLGNBQ0EsUUFBQSwrREFDQSxLQUFBLFdBSUEsSUFBQSxHQUFBLFdBQ0EsRUFBQSxRQUNBLEdBQUEsR0FDQSxFQUFBLE1BQ0EsV0FDQSxHQUFBLElBQ0EsTUFBQSxnQkFDQSxRQUFBLDZDQUNBLEtBQUEsV0FFQSxHQUFBLE9BQUEsUUFBQSxLQUFBLEVBQUEsYUNyREEsUUFBQSxPQUFBLFVBQ0EsV0FBQSxhQUFBLFNBQUEsUUFBQSxTQUFBLFFBQUEsUUFBQSxlQUFBLFNBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEdBQ0EsR0FBQSxHQUFBLEVBQUEsT0FBQSxFQUNBLEdBQUEsTUFBQSxFQUFBLEtBQUEsR0FBQSxHQUFBLFdBQ0EsRUFBQSxJQUFBLEVBQUEsTUFBQSxPQUNBLEVBQUEsU0FBQSxFQUFBLEtBQUEsU0FDQSxHQUFBLEVBQUEsTUFBQSxNQUVBLFVBQUEsS0FFQSxXQUNBLEVBQUEsR0FBQSxjQUdBLEVBQUEsVUFBQSxXQUNBLEVBQUEsTUFBQSxVQUFBLEVBQ0EsRUFBQSxRQUNBLEdBQUEsR0FDQSxFQUFBLE1BQ0EsV0FDQSxHQUFBLElBQ0EsTUFBQSxhQUNBLFFBQUEsNkNBQ0EsV0FBQSxVQUtBLEVBQUEsV0FBQSxXQUNBLEVBQUEsTUFBQSxVQUFBLEVBQ0EsRUFBQSxRQUNBLEdBQUEsR0FDQSxFQUFBLE1BQ0EsV0FDQSxHQUFBLElBQ0EsTUFBQSxlQUNBLFFBQUEsc0RBQ0EsV0FBQSxVQUtBLEVBQUEsVUFBQSxXQUNBLEVBQUEsR0FBQSxhQUFBLEdBQUEsRUFBQSxNQUFBLFVDM0NBLFFBQUEsT0FBQSxVQUNBLFdBQUEsWUFBQSxTQUFBLFNBQUEsUUFBQSxTQUFBLEVBQUEsRUFBQSxHQUNBLEVBQUEsSUFBQSxxQ0FFQSxFQUFBLFNBQUEsV0FDQSxFQUFBLEdBQUEsZ0JDTEEsUUFBQSxPQUFBLFVBQ0EsV0FBQSxrQkFBQSxTQUFBLFlBQUEsU0FBQSxFQUFBLEdBQ0EsRUFBQSxTQUFBLFNBQUEsR0FDQSxNQUFBLEdBQUEsUUFBQSxHQUNBLEdBRUEsTUNOQSxRQUFBLE9BQUEsVUFDQSxXQUFBLGdCQUFBLFNBQUEsUUFBQSxTQUFBLFFBQUEsZUFBQSxlQUFBLFNBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBLEdBRUEsRUFBQSxNQUFBLHVCQUNBLEVBQUEsWUFBQSw2RkFFQSxFQUFBLE9BQUEsV0FDQSxHQUFBLEVBQUEsS0FBQSxPQUNBLEVBQUEsS0FBQSxhQUFBLEVBQUEsT0FDQSxRQUFBLFNBQUEsR0FDQSxFQUFBLE1BQUEsRUFDQSxFQUFBLFNBQUEsRUFBQSxLQUFBLFNBQ0EsR0FBQSxFQUFBLE1BQUEsTUFFQSxVQUFBLE1BR0EsTUFBQSxXQUNBLEdBQUEsSUFDQSxNQUFBLFNBQ0EsUUFBQSxrRUFDQSxXQUFBLGFBSUEsQ0FBQSxHQUFBLElBQ0EsTUFBQSxjQUNBLFFBQUEsK0RBQ0EsS0FBQSxZQUtBLEVBQUEsV0FBQSxRQ2pDQSxRQUFBLE9BQUEsVUFDQSxXQUFBLG9CQUFBLFFBQUEsZUFBQSxTQUFBLFNBQUEsRUFBQSxFQUFBLEdBQ0EsRUFBQSxRQUFBLEdBQUEsRUFBQSxPQUFBLEdBQUEsS0FBQSxFQUFBLE9BQUEsTUFBQSxXQUNBLEdBQUEsSUFDQSxNQUFBLGlCQUNBLFFBQUEsbUdBQ0EsS0FBQSxVQUNBLFFBQUEsT0FFQSxXQUNBLEdBQUEsSUFDQSxNQUFBLHNCQUNBLFFBQUEsc0NBQ0EsS0FBQSxZQUdBLEVBQUEsR0FBQSxTQUFBLEdBQUEsRUFBQSxPQUFBLFFDaEJBLFFBQUEsT0FBQSxVQUNBLFVBQUEsVUFBQSxXQUNBLE1BQUEsVUFBQSxFQUFBLEVBQUEsR0FDQSxHQUFBLEdBQUEsRUFBQSxPQUNBLEdBQUEsS0FDQSxtQkFBQSxlQUFBLEVBQUEsYUNMQSxRQUFBLE9BQUEsVUFDQSxVQUFBLGFBQUEsV0FDQSxPQUNBLFNBQUEsSUFDQSxRQUFBLFVBQ0EsT0FDQSxNQUFBLFdBQ0EsUUFBQSxLQUVBLEtBQUEsU0FBQSxFQUFBLEVBQUEsRUFBQSxHQUNBLEVBQUEsTUFBQSxFQUFBLFVBQ0EsUUFBQSxRQUFBLEdBQUEsWUFDQSxXQUFBLEVBQ0EsZ0JBQUEsSUFFQSxHQUFBLGFBQUEsU0FBQSxHQUNBLEdBQUEsR0FBQSxFQUFBLEtBQ0EsR0FBQSxLQUFBLFNBQUEsRUFBQSxHQUNBLE1BQUEsR0FBQSxVQUFBLEVBQUEsV0FBQSxHQUNBLElBRUEsRUFBQSxjQUFBLEVBQUEsSUFHQSxJQUFBLEdBQUEsU0FBQSxFQUFBLEdBQ0EsR0FBQSxHQUFBLEdBQUEsRUFBQSxRQUFBLEVBQUEsT0FBQSxDQUVBLElBQUEsR0FEQSxNQUNBLEVBQUEsRUFBQSxFQUFBLEVBQUEsT0FBQSxJQUNBLEVBQUEsS0FBQSxHQUFBLE1BQUEsRUFBQSxJQUVBLFNBQUEsUUFBQSxHQUFBLFdBQUEsV0FBQSxJQUVBLEdBQUEsaUJBQUEsUUFBQSxHQUVBLEVBQUEsUUFBQSxFQUFBLFlBQ0EsRUFBQSxRQUFBLFVBQUEsU0FBQSxHQUNBLEdBQUEsR0FBQSxFQUFBLE1BQUEsUUFBQSxFQUNBLEdBQUEsTUFBQSxPQUFBLEVBQUEsSUFHQSxFQUFBLFlBQUEsU0FBQSxTQUFBLEdBQ0EsTUFBQSxJQUFBLEdBQUEsRUFBQSxRQUdBLEdBRkEsT0MxQ0EsUUFBQSxPQUFBLFVBQ0EsVUFBQSxjQUFBLFdBQUEsVUFBQSxlQUFBLFNBQUEsRUFBQSxFQUFBLEdBQ0EsT0FDQSxTQUFBLElBQ0EsWUFBQSx1Q0FDQSxPQUNBLE1BQUEsS0FFQSxLQUFBLFNBQUEsR0FDQSxFQUFBLFVBQ0EsSUFBQSxHQUFBLFFBQUEsUUFBQSxrQkFDQSxHQUFBLFdBQ0EsRUFBQSxVQUFBLEVBQUEsS0FBQSxtQkFFQSxFQUFBLGNBQUEsU0FBQSxHQUNBLEdBQUEsSUFDQSxNQUFBLGdCQUNBLFFBQUEsZ0RBQ0EsWUFBQSxlQUNBLFdBQUEsaUJBQ0EsZUFBQSxFQUNBLFFBQUEsV0FDQSxFQUFBLFFBQUEsR0FBQSxFQUFBLE1BQUEsSUFBQSxJQUFBLEVBQUEsS0FBQSxTQUFBLEdBQ0EsRUFBQSxNQUFBLFFBS0EsRUFBQSxZQUFBLFdBQ0EsR0FBQSxFQUFBLFlBQUEsT0FBQSxDQUNBLEdBQUEsR0FBQSxHQUFBLEdBQUEsRUFBQSxRQUNBLEdBQUEsT0FBQSxHQUFBLEVBQUEsTUFBQSxLQUFBLFNBQUEsR0FDQSxFQUFBLE1BQUEsRUFDQSxFQUFBLGFBRUEsRUFBQSxZQUFBLHNCQ25DQSxRQUFBLE9BQUEsVUFDQSxVQUFBLFlBQUEsWUFBQSxTQUFBLEdBQ0EsT0FDQSxTQUFBLElBQ0EsS0FBQSxTQUFBLEVBQUEsR0FDQSxFQUFBLFNBQUEsWUFDQSxFQUFBLE1BQUEsQ0FFQSxJQUFBLEdBQUEsU0FBQSxHQUNBLEdBQUEsR0FBQSxFQUFBLEtBQUEsRUFBQSxRQUFBLE9BQUEsQ0FDQSxJQUNBLEVBQUEsU0FHQSxHQUFBLE9BQUEsV0FDQSxFQUFBLE1BQUEsRUFBQSxLQUNBLEVBQUEsTUFDQSxFQUFBLFNBQUEsUUFDQSxFQUFBLEtBQUEsUUFBQSxLQUVBLEVBQUEsWUFBQSxRQUNBLEVBQUEsT0FBQSxRQUFBLFVDckJBLFFBQUEsT0FBQSxVQUNBLFFBQUEsYUFBQSxXQUNBLEtBQUEsaUJBQUEsMkNBQ0EsS0FBQSxXQUFBLEdBQUEsUUFBQSxLQUFBLGtCQUNBLEtBQUEsWUFBQSxTQUFBLEVBQUEsR0FDQSxNQUFBLEdBQUEsU0FBQSxFQUFBLGVBQ0EsRUFBQSxRQUFBLEVBQUEsY0FDQSxFQUFBLFVBQUEsRUFBQSxnQkFDQSxLQUdBLFVBQUEsWUFBQSxhQUFBLFNBQUEsR0FDQSxPQUNBLE9BQ0EsTUFBQSxJQUNBLEtBQUEsS0FFQSxZQUFBLCtDQUNBLEtBQUEsU0FBQSxHQUNBLEVBQUEsVUFFQSxFQUFBLFdBQUEsRUFBQSxXQUVBLEVBQUEsaUJBQUEsbUJBQUEsU0FBQSxHQUNBLEVBQUEsT0FBQSxLQUFBLEVBQUEsWUFBQSxFQUFBLFVBR0EsRUFBQSxpQkFBQSxvQkFBQSxTQUFBLEdBQ0EsRUFBQSxPQUFBLE1BQUEsRUFBQSxZQUFBLEVBQUEsZ0JBS0EsVUFBQSxhQUFBLGFBQUEsU0FBQSxHQUNBLE9BQ0EsT0FDQSxNQUFBLElBQ0EsS0FBQSxLQUVBLFlBQUEsZ0RBQ0EsS0FBQSxTQUFBLEdBQ0EsRUFBQSxVQUVBLEVBQUEsaUJBQUEsb0JBQUEsU0FBQSxHQUNBLEVBQUEsT0FBQSxNQUFBLEVBQUEsWUFBQSxFQUFBLFdBR0EsRUFBQSxpQkFBQSx1QkFBQSxTQUFBLEdBQ0EsRUFBQSxPQUFBLFNBQUEsRUFBQSxZQUFBLEVBQUEsbUJBTUEsVUFBQSxXQUFBLFdBQ0EsT0FDQSxPQUNBLE1BQUEsSUFDQSxLQUFBLEtBRUEsWUFBQSxrREFHQSxVQUFBLG9CQUFBLGFBQUEsU0FBQSxHQUNBLE9BQ0EsT0FDQSxNQUFBLElBQ0EsS0FBQSxLQUVBLFlBQUEsdURBQ0EsS0FBQSxTQUFBLEdBQ0EsRUFBQSxXQUFBLEVBQUEsc0JBSUEsVUFBQSxnQkFBQSxRQUFBLFNBQUEsR0FDQSxPQUNBLE9BQ0EsTUFBQSxJQUNBLEtBQUEsS0FFQSxZQUFBLG1EQUNBLEtBQUEsU0FBQSxHQUNBLEVBQUEsWUFBQSxXQUNBLEVBQUEsUUFBQSxHQUFBLEVBQUEsTUFBQSxLQUFBLFdBQ0EsUUFBQSxJQUFBLGtCQU1BLFVBQUEsZUFBQSxXQUNBLE9BQ0EsT0FDQSxNQUFBLFlBRUEsUUFBQSxVQUNBLEtBQUEsU0FBQSxFQUFBLEVBQUEsRUFBQSxHQUNBLEVBQUEsU0FBQSxnQkFDQSxJQUFBLEdBQUEsV0FDQSxFQUFBLE1BQUEsbUJBQUEsR0FBQSxPQUNBLEVBQUEsU0FBQSxVQUVBLEVBQUEsWUFBQSxVQUdBLEdBQUEsT0FBQSxRQUFBLEdBQ0EsRUFBQSxLQUFBLFFBQUEsU0FBQSxHQUNBLEVBQUEsT0FBQSxFQUFBLE1BQ0EsRUFBQSxjQUFBLEVBQUEsTUFBQSxTQzdHQSxRQUFBLE9BQUEsVUFDQSxVQUFBLFFBQUEsY0FBQSxlQUFBLFNBQUEsRUFBQSxHQUNBLE9BQ0EsU0FBQSxJQUNBLFlBQUEsaUNBQ0EsT0FDQSxNQUFBLEtBRUEsS0FBQSxTQUFBLEdBQ0EsRUFBQSxZQUNBLEVBQUEsY0FDQSxJQUFBLEtBQ0EsR0FBQSxPQUFBLFNBQUEsR0FDQSxHQUFBLElBQ0EsTUFBQSxVQUFBLEVBQUEsS0FBQSxJQUNBLFFBQUEsbUNBQUEsRUFBQSxLQUFBLGtCQUNBLFlBQUEsZUFDQSxXQUFBLGlCQUNBLGVBQUEsRUFDQSxRQUFBLFdBQ0EsRUFBQSxRQUFBLEdBQUEsRUFBQSxNQUFBLElBQUEsSUFBQSxFQUFBLEtBQUEsU0FBQSxHQUNBLEVBQUEsTUFBQSxRQUtBLEVBQUEsVUFBQSxTQUFBLEdBRUEsSUFBQSxHQURBLEdBQUEsRUFBQSxHQUNBLEVBQUEsRUFBQSxFQUFBLEVBQUEsT0FBQSxJQUNBLEdBQUEsRUFBQSxHQUFBLEVBQUEsT0FBQSxDQUVBLFFBQUEsR0FFQSxFQUFBLGFBQUEsU0FBQSxHQUNBLEVBQUEsR0FBQSxDQUNBLEtBQUEsR0FBQSxHQUFBLEVBQUEsRUFBQSxFQUFBLE1BQUEsYUFBQSxPQUFBLElBQ0EsRUFBQSxNQUFBLGFBQUEsR0FBQSxNQUFBLElBQUEsRUFBQSxJQUVBLE9BQUEsR0FBQSxJQUVBLEVBQUEsT0FBQSxTQUFBLEdBQ0EsRUFBQSxRQUNBLEdBQUEsRUFBQSxNQUFBLElBQ0EsSUFBQSxFQUFBLEtBQ0EsSUFFQSxFQUFBLEtBQUEsU0FBQSxHQUNBLEVBQUEsU0FBQSxFQUFBLE1BQUEsYUFBQSxRQUFBLElBQUEsUUFBQSxLQUFBLElBRUEsRUFBQSxPQUFBLFNBQUEsR0FDQSxFQUFBLE1BQUEsYUFBQSxHQUFBLEVBQUEsU0FBQSxJQUVBLEVBQUEsS0FBQSxXQUNBLEdBQUEsRUFBQSxRQUFBLE9BQUEsQ0FDQSxHQUFBLEdBQUEsR0FBQSxHQUFBLEVBQUEsWUFDQSxHQUFBLE9BQUEsR0FBQSxFQUFBLE1BQUEsS0FBQSxTQUFBLEdBQ0EsRUFBQSxNQUFBLEVBQ0EsRUFBQSxpQkFFQSxFQUFBLFFBQUEsc0JDM0RBLFFBQUEsT0FBQSxVQUNBLE9BQUEsV0FBQSxVQUFBLFNBQUEsR0FDQSxNQUFBLFVBQUEsR0FDQSxHQUFBLEVBQUEsQ0FDQSxHQUFBLEdBQUEsS0FBQSxNQUFBLEdBQ0EsR0FBQSxHQUFBLE9BQUEsVUFDQSxFQUFBLEVBQUEsRUFDQSxFQUFBLEtBQUEsTUFBQSxFQUFBLEtBQ0EsRUFBQSxLQUFBLE1BQUEsRUFBQSxJQUNBLEVBQUEsS0FBQSxNQUFBLEVBQUEsSUFDQSxFQUFBLEtBQUEsTUFBQSxFQUFBLEdBQ0EsT0FBQSxHQUFBLEdBQ0EsTUFBQSxFQUFBLFFBQUEsRUFBQSxVQUNBLEVBQUEsRUFDQSxFQUFBLFlBQ0EsR0FBQSxFQUNBLFlBQ0EsRUFBQSxFQUNBLEVBQUEsYUFDQSxHQUFBLEVBQ0EsY0FDQSxFQUFBLEVBQ0EsRUFBQSxlQUNBLEdBQUEsRUFDQSxlQUVBLHlCQzFCQSxRQUFBLE9BQUEsVUFDQSxRQUFBLGdCQUFBLFdBQUEsU0FBQSxHQUVBLE1BQUEsVUFBQSxHQUNBLEdBQUEsRUFDQSxHQUFBLEdBQ0EsWUFBQSw4QkFDQSxhQUFBLFFBQ0EsV0FBQSxXQUNBLEtBQUEsTUFBQSxFQUFBLE1BQ0EsS0FBQSxRQUFBLEVBQUEsUUFDQSxLQUFBLFFBQUEsRUFBQSxRQUFBLFdBQUEsRUFBQSxVQUFBLEVBQUEsZUFBQSxFQUNBLEtBQUEsT0FBQSxFQUFBLFdBQ0EsS0FBQSxZQUFBLEVBQUEsYUFBQSxVQUNBLEtBQUEsV0FBQSxFQUFBLFlBQUEsU0FDQSxLQUFBLGNBQUEsRUFBQSxpQkFHQSxFQUFBLFdBRUEsS0FBQSxRQUFBLFdBQ0EsRUFBQSxrQkNyQkEsUUFBQSxPQUFBLFVBQ0EsUUFBQSxnQkFBQSxXQUFBLFdBQUEsU0FBQSxFQUFBLEdBQ0EsTUFBQSxVQUFBLEdBQ0EsR0FBQSxFQUNBLEdBQUEsR0FDQSxZQUFBLDhCQUNBLGFBQUEsZUFDQSxXQUFBLFdBQ0EsS0FBQSxNQUFBLEVBQUEsTUFDQSxLQUFBLFFBQUEsRUFBQSxRQUNBLEtBQUEsTUFBQSxFQUFBLFdBQ0EsS0FBQSxLQUFBLEVBQUEsSUFDQSxJQUFBLEdBQUEsRUFBQSxTQUFBLEdBQ0EsR0FBQSxFQUFBLFdBQUEsTUFHQSxFQUFBLFdBRUEsS0FBQSxRQUFBLFdBQ0EsRUFBQSIsImZpbGUiOiJwdWJsaWMvYnVpbGQvYXBwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScsIFsndWkucm91dGVyJywnbmdSZXNvdXJjZScsJ25nRngnLCdidGZvcmQubW9kYWwnLCduZ1RhZ3NJbnB1dCcsJ25nQW5pbWF0ZSddKVxuICAgIC5jb25maWcoZnVuY3Rpb24oJHN0YXRlUHJvdmlkZXIsICR1cmxSb3V0ZXJQcm92aWRlciwgJGxvY2F0aW9uUHJvdmlkZXIpe1xuICAgICAgICAkbG9jYXRpb25Qcm92aWRlci5odG1sNU1vZGUodHJ1ZSk7XG4gICAgICAgICR1cmxSb3V0ZXJQcm92aWRlci5vdGhlcndpc2UoXCIvbm90Zm91bmRcIilcbiAgICAgICAgJHN0YXRlUHJvdmlkZXJcbiAgICAgICAgLnN0YXRlKCdpbmRleCcse1xuICAgICAgICAgICAgdXJsIDogJy8nLFxuICAgICAgICAgICAgdGVtcGxhdGVVcmwgOiAndGVtcGxhdGVzL2hvbWUuaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyIDogJ0hvbWVDdHJsJ1xuICAgICAgICB9KVxuICAgICAgICAuc3RhdGUoJ25ld2V2ZW50Jyx7XG4gICAgICAgICAgICB1cmwgOiAnL25ldycsXG4gICAgICAgICAgICB0ZW1wbGF0ZVVybCA6ICd0ZW1wbGF0ZXMvbmV3ZXZlbnQuaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyIDogJ05ld0V2ZW50Q3RybCdcbiAgICAgICAgfSlcbiAgICAgICAgLnN0YXRlKCdhYm91dCcsIHtcbiAgICAgICAgICAgIHVybCA6ICcvYWJvdXQnLFxuICAgICAgICAgICAgdGVtcGxhdGVVcmwgOiAndGVtcGxhdGVzL2Fib3V0Lmh0bWwnLFxuICAgICAgICAgICAgY29udHJvbGxlciA6ICdBYm91dEN0cmwnXG4gICAgICAgIH0pXG4gICAgICAgIC5zdGF0ZSgnbm90Zm91bmQnLCB7XG4gICAgICAgICAgICB1cmwgOiAnL25vdGZvdW5kJyxcbiAgICAgICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9ub3Rmb3VuZC5odG1sJ1xuICAgICAgICB9KVxuICAgICAgICAuc3RhdGUoJ2V2ZW50Jyx7XG4gICAgICAgICAgICB1cmwgOiAnLzppZCcsXG4gICAgICAgICAgICB0ZW1wbGF0ZVVybCA6ICd0ZW1wbGF0ZXMvZXZlbnQuaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyIDogJ0V2ZW50Q3RybCdcbiAgICAgICAgfSlcbiAgICAgICAgLnN0YXRlKCdlZGl0ZXZlbnQnLCB7XG4gICAgICAgICAgICB1cmw6ICcvOmlkL2VkaXQnLFxuICAgICAgICAgICAgdGVtcGxhdGVVcmwgOiAndGVtcGxhdGVzL2VkaXRldmVudC5odG1sJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgOiAnRWRpdEV2ZW50Q3RybCdcbiAgICAgICAgfSlcbiAgICAgICAgLnN0YXRlKCd2ZXJpZnlldmVudCcsIHtcbiAgICAgICAgICAgIHVybCA6ICcvdmVyaWZ5LzppZC9jb2RlLzpjb2RlJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgOiAnVmVyaWZpY2F0aW9uQ3RybCdcbiAgICAgICAgfSlcbiAgICAgICAgLnN0YXRlKCdkZWxldGVldmVudCcsIHtcbiAgICAgICAgICAgIHVybCA6ICcvZGVsZXRlLzppZC9jb2RlLzpjb2RlJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgOiAnRGVsZXRpb25DdHJsJ1xuICAgICAgICB9KVxuICAgIH0pXG4gICAgLmZhY3RvcnkoJ0V2ZW50JywgZnVuY3Rpb24oJHJlc291cmNlKXtcbiAgICAgICAgcmV0dXJuICRyZXNvdXJjZSgnL2FwaS9ldmVudC86aWQnLCB7IGlkIDogJ0BfaWQnIH0sIHtcbiAgICAgICAgICAgICd1cGRhdGUnIDogeyBtZXRob2QgOiAnUFVUJyB9LFxuICAgICAgICAgICAgJ3ZlcmlmeScgOiB7IG1ldGhvZCA6ICdHRVQnLCB1cmwgOiAnL2FwaS9ldmVudC86aWQvY29kZS86Y29kZScgfSxcbiAgICAgICAgICAgICdkZXN0cm95JzogeyBtZXRob2QgOiAnREVMRVRFJywgdXJsOiAnL2FwaS9ldmVudC86aWQvY29kZS86Y29kZScgfVxuICAgICAgICB9KTtcbiAgICB9KVxuICAgIC5mYWN0b3J5KCdQYXJ0aWNpcGFudCcsIGZ1bmN0aW9uKCRyZXNvdXJjZSl7XG4gICAgICAgIHJldHVybiAkcmVzb3VyY2UoJy9hcGkvZXZlbnQvOmlkL3BhcnRpY2lwYW50LzpwaWQnLCB7IGlkOiAnQF9pZCd9LCB7XG4gICAgICAgICAgICAndXBkYXRlJyA6IHsgbWV0aG9kIDogJ1BVVCcgfVxuICAgICAgICB9KTtcbiAgICB9KVxuICAgIC5mYWN0b3J5KCdDb21tZW50JywgZnVuY3Rpb24oJHJlc291cmNlKXtcbiAgICAgICAgcmV0dXJuICRyZXNvdXJjZSgnL2FwaS9ldmVudC86aWQvY29tbWVudC86Y2lkJywgeyBpZCA6ICdAX2lkJyB9LCB7XG4gICAgICAgICAgICAndXBkYXRlJyA6IHsgbWV0aG9kIDogJ1BVVCcgfVxuICAgICAgICB9KVxuICAgIH0pXG4gICAgLmZhY3RvcnkoJ1RpdGxlJywgZnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNldCA6IGZ1bmN0aW9uKHRpdGxlKXtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC50aXRsZSA9IHRpdGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4iLCJhbmd1bGFyLm1vZHVsZShcInJhbGxseVwiKS5ydW4oW1wiJHRlbXBsYXRlQ2FjaGVcIiwgZnVuY3Rpb24oJHRlbXBsYXRlQ2FjaGUpIHskdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvYWJvdXQuaHRtbFwiLFwiPGRpdiBzdHlsZT1cXFwibWF4LXdpZHRoOjYwMHB4XFxcIj5cXG4gICAgPGgxPldoYXQgaXMgUmFsbGx5PzwvaDE+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJsLXBhZ2UtZGVzY1xcXCI+UmFsbGx5IGlzIGEgY29sbGFib3JhdGl2ZSBzY2hlZHVsaW5nIHNlcnZpY2UgdGhhdCBtYWtlcyBkZWNpZGluZyBvbiBhIGRhdGUgZmFzdCBhbmQgZWFzeS48L2Rpdj5cXG4gICAgPGgyPkhpLCBJXFwnbSBMdWtlITwvaDI+XFxuICAgIDxwPlxcbiAgICAgICAgSSBjcmVhdGVkIFJhbGxseSBhcyBzaWRlIHByb2plY3QgdG8gaGVscCBtZSBsZWFybiBzb21lIG5ldyB0ZWNobm9sb2dpZXMuIEkgZGVjaWRlZCB0byBwdWJsaXNoIGl0IGJlY2F1c2UgSSB0aG91Z2h0IG90aGVyIHBlb3BsZSBtaWdodCBmaW5kIGl0IHVzZWZ1bC4gUmFsbGx5IGlzIGEgY29tcGxldGVseSBmcmVlIHNlcnZpY2UuIEluIGZhY3QgaXQgaXMgZXZlbiBvcGVuIHNvdXJjZS4gWW91IGNhbiBsb29rIGF0IHRoZSBsYXRlc3Qgc291cmNlIGNvZGUgb24gR2l0aHViLlxcbiAgICA8L3A+XFxuPC9kaXY+XFxuXCIpO1xuJHRlbXBsYXRlQ2FjaGUucHV0KFwidGVtcGxhdGVzL2NvbmZpcm1tb2RhbC5odG1sXCIsXCI8ZGl2IGNsYXNzPVxcXCJybC1tb2RhbC1vdmVybGF5XFxcIiBuZy1jbGljaz1cXFwibW9kYWwuY2FuY2VsKClcXFwiPjwvZGl2PlxcblxcbjxkaXYgY2xhc3M9XFxcInJsLW1vZGFsXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicmwtbW9kYWwtdGl0bGVcXFwiPnt7bW9kYWwudGl0bGV9fTwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJybC1tb2RhbC1tZXNzYWdlXFxcIj5cXG4gICAgICAgIHt7bW9kYWwubWVzc2FnZX19XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJybC1tb2RhbC1hY3Rpb25zXFxcIj5cXG4gICAgICAgIDxidXR0b24gdHlwZT1cXFwiYnV0dG9uXFxcIiBuZy1jbGljaz1cXFwibW9kYWwuY29uZmlybSgpXFxcIiBuZy1zaG93PVxcXCJtb2RhbC5jb25maXJtXFxcIiBjbGFzcz1cXFwiYnRuXFxcIiBuZy1jbGFzcz1cXFwie2RhbmdlciA6IG1vZGFsLmlzRGVzdHJ1Y3RpdmV9XFxcIj57e21vZGFsLmNvbmZpcm1UZXh0fX08L2J1dHRvbj5cXG4gICAgICAgIDxidXR0b24gdHlwZT1cXFwiYnV0dG9uXFxcIiBuZy1jbGljaz1cXFwibW9kYWwuY2FuY2VsKClcXFwiICBjbGFzcz1cXFwiYnRuXFxcIj57e21vZGFsLmNhbmNlbFRleHR9fTwvYnV0dG9uPlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvZWRpdGV2ZW50Lmh0bWxcIixcIjxkaXYgbmctc2hvdz1cXFwiZXZlbnQuX2lkXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiYm94XFxcIj5cXG5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImJveC10aXRsZVxcXCI+RWRpdCBFdmVudDwvZGl2PlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiYm94LWRlc2NyaXB0aW9uXFxcIj5cXG4gICAgICAgICAgICBZb3UgY2FuIG1ha2VzIGNoYW5nZXMgdG8geW91ciBleGlzdGluZyBldmVudCBieSBjaGFuZ2luZyB0aGUgZmllbGRzIGluIHRoZSBmb3JtIGJlbG93LlxcbiAgICAgICAgPC9kaXY+XFxuXFxuICAgICAgICA8Zm9ybSBub3ZhbGlkYXRlIG5hbWU9XFxcImZvcm1cXFwiIG5nLXN1Ym1pdD1cXFwic3VibWl0KClcXFwiPlxcblxcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVxcXCJib3gtc2VjdGlvblxcXCIgdXNlci1mb3JtIGZvcm09XFxcImZvcm1cXFwiIGV2ZW50PVxcXCJldmVudFxcXCI+XFxuXFxuICAgICAgICAgICAgPC9zZWN0aW9uPlxcblxcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVxcXCJib3gtc2VjdGlvblxcXCIgZXZlbnQtZm9ybSBmb3JtPVxcXCJmb3JtXFxcIiBldmVudD1cXFwiZXZlbnRcXFwiPlxcblxcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cXFwiYm94LXNlY3Rpb25cXFwiIGRhdGUtZm9ybSBmb3JtPVxcXCJmb3JtXFxcIiBldmVudD1cXFwiZXZlbnRcXFwiPlxcblxcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cXG5cXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cXFwiYm94LXNlY3Rpb25cXFwiIHNldHRpbmdzLWZvcm0gZm9ybT1cXFwiZm9ybVxcXCIgZXZlbnQ9XFxcImV2ZW50XFxcIj5cXG5cXG4gICAgICAgICAgICA8L3NlY3Rpb24+XFxuXFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiYm94LWNvbnRyb2xzIGJveC1ib3R0b20tc3RpY2t5XFxcIj5cXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVxcXCJzdWJtaXRcXFwiIG5nLXNob3c9XFxcImRpZENoYW5nZSgpXFxcIiBjbGFzcz1cXFwiYnRuIGJ0bi1wcmltYXJ5XFxcIiBuZy1jbGFzcz1cXFwie2Rpc2FibGVkIDogIWRpZENoYW5nZSgpfVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICBTYXZlIENoYW5nZXNcXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cXFwiYnV0dG9uXFxcIiBuZy1jbGljaz1cXFwidW5kb0NoYW5nZXMoKVxcXCIgY2xhc3M9XFxcImJ0blxcXCIgbmctc2hvdz1cXFwiZGlkQ2hhbmdlKClcXFwiPlVuZG8gQ2hhbmdlczwvYnV0dG9uPlxcbiAgICAgICAgICAgICAgICA8YSBocmVmPVxcXCIve3tldmVudC5faWR9fVxcXCIgY2xhc3M9XFxcImJ0blxcXCIgbmctaGlkZT1cXFwiZGlkQ2hhbmdlKClcXFwiPkRvbmU8L2E+XFxuICAgICAgICAgICAgPC9kaXY+XFxuXFxuICAgICAgICA8L2Zvcm0+XFxuXFxuICAgIDwvZGl2PlxcblxcbjwvZGl2PlxcblwiKTtcbiR0ZW1wbGF0ZUNhY2hlLnB1dChcInRlbXBsYXRlcy9ldmVudC5odG1sXCIsXCI8ZGl2IG5nLXNob3c9XFxcImV2ZW50Ll9pZCAmJiAhZXZlbnQuaXNEZWxldGVkXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiYm94IFxcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJldmVudC1oZWFkZXJcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImF2YXRhclxcXCI+XFxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL2V2ZW50aWNvbi5wbmdcXFwiIHdpZHRoPVxcXCIzMlxcXCIgLz5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJkZXRhaWxzXFxcIj5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwidGl0bGVcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAge3tldmVudC50aXRsZX19XFxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwidGl0bGUtbGFiZWwgZGFuZ2VyXFxcIiBuZy1zaG93PVxcXCJldmVudC5pc0Nsb3NlZFxcXCI+UG9sbCBDbG9zZWQ8L3NwYW4+XFxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwidGl0bGUtbGFiZWwgc3VjY2Vzc1xcXCIgbmctaGlkZT1cXFwiZXZlbnQuaXNDbG9zZWRcXFwiPlBvbGwgT3Blbjwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInN1YnRpdGxlXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIENyZWF0ZWQgYnkgPGEgaHJlZj1cXFwibWFpbHRvOnt7ZXZlbnQuY3JlYXRvci5lbWFpbH19XFxcIj57e2V2ZW50LmNyZWF0b3IubmFtZX19PC9hPiAmYnVsbDsge3tldmVudC5jcmVhdGVkIHwgZWxhcHNlZH19XFxuICAgICAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImFjdGlvbnNcXFwiPlxcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVxcXCJidG5cXFwiIG5nLWNsaWNrPVxcXCJlZGl0RXZlbnQoKVxcXCI+RWRpdCBFdmVudDwvYnV0dG9uPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJib3gtc2lkZS1zdGlja3kgZXZlbnQtZGVzY3JpcHRpb25cXFwiIG5nLXNob3c9XFxcImV2ZW50LmRlc2NyaXB0aW9uXFxcIj57e2V2ZW50LmRlc2NyaXB0aW9ufX08L2Rpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImJveC1ib3R0b20tc3RpY2t5IGV2ZW50LWxvY2F0aW9uXFxcIiBuZy1zaG93PVxcXCJldmVudC5sb2NhdGlvblxcXCI+XFxuICAgICAgICAgICAgPGltZyBzcmM9XFxcIi9pbWFnZXMvbG9jYXRpb24ucG5nXFxcIiB3aWR0aD1cXFwiMThcXFwiIC8+PGEgaHJlZj1cXFwiaHR0cDovL2dvb2dsZS5jb20vbWFwcz9xPXt7ZXZlbnQubG9jYXRpb259fVxcXCIgdGFyZ2V0PVxcXCJfYmxhbmtcXFwiPnt7ZXZlbnQubG9jYXRpb259fTwvYT5cXG4gICAgICAgIDwvZGl2PlxcblxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiYm94IGJveC14LXNjcm9sbFxcXCI+XFxuICAgICAgICA8ZGl2IHBvbGwgZXZlbnQ9XFxcImV2ZW50XFxcIiBjbGFzcz1cXFwicG9sbFxcXCI+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcImJveFxcXCIgbmctaGlkZT1cXFwiZXZlbnQuY29tbWVudHMubGVuZ3RoID09IDAgJiYgZXZlbnQuaXNDbG9zZWRcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiYm94LXRpdGxlXFxcIj5cXG4gICAgICAgICAgICBEaXNjdXNzaW9uXFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImJveC1kZXNjcmlwdGlvblxcXCI+XFxuICAgICAgICAgICAgWW91IGNhbiBkaXNjdXNzIHRoZSBldmVudCB3aXRoIHlvdXIgZnJpZW5kcyBieSBsZWF2aW5nIGEgY29tbWVudCBiZWxvdy5cXG4gICAgICAgIDwvZGl2PlxcbiAgICAgICAgPGRpdiBkaXNjdXNzaW9uIGV2ZW50PVxcXCJldmVudFxcXCI+XFxuXFxuICAgICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuXCIpO1xuJHRlbXBsYXRlQ2FjaGUucHV0KFwidGVtcGxhdGVzL2hvbWUuaHRtbFwiLFwiPGRpdiBjbGFzcz1cXFwicGFnZS1wbGFjZWhvbGRlclxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImltYWdlXFxcIj5cXG4gICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL21hcmtfbGFyZ2UucG5nXFxcIiB3aWR0aD1cXFwiNjdcXFwiIC8+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJ0aXRsZVxcXCI+XFxuICAgICAgICBTY2hlZHVsZSBhbiBFdmVudFxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiY29udGVudFxcXCI+XFxuICAgICAgICBXYW50IHRvIGhvc3QgYW4gZXZlbnQgYnV0IGNhbuKAmXQgZGVjaWRlIG9uIGEgZGF0ZT8gQ2xpY2sgb24gdGhlIGJ1dHRvbiBiZWxvdyB0byBzdGFydCFcXG4gICAgPC9kaXY+XFxuICAgIDxidXR0b24gbmctY2xpY2s9XFxcIm5ld0V2ZW50KClcXFwiIGNsYXNzPVxcXCJidG5cXFwiPlNjaGVkdWxlIE5ldyBFdmVudDwvYnV0dG9uPlxcbjwvZGl2PlxcblwiKTtcbiR0ZW1wbGF0ZUNhY2hlLnB1dChcInRlbXBsYXRlcy9uZXdldmVudC5odG1sXCIsXCI8ZGl2IG5nLWhpZGU9XFxcImV2ZW50VXJsXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiYm94XFxcIiBuZy1jbGFzcz1cXFwie1xcJ2FuaW1hdGVkIHNoYWtlXFwnOiBmb3JtLiRzdWJtaXR0ZWQgJiYgZm9ybS4kaW52YWxpZCB9XFxcIj5cXG5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImJveC10aXRsZVxcXCI+U2NoZWR1bGUgYSBOZXcgRXZlbnQ8L2Rpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImJveC1kZXNjcmlwdGlvblxcXCI+XFxuICAgICAgICAgICAgRmlsbCBpbiB0aGUgZm9ybSBiZWxvdyB0byBjcmVhdGUgeW91ciBldmVudCBhbmQgc2hhcmUgaXQgd2l0aCB5b3VyIGZyaWVuZHMgYW5kIGNvbGxlYWd1ZXMuXFxuICAgICAgICA8L2Rpdj5cXG5cXG4gICAgICAgIDxmb3JtIG5vdmFsaWRhdGUgYXV0b2NvbXBsZXRlPVxcXCJvZmZcXFwiIG5hbWU9XFxcImZvcm1cXFwiIG5nLXN1Ym1pdD1cXFwic3VibWl0KClcXFwiPlxcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVxcXCJib3gtc2VjdGlvblxcXCIgdXNlci1mb3JtIGZvcm09XFxcImZvcm1cXFwiIGV2ZW50PVxcXCJldmVudFxcXCI+XFxuXFxuICAgICAgICAgICAgPC9zZWN0aW9uPlxcblxcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVxcXCJib3gtc2VjdGlvblxcXCIgZXZlbnQtZm9ybSBmb3JtPVxcXCJmb3JtXFxcIiBldmVudD1cXFwiZXZlbnRcXFwiPlxcblxcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cXG5cXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cXFwiYm94LXNlY3Rpb25cXFwiIGRhdGUtZm9ybSBmb3JtPVxcXCJmb3JtXFxcIiBldmVudD1cXFwiZXZlbnRcXFwiPlxcblxcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cXG5cXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cXFwiYm94LXNlY3Rpb25cXFwiIHBhcnRpY2lwYW50cy1mb3JtIGZvcm09XFxcImZvcm1cXFwiIGV2ZW50PVxcXCJldmVudFxcXCI+XFxuXFxuICAgICAgICAgICAgPC9zZWN0aW9uPlxcblxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImJveC1jb250cm9scyBib3gtYm90dG9tLXN0aWNreVxcXCI+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cXFwic3VibWl0XFxcIiBjbGFzcz1cXFwiYnRuIGJ0bi1wcmltYXJ5XFxcIj5DcmVhdGUgRXZlbnQ8L2J1dHRvbj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG5cXG4gICAgICAgIDwvZm9ybT5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuPGRpdiBuZy1zaG93PVxcXCJldmVudFVybFxcXCIgY2xhc3M9XFxcImJveCBmeC1mYWRlLXVwXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiYm94LW1lc3NhZ2VcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcIm1haW4taW1hZ2VcXFwiPlxcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy9zdWNjZXNzX2xhcmdlLnBuZ1xcXCIgd2lkdGg9XFxcIjEwMFxcXCIgLz5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwidGl0bGVcXFwiPkV2ZW50IENyZWF0ZWQ8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiY29udGVudFxcXCI+XFxuICAgICAgICBZb3VyIGV2ZW50IGhhcyBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5ISBZb3Ugc2hvdWxkIHJlY2VpdmUgYW4gZW1haWwgc2hvcnRseSB3aXRoIGluc3RydWN0aW9ucyB0byB2ZXJpZnkgeW91ciBlbWFpbCBhZGRyZXNzLlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwibWluaS1kaXZpZGVyXFxcIj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgPGlucHV0IHR5cGU9XFxcInRleHRcXFwiIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiIGRpc2FibGVkPVxcXCJ0cnVlXFxcIiB2YWx1ZT1cXFwie3tldmVudFVybH19XFxcIiAvPlxcbiAgICAgICAgPGEgaHJlZj1cXFwie3tldmVudFVybH19XFxcIiBjbGFzcz1cXFwiYnRuIGZvcm0tYnRuXFxcIj5HTzwvYT5cXG4gICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbjwvZGl2PlxcblwiKTtcbiR0ZW1wbGF0ZUNhY2hlLnB1dChcInRlbXBsYXRlcy9ub3Rmb3VuZC5odG1sXCIsXCI8aDE+RXJyb3IgNDA0PC9oMT5cXG48aDI+Tm90IEZvdW5kPC9oMj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvbm90aWZpY2F0aW9uLmh0bWxcIixcIjxkaXYgY2xhc3M9XFxcIm5vdGlmaWNhdGlvbiB7e25vdGlmaWNhdGlvbi50eXBlfX1cXFwiIG5nLWNsaWNrPVxcXCJub3RpZmljYXRpb24uY2xvc2UoKVxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInRpdGxlXFxcIj5cXG4gICAgICAgIHt7bm90aWZpY2F0aW9uLnRpdGxlfX1cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcIm1lc3NhZ2VcXFwiPlxcbiAgICAgICAge3tub3RpZmljYXRpb24ubWVzc2FnZX19XFxuICAgIDwvZGl2PlxcbjwvZGl2PlxcblwiKTtcbiR0ZW1wbGF0ZUNhY2hlLnB1dChcInRlbXBsYXRlcy9kaXJlY3RpdmVzL2Rpc2N1c3Npb24uaHRtbFwiLFwiPHVsIGNsYXNzPVxcXCJjb21tZW50LXRocmVhZFxcXCIgbmctc2hvdz1cXFwiZXZlbnQuY29tbWVudHMubGVuZ3RoXFxcIj5cXG4gICAgPGxpIG5nLXJlcGVhdD1cXFwiY29tbWVudCBpbiBldmVudC5jb21tZW50c1xcXCIgY2xhc3M9XFxcImNvbW1lbnRcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiYXZhdGFyLXNlY3Rpb25cXFwiPlxcbiAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL2F2YXRhci5wbmdcXFwiIC8+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImNvbW1lbnQtc2VjdGlvblxcXCI+XFxuICAgICAgICAgICAgPGEgaHJlZj1cXFwiI1xcXCIgY2xhc3M9XFxcImNvbW1lbnQtZGVsZXRlXFxcIiBuZy1jbGljaz1cXFwiZGVsZXRlQ29tbWVudChjb21tZW50KVxcXCI+JnRpbWVzOzwvYT5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJtZXRhXFxcIj5cXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcIm5hbWVcXFwiPnt7Y29tbWVudC5hdXRob3IubmFtZX19PC9zcGFuPlxcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwidGltZVxcXCI+e3tjb21tZW50LmNyZWF0ZWQgfCBlbGFwc2VkfX08L3NwYW4+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY29udGVudFxcXCI+e3tjb21tZW50LmNvbnRlbnR9fTwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgIDwvbGk+XFxuPC91bD5cXG48Zm9ybSBub3ZhbGlkYXRlIG5nLXN1Ym1pdD1cXFwicG9zdENvbW1lbnQoKVxcXCIgbmFtZT1cXFwiY29tbWVudEZvcm1cXFwiIGNsYXNzPVxcXCJjb21tZW50LWZvcm1cXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJhdmF0YXItc2VjdGlvblxcXCI+XFxuICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy9hdmF0YXIucG5nXFxcIiAvPlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiaW5wdXQtc2VjdGlvbiBmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImNvbnRlbnQtc2VjdGlvblxcXCI+XFxuICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiIHJlcXVpcmVkIG5nLW1vZGVsPVxcXCJjb21tZW50LmNvbnRlbnRcXFwiIHBsYWNlaG9sZGVyPVxcXCJXcml0ZSBhIGNvbW1lbnQuLi5cXFwiPjwvdGV4dGFyZWE+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcIm5hbWUtc2VjdGlvblxcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwibmFtZS1jb250YWluZXJcXFwiPlxcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cXFwidGV4dFxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCIgcmVxdWlyZWQgcGxhY2Vob2xkZXI9XFxcIllvdXIgTmFtZVxcXCIgbmctbW9kZWw9XFxcImNvbW1lbnQuYXV0aG9yLm5hbWVcXFwiIC8+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cXFwic3VibWl0XFxcIiBjbGFzcz1cXFwiYnRuXFxcIj5Qb3N0IENvbW1lbnQ8L2J1dHRvbj5cXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZvcm0tZXJyb3JcXFwiIG5nLXNob3c9XFxcImNvbW1lbnRGb3JtLiRzdWJtaXR0ZWQgJiYgY29tbWVudEZvcm0uJGVycm9yXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL2Vycm9yLnBuZ1xcXCIgd2lkdGg9XFxcIjE0XFxcIiAvPiBNYWtlIHN1cmUgeW91IGZpbGwgaW4gYWxsIHRoZSBmaWVsZHMuXFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Zvcm0+XFxuXCIpO1xuJHRlbXBsYXRlQ2FjaGUucHV0KFwidGVtcGxhdGVzL2RpcmVjdGl2ZXMvcG9sbC5odG1sXCIsXCI8ZGl2IGNsYXNzPVxcXCJwb2xsLWhlYWRlclxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImhlYWRlciBwYXJ0aWNpcGFudHMtaGVhZGVyXFxcIj5cXG4gICAgICAgIHt7ZXZlbnQucGFydGljaXBhbnRzLmxlbmd0aH19IHBhcnRpY2lwYW50c1xcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiaGVhZGVyIGRhdGUtaGVhZGVyXFxcIiBuZy1yZXBlYXQ9XFxcImRhdGUgaW4gZXZlbnQuZGF0ZXNcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiZGF0aWNvblxcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZG93XFxcIj5cXG4gICAgICAgICAgICAgICAge3tkYXRlIHwgZGF0ZTogXFwnRUVFXFwnfX1cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJkYXlcXFwiPlxcbiAgICAgICAgICAgICAgICB7e2RhdGUgfCBkYXRlOiBcXCdkXFwnfX1cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJtb250aFxcXCI+XFxuICAgICAgICAgICAgICAgIHt7ZGF0ZSB8IGRhdGUgOiBcXCdNTU1cXCd9fVxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVxcXCJjb3VudFxcXCIgbmctc2hvdz1cXFwic2VsZWN0ZWREYXRlKCRpbmRleClcXFwiIG5nLWNsYXNzPXt0b3A6aXNUb3BEYXRlKCRpbmRleCl9Pnt7c2VsZWN0ZWREYXRlKCRpbmRleCl9fTwvc3Bhbj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiaGVhZGVyIGFjdGlvbnMtaGVhZGVyXFxcIj5cXG5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuPGRpdiBjbGFzcz1cXFwicG9sbC1ib2R5XFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicG9sbC1lbnRyeVxcXCIgbmctcmVwZWF0PVxcXCJwYXJ0aWNpcGFudCBpbiBldmVudC5wYXJ0aWNpcGFudHNcXFwiPlxcbiAgICAgICAgPGZvcm0gbm92YWxpZGF0ZSBuZy1zdWJtaXQ9XFxcInVwZGF0ZShwYXJ0aWNpcGFudCk7IGVkaXRNb2RlID0gZmFsc2VcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImNlbGwgbmFtZS1jZWxsXFxcIj5cXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImF2YXRhciBzdHlsZS17eyRpbmRleCArIDF9fVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy91c2VyLnBuZ1xcXCIgd2lkdGg9XFxcIjExXFxcIiAvPlxcbiAgICAgICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgICAgIDxpbnB1dCByZXF1aXJlZCBhdXRvY29tcGxldGU9XFxcIm9mZlxcXCIgdHlwZT1cXFwidGV4dFxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbFxcXCIgbmctbW9kZWw9XFxcInBhcnRpY2lwYW50Lm5hbWVcXFwiIG5nLXNob3c9XFxcImVkaXRNb2RlXFxcIiB2YWx1ZT1cXFwicGFydGljaXBhbnQubmFtZVxcXCIvPlxcbiAgICAgICAgICAgICAgICA8c3BhbiBuZy1oaWRlPVxcXCJlZGl0TW9kZVxcXCIgY2xhc3M9XFxcIm5hbWVcXFwiIG5nLWNsaWNrPVxcXCJlZGl0TW9kZSA9IHRydWUgJiYgIWV2ZW50LmlzQ2xvc2VkOyBlZGl0KHBhcnRpY2lwYW50KVxcXCI+e3twYXJ0aWNpcGFudC5uYW1lfX08L3NwYW4+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY2VsbCB2b3RlLWNlbGxcXFwiIG5nLXJlcGVhdD1cXFwiZGF0ZSBpbiBldmVudC5kYXRlc1xcXCI+XFxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL3RpY2tAMngucG5nXFxcIiAgd2lkdGg9XFxcIjE2XFxcIiBuZy1oaWRlPVxcXCJlZGl0TW9kZVxcXCIgbmctaWY9XFxcInBhcnRpY2lwYW50LmRhdGVzWyRpbmRleF1cXFwiIC8+XFxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL25vcGVAMngucG5nXFxcIiB3aWR0aD1cXFwiOFxcXCIgbmctaGlkZT1cXFwiZWRpdE1vZGVcXFwiIG5nLWlmPVxcXCIhcGFydGljaXBhbnQuZGF0ZXNbJGluZGV4XVxcXCIgLz5cXG4gICAgICAgICAgICAgICAgPGlucHV0IG5nLW1vZGVsPVxcXCJwYXJ0aWNpcGFudC5kYXRlc1skaW5kZXhdXFxcIiBuZy1zaG93PVxcXCJlZGl0TW9kZVxcXCIgbmctZmFsc2UtdmFsdWU9XFxcImZhbHNlXFxcIiB0eXBlPVxcXCJjaGVja2JveFxcXCIgLz5cXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwib3ZlcmxheVxcXCIgbmctc2hvdz1cXFwiZWRpdE1vZGVcXFwiIG5nLWNsaWNrPVxcXCJwYXJ0aWNpcGFudC5kYXRlc1skaW5kZXhdID0gIXBhcnRpY2lwYW50LmRhdGVzWyRpbmRleF1cXFwiPjwvZGl2PlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImNlbGwgYWN0aW9uLWNlbGxcXFwiIG5nLWhpZGU9XFxcImV2ZW50LmlzQ2xvc2VkXFxcIj5cXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVxcXCJidXR0b25cXFwiIG5nLWhpZGU9XFxcImVkaXRNb2RlXFxcIiBuZy1jbGljaz1cXFwiZWRpdE1vZGUgPSB0cnVlOyBlZGl0KHBhcnRpY2lwYW50KVxcXCIgY2xhc3M9XFxcImJ0biBob3ZlclxcXCI+RWRpdDwvYnV0dG9uPlxcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XFxcImJ1dHRvblxcXCIgbmctaGlkZT1cXFwiZWRpdE1vZGVcXFwiIG5nLWNsaWNrPVxcXCJkZWxldGUocGFydGljaXBhbnQpXFxcIiBjbGFzcz1cXFwiYnRuIGRhbmdlciBob3ZlclxcXCI+RGVsZXRlPC9idXR0b24+XFxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cXFwic3VibWl0XFxcIiBuZy1zaG93PVxcXCJlZGl0TW9kZVxcXCIgY2xhc3M9XFxcImJ0blxcXCI+U2F2ZTwvYnV0dG9uPlxcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XFxcImJ1dHRvblxcXCIgbmctc2hvdz1cXFwiZWRpdE1vZGVcXFwiIG5nLWNsaWNrPVxcXCJlZGl0TW9kZSA9IGZhbHNlOyBjYW5jZWwoJGluZGV4KVxcXCIgY2xhc3M9XFxcImJ0blxcXCI+Q2FuY2VsPC9idXR0b24+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Zvcm0+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IG5nLWhpZGU9XFxcImV2ZW50LmlzQ2xvc2VkXFxcIiBjbGFzcz1cXFwicG9sbC1lbnRyeSBoaWdobGlnaHRcXFwiPlxcbiAgICAgICAgPGZvcm0gbm92YWxpZGF0ZSBuYW1lPVxcXCJmb3JtbmV3XFxcIiBuZy1zdWJtaXQ9XFxcInNhdmUoKVxcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiY2VsbCBuYW1lLWNlbGxcXFwiPlxcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiYXZhdGFyIHN0eWxlLXt7cGFydGljaXBhbnQuc3R5bGV9fVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy91c2VyLnBuZ1xcXCIgd2lkdGg9XFxcIjExXFxcIiAvPlxcbiAgICAgICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgICAgIDxpbnB1dCBhdXRvY29tcGxldGU9XFxcIm9mZlxcXCIgbmFtZT1cXFwidXNlcm5hbWVcXFwiIHR5cGU9XFxcInRleHRcXFwiIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2xcXFwiIHBsYWNlaG9sZGVyPVxcXCJZb3VyIG5hbWUuLi5cXFwiIG5nLW1vZGVsPVxcXCJwYXJ0aWNpcGFudC5uYW1lXFxcIiByZXF1aXJlZCB2YWx1ZT1cXFwicGFydGljaXBhbnQubmFtZVxcXCIvPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImNlbGwgdm90ZS1jZWxsXFxcIiBuZy1yZXBlYXQ9XFxcImRhdGUgaW4gZXZlbnQuZGF0ZXNcXFwiPlxcbiAgICAgICAgICAgICAgICA8aW5wdXQgbmctbW9kZWw9XFxcInBhcnRpY2lwYW50LmRhdGVzWyRpbmRleF1cXFwiIG5nLWZhbHNlLXZhbHVlPVxcXCJmYWxzZVxcXCIgdHlwZT1cXFwiY2hlY2tib3hcXFwiIC8+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcIm92ZXJsYXlcXFwiIG5nLWNsaWNrPVxcXCJwYXJ0aWNpcGFudC5kYXRlc1skaW5kZXhdID0gIXBhcnRpY2lwYW50LmRhdGVzWyRpbmRleF1cXFwiPjwvZGl2PlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImNlbGwgYWN0aW9uLWNlbGxcXFwiPlxcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XFxcInN1Ym1pdFxcXCIgbmctY2xhc3M9XFxcInsgXFwnYW5pbWF0ZWQgc2hha2VcXCcgOiBmb3JtbmV3LiRzdWJtaXR0ZWQgJiYgZm9ybW5ldy4kaW52YWxpZCAgfVxcXCIgY2xhc3M9XFxcImJ0blxcXCI+U2F2ZTwvYnV0dG9uPlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9mb3JtPlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvZGlyZWN0aXZlcy9ldmVudEZvcm0vZGF0ZUZvcm0uaHRtbFwiLFwiPGRpdiBjbGFzcz1cXFwic2VjdGlvbi1kZXRhaWxzXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic2VjdGlvbi10aXRsZVxcXCI+Q2hvb3NlIERhdGVzPC9kaXY+XFxuICAgIDx1bCBjbGFzcz1cXFwiZGF0aWNvbi1saXN0XFxcIj5cXG4gICAgICAgIDxsaSBuZy1yZXBlYXQ9XFxcImRhdGUgaW4gZXZlbnQuZGF0ZXNcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImRhdGljb25cXFwiPlxcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJkb3dcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAge3tkYXRlIHwgZGF0ZTogXFwnRUVFXFwnfX1cXG4gICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImRheVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICB7e2RhdGUgfCBkYXRlOiBcXCdkXFwnfX1cXG4gICAgICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcIm1vbnRoXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIHt7ZGF0ZSB8IGRhdGUgOiBcXCdNTU1cXCd9fVxcbiAgICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImRlbGV0ZVxcXCIgbmctY2xpY2s9XFxcImRhdGVwaWNrZXIudW5zZXREYXRlKGRhdGUpXFxcIj48L3NwYW4+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2xpPlxcbiAgICA8L3VsPlxcbjwvZGl2PlxcbjxkaXYgY2xhc3M9XFxcInNlY3Rpb24tbWFpblxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tcm93XFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XFxcImVtYWlsXFxcIj5DYWxlbmRhcjwvbGFiZWw+XFxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZvcm0tZXJyb3JcXFwiIG5nLXNob3c9XFxcIihmb3JtLmRhdGVwaWNrZXIuJGRpcnR5IHx8IGZvcm0uJHN1Ym1pdHRlZCkgJiYgZm9ybS5kYXRlcGlja2VyLiRlcnJvci5yZXF1aXJlZFxcXCI+XFxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL2Vycm9yLnBuZ1xcXCIgd2lkdGg9XFxcIjE0XFxcIiAvPiBZb3UgbmVlZCB0byBzZWxlY3QgYSBmZXcgZGF0ZXNcXG4gICAgICAgICAgICA8L3NwYW4+XFxuICAgICAgICAgICAgPGRpdiBkYXRlcGlja2VyIHJlcXVpcmVkIG5hbWU9XFxcImRhdGVwaWNrZXJcXFwiIGNvbnRyb2w9XFxcImRhdGVwaWNrZXJcXFwiIG5nLW1vZGVsPVxcXCJldmVudC5kYXRlc1xcXCI+XFxuXFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuXCIpO1xuJHRlbXBsYXRlQ2FjaGUucHV0KFwidGVtcGxhdGVzL2RpcmVjdGl2ZXMvZXZlbnRGb3JtL2V2ZW50Rm9ybS5odG1sXCIsXCI8ZGl2IGNsYXNzPVxcXCJzZWN0aW9uLWRldGFpbHNcXFwiPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzZWN0aW9uLXRpdGxlXFxcIj5FdmVudCBEZXRhaWxzPC9kaXY+XFxuPC9kaXY+XFxuPGRpdiBjbGFzcz1cXFwic2VjdGlvbi1tYWluXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1yb3dcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1jb2xcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVxcXCJ0aXRsZVxcXCI+VGl0bGU8L2xhYmVsPlxcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwiZm9ybS1lcnJvclxcXCIgbmctc2hvdz1cXFwiKGZvcm0udGl0bGUuJHRvdWNoZWQgfHwgZm9ybS4kc3VibWl0dGVkKSAmJiBlcnJvcnMudGl0bGVcXFwiPlxcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XFxcIi9pbWFnZXMvZXJyb3IucG5nXFxcIiB3aWR0aD1cXFwiMTRcXFwiIC8+IHt7ZXJyb3JzLnRpdGxlfX1cXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XFxcInRpdGxlXFxcIiBuYW1lPVxcXCJ0aXRsZVxcXCIgbmctbWF4bGVuZ3RoPVxcXCIzMFxcXCIgcmVxdWlyZWQgbmctbW9kZWw9XFxcImV2ZW50LnRpdGxlXFxcIiB0eXBlPVxcXCJ0ZXh0XFxcIiBwbGFjZWhvbGRlcj1cXFwiTW9udGhseSBNZWV0dXAuLi5cXFwiIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2wgZXh0ZW5kXFxcIi8+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tY29sXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwIG9wdGlvbmFsXFxcIj5cXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cXFwibG9jYXRpb25cXFwiPkxvY2F0aW9uPC9sYWJlbD5cXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZvcm0tZXJyb3JcXFwiIG5nLXNob3c9XFxcIihmb3JtLmxvY2F0aW9uLiR0b3VjaGVkIHx8IGZvcm0uJHN1Ym1pdHRlZCkgJiYgZXJyb3JzLmxvY2F0aW9uXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL2Vycm9yLnBuZ1xcXCIgd2lkdGg9XFxcIjE0XFxcIiAvPiB7e2Vycm9ycy5sb2NhdGlvbn19XFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVxcXCJsb2NhdGlvblxcXCIgbmFtZT1cXFwibG9jYXRpb25cXFwiIG5nLW1vZGVsPVxcXCJldmVudC5sb2NhdGlvblxcXCIgbmctbWF4bGVuZ3RoPVxcXCI1MFxcXCIgdHlwZT1cXFwidGV4dFxcXCIgcGxhY2Vob2xkZXI9XFxcIlJpY2tcXCdzIENhZmUuLi5cXFwiIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2wgZXh0ZW5kXFxcIi8+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tcm93XFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXAgb3B0aW9uYWxcXFwiPlxcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XFxcImRlc2NyaXB0aW9uXFxcIiA+RGVzY3JpcHRpb248L2xhYmVsPlxcbiAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD1cXFwiZGVzY3JpcHRpb25cXFwiIG5hbWU9XFxcImRlc2NyaXB0aW9uXFxcIiBuZy1tb2RlbD1cXFwiZXZlbnQuZGVzY3JpcHRpb25cXFwiIHBsYWNlaG9sZGVyPVxcXCJFbnRlciBEZXNjcmlwdGlvbi4uLlxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbCBleHRlbmRcXFwiPjwvdGV4dGFyZWE+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuPC9kaXY+XFxuXCIpO1xuJHRlbXBsYXRlQ2FjaGUucHV0KFwidGVtcGxhdGVzL2RpcmVjdGl2ZXMvZXZlbnRGb3JtL3BhcnRpY2lwYW50c0Zvcm0uaHRtbFwiLFwiPGRpdiBjbGFzcz1cXFwic2VjdGlvbi1kZXRhaWxzXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic2VjdGlvbi10aXRsZVxcXCI+SW52aXRlIFBhcnRpY2lwYW50czwvZGl2PlxcbjwvZGl2PlxcbjxkaXYgY2xhc3M9XFxcInNlY3Rpb24tbWFpblxcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tcm93XFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXAgb3B0aW9uYWxcXFwiPlxcbiAgICAgICAgICAgIDxsYWJlbD5QYXJ0aWNpcGFudFxcJ3MgRW1haWxzPC9sYWJlbD5cXG4gICAgICAgICAgICAgICAgPHRhZ3MtaW5wdXQgbWF4LWxlbmd0aD1cXFwiNTBcXFwiIGFsbG93ZWQtdGFncy1wYXR0ZXJuPVxcXCJ7e2VtYWlsUmVnZXh9fVxcXCIgZGlzcGxheS1wcm9wZXJ0eT1cXFwiZW1haWxcXFwiIG5nLW1vZGVsPVxcXCJldmVudC5lbWFpbHNcXFwiIHBsYWNlaG9sZGVyPVxcXCJBZGQgYW4gRW1haWxcXFwiIHR5cGU9XFxcImVtYWlsXFxcIiBhdXRvY29tcGxldGU9XFxcIm9mZlxcXCI+PC90YWdzLWlucHV0PlxcbiAgICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbjwvZGl2Plxcbjwvc2VjdGlvbj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvZGlyZWN0aXZlcy9ldmVudEZvcm0vc2V0dGluZ3NGb3JtLmh0bWxcIixcIjxkaXYgY2xhc3M9XFxcInNlY3Rpb24tZGV0YWlsc1xcXCI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInNlY3Rpb24tdGl0bGVcXFwiPlNldHRpbmdzPC9kaXY+XFxuPC9kaXY+XFxuPGRpdiBjbGFzcz1cXFwic2VjdGlvbi1tYWluXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3dpdGNoLXJvd1xcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzd2l0Y2gtZGV0YWlsc1xcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwidGl0bGVcXFwiPlxcbiAgICAgICAgICAgICAgICBQb2xsIFN0YXR1c1xcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImRlc2NyaXB0aW9uXFxcIj5cXG4gICAgICAgICAgICAgICAgTGV0IHBlb3BsZSB2b3RlIG9uIHRoZSBwb2xsLlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzd2l0Y2hcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInN3aXRjaC12YWx1ZVxcXCI+XFxuICAgICAgICAgICAgICAgIHt7ZXZlbnQuaXNDbG9zZWQgPyBcXCdDbG9zZWRcXCcgOiBcXCdPcGVuXFwnIH19XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgICAgPGRpdiBzd2l0Y2gtdG9nZ2xlIG5nLW1vZGVsPVxcXCJldmVudC5pc0Nsb3NlZFxcXCIgaW52ZXJ0PlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJzd2l0Y2gtcm93XFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcInN3aXRjaC1kZXRhaWxzXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJ0aXRsZVxcXCI+XFxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnNcXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJkZXNjcmlwdGlvblxcXCI+XFxuICAgICAgICAgICAgICAgIFNlbmQgZW1haWwgbm90aWZpY2F0aW9ucyB0byB0aGUgY3JlYXRvciBvZiB0aGlzIGV2ZW50LlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzd2l0Y2hcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcInN3aXRjaC12YWx1ZVxcXCI+XFxuICAgICAgICAgICAgICAgIHt7ZXZlbnQuY3JlYXRvci5hbGxvd05vdGlmaWNhdGlvbnMgPyBcXCdFbmFibGVkXFwnIDogXFwnRGlzYWJsZWRcXCcgfX1cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IHN3aXRjaC10b2dnbGUgbmctbW9kZWw9XFxcImV2ZW50LmNyZWF0b3IuYWxsb3dOb3RpZmljYXRpb25zXFxcIj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic3dpdGNoLXJvd1xcXCI+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzd2l0Y2gtZGV0YWlsc1xcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwidGl0bGVcXFwiPlxcbiAgICAgICAgICAgICAgICBEZWxldGUgRXZlbnRcXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJkZXNjcmlwdGlvblxcXCI+XFxuICAgICAgICAgICAgICAgIE9uY2UgeW91IGRlbGV0ZSBhbiBldmVudCBpdCB3aWxsIG5vIGxvbmdlciBiZSBhY2Nlc3NpYmxlLlxcbiAgICAgICAgICAgIDwvZGl2PlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJzd2l0Y2hcXFwiPlxcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cXFwiYnV0dG9uXFxcIiBuZy1jbGljaz1cXFwiZGVsZXRlRXZlbnQoKVxcXCIgY2xhc3M9XFxcImJ0biBkYW5nZXJcXFwiPkRlbGV0ZSBFdmVudDwvYnV0dG9uPlxcbiAgICAgICAgPC9kaXY+XFxuICAgIDwvZGl2PlxcbjwvZGl2Plxcbjwvc2VjdGlvbj5cXG5cIik7XG4kdGVtcGxhdGVDYWNoZS5wdXQoXCJ0ZW1wbGF0ZXMvZGlyZWN0aXZlcy9ldmVudEZvcm0vdXNlckZvcm0uaHRtbFwiLFwiPGRpdiBjbGFzcz1cXFwic2VjdGlvbi1kZXRhaWxzXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwic2VjdGlvbi10aXRsZVxcXCI+WW91ciBEZXRhaWxzPC9kaXY+XFxuPC9kaXY+XFxuPGRpdiBjbGFzcz1cXFwic2VjdGlvbi1tYWluXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1yb3dcXFwiPlxcbiAgICAgICAgPGRpdiBjbGFzcz1cXFwiZm9ybS1jb2xcXFwiPlxcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tZ3JvdXBcXFwiPlxcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVxcXCJuYW1lXFxcIj5OYW1lPC9sYWJlbD5cXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZvcm0tZXJyb3JcXFwiIG5nLXNob3c9XFxcIihmb3JtLm5hbWUuJHRvdWNoZWQgfHwgZm9ybS4kc3VibWl0dGVkKSAmJiBlcnJvcnMubmFtZVxcXCI+XFxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cXFwiL2ltYWdlcy9lcnJvci5wbmdcXFwiIHdpZHRoPVxcXCIxNFxcXCIgLz4ge3tlcnJvcnMubmFtZX19XFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVxcXCJuYW1lXFxcIiBuYW1lPVxcXCJuYW1lXFxcIiBuZy1tYXhsZW5ndGg9XFxcIjMwXFxcIiByZXF1aXJlZCBuZy1tb2RlbD1cXFwiZXZlbnQuY3JlYXRvci5uYW1lXFxcIiB0eXBlPVxcXCJ0ZXh0XFxcIiBwbGFjZWhvbGRlcj1cXFwiSm9obiBEb2UuLi5cXFwiIGNsYXNzPVxcXCJmb3JtLWNvbnRyb2wgZXh0ZW5kXFxcIi8+XFxuICAgICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcImZvcm0tY29sXFxcIj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmb3JtLWdyb3VwXFxcIj5cXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cXFwiZW1haWxcXFwiPkVtYWlsPC9sYWJlbD5cXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XFxcImZvcm0tZXJyb3JcXFwiIG5nLXNob3c9XFxcIihmb3JtLmVtYWlsLiR0b3VjaGVkIHx8IGZvcm0uJHN1Ym1pdHRlZCkgJiYgZXJyb3JzLmVtYWlsXFxcIj5cXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVxcXCIvaW1hZ2VzL2Vycm9yLnBuZ1xcXCIgd2lkdGg9XFxcIjE0XFxcIiAvPiB7e2Vycm9ycy5lbWFpbH19XFxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XFxcImVtYWlsXFxcIiBpZD1cXFwiZW1haWxcXFwiIG5hbWU9XFxcImVtYWlsXFxcIiBuZy1wYXR0ZXJuPVxcXCJlbWFpbFJlZ2V4XFxcIiByZXF1aXJlZCBuZy1tb2RlbD1cXFwiZXZlbnQuY3JlYXRvci5lbWFpbFxcXCIgcGxhY2Vob2xkZXI9XFxcImpvaG4uZG9lQGVtYWlsLmNvbS4uLlxcXCIgY2xhc3M9XFxcImZvcm0tY29udHJvbCBleHRlbmRcXFwiLz5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgIDwvZGl2PlxcbiAgICA8L2Rpdj5cXG48L2Rpdj5cXG5cIik7fV0pOyIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLmNvbnRyb2xsZXIoJ0Fib3V0Q3RybCcsIGZ1bmN0aW9uKFRpdGxlKXtcbiAgICBUaXRsZS5zZXQoJ0Fib3V0IFJhbGxseScpXG59KTtcbiIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLmNvbnRyb2xsZXIoJ0FjY291bnRDdHJsJywgZnVuY3Rpb24oJHNjb3BlLCBDb25maXJtTW9kYWwpe1xuICAgICRzY29wZS5zaG93Tm90aWNlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgXG4gICAgfVxufSlcbiIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLmNvbnRyb2xsZXIoJ0RlbGV0aW9uQ3RybCcsIGZ1bmN0aW9uKCRzdGF0ZSwgTm90aWZpY2F0aW9uLCBFdmVudCl7XG4gICAgRXZlbnQuZGVzdHJveSh7aWQgOiAkc3RhdGUucGFyYW1zLmlkLCBjb2RlIDokc3RhdGUucGFyYW1zLmNvZGV9LCBmdW5jdGlvbigpe1xuICAgICAgICB2YXIgbm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICB0aXRsZSA6ICdFdmVudCBkZWxldGVkJyxcbiAgICAgICAgICAgIG1lc3NhZ2UgOiAnVGhpcyBldmVudCBoYXMgYmVlbiBkZWxldGVkJyxcbiAgICAgICAgICAgIHR5cGUgOiAnc3VjY2VzcycsXG4gICAgICAgICAgICB0aW1lb3V0IDogNTAwMFxuICAgICAgICB9KTtcbiAgICB9LCBmdW5jdGlvbihlKXtcbiAgICAgICAgdmFyIG5vdGlmaWNhdGlvbiA9IG5ldyBOb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgdGl0bGUgOiAnRGVsZXRpb24gRmFpbGVkJyxcbiAgICAgICAgICAgIG1lc3NhZ2UgOiAnVGhlIGV2ZW50IGNvdWxkIG5vdCBiZSBkZWxldGVkLiBNYWtlIHN1cmUgdGhhdCBpdCBleGlzdHMgYW5kIHRoYXQgdGhlIHVybCBpcyBjb3JyZWN0JyxcbiAgICAgICAgICAgIHR5cGUgOiAnZXJyb3InXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgICRzdGF0ZS5nbygnZXZlbnQnLCB7IGlkIDogJHN0YXRlLnBhcmFtcy5pZCB9KTtcbn0pO1xuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uY29udHJvbGxlcignRWRpdEV2ZW50Q3RybCcsIGZ1bmN0aW9uKCRzY29wZSwgJGh0dHAsICRzdGF0ZSwgJHRpbWVvdXQsIEV2ZW50LCBDb25maXJtTW9kYWwsIE5vdGlmaWNhdGlvbiwgVGl0bGUpe1xuICAgIHZhciBpZCA9ICRzdGF0ZS5wYXJhbXMuaWRcbiAgICAkc2NvcGUuZXZlbnQgPSBFdmVudC5nZXQoe2lkOmlkfSwgZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIFRpdGxlLnNldChcIkVkaXQ6IFwiICsgJHNjb3BlLmV2ZW50LnRpdGxlKTtcbiAgICAgICAgJHNjb3BlLm1hc3RlciA9IGFuZ3VsYXIuY29weSgkc2NvcGUuZXZlbnQpO1xuICAgIH0sIGZ1bmN0aW9uKGUpe1xuICAgICAgICAkc3RhdGUuZ28oJ25vdGZvdW5kJyk7XG4gICAgfSk7XG4gICAgJHNjb3BlLnVuZG9DaGFuZ2VzID0gZnVuY3Rpb24oKXtcbiAgICAgICAgJHNjb3BlLmV2ZW50ID0gYW5ndWxhci5jb3B5KCRzY29wZS5tYXN0ZXIpO1xuICAgIH1cbiAgICAkc2NvcGUuZGlkQ2hhbmdlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KCRzY29wZS5tYXN0ZXIpICE9IEpTT04uc3RyaW5naWZ5KCRzY29wZS5ldmVudCk7XG4gICAgfVxuICAgICRzY29wZS5kaWRDaGFuZ2VEYXRlcyA9IGZ1bmN0aW9uKCl7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSgkc2NvcGUubWFzdGVyLmRhdGVzKSAhPSBKU09OLnN0cmluZ2lmeSgkc2NvcGUuZXZlbnQuZGF0ZXMpO1xuICAgIH1cbiAgICAkc2NvcGUuc3VibWl0ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgaWYgKCRzY29wZS5mb3JtLiR2YWxpZCl7XG4gICAgICAgICAgICBpZiAoJHNjb3BlLmRpZENoYW5nZURhdGVzKCkgKXtcbiAgICAgICAgICAgICAgICB2YXIgbW9kYWwgPSBuZXcgQ29uZmlybU1vZGFsKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgOiAnSG9sZCB1cCEnLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIDogJ0NoYW5naW5nIHRoZSBkYXRlcyB3aWxsIHJlc2V0IGFsbCBlbnRyaWVzIGJ5IHRoZSBwYXJ0aWNpcGFudHMuIEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkbyB0aGF0PycsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpcm1UZXh0IDogJ1llcywgSVxcJ20gc3VyZScsXG4gICAgICAgICAgICAgICAgICAgIGlzRGVzdHJ1Y3RpdmUgOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb25maXJtIDogZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICRzY29wZS5ldmVudC5wYXJ0aWNpcGFudHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgbm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgdGl0bGUgOiAnTm90IHNvIGZhc3QnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgOiAnTWFrZSBzdXJlIHlvdSBmaWxsIGluIGFsbCB0aGUgcmVxdWlyZWQgZmllbGRzIGFuZCB0cnkgYWdhaW4uJyxcbiAgICAgICAgICAgICAgICB0eXBlIDogJ2Vycm9yJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIHVwZGF0ZSA9IGZ1bmN0aW9uKCl7XG4gICAgICAgIEV2ZW50LnVwZGF0ZSh7XG4gICAgICAgICAgICBpZCA6IGlkXG4gICAgICAgIH0sICRzY29wZS5ldmVudCxcbiAgICAgICAgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHZhciBub3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICB0aXRsZSA6ICdDaGFuZ2VzIFNhdmVkJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlIDogJ1lvdXIgY2hhbmdlcyBoYXZlIGJlZW4gc2F2ZWQgc3VjY2Vzc2Z1bGx5LicsXG4gICAgICAgICAgICAgICAgdHlwZSA6ICdzdWNjZXNzJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkc2NvcGUubWFzdGVyID0gYW5ndWxhci5jb3B5KCRzY29wZS5ldmVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn0pO1xuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uY29udHJvbGxlcignRXZlbnRDdHJsJywgZnVuY3Rpb24oJHNjb3BlLCAkaHR0cCwgJHN0YXRlLCBUaXRsZSwgRXZlbnQsIENvbmZpcm1Nb2RhbCl7XG4gICAgdmFyIGlkID0gJHN0YXRlLnBhcmFtcy5pZDtcbiAgICAkc2NvcGUuZXZlbnQgPSBFdmVudC5nZXQoe2lkOmlkfSwgZnVuY3Rpb24oZGF0YSl7XG4gICAgICAgIFRpdGxlLnNldCgkc2NvcGUuZXZlbnQudGl0bGUpO1xuICAgICAgICAkc2NvcGUuZXZlbnRVcmwgPSAkc3RhdGUuaHJlZignZXZlbnQnLCB7XG4gICAgICAgICAgICBpZDogJHNjb3BlLmV2ZW50Ll9pZFxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBhYnNvbHV0ZSA6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfSwgZnVuY3Rpb24oZSl7XG4gICAgICAgICRzdGF0ZS5nbygnbm90Zm91bmQnKTtcbiAgICB9KTtcblxuICAgICRzY29wZS5vcGVuRXZlbnQgPSBmdW5jdGlvbigpe1xuICAgICAgICAkc2NvcGUuZXZlbnQuaXNDbG9zZWQgPSBmYWxzZTtcbiAgICAgICAgRXZlbnQudXBkYXRlKHtcbiAgICAgICAgICAgIGlkIDogaWRcbiAgICAgICAgfSwgJHNjb3BlLmV2ZW50LFxuICAgICAgICBmdW5jdGlvbigpe1xuICAgICAgICAgICAgdmFyIG1vZGFsID0gbmV3IENvbmZpcm1Nb2RhbCh7XG4gICAgICAgICAgICAgICAgdGl0bGUgOiAnRXZlbnQgT3BlbicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA6ICdQZW9wbGUgY2FuIHZvdGUgYW5kIGNvbW1lbnQgb24gdGhpcyBldmVudC4nLFxuICAgICAgICAgICAgICAgIGNhbmNlbFRleHQgOiAnT0snLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgICRzY29wZS5jbG9zZUV2ZW50ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgJHNjb3BlLmV2ZW50LmlzQ2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgRXZlbnQudXBkYXRlKHtcbiAgICAgICAgICAgIGlkIDogaWRcbiAgICAgICAgfSwgJHNjb3BlLmV2ZW50LFxuICAgICAgICBmdW5jdGlvbigpe1xuICAgICAgICAgICAgdmFyIG1vZGFsID0gbmV3IENvbmZpcm1Nb2RhbCh7XG4gICAgICAgICAgICAgICAgdGl0bGUgOiAnRXZlbnQgQ2xvc2VkJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlIDogJ1Blb3BsZSBjYW4gbm8gbG9uZ2VyIHZvdGUgb3IgY29tbWVudCBvbiB0aGlzIGV2ZW50LicsXG4gICAgICAgICAgICAgICAgY2FuY2VsVGV4dCA6ICdPSycsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgJHNjb3BlLmVkaXRFdmVudCA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICRzdGF0ZS5nbygnZWRpdGV2ZW50JywgeyBpZCA6ICRzY29wZS5ldmVudC5faWQgfSk7XG4gICAgfVxuXG59KTtcbiIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLmNvbnRyb2xsZXIoJ0hvbWVDdHJsJywgZnVuY3Rpb24oJHNjb3BlLCAkc3RhdGUsIFRpdGxlKXtcbiAgICBUaXRsZS5zZXQoJ1JhbGxseSAtIENvbGxhYm9yYXRpdmUgU2NoZWR1bGluZycpXG5cbiAgICAkc2NvcGUubmV3RXZlbnQgPSBmdW5jdGlvbigpe1xuICAgICAgICAkc3RhdGUuZ28oJ25ld2V2ZW50Jyk7XG4gICAgfVxufSk7XG4iLCJhbmd1bGFyLm1vZHVsZSgncmFsbGx5Jylcbi5jb250cm9sbGVyKCdOYXZpZ2F0aW9uQ3RybCcsIGZ1bmN0aW9uKCRzY29wZSwgJGxvY2F0aW9uKXtcbiAgICAkc2NvcGUuaXNBY3RpdmUgPSBmdW5jdGlvbihwYXRoKSB7XG4gICAgICAgIGlmICgkbG9jYXRpb24ucGF0aCgpID09IHBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICB9XG59KVxuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uY29udHJvbGxlcignTmV3RXZlbnRDdHJsJywgZnVuY3Rpb24oJHNjb3BlLCAkaHR0cCwgJHN0YXRlLCBFdmVudCwgQ29uZmlybU1vZGFsLCBOb3RpZmljYXRpb24pe1xuXG4gICAgJHNjb3BlLnRpdGxlID0gXCJTY2hlZHVsZSBhIE5ldyBFdmVudFwiO1xuICAgICRzY29wZS5kZXNjcmlwdGlvbiA9IFwiRmlsbCBpbiB0aGUgZm9ybSBiZWxvdyB0byBjcmVhdGUgeW91ciBldmVudCBhbmQgc2hhcmUgaXQgd2l0aCB5b3VyIGZyaWVuZHMgYW5kIGNvbGxlYWd1ZXMuXCI7XG5cbiAgICAkc2NvcGUuc3VibWl0ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgaWYgKCRzY29wZS5mb3JtLiR2YWxpZCl7XG4gICAgICAgICAgICAkaHR0cC5wb3N0KCcvYXBpL2V2ZW50JywgJHNjb3BlLmV2ZW50KVxuICAgICAgICAgICAgLnN1Y2Nlc3MoZnVuY3Rpb24oZXZlbnQsIHN0YXR1cywgaGVhZGVycywgY29uZmlnKXtcbiAgICAgICAgICAgICAgICAkc2NvcGUuZXZlbnQgPSBldmVudDtcbiAgICAgICAgICAgICAgICAkc2NvcGUuZXZlbnRVcmwgPSAkc3RhdGUuaHJlZignZXZlbnQnLCB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAkc2NvcGUuZXZlbnQuX2lkXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBhYnNvbHV0ZSA6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZXJyb3IoZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICB2YXIgbW9kYWwgPSBuZXcgQ29uZmlybU1vZGFsKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgOiAnVWggb2ghJyxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA6ICdUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgeW91ciBldmVudC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLFxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0IDogJ09LJ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgbm90aWZpY2F0aW9uID0gbmV3IE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICAgICAgdGl0bGUgOiAnTm90IHNvIGZhc3QnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgOiAnTWFrZSBzdXJlIHlvdSBmaWxsIGluIGFsbCB0aGUgcmVxdWlyZWQgZmllbGRzIGFuZCB0cnkgYWdhaW4uJyxcbiAgICAgICAgICAgICAgICB0eXBlIDogJ2Vycm9yJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAkc2NvcGUuY2xlYXJEYXRlcyA9IG51bGxcbn0pO1xuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uY29udHJvbGxlcignVmVyaWZpY2F0aW9uQ3RybCcsIGZ1bmN0aW9uKEV2ZW50LCBOb3RpZmljYXRpb24sICRzdGF0ZSl7XG4gICAgRXZlbnQudmVyaWZ5KHtpZCA6ICRzdGF0ZS5wYXJhbXMuaWQsIGNvZGUgOiRzdGF0ZS5wYXJhbXMuY29kZX0sIGZ1bmN0aW9uKCl7XG4gICAgICAgIHZhciBub3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgIHRpdGxlIDogJ0VtYWlsIFZlcmlmaWVkJyxcbiAgICAgICAgICAgIG1lc3NhZ2UgOiAnWW91ciBlbWFpbCBoYXMgYmVlbiB2ZXJpZmllZC4gWW91IHdpbGwgbm93IGJlIGFibGUgdG8gcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGZvciB0aGlzIGV2ZW50JyxcbiAgICAgICAgICAgIHR5cGUgOiAnc3VjY2VzcycsXG4gICAgICAgICAgICB0aW1lb3V0IDogNTAwMFxuICAgICAgICB9KTtcbiAgICB9LCBmdW5jdGlvbihlKXtcbiAgICAgICAgdmFyIG5vdGlmaWNhdGlvbiA9IG5ldyBOb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgdGl0bGUgOiAnVmVyaWZpY2F0aW9uIEZhaWxlZCcsXG4gICAgICAgICAgICBtZXNzYWdlIDogJ1lvdXIgdmVyaWZpY2F0aW9uIGNvZGUgaGFzIGV4cGlyZWQuJyxcbiAgICAgICAgICAgIHR5cGUgOiAnZXJyb3InXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgICRzdGF0ZS5nbygnZXZlbnQnLCB7IGlkIDogJHN0YXRlLnBhcmFtcy5pZCB9KTtcblxufSk7XG4iLCJhbmd1bGFyLm1vZHVsZSgncmFsbGx5Jylcbi5kaXJlY3RpdmUoJ2JhY2tJbWcnLCBmdW5jdGlvbigpe1xuICAgIHJldHVybiBmdW5jdGlvbihzY29wZSwgZWxlbWVudCwgYXR0cnMpe1xuICAgICAgICB2YXIgdXJsID0gYXR0cnMuYmFja0ltZztcbiAgICAgICAgZWxlbWVudC5jc3Moe1xuICAgICAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKC9pbWFnZXMvJyArIHVybCArJy5wbmcpJ1xuICAgICAgICB9KTtcbiAgICB9O1xufSlcbiIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLmRpcmVjdGl2ZSgnZGF0ZXBpY2tlcicsIGZ1bmN0aW9uKCl7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdHJpY3QgOiAnQScsXG4gICAgICAgIHJlcXVpcmUgOiAnbmdNb2RlbCcsXG4gICAgICAgIHNjb3BlIDoge1xuICAgICAgICAgICAgbW9kZWwgOiAnPW5nTW9kZWwnLFxuICAgICAgICAgICAgY29udHJvbCA6ICc9J1xuICAgICAgICB9LFxuICAgICAgICBsaW5rIDogZnVuY3Rpb24oc2NvcGUsIGVsLCBhdHRycywgbmdNb2RlbCl7XG4gICAgICAgICAgICBzY29wZS5tb2RlbCA9IHNjb3BlLm1vZGVsIHx8IFtdO1xuICAgICAgICAgICAgYW5ndWxhci5lbGVtZW50KGVsKS5kYXRlcGlja2VyKHtcbiAgICAgICAgICAgICAgICBtdWx0aWRhdGUgOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRvZGF5SGlnaGxpZ2h0OiB0cnVlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm9uKCdjaGFuZ2VEYXRlJywgZnVuY3Rpb24oZSl7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGVzID0gZS5kYXRlcztcbiAgICAgICAgICAgICAgICBkYXRlcy5zb3J0KGZ1bmN0aW9uKGEsIGIpe1xuICAgICAgICAgICAgICAgICAgICBpZiAoYS5nZXRUaW1lKCkgPiBiLmdldFRpbWUoKSkgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBuZ01vZGVsLiRzZXRWaWV3VmFsdWUoZGF0ZXMsIGUpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHZhciB1cGRhdGUgPSBmdW5jdGlvbihtb2RlbFZhbHVlLCBvbGRWYWx1ZSl7XG4gICAgICAgICAgICAgICAgaWYgKCFtb2RlbFZhbHVlIHx8ICFvbGRWYWx1ZSB8fCAobW9kZWxWYWx1ZS5sZW5ndGggPT0gb2xkVmFsdWUubGVuZ3RoKSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHZhciBkYXRlcyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWxWYWx1ZS5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVzLnB1c2gobmV3IERhdGUobW9kZWxWYWx1ZVtpXSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhbmd1bGFyLmVsZW1lbnQoZWwpLmRhdGVwaWNrZXIoJ3NldERhdGVzJywgZGF0ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2NvcGUuJHdhdGNoQ29sbGVjdGlvbignbW9kZWwnLCB1cGRhdGUpO1xuXG4gICAgICAgICAgICBzY29wZS5jb250cm9sID0gc2NvcGUuY29udHJvbCB8fCB7fTtcbiAgICAgICAgICAgIHNjb3BlLmNvbnRyb2wudW5zZXREYXRlID0gZnVuY3Rpb24oZGF0ZSl7XG4gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gc2NvcGUubW9kZWwuaW5kZXhPZihkYXRlKTtcbiAgICAgICAgICAgICAgICBzY29wZS5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBuZ01vZGVsLiR2YWxpZGF0b3JzLnJlcXVpcmVkID0gZnVuY3Rpb24obW9kZWxWYWx1ZSwgdmlld1ZhbHVlKXtcbiAgICAgICAgICAgICAgICBpZiAoIW1vZGVsVmFsdWUgfHwgbW9kZWxWYWx1ZS5sZW5ndGggPT0gMCl7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cbn0pO1xuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uZGlyZWN0aXZlKCdkaXNjdXNzaW9uJywgZnVuY3Rpb24oJHRpbWVvdXQsIENvbW1lbnQsIENvbmZpcm1Nb2RhbCl7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVzdHJpY3QgOiAnQScsXG4gICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9kaXJlY3RpdmVzL2Rpc2N1c3Npb24uaHRtbCcsXG4gICAgICAgIHNjb3BlIDoge1xuICAgICAgICAgICAgJ2V2ZW50JyA6ICc9J1xuICAgICAgICB9LFxuICAgICAgICBsaW5rIDogZnVuY3Rpb24oc2NvcGUsIGVsLCBhdHRycyl7XG4gICAgICAgICAgICBzY29wZS5jb21tZW50ID0ge307XG4gICAgICAgICAgICB2YXIgdGhyZWFkID0gYW5ndWxhci5lbGVtZW50KCcuY29tbWVudC10aHJlYWQnKTtcbiAgICAgICAgICAgICR0aW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgdGhyZWFkLnNjcm9sbFRvcCh0aHJlYWQucHJvcCgnc2Nyb2xsSGVpZ2h0JykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBzY29wZS5kZWxldGVDb21tZW50ID0gZnVuY3Rpb24oY29tbWVudCl7XG4gICAgICAgICAgICAgICAgdmFyIG1vZGFsID0gbmV3IENvbmZpcm1Nb2RhbCh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlIDogJ0FyZSB5b3Ugc3VyZT8nLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIDogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgdGhpcyBjb21tZW50PycsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpcm1UZXh0IDogJ1llcyAtIGRlbGV0ZScsXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbFRleHQgOiAnTm8gLSBuZXZlcm1pbmQnLFxuICAgICAgICAgICAgICAgICAgICBpc0Rlc3RydWN0aXZlIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlybSA6IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgICAgICAgICBDb21tZW50LnJlbW92ZSh7IGlkIDogc2NvcGUuZXZlbnQuX2lkICwgY2lkIDogY29tbWVudC5faWQgfSwgZnVuY3Rpb24oZXZlbnQpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2NvcGUucG9zdENvbW1lbnQgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIGlmIChzY29wZS5jb21tZW50Rm9ybS4kdmFsaWQpe1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29tbWVudCA9IG5ldyBDb21tZW50KHNjb3BlLmNvbW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50LiRzYXZlKHtpZDpzY29wZS5ldmVudC5faWR9LCBmdW5jdGlvbihldmVudCl7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY29wZS5ldmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuY29tbWVudCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGUuY29tbWVudEZvcm0uJHNldFByaXN0aW5lKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSk7XG4iLCJhbmd1bGFyLm1vZHVsZSgncmFsbGx5Jylcbi5kaXJlY3RpdmUoJ2Ryb3Bkb3duJywgZnVuY3Rpb24oJGRvY3VtZW50KXtcbiAgICByZXR1cm4ge1xuICAgICAgICByZXN0cmljdCA6ICdBJyxcbiAgICAgICAgbGluayA6IGZ1bmN0aW9uKHNjb3BlLCBlbCwgYXR0cnMpe1xuICAgICAgICAgICAgZWwuYWRkQ2xhc3MoJ2Ryb3Bkb3duJyk7XG4gICAgICAgICAgICBzY29wZS5vcGVuID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHZhciBjbGlja0hhbmRsZXIgPSBmdW5jdGlvbihldmVudCl7XG4gICAgICAgICAgICAgICAgdmFyIGlzQ2xpY2tlZEVsZW1lbnRDaGlsZE9mUG9wdXAgPSBlbC5maW5kKGV2ZW50LnRhcmdldCkubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICBpZiAoaXNDbGlja2VkRWxlbWVudENoaWxkT2ZQb3B1cCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHNjb3BlLnRvZ2dsZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzY29wZS50b2dnbGUgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHNjb3BlLm9wZW4gPSAhc2NvcGUub3BlbjtcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUub3Blbil7XG4gICAgICAgICAgICAgICAgICAgIGVsLmFkZENsYXNzKCdvcGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICRkb2N1bWVudC5iaW5kKCdjbGljaycsIGNsaWNrSGFuZGxlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZWwucmVtb3ZlQ2xhc3MoJ29wZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgJGRvY3VtZW50LnVuYmluZCgnY2xpY2snLCBjbGlja0hhbmRsZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0pO1xuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uc2VydmljZSgnRm9ybUhlbHBlcicsIGZ1bmN0aW9uKCl7XG4gICAgdGhpcy5lbWFpbFJlZ2V4U3RyaW5nID0gJ14oW1xcXFx3LVxcXFwuXStAKFtcXFxcdy1dK1xcXFwuKStbXFxcXHctXXsyLDR9KT8kJztcbiAgICB0aGlzLmVtYWlsUmVnZXggPSBuZXcgUmVnRXhwKHRoaXMuZW1haWxSZWdleFN0cmluZyk7XG4gICAgdGhpcy5wcmV0dHlFcnJvciA9IGZ1bmN0aW9uKGVycm9ycywgZmllbGQpe1xuICAgICAgICBpZiAoZXJyb3JzLnJlcXVpcmVkKSByZXR1cm4gZmllbGQgKyBcIiBpcyByZXF1aXJlZFwiO1xuICAgICAgICBpZiAoZXJyb3JzLnBhdHRlcm4pIHJldHVybiBmaWVsZCArIFwiIGlzIGludmFsaWRcIiA7XG4gICAgICAgIGlmIChlcnJvcnMubWF4bGVuZ3RoKSByZXR1cm4gZmllbGQgKyBcIiBpcyB0b28gbG9uZ1wiO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufSlcbi5kaXJlY3RpdmUoJ3VzZXJGb3JtJywgZnVuY3Rpb24oRm9ybUhlbHBlcil7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NvcGUgOiB7XG4gICAgICAgICAgICBldmVudCA6ICc9JyxcbiAgICAgICAgICAgIGZvcm0gOiAnPSdcbiAgICAgICAgfSxcbiAgICAgICAgdGVtcGxhdGVVcmwgOiAndGVtcGxhdGVzL2RpcmVjdGl2ZXMvZXZlbnRGb3JtL3VzZXJGb3JtLmh0bWwnLFxuICAgICAgICBsaW5rIDogZnVuY3Rpb24oc2NvcGUsIGVsLCBhdHRycykge1xuICAgICAgICAgICAgc2NvcGUuZXJyb3JzID0ge307XG5cbiAgICAgICAgICAgIHNjb3BlLmVtYWlsUmVnZXggPSBGb3JtSGVscGVyLmVtYWlsUmVnZXg7XG5cbiAgICAgICAgICAgIHNjb3BlLiR3YXRjaENvbGxlY3Rpb24oJ2Zvcm0ubmFtZS4kZXJyb3InLGZ1bmN0aW9uKGVycm9ycyl7XG4gICAgICAgICAgICAgICAgc2NvcGUuZXJyb3JzLm5hbWUgPSBGb3JtSGVscGVyLnByZXR0eUVycm9yKGVycm9ycywgXCJOYW1lXCIpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHNjb3BlLiR3YXRjaENvbGxlY3Rpb24oJ2Zvcm0uZW1haWwuJGVycm9yJyxmdW5jdGlvbihlcnJvcnMpe1xuICAgICAgICAgICAgICAgIHNjb3BlLmVycm9ycy5lbWFpbCA9IEZvcm1IZWxwZXIucHJldHR5RXJyb3IoZXJyb3JzLCBcIkVtYWlsXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59KVxuLmRpcmVjdGl2ZSgnZXZlbnRGb3JtJywgZnVuY3Rpb24oRm9ybUhlbHBlcil7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NvcGUgOiB7XG4gICAgICAgICAgICBldmVudCA6ICc9JyxcbiAgICAgICAgICAgIGZvcm0gOiAnPSdcbiAgICAgICAgfSxcbiAgICAgICAgdGVtcGxhdGVVcmwgOiAndGVtcGxhdGVzL2RpcmVjdGl2ZXMvZXZlbnRGb3JtL2V2ZW50Rm9ybS5odG1sJyxcbiAgICAgICAgbGluayA6IGZ1bmN0aW9uKHNjb3BlLCBlbCwgYXR0cnMpIHtcbiAgICAgICAgICAgIHNjb3BlLmVycm9ycyA9IHt9O1xuXG4gICAgICAgICAgICBzY29wZS4kd2F0Y2hDb2xsZWN0aW9uKCdmb3JtLnRpdGxlLiRlcnJvcicsZnVuY3Rpb24oZXJyb3JzKXtcbiAgICAgICAgICAgICAgICBzY29wZS5lcnJvcnMudGl0bGUgPSBGb3JtSGVscGVyLnByZXR0eUVycm9yKGVycm9ycywgXCJUaXRsZVwiKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzY29wZS4kd2F0Y2hDb2xsZWN0aW9uKCdmb3JtLmxvY2F0aW9uLiRlcnJvcicsZnVuY3Rpb24oZXJyb3JzKXtcbiAgICAgICAgICAgICAgICBzY29wZS5lcnJvcnMubG9jYXRpb24gPSBGb3JtSGVscGVyLnByZXR0eUVycm9yKGVycm9ycywgXCJMb2NhdGlvblwiKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cbiAgICB9XG59KVxuLmRpcmVjdGl2ZSgnZGF0ZUZvcm0nLCBmdW5jdGlvbigpe1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjb3BlIDoge1xuICAgICAgICAgICAgZXZlbnQgOiAnPScsXG4gICAgICAgICAgICBmb3JtIDogJz0nXG4gICAgICAgIH0sXG4gICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9kaXJlY3RpdmVzL2V2ZW50Rm9ybS9kYXRlRm9ybS5odG1sJ1xuICAgIH1cbn0pXG4uZGlyZWN0aXZlKCdwYXJ0aWNpcGFudHNGb3JtJywgZnVuY3Rpb24oRm9ybUhlbHBlcil7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2NvcGUgOiB7XG4gICAgICAgICAgICBldmVudCA6ICc9JyxcbiAgICAgICAgICAgIGZvcm0gOiAnPSdcbiAgICAgICAgfSxcbiAgICAgICAgdGVtcGxhdGVVcmwgOiAndGVtcGxhdGVzL2RpcmVjdGl2ZXMvZXZlbnRGb3JtL3BhcnRpY2lwYW50c0Zvcm0uaHRtbCcsXG4gICAgICAgIGxpbmsgOiBmdW5jdGlvbihzY29wZSwgZWwsIGF0dHJzKXtcbiAgICAgICAgICAgIHNjb3BlLmVtYWlsUmVnZXggPSBGb3JtSGVscGVyLmVtYWlsUmVnZXhTdHJpbmc7XG4gICAgICAgIH1cbiAgICB9XG59KVxuLmRpcmVjdGl2ZSgnc2V0dGluZ3NGb3JtJywgZnVuY3Rpb24oRXZlbnQpe1xuICAgIHJldHVybiB7XG4gICAgICAgIHNjb3BlIDoge1xuICAgICAgICAgICAgZXZlbnQgOiAnPScsXG4gICAgICAgICAgICBmb3JtIDogJz0nXG4gICAgICAgIH0sXG4gICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9kaXJlY3RpdmVzL2V2ZW50Rm9ybS9zZXR0aW5nc0Zvcm0uaHRtbCcsXG4gICAgICAgIGxpbmsgOiBmdW5jdGlvbihzY29wZSwgZWwsIGF0dHJzKXtcbiAgICAgICAgICAgIHNjb3BlLmRlbGV0ZUV2ZW50ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBFdmVudC5kZWxldGUoeydpZCcgOiBzY29wZS5ldmVudC5faWR9LCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZGVsZXRlJyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59KVxuLmRpcmVjdGl2ZSgnc3dpdGNoVG9nZ2xlJywgZnVuY3Rpb24oKXtcbiAgICByZXR1cm4ge1xuICAgICAgICBzY29wZSA6IHtcbiAgICAgICAgICAgIG1vZGVsIDogJz1uZ01vZGVsJ1xuICAgICAgICB9LFxuICAgICAgICByZXF1aXJlIDogJ25nTW9kZWwnLFxuICAgICAgICBsaW5rIDogZnVuY3Rpb24oc2NvcGUsIGVsLCBhdHRycywgbmdNb2RlbCkge1xuICAgICAgICAgICAgZWwuYWRkQ2xhc3MoJ3N3aXRjaC10b2dnbGUnKTtcbiAgICAgICAgICAgIHZhciBzZXRDbGFzcyA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgaWYgKHNjb3BlLm1vZGVsIF4gdHlwZW9mKGF0dHJzLmludmVydCkgIT09ICd1bmRlZmluZWQnKXtcbiAgICAgICAgICAgICAgICAgICAgZWwuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVsLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY29wZS4kd2F0Y2goJ21vZGVsJywgc2V0Q2xhc3MpO1xuICAgICAgICAgICAgZWwuYmluZCgnY2xpY2snLCBmdW5jdGlvbihlKXtcbiAgICAgICAgICAgICAgICBzY29wZS5tb2RlbCA9ICFzY29wZS5tb2RlbDtcbiAgICAgICAgICAgICAgICBuZ01vZGVsLiRzZXRWaWV3VmFsdWUoc2NvcGUubW9kZWwsIGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59KTtcbiIsImFuZ3VsYXIubW9kdWxlKCdyYWxsbHknKVxuLmRpcmVjdGl2ZSgncG9sbCcsIGZ1bmN0aW9uKFBhcnRpY2lwYW50LCBDb25maXJtTW9kYWwpe1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlc3RyaWN0IDogJ0EnLFxuICAgICAgICB0ZW1wbGF0ZVVybCA6ICd0ZW1wbGF0ZXMvZGlyZWN0aXZlcy9wb2xsLmh0bWwnLFxuICAgICAgICBzY29wZSA6IHtcbiAgICAgICAgICAgICdldmVudCcgOiAnPSdcbiAgICAgICAgfSxcbiAgICAgICAgbGluayA6IGZ1bmN0aW9uKHNjb3BlLCBlbCwgYXR0cnMpe1xuICAgICAgICAgICAgc2NvcGUuZGVmYXVsdHMgPSBbXTtcbiAgICAgICAgICAgIHNjb3BlLnBhcnRpY2lwYW50ID0ge307XG4gICAgICAgICAgICB2YXIgZGF0ZXNDb3VudCA9IFtdO1xuICAgICAgICAgICAgc2NvcGUuZGVsZXRlID0gZnVuY3Rpb24ocGFydGljaXBhbnQpe1xuICAgICAgICAgICAgICAgIHZhciBtb2RhbCA9IG5ldyBDb25maXJtTW9kYWwoe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZSA6ICdEZWxldGUgJyArIHBhcnRpY2lwYW50Lm5hbWUgKyAnPycsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSAnK3BhcnRpY2lwYW50Lm5hbWUrJyBmcm9tIHRoZSBwb2xsPycsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpcm1UZXh0IDogJ1llcyAtIGRlbGV0ZScsXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbFRleHQgOiAnTm8gLSBuZXZlcm1pbmQnLFxuICAgICAgICAgICAgICAgICAgICBpc0Rlc3RydWN0aXZlIDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlybSA6IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgICAgICAgICBQYXJ0aWNpcGFudC5yZW1vdmUoeyBpZCA6IHNjb3BlLmV2ZW50Ll9pZCAsIHBpZCA6IHBhcnRpY2lwYW50Ll9pZCB9LCBmdW5jdGlvbihldmVudCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuZXZlbnQgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY29wZS5pc1RvcERhdGUgPSBmdW5jdGlvbihpbmRleCl7XG4gICAgICAgICAgICAgICAgdmFyIGNvdW50ID0gZGF0ZXNDb3VudFtpbmRleF07XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRlc0NvdW50Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGVzQ291bnRbaV0gPiBjb3VudCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNjb3BlLnNlbGVjdGVkRGF0ZSA9IGZ1bmN0aW9uKGluZGV4KXtcbiAgICAgICAgICAgICAgICBkYXRlc0NvdW50W2luZGV4XSA9IDA7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY29wZS5ldmVudC5wYXJ0aWNpcGFudHMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2NvcGUuZXZlbnQucGFydGljaXBhbnRzW2ldLmRhdGVzW2luZGV4XSkgZGF0ZXNDb3VudFtpbmRleF0rKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGVzQ291bnRbaW5kZXhdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2NvcGUudXBkYXRlID0gZnVuY3Rpb24ocGFydGljaXBhbnQpe1xuICAgICAgICAgICAgICAgIFBhcnRpY2lwYW50LnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGlkIDogc2NvcGUuZXZlbnQuX2lkLFxuICAgICAgICAgICAgICAgICAgICBwaWQgOiBwYXJ0aWNpcGFudC5faWRcbiAgICAgICAgICAgICAgICB9LCBwYXJ0aWNpcGFudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY29wZS5lZGl0ID0gZnVuY3Rpb24ocGFydGljaXBhbnQpe1xuICAgICAgICAgICAgICAgIHNjb3BlLmRlZmF1bHRzW3Njb3BlLmV2ZW50LnBhcnRpY2lwYW50cy5pbmRleE9mKHBhcnRpY2lwYW50KV0gPSBhbmd1bGFyLmNvcHkocGFydGljaXBhbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2NvcGUuY2FuY2VsID0gZnVuY3Rpb24oaW5kZXgpe1xuICAgICAgICAgICAgICAgIHNjb3BlLmV2ZW50LnBhcnRpY2lwYW50c1tpbmRleF0gPSBzY29wZS5kZWZhdWx0c1tpbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY29wZS5zYXZlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGUuZm9ybW5ldy4kdmFsaWQpe1xuICAgICAgICAgICAgICAgICAgICB2YXIgcGFydGljaXBhbnQgPSBuZXcgUGFydGljaXBhbnQoc2NvcGUucGFydGljaXBhbnQpO1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudC4kc2F2ZSh7aWQ6c2NvcGUuZXZlbnQuX2lkfSwgZnVuY3Rpb24oZXZlbnQpe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGUuZXZlbnQgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLnBhcnRpY2lwYW50ID0ge307XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzY29wZS5mb3JtbmV3LiRzZXRQcmlzdGluZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0pO1xuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uZmlsdGVyKCdlbGFwc2VkJywgZnVuY3Rpb24oJGZpbHRlcil7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGRhdGUpe1xuICAgICAgICBpZiAoIWRhdGUpIHJldHVybjtcbiAgICAgICAgdmFyIHRpbWUgPSBEYXRlLnBhcnNlKGRhdGUpLFxuICAgICAgICAgICAgdGltZU5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxuICAgICAgICAgICAgZGlmZmVyZW5jZSA9IHRpbWVOb3cgLSB0aW1lLFxuICAgICAgICAgICAgc2Vjb25kcyA9IE1hdGguZmxvb3IoZGlmZmVyZW5jZSAvIDEwMDApLFxuICAgICAgICAgICAgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKSxcbiAgICAgICAgICAgIGhvdXJzID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApLFxuICAgICAgICAgICAgZGF5cyA9IE1hdGguZmxvb3IoaG91cnMgLyAyNCk7XG4gICAgICAgIGlmIChkYXlzID4gMzApIHtcbiAgICAgICAgICAgIHJldHVybiAnb24gJyArICRmaWx0ZXIoJ2RhdGUnKShkYXRlLCAnTU1NTSBkJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5cyA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXlzICsgXCIgZGF5cyBhZ29cIjtcbiAgICAgICAgfSBlbHNlIGlmIChkYXlzID09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBcIjEgZGF5IGFnb1wiXG4gICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gaG91cnMgKyBcIiBob3VycyBhZ29cIjtcbiAgICAgICAgfSBlbHNlIGlmIChob3VycyA9PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJhbiBob3VyIGFnb1wiO1xuICAgICAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gbWludXRlcyArIFwiIG1pbnV0ZXMgYWdvXCI7XG4gICAgICAgIH0gZWxzZSBpZiAobWludXRlcyA9PSAxKXtcbiAgICAgICAgICAgIHJldHVybiBcImEgbWludXRlIGFnb1wiO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFwiYSBmZXcgc2Vjb25kcyBhZ29cIjtcbiAgICAgICAgfVxuICAgIH1cbn0pXG4iLCJhbmd1bGFyLm1vZHVsZSgncmFsbGx5Jylcbi5mYWN0b3J5KCdDb25maXJtTW9kYWwnLCBmdW5jdGlvbihidGZNb2RhbCl7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24oY29uZmlnKXtcbiAgICAgICAgdmFyIG1vZGFsO1xuICAgICAgICBtb2RhbCA9IGJ0Zk1vZGFsKHtcbiAgICAgICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9jb25maXJtbW9kYWwuaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyQXMgOiAnbW9kYWwnLFxuICAgICAgICAgICAgY29udHJvbGxlciA6IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgdGhpcy50aXRsZSA9IGNvbmZpZy50aXRsZVxuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZSA9IGNvbmZpZy5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybSA9IChjb25maWcuY29uZmlybSkgPyBmdW5jdGlvbigpe2NvbmZpZy5jb25maXJtKCk7IG1vZGFsLmRlYWN0aXZhdGUoKX0gOiBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbCA9IG1vZGFsLmRlYWN0aXZhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtVGV4dCA9IGNvbmZpZy5jb25maXJtVGV4dCB8fCAnQ29uZmlybSc7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxUZXh0ID0gY29uZmlnLmNhbmNlbFRleHQgfHwgJ0NhbmNlbCc7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0Rlc3RydWN0aXZlID0gY29uZmlnLmlzRGVzdHJ1Y3RpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBtb2RhbC5hY3RpdmF0ZSgpO1xuICAgICAgICBcbiAgICAgICAgdGhpcy5kZXN0cm95ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIG1vZGFsLmRlYWN0aXZhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuIiwiYW5ndWxhci5tb2R1bGUoJ3JhbGxseScpXG4uZmFjdG9yeSgnTm90aWZpY2F0aW9uJywgZnVuY3Rpb24oJHRpbWVvdXQsIGJ0Zk1vZGFsKXtcbiAgICByZXR1cm4gZnVuY3Rpb24oY29uZmlnKXtcbiAgICAgICAgdmFyIG1vZGFsO1xuICAgICAgICBtb2RhbCA9IGJ0Zk1vZGFsKHtcbiAgICAgICAgICAgIHRlbXBsYXRlVXJsIDogJ3RlbXBsYXRlcy9ub3RpZmljYXRpb24uaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyQXMgOiAnbm90aWZpY2F0aW9uJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXIgOiBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHRoaXMudGl0bGUgPSBjb25maWcudGl0bGVcbiAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2UgPSBjb25maWcubWVzc2FnZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlID0gbW9kYWwuZGVhY3RpdmF0ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnR5cGUgPSBjb25maWcudHlwZTtcbiAgICAgICAgICAgICAgICB2YXIgdGltZW91dCA9IGNvbmZpZy50aW1lb3V0IHx8IDUwMDA7XG4gICAgICAgICAgICAgICAgJHRpbWVvdXQobW9kYWwuZGVhY3RpdmF0ZSwgdGltZW91dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBtb2RhbC5hY3RpdmF0ZSgpO1xuXG4gICAgICAgIHRoaXMuZGVzdHJveSA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBtb2RhbC5kZWFjdGl2YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG59KTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css index 71333966c..b0d8af332 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -1,7 +1,7 @@ -@import url(http://fonts.googleapis.com/css?family=Roboto:400,600,700);/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,*:before,*:after{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{font-family:"Roboto","Helvetica Neue",Arial,sans-serif}.outer-container{width:100%;height:100%}body{background:#F5F6F8;color:#3D4043;min-width:820px}.main-navigation{width:100%;min-width:820px;color:white}.main-navigation .wrapper{width:100%;padding:0 40px}.main-content{background:#F5F6F8;min-height:100%}.main-content .main-view{height:100%;position:relative;padding:160px 40px 40px 40px;width:100%;min-height:600px}.top-bar{width:100%;box-shadow:0 1px 2px rgba(0,0,0,0.1);height:50px;line-height:50px}.main-navigation{position:fixed;width:100%;z-index:1000}.main-navigation .wrapper{min-width:600px;background:#2E3A54;height:3.75em}.main-navigation .logo{display:inline-block;vertical-align:middle;margin-top:15px}.main-navigation .navigation{display:inline-block;vertical-align:middle;margin-left:60px;margin-top:15px}.main-navigation .navigation .links{padding:0;margin:0;list-style:none;display:inline-block}.main-navigation .navigation .links li{display:inline-block;margin-right:1.25em}.main-navigation .navigation .links a{text-decoration:none;color:#616F8D;font-weight:bold;line-height:1.5em;font-size:0.9375em;opacity:0.7}.main-navigation .navigation .links a:hover{opacity:1;color:white}.main-navigation .navigation .links a:hover .icon{background-position:center bottom}.main-navigation .navigation .links a.active{opacity:1;color:white;cursor:default}.main-navigation .navigation .links a.active .icon{background-position:center bottom}.main-navigation .navigation .links a .text{vertical-align:middle}.main-navigation .navigation .links a .icon{display:inline-block;vertical-align:middle;margin-right:5px;width:16px;height:16px;background-size:16px 32px}.main-navigation .create-new{display:inline-block;float:right;padding:13px}.main-navigation .create-new a{display:block;-webkit-transition:background-color 0.1s ease-in-out;-moz-transition:background-color 0.1s ease-in-out;transition:background-color 0.1s ease-in-out;color:#f0f8ec;text-align:center;border-radius:2px;background-color:#86c766;background-image:-webkit-linear-gradient(#86c766, #74bf4f);background-image:linear-gradient(#86c766, #74bf4f);text-decoration:none;font-size:12px;font-weight:bold;padding:8px 15px 10px 12px}.main-navigation .create-new a:active{box-shadow:inset 0 2px 5px rgba(0,0,0,0.1),0 0 0 1px #20283a}.main-navigation .create-new a img{vertical-align:middle;margin-right:5px;margin-top:-2px}.top-bar{float:left;width:100%;background:rgba(255,255,255,0.9)}.top-bar .primary{list-style:none;margin:0;padding-left:40px;margin-top:-4px}.top-bar .primary .item img{display:inline-block;vertical-align:middle}.top-bar .primary .item .hoverable{padding:8px 12px;height:100%;text-decoration:none;color:#3D4043;font-size:0.75em;border:1px solid transparent;border-radius:3px;vertical-align:bottom;border-color:#D9DDE3}.top-bar .primary .item .hoverable span{vertical-align:middle}.top-bar .primary .item .hoverable:hover{border-color:#bcc3cd}.top-bar .primary .item .dropdown:after{content:"";width:6px;height:4px;margin-left:10px;display:inline-block;background-image:url("../images/dropdown_arrow.png");background-size:6px 4px;background-repeat:no-repeat}/*! +@import url(http://fonts.googleapis.com/css?family=Roboto:400,600,700);/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,*:before,*:after{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{font-family:"Roboto","Helvetica Neue",Arial,sans-serif}a{color:#5AC4E5}.outer-container{width:100%;height:100%}body{background:#F5F6F8;color:#3D4043;min-width:820px}.main-navigation{width:100%;min-width:820px;color:white}.main-navigation .wrapper{width:100%;padding:0 40px}.main-content{background:#F5F6F8;min-height:100%}.main-content .main-view{position:relative;padding:160px 40px 40px 40px;width:100%;min-height:600px}.top-bar{width:100%;box-shadow:0 1px 2px rgba(0,0,0,0.1);height:50px;line-height:50px}.main-navigation{position:fixed;width:100%;z-index:1000}.main-navigation .wrapper{min-width:600px;background:#2E3A54;height:3.75em}.main-navigation .logo{display:inline-block;vertical-align:middle;margin-top:15px}.main-navigation .navigation{display:inline-block;vertical-align:middle;margin-left:60px;margin-top:15px}.main-navigation .navigation .links{padding:0;margin:0;list-style:none;display:inline-block}.main-navigation .navigation .links li{display:inline-block;margin-right:1.25em}.main-navigation .navigation .links a{text-decoration:none;color:#616F8D;font-weight:bold;line-height:1.5em;font-size:0.9375em;opacity:0.7}.main-navigation .navigation .links a:hover{opacity:1;color:white}.main-navigation .navigation .links a:hover .icon{background-position:center bottom}.main-navigation .navigation .links a.active{opacity:1;color:white;cursor:default}.main-navigation .navigation .links a.active .icon{background-position:center bottom}.main-navigation .navigation .links a .text{vertical-align:middle}.main-navigation .navigation .links a .icon{display:inline-block;vertical-align:middle;margin-right:5px;width:16px;height:16px;background-size:16px 32px}.main-navigation .create-new{display:inline-block;float:right;padding:13px}.main-navigation .create-new a{display:block;-webkit-transition:background-color 0.1s ease-in-out;-moz-transition:background-color 0.1s ease-in-out;transition:background-color 0.1s ease-in-out;color:#f0f8ec;text-align:center;border-radius:2px;background-color:#86c766;background-image:-webkit-linear-gradient(#86c766, #74bf4f);background-image:linear-gradient(#86c766, #74bf4f);text-decoration:none;font-size:12px;font-weight:bold;padding:8px 15px 10px 12px}.main-navigation .create-new a:active{box-shadow:inset 0 2px 5px rgba(0,0,0,0.1),0 0 0 1px #20283a}.main-navigation .create-new a img{vertical-align:middle;margin-right:5px;margin-top:-2px}.top-bar{float:left;width:100%;background:rgba(255,255,255,0.9)}.top-bar .primary{list-style:none;margin:0;padding-left:40px;margin-top:-4px}.top-bar .primary .item img{display:inline-block;vertical-align:middle}.top-bar .primary .item .hoverable{padding:8px 12px;height:100%;text-decoration:none;color:#3D4043;font-size:0.75em;border:1px solid transparent;border-radius:3px;vertical-align:bottom;border-color:#D9DDE3}.top-bar .primary .item .hoverable span{vertical-align:middle}.top-bar .primary .item .hoverable:hover{border-color:#bcc3cd}.top-bar .primary .item.dropdown.open .dropdown-toggle{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:#D9DDE3;border-bottom-color:white;position:relative;z-index:1001}.top-bar .primary .item .dropdown-menu{background:white;color:#3D4043;font-size:1em;line-height:1.5em;border:1px solid #D9DDE3;border-radius:3px;padding:20px;margin-top:-9px;border-top-left-radius:0;box-shadow:0 2px 3px #D9DDE3}.top-bar .primary .item .dropdown-menu .dropdown-title{font-weight:bold;font-size:0.9375em}.top-bar .primary .item .dropdown-menu .dropdown-content{font-size:0.875em;line-height:1.5em;color:#828B9A}/*! Animate.css - http://daneden.me/animate Licensed under the MIT license - http://opensource.org/licenses/MIT Copyright (c) 2014 Daniel Eden -*/.animated{-webkit-animation-duration:0.3s;animation-duration:0.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,20%,53%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);-webkit-transform:translate3d(0, -30px, 0);transform:translate3d(0, -30px, 0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);-webkit-transform:translate3d(0, -15px, 0);transform:translate3d(0, -15px, 0)}90%{-webkit-transform:translate3d(0, -4px, 0);transform:translate3d(0, -4px, 0)}}@keyframes bounce{0%,20%,53%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);-webkit-transform:translate3d(0, -30px, 0);transform:translate3d(0, -30px, 0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);-webkit-transform:translate3d(0, -15px, 0);transform:translate3d(0, -15px, 0)}90%{-webkit-transform:translate3d(0, -4px, 0);transform:translate3d(0, -4px, 0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.05, 1.05, 1.05);transform:scale3d(1.05, 1.05, 1.05)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.05, 1.05, 1.05);transform:scale3d(1.05, 1.05, 1.05)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}30%{-webkit-transform:scale3d(1.25, 0.75, 1);transform:scale3d(1.25, 0.75, 1)}40%{-webkit-transform:scale3d(0.75, 1.25, 1);transform:scale3d(0.75, 1.25, 1)}50%{-webkit-transform:scale3d(1.15, 0.85, 1);transform:scale3d(1.15, 0.85, 1)}65%{-webkit-transform:scale3d(0.95, 1.05, 1);transform:scale3d(0.95, 1.05, 1)}75%{-webkit-transform:scale3d(1.05, 0.95, 1);transform:scale3d(1.05, 0.95, 1)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}30%{-webkit-transform:scale3d(1.25, 0.75, 1);transform:scale3d(1.25, 0.75, 1)}40%{-webkit-transform:scale3d(0.75, 1.25, 1);transform:scale3d(0.75, 1.25, 1)}50%{-webkit-transform:scale3d(1.15, 0.85, 1);transform:scale3d(1.15, 0.85, 1)}65%{-webkit-transform:scale3d(0.95, 1.05, 1);transform:scale3d(0.95, 1.05, 1)}75%{-webkit-transform:scale3d(1.05, 0.95, 1);transform:scale3d(1.05, 0.95, 1)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0, 0, 1, 15deg);transform:rotate3d(0, 0, 1, 15deg)}40%{-webkit-transform:rotate3d(0, 0, 1, -10deg);transform:rotate3d(0, 0, 1, -10deg)}60%{-webkit-transform:rotate3d(0, 0, 1, 5deg);transform:rotate3d(0, 0, 1, 5deg)}80%{-webkit-transform:rotate3d(0, 0, 1, -5deg);transform:rotate3d(0, 0, 1, -5deg)}100%{-webkit-transform:rotate3d(0, 0, 1, 0deg);transform:rotate3d(0, 0, 1, 0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0, 0, 1, 15deg);transform:rotate3d(0, 0, 1, 15deg)}40%{-webkit-transform:rotate3d(0, 0, 1, -10deg);transform:rotate3d(0, 0, 1, -10deg)}60%{-webkit-transform:rotate3d(0, 0, 1, 5deg);transform:rotate3d(0, 0, 1, 5deg)}80%{-webkit-transform:rotate3d(0, 0, 1, -5deg);transform:rotate3d(0, 0, 1, -5deg)}100%{-webkit-transform:rotate3d(0, 0, 1, 0deg);transform:rotate3d(0, 0, 1, 0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}10%,20%{-webkit-transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes tada{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}10%,20%{-webkit-transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)}30%{-webkit-transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)}45%{-webkit-transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)}60%{-webkit-transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)}75%{-webkit-transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)}30%{-webkit-transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)}45%{-webkit-transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)}60%{-webkit-transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)}75%{-webkit-transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)}100%{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(0.9, 0.9, 0.9);transform:scale3d(0.9, 0.9, 0.9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(0.97, 0.97, 0.97);transform:scale3d(0.97, 0.97, 0.97)}100%{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(0.9, 0.9, 0.9);transform:scale3d(0.9, 0.9, 0.9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(0.97, 0.97, 0.97);transform:scale3d(0.97, 0.97, 0.97)}100%{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:0.75s;animation-duration:0.75s}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, -3000px, 0);transform:translate3d(0, -3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, 25px, 0);transform:translate3d(0, 25px, 0)}75%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}90%{-webkit-transform:translate3d(0, 5px, 0);transform:translate3d(0, 5px, 0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, -3000px, 0);transform:translate3d(0, -3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, 25px, 0);transform:translate3d(0, 25px, 0)}75%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}90%{-webkit-transform:translate3d(0, 5px, 0);transform:translate3d(0, 5px, 0)}100%{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(-3000px, 0, 0);transform:translate3d(-3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(25px, 0, 0);transform:translate3d(25px, 0, 0)}75%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}90%{-webkit-transform:translate3d(5px, 0, 0);transform:translate3d(5px, 0, 0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(-3000px, 0, 0);transform:translate3d(-3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(25px, 0, 0);transform:translate3d(25px, 0, 0)}75%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}90%{-webkit-transform:translate3d(5px, 0, 0);transform:translate3d(5px, 0, 0)}100%{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(3000px, 0, 0);transform:translate3d(3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(-25px, 0, 0);transform:translate3d(-25px, 0, 0)}75%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}90%{-webkit-transform:translate3d(-5px, 0, 0);transform:translate3d(-5px, 0, 0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(3000px, 0, 0);transform:translate3d(3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(-25px, 0, 0);transform:translate3d(-25px, 0, 0)}75%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}90%{-webkit-transform:translate3d(-5px, 0, 0);transform:translate3d(-5px, 0, 0)}100%{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, 3000px, 0);transform:translate3d(0, 3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}75%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}90%{-webkit-transform:translate3d(0, -5px, 0);transform:translate3d(0, -5px, 0)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, 3000px, 0);transform:translate3d(0, 3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}75%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}90%{-webkit-transform:translate3d(0, -5px, 0);transform:translate3d(0, -5px, 0)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(0.9, 0.9, 0.9);transform:scale3d(0.9, 0.9, 0.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}100%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(0.9, 0.9, 0.9);transform:scale3d(0.9, 0.9, 0.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}100%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:0.75s;animation-duration:0.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px, 0, 0);transform:translate3d(20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px, 0, 0);transform:translate3d(20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px, 0, 0);transform:translate3d(-20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px, 0, 0);transform:translate3d(-20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, 20px, 0);transform:translate3d(0, 20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, 20px, 0);transform:translate3d(0, 20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -360deg);transform:perspective(400px) rotate3d(0, 1, 0, -360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(0.95, 0.95, 0.95);transform:perspective(400px) scale3d(0.95, 0.95, 0.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -360deg);transform:perspective(400px) rotate3d(0, 1, 0, -360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(0.95, 0.95, 0.95);transform:perspective(400px) scale3d(0.95, 0.95, 0.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 10deg);transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -5deg);transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 10deg);transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -5deg);transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible !important;backface-visibility:visible !important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -20deg);transform:perspective(400px) rotate3d(0, 1, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 10deg);transform:perspective(400px) rotate3d(0, 1, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -5deg);transform:perspective(400px) rotate3d(0, 1, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -20deg);transform:perspective(400px) rotate3d(0, 1, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 10deg);transform:perspective(400px) rotate3d(0, 1, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -5deg);transform:perspective(400px) rotate3d(0, 1, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible !important;backface-visibility:visible !important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:0.75s;animation-duration:0.75s;-webkit-backface-visibility:visible !important;backface-visibility:visible !important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -15deg);transform:perspective(400px) rotate3d(0, 1, 0, -15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -15deg);transform:perspective(400px) rotate3d(0, 1, 0, -15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible !important;backface-visibility:visible !important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:0.75s;animation-duration:0.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%, 0, 0) skewX(-30deg);transform:translate3d(100%, 0, 0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%, 0, 0) skewX(-30deg);transform:translate3d(100%, 0, 0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%, 0, 0) skewX(30deg);transform:translate3d(100%, 0, 0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%, 0, 0) skewX(30deg);transform:translate3d(100%, 0, 0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, -200deg);transform:rotate3d(0, 0, 1, -200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, -200deg);transform:rotate3d(0, 0, 1, -200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -90deg);transform:rotate3d(0, 0, 1, -90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -90deg);transform:rotate3d(0, 0, 1, -90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, 200deg);transform:rotate3d(0, 0, 1, 200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, 200deg);transform:rotate3d(0, 0, 1, 200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 90deg);transform:rotate3d(0, 0, 1, 90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 90deg);transform:rotate3d(0, 0, 1, 90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0, 0, 1, 80deg);transform:rotate3d(0, 0, 1, 80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0, 0, 1, 60deg);transform:rotate3d(0, 0, 1, 60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0, 700px, 0);transform:translate3d(0, 700px, 0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0, 0, 1, 80deg);transform:rotate3d(0, 0, 1, 80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0, 0, 1, 60deg);transform:rotate3d(0, 0, 1, 60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0, 700px, 0);transform:translate3d(0, 700px, 0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}100%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}100%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(0.1) translate3d(-2000px, 0, 0);transform:scale(0.1) translate3d(-2000px, 0, 0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(0.1) translate3d(-2000px, 0, 0);transform:scale(0.1) translate3d(-2000px, 0, 0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(0.1) translate3d(2000px, 0, 0);transform:scale(0.1) translate3d(2000px, 0, 0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(0.1) translate3d(2000px, 0, 0);transform:scale(0.1) translate3d(2000px, 0, 0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}100%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}100%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInDown{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translateX(100%);transform:translateX(100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight{0%{-webkit-transform:translateX(100%);transform:translateX(100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(100%);transform:translateX(100%)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.btn{border:1px solid #E0E3E9;display:inline-block;border-radius:2px;box-shadow:inset 0 1px 0 white,0 1px 1px rgba(0,0,0,0.1);background-color:#FAFAFA;background-image:-webkit-linear-gradient(#FAFAFA, #EFF1F3);background-image:linear-gradient(#FAFAFA, #EFF1F3);font-size:0.75em;font-weight:600;color:#828B9A;text-decoration:none;padding:0.5em 0.9375em}.btn:hover{background-color:#fbfbfb;background-image:-webkit-linear-gradient(#fbfbfb, #f2f4f5);background-image:linear-gradient(#fbfbfb, #f2f4f5)}.btn.disabled{cursor:default;opacity:0.5}.btn.disabled:active{box-shadow:inset 0 1px 0 white,0 1px 1px rgba(0,0,0,0.1)}.btn.danger{color:#E06488}.btn:focus{outline:0}.btn:active{box-shadow:inset 0 0 2px rgba(0,0,0,0.1)}form{margin:0}form.ng-submitted .ng-invalid{border-color:#E55A84 !important}.form-container{width:100%}.form-row{display:block;margin-bottom:10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-row:after{content:"";display:table;clear:both}.form-col{float:left;display:block;margin-right:2.35765%;width:48.82117%}.form-col:last-child{margin-right:0}.form-col.padded:first-child{padding:0 20px 0 0}.form-col.padded:last-child{padding:0 0 0 20px}.form-group>label{font-size:0.75em;color:#AEB4BE;display:inline-block;line-height:1.875em}.form-group .form-error{font-size:0.75em;color:#E06488;float:right}.form-group .form-error img{vertical-align:bottom;margin-right:3px}.form-group.optional>label:after{content:" (optional)"}.form-group.error input.form-control,.form-group.error textarea.form-control{border-color:#E55A84;background:rgba(229,90,132,0.02)}.form-group input.form-control,.form-group textarea.form-control{border-radius:3px;border:1px solid #D9DDE3;font-size:1.125em;-webkit-transition:border-color 0.1s ease-in-out;-moz-transition:border-color 0.1s ease-in-out;transition:border-color 0.1s ease-in-out}.form-group input.form-control.ng-pristine,.form-group textarea.form-control.ng-pristine{background:#f8f9fa}.form-group input.form-control:focus,.form-group textarea.form-control:focus{border-color:#5AC4E5;box-shadow:0 0 3px rgba(90,196,229,0.5);outline:none;background:white}.form-group input.form-control.extend,.form-group textarea.form-control.extend{width:100%}.form-group input.form-control::-webkit-input-placeholder,.form-group textarea.form-control::-webkit-input-placeholder{color:rgba(174,180,190,0.7)}.form-group input.form-control::-moz-placeholder,.form-group textarea.form-control::-moz-placeholder{color:rgba(174,180,190,0.7)}.form-group input.form-control:-moz-placeholder,.form-group textarea.form-control:-moz-placeholder{color:rgba(174,180,190,0.7)}.form-group input.form-control:-ms-input-placeholder,.form-group textarea.form-control:-ms-input-placeholder{color:rgba(174,180,190,0.7)}.form-group .form-btn{padding:0.75em 0.9375em}.form-group input.form-control{vertical-align:middle;padding:0.3125em 0.625em}.form-group textarea.form-control{min-height:135px;font-size:1.125em;padding:0.5em 0.625em}.form-submit-message{display:inline-block;margin-left:0.3125em;font-size:0.75em}.form-submit-message.error{color:#E06488}.form-submit-message img{vertical-align:middle;margin-right:0.3125em}.box{background:white;border:1px solid #D9DDE3;border-radius:3px;margin:0 auto 20px auto;max-width:800px;padding:20px 25px}.box.box-x-scroll{overflow-x:scroll}.box.invisible{background:transparent;border:0;padding:0;margin-bottom:40px}.box.highlight{border-color:#5AC4E5;box-shadow:0 0 3px rgba(90,196,229,0.5)}.box:last-child{margin-bottom:40px}.box-title{font-size:24px;font-weight:bold;color:#3D4043;margin-bottom:20px}.box-description{font-size:14px;color:#828B9A;padding-bottom:20px;border-bottom:1px solid #D9DDE3;margin-top:-20px;margin-bottom:20px}.box-description a{color:#3D4043;text-decoration:none}.box-description a:hover{border:1px solid #D9DDE3}.box-section{padding-top:20px;display:block}.box-section:after{content:"";display:table;clear:both}.box-section .section-details{float:left;display:block;margin-right:2.35765%;width:23.23176%}.box-section .section-details:last-child{margin-right:0}.box-section .section-details .section-title{font-size:0.875em;color:#828B9A;margin-bottom:20px}.box-section .section-main{float:left;display:block;margin-right:2.35765%;width:74.41059%}.box-section .section-main:last-child{margin-right:0}.box-message{text-align:center;padding:40px;max-width:450px;margin:0 auto}.box-message .main-image{margin-bottom:20px}.box-message .title{font-weight:bold;font-size:1.5em;color:#3D4043;margin-bottom:0.625em}.box-message .content{font-size:0.875em;color:#828B9A;margin-bottom:20px}.box-message .mini-divider:after{content:"";display:inline-block;width:200px;height:1px;background:#D9DDE3;margin:20px auto}.box-side-sticky{padding:20px 25px;box-sizing:content-box;width:100%;margin-left:-25px}.box-bottom-sticky{padding:20px 25px;box-sizing:content-box;width:100%;margin-top:20px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-top:1px solid #D9DDE3;margin-bottom:-20px;margin-left:-25px}.box-controls{text-align:right;box-shadow:inset 0 1px 0 white;background:#f8f9fa;margin-top:20px;padding:15px 25px}.ng-submitted .ng-invalid>.datepicker{border-color:#E55A84}.datepicker{width:100%;border:1px solid rgba(217,221,227,0.5);border-radius:3px;background:white;padding:0.625em;-webkit-transition:border-color 0.1s ease-in-out;-moz-transition:border-color 0.1s ease-in-out;transition:border-color 0.1s ease-in-out}.datepicker table{width:100%;font-size:1em}.datepicker tbody:before{content:'';display:block;height:0.625em}.datepicker .prev,.datepicker .next{opacity:0.5;color:#828B9A;cursor:pointer;border-radius:5px;position:relative}.datepicker .prev:hover,.datepicker .next:hover{opacity:1}.datepicker .prev:hover:after,.datepicker .next:hover:after{opacity:1;background:rgba(217,221,227,0.3)}.datepicker .prev:after,.datepicker .next:after{content:" ";cursor:pointer;opacity:0;position:absolute;width:1.75em;height:1.75em;margin-left:-0.875em;margin-top:-0.875em;left:50%;top:50%;border-radius:3px;-webkit-transition:background-color 0.1s ease-in-out;-moz-transition:background-color 0.1s ease-in-out;transition:background-color 0.1s ease-in-out}.datepicker .datepicker-switch{padding:10px;font-weight:600;font-size:1.125em;border-radius:3px;cursor:pointer;-webkit-transition:background-color 0.1s ease-in-out;-moz-transition:background-color 0.1s ease-in-out;transition:background-color 0.1s ease-in-out}.datepicker .datepicker-switch:hover{background:rgba(217,221,227,0.4)}.datepicker .dow{padding:10px;font-weight:normal;text-transform:uppercase;color:#E55A84;font-size:0.875em;border-bottom:2px solid rgba(217,221,227,0.3)}.datepicker .dow,.datepicker .day{padding:0.9375em}.datepicker .day{text-align:center;font-weight:600;position:relative;font-size:0.875em}.datepicker .day.today{color:#818176}.datepicker .day.today:after{opacity:1;background:rgba(255,255,0,0.1)}.datepicker .day:hover{cursor:pointer}.datepicker .day:hover:after{opacity:1;background:rgba(217,221,227,0.4)}.datepicker .day.new,.datepicker .day.old{font-weight:normal;color:#AEB4BE}.datepicker .day.active{background:white;color:#6EBC48}.datepicker .day.active:after{opacity:1;background:rgba(110,188,72,0.1)}.datepicker .day:active:after{opacity:0.8}.datepicker .day:after{content:" ";-webkit-transition:all 0.1s ease-in-out;-moz-transition:all 0.1s ease-in-out;transition:all 0.1s ease-in-out;cursor:pointer;opacity:0;position:absolute;width:2.1875em;height:2.1875em;margin-left:-1.09375em;margin-top:-1.09375em;left:50%;top:50%;border-radius:3px}.datepicker .month,.datepicker .year{width:33.3%;display:inline-block;text-align:center;font-size:0.875em;padding:1.25em;cursor:pointer;-webkit-transition:background-color 0.1s ease-in-out;-moz-transition:background-color 0.1s ease-in-out;transition:background-color 0.1s ease-in-out;border-radius:3px;text-transform:uppercase}.datepicker .month:hover,.datepicker .year:hover{background:rgba(217,221,227,0.3)}.daticon-list{margin:0;margin-left:-10px;list-style:none;padding:5px;text-align:left}.daticon-list .placeholder{line-height:1.125em;font-size:0.75em;color:#ccc}.daticon-list li{margin:5px;display:inline-block}.daticon{box-shadow:0 0 0 1px rgba(217,221,227,0.5);border-radius:3px;display:inline-block;padding:0.5em 1em;text-align:center;position:relative;cursor:default;background:white}.daticon .dow{font-size:0.375em;margin-top:-1.5em;background:white;color:#AEB4BE;margin-bottom:0.25em;font-weight:normal;text-transform:uppercase}.daticon .day{font-size:1.25em;font-weight:normal;color:#E55A84;line-height:1em}.daticon .month{font-weight:600;font-size:0.75em;text-transform:uppercase}.daticon .delete{text-align:center;border:0;width:1.125em;height:1.125em;position:absolute;top:-7.2px;right:-7.2px;border-radius:100%;display:inline-block;background:rgba(217,221,227,0.5) url(../images/close@2x.png) no-repeat center center;background-size:7px 8px;cursor:pointer;opacity:0}.daticon .delete:hover{background-color:rgba(217,221,227,0.8)}.daticon .count{text-align:center;border:0;width:18px;height:18px;position:absolute;top:-7.2px;right:-7.2px;border-radius:100%;font-weight:bold;display:inline-block;background:#bcc3cd;color:white;font-size:9px;line-height:18px;-webkit-transition:background-color 0.2s ease-in-out;-moz-transition:background-color 0.2s ease-in-out;transition:background-color 0.2s ease-in-out}.daticon .count.top{background:#FF5D5D}.daticon:hover .delete{opacity:1}.rl-modal{background:white;position:fixed;top:50%;left:50%;width:50%;max-width:400px;display:inline-block;min-width:200px;height:auto;z-index:2000;overflow:hidden;border-radius:5px;box-shadow:0 0 0 1px #D9DDE3,0 0 0 5px rgba(217,221,227,0.8),0 0 10px 5px rgba(0,0,0,0.2);-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.rl-modal .rl-modal-message{padding:0 20px 20px 20px;font-size:0.75em;color:#828B9A}.rl-modal .rl-modal-title{padding:20px 20px 0 20px;font-size:1.125em;font-weight:bold}.rl-modal .rl-modal-actions{border-top:1px solid #D9DDE3;box-shadow:inset 0 1px 0 white;background:#f8f9fa;text-align:right;padding:0.625em 1.25em}.rl-modal-overlay{position:fixed;z-index:1999;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.1)}.poll{min-width:100%;display:block}.poll-header{display:table;min-width:100%;border-bottom:1px solid #D9DDE3;box-shadow:0 3px 0 rgba(217,221,227,0.3)}.poll-header .header{display:table-cell;vertical-align:bottom;padding-bottom:20px}.poll-header .header.date-header{text-align:center;min-width:70px;width:70px}.poll-header .header.actions-header{min-width:160px}.poll-header .header.participants-header{font-weight:bold;min-width:235px;width:235px;padding-left:0.625em}.poll-body{min-width:100%}.poll-body .poll-entry.highlight{background:#f6f7f9}.poll-body .poll-entry{display:table;min-width:100%;border-bottom:1px solid rgba(217,221,227,0.5)}.poll-body .poll-entry .hover{visibility:hidden}.poll-body .poll-entry:hover .hover{visibility:visible}.poll-body .poll-entry .cell{padding:0.625em;display:table-cell}.poll-body .poll-entry .cell.name-cell{min-width:235px;width:235px;font-size:0.875em}.poll-body .poll-entry .cell.name-cell .avatar{display:inline-block;padding:5px;margin-right:5px;border-radius:2px;background:#D0D5DF}.poll-body .poll-entry .cell.name-cell .avatar.style-1{background:#8A75AE}.poll-body .poll-entry .cell.name-cell .avatar.style-2{background:#80A1DA}.poll-body .poll-entry .cell.name-cell .avatar.style-3{background:#B3DD8B}.poll-body .poll-entry .cell.name-cell .avatar.style-4{background:#7EE4E4}.poll-body .poll-entry .cell.name-cell .avatar.style-5{background:#FCD285}.poll-body .poll-entry .cell.name-cell .avatar.style-6{background:#F7967F}.poll-body .poll-entry .cell.name-cell .avatar.style-7{background:#E8669D}.poll-body .poll-entry .cell.name-cell .avatar.style-8{background:#F7B6E7}.poll-body .poll-entry .cell.name-cell .avatar.style-9{background:#F99D7B}.poll-body .poll-entry .cell.name-cell .avatar.style-10{background:#88D0CB}.poll-body .poll-entry .cell.name-cell .name{padding:5px 3px;margin-left:2px;border-radius:2px}.poll-body .poll-entry .cell.name-cell .name:hover{background:#F5F6F8;cursor:pointer}.poll-body .poll-entry .cell.name-cell .form-control{border:1px solid #D9DDE3;padding:0.3125em;border-radius:2px;color:#3D4043}.poll-body .poll-entry .cell.name-cell .form-control:focus{outline:0;border-color:#5AC4E5;box-shadow:0 0 3px rgba(90,196,229,0.5)}.poll-body .poll-entry .cell.name-cell .form-control::-webkit-input-placeholder{color:rgba(130,139,154,0.7)}.poll-body .poll-entry .cell.name-cell .form-control::-moz-placeholder{color:rgba(130,139,154,0.7)}.poll-body .poll-entry .cell.name-cell .form-control:-moz-placeholder{color:rgba(130,139,154,0.7)}.poll-body .poll-entry .cell.name-cell .form-control:-ms-input-placeholder{color:rgba(130,139,154,0.7)}.poll-body .poll-entry .cell.action-cell{min-width:160px}.poll-body .poll-entry .cell.vote-cell{min-width:70px;width:70px;text-align:center;position:relative}.poll-body .poll-entry .cell.vote-cell .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.poll-body .poll-entry .cell.vote-cell .overlay:hover{background:rgba(217,221,227,0.2);cursor:pointer}.poll-body .poll-entry.ng-submitted .ng-invalid{border-color:#E55A84 !important}.page-placeholder{margin:0 auto;text-align:center;color:#B0B8C4;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.page-placeholder .image{margin-bottom:20px}.page-placeholder .title{font-size:2.25em;font-weight:bold;margin-bottom:20px}.page-placeholder .content{font-size:0.875em;max-width:320px;font-weight:normal;margin-bottom:20px}.event-description{font-size:1em;white-space:pre-wrap;padding-top:20px;padding-bottom:20px;line-height:1.5em;color:#828B9A;background:#F5F6F8;border-top:1px solid #D9DDE3;margin-top:20px;margin-bottom:-20px}.event-location{font-size:1em}.event-location a{color:#3D4043;text-decoration:none}.event-location a:hover{text-decoration:underline}.event-location img{vertical-align:middle;margin-right:10px}.event-pair{margin-bottom:20px;border-bottom:1px solid #D9DDE3;padding-bottom:20px;float:left;width:100%}.event-pair .icon{display:inline-block;width:30px;float:left;position:relative;text-align:center;height:35px;border-radius:3px;margin-right:10px}.event-pair .icon img{position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.event-pair .content{float:left;display:inline-block}.event-pair .key{font-weight:bold;font-size:11px}.event-pair .value{color:#828B9A}.event-header{width:100%;margin-top:-30px}.event-header .avatar{display:inline-block;margin-right:20px;text-align:center;border-radius:1px;box-shadow:0 0 0 5px white,0 0 0 6px #D9DDE3,inset 0 0 0 1px #D9DDE3;padding:20px;background:#F5F6F8;vertical-align:bottom}.event-header .details{display:inline-block}.event-header .details .title{font-size:1.5em;font-weight:bold}.event-header .details .subtitle{color:#828B9A;font-size:0.875em}.event-header .details .subtitle a{color:#5AC4E5;text-decoration:none}.event-header .details .subtitle a:hover{text-decoration:underline}.event-header .actions{float:right;margin-top:30px}.event-header:hover .actions{visibility:visible} +*/.animated{-webkit-animation-duration:0.3s;animation-duration:0.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,20%,53%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);-webkit-transform:translate3d(0, -30px, 0);transform:translate3d(0, -30px, 0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);-webkit-transform:translate3d(0, -15px, 0);transform:translate3d(0, -15px, 0)}90%{-webkit-transform:translate3d(0, -4px, 0);transform:translate3d(0, -4px, 0)}}@keyframes bounce{0%,20%,53%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}40%,43%{-webkit-transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);-webkit-transform:translate3d(0, -30px, 0);transform:translate3d(0, -30px, 0)}70%{-webkit-transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);transition-timing-function:cubic-bezier(0.755, 0.05, 0.855, 0.06);-webkit-transform:translate3d(0, -15px, 0);transform:translate3d(0, -15px, 0)}90%{-webkit-transform:translate3d(0, -4px, 0);transform:translate3d(0, -4px, 0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,100%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.05, 1.05, 1.05);transform:scale3d(1.05, 1.05, 1.05)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes pulse{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.05, 1.05, 1.05);transform:scale3d(1.05, 1.05, 1.05)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}30%{-webkit-transform:scale3d(1.25, 0.75, 1);transform:scale3d(1.25, 0.75, 1)}40%{-webkit-transform:scale3d(0.75, 1.25, 1);transform:scale3d(0.75, 1.25, 1)}50%{-webkit-transform:scale3d(1.15, 0.85, 1);transform:scale3d(1.15, 0.85, 1)}65%{-webkit-transform:scale3d(0.95, 1.05, 1);transform:scale3d(0.95, 1.05, 1)}75%{-webkit-transform:scale3d(1.05, 0.95, 1);transform:scale3d(1.05, 0.95, 1)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes rubberBand{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}30%{-webkit-transform:scale3d(1.25, 0.75, 1);transform:scale3d(1.25, 0.75, 1)}40%{-webkit-transform:scale3d(0.75, 1.25, 1);transform:scale3d(0.75, 1.25, 1)}50%{-webkit-transform:scale3d(1.15, 0.85, 1);transform:scale3d(1.15, 0.85, 1)}65%{-webkit-transform:scale3d(0.95, 1.05, 1);transform:scale3d(0.95, 1.05, 1)}75%{-webkit-transform:scale3d(1.05, 0.95, 1);transform:scale3d(1.05, 0.95, 1)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}}@keyframes shake{0%,100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0, 0, 1, 15deg);transform:rotate3d(0, 0, 1, 15deg)}40%{-webkit-transform:rotate3d(0, 0, 1, -10deg);transform:rotate3d(0, 0, 1, -10deg)}60%{-webkit-transform:rotate3d(0, 0, 1, 5deg);transform:rotate3d(0, 0, 1, 5deg)}80%{-webkit-transform:rotate3d(0, 0, 1, -5deg);transform:rotate3d(0, 0, 1, -5deg)}100%{-webkit-transform:rotate3d(0, 0, 1, 0deg);transform:rotate3d(0, 0, 1, 0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0, 0, 1, 15deg);transform:rotate3d(0, 0, 1, 15deg)}40%{-webkit-transform:rotate3d(0, 0, 1, -10deg);transform:rotate3d(0, 0, 1, -10deg)}60%{-webkit-transform:rotate3d(0, 0, 1, 5deg);transform:rotate3d(0, 0, 1, 5deg)}80%{-webkit-transform:rotate3d(0, 0, 1, -5deg);transform:rotate3d(0, 0, 1, -5deg)}100%{-webkit-transform:rotate3d(0, 0, 1, 0deg);transform:rotate3d(0, 0, 1, 0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}10%,20%{-webkit-transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes tada{0%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}10%,20%{-webkit-transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);transform:scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);transform:scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)}100%{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)}30%{-webkit-transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)}45%{-webkit-transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)}60%{-webkit-transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)}75%{-webkit-transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)}100%{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);transform:translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg)}30%{-webkit-transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);transform:translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)}45%{-webkit-transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);transform:translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)}60%{-webkit-transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);transform:translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)}75%{-webkit-transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);transform:translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)}100%{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(0.9, 0.9, 0.9);transform:scale3d(0.9, 0.9, 0.9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(0.97, 0.97, 0.97);transform:scale3d(0.97, 0.97, 0.97)}100%{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}20%{-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}40%{-webkit-transform:scale3d(0.9, 0.9, 0.9);transform:scale3d(0.9, 0.9, 0.9)}60%{opacity:1;-webkit-transform:scale3d(1.03, 1.03, 1.03);transform:scale3d(1.03, 1.03, 1.03)}80%{-webkit-transform:scale3d(0.97, 0.97, 0.97);transform:scale3d(0.97, 0.97, 0.97)}100%{opacity:1;-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn;-webkit-animation-duration:0.75s;animation-duration:0.75s}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, -3000px, 0);transform:translate3d(0, -3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, 25px, 0);transform:translate3d(0, 25px, 0)}75%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}90%{-webkit-transform:translate3d(0, 5px, 0);transform:translate3d(0, 5px, 0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, -3000px, 0);transform:translate3d(0, -3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, 25px, 0);transform:translate3d(0, 25px, 0)}75%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}90%{-webkit-transform:translate3d(0, 5px, 0);transform:translate3d(0, 5px, 0)}100%{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(-3000px, 0, 0);transform:translate3d(-3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(25px, 0, 0);transform:translate3d(25px, 0, 0)}75%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}90%{-webkit-transform:translate3d(5px, 0, 0);transform:translate3d(5px, 0, 0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(-3000px, 0, 0);transform:translate3d(-3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(25px, 0, 0);transform:translate3d(25px, 0, 0)}75%{-webkit-transform:translate3d(-10px, 0, 0);transform:translate3d(-10px, 0, 0)}90%{-webkit-transform:translate3d(5px, 0, 0);transform:translate3d(5px, 0, 0)}100%{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(3000px, 0, 0);transform:translate3d(3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(-25px, 0, 0);transform:translate3d(-25px, 0, 0)}75%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}90%{-webkit-transform:translate3d(-5px, 0, 0);transform:translate3d(-5px, 0, 0)}100%{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(3000px, 0, 0);transform:translate3d(3000px, 0, 0)}60%{opacity:1;-webkit-transform:translate3d(-25px, 0, 0);transform:translate3d(-25px, 0, 0)}75%{-webkit-transform:translate3d(10px, 0, 0);transform:translate3d(10px, 0, 0)}90%{-webkit-transform:translate3d(-5px, 0, 0);transform:translate3d(-5px, 0, 0)}100%{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, 3000px, 0);transform:translate3d(0, 3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}75%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}90%{-webkit-transform:translate3d(0, -5px, 0);transform:translate3d(0, -5px, 0)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}@keyframes bounceInUp{0%,60%,75%,90%,100%{-webkit-transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1);transition-timing-function:cubic-bezier(0.215, 0.61, 0.355, 1)}0%{opacity:0;-webkit-transform:translate3d(0, 3000px, 0);transform:translate3d(0, 3000px, 0)}60%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}75%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}90%{-webkit-transform:translate3d(0, -5px, 0);transform:translate3d(0, -5px, 0)}100%{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(0.9, 0.9, 0.9);transform:scale3d(0.9, 0.9, 0.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}100%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(0.9, 0.9, 0.9);transform:scale3d(0.9, 0.9, 0.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1, 1.1, 1.1);transform:scale3d(1.1, 1.1, 1.1)}100%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:0.75s;animation-duration:0.75s}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0, 10px, 0);transform:translate3d(0, 10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, -20px, 0);transform:translate3d(0, -20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px, 0, 0);transform:translate3d(20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px, 0, 0);transform:translate3d(20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px, 0, 0);transform:translate3d(-20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px, 0, 0);transform:translate3d(-20px, 0, 0)}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, 20px, 0);transform:translate3d(0, 20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0, -10px, 0);transform:translate3d(0, -10px, 0)}40%,45%{opacity:1;-webkit-transform:translate3d(0, 20px, 0);transform:translate3d(0, 20px, 0)}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}100%{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}@keyframes fadeOutDownBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, 2000px, 0);transform:translate3d(0, 2000px, 0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}}@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}@keyframes fadeOutLeftBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-2000px, 0, 0);transform:translate3d(-2000px, 0, 0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}}@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}@keyframes fadeOutRightBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(2000px, 0, 0);transform:translate3d(2000px, 0, 0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}}@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}@keyframes fadeOutUpBig{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0, -2000px, 0);transform:translate3d(0, -2000px, 0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -360deg);transform:perspective(400px) rotate3d(0, 1, 0, -360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(0.95, 0.95, 0.95);transform:perspective(400px) scale3d(0.95, 0.95, 0.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -360deg);transform:perspective(400px) rotate3d(0, 1, 0, -360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);transform:perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(0.95, 0.95, 0.95);transform:perspective(400px) scale3d(0.95, 0.95, 0.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 10deg);transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -5deg);transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 10deg);transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -5deg);transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible !important;backface-visibility:visible !important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -20deg);transform:perspective(400px) rotate3d(0, 1, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 10deg);transform:perspective(400px) rotate3d(0, 1, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -5deg);transform:perspective(400px) rotate3d(0, 1, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -20deg);transform:perspective(400px) rotate3d(0, 1, 0, -20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 10deg);transform:perspective(400px) rotate3d(0, 1, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -5deg);transform:perspective(400px) rotate3d(0, 1, 0, -5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible !important;backface-visibility:visible !important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transform:perspective(400px) rotate3d(1, 0, 0, -20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transform:perspective(400px) rotate3d(1, 0, 0, 90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-duration:0.75s;animation-duration:0.75s;-webkit-backface-visibility:visible !important;backface-visibility:visible !important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -15deg);transform:perspective(400px) rotate3d(0, 1, 0, -15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, -15deg);transform:perspective(400px) rotate3d(0, 1, 0, -15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0, 1, 0, 90deg);transform:perspective(400px) rotate3d(0, 1, 0, 90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible !important;backface-visibility:visible !important;-webkit-animation-name:flipOutY;animation-name:flipOutY;-webkit-animation-duration:0.75s;animation-duration:0.75s}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%, 0, 0) skewX(-30deg);transform:translate3d(100%, 0, 0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%, 0, 0) skewX(-30deg);transform:translate3d(100%, 0, 0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}100%{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%, 0, 0) skewX(30deg);transform:translate3d(100%, 0, 0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}100%{-webkit-transform:translate3d(100%, 0, 0) skewX(30deg);transform:translate3d(100%, 0, 0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, -200deg);transform:rotate3d(0, 0, 1, -200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, -200deg);transform:rotate3d(0, 0, 1, -200deg);opacity:0}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -90deg);transform:rotate3d(0, 0, 1, -90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -90deg);transform:rotate3d(0, 0, 1, -90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, 200deg);transform:rotate3d(0, 0, 1, 200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center;transform-origin:center;opacity:1}100%{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0, 0, 1, 200deg);transform:rotate3d(0, 0, 1, 200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 90deg);transform:rotate3d(0, 0, 1, 90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0, 0, 1, 90deg);transform:rotate3d(0, 0, 1, 90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0, 0, 1, 80deg);transform:rotate3d(0, 0, 1, 80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0, 0, 1, 60deg);transform:rotate3d(0, 0, 1, 60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0, 700px, 0);transform:translate3d(0, 700px, 0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0, 0, 1, 80deg);transform:rotate3d(0, 0, 1, 80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0, 0, 1, 60deg);transform:rotate3d(0, 0, 1, 60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translate3d(0, 700px, 0);transform:translate3d(0, 700px, 0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);transform:translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg)}100%{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)}}@keyframes rollOut{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);transform:translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}60%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(0.3, 0.3, 0.3);transform:scale3d(0.3, 0.3, 0.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}100%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}100%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(0.1) translate3d(-2000px, 0, 0);transform:scale(0.1) translate3d(-2000px, 0, 0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(0.1) translate3d(-2000px, 0, 0);transform:scale(0.1) translate3d(-2000px, 0, 0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(0.1) translate3d(2000px, 0, 0);transform:scale(0.1) translate3d(2000px, 0, 0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0)}100%{opacity:0;-webkit-transform:scale(0.1) translate3d(2000px, 0, 0);transform:scale(0.1) translate3d(2000px, 0, 0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}100%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);transform:scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);-webkit-animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19);animation-timing-function:cubic-bezier(0.55, 0.055, 0.675, 0.19)}100%{opacity:0;-webkit-transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);transform:scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1);animation-timing-function:cubic-bezier(0.175, 0.885, 0.32, 1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInDown{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translateX(100%);transform:translateX(100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight{0%{-webkit-transform:translateX(100%);transform:translateX(100%);visibility:visible}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInUp{0%{-webkit-transform:translateY(100%);transform:translateY(100%);visibility:visible}100%{-webkit-transform:translateY(0);transform:translateY(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{visibility:hidden;-webkit-transform:translateX(100%);transform:translateX(100%)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{visibility:hidden;-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.btn{border:1px solid #E0E3E9;display:inline-block;border-radius:2px;box-shadow:inset 0 1px 0 white,0 1px 0 rgba(217,221,227,0.5);background-color:#FAFAFA;background-image:-webkit-linear-gradient(#FAFAFA, #EFF1F3);background-image:linear-gradient(#FAFAFA, #EFF1F3);font-size:0.75em;font-weight:600;color:#828B9A;text-decoration:none;padding:0.5em 0.9375em}.btn:hover{background-color:#fbfbfb;background-image:-webkit-linear-gradient(#fbfbfb, #f2f4f5);background-image:linear-gradient(#fbfbfb, #f2f4f5)}.btn.disabled{cursor:default;opacity:0.5}.btn.disabled:active{box-shadow:inset 0 1px 0 white,0 1px 1px rgba(0,0,0,0.1)}.btn.danger{color:#E06488}.btn:focus{outline:0}.btn:active{box-shadow:inset 0 0 2px rgba(0,0,0,0.1)}form{margin:0}form.ng-submitted .ng-invalid{border-color:#E55A84 !important}.form-container{width:100%}.form-row{display:block;margin-bottom:10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-row:after{content:"";display:table;clear:both}.form-col{float:left;display:block;margin-right:2.35765%;width:48.82117%}.form-col:last-child{margin-right:0}.form-col.padded:first-child{padding:0 20px 0 0}.form-col.padded:last-child{padding:0 0 0 20px}.form-group>label{font-size:0.75em;color:#AEB4BE;display:inline-block;line-height:1.875em}.form-group .form-error{font-size:0.75em;color:#E06488;float:right}.form-group .form-error img{vertical-align:bottom;margin-right:3px}.form-group.optional>label:after{content:" (optional)"}.form-group.error input.form-control,.form-group.error textarea.form-control{border-color:#E55A84;background:rgba(229,90,132,0.02)}.form-group input.form-control,.form-group textarea.form-control{border-radius:3px;border:1px solid #D9DDE3;font-size:1.125em;-webkit-transition:border-color 0.1s ease-in-out;-moz-transition:border-color 0.1s ease-in-out;transition:border-color 0.1s ease-in-out}.form-group input.form-control:focus,.form-group textarea.form-control:focus{border-color:#5AC4E5;box-shadow:0 0 3px rgba(90,196,229,0.5);outline:none;background:white}.form-group input.form-control.extend,.form-group textarea.form-control.extend{width:100%}.form-group input.form-control::-webkit-input-placeholder,.form-group textarea.form-control::-webkit-input-placeholder{color:rgba(174,180,190,0.7)}.form-group input.form-control::-moz-placeholder,.form-group textarea.form-control::-moz-placeholder{color:rgba(174,180,190,0.7)}.form-group input.form-control:-moz-placeholder,.form-group textarea.form-control:-moz-placeholder{color:rgba(174,180,190,0.7)}.form-group input.form-control:-ms-input-placeholder,.form-group textarea.form-control:-ms-input-placeholder{color:rgba(174,180,190,0.7)}.form-group .form-btn{padding:0.75em 0.9375em}.form-group input.form-control{vertical-align:middle;padding:0.3125em 0.625em}.form-group textarea.form-control{min-height:135px;font-size:1.125em;padding:0.5em 0.625em}.form-submit-message{display:inline-block;margin-left:0.3125em;font-size:0.75em}.form-submit-message.error{color:#E06488}.form-submit-message img{vertical-align:middle;margin-right:0.3125em}.box{background:white;border:1px solid #D9DDE3;border-radius:3px;margin:0 auto 20px auto;max-width:800px;padding:20px 25px;box-shadow:0 0 1px #D9DDE3}.box.box-x-scroll{overflow-x:scroll}.box.invisible{background:transparent;border:0;padding:0;margin-bottom:40px}.box.highlight{border-color:#5AC4E5;box-shadow:0 0 3px rgba(90,196,229,0.5)}.box:last-child{margin-bottom:40px}.box-title{font-size:24px;font-weight:bold;color:#3D4043;margin-bottom:20px}.box-description{font-size:14px;color:#828B9A;padding-bottom:20px;border-bottom:1px solid #D9DDE3;margin-top:-20px;margin-bottom:20px}.box-description a{color:#3D4043;text-decoration:none}.box-description a:hover{border:1px solid #D9DDE3}.box-section{padding-top:20px;display:block}.box-section:after{content:"";display:table;clear:both}.box-section .section-details{float:left;display:block;margin-right:2.35765%;width:23.23176%}.box-section .section-details:last-child{margin-right:0}.box-section .section-details .section-title{font-size:0.875em;color:#828B9A;margin-bottom:20px}.box-section .section-main{float:left;display:block;margin-right:2.35765%;width:74.41059%}.box-section .section-main:last-child{margin-right:0}.box-message{text-align:center;padding:40px;max-width:450px;margin:0 auto}.box-message .main-image{margin-bottom:20px}.box-message .title{font-weight:bold;font-size:1.5em;color:#3D4043;margin-bottom:0.625em}.box-message .content{font-size:0.875em;color:#828B9A;margin-bottom:20px}.box-message .mini-divider:after{content:"";display:inline-block;width:200px;height:1px;background:#D9DDE3;margin:20px auto}.box-side-sticky{padding:20px 25px;box-sizing:content-box;width:100%;margin-left:-25px}.box-bottom-sticky{padding:20px 25px;box-sizing:content-box;width:100%;margin-top:20px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-top:1px solid #D9DDE3;margin-bottom:-20px;margin-left:-25px}.box-controls{text-align:right;box-shadow:inset 0 1px 0 white;background:#f8f9fa;margin-top:20px;padding:15px 25px}.ng-submitted .ng-invalid>.datepicker{border-color:#E55A84}.datepicker{width:100%;border:1px solid rgba(217,221,227,0.5);border-radius:3px;background:white;padding:0.625em;-webkit-transition:border-color 0.1s ease-in-out;-moz-transition:border-color 0.1s ease-in-out;transition:border-color 0.1s ease-in-out}.datepicker table{width:100%;font-size:1em}.datepicker tbody:before{content:'';display:block;height:0.625em}.datepicker .prev,.datepicker .next{opacity:0.5;color:#828B9A;cursor:pointer;border-radius:5px;position:relative}.datepicker .prev:hover,.datepicker .next:hover{opacity:1}.datepicker .prev:hover:after,.datepicker .next:hover:after{opacity:1;background:rgba(217,221,227,0.3)}.datepicker .prev:after,.datepicker .next:after{content:" ";cursor:pointer;opacity:0;position:absolute;width:1.75em;height:1.75em;margin-left:-0.875em;margin-top:-0.875em;left:50%;top:50%;border-radius:3px;-webkit-transition:background-color 0.1s ease-in-out;-moz-transition:background-color 0.1s ease-in-out;transition:background-color 0.1s ease-in-out}.datepicker .datepicker-switch{padding:10px;font-weight:600;font-size:1.125em;border-radius:3px;cursor:pointer;-webkit-transition:background-color 0.1s ease-in-out;-moz-transition:background-color 0.1s ease-in-out;transition:background-color 0.1s ease-in-out}.datepicker .datepicker-switch:hover{background:rgba(217,221,227,0.4)}.datepicker .dow{padding:10px;font-weight:normal;text-transform:uppercase;color:#E55A84;font-size:0.875em;border-bottom:2px solid rgba(217,221,227,0.3)}.datepicker .dow,.datepicker .day{padding:0.9375em}.datepicker .day{text-align:center;font-weight:600;position:relative;font-size:0.875em}.datepicker .day.today{color:#818176}.datepicker .day.today:after{opacity:1;background:rgba(255,255,0,0.1)}.datepicker .day:hover{cursor:pointer}.datepicker .day:hover:after{opacity:1;background:rgba(217,221,227,0.4)}.datepicker .day.new,.datepicker .day.old{font-weight:normal;color:#AEB4BE}.datepicker .day.active{background:white;color:#6EBC48}.datepicker .day.active:after{opacity:1;background:rgba(110,188,72,0.1)}.datepicker .day:active:after{opacity:0.8}.datepicker .day:after{content:" ";-webkit-transition:all 0.1s ease-in-out;-moz-transition:all 0.1s ease-in-out;transition:all 0.1s ease-in-out;cursor:pointer;opacity:0;position:absolute;width:2.5em;height:2.5em;margin-left:-1.25em;margin-top:-1.25em;left:50%;top:50%;border-radius:3px}.datepicker .month,.datepicker .year{width:33.3%;display:inline-block;text-align:center;font-size:0.875em;padding:1.25em;cursor:pointer;-webkit-transition:background-color 0.1s ease-in-out;-moz-transition:background-color 0.1s ease-in-out;transition:background-color 0.1s ease-in-out;border-radius:3px;text-transform:uppercase}.datepicker .month:hover,.datepicker .year:hover{background:rgba(217,221,227,0.3)}.daticon-list{margin:0;margin-left:-10px;list-style:none;padding:5px;text-align:left}.daticon-list .placeholder{line-height:1.125em;font-size:0.75em;color:#ccc}.daticon-list li{margin:5px;display:inline-block}.daticon{box-shadow:0 0 0 1px rgba(217,221,227,0.5);border-radius:3px;display:inline-block;padding:0.5em 1em;text-align:center;position:relative;cursor:default;background:white}.daticon .dow{font-size:0.375em;margin-top:-1.5em;background:white;color:#AEB4BE;margin-bottom:0.25em;font-weight:normal;text-transform:uppercase}.daticon .day{font-size:1.25em;font-weight:normal;color:#E55A84;line-height:1em}.daticon .month{font-weight:600;font-size:0.75em;text-transform:uppercase}.daticon .delete{text-align:center;border:0;width:1.125em;height:1.125em;position:absolute;top:-7.2px;right:-7.2px;border-radius:100%;display:inline-block;background:rgba(217,221,227,0.5) url(../images/close@2x.png) no-repeat center center;background-size:7px 8px;cursor:pointer;opacity:0}.daticon .delete:hover{background-color:rgba(217,221,227,0.8)}.daticon .count{text-align:center;border:0;width:18px;height:18px;position:absolute;top:-7.2px;right:-7.2px;border-radius:100%;font-weight:bold;display:inline-block;background:#bcc3cd;color:white;font-size:9px;line-height:18px;-webkit-transition:background-color 0.2s ease-in-out;-moz-transition:background-color 0.2s ease-in-out;transition:background-color 0.2s ease-in-out}.daticon .count.top{background:#FF5D5D}.daticon:hover .delete{opacity:1}.rl-modal{background:white;position:fixed;top:50%;left:50%;width:50%;max-width:400px;display:inline-block;min-width:200px;height:auto;z-index:2000;overflow:hidden;border-radius:5px;box-shadow:0 0 0 1px #D9DDE3,0 0 0 5px rgba(217,221,227,0.5);-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.rl-modal .rl-modal-message{padding:0 20px 20px 20px;font-size:0.75em;color:#828B9A}.rl-modal .rl-modal-title{padding:20px 20px 0 20px;font-size:1.125em;font-weight:bold}.rl-modal .rl-modal-actions{border-top:1px solid #D9DDE3;box-shadow:inset 0 1px 0 white;background:#f8f9fa;text-align:right;padding:0.625em 1.25em}.rl-modal-overlay{position:fixed;z-index:1999;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.1)}.poll{min-width:100%;display:block;margin-bottom:20px}.poll-header{display:table;min-width:100%;border-bottom:1px solid #D9DDE3;box-shadow:0 3px 0 rgba(217,221,227,0.3)}.poll-header .header{display:table-cell;vertical-align:bottom;padding-bottom:20px}.poll-header .header.date-header{text-align:center;min-width:70px;width:70px}.poll-header .header.actions-header{min-width:160px}.poll-header .header.participants-header{font-weight:bold;min-width:235px;width:235px;padding-left:0.625em}.poll-body{min-width:100%}.poll-body .poll-entry.highlight{background:#f6f7f9}.poll-body .poll-entry{display:table;min-width:100%;border-bottom:1px solid rgba(217,221,227,0.5)}.poll-body .poll-entry .hover{visibility:hidden}.poll-body .poll-entry:hover .hover{visibility:visible}.poll-body .poll-entry .cell{padding:0.625em;display:table-cell;height:50px;vertical-align:middle}.poll-body .poll-entry .cell.name-cell{min-width:235px;width:235px;font-size:0.875em}.poll-body .poll-entry .cell.name-cell .avatar{display:inline-block;padding:5px;margin-right:5px;border-radius:2px;background:#D0D5DF}.poll-body .poll-entry .cell.name-cell .avatar.style-1{background:#8A75AE}.poll-body .poll-entry .cell.name-cell .avatar.style-2{background:#80A1DA}.poll-body .poll-entry .cell.name-cell .avatar.style-3{background:#B3DD8B}.poll-body .poll-entry .cell.name-cell .avatar.style-4{background:#7EE4E4}.poll-body .poll-entry .cell.name-cell .avatar.style-5{background:#FCD285}.poll-body .poll-entry .cell.name-cell .avatar.style-6{background:#F7967F}.poll-body .poll-entry .cell.name-cell .avatar.style-7{background:#E8669D}.poll-body .poll-entry .cell.name-cell .avatar.style-8{background:#F7B6E7}.poll-body .poll-entry .cell.name-cell .avatar.style-9{background:#F99D7B}.poll-body .poll-entry .cell.name-cell .avatar.style-10{background:#88D0CB}.poll-body .poll-entry .cell.name-cell .name{padding:5px 3px;margin-left:2px;border-radius:2px}.poll-body .poll-entry .cell.name-cell .name:hover{background:#F5F6F8;cursor:pointer}.poll-body .poll-entry .cell.name-cell .form-control{border:1px solid #D9DDE3;padding:0.3125em;border-radius:2px;color:#3D4043}.poll-body .poll-entry .cell.name-cell .form-control:focus{outline:0;border-color:#5AC4E5;box-shadow:0 0 3px rgba(90,196,229,0.5)}.poll-body .poll-entry .cell.name-cell .form-control::-webkit-input-placeholder{color:rgba(130,139,154,0.7)}.poll-body .poll-entry .cell.name-cell .form-control::-moz-placeholder{color:rgba(130,139,154,0.7)}.poll-body .poll-entry .cell.name-cell .form-control:-moz-placeholder{color:rgba(130,139,154,0.7)}.poll-body .poll-entry .cell.name-cell .form-control:-ms-input-placeholder{color:rgba(130,139,154,0.7)}.poll-body .poll-entry .cell.action-cell{min-width:160px}.poll-body .poll-entry .cell.vote-cell{min-width:70px;width:70px;text-align:center;position:relative}.poll-body .poll-entry .cell.vote-cell .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.poll-body .poll-entry .cell.vote-cell .overlay:hover{background:rgba(217,221,227,0.2);cursor:pointer}.poll-body .poll-entry.ng-submitted .ng-invalid{border-color:#E55A84 !important}tags-input{display:block}tags-input *,tags-input *:before,tags-input *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}tags-input .host{position:relative;margin-top:5px;margin-bottom:5px}tags-input .host:focus{outline:0}tags-input .host:active{outline:none}tags-input .tags{padding:4px;overflow:hidden;word-wrap:break-word;cursor:text;border-radius:3px;background-color:white;border:1px solid #D9DDE3;-webkit-transition:border-color 0.1s ease-in-out;-moz-transition:border-color 0.1s ease-in-out;transition:border-color 0.1s ease-in-out}tags-input .tags.focused{outline:none}tags-input .tags .tag-list{margin:0;padding:0;list-style-type:none}tags-input .tags .tag-item{margin:2px;padding:0 8px;display:inline-block;float:left;font-size:0.875em;height:26px;line-height:25px;border-radius:1px;background:#E5EBF2;color:#7587A1;box-shadow:0 0 0 1px #CBD4E2}tags-input .tags .tag-item.selected{background:#E06488;color:white;box-shadow:none}tags-input .tags .tag-item .remove-button{margin:0 0 0 5px;padding:0;border:none;background:none;color:inherit;cursor:pointer;vertical-align:middle;font:bold 1em Arial,sans-serif}tags-input .tags .input{border:0;outline:none;margin:2px;padding:0;padding-left:8px;float:left;height:26px;font-size:0.875em}tags-input .tags .input::-webkit-input-placeholder{color:#AEB4BE}tags-input .tags .input::-moz-placeholder{color:#AEB4BE}tags-input .tags .input:-moz-placeholder{color:#AEB4BE}tags-input .tags .input:-ms-input-placeholder{color:#AEB4BE}tags-input .tags .input.invalid-tag{color:#E06488}tags-input .tags .input::-ms-clear{display:none}.dropdown{position:relative;cursor:pointer}.dropdown .dropdown-menu{position:absolute;display:none;z-index:1000;float:left;min-width:160px;max-width:180px;padding:5px;text-align:left;left:0}.dropdown.open .dropdown-menu{display:block}.dropdown .dropdown-toggle:after{content:"";width:6px;height:4px;margin-left:10px;display:inline-block;background-image:url("../images/dropdown_arrow.png");background-size:6px 4px;background-repeat:no-repeat}.comments-info{font-weight:bold;padding-bottom:10px;border-bottom:2px solid #D9DDE3}.comment-form{display:block;margin-bottom:20px;margin-top:20px;padding:0 10px}.comment-form:after{content:"";display:table;clear:both}.comment-form .avatar-section{float:left;display:block;margin-right:2.35765%;width:6.17215%}.comment-form .avatar-section:last-child{margin-right:0}.comment-form .avatar-section img{border-radius:3px;max-width:100%}.comment-form .input-section{float:left;display:block;margin-right:2.35765%;width:91.4702%}.comment-form .input-section:last-child{margin-right:0}.comment-form .content-section{margin-bottom:10px}.comment-form .name-section{position:relative;margin-bottom:10px}.comment-form .form-control{font-size:0.875em !important;border-width:2px !important}.comment-form textarea.form-control{min-height:0;min-width:100%}.comments-placeholder{color:#AEB4BE;text-align:center}.comment-thread{list-style:none;margin:0;padding:0;margin-bottom:20px;max-height:500px;overflow-y:scroll}.comment-thread .comment{display:block;padding:10px}.comment-thread .comment:after{content:"";display:table;clear:both}.comment-thread .comment .avatar-section{float:left;display:block;margin-right:2.35765%;width:6.17215%}.comment-thread .comment .avatar-section:last-child{margin-right:0}.comment-thread .comment .avatar-section img{max-width:100%;border-radius:3px}.comment-thread .comment .comment-section{float:left;display:block;margin-right:2.35765%;width:91.4702%;position:relative}.comment-thread .comment .comment-section:last-child{margin-right:0}.comment-thread .comment .comment-section .comment-delete{opacity:0;text-decoration:none;color:white;background-color:#D9DDE3;color:#AEB4BE;border-radius:2px;display:inline-block;position:absolute;right:0;top:0;font-size:0.875em;width:1em;height:1em;line-height:1em;text-align:center}.comment-thread .comment .comment-section .comment-delete:hover{background:#E06488;color:white}.comment-thread .comment .comment-section .comment-delete:active{background:#dc4f78}.comment-thread .comment .comment-section .meta{font-size:0.8125em;color:#828B9A;margin-bottom:5px}.comment-thread .comment .comment-section .name{color:#828B9A;font-weight:600}.comment-thread .comment .comment-section .time:before{content:" ";display:inline-block;height:4px;width:4px;background:#AEB4BE;margin:0 5px 2px 5px;border-radius:100%}.comment-thread .comment .comment-section .content{font-size:0.875em;margin-bottom:5px;white-space:pre-wrap;margin-right:100px}.comment-thread .comment .comment-section .actions{opacity:0.8}.comment-thread .comment .comment-section .actions a{color:#828B9A;font-size:0.75em;text-decoration:none}.comment-thread .comment .comment-section .actions a:hover{color:#5AC4E5}.comment-thread .comment:hover{background:#F5F6F8;cursor:default;border-radius:3px}.comment-thread .comment:hover .name{color:#5AC4E5}.comment-thread .comment:hover .comment-delete{opacity:1}.switch-row{display:table;width:100%;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #D9DDE3}.switch-row:last-child{border:0}.switch-row .switch-details{display:table-cell}.switch-row .switch-details .title{font-size:0.875em;font-weight:bold}.switch-row .switch-details .description{font-size:0.75em;color:#828B9A}.switch-row .switch{display:table-cell;text-align:right;min-width:150px;vertical-align:middle}.switch-row .switch .switch-value{font-size:0.75em;color:#828B9A;display:inline-block;vertical-align:middle}.switch-toggle{display:inline-block;margin-left:5px;height:20px;width:40px;border-radius:20px;vertical-align:middle;position:relative;cursor:pointer;background:#E06488;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.1);-webkit-transition:all 0.1s ease-in-out;-moz-transition:all 0.1s ease-in-out;transition:all 0.1s ease-in-out}.switch-toggle:after{content:" ";-webkit-transition:all 0.1s ease-in-out;-moz-transition:all 0.1s ease-in-out;transition:all 0.1s ease-in-out;display:inline-block;height:16px;width:16px;position:absolute;box-shadow:inset 0 1px 0 white,0 1px 1px rgba(0,0,0,0.1);background-color:#FAFAFA;background-image:-webkit-linear-gradient(#FAFAFA, #EFF1F3);background-image:linear-gradient(#FAFAFA, #EFF1F3);top:50%;margin-top:-8px;left:2px;border-radius:100px}.switch-toggle:hover{box-shadow:inset 0 0 0 1px rgba(0,0,0,0.1),inset 0 0 0 8px rgba(0,0,0,0.05)}.switch-toggle.active{background:#6EBC48}.switch-toggle.active:after{left:100%;margin-left:-18px}.notification{position:fixed;top:0;left:0;width:100%;z-index:3000;padding:12px 40px;background:#828B9A;color:white;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}.notification.success{background:#6EBC48}.notification.error{background:#E06488}.notification.ng-enter{top:-100px;opacity:0}.notification.ng-enter-active{top:0;opacity:1}.notification.ng-leave-active{top:-100px;opacity:1}.notification .title{font-size:0.875em;margin-bottom:2px}.notification .message{font-size:0.75em;color:rgba(255,255,255,0.8)}.notification .close{position:absolute;top:5px;right:10px;color:white;text-decoration:none}.page-placeholder{margin:0 auto;text-align:center;color:#B0B8C4;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.page-placeholder .image{margin-bottom:20px}.page-placeholder .title{font-size:2.25em;font-weight:bold;margin-bottom:20px}.page-placeholder .content{font-size:0.875em;max-width:320px;font-weight:normal;margin-bottom:20px}.event-description{font-size:0.875em;white-space:pre-wrap;padding-top:20px;padding-bottom:20px;line-height:1.5em;color:#828B9A;background:#F5F6F8;border-top:1px solid #D9DDE3;margin-top:20px;margin-bottom:-20px}.event-location{font-size:0.875em}.event-location a{color:#3D4043;text-decoration:none}.event-location a:hover{text-decoration:underline}.event-location img{vertical-align:middle;margin-right:10px}.event-pair{margin-bottom:20px;border-bottom:1px solid #D9DDE3;padding-bottom:20px;float:left;width:100%}.event-pair .icon{display:inline-block;width:30px;float:left;position:relative;text-align:center;height:35px;border-radius:3px;margin-right:10px}.event-pair .icon img{position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.event-pair .content{float:left;display:inline-block}.event-pair .key{font-weight:bold;font-size:11px}.event-pair .value{color:#828B9A}.event-header{width:100%;margin-top:-30px}.event-header .avatar{display:inline-block;margin-right:20px;text-align:center;border-radius:1px;box-shadow:0 0 0 5px white,0 0 0 6px #D9DDE3,inset 0 0 0 1px #D9DDE3;padding:20px;background:#F5F6F8;vertical-align:bottom}.event-header .details{display:inline-block}.event-header .details .title{font-size:1.5em;font-weight:bold}.event-header .details .title .title-label{font-size:11px;font-weight:normal;margin-left:5px;position:relative;top:-3px;background:#828B9A;color:white;padding:3px 10px;border-radius:20px}.event-header .details .title .title-label.success{background:#6EBC48}.event-header .details .title .title-label.danger{background:#FF5D5D}.event-header .details .subtitle{color:#828B9A;font-size:0.875em}.event-header .details .subtitle a{color:#5AC4E5;text-decoration:none}.event-header .details .subtitle a:hover{text-decoration:underline}.event-header .actions{visibility:hidden;float:right;margin-top:30px}.event-header:hover .actions{visibility:visible} /*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/public/css/style.css.map b/public/css/style.css.map index 31f502d14..08c2c9ab1 100644 --- a/public/css/style.css.map +++ b/public/css/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["style.scss","partials/_normalize.scss","neat/grid/_box-sizing.scss","bourbon/addons/_prefixer.scss","partials/_applayout.scss","modules/_vars.scss","partials/_navigation.scss","bourbon/css3/_transition.scss","bourbon/css3/_linear-gradient.scss","partials/_topbar.scss","partials/ui/_animations.scss","partials/ui/_buttons.scss","partials/ui/_form.scss","neat/grid/_row.scss","bourbon/addons/_clearfix.scss","neat/grid/_span-columns.scss","bourbon/css3/_placeholder.scss","partials/ui/_box.scss","partials/ui/_datepicker.scss","partials/ui/_modal.scss","partials/ui/_poll.scss","partials/pages/_home.scss","partials/pages/_event.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["@import url(http://fonts.googleapis.com/css?family=Roboto:400,600,700);\n@import \"modules/vars\";\n@import \"modules/mixins\";\n@import \"partials/normalize\";\n@import \"bourbon/bourbon\";\n@import \"neat/neat\";\n\nbody {\n font-family: \"Roboto\", \"Helvetica Neue\", Arial, sans-serif;\n}\n\n@import \"partials/applayout\";\n@import \"partials/navigation\";\n@import \"partials/topbar\";\n@import \"partials/ui/animations\";\n@import \"partials/ui/buttons\";\n@import \"partials/ui/form\";\n@import \"partials/ui/box\";\n@import \"partials/ui/datepicker\";\n@import \"partials/ui/modal\";\n@import \"partials/ui/poll\";\n\n@import \"partials/pages/home\";\n@import \"partials/pages/event\";\n","/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n * user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\n\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome\n * (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box; /* 2 */\n box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","@if $border-box-sizing == true {\n html { // http://bit.ly/1qk2tVR\n @include box-sizing(border-box);\n }\n\n * {\n &, &:before, &:after {\n @include box-sizing(inherit);\n }\n }\n}\n","//************************************************************************//\n// Example: @include prefixer(border-radius, $radii, webkit ms spec);\n//************************************************************************//\n// Variables located in /settings/_prefixer.scss\n\n@mixin prefixer ($property, $value, $prefixes) {\n @each $prefix in $prefixes {\n @if $prefix == webkit {\n @if $prefix-for-webkit {\n -webkit-#{$property}: $value;\n }\n }\n @else if $prefix == moz {\n @if $prefix-for-mozilla {\n -moz-#{$property}: $value;\n }\n }\n @else if $prefix == ms {\n @if $prefix-for-microsoft {\n -ms-#{$property}: $value;\n }\n }\n @else if $prefix == o {\n @if $prefix-for-opera {\n -o-#{$property}: $value;\n }\n }\n @else if $prefix == spec {\n @if $prefix-for-spec {\n #{$property}: $value;\n }\n }\n @else {\n @warn \"Unrecognized prefix: #{$prefix}\";\n }\n }\n}\n\n@mixin disable-prefix-for-all() {\n $prefix-for-webkit: false !global;\n $prefix-for-mozilla: false !global;\n $prefix-for-microsoft: false !global;\n $prefix-for-opera: false !global;\n $prefix-for-spec: false !global;\n}\n","$navigation-width: 100%;\n$top-bar-height: 50px;\n$min-width: 820px;\n\n.outer-container {\n width:100%;\n height:100%;\n}\nbody {\n background: $background-clr;\n color: $text-clr;\n min-width: $min-width;\n}\n.main-navigation {\n width: $navigation-width;\n min-width:$min-width;\n color: white;\n .wrapper {\n width: $navigation-width;\n padding: 0 40px;\n }\n}\n\n.main-content {\n background: $background-clr;\n min-height:100%;\n .main-view {\n height: 100%;\n position:relative;\n padding: 160px 40px 40px 40px;\n width:100%;\n min-height: 600px;\n }\n}\n\n.top-bar {\n width:100%;\n box-shadow: 0 1px 2px rgba(black, 0.1);\n height: $top-bar-height;\n line-height: $top-bar-height;\n}\n","$dark-blue-clr: #2E3A54;\n$green-clr: #6EBC48;\n$pink-clr: #E55A84;\n$red-clr: #E06488;\n$blue-clr: #5AC4E5;\n$light-blue-clr: #F5F6F8;\n\n\n$text-clr: #3D4043;\n$text-2-clr: #828B9A;\n$text-3-clr: #AEB4BE;\n$border-clr: #D9DDE3;\n$navigation-bg-clr: $dark-blue-clr;\n$background-clr: $light-blue-clr;\n\n$color-collection: (#8A75AE, #80A1DA, #B3DD8B, #7EE4E4, #FCD285, #F7967F, #E8669D, #F7B6E7, #F99D7B, #88D0CB);\n","$top-space: 15px;\n\n.main-navigation {\n position:fixed;\n width:100%;\n z-index: 1000;\n .wrapper {\n min-width:600px;\n background: $navigation-bg-clr;\n height: em(60px);\n }\n .logo {\n display:inline-block;\n vertical-align:middle;\n margin-top:$top-space;\n\n }\n .navigation {\n display:inline-block;\n vertical-align:middle;\n margin-left: 60px;\n margin-top:$top-space;\n .links {\n padding:0 ;\n margin:0;\n list-style: none;\n display:inline-block;\n li {\n display:inline-block;\n margin-right:em(20px);\n }\n a {\n text-decoration: none;\n color: #616F8D;\n font-weight: bold;\n line-height: em(24px);\n font-size: em(15px);\n opacity: 0.7;\n &:hover {\n opacity: 1;\n color:white;\n .icon {\n background-position: center bottom;\n }\n }\n &.active {\n opacity:1;\n color: white;\n cursor: default;\n .icon {\n background-position: center bottom;\n }\n }\n .text {\n vertical-align:middle;\n }\n .icon {\n display:inline-block;\n vertical-align:middle;\n margin-right: 5px;\n width:16px;\n height:16px;\n background-size: 16px 32px;\n }\n\n }\n }\n }\n .create-new {\n display:inline-block;\n float:right;\n padding: 13px;\n // border-bottom:1px solid lighten($navigation-bg-clr, 5%);\n a {\n display:block;\n @include transition(background-color 0.1s ease-in-out);\n color:tint($green-clr,90%);\n text-align:center;\n border-radius: 2px;\n @include linear-gradient(lighten($green-clr,8%), lighten($green-clr,2%));\n text-decoration:none;\n font-size:12px;\n font-weight: bold;\n // text-shadow: 0 1px 1px darken($green-clr, 10%);\n padding: 8px 15px 10px 12px;\n &:hover {\n\n }\n &:active {\n box-shadow: inset 0 2px 5px rgba(black,0.1), 0 0 0 1px darken($navigation-bg-clr, 8%);\n }\n img {\n vertical-align:middle;\n margin-right: 5px;\n margin-top: -2px;\n }\n span {\n }\n }\n }\n}\n","// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.\n// Example: @include transition (all 2s ease-in-out);\n// @include transition (opacity 1s ease-in 2s, width 2s ease-out);\n// @include transition-property (transform, opacity);\n\n@mixin transition ($properties...) {\n // Fix for vendor-prefix transform property\n $needs-prefixes: false;\n $webkit: ();\n $moz: ();\n $spec: ();\n\n // Create lists for vendor-prefixed transform\n @each $list in $properties {\n @if nth($list, 1) == \"transform\" {\n $needs-prefixes: true;\n $list1: -webkit-transform;\n $list2: -moz-transform;\n $list3: ();\n\n @each $var in $list {\n $list3: join($list3, $var);\n\n @if $var != \"transform\" {\n $list1: join($list1, $var);\n $list2: join($list2, $var);\n }\n }\n\n $webkit: append($webkit, $list1);\n $moz: append($moz, $list2);\n $spec: append($spec, $list3);\n }\n\n // Create lists for non-prefixed transition properties\n @else {\n $webkit: append($webkit, $list, comma);\n $moz: append($moz, $list, comma);\n $spec: append($spec, $list, comma);\n }\n }\n\n @if $needs-prefixes {\n -webkit-transition: $webkit;\n -moz-transition: $moz;\n transition: $spec;\n }\n @else {\n @if length($properties) >= 1 {\n @include prefixer(transition, $properties, webkit moz spec);\n }\n\n @else {\n $properties: all 0.15s ease-out 0s;\n @include prefixer(transition, $properties, webkit moz spec);\n }\n }\n}\n\n@mixin transition-property ($properties...) {\n -webkit-transition-property: transition-property-names($properties, 'webkit');\n -moz-transition-property: transition-property-names($properties, 'moz');\n transition-property: transition-property-names($properties, false);\n}\n\n@mixin transition-duration ($times...) {\n @include prefixer(transition-duration, $times, webkit moz spec);\n}\n\n@mixin transition-timing-function ($motions...) {\n// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()\n @include prefixer(transition-timing-function, $motions, webkit moz spec);\n}\n\n@mixin transition-delay ($times...) {\n @include prefixer(transition-delay, $times, webkit moz spec);\n}\n","@mixin linear-gradient($pos, $G1, $G2: null,\n $G3: null, $G4: null,\n $G5: null, $G6: null,\n $G7: null, $G8: null,\n $G9: null, $G10: null,\n $fallback: null) {\n // Detect what type of value exists in $pos\n $pos-type: type-of(nth($pos, 1));\n $pos-spec: null;\n $pos-degree: null;\n\n // If $pos is missing from mixin, reassign vars and add default position\n @if ($pos-type == color) or (nth($pos, 1) == \"transparent\") {\n $G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;\n $G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;\n $pos: null;\n }\n\n @if $pos {\n $positions: _linear-positions-parser($pos);\n $pos-degree: nth($positions, 1);\n $pos-spec: nth($positions, 2);\n }\n\n $full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;\n\n // Set $G1 as the default fallback color\n $fallback-color: nth($G1, 1);\n\n // If $fallback is a color use that color as the fallback color\n @if (type-of($fallback) == color) or ($fallback == \"transparent\") {\n $fallback-color: $fallback;\n }\n\n background-color: $fallback-color;\n background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome\n background-image: unquote(\"linear-gradient(#{$pos-spec}#{$full})\");\n}\n",".top-bar {\n float: left;\n width: 100%;\n background:rgba(white,0.9);\n .primary {\n list-style:none;\n margin:0;\n padding-left:40px;\n margin-top:-4px;\n .item {\n img {\n display:inline-block;\n vertical-align:middle;\n }\n .hoverable {\n padding: 8px 12px;\n height: 100%;\n text-decoration:none;\n color: $text-clr;\n font-size: em(12px);\n border: 1px solid transparent;\n border-radius: 3px;\n vertical-align:bottom;\n border-color: $border-clr;\n span {\n vertical-align:middle;\n }\n &:hover {\n border-color: darken($border-clr,10%);\n }\n }\n .dropdown:after {\n content: \"\";\n width: 6px;\n height: 4px;\n margin-left: 10px;\n display:inline-block;\n background-image: url(\"../images/dropdown_arrow.png\");\n background-size: 6px 4px;\n background-repeat:no-repeat;\n }\n }\n\n }\n}\n","@charset \"UTF-8\";\n/*!\nAnimate.css - http://daneden.me/animate\nLicensed under the MIT license - http://opensource.org/licenses/MIT\n\nCopyright (c) 2014 Daniel Eden\n*/\n\n.animated {\n -webkit-animation-duration: 0.3s;\n animation-duration: 0.3s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}\n\n.animated.infinite {\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n}\n\n.animated.hinge {\n -webkit-animation-duration: 2s;\n animation-duration: 2s;\n}\n\n@-webkit-keyframes bounce {\n 0%, 20%, 53%, 80%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n -webkit-transform: translate3d(0,0,0);\n transform: translate3d(0,0,0);\n }\n\n 40%, 43% {\n -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n -webkit-transform: translate3d(0, -30px, 0);\n transform: translate3d(0, -30px, 0);\n }\n\n 70% {\n -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n -webkit-transform: translate3d(0, -15px, 0);\n transform: translate3d(0, -15px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0,-4px,0);\n transform: translate3d(0,-4px,0);\n }\n}\n\n@keyframes bounce {\n 0%, 20%, 53%, 80%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n -webkit-transform: translate3d(0,0,0);\n transform: translate3d(0,0,0);\n }\n\n 40%, 43% {\n -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n -webkit-transform: translate3d(0, -30px, 0);\n transform: translate3d(0, -30px, 0);\n }\n\n 70% {\n -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n -webkit-transform: translate3d(0, -15px, 0);\n transform: translate3d(0, -15px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0,-4px,0);\n transform: translate3d(0,-4px,0);\n }\n}\n\n.bounce {\n -webkit-animation-name: bounce;\n animation-name: bounce;\n -webkit-transform-origin: center bottom;\n -ms-transform-origin: center bottom;\n transform-origin: center bottom;\n}\n\n@-webkit-keyframes flash {\n 0%, 50%, 100% {\n opacity: 1;\n }\n\n 25%, 75% {\n opacity: 0;\n }\n}\n\n@keyframes flash {\n 0%, 50%, 100% {\n opacity: 1;\n }\n\n 25%, 75% {\n opacity: 0;\n }\n}\n\n.flash {\n -webkit-animation-name: flash;\n animation-name: flash;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@-webkit-keyframes pulse {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.05, 1.05, 1.05);\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n@keyframes pulse {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.05, 1.05, 1.05);\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n.pulse {\n -webkit-animation-name: pulse;\n animation-name: pulse;\n}\n\n@-webkit-keyframes rubberBand {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25, 0.75, 1);\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.75, 1.25, 1);\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15, 0.85, 1);\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n -webkit-transform: scale3d(.95, 1.05, 1);\n transform: scale3d(.95, 1.05, 1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05, .95, 1);\n transform: scale3d(1.05, .95, 1);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n@keyframes rubberBand {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25, 0.75, 1);\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.75, 1.25, 1);\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15, 0.85, 1);\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n -webkit-transform: scale3d(.95, 1.05, 1);\n transform: scale3d(.95, 1.05, 1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05, .95, 1);\n transform: scale3d(1.05, .95, 1);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n.rubberBand {\n -webkit-animation-name: rubberBand;\n animation-name: rubberBand;\n}\n\n@-webkit-keyframes shake {\n 0%, 100% {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%, 30%, 50%, 70%, 90% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%, 40%, 60%, 80% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n}\n\n@keyframes shake {\n 0%, 100% {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%, 30%, 50%, 70%, 90% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%, 40%, 60%, 80% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n}\n\n.shake {\n -webkit-animation-name: shake;\n animation-name: shake;\n}\n\n@-webkit-keyframes swing {\n 20% {\n -webkit-transform: rotate3d(0, 0, 1, 15deg);\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n -webkit-transform: rotate3d(0, 0, 1, -10deg);\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 5deg);\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, -5deg);\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n}\n\n@keyframes swing {\n 20% {\n -webkit-transform: rotate3d(0, 0, 1, 15deg);\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n -webkit-transform: rotate3d(0, 0, 1, -10deg);\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 5deg);\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, -5deg);\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n}\n\n.swing {\n -webkit-transform-origin: top center;\n -ms-transform-origin: top center;\n transform-origin: top center;\n -webkit-animation-name: swing;\n animation-name: swing;\n}\n\n@-webkit-keyframes tada {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 10%, 20% {\n -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%, 50%, 70%, 90% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%, 60%, 80% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n@keyframes tada {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 10%, 20% {\n -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%, 50%, 70%, 90% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%, 60%, 80% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n.tada {\n -webkit-animation-name: tada;\n animation-name: tada;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@-webkit-keyframes wobble {\n 0% {\n -webkit-transform: none;\n transform: none;\n }\n\n 15% {\n -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes wobble {\n 0% {\n -webkit-transform: none;\n transform: none;\n }\n\n 15% {\n -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.wobble {\n -webkit-animation-name: wobble;\n animation-name: wobble;\n}\n\n@-webkit-keyframes bounceIn {\n 0%, 20%, 40%, 60%, 80%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(.9, .9, .9);\n transform: scale3d(.9, .9, .9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(.97, .97, .97);\n transform: scale3d(.97, .97, .97);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n@keyframes bounceIn {\n 0%, 20%, 40%, 60%, 80%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(.9, .9, .9);\n transform: scale3d(.9, .9, .9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(.97, .97, .97);\n transform: scale3d(.97, .97, .97);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n.bounceIn {\n -webkit-animation-name: bounceIn;\n animation-name: bounceIn;\n -webkit-animation-duration: .75s;\n animation-duration: .75s;\n}\n\n@-webkit-keyframes bounceInDown {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -3000px, 0);\n transform: translate3d(0, -3000px, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, 25px, 0);\n transform: translate3d(0, 25px, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0, 5px, 0);\n transform: translate3d(0, 5px, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes bounceInDown {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -3000px, 0);\n transform: translate3d(0, -3000px, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, 25px, 0);\n transform: translate3d(0, 25px, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0, 5px, 0);\n transform: translate3d(0, 5px, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.bounceInDown {\n -webkit-animation-name: bounceInDown;\n animation-name: bounceInDown;\n}\n\n@-webkit-keyframes bounceInLeft {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-3000px, 0, 0);\n transform: translate3d(-3000px, 0, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px, 0, 0);\n transform: translate3d(25px, 0, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(5px, 0, 0);\n transform: translate3d(5px, 0, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes bounceInLeft {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-3000px, 0, 0);\n transform: translate3d(-3000px, 0, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px, 0, 0);\n transform: translate3d(25px, 0, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(5px, 0, 0);\n transform: translate3d(5px, 0, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.bounceInLeft {\n -webkit-animation-name: bounceInLeft;\n animation-name: bounceInLeft;\n}\n\n@-webkit-keyframes bounceInRight {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(3000px, 0, 0);\n transform: translate3d(3000px, 0, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px, 0, 0);\n transform: translate3d(-25px, 0, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px, 0, 0);\n transform: translate3d(-5px, 0, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes bounceInRight {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(3000px, 0, 0);\n transform: translate3d(3000px, 0, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px, 0, 0);\n transform: translate3d(-25px, 0, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px, 0, 0);\n transform: translate3d(-5px, 0, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.bounceInRight {\n -webkit-animation-name: bounceInRight;\n animation-name: bounceInRight;\n}\n\n@-webkit-keyframes bounceInUp {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 3000px, 0);\n transform: translate3d(0, 3000px, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0);\n }\n\n 100% {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n\n@keyframes bounceInUp {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 3000px, 0);\n transform: translate3d(0, 3000px, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0);\n }\n\n 100% {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n\n.bounceInUp {\n -webkit-animation-name: bounceInUp;\n animation-name: bounceInUp;\n}\n\n@-webkit-keyframes bounceOut {\n 20% {\n -webkit-transform: scale3d(.9, .9, .9);\n transform: scale3d(.9, .9, .9);\n }\n\n 50%, 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n}\n\n@keyframes bounceOut {\n 20% {\n -webkit-transform: scale3d(.9, .9, .9);\n transform: scale3d(.9, .9, .9);\n }\n\n 50%, 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n}\n\n.bounceOut {\n -webkit-animation-name: bounceOut;\n animation-name: bounceOut;\n -webkit-animation-duration: .75s;\n animation-duration: .75s;\n}\n\n@-webkit-keyframes bounceOutDown {\n 20% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}\n\n@keyframes bounceOutDown {\n 20% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}\n\n.bounceOutDown {\n -webkit-animation-name: bounceOutDown;\n animation-name: bounceOutDown;\n}\n\n@-webkit-keyframes bounceOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px, 0, 0);\n transform: translate3d(20px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}\n\n@keyframes bounceOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px, 0, 0);\n transform: translate3d(20px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}\n\n.bounceOutLeft {\n -webkit-animation-name: bounceOutLeft;\n animation-name: bounceOutLeft;\n}\n\n@-webkit-keyframes bounceOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px, 0, 0);\n transform: translate3d(-20px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}\n\n@keyframes bounceOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px, 0, 0);\n transform: translate3d(-20px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}\n\n.bounceOutRight {\n -webkit-animation-name: bounceOutRight;\n animation-name: bounceOutRight;\n}\n\n@-webkit-keyframes bounceOutUp {\n 20% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, 20px, 0);\n transform: translate3d(0, 20px, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}\n\n@keyframes bounceOutUp {\n 20% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, 20px, 0);\n transform: translate3d(0, 20px, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}\n\n.bounceOutUp {\n -webkit-animation-name: bounceOutUp;\n animation-name: bounceOutUp;\n}\n\n@-webkit-keyframes fadeIn {\n 0% {opacity: 0;}\n 100% {opacity: 1;}\n}\n\n@keyframes fadeIn {\n 0% {opacity: 0;}\n 100% {opacity: 1;}\n}\n\n.fadeIn {\n -webkit-animation-name: fadeIn;\n animation-name: fadeIn;\n}\n\n@-webkit-keyframes fadeInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInDown {\n -webkit-animation-name: fadeInDown;\n animation-name: fadeInDown;\n}\n\n@-webkit-keyframes fadeInDownBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInDownBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInDownBig {\n -webkit-animation-name: fadeInDownBig;\n animation-name: fadeInDownBig;\n}\n\n@-webkit-keyframes fadeInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInLeft {\n -webkit-animation-name: fadeInLeft;\n animation-name: fadeInLeft;\n}\n\n@-webkit-keyframes fadeInLeftBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInLeftBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInLeftBig {\n -webkit-animation-name: fadeInLeftBig;\n animation-name: fadeInLeftBig;\n}\n\n@-webkit-keyframes fadeInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInRight {\n -webkit-animation-name: fadeInRight;\n animation-name: fadeInRight;\n}\n\n@-webkit-keyframes fadeInRightBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInRightBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInRightBig {\n -webkit-animation-name: fadeInRightBig;\n animation-name: fadeInRightBig;\n}\n\n@-webkit-keyframes fadeInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInUp {\n -webkit-animation-name: fadeInUp;\n animation-name: fadeInUp;\n}\n\n@-webkit-keyframes fadeInUpBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInUpBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInUpBig {\n -webkit-animation-name: fadeInUpBig;\n animation-name: fadeInUpBig;\n}\n\n@-webkit-keyframes fadeOut {\n 0% {opacity: 1;}\n 100% {opacity: 0;}\n}\n\n@keyframes fadeOut {\n 0% {opacity: 1;}\n 100% {opacity: 0;}\n}\n\n.fadeOut {\n -webkit-animation-name: fadeOut;\n animation-name: fadeOut;\n}\n\n@-webkit-keyframes fadeOutDown {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}\n\n@keyframes fadeOutDown {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}\n\n.fadeOutDown {\n -webkit-animation-name: fadeOutDown;\n animation-name: fadeOutDown;\n}\n\n@-webkit-keyframes fadeOutDownBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}\n\n@keyframes fadeOutDownBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}\n\n.fadeOutDownBig {\n -webkit-animation-name: fadeOutDownBig;\n animation-name: fadeOutDownBig;\n}\n\n@-webkit-keyframes fadeOutLeft {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n@keyframes fadeOutLeft {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n.fadeOutLeft {\n -webkit-animation-name: fadeOutLeft;\n animation-name: fadeOutLeft;\n}\n\n@-webkit-keyframes fadeOutLeftBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}\n\n@keyframes fadeOutLeftBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}\n\n.fadeOutLeftBig {\n -webkit-animation-name: fadeOutLeftBig;\n animation-name: fadeOutLeftBig;\n}\n\n@-webkit-keyframes fadeOutRight {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n\n@keyframes fadeOutRight {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.fadeOutRight {\n -webkit-animation-name: fadeOutRight;\n animation-name: fadeOutRight;\n}\n\n@-webkit-keyframes fadeOutRightBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}\n\n@keyframes fadeOutRightBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}\n\n.fadeOutRightBig {\n -webkit-animation-name: fadeOutRightBig;\n animation-name: fadeOutRightBig;\n}\n\n@-webkit-keyframes fadeOutUp {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}\n\n@keyframes fadeOutUp {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}\n\n.fadeOutUp {\n -webkit-animation-name: fadeOutUp;\n animation-name: fadeOutUp;\n}\n\n@-webkit-keyframes fadeOutUpBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}\n\n@keyframes fadeOutUpBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}\n\n.fadeOutUpBig {\n -webkit-animation-name: fadeOutUpBig;\n animation-name: fadeOutUpBig;\n}\n\n@-webkit-keyframes flip {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 40% {\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 50% {\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 80% {\n -webkit-transform: perspective(400px) scale3d(.95, .95, .95);\n transform: perspective(400px) scale3d(.95, .95, .95);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n}\n\n@keyframes flip {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 40% {\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 50% {\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 80% {\n -webkit-transform: perspective(400px) scale3d(.95, .95, .95);\n transform: perspective(400px) scale3d(.95, .95, .95);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n}\n\n.animated.flip {\n -webkit-backface-visibility: visible;\n backface-visibility: visible;\n -webkit-animation-name: flip;\n animation-name: flip;\n}\n\n@-webkit-keyframes flipInX {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}\n\n@keyframes flipInX {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}\n\n.flipInX {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInX;\n animation-name: flipInX;\n}\n\n@-webkit-keyframes flipInY {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}\n\n@keyframes flipInY {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}\n\n.flipInY {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInY;\n animation-name: flipInY;\n}\n\n@-webkit-keyframes flipOutX {\n 0% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}\n\n@keyframes flipOutX {\n 0% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}\n\n.flipOutX {\n -webkit-animation-name: flipOutX;\n animation-name: flipOutX;\n -webkit-animation-duration: .75s;\n animation-duration: .75s;\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n}\n\n@-webkit-keyframes flipOutY {\n 0% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n}\n\n@keyframes flipOutY {\n 0% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n}\n\n.flipOutY {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipOutY;\n animation-name: flipOutY;\n -webkit-animation-duration: .75s;\n animation-duration: .75s;\n}\n\n@-webkit-keyframes lightSpeedIn {\n 0% {\n -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\n transform: translate3d(100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(20deg);\n transform: skewX(20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(-5deg);\n transform: skewX(-5deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes lightSpeedIn {\n 0% {\n -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\n transform: translate3d(100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(20deg);\n transform: skewX(20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(-5deg);\n transform: skewX(-5deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.lightSpeedIn {\n -webkit-animation-name: lightSpeedIn;\n animation-name: lightSpeedIn;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n}\n\n@-webkit-keyframes lightSpeedOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\n transform: translate3d(100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n}\n\n@keyframes lightSpeedOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\n transform: translate3d(100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n}\n\n.lightSpeedOut {\n -webkit-animation-name: lightSpeedOut;\n animation-name: lightSpeedOut;\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n}\n\n@-webkit-keyframes rotateIn {\n 0% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: rotate3d(0, 0, 1, -200deg);\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateIn {\n 0% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: rotate3d(0, 0, 1, -200deg);\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateIn {\n -webkit-animation-name: rotateIn;\n animation-name: rotateIn;\n}\n\n@-webkit-keyframes rotateInDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateInDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateInDownLeft {\n -webkit-animation-name: rotateInDownLeft;\n animation-name: rotateInDownLeft;\n}\n\n@-webkit-keyframes rotateInDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateInDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateInDownRight {\n -webkit-animation-name: rotateInDownRight;\n animation-name: rotateInDownRight;\n}\n\n@-webkit-keyframes rotateInUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateInUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateInUpLeft {\n -webkit-animation-name: rotateInUpLeft;\n animation-name: rotateInUpLeft;\n}\n\n@-webkit-keyframes rotateInUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, -90deg);\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateInUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, -90deg);\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateInUpRight {\n -webkit-animation-name: rotateInUpRight;\n animation-name: rotateInUpRight;\n}\n\n@-webkit-keyframes rotateOut {\n 0% {\n -webkit-transform-origin: center;\n transform-origin: center;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: rotate3d(0, 0, 1, 200deg);\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOut {\n 0% {\n -webkit-transform-origin: center;\n transform-origin: center;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: rotate3d(0, 0, 1, 200deg);\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n}\n\n.rotateOut {\n -webkit-animation-name: rotateOut;\n animation-name: rotateOut;\n}\n\n@-webkit-keyframes rotateOutDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOutDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n}\n\n.rotateOutDownLeft {\n -webkit-animation-name: rotateOutDownLeft;\n animation-name: rotateOutDownLeft;\n}\n\n@-webkit-keyframes rotateOutDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOutDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}\n\n.rotateOutDownRight {\n -webkit-animation-name: rotateOutDownRight;\n animation-name: rotateOutDownRight;\n}\n\n@-webkit-keyframes rotateOutUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOutUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}\n\n.rotateOutUpLeft {\n -webkit-animation-name: rotateOutUpLeft;\n animation-name: rotateOutUpLeft;\n}\n\n@-webkit-keyframes rotateOutUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, 90deg);\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOutUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, 90deg);\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n}\n\n.rotateOutUpRight {\n -webkit-animation-name: rotateOutUpRight;\n animation-name: rotateOutUpRight;\n}\n\n@-webkit-keyframes hinge {\n 0% {\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 20%, 60% {\n -webkit-transform: rotate3d(0, 0, 1, 80deg);\n transform: rotate3d(0, 0, 1, 80deg);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 40%, 80% {\n -webkit-transform: rotate3d(0, 0, 1, 60deg);\n transform: rotate3d(0, 0, 1, 60deg);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: translate3d(0, 700px, 0);\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n}\n\n@keyframes hinge {\n 0% {\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 20%, 60% {\n -webkit-transform: rotate3d(0, 0, 1, 80deg);\n transform: rotate3d(0, 0, 1, 80deg);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 40%, 80% {\n -webkit-transform: rotate3d(0, 0, 1, 60deg);\n transform: rotate3d(0, 0, 1, 60deg);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: translate3d(0, 700px, 0);\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n}\n\n.hinge {\n -webkit-animation-name: hinge;\n animation-name: hinge;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@-webkit-keyframes rollIn {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes rollIn {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.rollIn {\n -webkit-animation-name: rollIn;\n animation-name: rollIn;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@-webkit-keyframes rollOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n}\n\n@keyframes rollOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n}\n\n.rollOut {\n -webkit-animation-name: rollOut;\n animation-name: rollOut;\n}\n\n@-webkit-keyframes zoomIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes zoomIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 50% {\n opacity: 1;\n }\n}\n\n.zoomIn {\n -webkit-animation-name: zoomIn;\n animation-name: zoomIn;\n}\n\n@-webkit-keyframes zoomInDown {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomInDown {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomInDown {\n -webkit-animation-name: zoomInDown;\n animation-name: zoomInDown;\n}\n\n@-webkit-keyframes zoomInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);\n transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);\n transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomInLeft {\n -webkit-animation-name: zoomInLeft;\n animation-name: zoomInLeft;\n}\n\n@-webkit-keyframes zoomInRight {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);\n transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomInRight {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);\n transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomInRight {\n -webkit-animation-name: zoomInRight;\n animation-name: zoomInRight;\n}\n\n@-webkit-keyframes zoomInUp {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomInUp {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomInUp {\n -webkit-animation-name: zoomInUp;\n animation-name: zoomInUp;\n}\n\n@-webkit-keyframes zoomOut {\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n@keyframes zoomOut {\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n.zoomOut {\n -webkit-animation-name: zoomOut;\n animation-name: zoomOut;\n}\n\n@-webkit-keyframes zoomOutDown {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomOutDown {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomOutDown {\n -webkit-animation-name: zoomOutDown;\n animation-name: zoomOutDown;\n}\n\n@-webkit-keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);\n transform: scale(.1) translate3d(-2000px, 0, 0);\n -webkit-transform-origin: left center;\n transform-origin: left center;\n }\n}\n\n@keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);\n transform: scale(.1) translate3d(-2000px, 0, 0);\n -webkit-transform-origin: left center;\n transform-origin: left center;\n }\n}\n\n.zoomOutLeft {\n -webkit-animation-name: zoomOutLeft;\n animation-name: zoomOutLeft;\n}\n\n@-webkit-keyframes zoomOutRight {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.1) translate3d(2000px, 0, 0);\n transform: scale(.1) translate3d(2000px, 0, 0);\n -webkit-transform-origin: right center;\n transform-origin: right center;\n }\n}\n\n@keyframes zoomOutRight {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.1) translate3d(2000px, 0, 0);\n transform: scale(.1) translate3d(2000px, 0, 0);\n -webkit-transform-origin: right center;\n transform-origin: right center;\n }\n}\n\n.zoomOutRight {\n -webkit-animation-name: zoomOutRight;\n animation-name: zoomOutRight;\n}\n\n@-webkit-keyframes zoomOutUp {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomOutUp {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomOutUp {\n -webkit-animation-name: zoomOutUp;\n animation-name: zoomOutUp;\n}\n\n@-webkit-keyframes slideInDown {\n 0% {\n -webkit-transform: translateY(-100%);\n transform: translateY(-100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n\n@keyframes slideInDown {\n 0% {\n -webkit-transform: translateY(-100%);\n transform: translateY(-100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n\n.slideInDown {\n -webkit-animation-name: slideInDown;\n animation-name: slideInDown;\n}\n\n@-webkit-keyframes slideInLeft {\n 0% {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n\n@keyframes slideInLeft {\n 0% {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n\n.slideInLeft {\n -webkit-animation-name: slideInLeft;\n animation-name: slideInLeft;\n}\n\n@-webkit-keyframes slideInRight {\n 0% {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n\n@keyframes slideInRight {\n 0% {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n\n.slideInRight {\n -webkit-animation-name: slideInRight;\n animation-name: slideInRight;\n}\n\n@-webkit-keyframes slideInUp {\n 0% {\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n\n@keyframes slideInUp {\n 0% {\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n\n.slideInUp {\n -webkit-animation-name: slideInUp;\n animation-name: slideInUp;\n}\n\n@-webkit-keyframes slideOutDown {\n 0% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n }\n}\n\n@keyframes slideOutDown {\n 0% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n }\n}\n\n.slideOutDown {\n -webkit-animation-name: slideOutDown;\n animation-name: slideOutDown;\n}\n\n@-webkit-keyframes slideOutLeft {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n }\n}\n\n@keyframes slideOutLeft {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n }\n}\n\n.slideOutLeft {\n -webkit-animation-name: slideOutLeft;\n animation-name: slideOutLeft;\n}\n\n@-webkit-keyframes slideOutRight {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n }\n}\n\n@keyframes slideOutRight {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n }\n}\n\n.slideOutRight {\n -webkit-animation-name: slideOutRight;\n animation-name: slideOutRight;\n}\n\n@-webkit-keyframes slideOutUp {\n 0% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateY(-100%);\n transform: translateY(-100%);\n }\n}\n\n@keyframes slideOutUp {\n 0% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateY(-100%);\n transform: translateY(-100%);\n }\n}\n\n.slideOutUp {\n -webkit-animation-name: slideOutUp;\n animation-name: slideOutUp;\n}\n",".btn {\n $btn-top-clr: #FAFAFA;\n $btn-bottom-clr: #EFF1F3;\n border:1px solid #E0E3E9;\n display:inline-block;\n border-radius: 2px;\n box-shadow: inset 0 1px 0 white, 0 1px 1px rgba(black, 0.1);\n @include linear-gradient($btn-top-clr, $btn-bottom-clr);\n font-size: em(12px);\n font-weight:600;\n color: $text-2-clr;\n text-decoration:none;\n padding: em(8px) em(15px);\n &:hover {\n @include linear-gradient(lighten($btn-top-clr,0.5%), lighten($btn-bottom-clr,1%));\n }\n &.disabled {\n cursor:default;\n opacity: 0.5;\n &:active {\n box-shadow: inset 0 1px 0 white, 0 1px 1px rgba(black, 0.1);\n }\n }\n &.danger {\n color: $red-clr;\n }\n &:focus {\n outline:0;\n }\n &:active {\n box-shadow: inset 0 0 2px rgba(black, 0.1);\n }\n}\n","form {\n margin:0;\n &.ng-submitted {\n .ng-invalid {\n border-color: $pink-clr !important;\n }\n }\n}\n\n.form-container {\n width:100%;\n}\n\n.form-row {\n @include row();\n margin-bottom:10px;\n @include user-select(none);\n}\n\n.form-col {\n @include span-columns(6);\n &.padded {\n &:first-child {\n padding: 0 20px 0 0;\n }\n &:last-child {\n padding: 0 0 0 20px;\n }\n }\n}\n\n.form-group {\n & > label {\n font-size:em(12px);\n color: $text-3-clr;\n display:inline-block;\n line-height:em(30px);\n\n }\n .form-error {\n font-size: em(12px);\n color: $red-clr;\n float: right;\n img {\n vertical-align:bottom;\n margin-right: 3px;\n }\n }\n &.optional > label:after {\n content: \" (optional)\";\n }\n &.error {\n input.form-control, textarea.form-control {\n\n border-color: $pink-clr;\n background: rgba($pink-clr,0.02);\n }\n }\n input.form-control, textarea.form-control {\n border-radius: 3px;\n border: 1px solid $border-clr;\n font-size:em(18px);\n &.ng-pristine {\n background: lighten($background-clr,1%);\n }\n @include transition(border-color 0.1s ease-in-out);\n &:focus {\n border-color: $blue-clr;\n box-shadow: 0 0 3px rgba($blue-clr, 0.5);\n outline:none;\n background: white;\n }\n &.extend {\n width:100%;\n }\n @include placeholder {\n color: rgba($text-3-clr,0.7);\n }\n }\n .form-btn {\n padding: em(12px) em(15px);\n }\n input.form-control {\n vertical-align:middle;\n padding: em(5px) em(10px);\n }\n\n textarea.form-control {\n min-height: 135px;\n font-size: em(18px);\n padding: em(8px) em(10px);\n }\n\n}\n\n\n.form-submit-message {\n display:inline-block;\n margin-left: em(5px);\n font-size: em(12px);\n &.error {\n color: $red-clr;\n }\n img {\n vertical-align:middle;\n margin-right: em(5px);\n }\n}\n","/// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout.\n///\n/// @param {String} $display (default)\n/// Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`.\n///\n/// @param {String} $direction ($default-layout-direction)\n/// Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left).\n///\n/// @example scss - Usage\n/// .element {\n/// @include row();\n/// }\n///\n/// @example css - CSS Output\n/// .element {\n/// *zoom: 1;\n/// display: block;\n/// }\n///\n/// .element:before, .element:after {\n/// content: \" \";\n/// display: table;\n/// }\n///\n/// .element:after {\n/// clear: both;\n/// }\n\n@mixin row($display: default, $direction: $default-layout-direction) {\n @if $direction != $default-layout-direction {\n @include -neat-warn(\"The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin.\");\n }\n\n $layout-direction: $direction !global;\n\n @if $display != default {\n @include -neat-warn(\"The $display argument will be deprecated in future versions in favor of the display(){...} mixin.\");\n }\n\n @if $display == table {\n display: table;\n @include fill-parent;\n table-layout: fixed;\n $container-display-table: true !global;\n }\n\n @else {\n @include clearfix;\n display: block;\n $container-display-table: false !global;\n }\n}\n\n","// Modern micro clearfix provides an easy way to contain floats without adding additional markup.\n//\n// Example usage:\n//\n// // Contain all floats within .wrapper\n// .wrapper {\n// @include clearfix;\n// .content,\n// .sidebar {\n// float : left;\n// }\n// }\n\n@mixin clearfix {\n &:after {\n content:\"\";\n display:table;\n clear:both;\n }\n}\n\n// Acknowledgements\n// Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php)\n","/// Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well.\n///\n/// @param {List} $span\n/// A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional).\n///\n/// If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid.\n///\n/// The values can be separated with any string such as `of`, `/`, etc.\n///\n/// @param {String} $display (block)\n/// Sets the display property of the element. By default it sets the display propert of the element to `block`.\n///\n/// If passed `block-collapse`, it also removes the margin gutter by adding it to the element width.\n///\n/// If passed `table`, it sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid.\n///\n/// @example scss - Usage\n/// .element {\n/// @include span-columns(6);\n///\n/// .nested-element {\n/// @include span-columns(2 of 6);\n/// }\n/// }\n///\n/// @example css - CSS Output\n/// .element {\n/// display: block;\n/// float: left;\n/// margin-right: 2.35765%;\n/// width: 48.82117%;\n/// }\n///\n/// .element:last-child {\n/// margin-right: 0;\n/// }\n///\n/// .element .nested-element {\n/// display: block;\n/// float: left;\n/// margin-right: 4.82916%;\n/// width: 30.11389%;\n/// }\n///\n/// .element .nested-element:last-child {\n/// margin-right: 0;\n/// }\n\n@mixin span-columns($span: $columns of $container-columns, $display: block) {\n $columns: nth($span, 1);\n $container-columns: container-span($span);\n\n $parent-columns: get-parent-columns($container-columns) !global;\n\n $direction: get-direction($layout-direction, $default-layout-direction);\n $opposite-direction: get-opposite-direction($direction);\n\n $display-table: is-display-table($container-display-table, $display);\n\n @if $display-table {\n display: table-cell;\n width: percentage($columns / $container-columns);\n } @else {\n float: #{$opposite-direction};\n\n @if $display != no-display {\n display: block;\n }\n\n @if $display == collapse {\n @include -neat-warn(\"The 'collapse' argument will be deprecated. Use 'block-collapse' instead.\");\n }\n\n @if $display == collapse or $display == block-collapse {\n width: flex-grid($columns, $container-columns) + flex-gutter($container-columns);\n\n &:last-child {\n width: flex-grid($columns, $container-columns);\n }\n\n } @else {\n margin-#{$direction}: flex-gutter($container-columns);\n width: flex-grid($columns, $container-columns);\n\n &:last-child {\n margin-#{$direction}: 0;\n }\n }\n }\n}\n","@mixin placeholder {\n $placeholders: \":-webkit-input\" \":-moz\" \"-moz\" \"-ms-input\";\n @each $placeholder in $placeholders {\n &:#{$placeholder}-placeholder {\n @content;\n }\n }\n}\n","$box-v-pad: 20px;\n$box-h-pad: 25px;\n\n.box {\n background: white;\n border: 1px solid $border-clr;\n border-radius: 3px;\n margin: 0 auto 20px auto;\n max-width: 800px;\n padding: $box-v-pad $box-h-pad;\n &.box-x-scroll {\n overflow-x: scroll;\n }\n &.invisible {\n background: transparent;\n border:0;\n padding: 0;\n margin-bottom:40px;\n }\n &.highlight {\n border-color: $blue-clr;\n box-shadow: 0 0 3px rgba($blue-clr, 0.5);\n }\n &:last-child {\n margin-bottom: 40px;\n }\n}\n\n.box-title {\n font-size: 24px;\n font-weight: bold;\n color: $text-clr;\n margin-bottom:20px;\n}\n\n.box-description {\n font-size: 14px;\n color: $text-2-clr;\n padding-bottom: 20px;\n border-bottom: 1px solid $border-clr;\n margin-top: -20px;\n margin-bottom: 20px;\n a {\n color: $text-clr;\n text-decoration:none;\n &:hover {\n border: 1px solid $border-clr;\n }\n }\n}\n.box-section {\n padding-top: 20px;\n @include row;\n .section-details {\n @include span-columns(3);\n .section-title {\n font-size: em(14px);\n color: $text-2-clr;\n margin-bottom:20px;\n }\n }\n .section-main {\n @include span-columns(9);\n }\n}\n\n.box-message {\n text-align:center;\n padding:40px;\n max-width:450px;\n margin:0 auto;\n .main-image {\n margin-bottom: 20px;\n }\n .title {\n font-weight: bold;\n font-size: em(24px);\n color: $text-clr;\n margin-bottom: em(10px);\n }\n .content {\n font-size: em(14px);\n color: $text-2-clr;\n margin-bottom: 20px;\n }\n .mini-divider:after {\n content: \"\";\n display:inline-block;\n width:200px;\n height:1px;\n background: $border-clr;\n margin:20px auto;\n\n }\n}\n\n.box-side-sticky {\n padding: $box-v-pad $box-h-pad;\n box-sizing: content-box;\n width: 100%;\n margin-left: $box-h-pad * -1;\n\n}\n\n.box-bottom-sticky {\n padding: $box-v-pad $box-h-pad;\n box-sizing: content-box;\n width: 100%;\n margin-top:20px;\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n border-top: 1px solid $border-clr;\n margin-bottom: $box-v-pad * -1;\n margin-left: $box-h-pad * -1;\n}\n\n.box-controls {\n text-align: right;\n box-shadow: inset 0 1px 0 white;\n background: lighten($background-clr, 1%);\n margin-top: $box-v-pad;\n padding: 15px $box-h-pad;\n}\n",".ng-submitted .ng-invalid > .datepicker {\n border-color: $pink-clr;\n}\n.datepicker {\n width:100%;\n border:1px solid rgba($border-clr, 0.5);\n border-radius: 3px;\n background:white;\n padding: em(10px);\n @include transition(border-color 0.1s ease-in-out);\n table {\n width:100%;\n font-size: em($em-base);\n }\n thead {\n\n }\n tbody {\n &:before {\n content: '';\n display:block;\n height: em(10px);\n }\n }\n .prev, .next {\n opacity: 0.5;\n color: $text-2-clr;\n cursor: pointer;\n border-radius:5px;\n position:relative;\n &:hover {\n opacity: 1;\n &:after {\n opacity: 1;\n background: rgba($border-clr, 0.3);\n }\n }\n &:after {\n content: \" \";\n cursor:pointer;\n opacity: 0;\n position:absolute;\n $size: em(28px);\n width:$size;\n height:$size;\n margin-left:$size * -0.5;\n margin-top:$size * -0.5;\n left:50%;\n top:50%;\n border-radius:3px;\n @include transition(background-color 0.1s ease-in-out);\n }\n }\n .datepicker-switch {\n padding: 10px;\n font-weight:600;\n font-size:em(18px);\n border-radius: 3px;\n cursor: pointer;\n @include transition(background-color 0.1s ease-in-out);\n &:hover {\n background: rgba($border-clr, 0.4);\n }\n }\n .dow {\n padding:10px;\n font-weight:normal;\n text-transform: uppercase;\n color: $pink-clr;\n font-size: em(14px);\n border-bottom: 2px solid rgba($border-clr, 0.3);\n }\n .dow, .day {\n padding:em(15px);\n }\n .day {\n text-align:center;\n font-weight:600;\n position:relative;\n font-size:em(14px);\n &.today {\n color:#818176;\n &:after {\n opacity:1;\n background: rgba(yellow, 0.1);\n }\n }\n &:hover {\n &:after {\n opacity:1;\n background: rgba($border-clr,0.4);\n }\n cursor: pointer;\n }\n &.new, &.old {\n font-weight:normal;\n color: $text-3-clr;\n }\n &.active {\n background:white;\n color: $green-clr;\n &:after {\n opacity:1;\n background: rgba($green-clr,0.1);\n }\n }\n &:active {\n &:after {\n opacity: 0.8;\n }\n }\n &:after {\n content: \" \";\n @include transition(all 0.1s ease-in-out);\n cursor:pointer;\n opacity: 0;\n position:absolute;\n $size: em(35px);\n width:$size;\n height:$size;\n margin-left:$size * -0.5;\n margin-top:$size * -0.5;\n left:50%;\n top:50%;\n border-radius: 3px;\n }\n }\n .month, .year {\n width: 33.3%;\n display:inline-block;\n text-align:center;\n font-size: em(14px);\n padding:em(20px);\n cursor:pointer;\n @include transition(background-color 0.1s ease-in-out);\n border-radius: 3px;\n text-transform: uppercase;\n &:hover {\n background: rgba($border-clr, 0.3);\n }\n }\n}\n\n.daticon-list {\n margin:0;\n margin-left:-10px;\n list-style:none;\n padding:5px;\n text-align:left;\n .placeholder {\n line-height: em(18px);\n font-size: em(12px);\n color: #ccc;\n }\n li {\n margin: 5px;\n display:inline-block;\n }\n}\n\n.daticon {\n box-shadow: 0 0 0 1px rgba($border-clr,0.5);\n border-radius: 3px;\n display:inline-block;\n padding:em(8px) em(16px);\n text-align:center;\n position:relative;\n cursor:default;\n background:white;\n .dow {\n font-size: em(6px);\n margin-top:em(-24px);\n background:white;\n color: $text-3-clr;\n margin-bottom: em(4px);\n font-weight:normal;\n text-transform: uppercase;\n }\n .day {\n font-size: em(20px);\n font-weight:normal;\n color: $pink-clr;\n line-height: em(16px);\n }\n .month {\n font-weight: 600;\n font-size: em(12px);\n text-transform: uppercase;\n }\n .delete {\n text-align:center;\n border:0;\n $size: 18px;\n width: em($size);\n height: em($size);\n position:absolute;\n top: $size * -0.4;\n right: $size * -0.4;\n border-radius:100%;\n display:inline-block;\n background: rgba($border-clr, 0.5) url(../images/close@2x.png) no-repeat center center;\n background-size: 7px 8px;\n cursor:pointer;\n opacity:0;\n &:hover {\n background-color: rgba($border-clr, 0.8)\n }\n }\n .count {\n text-align:center;\n border:0;\n $size: 18px;\n width: $size;\n height: $size;\n position:absolute;\n top: $size * -0.4;\n right: $size * -0.4;\n border-radius:100%;\n font-weight:bold;\n display:inline-block;\n background: darken($border-clr, 10%);\n color:white;\n font-size: 9px;\n line-height: $size;\n @include transition(background-color 0.2s ease-in-out);\n &.top {\n background: #FF5D5D;\n }\n\n }\n &:hover {\n .delete {\n opacity: 1;\n }\n }\n}\n",".rl-modal {\n background:white;\n position: fixed;\n top: 50%;\n left: 50%;\n width: 50%;\n max-width: 400px;\n display:inline-block;\n min-width: 200px;\n height: auto;\n z-index: 2000;\n overflow:hidden;\n border-radius: 5px;\n box-shadow: 0 0 0 1px $border-clr, 0 0 0 5px rgba($border-clr,0.8), 0 0 10px 5px rgba(black, 0.2);\n @include transform(translateX(-50%) translateY(-50%));\n .rl-modal-message {\n padding: 0 20px 20px 20px;\n font-size: em(12px);\n color: $text-2-clr;\n }\n .rl-modal-title {\n padding:20px 20px 0 20px;\n font-size: em(18px);\n font-weight: bold;\n }\n .rl-modal-actions {\n border-top:1px solid $border-clr;\n box-shadow: inset 0 1px 0 white;\n background: lighten($background-clr,1%);\n text-align:right;\n padding: em(10px) em(20px);\n }\n}\n\n.rl-modal-overlay {\n position:fixed;\n z-index: 1999;\n top:0;\n left:0;\n width:100%;\n height:100%;\n background:rgba(black,0.1);\n\n}\n","$actions-col-width : 160px;\n$date-col-width: 70px;\n$name-col-width: 235px;\n\n.poll {\n min-width: 100%;\n display:block;\n}\n\n.poll-header {\n display:table;\n min-width: 100%;\n border-bottom:1px solid $border-clr;\n box-shadow: 0 3px 0 rgba($border-clr, 0.3);\n .header {\n display:table-cell;\n vertical-align:bottom;\n padding-bottom:20px;\n &.date-header {\n text-align:center;\n min-width: $date-col-width;\n width: $date-col-width;\n }\n &.actions-header {\n min-width: $actions-col-width;\n }\n &.participants-header {\n font-weight: bold;\n min-width: $name-col-width;\n width: $name-col-width;\n padding-left: em(10px);\n }\n }\n}\n\n.poll-body {\n min-width:100%;\n\n .poll-entry.highlight {\n background: lighten($border-clr,10%);\n }\n .poll-entry {\n display:table;\n min-width: 100%;\n border-bottom: 1px solid rgba($border-clr,0.5);\n .hover {\n visibility:hidden;\n }\n &:hover {\n .hover {\n visibility: visible;\n }\n }\n .cell {\n padding: em(10px);\n display:table-cell;\n &.name-cell {\n min-width: $name-col-width;\n width: $name-col-width;\n font-size: em(14px);\n .avatar {\n display:inline-block;\n padding: 5px;\n margin-right: 5px;\n border-radius: 2px;\n background: #D0D5DF;\n @for $i from 0 to length($color-collection) {\n &.style-#{$i + 1} {\n background: nth($color-collection, $i+1);\n }\n }\n }\n .name {\n padding: 5px 3px;\n margin-left: 2px;\n border-radius: 2px;\n &:hover {\n background: $background-clr;\n cursor: pointer;\n }\n }\n .form-control {\n border:1px solid $border-clr;\n padding: em(5px);\n border-radius: 2px;\n color: $text-clr;\n &:focus {\n outline:0;\n border-color: $blue-clr;\n box-shadow: 0 0 3px rgba($blue-clr, 0.5);\n }\n @include placeholder {\n color: rgba($text-2-clr,0.7);\n }\n }\n }\n &.action-cell {\n min-width: $actions-col-width;\n }\n &.vote-cell {\n min-width: $date-col-width;\n width: $date-col-width;\n text-align:center;\n position: relative;\n .overlay {\n position: absolute;\n top:0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 10;\n &:hover {\n background: rgba($border-clr, 0.2);\n cursor: pointer;\n }\n }\n }\n }\n &.ng-submitted {\n .ng-invalid {\n border-color: $pink-clr !important;\n }\n }\n }\n}\n",".page-placeholder {\n margin:0 auto;\n text-align:center;\n color:#B0B8C4;\n position:absolute;\n top:50%;\n left: 50%;\n @include transform(translateX(-50%) translateY(-50%));\n .image {\n margin-bottom:20px;\n }\n .title {\n font-size: em(36px);\n font-weight: bold;\n margin-bottom: 20px;\n }\n .content {\n font-size: em(14px);\n max-width: 320px;\n font-weight: normal;\n margin-bottom: 20px;\n }\n}\n",".event-description {\n font-size: em(16px);\n white-space: pre-wrap;\n padding-top:20px;\n padding-bottom: 20px;\n line-height:em(24px);\n color: $text-2-clr;\n background: $background-clr;\n border-top: 1px solid $border-clr;\n margin-top: 20px;\n margin-bottom:-20px;\n}\n\n.event-location {\n font-size: em(16px);\n a {\n color: $text-clr;\n text-decoration:none;\n &:hover {\n text-decoration:underline;\n }\n }\n img {\n vertical-align:middle;\n margin-right: 10px;\n }\n}\n\n\n.event-pair {\n margin-bottom: 20px;\n border-bottom: 1px solid $border-clr;\n padding-bottom: 20px;\n float: left;\n width: 100%;\n .icon {\n display:inline-block;\n width: 30px;\n float:left;\n position: relative;\n text-align:center;\n height: 35px;\n border-radius: 3px;\n margin-right: 10px;\n img {\n position: absolute;\n top:50%;\n left: 50%;\n @include transform(translateX(-50%) translateY(-50%));\n }\n }\n .content {\n float:left;\n display:inline-block;\n }\n .key {\n font-weight:bold;\n font-size: 11px;\n }\n .value {\n color: $text-2-clr;\n }\n}\n\n.event-header {\n width: 100%;\n margin-top: -30px;\n .avatar {\n display:inline-block;\n margin-right: 20px;\n text-align: center;\n border-radius: 1px;\n box-shadow: 0 0 0 5px white, 0 0 0 6px $border-clr, inset 0 0 0 1px $border-clr;\n padding: 20px;\n background:$background-clr;\n vertical-align: bottom;\n }\n .details {\n display:inline-block;\n .title {\n font-size: em(24px);\n font-weight: bold;\n }\n .subtitle {\n color: $text-2-clr;\n font-size: em(14px);\n a {\n color: $blue-clr;\n text-decoration: none;\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n .actions {\n // visibility:hidden;\n float: right;\n margin-top: 30px;\n }\n &:hover {\n .actions {\n visibility:visible;\n }\n }\n}\n"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["style.scss","partials/_normalize.scss","neat/grid/_box-sizing.scss","bourbon/addons/_prefixer.scss","modules/_vars.scss","partials/_applayout.scss","partials/_navigation.scss","bourbon/css3/_transition.scss","bourbon/css3/_linear-gradient.scss","partials/_topbar.scss","partials/ui/_animations.scss","partials/ui/_buttons.scss","partials/ui/_form.scss","neat/grid/_row.scss","bourbon/addons/_clearfix.scss","neat/grid/_span-columns.scss","bourbon/css3/_placeholder.scss","partials/ui/_box.scss","partials/ui/_datepicker.scss","partials/ui/_modal.scss","partials/ui/_poll.scss","partials/ui/_tags.scss","partials/ui/_dropdown.scss","partials/ui/_comments.scss","partials/ui/_switch.scss","partials/ui/_notification.scss","partials/pages/_home.scss","partials/pages/_event.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["@import url(http://fonts.googleapis.com/css?family=Roboto:400,600,700);\n@import \"modules/vars\";\n@import \"modules/mixins\";\n@import \"partials/normalize\";\n@import \"bourbon/bourbon\";\n@import \"neat/neat\";\n\nbody {\n font-family: \"Roboto\", \"Helvetica Neue\", Arial, sans-serif;\n}\n\na {\n color: $blue-clr;\n}\n\n@import \"partials/applayout\";\n@import \"partials/navigation\";\n@import \"partials/topbar\";\n@import \"partials/ui/animations\";\n@import \"partials/ui/buttons\";\n@import \"partials/ui/form\";\n@import \"partials/ui/box\";\n@import \"partials/ui/datepicker\";\n@import \"partials/ui/modal\";\n@import \"partials/ui/poll\";\n@import \"partials/ui/tags\";\n@import \"partials/ui/dropdown\";\n@import \"partials/ui/comments\";\n@import \"partials/ui/switch\";\n@import \"partials/ui/notification\";\n\n@import \"partials/pages/home\";\n@import \"partials/pages/event\";\n","/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n * user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\n\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome\n * (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box; /* 2 */\n box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","@if $border-box-sizing == true {\n html { // http://bit.ly/1qk2tVR\n @include box-sizing(border-box);\n }\n\n * {\n &, &:before, &:after {\n @include box-sizing(inherit);\n }\n }\n}\n","//************************************************************************//\n// Example: @include prefixer(border-radius, $radii, webkit ms spec);\n//************************************************************************//\n// Variables located in /settings/_prefixer.scss\n\n@mixin prefixer ($property, $value, $prefixes) {\n @each $prefix in $prefixes {\n @if $prefix == webkit {\n @if $prefix-for-webkit {\n -webkit-#{$property}: $value;\n }\n }\n @else if $prefix == moz {\n @if $prefix-for-mozilla {\n -moz-#{$property}: $value;\n }\n }\n @else if $prefix == ms {\n @if $prefix-for-microsoft {\n -ms-#{$property}: $value;\n }\n }\n @else if $prefix == o {\n @if $prefix-for-opera {\n -o-#{$property}: $value;\n }\n }\n @else if $prefix == spec {\n @if $prefix-for-spec {\n #{$property}: $value;\n }\n }\n @else {\n @warn \"Unrecognized prefix: #{$prefix}\";\n }\n }\n}\n\n@mixin disable-prefix-for-all() {\n $prefix-for-webkit: false !global;\n $prefix-for-mozilla: false !global;\n $prefix-for-microsoft: false !global;\n $prefix-for-opera: false !global;\n $prefix-for-spec: false !global;\n}\n","$dark-blue-clr: #2E3A54;\n$green-clr: #6EBC48;\n$pink-clr: #E55A84;\n$red-clr: #E06488;\n$blue-clr: #5AC4E5;\n$light-blue-clr: #F5F6F8;\n$orangered-clr: #FF5D5D;\n\n$text-clr: #3D4043;\n$text-2-clr: #828B9A;\n$text-3-clr: #AEB4BE;\n$border-clr: #D9DDE3;\n$navigation-bg-clr: $dark-blue-clr;\n$background-clr: $light-blue-clr;\n\n$color-collection: (#8A75AE, #80A1DA, #B3DD8B, #7EE4E4, #FCD285, #F7967F, #E8669D, #F7B6E7, #F99D7B, #88D0CB);\n","$navigation-width: 100%;\n$top-bar-height: 50px;\n$min-width: 820px;\n\n.outer-container {\n width:100%;\n height:100%;\n}\nbody {\n background: $background-clr;\n color: $text-clr;\n min-width: $min-width;\n}\n.main-navigation {\n width: $navigation-width;\n min-width:$min-width;\n color: white;\n .wrapper {\n width: $navigation-width;\n padding: 0 40px;\n }\n}\n\n.main-content {\n background: $background-clr;\n min-height:100%;\n .main-view {\n position:relative;\n padding: 160px 40px 40px 40px;\n width:100%;\n min-height: 600px;\n }\n}\n\n.top-bar {\n width:100%;\n box-shadow: 0 1px 2px rgba(black, 0.1);\n height: $top-bar-height;\n line-height: $top-bar-height;\n}\n","$top-space: 15px;\n\n.main-navigation {\n position:fixed;\n width:100%;\n z-index: 1000;\n .wrapper {\n min-width:600px;\n background: $navigation-bg-clr;\n height: em(60px);\n }\n .logo {\n display:inline-block;\n vertical-align:middle;\n margin-top:$top-space;\n\n }\n .navigation {\n display:inline-block;\n vertical-align:middle;\n margin-left: 60px;\n margin-top:$top-space;\n .links {\n padding:0 ;\n margin:0;\n list-style: none;\n display:inline-block;\n li {\n display:inline-block;\n margin-right:em(20px);\n }\n a {\n text-decoration: none;\n color: #616F8D;\n font-weight: bold;\n line-height: em(24px);\n font-size: em(15px);\n opacity: 0.7;\n &:hover {\n opacity: 1;\n color:white;\n .icon {\n background-position: center bottom;\n }\n }\n &.active {\n opacity:1;\n color: white;\n cursor: default;\n .icon {\n background-position: center bottom;\n }\n }\n .text {\n vertical-align:middle;\n }\n .icon {\n display:inline-block;\n vertical-align:middle;\n margin-right: 5px;\n width:16px;\n height:16px;\n background-size: 16px 32px;\n }\n\n }\n }\n }\n .create-new {\n display:inline-block;\n float:right;\n padding: 13px;\n // border-bottom:1px solid lighten($navigation-bg-clr, 5%);\n a {\n display:block;\n @include transition(background-color 0.1s ease-in-out);\n color:tint($green-clr,90%);\n text-align:center;\n border-radius: 2px;\n @include linear-gradient(lighten($green-clr,8%), lighten($green-clr,2%));\n text-decoration:none;\n font-size:12px;\n font-weight: bold;\n // text-shadow: 0 1px 1px darken($green-clr, 10%);\n padding: 8px 15px 10px 12px;\n &:hover {\n\n }\n &:active {\n box-shadow: inset 0 2px 5px rgba(black,0.1), 0 0 0 1px darken($navigation-bg-clr, 8%);\n }\n img {\n vertical-align:middle;\n margin-right: 5px;\n margin-top: -2px;\n }\n span {\n }\n }\n }\n}\n","// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.\n// Example: @include transition (all 2s ease-in-out);\n// @include transition (opacity 1s ease-in 2s, width 2s ease-out);\n// @include transition-property (transform, opacity);\n\n@mixin transition ($properties...) {\n // Fix for vendor-prefix transform property\n $needs-prefixes: false;\n $webkit: ();\n $moz: ();\n $spec: ();\n\n // Create lists for vendor-prefixed transform\n @each $list in $properties {\n @if nth($list, 1) == \"transform\" {\n $needs-prefixes: true;\n $list1: -webkit-transform;\n $list2: -moz-transform;\n $list3: ();\n\n @each $var in $list {\n $list3: join($list3, $var);\n\n @if $var != \"transform\" {\n $list1: join($list1, $var);\n $list2: join($list2, $var);\n }\n }\n\n $webkit: append($webkit, $list1);\n $moz: append($moz, $list2);\n $spec: append($spec, $list3);\n }\n\n // Create lists for non-prefixed transition properties\n @else {\n $webkit: append($webkit, $list, comma);\n $moz: append($moz, $list, comma);\n $spec: append($spec, $list, comma);\n }\n }\n\n @if $needs-prefixes {\n -webkit-transition: $webkit;\n -moz-transition: $moz;\n transition: $spec;\n }\n @else {\n @if length($properties) >= 1 {\n @include prefixer(transition, $properties, webkit moz spec);\n }\n\n @else {\n $properties: all 0.15s ease-out 0s;\n @include prefixer(transition, $properties, webkit moz spec);\n }\n }\n}\n\n@mixin transition-property ($properties...) {\n -webkit-transition-property: transition-property-names($properties, 'webkit');\n -moz-transition-property: transition-property-names($properties, 'moz');\n transition-property: transition-property-names($properties, false);\n}\n\n@mixin transition-duration ($times...) {\n @include prefixer(transition-duration, $times, webkit moz spec);\n}\n\n@mixin transition-timing-function ($motions...) {\n// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()\n @include prefixer(transition-timing-function, $motions, webkit moz spec);\n}\n\n@mixin transition-delay ($times...) {\n @include prefixer(transition-delay, $times, webkit moz spec);\n}\n","@mixin linear-gradient($pos, $G1, $G2: null,\n $G3: null, $G4: null,\n $G5: null, $G6: null,\n $G7: null, $G8: null,\n $G9: null, $G10: null,\n $fallback: null) {\n // Detect what type of value exists in $pos\n $pos-type: type-of(nth($pos, 1));\n $pos-spec: null;\n $pos-degree: null;\n\n // If $pos is missing from mixin, reassign vars and add default position\n @if ($pos-type == color) or (nth($pos, 1) == \"transparent\") {\n $G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;\n $G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;\n $pos: null;\n }\n\n @if $pos {\n $positions: _linear-positions-parser($pos);\n $pos-degree: nth($positions, 1);\n $pos-spec: nth($positions, 2);\n }\n\n $full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;\n\n // Set $G1 as the default fallback color\n $fallback-color: nth($G1, 1);\n\n // If $fallback is a color use that color as the fallback color\n @if (type-of($fallback) == color) or ($fallback == \"transparent\") {\n $fallback-color: $fallback;\n }\n\n background-color: $fallback-color;\n background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome\n background-image: unquote(\"linear-gradient(#{$pos-spec}#{$full})\");\n}\n",".top-bar {\n float: left;\n width: 100%;\n background:rgba(white,0.9);\n .primary {\n list-style:none;\n margin:0;\n padding-left:40px;\n margin-top:-4px;\n .item {\n img {\n display:inline-block;\n vertical-align:middle;\n }\n .hoverable {\n padding: 8px 12px;\n height: 100%;\n text-decoration:none;\n color: $text-clr;\n font-size: em(12px);\n border: 1px solid transparent;\n border-radius: 3px;\n vertical-align:bottom;\n border-color: $border-clr;\n span {\n vertical-align:middle;\n }\n &:hover {\n border-color: darken($border-clr,10%);\n }\n }\n &.dropdown.open .dropdown-toggle {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-color: $border-clr;\n border-bottom-color: white;\n position: relative;\n z-index:1001;\n }\n .dropdown-menu {\n background: white;\n color: $text-clr;\n font-size: em(16px);\n line-height: 1.5em;\n border: 1px solid $border-clr;\n border-radius: 3px;\n padding: 20px;\n margin-top:-9px;\n border-top-left-radius:0;\n box-shadow: 0 2px 3px $border-clr;\n .dropdown-title {\n font-weight:bold;\n font-size: em(15px);\n }\n .dropdown-content {\n font-size: em(14px);\n line-height: 1.5em;\n color: $text-2-clr;\n }\n }\n }\n\n }\n}\n","@charset \"UTF-8\";\n/*!\nAnimate.css - http://daneden.me/animate\nLicensed under the MIT license - http://opensource.org/licenses/MIT\n\nCopyright (c) 2014 Daniel Eden\n*/\n\n.animated {\n -webkit-animation-duration: 0.3s;\n animation-duration: 0.3s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}\n\n.animated.infinite {\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n}\n\n.animated.hinge {\n -webkit-animation-duration: 2s;\n animation-duration: 2s;\n}\n\n@-webkit-keyframes bounce {\n 0%, 20%, 53%, 80%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n -webkit-transform: translate3d(0,0,0);\n transform: translate3d(0,0,0);\n }\n\n 40%, 43% {\n -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n -webkit-transform: translate3d(0, -30px, 0);\n transform: translate3d(0, -30px, 0);\n }\n\n 70% {\n -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n -webkit-transform: translate3d(0, -15px, 0);\n transform: translate3d(0, -15px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0,-4px,0);\n transform: translate3d(0,-4px,0);\n }\n}\n\n@keyframes bounce {\n 0%, 20%, 53%, 80%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n -webkit-transform: translate3d(0,0,0);\n transform: translate3d(0,0,0);\n }\n\n 40%, 43% {\n -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n -webkit-transform: translate3d(0, -30px, 0);\n transform: translate3d(0, -30px, 0);\n }\n\n 70% {\n -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);\n -webkit-transform: translate3d(0, -15px, 0);\n transform: translate3d(0, -15px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0,-4px,0);\n transform: translate3d(0,-4px,0);\n }\n}\n\n.bounce {\n -webkit-animation-name: bounce;\n animation-name: bounce;\n -webkit-transform-origin: center bottom;\n -ms-transform-origin: center bottom;\n transform-origin: center bottom;\n}\n\n@-webkit-keyframes flash {\n 0%, 50%, 100% {\n opacity: 1;\n }\n\n 25%, 75% {\n opacity: 0;\n }\n}\n\n@keyframes flash {\n 0%, 50%, 100% {\n opacity: 1;\n }\n\n 25%, 75% {\n opacity: 0;\n }\n}\n\n.flash {\n -webkit-animation-name: flash;\n animation-name: flash;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@-webkit-keyframes pulse {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.05, 1.05, 1.05);\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n@keyframes pulse {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.05, 1.05, 1.05);\n transform: scale3d(1.05, 1.05, 1.05);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n.pulse {\n -webkit-animation-name: pulse;\n animation-name: pulse;\n}\n\n@-webkit-keyframes rubberBand {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25, 0.75, 1);\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.75, 1.25, 1);\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15, 0.85, 1);\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n -webkit-transform: scale3d(.95, 1.05, 1);\n transform: scale3d(.95, 1.05, 1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05, .95, 1);\n transform: scale3d(1.05, .95, 1);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n@keyframes rubberBand {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 30% {\n -webkit-transform: scale3d(1.25, 0.75, 1);\n transform: scale3d(1.25, 0.75, 1);\n }\n\n 40% {\n -webkit-transform: scale3d(0.75, 1.25, 1);\n transform: scale3d(0.75, 1.25, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.15, 0.85, 1);\n transform: scale3d(1.15, 0.85, 1);\n }\n\n 65% {\n -webkit-transform: scale3d(.95, 1.05, 1);\n transform: scale3d(.95, 1.05, 1);\n }\n\n 75% {\n -webkit-transform: scale3d(1.05, .95, 1);\n transform: scale3d(1.05, .95, 1);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n.rubberBand {\n -webkit-animation-name: rubberBand;\n animation-name: rubberBand;\n}\n\n@-webkit-keyframes shake {\n 0%, 100% {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%, 30%, 50%, 70%, 90% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%, 40%, 60%, 80% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n}\n\n@keyframes shake {\n 0%, 100% {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 10%, 30%, 50%, 70%, 90% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 20%, 40%, 60%, 80% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n}\n\n.shake {\n -webkit-animation-name: shake;\n animation-name: shake;\n}\n\n@-webkit-keyframes swing {\n 20% {\n -webkit-transform: rotate3d(0, 0, 1, 15deg);\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n -webkit-transform: rotate3d(0, 0, 1, -10deg);\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 5deg);\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, -5deg);\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n}\n\n@keyframes swing {\n 20% {\n -webkit-transform: rotate3d(0, 0, 1, 15deg);\n transform: rotate3d(0, 0, 1, 15deg);\n }\n\n 40% {\n -webkit-transform: rotate3d(0, 0, 1, -10deg);\n transform: rotate3d(0, 0, 1, -10deg);\n }\n\n 60% {\n -webkit-transform: rotate3d(0, 0, 1, 5deg);\n transform: rotate3d(0, 0, 1, 5deg);\n }\n\n 80% {\n -webkit-transform: rotate3d(0, 0, 1, -5deg);\n transform: rotate3d(0, 0, 1, -5deg);\n }\n\n 100% {\n -webkit-transform: rotate3d(0, 0, 1, 0deg);\n transform: rotate3d(0, 0, 1, 0deg);\n }\n}\n\n.swing {\n -webkit-transform-origin: top center;\n -ms-transform-origin: top center;\n transform-origin: top center;\n -webkit-animation-name: swing;\n animation-name: swing;\n}\n\n@-webkit-keyframes tada {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 10%, 20% {\n -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%, 50%, 70%, 90% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%, 60%, 80% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n@keyframes tada {\n 0% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n\n 10%, 20% {\n -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);\n }\n\n 30%, 50%, 70%, 90% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);\n }\n\n 40%, 60%, 80% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);\n }\n\n 100% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n.tada {\n -webkit-animation-name: tada;\n animation-name: tada;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@-webkit-keyframes wobble {\n 0% {\n -webkit-transform: none;\n transform: none;\n }\n\n 15% {\n -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes wobble {\n 0% {\n -webkit-transform: none;\n transform: none;\n }\n\n 15% {\n -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.wobble {\n -webkit-animation-name: wobble;\n animation-name: wobble;\n}\n\n@-webkit-keyframes bounceIn {\n 0%, 20%, 40%, 60%, 80%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(.9, .9, .9);\n transform: scale3d(.9, .9, .9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(.97, .97, .97);\n transform: scale3d(.97, .97, .97);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n@keyframes bounceIn {\n 0%, 20%, 40%, 60%, 80%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 20% {\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 40% {\n -webkit-transform: scale3d(.9, .9, .9);\n transform: scale3d(.9, .9, .9);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 80% {\n -webkit-transform: scale3d(.97, .97, .97);\n transform: scale3d(.97, .97, .97);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n\n.bounceIn {\n -webkit-animation-name: bounceIn;\n animation-name: bounceIn;\n -webkit-animation-duration: .75s;\n animation-duration: .75s;\n}\n\n@-webkit-keyframes bounceInDown {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -3000px, 0);\n transform: translate3d(0, -3000px, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, 25px, 0);\n transform: translate3d(0, 25px, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0, 5px, 0);\n transform: translate3d(0, 5px, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes bounceInDown {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -3000px, 0);\n transform: translate3d(0, -3000px, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, 25px, 0);\n transform: translate3d(0, 25px, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0, 5px, 0);\n transform: translate3d(0, 5px, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.bounceInDown {\n -webkit-animation-name: bounceInDown;\n animation-name: bounceInDown;\n}\n\n@-webkit-keyframes bounceInLeft {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-3000px, 0, 0);\n transform: translate3d(-3000px, 0, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px, 0, 0);\n transform: translate3d(25px, 0, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(5px, 0, 0);\n transform: translate3d(5px, 0, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes bounceInLeft {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-3000px, 0, 0);\n transform: translate3d(-3000px, 0, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(25px, 0, 0);\n transform: translate3d(25px, 0, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(-10px, 0, 0);\n transform: translate3d(-10px, 0, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(5px, 0, 0);\n transform: translate3d(5px, 0, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.bounceInLeft {\n -webkit-animation-name: bounceInLeft;\n animation-name: bounceInLeft;\n}\n\n@-webkit-keyframes bounceInRight {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(3000px, 0, 0);\n transform: translate3d(3000px, 0, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px, 0, 0);\n transform: translate3d(-25px, 0, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px, 0, 0);\n transform: translate3d(-5px, 0, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes bounceInRight {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(3000px, 0, 0);\n transform: translate3d(3000px, 0, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(-25px, 0, 0);\n transform: translate3d(-25px, 0, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(10px, 0, 0);\n transform: translate3d(10px, 0, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(-5px, 0, 0);\n transform: translate3d(-5px, 0, 0);\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.bounceInRight {\n -webkit-animation-name: bounceInRight;\n animation-name: bounceInRight;\n}\n\n@-webkit-keyframes bounceInUp {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 3000px, 0);\n transform: translate3d(0, 3000px, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0);\n }\n\n 100% {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n\n@keyframes bounceInUp {\n 0%, 60%, 75%, 90%, 100% {\n -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\n }\n\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 3000px, 0);\n transform: translate3d(0, 3000px, 0);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0);\n }\n\n 100% {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n\n.bounceInUp {\n -webkit-animation-name: bounceInUp;\n animation-name: bounceInUp;\n}\n\n@-webkit-keyframes bounceOut {\n 20% {\n -webkit-transform: scale3d(.9, .9, .9);\n transform: scale3d(.9, .9, .9);\n }\n\n 50%, 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n}\n\n@keyframes bounceOut {\n 20% {\n -webkit-transform: scale3d(.9, .9, .9);\n transform: scale3d(.9, .9, .9);\n }\n\n 50%, 55% {\n opacity: 1;\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\n transform: scale3d(1.1, 1.1, 1.1);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n}\n\n.bounceOut {\n -webkit-animation-name: bounceOut;\n animation-name: bounceOut;\n -webkit-animation-duration: .75s;\n animation-duration: .75s;\n}\n\n@-webkit-keyframes bounceOutDown {\n 20% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}\n\n@keyframes bounceOutDown {\n 20% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}\n\n.bounceOutDown {\n -webkit-animation-name: bounceOutDown;\n animation-name: bounceOutDown;\n}\n\n@-webkit-keyframes bounceOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px, 0, 0);\n transform: translate3d(20px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}\n\n@keyframes bounceOutLeft {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(20px, 0, 0);\n transform: translate3d(20px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}\n\n.bounceOutLeft {\n -webkit-animation-name: bounceOutLeft;\n animation-name: bounceOutLeft;\n}\n\n@-webkit-keyframes bounceOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px, 0, 0);\n transform: translate3d(-20px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}\n\n@keyframes bounceOutRight {\n 20% {\n opacity: 1;\n -webkit-transform: translate3d(-20px, 0, 0);\n transform: translate3d(-20px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}\n\n.bounceOutRight {\n -webkit-animation-name: bounceOutRight;\n animation-name: bounceOutRight;\n}\n\n@-webkit-keyframes bounceOutUp {\n 20% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, 20px, 0);\n transform: translate3d(0, 20px, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}\n\n@keyframes bounceOutUp {\n 20% {\n -webkit-transform: translate3d(0, -10px, 0);\n transform: translate3d(0, -10px, 0);\n }\n\n 40%, 45% {\n opacity: 1;\n -webkit-transform: translate3d(0, 20px, 0);\n transform: translate3d(0, 20px, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}\n\n.bounceOutUp {\n -webkit-animation-name: bounceOutUp;\n animation-name: bounceOutUp;\n}\n\n@-webkit-keyframes fadeIn {\n 0% {opacity: 0;}\n 100% {opacity: 1;}\n}\n\n@keyframes fadeIn {\n 0% {opacity: 0;}\n 100% {opacity: 1;}\n}\n\n.fadeIn {\n -webkit-animation-name: fadeIn;\n animation-name: fadeIn;\n}\n\n@-webkit-keyframes fadeInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInDown {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInDown {\n -webkit-animation-name: fadeInDown;\n animation-name: fadeInDown;\n}\n\n@-webkit-keyframes fadeInDownBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInDownBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInDownBig {\n -webkit-animation-name: fadeInDownBig;\n animation-name: fadeInDownBig;\n}\n\n@-webkit-keyframes fadeInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInLeft {\n -webkit-animation-name: fadeInLeft;\n animation-name: fadeInLeft;\n}\n\n@-webkit-keyframes fadeInLeftBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInLeftBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInLeftBig {\n -webkit-animation-name: fadeInLeftBig;\n animation-name: fadeInLeftBig;\n}\n\n@-webkit-keyframes fadeInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInRight {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInRight {\n -webkit-animation-name: fadeInRight;\n animation-name: fadeInRight;\n}\n\n@-webkit-keyframes fadeInRightBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInRightBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInRightBig {\n -webkit-animation-name: fadeInRightBig;\n animation-name: fadeInRightBig;\n}\n\n@-webkit-keyframes fadeInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInUp {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInUp {\n -webkit-animation-name: fadeInUp;\n animation-name: fadeInUp;\n}\n\n@-webkit-keyframes fadeInUpBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes fadeInUpBig {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.fadeInUpBig {\n -webkit-animation-name: fadeInUpBig;\n animation-name: fadeInUpBig;\n}\n\n@-webkit-keyframes fadeOut {\n 0% {opacity: 1;}\n 100% {opacity: 0;}\n}\n\n@keyframes fadeOut {\n 0% {opacity: 1;}\n 100% {opacity: 0;}\n}\n\n.fadeOut {\n -webkit-animation-name: fadeOut;\n animation-name: fadeOut;\n}\n\n@-webkit-keyframes fadeOutDown {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}\n\n@keyframes fadeOutDown {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0);\n }\n}\n\n.fadeOutDown {\n -webkit-animation-name: fadeOutDown;\n animation-name: fadeOutDown;\n}\n\n@-webkit-keyframes fadeOutDownBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}\n\n@keyframes fadeOutDownBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, 2000px, 0);\n transform: translate3d(0, 2000px, 0);\n }\n}\n\n.fadeOutDownBig {\n -webkit-animation-name: fadeOutDownBig;\n animation-name: fadeOutDownBig;\n}\n\n@-webkit-keyframes fadeOutLeft {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n@keyframes fadeOutLeft {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n.fadeOutLeft {\n -webkit-animation-name: fadeOutLeft;\n animation-name: fadeOutLeft;\n}\n\n@-webkit-keyframes fadeOutLeftBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}\n\n@keyframes fadeOutLeftBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(-2000px, 0, 0);\n transform: translate3d(-2000px, 0, 0);\n }\n}\n\n.fadeOutLeftBig {\n -webkit-animation-name: fadeOutLeftBig;\n animation-name: fadeOutLeftBig;\n}\n\n@-webkit-keyframes fadeOutRight {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n\n@keyframes fadeOutRight {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.fadeOutRight {\n -webkit-animation-name: fadeOutRight;\n animation-name: fadeOutRight;\n}\n\n@-webkit-keyframes fadeOutRightBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}\n\n@keyframes fadeOutRightBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(2000px, 0, 0);\n transform: translate3d(2000px, 0, 0);\n }\n}\n\n.fadeOutRightBig {\n -webkit-animation-name: fadeOutRightBig;\n animation-name: fadeOutRightBig;\n}\n\n@-webkit-keyframes fadeOutUp {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}\n\n@keyframes fadeOutUp {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n}\n\n.fadeOutUp {\n -webkit-animation-name: fadeOutUp;\n animation-name: fadeOutUp;\n}\n\n@-webkit-keyframes fadeOutUpBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}\n\n@keyframes fadeOutUpBig {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(0, -2000px, 0);\n transform: translate3d(0, -2000px, 0);\n }\n}\n\n.fadeOutUpBig {\n -webkit-animation-name: fadeOutUpBig;\n animation-name: fadeOutUpBig;\n}\n\n@-webkit-keyframes flip {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 40% {\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 50% {\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 80% {\n -webkit-transform: perspective(400px) scale3d(.95, .95, .95);\n transform: perspective(400px) scale3d(.95, .95, .95);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n}\n\n@keyframes flip {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 40% {\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n }\n\n 50% {\n -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 80% {\n -webkit-transform: perspective(400px) scale3d(.95, .95, .95);\n transform: perspective(400px) scale3d(.95, .95, .95);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n}\n\n.animated.flip {\n -webkit-backface-visibility: visible;\n backface-visibility: visible;\n -webkit-animation-name: flip;\n animation-name: flip;\n}\n\n@-webkit-keyframes flipInX {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}\n\n@keyframes flipInX {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}\n\n.flipInX {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInX;\n animation-name: flipInX;\n}\n\n@-webkit-keyframes flipInY {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}\n\n@keyframes flipInY {\n 0% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n opacity: 0;\n }\n\n 40% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n -webkit-transition-timing-function: ease-in;\n transition-timing-function: ease-in;\n }\n\n 60% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n }\n\n 100% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n}\n\n.flipInY {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipInY;\n animation-name: flipInY;\n}\n\n@-webkit-keyframes flipOutX {\n 0% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}\n\n@keyframes flipOutX {\n 0% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}\n\n.flipOutX {\n -webkit-animation-name: flipOutX;\n animation-name: flipOutX;\n -webkit-animation-duration: .75s;\n animation-duration: .75s;\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n}\n\n@-webkit-keyframes flipOutY {\n 0% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n}\n\n@keyframes flipOutY {\n 0% {\n -webkit-transform: perspective(400px);\n transform: perspective(400px);\n }\n\n 30% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n transform: perspective(400px) rotate3d(0, 1, 0, -15deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n opacity: 0;\n }\n}\n\n.flipOutY {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important;\n -webkit-animation-name: flipOutY;\n animation-name: flipOutY;\n -webkit-animation-duration: .75s;\n animation-duration: .75s;\n}\n\n@-webkit-keyframes lightSpeedIn {\n 0% {\n -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\n transform: translate3d(100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(20deg);\n transform: skewX(20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(-5deg);\n transform: skewX(-5deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes lightSpeedIn {\n 0% {\n -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);\n transform: translate3d(100%, 0, 0) skewX(-30deg);\n opacity: 0;\n }\n\n 60% {\n -webkit-transform: skewX(20deg);\n transform: skewX(20deg);\n opacity: 1;\n }\n\n 80% {\n -webkit-transform: skewX(-5deg);\n transform: skewX(-5deg);\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.lightSpeedIn {\n -webkit-animation-name: lightSpeedIn;\n animation-name: lightSpeedIn;\n -webkit-animation-timing-function: ease-out;\n animation-timing-function: ease-out;\n}\n\n@-webkit-keyframes lightSpeedOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\n transform: translate3d(100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n}\n\n@keyframes lightSpeedOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);\n transform: translate3d(100%, 0, 0) skewX(30deg);\n opacity: 0;\n }\n}\n\n.lightSpeedOut {\n -webkit-animation-name: lightSpeedOut;\n animation-name: lightSpeedOut;\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n}\n\n@-webkit-keyframes rotateIn {\n 0% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: rotate3d(0, 0, 1, -200deg);\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateIn {\n 0% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: rotate3d(0, 0, 1, -200deg);\n transform: rotate3d(0, 0, 1, -200deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateIn {\n -webkit-animation-name: rotateIn;\n animation-name: rotateIn;\n}\n\n@-webkit-keyframes rotateInDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateInDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateInDownLeft {\n -webkit-animation-name: rotateInDownLeft;\n animation-name: rotateInDownLeft;\n}\n\n@-webkit-keyframes rotateInDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateInDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateInDownRight {\n -webkit-animation-name: rotateInDownRight;\n animation-name: rotateInDownRight;\n}\n\n@-webkit-keyframes rotateInUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateInUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateInUpLeft {\n -webkit-animation-name: rotateInUpLeft;\n animation-name: rotateInUpLeft;\n}\n\n@-webkit-keyframes rotateInUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, -90deg);\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n@keyframes rotateInUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, -90deg);\n transform: rotate3d(0, 0, 1, -90deg);\n opacity: 0;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: none;\n transform: none;\n opacity: 1;\n }\n}\n\n.rotateInUpRight {\n -webkit-animation-name: rotateInUpRight;\n animation-name: rotateInUpRight;\n}\n\n@-webkit-keyframes rotateOut {\n 0% {\n -webkit-transform-origin: center;\n transform-origin: center;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: rotate3d(0, 0, 1, 200deg);\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOut {\n 0% {\n -webkit-transform-origin: center;\n transform-origin: center;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: center;\n transform-origin: center;\n -webkit-transform: rotate3d(0, 0, 1, 200deg);\n transform: rotate3d(0, 0, 1, 200deg);\n opacity: 0;\n }\n}\n\n.rotateOut {\n -webkit-animation-name: rotateOut;\n animation-name: rotateOut;\n}\n\n@-webkit-keyframes rotateOutDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOutDownLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n opacity: 0;\n }\n}\n\n.rotateOutDownLeft {\n -webkit-animation-name: rotateOutDownLeft;\n animation-name: rotateOutDownLeft;\n}\n\n@-webkit-keyframes rotateOutDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOutDownRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}\n\n.rotateOutDownRight {\n -webkit-animation-name: rotateOutDownRight;\n animation-name: rotateOutDownRight;\n}\n\n@-webkit-keyframes rotateOutUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOutUpLeft {\n 0% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n opacity: 0;\n }\n}\n\n.rotateOutUpLeft {\n -webkit-animation-name: rotateOutUpLeft;\n animation-name: rotateOutUpLeft;\n}\n\n@-webkit-keyframes rotateOutUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, 90deg);\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n}\n\n@keyframes rotateOutUpRight {\n 0% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform-origin: right bottom;\n transform-origin: right bottom;\n -webkit-transform: rotate3d(0, 0, 1, 90deg);\n transform: rotate3d(0, 0, 1, 90deg);\n opacity: 0;\n }\n}\n\n.rotateOutUpRight {\n -webkit-animation-name: rotateOutUpRight;\n animation-name: rotateOutUpRight;\n}\n\n@-webkit-keyframes hinge {\n 0% {\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 20%, 60% {\n -webkit-transform: rotate3d(0, 0, 1, 80deg);\n transform: rotate3d(0, 0, 1, 80deg);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 40%, 80% {\n -webkit-transform: rotate3d(0, 0, 1, 60deg);\n transform: rotate3d(0, 0, 1, 60deg);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: translate3d(0, 700px, 0);\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n}\n\n@keyframes hinge {\n 0% {\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 20%, 60% {\n -webkit-transform: rotate3d(0, 0, 1, 80deg);\n transform: rotate3d(0, 0, 1, 80deg);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n }\n\n 40%, 80% {\n -webkit-transform: rotate3d(0, 0, 1, 60deg);\n transform: rotate3d(0, 0, 1, 60deg);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n -webkit-animation-timing-function: ease-in-out;\n animation-timing-function: ease-in-out;\n opacity: 1;\n }\n\n 100% {\n -webkit-transform: translate3d(0, 700px, 0);\n transform: translate3d(0, 700px, 0);\n opacity: 0;\n }\n}\n\n.hinge {\n -webkit-animation-name: hinge;\n animation-name: hinge;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@-webkit-keyframes rollIn {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n@keyframes rollIn {\n 0% {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);\n }\n\n 100% {\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n }\n}\n\n.rollIn {\n -webkit-animation-name: rollIn;\n animation-name: rollIn;\n}\n\n/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */\n\n@-webkit-keyframes rollOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n}\n\n@keyframes rollOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);\n }\n}\n\n.rollOut {\n -webkit-animation-name: rollOut;\n animation-name: rollOut;\n}\n\n@-webkit-keyframes zoomIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes zoomIn {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 50% {\n opacity: 1;\n }\n}\n\n.zoomIn {\n -webkit-animation-name: zoomIn;\n animation-name: zoomIn;\n}\n\n@-webkit-keyframes zoomInDown {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomInDown {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomInDown {\n -webkit-animation-name: zoomInDown;\n animation-name: zoomInDown;\n}\n\n@-webkit-keyframes zoomInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);\n transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomInLeft {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);\n transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomInLeft {\n -webkit-animation-name: zoomInLeft;\n animation-name: zoomInLeft;\n}\n\n@-webkit-keyframes zoomInRight {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);\n transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomInRight {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);\n transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomInRight {\n -webkit-animation-name: zoomInRight;\n animation-name: zoomInRight;\n}\n\n@-webkit-keyframes zoomInUp {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomInUp {\n 0% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomInUp {\n -webkit-animation-name: zoomInUp;\n animation-name: zoomInUp;\n}\n\n@-webkit-keyframes zoomOut {\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n@keyframes zoomOut {\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0;\n -webkit-transform: scale3d(.3, .3, .3);\n transform: scale3d(.3, .3, .3);\n }\n\n 100% {\n opacity: 0;\n }\n}\n\n.zoomOut {\n -webkit-animation-name: zoomOut;\n animation-name: zoomOut;\n}\n\n@-webkit-keyframes zoomOutDown {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomOutDown {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomOutDown {\n -webkit-animation-name: zoomOutDown;\n animation-name: zoomOutDown;\n}\n\n@-webkit-keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);\n transform: scale(.1) translate3d(-2000px, 0, 0);\n -webkit-transform-origin: left center;\n transform-origin: left center;\n }\n}\n\n@keyframes zoomOutLeft {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.1) translate3d(-2000px, 0, 0);\n transform: scale(.1) translate3d(-2000px, 0, 0);\n -webkit-transform-origin: left center;\n transform-origin: left center;\n }\n}\n\n.zoomOutLeft {\n -webkit-animation-name: zoomOutLeft;\n animation-name: zoomOutLeft;\n}\n\n@-webkit-keyframes zoomOutRight {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.1) translate3d(2000px, 0, 0);\n transform: scale(.1) translate3d(2000px, 0, 0);\n -webkit-transform-origin: right center;\n transform-origin: right center;\n }\n}\n\n@keyframes zoomOutRight {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);\n transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale(.1) translate3d(2000px, 0, 0);\n transform: scale(.1) translate3d(2000px, 0, 0);\n -webkit-transform-origin: right center;\n transform-origin: right center;\n }\n}\n\n.zoomOutRight {\n -webkit-animation-name: zoomOutRight;\n animation-name: zoomOutRight;\n}\n\n@-webkit-keyframes zoomOutUp {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n@keyframes zoomOutUp {\n 40% {\n opacity: 1;\n -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);\n -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\n }\n\n 100% {\n opacity: 0;\n -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);\n transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\n }\n}\n\n.zoomOutUp {\n -webkit-animation-name: zoomOutUp;\n animation-name: zoomOutUp;\n}\n\n@-webkit-keyframes slideInDown {\n 0% {\n -webkit-transform: translateY(-100%);\n transform: translateY(-100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n\n@keyframes slideInDown {\n 0% {\n -webkit-transform: translateY(-100%);\n transform: translateY(-100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n\n.slideInDown {\n -webkit-animation-name: slideInDown;\n animation-name: slideInDown;\n}\n\n@-webkit-keyframes slideInLeft {\n 0% {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n\n@keyframes slideInLeft {\n 0% {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n\n.slideInLeft {\n -webkit-animation-name: slideInLeft;\n animation-name: slideInLeft;\n}\n\n@-webkit-keyframes slideInRight {\n 0% {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n\n@keyframes slideInRight {\n 0% {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n}\n\n.slideInRight {\n -webkit-animation-name: slideInRight;\n animation-name: slideInRight;\n}\n\n@-webkit-keyframes slideInUp {\n 0% {\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n\n@keyframes slideInUp {\n 0% {\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n visibility: visible;\n }\n\n 100% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n}\n\n.slideInUp {\n -webkit-animation-name: slideInUp;\n animation-name: slideInUp;\n}\n\n@-webkit-keyframes slideOutDown {\n 0% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n }\n}\n\n@keyframes slideOutDown {\n 0% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateY(100%);\n transform: translateY(100%);\n }\n}\n\n.slideOutDown {\n -webkit-animation-name: slideOutDown;\n animation-name: slideOutDown;\n}\n\n@-webkit-keyframes slideOutLeft {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n }\n}\n\n@keyframes slideOutLeft {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n }\n}\n\n.slideOutLeft {\n -webkit-animation-name: slideOutLeft;\n animation-name: slideOutLeft;\n}\n\n@-webkit-keyframes slideOutRight {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n }\n}\n\n@keyframes slideOutRight {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n }\n}\n\n.slideOutRight {\n -webkit-animation-name: slideOutRight;\n animation-name: slideOutRight;\n}\n\n@-webkit-keyframes slideOutUp {\n 0% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateY(-100%);\n transform: translateY(-100%);\n }\n}\n\n@keyframes slideOutUp {\n 0% {\n -webkit-transform: translateY(0);\n transform: translateY(0);\n }\n\n 100% {\n visibility: hidden;\n -webkit-transform: translateY(-100%);\n transform: translateY(-100%);\n }\n}\n\n.slideOutUp {\n -webkit-animation-name: slideOutUp;\n animation-name: slideOutUp;\n}\n",".btn {\n $btn-top-clr: #FAFAFA;\n $btn-bottom-clr: #EFF1F3;\n border:1px solid #E0E3E9;\n display:inline-block;\n border-radius: 2px;\n box-shadow: inset 0 1px 0 white, 0 1px 0 rgba($border-clr,0.5);\n @include linear-gradient($btn-top-clr, $btn-bottom-clr);\n font-size: em(12px);\n font-weight:600;\n color: $text-2-clr;\n text-decoration:none;\n padding: em(8px) em(15px);\n &:hover {\n @include linear-gradient(lighten($btn-top-clr,0.5%), lighten($btn-bottom-clr,1%));\n }\n &.disabled {\n cursor:default;\n opacity: 0.5;\n &:active {\n box-shadow: inset 0 1px 0 white, 0 1px 1px rgba(black, 0.1);\n }\n }\n &.danger {\n color: $red-clr;\n }\n &:focus {\n outline:0;\n }\n &:active {\n box-shadow: inset 0 0 2px rgba(black, 0.1);\n }\n}\n","form {\n margin:0;\n &.ng-submitted {\n .ng-invalid {\n border-color: $pink-clr !important;\n }\n }\n}\n\n.form-container {\n width:100%;\n}\n\n.form-row {\n @include row();\n margin-bottom:10px;\n @include user-select(none);\n}\n\n.form-col {\n @include span-columns(6);\n &.padded {\n &:first-child {\n padding: 0 20px 0 0;\n }\n &:last-child {\n padding: 0 0 0 20px;\n }\n }\n}\n\n.form-group {\n & > label {\n font-size:em(12px);\n color: $text-3-clr;\n display:inline-block;\n line-height:em(30px);\n\n }\n .form-error {\n font-size: em(12px);\n color: $red-clr;\n float: right;\n img {\n vertical-align:bottom;\n margin-right: 3px;\n }\n }\n &.optional > label:after {\n content: \" (optional)\";\n }\n &.error {\n input.form-control, textarea.form-control {\n\n border-color: $pink-clr;\n background: rgba($pink-clr,0.02);\n }\n }\n input.form-control, textarea.form-control {\n border-radius: 3px;\n border: 1px solid $border-clr;\n font-size:em(18px);\n @include transition(border-color 0.1s ease-in-out);\n &:focus {\n border-color: $blue-clr;\n box-shadow: 0 0 3px rgba($blue-clr, 0.5);\n outline:none;\n background: white;\n }\n &.extend {\n width:100%;\n }\n @include placeholder {\n color: rgba($text-3-clr,0.7);\n }\n }\n .form-btn {\n padding: em(12px) em(15px);\n }\n input.form-control {\n vertical-align:middle;\n padding: em(5px) em(10px);\n }\n\n textarea.form-control {\n min-height: 135px;\n font-size: em(18px);\n padding: em(8px) em(10px);\n }\n\n}\n\n\n.form-submit-message {\n display:inline-block;\n margin-left: em(5px);\n font-size: em(12px);\n &.error {\n color: $red-clr;\n }\n img {\n vertical-align:middle;\n margin-right: em(5px);\n }\n}\n","/// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout.\n///\n/// @param {String} $display (default)\n/// Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`.\n///\n/// @param {String} $direction ($default-layout-direction)\n/// Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left).\n///\n/// @example scss - Usage\n/// .element {\n/// @include row();\n/// }\n///\n/// @example css - CSS Output\n/// .element {\n/// *zoom: 1;\n/// display: block;\n/// }\n///\n/// .element:before, .element:after {\n/// content: \" \";\n/// display: table;\n/// }\n///\n/// .element:after {\n/// clear: both;\n/// }\n\n@mixin row($display: default, $direction: $default-layout-direction) {\n @if $direction != $default-layout-direction {\n @include -neat-warn(\"The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin.\");\n }\n\n $layout-direction: $direction !global;\n\n @if $display != default {\n @include -neat-warn(\"The $display argument will be deprecated in future versions in favor of the display(){...} mixin.\");\n }\n\n @if $display == table {\n display: table;\n @include fill-parent;\n table-layout: fixed;\n $container-display-table: true !global;\n }\n\n @else {\n @include clearfix;\n display: block;\n $container-display-table: false !global;\n }\n}\n\n","// Modern micro clearfix provides an easy way to contain floats without adding additional markup.\n//\n// Example usage:\n//\n// // Contain all floats within .wrapper\n// .wrapper {\n// @include clearfix;\n// .content,\n// .sidebar {\n// float : left;\n// }\n// }\n\n@mixin clearfix {\n &:after {\n content:\"\";\n display:table;\n clear:both;\n }\n}\n\n// Acknowledgements\n// Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php)\n","/// Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well.\n///\n/// @param {List} $span\n/// A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional).\n///\n/// If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid.\n///\n/// The values can be separated with any string such as `of`, `/`, etc.\n///\n/// @param {String} $display (block)\n/// Sets the display property of the element. By default it sets the display propert of the element to `block`.\n///\n/// If passed `block-collapse`, it also removes the margin gutter by adding it to the element width.\n///\n/// If passed `table`, it sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid.\n///\n/// @example scss - Usage\n/// .element {\n/// @include span-columns(6);\n///\n/// .nested-element {\n/// @include span-columns(2 of 6);\n/// }\n/// }\n///\n/// @example css - CSS Output\n/// .element {\n/// display: block;\n/// float: left;\n/// margin-right: 2.35765%;\n/// width: 48.82117%;\n/// }\n///\n/// .element:last-child {\n/// margin-right: 0;\n/// }\n///\n/// .element .nested-element {\n/// display: block;\n/// float: left;\n/// margin-right: 4.82916%;\n/// width: 30.11389%;\n/// }\n///\n/// .element .nested-element:last-child {\n/// margin-right: 0;\n/// }\n\n@mixin span-columns($span: $columns of $container-columns, $display: block) {\n $columns: nth($span, 1);\n $container-columns: container-span($span);\n\n $parent-columns: get-parent-columns($container-columns) !global;\n\n $direction: get-direction($layout-direction, $default-layout-direction);\n $opposite-direction: get-opposite-direction($direction);\n\n $display-table: is-display-table($container-display-table, $display);\n\n @if $display-table {\n display: table-cell;\n width: percentage($columns / $container-columns);\n } @else {\n float: #{$opposite-direction};\n\n @if $display != no-display {\n display: block;\n }\n\n @if $display == collapse {\n @include -neat-warn(\"The 'collapse' argument will be deprecated. Use 'block-collapse' instead.\");\n }\n\n @if $display == collapse or $display == block-collapse {\n width: flex-grid($columns, $container-columns) + flex-gutter($container-columns);\n\n &:last-child {\n width: flex-grid($columns, $container-columns);\n }\n\n } @else {\n margin-#{$direction}: flex-gutter($container-columns);\n width: flex-grid($columns, $container-columns);\n\n &:last-child {\n margin-#{$direction}: 0;\n }\n }\n }\n}\n","@mixin placeholder {\n $placeholders: \":-webkit-input\" \":-moz\" \"-moz\" \"-ms-input\";\n @each $placeholder in $placeholders {\n &:#{$placeholder}-placeholder {\n @content;\n }\n }\n}\n","$box-v-pad: 20px;\n$box-h-pad: 25px;\n\n.box {\n background: white;\n border: 1px solid $border-clr;\n border-radius: 3px;\n margin: 0 auto 20px auto;\n max-width: 800px;\n padding: $box-v-pad $box-h-pad;\n box-shadow: 0 0 1px $border-clr;\n &.box-x-scroll {\n overflow-x: scroll;\n }\n &.invisible {\n background: transparent;\n border:0;\n padding: 0;\n margin-bottom:40px;\n }\n &.highlight {\n border-color: $blue-clr;\n box-shadow: 0 0 3px rgba($blue-clr, 0.5);\n }\n &:last-child {\n margin-bottom: 40px;\n }\n}\n\n.box-title {\n font-size: 24px;\n font-weight: bold;\n color: $text-clr;\n margin-bottom:20px;\n}\n\n.box-description {\n font-size: 14px;\n color: $text-2-clr;\n padding-bottom: 20px;\n border-bottom: 1px solid $border-clr;\n margin-top: -20px;\n margin-bottom: 20px;\n a {\n color: $text-clr;\n text-decoration:none;\n &:hover {\n border: 1px solid $border-clr;\n }\n }\n}\n.box-section {\n padding-top: 20px;\n @include row;\n .section-details {\n @include span-columns(3);\n .section-title {\n font-size: em(14px);\n color: $text-2-clr;\n margin-bottom:20px;\n }\n }\n .section-main {\n @include span-columns(9);\n }\n}\n\n.box-message {\n text-align:center;\n padding:40px;\n max-width:450px;\n margin:0 auto;\n .main-image {\n margin-bottom: 20px;\n }\n .title {\n font-weight: bold;\n font-size: em(24px);\n color: $text-clr;\n margin-bottom: em(10px);\n }\n .content {\n font-size: em(14px);\n color: $text-2-clr;\n margin-bottom: 20px;\n }\n .mini-divider:after {\n content: \"\";\n display:inline-block;\n width:200px;\n height:1px;\n background: $border-clr;\n margin:20px auto;\n\n }\n}\n\n.box-side-sticky {\n padding: $box-v-pad $box-h-pad;\n box-sizing: content-box;\n width: 100%;\n margin-left: $box-h-pad * -1;\n\n}\n\n.box-bottom-sticky {\n padding: $box-v-pad $box-h-pad;\n box-sizing: content-box;\n width: 100%;\n margin-top:20px;\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n border-top: 1px solid $border-clr;\n margin-bottom: $box-v-pad * -1;\n margin-left: $box-h-pad * -1;\n}\n\n.box-controls {\n text-align: right;\n box-shadow: inset 0 1px 0 white;\n background: lighten($background-clr, 1%);\n margin-top: $box-v-pad;\n padding: 15px $box-h-pad;\n}\n",".ng-submitted .ng-invalid > .datepicker {\n border-color: $pink-clr;\n}\n.datepicker {\n width:100%;\n border:1px solid rgba($border-clr, 0.5);\n border-radius: 3px;\n background:white;\n padding: em(10px);\n @include transition(border-color 0.1s ease-in-out);\n table {\n width:100%;\n font-size: em($em-base);\n }\n thead {\n\n }\n tbody {\n &:before {\n content: '';\n display:block;\n height: em(10px);\n }\n }\n .prev, .next {\n opacity: 0.5;\n color: $text-2-clr;\n cursor: pointer;\n border-radius:5px;\n position:relative;\n &:hover {\n opacity: 1;\n &:after {\n opacity: 1;\n background: rgba($border-clr, 0.3);\n }\n }\n &:after {\n content: \" \";\n cursor:pointer;\n opacity: 0;\n position:absolute;\n $size: em(28px);\n width:$size;\n height:$size;\n margin-left:$size * -0.5;\n margin-top:$size * -0.5;\n left:50%;\n top:50%;\n border-radius:3px;\n @include transition(background-color 0.1s ease-in-out);\n }\n }\n .datepicker-switch {\n padding: 10px;\n font-weight:600;\n font-size:em(18px);\n border-radius: 3px;\n cursor: pointer;\n @include transition(background-color 0.1s ease-in-out);\n &:hover {\n background: rgba($border-clr, 0.4);\n }\n }\n .dow {\n padding:10px;\n font-weight:normal;\n text-transform: uppercase;\n color: $pink-clr;\n font-size: em(14px);\n border-bottom: 2px solid rgba($border-clr, 0.3);\n }\n .dow, .day {\n padding:em(15px);\n }\n .day {\n text-align:center;\n font-weight:600;\n position:relative;\n font-size:em(14px);\n &.today {\n color:#818176;\n &:after {\n opacity:1;\n background: rgba(yellow, 0.1);\n }\n }\n &:hover {\n &:after {\n opacity:1;\n background: rgba($border-clr,0.4);\n }\n cursor: pointer;\n }\n &.new, &.old {\n font-weight:normal;\n color: $text-3-clr;\n }\n &.active {\n background:white;\n color: $green-clr;\n &:after {\n opacity:1;\n background: rgba($green-clr,0.1);\n }\n }\n &:active {\n &:after {\n opacity: 0.8;\n }\n }\n &:after {\n content: \" \";\n @include transition(all 0.1s ease-in-out);\n cursor:pointer;\n opacity: 0;\n position:absolute;\n $size: em(40px);\n width:$size;\n height:$size;\n margin-left:$size * -0.5;\n margin-top:$size * -0.5;\n left:50%;\n top:50%;\n border-radius: 3px;\n }\n }\n .month, .year {\n width: 33.3%;\n display:inline-block;\n text-align:center;\n font-size: em(14px);\n padding:em(20px);\n cursor:pointer;\n @include transition(background-color 0.1s ease-in-out);\n border-radius: 3px;\n text-transform: uppercase;\n &:hover {\n background: rgba($border-clr, 0.3);\n }\n }\n}\n\n.daticon-list {\n margin:0;\n margin-left:-10px;\n list-style:none;\n padding:5px;\n text-align:left;\n .placeholder {\n line-height: em(18px);\n font-size: em(12px);\n color: #ccc;\n }\n li {\n margin: 5px;\n display:inline-block;\n }\n}\n\n.daticon {\n box-shadow: 0 0 0 1px rgba($border-clr,0.5);\n border-radius: 3px;\n display:inline-block;\n padding:em(8px) em(16px);\n text-align:center;\n position:relative;\n cursor:default;\n background:white;\n .dow {\n font-size: em(6px);\n margin-top:em(-24px);\n background:white;\n color: $text-3-clr;\n margin-bottom: em(4px);\n font-weight:normal;\n text-transform: uppercase;\n }\n .day {\n font-size: em(20px);\n font-weight:normal;\n color: $pink-clr;\n line-height: em(16px);\n }\n .month {\n font-weight: 600;\n font-size: em(12px);\n text-transform: uppercase;\n }\n .delete {\n text-align:center;\n border:0;\n $size: 18px;\n width: em($size);\n height: em($size);\n position:absolute;\n top: $size * -0.4;\n right: $size * -0.4;\n border-radius:100%;\n display:inline-block;\n background: rgba($border-clr, 0.5) url(../images/close@2x.png) no-repeat center center;\n background-size: 7px 8px;\n cursor:pointer;\n opacity:0;\n &:hover {\n background-color: rgba($border-clr, 0.8)\n }\n }\n .count {\n text-align:center;\n border:0;\n $size: 18px;\n width: $size;\n height: $size;\n position:absolute;\n top: $size * -0.4;\n right: $size * -0.4;\n border-radius:100%;\n font-weight:bold;\n display:inline-block;\n background: darken($border-clr, 10%);\n color:white;\n font-size: 9px;\n line-height: $size;\n @include transition(background-color 0.2s ease-in-out);\n &.top {\n background: $orangered-clr;\n }\n\n }\n &:hover {\n .delete {\n opacity: 1;\n }\n }\n}\n",".rl-modal {\n background:white;\n position: fixed;\n top: 50%;\n left: 50%;\n width: 50%;\n max-width: 400px;\n display:inline-block;\n min-width: 200px;\n height: auto;\n z-index: 2000;\n overflow:hidden;\n border-radius: 5px;\n box-shadow: 0 0 0 1px $border-clr, 0 0 0 5px rgba($border-clr,0.5);\n @include transform(translateX(-50%) translateY(-50%));\n .rl-modal-message {\n padding: 0 20px 20px 20px;\n font-size: em(12px);\n color: $text-2-clr;\n }\n .rl-modal-title {\n padding:20px 20px 0 20px;\n font-size: em(18px);\n font-weight: bold;\n }\n .rl-modal-actions {\n border-top:1px solid $border-clr;\n box-shadow: inset 0 1px 0 white;\n background: lighten($background-clr,1%);\n text-align:right;\n padding: em(10px) em(20px);\n }\n}\n\n.rl-modal-overlay {\n position:fixed;\n z-index: 1999;\n top:0;\n left:0;\n width:100%;\n height:100%;\n background:rgba(black,0.1);\n\n}\n","$actions-col-width : 160px;\n$date-col-width: 70px;\n$name-col-width: 235px;\n\n.poll {\n min-width: 100%;\n display:block;\n margin-bottom:20px;\n}\n\n.poll-header {\n display:table;\n min-width: 100%;\n border-bottom:1px solid $border-clr;\n box-shadow: 0 3px 0 rgba($border-clr, 0.3);\n .header {\n display:table-cell;\n vertical-align:bottom;\n padding-bottom:20px;\n &.date-header {\n text-align:center;\n min-width: $date-col-width;\n width: $date-col-width;\n }\n &.actions-header {\n min-width: $actions-col-width;\n }\n &.participants-header {\n font-weight: bold;\n min-width: $name-col-width;\n width: $name-col-width;\n padding-left: em(10px);\n }\n }\n}\n\n.poll-body {\n min-width:100%;\n\n .poll-entry.highlight {\n background: lighten($border-clr,10%);\n }\n .poll-entry {\n display:table;\n min-width: 100%;\n border-bottom: 1px solid rgba($border-clr,0.5);\n .hover {\n visibility:hidden;\n }\n &:hover {\n .hover {\n visibility: visible;\n }\n }\n .cell {\n padding: em(10px);\n display:table-cell;\n height: 50px;\n vertical-align:middle;\n &.name-cell {\n min-width: $name-col-width;\n width: $name-col-width;\n font-size: em(14px);\n .avatar {\n display:inline-block;\n padding: 5px;\n margin-right: 5px;\n border-radius: 2px;\n background: #D0D5DF;\n @for $i from 0 to length($color-collection) {\n &.style-#{$i + 1} {\n background: nth($color-collection, $i+1);\n }\n }\n }\n .name {\n padding: 5px 3px;\n margin-left: 2px;\n border-radius: 2px;\n &:hover {\n background: $background-clr;\n cursor: pointer;\n }\n }\n .form-control {\n border:1px solid $border-clr;\n padding: em(5px);\n border-radius: 2px;\n color: $text-clr;\n &:focus {\n outline:0;\n border-color: $blue-clr;\n box-shadow: 0 0 3px rgba($blue-clr, 0.5);\n }\n @include placeholder {\n color: rgba($text-2-clr,0.7);\n }\n }\n }\n &.action-cell {\n min-width: $actions-col-width;\n }\n &.vote-cell {\n min-width: $date-col-width;\n width: $date-col-width;\n text-align:center;\n position: relative;\n .overlay {\n position: absolute;\n top:0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 10;\n &:hover {\n background: rgba($border-clr, 0.2);\n cursor: pointer;\n }\n }\n }\n }\n &.ng-submitted {\n .ng-invalid {\n border-color: $pink-clr !important;\n }\n }\n }\n}\n","$tag-font-size: 14px;\n\ntags-input {\n display: block;\n}\ntags-input *, tags-input *:before, tags-input *:after {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\ntags-input .host {\n position: relative;\n margin-top: 5px;\n margin-bottom: 5px;\n &:focus {\n outline:0;\n }\n}\ntags-input .host:active {\n outline: none;\n}\n\ntags-input .tags {\n padding: 4px;\n overflow: hidden;\n word-wrap: break-word;\n cursor: text;\n border-radius: 3px;\n background-color: white;\n border: 1px solid $border-clr;\n @include transition(border-color 0.1s ease-in-out);\n}\ntags-input .tags.focused {\n outline: none;\n}\n\ntags-input .tags .tag-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\ntags-input .tags .tag-item {\n margin: 2px;\n padding: 0 8px;\n display: inline-block;\n float: left;\n font-size: em($tag-font-size);\n height: 26px;\n line-height: 25px;\n border-radius: 1px;\n background:#E5EBF2;\n color: #7587A1;\n box-shadow:0 0 0 1px #CBD4E2;\n}\ntags-input .tags .tag-item.selected {\n background: $red-clr;\n color: white;\n box-shadow: none;\n}\ntags-input .tags .tag-item .remove-button {\n margin: 0 0 0 5px;\n padding: 0;\n border: none;\n background: none;\n color: inherit;\n cursor: pointer;\n vertical-align: middle;\n font: bold em(16px) Arial, sans-serif;\n}\n\ntags-input .tags .input {\n border: 0;\n outline: none;\n margin: 2px;\n padding: 0;\n padding-left: 8px;\n float: left;\n height: 26px;\n font-size: em($tag-font-size);\n @include placeholder {\n color: $text-3-clr;\n }\n}\n\ntags-input .tags .input.invalid-tag {\n color: $red-clr;\n}\n\ntags-input .tags .input::-ms-clear {\n display: none;\n}\n\ntags-input.ng-invalid .tags {\n // highlight tags when model is invalid\n}\n",".dropdown {\n position:relative;\n cursor: pointer;\n .dropdown-menu {\n position: absolute;\n display:none;\n z-index: 1000;\n float:left;\n min-width:160px;\n max-width: 180px;\n padding: 5px;\n text-align:left;\n left:0;\n }\n &.open .dropdown-menu {\n display: block;\n }\n .dropdown-toggle {\n &:after {\n content: \"\";\n width: 6px;\n height: 4px;\n margin-left: 10px;\n display:inline-block;\n background-image: url(\"../images/dropdown_arrow.png\");\n background-size: 6px 4px;\n background-repeat:no-repeat;\n }\n }\n}\n",".comments-info {\n font-weight: bold;\n padding-bottom: 10px;\n border-bottom: 2px solid $border-clr;\n}\n\n.comment-form {\n @include row;\n margin-bottom: 20px;\n margin-top:20px;\n padding: 0 10px;\n .avatar-section {\n @include span-columns(1);\n img {\n border-radius: 3px;\n max-width: 100%;\n }\n }\n .input-section {\n @include span-columns(11);\n }\n .content-section {\n margin-bottom:10px;\n }\n .name-section {\n position:relative;\n margin-bottom: 10px;\n }\n .form-control {\n font-size: em(14px) !important;\n border-width: 2px !important;\n }\n textarea.form-control {\n min-height: 0;\n min-width: 100%;\n }\n}\n\n.comments-placeholder {\n color: $text-3-clr;\n text-align:center;\n}\n\n.comment-thread {\n list-style:none;\n margin:0;\n padding:0;\n margin-bottom: 20px;\n max-height: 500px;\n overflow-y: scroll;\n .comment {\n @include row;\n padding: 10px;\n .avatar-section {\n @include span-columns(1);\n img {\n max-width: 100%;\n border-radius: 3px;\n }\n }\n .comment-section {\n @include span-columns(11);\n position:relative;\n .comment-delete {\n opacity:0;\n text-decoration:none;\n color:white;\n background-color: $border-clr;\n color: $text-3-clr;\n border-radius: 2px;\n display:inline-block;\n position:absolute;\n right:0;\n top:0;\n font-size: em(14px);\n $cd-size: em(16px);\n width: $cd-size;\n height: $cd-size;\n line-height: $cd-size;\n text-align: center;\n &:hover {\n background: $red-clr;\n color: white;\n }\n &:active {\n background: darken($red-clr, 5%);\n }\n }\n .meta {\n font-size: em(13px);\n color: $text-2-clr;\n margin-bottom: 5px;\n }\n .name {\n color: $text-2-clr;\n font-weight: 600;\n }\n .time:before {\n content: \" \";\n display: inline-block;\n height: 4px;\n width: 4px;\n background: $text-3-clr;\n margin: 0 5px 2px 5px;\n border-radius: 100%;\n }\n .content {\n font-size: em(14px);\n margin-bottom: 5px;\n white-space: pre-wrap;\n margin-right: 100px;\n }\n .actions {\n opacity:0.8;\n a {\n color: $text-2-clr;\n font-size: em(12px);\n text-decoration: none;\n &:hover {\n color: $blue-clr;\n }\n }\n }\n }\n &:hover {\n background: $background-clr;\n cursor:default;\n border-radius: 3px;\n .name {\n color: $blue-clr;\n }\n .comment-delete {\n opacity: 1;\n }\n }\n }\n}\n",".switch-row {\n display:table;\n width: 100%;\n margin-bottom: 20px;\n padding-bottom: 20px;\n border-bottom: 1px solid $border-clr;\n &:last-child {\n border:0;\n }\n .switch-details {\n display:table-cell;\n .title {\n font-size: em(14px);\n font-weight: bold;\n }\n .description {\n font-size: em(12px);\n color: $text-2-clr;\n }\n }\n .switch {\n display:table-cell;\n text-align:right;\n min-width: 150px;\n vertical-align:middle;\n .switch-value {\n font-size: em(12px);\n color: $text-2-clr;\n display:inline-block;\n vertical-align:middle;\n\n }\n }\n}\n\n.switch-toggle {\n display:inline-block;\n margin-left: 5px;\n height: 20px;\n width: 40px;\n border-radius: 20px;\n vertical-align:middle;\n position:relative;\n cursor:pointer;\n background: $red-clr;\n box-shadow: inset 0 0 0 1px rgba(black,0.1);\n @include transition(all 0.1s ease-in-out);\n $tog-size: 16px;\n &:after {\n content: \" \";\n @include transition(all 0.1s ease-in-out);\n display:inline-block;\n height: $tog-size;\n width: $tog-size;\n position: absolute;\n $btn-top-clr: #FAFAFA;\n $btn-bottom-clr: #EFF1F3;\n box-shadow: inset 0 1px 0 white, 0 1px 1px rgba(black, 0.1);\n @include linear-gradient($btn-top-clr, $btn-bottom-clr);\n top: 50%;\n margin-top: ($tog-size / 2) * -1;\n left: 2px;\n border-radius: 100px;\n }\n &:hover {\n box-shadow:inset 0 0 0 1px rgba(black,0.1), inset 0 0 0 8px rgba(black,0.05); \n }\n &.active {\n background: $green-clr;\n &:after {\n left: 100%;\n margin-left: ($tog-size * -1) - 2;\n }\n }\n}\n",".notification {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: 3000;\n padding: 12px 40px;\n background: $text-2-clr;\n color: white;\n @include transition(all 0.3s ease-in-out);\n &.success {\n background: $green-clr;\n }\n &.error {\n background: $red-clr;\n }\n &.ng-enter {\n top: -100px;\n opacity:0;\n }\n &.ng-enter-active {\n top:0;\n opacity:1;\n }\n &.ng-leave-active {\n top:-100px;\n opacity:1;\n }\n .title {\n font-size: em(14px);\n margin-bottom: 2px;\n }\n .message {\n font-size: em(12px);\n color: rgba(white, 0.8);\n }\n .close {\n position: absolute;\n top: 5px;\n right:10px;\n color: white;\n text-decoration:none;\n\n }\n}\n",".page-placeholder {\n margin:0 auto;\n text-align:center;\n color:#B0B8C4;\n position:absolute;\n top:50%;\n left: 50%;\n @include transform(translateX(-50%) translateY(-50%));\n .image {\n margin-bottom:20px;\n }\n .title {\n font-size: em(36px);\n font-weight: bold;\n margin-bottom: 20px;\n }\n .content {\n font-size: em(14px);\n max-width: 320px;\n font-weight: normal;\n margin-bottom: 20px;\n }\n}\n",".event-description {\n font-size: em(14px);\n white-space: pre-wrap;\n padding-top:20px;\n padding-bottom: 20px;\n line-height:em(24px);\n color: $text-2-clr;\n background: $background-clr;\n border-top: 1px solid $border-clr;\n margin-top: 20px;\n margin-bottom:-20px;\n}\n\n.event-location {\n font-size: em(14px);\n a {\n color: $text-clr;\n text-decoration:none;\n &:hover {\n text-decoration:underline;\n }\n }\n img {\n vertical-align:middle;\n margin-right: 10px;\n }\n}\n\n\n.event-pair {\n margin-bottom: 20px;\n border-bottom: 1px solid $border-clr;\n padding-bottom: 20px;\n float: left;\n width: 100%;\n .icon {\n display:inline-block;\n width: 30px;\n float:left;\n position: relative;\n text-align:center;\n height: 35px;\n border-radius: 3px;\n margin-right: 10px;\n img {\n position: absolute;\n top:50%;\n left: 50%;\n @include transform(translateX(-50%) translateY(-50%));\n }\n }\n .content {\n float:left;\n display:inline-block;\n }\n .key {\n font-weight:bold;\n font-size: 11px;\n }\n .value {\n color: $text-2-clr;\n }\n}\n\n.event-header {\n width: 100%;\n margin-top: -30px;\n .avatar {\n display:inline-block;\n margin-right: 20px;\n text-align: center;\n border-radius: 1px;\n box-shadow: 0 0 0 5px white, 0 0 0 6px $border-clr, inset 0 0 0 1px $border-clr;\n padding: 20px;\n background:$background-clr;\n vertical-align: bottom;\n }\n .details {\n display:inline-block;\n .title {\n font-size: em(24px);\n font-weight: bold;\n .title-label {\n font-size: 11px;\n font-weight: normal;\n margin-left: 5px;\n position: relative;\n top: -3px;\n background: $text-2-clr;\n color:white;\n padding: 3px 10px;\n border-radius: 20px;\n &.success {\n background: $green-clr;\n }\n &.danger {\n background: $orangered-clr;\n }\n }\n }\n .subtitle {\n color: $text-2-clr;\n font-size: em(14px);\n a {\n color: $blue-clr;\n text-decoration: none;\n &:hover {\n text-decoration: underline;\n }\n }\n }\n }\n .actions {\n visibility:hidden;\n float: right;\n margin-top: 30px;\n }\n &:hover {\n .actions {\n visibility:visible;\n }\n }\n}\n"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/public/images/avatar.png b/public/images/avatar.png new file mode 100644 index 000000000..a20fd8a80 Binary files /dev/null and b/public/images/avatar.png differ diff --git a/public/images/chat.png b/public/images/chat.png new file mode 100644 index 000000000..64162a41e Binary files /dev/null and b/public/images/chat.png differ diff --git a/public/js/controllers/account.controller.js b/public/js/controllers/account.controller.js new file mode 100644 index 000000000..528252ba3 --- /dev/null +++ b/public/js/controllers/account.controller.js @@ -0,0 +1,6 @@ +angular.module('rallly') +.controller('AccountCtrl', function($scope, ConfirmModal){ + $scope.showNotice = function(){ + + } +}) diff --git a/public/js/controllers/deletion.controller.js b/public/js/controllers/deletion.controller.js new file mode 100644 index 000000000..62d56ac8f --- /dev/null +++ b/public/js/controllers/deletion.controller.js @@ -0,0 +1,18 @@ +angular.module('rallly') +.controller('DeletionCtrl', function($state, Notification, Event){ + Event.destroy({id : $state.params.id, code :$state.params.code}, function(){ + var notification = new Notification({ + title : 'Event deleted', + message : 'This event has been deleted', + type : 'success', + timeout : 5000 + }); + }, function(e){ + var notification = new Notification({ + title : 'Deletion Failed', + message : 'The event could not be deleted. Make sure that it exists and that the url is correct', + type : 'error' + }); + }); + $state.go('event', { id : $state.params.id }); +}); diff --git a/public/js/controllers/editevent.controller.js b/public/js/controllers/editevent.controller.js index b07311590..c1e5812dd 100644 --- a/public/js/controllers/editevent.controller.js +++ b/public/js/controllers/editevent.controller.js @@ -1,5 +1,5 @@ angular.module('rallly') -.controller('EditEventCtrl', function($scope, $http, $state, $timeout, Event, ConfirmModal, Title){ +.controller('EditEventCtrl', function($scope, $http, $state, $timeout, Event, ConfirmModal, Notification, Title){ var id = $state.params.id $scope.event = Event.get({id:id}, function(data){ Title.set("Edit: " + $scope.event.title); @@ -9,7 +9,6 @@ angular.module('rallly') }); $scope.undoChanges = function(){ $scope.event = angular.copy($scope.master); - resetDates(); } $scope.didChange = function(){ return JSON.stringify($scope.master) != JSON.stringify($scope.event); @@ -35,10 +34,10 @@ angular.module('rallly') update(); } } else { - var modal = new ConfirmModal({ - title : 'Not so fast!', + var notification = new Notification({ + title : 'Not so fast', message : 'Make sure you fill in all the required fields and try again.', - cancelText : 'OK' + type : 'error' }); } } @@ -47,19 +46,12 @@ angular.module('rallly') id : id }, $scope.event, function(){ - var modal = new ConfirmModal({ - title : 'Event Updated', - message : 'Your changes have been saved successfully!', - confirmText : 'Back to Event Page', - cancelText : 'Stay here', - confirm : function(){ - $state.go('event',{id : $scope.event._id}); - } + var notification = new Notification({ + title : 'Changes Saved', + message : 'Your changes have been saved successfully.', + type : 'success' }); $scope.master = angular.copy($scope.event); - $scope.didSave = $timeout(function(){ - $scope.didSave = false; - }, 2000); }); } }); diff --git a/public/js/controllers/event.controller.js b/public/js/controllers/event.controller.js index 6ba655292..a2de041dd 100644 --- a/public/js/controllers/event.controller.js +++ b/public/js/controllers/event.controller.js @@ -1,7 +1,6 @@ angular.module('rallly') -.controller('EventCtrl', function($scope, $http, $state, Title, Event){ +.controller('EventCtrl', function($scope, $http, $state, Title, Event, ConfirmModal){ var id = $state.params.id; - $scope.participant = {}; $scope.event = Event.get({id:id}, function(data){ Title.set($scope.event.title); $scope.eventUrl = $state.href('event', { @@ -13,73 +12,36 @@ angular.module('rallly') $state.go('notfound'); }); + $scope.openEvent = function(){ + $scope.event.isClosed = false; + Event.update({ + id : id + }, $scope.event, + function(){ + var modal = new ConfirmModal({ + title : 'Event Open', + message : 'People can vote and comment on this event.', + cancelText : 'OK', + }); + }); + } + + $scope.closeEvent = function(){ + $scope.event.isClosed = true; + Event.update({ + id : id + }, $scope.event, + function(){ + var modal = new ConfirmModal({ + title : 'Event Closed', + message : 'People can no longer vote or comment on this event.', + cancelText : 'OK', + }); + }); + } + $scope.editEvent = function(){ $state.go('editevent', { id : $scope.event._id }); } -}) -.directive('poll', function(Event, Participant, ConfirmModal){ - return { - restrict : 'A', - templateUrl : 'templates/directives/poll.html', - scope : { - 'event' : '=', - 'participant' : '=' - }, - link : function(scope, el, attrs){ - scope.defaults = []; - var datesCount = []; - scope.delete = function(participant){ - var modal = new ConfirmModal({ - title : 'Delete ' + participant.name + '?', - message : 'Are you sure you want to remove '+participant.name+' from the poll?', - confirmText : 'Yes - delete', - cancelText : 'No - nevermind', - isDestructive : true, - confirm : function(){ - Participant.remove({ id : scope.event._id , pid : participant._id }, function(event){ - scope.event = event; - }); - } - }); - modal.show(); - } - scope.isTopDate = function(index){ - var count = datesCount[index]; - for (var i = 0; i < datesCount.length; i++){ - if (datesCount[i] > count) return false; - } - return true; - } - scope.selectedDate = function(index){ - datesCount[index] = 0; - for (var i = 0; i < scope.event.participants.length; i++){ - if (scope.event.participants[i].dates[index]) datesCount[index]++; - } - return datesCount[index]; - } - scope.update = function(participant){ - Participant.update({ - id : scope.event._id, - pid : participant._id - }, participant); - } - scope.edit = function(participant){ - scope.defaults[scope.event.participants.indexOf(participant)] = angular.copy(participant); - } - scope.cancel = function(index){ - scope.event.participants[index] = scope.defaults[index]; - } - scope.save = function(participant){ - if (scope.formnew.$valid){ - var participant = new Participant(participant); - participant.$save({id:scope.event._id}, function(event){ - scope.event = event; - scope.participant = {}; - }); - scope.formnew.$setPristine(); - } - } - } - } }); diff --git a/public/js/controllers/newevent.controller.js b/public/js/controllers/newevent.controller.js index e056e383c..5d5eb1b10 100644 --- a/public/js/controllers/newevent.controller.js +++ b/public/js/controllers/newevent.controller.js @@ -1,17 +1,9 @@ angular.module('rallly') -.controller('NewEventCtrl', function($scope, $http, $state, Event, ConfirmModal){ +.controller('NewEventCtrl', function($scope, $http, $state, Event, ConfirmModal, Notification){ $scope.title = "Schedule a New Event"; $scope.description = "Fill in the form below to create your event and share it with your friends and colleagues."; - var showModal = function(title, message){ - var modal = new ConfirmModal({ - title : title || 'Not so fast!', - message : message || 'Make sure you fill in all the required fields and try again.', - cancelText : 'OK' - }); - } - $scope.submit = function(){ if ($scope.form.$valid){ $http.post('/api/event', $scope.event) @@ -24,10 +16,18 @@ angular.module('rallly') }); }) .error(function(){ - showModal('Uh oh!', 'There was an error creating your event. Please try again later.'); + var modal = new ConfirmModal({ + title : 'Uh oh!', + message : 'There was an error creating your event. Please try again later.', + cancelText : 'OK' + }); }); } else { - showModal(); + var notification = new Notification({ + title : 'Not so fast', + message : 'Make sure you fill in all the required fields and try again.', + type : 'error' + }); } } diff --git a/public/js/controllers/verification.controller.js b/public/js/controllers/verification.controller.js new file mode 100644 index 000000000..c2f99ac03 --- /dev/null +++ b/public/js/controllers/verification.controller.js @@ -0,0 +1,19 @@ +angular.module('rallly') +.controller('VerificationCtrl', function(Event, Notification, $state){ + Event.verify({id : $state.params.id, code :$state.params.code}, function(){ + var notification = new Notification({ + title : 'Email Verified', + message : 'Your email has been verified. You will now be able to receive email notifications for this event', + type : 'success', + timeout : 5000 + }); + }, function(e){ + var notification = new Notification({ + title : 'Verification Failed', + message : 'Your verification code has expired.', + type : 'error' + }); + }); + $state.go('event', { id : $state.params.id }); + +}); diff --git a/public/js/directives/discussion.directive.js b/public/js/directives/discussion.directive.js new file mode 100644 index 000000000..4578986d0 --- /dev/null +++ b/public/js/directives/discussion.directive.js @@ -0,0 +1,41 @@ +angular.module('rallly') +.directive('discussion', function($timeout, Comment, ConfirmModal){ + return { + restrict : 'A', + templateUrl : 'templates/directives/discussion.html', + scope : { + 'event' : '=' + }, + link : function(scope, el, attrs){ + scope.comment = {}; + var thread = angular.element('.comment-thread'); + $timeout(function(){ + thread.scrollTop(thread.prop('scrollHeight')); + }); + scope.deleteComment = function(comment){ + var modal = new ConfirmModal({ + title : 'Are you sure?', + message : 'Are you sure you want to remove this comment?', + confirmText : 'Yes - delete', + cancelText : 'No - nevermind', + isDestructive : true, + confirm : function(){ + Comment.remove({ id : scope.event._id , cid : comment._id }, function(event){ + scope.event = event; + }); + } + }); + } + scope.postComment = function(){ + if (scope.commentForm.$valid){ + var comment = new Comment(scope.comment); + comment.$save({id:scope.event._id}, function(event){ + scope.event = event; + scope.comment = {}; + }); + scope.commentForm.$setPristine(); + } + } + } + } +}); diff --git a/public/js/directives/dropdown.directive.js b/public/js/directives/dropdown.directive.js new file mode 100644 index 000000000..25e8bec0b --- /dev/null +++ b/public/js/directives/dropdown.directive.js @@ -0,0 +1,27 @@ +angular.module('rallly') +.directive('dropdown', function($document){ + return { + restrict : 'A', + link : function(scope, el, attrs){ + el.addClass('dropdown'); + scope.open = false; + + var clickHandler = function(event){ + var isClickedElementChildOfPopup = el.find(event.target).length > 0; + if (isClickedElementChildOfPopup) return; + scope.toggle(); + } + + scope.toggle = function(){ + scope.open = !scope.open; + if (scope.open){ + el.addClass('open'); + $document.bind('click', clickHandler); + } else { + el.removeClass('open'); + $document.unbind('click', clickHandler); + } + } + } + } +}); diff --git a/public/js/directives/form.directive.js b/public/js/directives/form.directive.js index cd5b00df4..2978d49c3 100644 --- a/public/js/directives/form.directive.js +++ b/public/js/directives/form.directive.js @@ -1,5 +1,7 @@ angular.module('rallly') .service('FormHelper', function(){ + this.emailRegexString = '^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$'; + this.emailRegex = new RegExp(this.emailRegexString); this.prettyError = function(errors, field){ if (errors.required) return field + " is required"; if (errors.pattern) return field + " is invalid" ; @@ -17,7 +19,7 @@ angular.module('rallly') link : function(scope, el, attrs) { scope.errors = {}; - scope.emailRegex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; + scope.emailRegex = FormHelper.emailRegex; scope.$watchCollection('form.name.$error',function(errors){ scope.errors.name = FormHelper.prettyError(errors, "Name"); @@ -59,12 +61,54 @@ angular.module('rallly') templateUrl : 'templates/directives/eventForm/dateForm.html' } }) -.directive('participantsForm', function(){ +.directive('participantsForm', function(FormHelper){ return { scope : { event : '=', form : '=' }, - templateUrl : 'templates/directives/eventForm/participantsForm.html' + templateUrl : 'templates/directives/eventForm/participantsForm.html', + link : function(scope, el, attrs){ + scope.emailRegex = FormHelper.emailRegexString; + } + } +}) +.directive('settingsForm', function(Event){ + return { + scope : { + event : '=', + form : '=' + }, + templateUrl : 'templates/directives/eventForm/settingsForm.html', + link : function(scope, el, attrs){ + scope.deleteEvent = function(){ + Event.delete({'id' : scope.event._id}, function(){ + console.log('delete'); + }); + } + } + } +}) +.directive('switchToggle', function(){ + return { + scope : { + model : '=ngModel' + }, + require : 'ngModel', + link : function(scope, el, attrs, ngModel) { + el.addClass('switch-toggle'); + var setClass = function(){ + if (scope.model ^ typeof(attrs.invert) !== 'undefined'){ + el.addClass('active'); + } else { + el.removeClass('active'); + } + } + scope.$watch('model', setClass); + el.bind('click', function(e){ + scope.model = !scope.model; + ngModel.$setViewValue(scope.model, e); + }); + } } }); diff --git a/public/js/directives/poll.directive.js b/public/js/directives/poll.directive.js new file mode 100644 index 000000000..ae10d89d5 --- /dev/null +++ b/public/js/directives/poll.directive.js @@ -0,0 +1,65 @@ +angular.module('rallly') +.directive('poll', function(Participant, ConfirmModal){ + return { + restrict : 'A', + templateUrl : 'templates/directives/poll.html', + scope : { + 'event' : '=' + }, + link : function(scope, el, attrs){ + scope.defaults = []; + scope.participant = {}; + var datesCount = []; + scope.delete = function(participant){ + var modal = new ConfirmModal({ + title : 'Delete ' + participant.name + '?', + message : 'Are you sure you want to remove '+participant.name+' from the poll?', + confirmText : 'Yes - delete', + cancelText : 'No - nevermind', + isDestructive : true, + confirm : function(){ + Participant.remove({ id : scope.event._id , pid : participant._id }, function(event){ + scope.event = event; + }); + } + }); + } + scope.isTopDate = function(index){ + var count = datesCount[index]; + for (var i = 0; i < datesCount.length; i++){ + if (datesCount[i] > count) return false; + } + return true; + } + scope.selectedDate = function(index){ + datesCount[index] = 0; + for (var i = 0; i < scope.event.participants.length; i++){ + if (scope.event.participants[i].dates[index]) datesCount[index]++; + } + return datesCount[index]; + } + scope.update = function(participant){ + Participant.update({ + id : scope.event._id, + pid : participant._id + }, participant); + } + scope.edit = function(participant){ + scope.defaults[scope.event.participants.indexOf(participant)] = angular.copy(participant); + } + scope.cancel = function(index){ + scope.event.participants[index] = scope.defaults[index]; + } + scope.save = function(){ + if (scope.formnew.$valid){ + var participant = new Participant(scope.participant); + participant.$save({id:scope.event._id}, function(event){ + scope.event = event; + scope.participant = {}; + }); + scope.formnew.$setPristine(); + } + } + } + } +}); diff --git a/public/js/main.js b/public/js/main.js index 41609b4a5..83174d6fa 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -1,4 +1,4 @@ -angular.module('rallly', ['ui.router','ngResource','ngFx','btford.modal']) +angular.module('rallly', ['ui.router','ngResource','ngFx','btford.modal','ngTagsInput','ngAnimate']) .config(function($stateProvider, $urlRouterProvider, $locationProvider){ $locationProvider.html5Mode(true); $urlRouterProvider.otherwise("/notfound") @@ -32,17 +32,32 @@ angular.module('rallly', ['ui.router','ngResource','ngFx','btford.modal']) templateUrl : 'templates/editevent.html', controller : 'EditEventCtrl' }) + .state('verifyevent', { + url : '/verify/:id/code/:code', + controller : 'VerificationCtrl' + }) + .state('deleteevent', { + url : '/delete/:id/code/:code', + controller : 'DeletionCtrl' + }) }) .factory('Event', function($resource){ return $resource('/api/event/:id', { id : '@_id' }, { - 'update' : { method : 'PUT' } + 'update' : { method : 'PUT' }, + 'verify' : { method : 'GET', url : '/api/event/:id/code/:code' }, + 'destroy': { method : 'DELETE', url: '/api/event/:id/code/:code' } }); }) .factory('Participant', function($resource){ - return $resource('/api/event/:id/participant/:pid', { id: '@_id', pid : '@pid'}, { + return $resource('/api/event/:id/participant/:pid', { id: '@_id'}, { 'update' : { method : 'PUT' } }); }) + .factory('Comment', function($resource){ + return $resource('/api/event/:id/comment/:cid', { id : '@_id' }, { + 'update' : { method : 'PUT' } + }) + }) .factory('Title', function(){ return { set : function(title){ diff --git a/public/js/services/notification.service.js b/public/js/services/notification.service.js new file mode 100644 index 000000000..33a5fc8bd --- /dev/null +++ b/public/js/services/notification.service.js @@ -0,0 +1,23 @@ +angular.module('rallly') +.factory('Notification', function($timeout, btfModal){ + return function(config){ + var modal; + modal = btfModal({ + templateUrl : 'templates/notification.html', + controllerAs : 'notification', + controller : function(){ + this.title = config.title + this.message = config.message; + this.close = modal.deactivate; + this.type = config.type; + var timeout = config.timeout || 5000; + $timeout(modal.deactivate, timeout); + } + }); + modal.activate(); + + this.destroy = function(){ + modal.deactivate(); + } + } +}); diff --git a/public/js/templates.js b/public/js/templates.js index ffadbe78b..1763e51b7 100644 --- a/public/js/templates.js +++ b/public/js/templates.js @@ -1,12 +1,15 @@ angular.module("rallly").run(["$templateCache", function($templateCache) {$templateCache.put("templates/about.html","
\n

What is Rallly?

\n
Rallly is a collaborative scheduling service that makes deciding on a date fast and easy.
\n

Hi, I\'m Luke!

\n

\n I created Rallly as side project to help me learn some new technologies. I decided to publish it because I thought other people might find it useful. Rallly is a completely free service. In fact it is even open source. You can look at the latest source code on Github.\n

\n
\n"); -$templateCache.put("templates/confirmmodal.html","
\n\n
\n
{{modal.title}}
\n
\n {{modal.message}}\n
\n
\n \n \n
\n
\n"); -$templateCache.put("templates/editevent.html","
\n
\n\n
Edit Event
\n
\n You can makes changes to your existing event by changing the fields in the form below.\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n
\n \n \n Done\n
\n\n
\n\n
\n\n
\n"); -$templateCache.put("templates/event.html","
\n
\n
\n
\n \n
\n
\n
\n {{event.title}}\n
\n
\n Created by {{event.creator.name}} • {{event.created | elapsed}}\n
\n
\n
\n \n
\n
\n
{{event.description}}
\n \n\n
\n
\n
\n
\n
\n
\n"); +$templateCache.put("templates/confirmmodal.html","
\n\n
\n
{{modal.title}}
\n
\n {{modal.message}}\n
\n
\n \n \n
\n
\n"); +$templateCache.put("templates/editevent.html","
\n
\n\n
Edit Event
\n
\n You can makes changes to your existing event by changing the fields in the form below.\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n \n \n Done\n
\n\n
\n\n
\n\n
\n"); +$templateCache.put("templates/event.html","
\n
\n
\n
\n \n
\n
\n
\n {{event.title}}\n Poll Closed\n Poll Open\n
\n
\n Created by {{event.creator.name}} • {{event.created | elapsed}}\n
\n
\n
\n \n
\n
\n
{{event.description}}
\n \n\n
\n
\n
\n
\n
\n\n
\n
\n Discussion\n
\n
\n You can discuss the event with your friends by leaving a comment below.\n
\n
\n\n
\n
\n
\n"); $templateCache.put("templates/home.html","
\n
\n \n
\n
\n Schedule an Event\n
\n
\n Want to host an event but can’t decide on a date? Click on the button below to start!\n
\n \n
\n"); -$templateCache.put("templates/newevent.html","
\n
\n\n
Schedule a New Event
\n
\n Fill in the form below to create your event and share it with your friends and colleagues.\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n \n
\n\n
\n
\n
\n
\n
\n
\n \n
\n
Event Created
\n
\n Your event has been created successfully! Make sure you visit the page yourself and fill in the poll.\n
\n
\n
\n
\n \n GO\n
\n
\n
\n"); +$templateCache.put("templates/newevent.html","
\n
\n\n
Schedule a New Event
\n
\n Fill in the form below to create your event and share it with your friends and colleagues.\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n \n
\n\n
\n
\n
\n
\n
\n
\n \n
\n
Event Created
\n
\n Your event has been created successfully! You should receive an email shortly with instructions to verify your email address.\n
\n
\n
\n
\n \n GO\n
\n
\n
\n"); $templateCache.put("templates/notfound.html","

Error 404

\n

Not Found

\n"); -$templateCache.put("templates/directives/poll.html","
\n
\n {{event.participants.length}} participants\n
\n
\n
\n
\n {{date | date: \'EEE\'}}\n
\n
\n {{date | date: \'d\'}}\n
\n
\n {{date | date : \'MMM\'}}\n
\n {{selectedDate($index)}}\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n \n \n {{participant.name}}\n
\n
\n \n \n \n
\n
\n
\n Edit\n Delete\n \n Cancel\n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n"); +$templateCache.put("templates/notification.html","
\n
\n {{notification.title}}\n
\n
\n {{notification.message}}\n
\n
\n"); +$templateCache.put("templates/directives/discussion.html","
    \n
  • \n
    \n \n
    \n
    \n ×\n
    \n {{comment.author.name}}\n {{comment.created | elapsed}}\n
    \n
    {{comment.content}}
    \n
    \n
  • \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n \n \n Make sure you fill in all the fields.\n \n
\n
\n
\n
\n"); +$templateCache.put("templates/directives/poll.html","
\n
\n {{event.participants.length}} participants\n
\n
\n
\n
\n {{date | date: \'EEE\'}}\n
\n
\n {{date | date: \'d\'}}\n
\n
\n {{date | date : \'MMM\'}}\n
\n {{selectedDate($index)}}\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n \n \n \n \n {{participant.name}}\n
\n
\n \n \n \n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n"); $templateCache.put("templates/directives/eventForm/dateForm.html","
\n
Choose Dates
\n
    \n
  • \n
    \n
    \n {{date | date: \'EEE\'}}\n
    \n
    \n {{date | date: \'d\'}}\n
    \n
    \n {{date | date : \'MMM\'}}\n
    \n \n
    \n
  • \n
\n
\n
\n
\n
\n \n \n You need to select a few dates\n \n
\n\n
\n
\n
\n
\n"); $templateCache.put("templates/directives/eventForm/eventForm.html","
\n
Event Details
\n
\n
\n
\n
\n
\n \n \n {{errors.title}}\n \n \n
\n
\n
\n
\n \n \n {{errors.location}}\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n"); -$templateCache.put("templates/directives/eventForm/participantsForm.html","
\n
Invite Participants
\n
\n
\n
\n
\n \n \n
\n
\n
\n\n"); +$templateCache.put("templates/directives/eventForm/participantsForm.html","
\n
Invite Participants
\n
\n
\n
\n
\n \n \n
\n
\n
\n\n"); +$templateCache.put("templates/directives/eventForm/settingsForm.html","
\n
Settings
\n
\n
\n
\n
\n
\n Poll Status\n
\n
\n Let people vote on the poll.\n
\n
\n
\n
\n {{event.isClosed ? \'Closed\' : \'Open\' }}\n
\n
\n
\n
\n
\n
\n
\n
\n Notifications\n
\n
\n Send email notifications to the creator of this event.\n
\n
\n
\n
\n {{event.creator.allowNotifications ? \'Enabled\' : \'Disabled\' }}\n
\n
\n
\n
\n
\n
\n
\n
\n Delete Event\n
\n
\n Once you delete an event it will no longer be accessible.\n
\n
\n
\n \n
\n
\n
\n\n"); $templateCache.put("templates/directives/eventForm/userForm.html","
\n
Your Details
\n
\n
\n
\n
\n
\n \n \n {{errors.name}}\n \n \n
\n
\n
\n
\n \n \n {{errors.email}}\n \n \n
\n
\n
\n
\n");}]); \ No newline at end of file diff --git a/public/scss/modules/_vars.scss b/public/scss/modules/_vars.scss index bfbe0f1e6..0a99c2323 100644 --- a/public/scss/modules/_vars.scss +++ b/public/scss/modules/_vars.scss @@ -4,7 +4,7 @@ $pink-clr: #E55A84; $red-clr: #E06488; $blue-clr: #5AC4E5; $light-blue-clr: #F5F6F8; - +$orangered-clr: #FF5D5D; $text-clr: #3D4043; $text-2-clr: #828B9A; diff --git a/public/scss/partials/_applayout.scss b/public/scss/partials/_applayout.scss index 9038bf751..3772fbedb 100644 --- a/public/scss/partials/_applayout.scss +++ b/public/scss/partials/_applayout.scss @@ -25,7 +25,6 @@ body { background: $background-clr; min-height:100%; .main-view { - height: 100%; position:relative; padding: 160px 40px 40px 40px; width:100%; diff --git a/public/scss/partials/_topbar.scss b/public/scss/partials/_topbar.scss index bdf49218e..23abdf9a1 100644 --- a/public/scss/partials/_topbar.scss +++ b/public/scss/partials/_topbar.scss @@ -29,15 +29,34 @@ border-color: darken($border-clr,10%); } } - .dropdown:after { - content: ""; - width: 6px; - height: 4px; - margin-left: 10px; - display:inline-block; - background-image: url("../images/dropdown_arrow.png"); - background-size: 6px 4px; - background-repeat:no-repeat; + &.dropdown.open .dropdown-toggle { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-color: $border-clr; + border-bottom-color: white; + position: relative; + z-index:1001; + } + .dropdown-menu { + background: white; + color: $text-clr; + font-size: em(16px); + line-height: 1.5em; + border: 1px solid $border-clr; + border-radius: 3px; + padding: 20px; + margin-top:-9px; + border-top-left-radius:0; + box-shadow: 0 2px 3px $border-clr; + .dropdown-title { + font-weight:bold; + font-size: em(15px); + } + .dropdown-content { + font-size: em(14px); + line-height: 1.5em; + color: $text-2-clr; + } } } diff --git a/public/scss/partials/old/_buttons.scss b/public/scss/partials/old/_buttons.scss deleted file mode 100644 index a17516c7c..000000000 --- a/public/scss/partials/old/_buttons.scss +++ /dev/null @@ -1,35 +0,0 @@ -.btn-flat { - color:white; - background: $primary-clr; - text-decoration:none; - @include pad(em(10px) em(20px)); - border-radius: 3px; -} - -.btn-primary { - border:1px solid #E0E3E9; - border-radius: 2px; - box-shadow: inset 0 1px 0 white, 0 1px 1px rgba(black, 0.1); - @include background-image(linear-gradient(#FAFAFA, #EFF1F3)); - font-size: em(12px); - font-weight:600; - color: $dark-gray-clr; - text-decoration:none; - padding: em(8px) em(15px); - &.disabled { - cursor:default; - opacity: 0.5; - &:active { - box-shadow: inset 0 1px 0 white, 0 1px 1px rgba(black, 0.1); - } - } - &.danger { - color: $danger-clr; - } - &:focus { - outline:0; - } - &:active { - box-shadow: inset 0 0 5px rgba(black, 0.1); - } -} diff --git a/public/scss/partials/old/_datepicker.scss b/public/scss/partials/old/_datepicker.scss deleted file mode 100644 index e5360e5e9..000000000 --- a/public/scss/partials/old/_datepicker.scss +++ /dev/null @@ -1,209 +0,0 @@ -.error > .datepicker { - border-color: $red-clr; -} -.datepicker { - width:100%; - border:1px solid #eee; - border-radius: 3px; - background:white; - padding: em(10px); - @include transition(border-color 0.1s ease-in-out); - table { - width:100%; - font-size: em($em-base); - } - thead { - - } - tbody { - &:before { - content: ''; - display:block; - height: em(10px); - } - } - .prev, .next { - opacity: 0.5; - cursor: pointer; - border-radius:5px; - position:relative; - &:hover { - opacity: 1; - &:after { - opacity: 1; - background: rgba($text-clr, 0.1); - } - } - &:after { - content: " "; - cursor:pointer; - opacity: 0; - position:absolute; - $size: em(28px); - width:$size; - height:$size; - margin-left:$size * -0.5; - margin-top:$size * -0.5; - left:50%; - top:50%; - border-radius:100%; - } - } - .datepicker-switch { - padding: 10px; - font-weight:600; - font-size:em(18px); - border-radius: 3px; - cursor: pointer; - &:hover { - background: rgba($text-clr, 0.1); - } - } - .dow { - padding:10px; - font-weight:normal; - text-transform: uppercase; - color: $red-clr; - font-size: em(14px); - border-bottom: 2px solid #eee; - } - .dow, .day { - padding:em(15px); - } - .day { - text-align:center; - font-weight:600; - position:relative; - font-size:em(14px); - &.today { - color:#818176; - &:after { - opacity:1; - background: rgba(yellow, 0.1); - } - } - &:hover { - &:after { - opacity:1; - background: rgba($text-clr,0.1); - } - cursor: pointer; - } - &.new, &.old { - font-weight:normal; - color: rgba($text-clr,0.3); - } - &.active { - background:white; - color: $primary-clr; - &:after { - opacity:1; - background: rgba($primary-clr,0.1); - } - } - &:active { - &:after { - opacity: 0.8; - } - } - &:after { - content: " "; - cursor:pointer; - opacity: 0; - position:absolute; - $size: em(35px); - width:$size; - height:$size; - margin-left:$size * -0.5; - margin-top:$size * -0.5; - left:50%; - top:50%; - border-radius:100%; - } - } - .month, .year { - width: 33.3%; - display:inline-block; - text-align:center; - font-size: em(14px); - padding:em(20px); - cursor:pointer; - border-radius: 3px; - text-transform: uppercase; - &:hover { - background: rgba($text-clr, 0.1); - } - } -} - -.daticon-list { - margin:0; - margin-left:-10px; - list-style:none; - padding:5px; - text-align:left; - .placeholder { - line-height: em(18px); - font-size: em(12px); - color: #ccc; - } - li { - margin: 5px; - display:inline-block; - } -} - -.daticon { - box-shadow: 0 0 0 1px rgba($text-clr,0.1); - border-radius: 3px; - display:inline-block; - padding:em(8px) em(16px); - text-align:center; - position:relative; - cursor:default; - background:white; - .dow { - font-size: em(6px); - margin-top:em(-24px); - background:white; - color: #aaa; - margin-bottom: em(4px); - font-weight:normal; - text-transform: uppercase; - } - .day { - font-size: em(20px); - font-weight:normal; - color: $red-clr; - line-height: em(16px); - } - .month { - font-weight: 600; - font-size: em(12px); - text-transform: uppercase; - } - .delete { - text-align:center; - $size: 18px; - width: em($size); - height: em($size); - position:absolute; - top: $size * -0.4; - right: $size * -0.4; - background: rgba($text-clr,0.1); - border-radius:100%; - display:inline-block; - background: rgba($text-clr, 0.1) url(../images/close@2x.png) no-repeat center center; - background-size: 7px 8px; - cursor:pointer; - opacity:0; - &:hover { - background-color: rgba($text-clr, 0.2) - } - } - &:hover { - .delete { - opacity: 1; - } - } -} diff --git a/public/scss/partials/old/_event.scss b/public/scss/partials/old/_event.scss deleted file mode 100644 index bd7c90dac..000000000 --- a/public/scss/partials/old/_event.scss +++ /dev/null @@ -1,117 +0,0 @@ -.event-description { - font-size: em(18px); - line-height: em(21px); - color: $body-clr; - white-space: pre-wrap; -} - -.event-poll { - width:100%; - margin-top:em(-10px); - margin-bottom: em(10px); - th { - text-align:center; - border-bottom:1px solid #ddd; - padding-bottom:em(10px); - box-shadow: 0 3px 0 rgba(black, 0.05); - } - tr:nth-child(even){ - td { - background: #F9FAFA; - } - } - tr:hover { - .hover { - visibility:visible; - } - } - .hover { - visibility: hidden; - } - td { - &.center { - text-align:center; - } - padding: em(10px); - border-bottom:1px solid #ddd; - } - .event-poll-name { - padding: em(6px) em(11px); - display:inline-block; - } - .event-poll-user { - text-align:left; - font-size: em(14px); - padding: em(12px) em(20px); - img { - margin-right: 5px; - } - input { - border:1px solid #ddd; - padding: em(5px) em(10px); - border-radius: 3px; - color: $text-clr; - &:focus { - outline:0; - border-color: $blue-clr; - } - } - } - .event-poll-input { - padding:0; - } - .event-poll-participants { - text-align:left; - padding:0 em(10px); - } - - .event-entry-button { - font-size: em(12px); - text-decoration:none; - color: #aaa; - border-radius: 3px; - margin-left: em(5px); - &:hover { - color: $primary-clr; - &.danger { - color: $red-clr; - } - } - } -} - - -.event-poll-buttons { - text-align:right; - padding: 0 em(10px); -} - -.event-detail-list { - list-style:none; - margin-top:em(-20px); - margin-bottom:em(20px); - padding:0; - color: $body-clr; - font-size: em(12px); - li { - display:inline-block; - margin-right: em(40px); - } - a { - color: $text-clr; - text-decoration:none; - &:hover { - color: $primary-clr; - } - } -} - -.event-details { - margin-bottom: em(40px); -} -.event-button-tip { - font-size: em(11px); - color: #C4CAD2; - display:inline-block; - margin-right: em(10px); -} diff --git a/public/scss/partials/old/_eventsuccess.scss b/public/scss/partials/old/_eventsuccess.scss deleted file mode 100644 index 5f188c676..000000000 --- a/public/scss/partials/old/_eventsuccess.scss +++ /dev/null @@ -1,12 +0,0 @@ -.form-success { - text-align:center; -} - -.form-success-url { - font-size: em(24px); - text-align:center; - padding: 10px; - border-radius: 3px; - border: 1px solid #eee; - color: $text-clr; -} diff --git a/public/scss/partials/old/_form.scss b/public/scss/partials/old/_form.scss deleted file mode 100644 index cfc805910..000000000 --- a/public/scss/partials/old/_form.scss +++ /dev/null @@ -1,96 +0,0 @@ -.form-container { - width:100%; -} - -.form-row { - @include row(); - margin-bottom:10px; - @include user-select(none); -} - -.form-col { - @include span-columns(6); - &.padded { - &:first-child { - padding: 0 20px 0 0; - } - &:last-child { - padding: 0 0 0 20px; - } - } -} - -.form-big-col { - @include span-columns(12); -} - -.form-small-col { - @include span-columns(2); -} - -.form-error-msg { - color: $red-clr; - font-size: em(12px); - padding: em(5px); -} - -.form-group { - & > label { - font-size:em(12px); - color: $dark-gray-clr; - display:block; - line-height:em(30px); - &:after { - content: "*"; - color: $red-clr; - margin-left:5px; - } - &.optional:after { - content: ""; - } - } - input.form-control, textarea.form-control { - border-radius: 3px; - border: 1px solid #ddd; - font-size:em(18px); - @include transition(border-color 0.1s ease-in-out); - &:focus { - border-color: $blue-clr; - outline:none; - } - &.extend { - width:100%; - } - @include placeholder { - color: rgba($dark-gray-clr,0.7); - } - } - &.error { - input.form-control, textarea.form-control { - - border-color: $red-clr; - background: rgba($red-clr,0.02); - } - } - input.form-control { - padding: em(5px) em(10px); - } - textarea.form-control { - min-height: 100px; - font-size: em(18px); - padding: em(8px) em(10px); - } -} - -.form-submit-message { - display:inline-block; - margin-left: em(5px); - font-size: em(12px); - &.error { - color: $red-clr; - } - img { - vertical-align:middle; - margin-right: em(5px); - } -} diff --git a/public/scss/partials/old/_header.scss b/public/scss/partials/old/_header.scss deleted file mode 100644 index c09f79e65..000000000 --- a/public/scss/partials/old/_header.scss +++ /dev/null @@ -1,28 +0,0 @@ -.header { - @include span-columns(3); - .fixed { - position: fixed; - } - .primary-section { - margin: em(35px) 0; - } - .secondary-section { - - } - .nav-links { - font-size: em(16px); - font-weight: normal; - line-height: em(24px); - .nav-link { - display:block; - text-decoration:none; - color: $dark-gray-clr; - &:hover { - color: $text-clr; - } - &.active { - color: $blue-clr; - } - } - } -} diff --git a/public/scss/partials/old/_mixins.scss b/public/scss/partials/old/_mixins.scss deleted file mode 100644 index 97f8712f6..000000000 --- a/public/scss/partials/old/_mixins.scss +++ /dev/null @@ -1,3 +0,0 @@ -@mixin font($font : $primary-font){ - font-family: $font, $helvetica; -} diff --git a/public/scss/partials/old/_modal.scss b/public/scss/partials/old/_modal.scss deleted file mode 100644 index bd53d5816..000000000 --- a/public/scss/partials/old/_modal.scss +++ /dev/null @@ -1,44 +0,0 @@ -.rl-modal { - background:white; - position: fixed; - top: 50%; - box-shadow: 0 0 5px rgba(black, 0.1); - left: 50%; - width: 50%; - max-width: 400px; - display:inline-block; - min-width: 200px; - height: auto; - z-index: 2000; - overflow:hidden; - border-radius: 5px; - border: 1px solid #ddd; - @include transform(translateX(-50%) translateY(-50%)); - .rl-modal-message { - padding: 0 20px 20px 20px; - font-size: em(12px); - color: $body-clr; - } - .rl-modal-title { - padding:20px 20px 5px 20px; - font-size: em(18px); - font-weight: bold; - } - .rl-modal-actions { - border-top:1px solid #ddd; - background: #F9FAFA; - text-align:right; - padding: em(10px) em(20px); - } -} - -.rl-modal-overlay { - position:fixed; - z-index: 1000; - top:0; - left:0; - width:100%; - height:100%; - background:rgba(black,0.1); - -} diff --git a/public/scss/partials/old/_newevent.scss b/public/scss/partials/old/_newevent.scss deleted file mode 100644 index 8b1378917..000000000 --- a/public/scss/partials/old/_newevent.scss +++ /dev/null @@ -1 +0,0 @@ - diff --git a/public/scss/partials/old/_type.scss b/public/scss/partials/old/_type.scss deleted file mode 100644 index eb4e89b69..000000000 --- a/public/scss/partials/old/_type.scss +++ /dev/null @@ -1,38 +0,0 @@ -h1 { - font-weight:bold; - font-size: em(36px); - color: $text-clr; - small { - font-size: em(12px); - } -} - -h2 { - font-weight:600; - font-size:em(14px); - color: $text-clr; - padding-bottom:5px; - small { - margin-left: em(10px); - display:inline-block; - } - small, small a { - font-size: em(12px); - color: $dark-gray-clr; - font-weight:normal; - } - small a { - text-decoration:none; - &:hover { - color: $red-clr; - border-bottom: 1px solid #ddd; - } - } -} - -p { - color: $body-clr; - a { - color: $primary-clr; - } -} diff --git a/public/scss/partials/old/_vars.scss b/public/scss/partials/old/_vars.scss deleted file mode 100644 index 82c7f4597..000000000 --- a/public/scss/partials/old/_vars.scss +++ /dev/null @@ -1,16 +0,0 @@ -/****** BASIC *******/ -$em-base: 16px; -$primary-font: "Roboto"; -/****** BASIC *******/ - -/****** COLORS *******/ -$primary-clr: #60DF9D; -$dark-gray-clr: #969FA9; -$light-gray-clr: #f9f9f9; -$text-clr: #3D4752; -$danger-clr: #E55A5A; -$red-clr: #E55A84; -$blue-clr: #5AC4E5; -$medium-gray-clr: #798490; -$body-clr: $medium-gray-clr; -/****** COLORS *******/ diff --git a/public/scss/partials/pages/_event.scss b/public/scss/partials/pages/_event.scss index 2978c9036..b0924edea 100644 --- a/public/scss/partials/pages/_event.scss +++ b/public/scss/partials/pages/_event.scss @@ -1,5 +1,5 @@ .event-description { - font-size: em(16px); + font-size: em(14px); white-space: pre-wrap; padding-top:20px; padding-bottom: 20px; @@ -12,7 +12,7 @@ } .event-location { - font-size: em(16px); + font-size: em(14px); a { color: $text-clr; text-decoration:none; @@ -80,6 +80,23 @@ .title { font-size: em(24px); font-weight: bold; + .title-label { + font-size: 11px; + font-weight: normal; + margin-left: 5px; + position: relative; + top: -3px; + background: $text-2-clr; + color:white; + padding: 3px 10px; + border-radius: 20px; + &.success { + background: $green-clr; + } + &.danger { + background: $orangered-clr; + } + } } .subtitle { color: $text-2-clr; @@ -94,7 +111,7 @@ } } .actions { - // visibility:hidden; + visibility:hidden; float: right; margin-top: 30px; } diff --git a/public/scss/partials/ui/_box.scss b/public/scss/partials/ui/_box.scss index 4b72e81ed..92bf35757 100644 --- a/public/scss/partials/ui/_box.scss +++ b/public/scss/partials/ui/_box.scss @@ -8,6 +8,7 @@ $box-h-pad: 25px; margin: 0 auto 20px auto; max-width: 800px; padding: $box-v-pad $box-h-pad; + box-shadow: 0 0 1px $border-clr; &.box-x-scroll { overflow-x: scroll; } diff --git a/public/scss/partials/ui/_buttons.scss b/public/scss/partials/ui/_buttons.scss index 3836aa942..2a2b9dfb0 100644 --- a/public/scss/partials/ui/_buttons.scss +++ b/public/scss/partials/ui/_buttons.scss @@ -4,7 +4,7 @@ border:1px solid #E0E3E9; display:inline-block; border-radius: 2px; - box-shadow: inset 0 1px 0 white, 0 1px 1px rgba(black, 0.1); + box-shadow: inset 0 1px 0 white, 0 1px 0 rgba($border-clr,0.5); @include linear-gradient($btn-top-clr, $btn-bottom-clr); font-size: em(12px); font-weight:600; diff --git a/public/scss/partials/ui/_comments.scss b/public/scss/partials/ui/_comments.scss new file mode 100644 index 000000000..8f972114f --- /dev/null +++ b/public/scss/partials/ui/_comments.scss @@ -0,0 +1,137 @@ +.comments-info { + font-weight: bold; + padding-bottom: 10px; + border-bottom: 2px solid $border-clr; +} + +.comment-form { + @include row; + margin-bottom: 20px; + margin-top:20px; + padding: 0 10px; + .avatar-section { + @include span-columns(1); + img { + border-radius: 3px; + max-width: 100%; + } + } + .input-section { + @include span-columns(11); + } + .content-section { + margin-bottom:10px; + } + .name-section { + position:relative; + margin-bottom: 10px; + } + .form-control { + font-size: em(14px) !important; + border-width: 2px !important; + } + textarea.form-control { + min-height: 0; + min-width: 100%; + } +} + +.comments-placeholder { + color: $text-3-clr; + text-align:center; +} + +.comment-thread { + list-style:none; + margin:0; + padding:0; + margin-bottom: 20px; + max-height: 500px; + overflow-y: scroll; + .comment { + @include row; + padding: 10px; + .avatar-section { + @include span-columns(1); + img { + max-width: 100%; + border-radius: 3px; + } + } + .comment-section { + @include span-columns(11); + position:relative; + .comment-delete { + opacity:0; + text-decoration:none; + color:white; + background-color: $border-clr; + color: $text-3-clr; + border-radius: 2px; + display:inline-block; + position:absolute; + right:0; + top:0; + font-size: em(14px); + $cd-size: em(16px); + width: $cd-size; + height: $cd-size; + line-height: $cd-size; + text-align: center; + &:hover { + background: $red-clr; + color: white; + } + &:active { + background: darken($red-clr, 5%); + } + } + .meta { + font-size: em(13px); + color: $text-2-clr; + margin-bottom: 5px; + } + .name { + color: $text-2-clr; + font-weight: 600; + } + .time:before { + content: " "; + display: inline-block; + height: 4px; + width: 4px; + background: $text-3-clr; + margin: 0 5px 2px 5px; + border-radius: 100%; + } + .content { + font-size: em(14px); + margin-bottom: 5px; + white-space: pre-wrap; + margin-right: 100px; + } + .actions { + opacity:0.8; + a { + color: $text-2-clr; + font-size: em(12px); + text-decoration: none; + &:hover { + color: $blue-clr; + } + } + } + } + &:hover { + background: $background-clr; + cursor:default; + border-radius: 3px; + .name { + color: $blue-clr; + } + .comment-delete { + opacity: 1; + } + } + } +} diff --git a/public/scss/partials/ui/_datepicker.scss b/public/scss/partials/ui/_datepicker.scss index 4e98e1ace..0eb3c8642 100644 --- a/public/scss/partials/ui/_datepicker.scss +++ b/public/scss/partials/ui/_datepicker.scss @@ -115,7 +115,7 @@ cursor:pointer; opacity: 0; position:absolute; - $size: em(35px); + $size: em(40px); width:$size; height:$size; margin-left:$size * -0.5; @@ -224,7 +224,7 @@ line-height: $size; @include transition(background-color 0.2s ease-in-out); &.top { - background: #FF5D5D; + background: $orangered-clr; } } diff --git a/public/scss/partials/ui/_dropdown.scss b/public/scss/partials/ui/_dropdown.scss new file mode 100644 index 000000000..b893a8973 --- /dev/null +++ b/public/scss/partials/ui/_dropdown.scss @@ -0,0 +1,30 @@ +.dropdown { + position:relative; + cursor: pointer; + .dropdown-menu { + position: absolute; + display:none; + z-index: 1000; + float:left; + min-width:160px; + max-width: 180px; + padding: 5px; + text-align:left; + left:0; + } + &.open .dropdown-menu { + display: block; + } + .dropdown-toggle { + &:after { + content: ""; + width: 6px; + height: 4px; + margin-left: 10px; + display:inline-block; + background-image: url("../images/dropdown_arrow.png"); + background-size: 6px 4px; + background-repeat:no-repeat; + } + } +} diff --git a/public/scss/partials/ui/_form.scss b/public/scss/partials/ui/_form.scss index dd334eb9d..bfd586991 100644 --- a/public/scss/partials/ui/_form.scss +++ b/public/scss/partials/ui/_form.scss @@ -60,9 +60,6 @@ form { border-radius: 3px; border: 1px solid $border-clr; font-size:em(18px); - &.ng-pristine { - background: lighten($background-clr,1%); - } @include transition(border-color 0.1s ease-in-out); &:focus { border-color: $blue-clr; diff --git a/public/scss/partials/ui/_modal.scss b/public/scss/partials/ui/_modal.scss index 168c0be43..fdab63184 100644 --- a/public/scss/partials/ui/_modal.scss +++ b/public/scss/partials/ui/_modal.scss @@ -11,7 +11,7 @@ z-index: 2000; overflow:hidden; border-radius: 5px; - box-shadow: 0 0 0 1px $border-clr, 0 0 0 5px rgba($border-clr,0.8), 0 0 10px 5px rgba(black, 0.2); + box-shadow: 0 0 0 1px $border-clr, 0 0 0 5px rgba($border-clr,0.5); @include transform(translateX(-50%) translateY(-50%)); .rl-modal-message { padding: 0 20px 20px 20px; diff --git a/public/scss/partials/ui/_notification.scss b/public/scss/partials/ui/_notification.scss new file mode 100644 index 000000000..284552cf4 --- /dev/null +++ b/public/scss/partials/ui/_notification.scss @@ -0,0 +1,45 @@ +.notification { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 3000; + padding: 12px 40px; + background: $text-2-clr; + color: white; + @include transition(all 0.3s ease-in-out); + &.success { + background: $green-clr; + } + &.error { + background: $red-clr; + } + &.ng-enter { + top: -100px; + opacity:0; + } + &.ng-enter-active { + top:0; + opacity:1; + } + &.ng-leave-active { + top:-100px; + opacity:1; + } + .title { + font-size: em(14px); + margin-bottom: 2px; + } + .message { + font-size: em(12px); + color: rgba(white, 0.8); + } + .close { + position: absolute; + top: 5px; + right:10px; + color: white; + text-decoration:none; + + } +} diff --git a/public/scss/partials/ui/_poll.scss b/public/scss/partials/ui/_poll.scss index 82a890207..e574752e3 100644 --- a/public/scss/partials/ui/_poll.scss +++ b/public/scss/partials/ui/_poll.scss @@ -5,6 +5,7 @@ $name-col-width: 235px; .poll { min-width: 100%; display:block; + margin-bottom:20px; } .poll-header { @@ -54,6 +55,8 @@ $name-col-width: 235px; .cell { padding: em(10px); display:table-cell; + height: 50px; + vertical-align:middle; &.name-cell { min-width: $name-col-width; width: $name-col-width; diff --git a/public/scss/partials/ui/_switch.scss b/public/scss/partials/ui/_switch.scss new file mode 100644 index 000000000..90e3310f0 --- /dev/null +++ b/public/scss/partials/ui/_switch.scss @@ -0,0 +1,75 @@ +.switch-row { + display:table; + width: 100%; + margin-bottom: 20px; + padding-bottom: 20px; + border-bottom: 1px solid $border-clr; + &:last-child { + border:0; + } + .switch-details { + display:table-cell; + .title { + font-size: em(14px); + font-weight: bold; + } + .description { + font-size: em(12px); + color: $text-2-clr; + } + } + .switch { + display:table-cell; + text-align:right; + min-width: 150px; + vertical-align:middle; + .switch-value { + font-size: em(12px); + color: $text-2-clr; + display:inline-block; + vertical-align:middle; + + } + } +} + +.switch-toggle { + display:inline-block; + margin-left: 5px; + height: 20px; + width: 40px; + border-radius: 20px; + vertical-align:middle; + position:relative; + cursor:pointer; + background: $red-clr; + box-shadow: inset 0 0 0 1px rgba(black,0.1); + @include transition(all 0.1s ease-in-out); + $tog-size: 16px; + &:after { + content: " "; + @include transition(all 0.1s ease-in-out); + display:inline-block; + height: $tog-size; + width: $tog-size; + position: absolute; + $btn-top-clr: #FAFAFA; + $btn-bottom-clr: #EFF1F3; + box-shadow: inset 0 1px 0 white, 0 1px 1px rgba(black, 0.1); + @include linear-gradient($btn-top-clr, $btn-bottom-clr); + top: 50%; + margin-top: ($tog-size / 2) * -1; + left: 2px; + border-radius: 100px; + } + &:hover { + box-shadow:inset 0 0 0 1px rgba(black,0.1), inset 0 0 0 8px rgba(black,0.05); + } + &.active { + background: $green-clr; + &:after { + left: 100%; + margin-left: ($tog-size * -1) - 2; + } + } +} diff --git a/public/scss/partials/ui/_tags.scss b/public/scss/partials/ui/_tags.scss new file mode 100644 index 000000000..c57a6611a --- /dev/null +++ b/public/scss/partials/ui/_tags.scss @@ -0,0 +1,95 @@ +$tag-font-size: 14px; + +tags-input { + display: block; +} +tags-input *, tags-input *:before, tags-input *:after { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +tags-input .host { + position: relative; + margin-top: 5px; + margin-bottom: 5px; + &:focus { + outline:0; + } +} +tags-input .host:active { + outline: none; +} + +tags-input .tags { + padding: 4px; + overflow: hidden; + word-wrap: break-word; + cursor: text; + border-radius: 3px; + background-color: white; + border: 1px solid $border-clr; + @include transition(border-color 0.1s ease-in-out); +} +tags-input .tags.focused { + outline: none; +} + +tags-input .tags .tag-list { + margin: 0; + padding: 0; + list-style-type: none; +} +tags-input .tags .tag-item { + margin: 2px; + padding: 0 8px; + display: inline-block; + float: left; + font-size: em($tag-font-size); + height: 26px; + line-height: 25px; + border-radius: 1px; + background:#E5EBF2; + color: #7587A1; + box-shadow:0 0 0 1px #CBD4E2; +} +tags-input .tags .tag-item.selected { + background: $red-clr; + color: white; + box-shadow: none; +} +tags-input .tags .tag-item .remove-button { + margin: 0 0 0 5px; + padding: 0; + border: none; + background: none; + color: inherit; + cursor: pointer; + vertical-align: middle; + font: bold em(16px) Arial, sans-serif; +} + +tags-input .tags .input { + border: 0; + outline: none; + margin: 2px; + padding: 0; + padding-left: 8px; + float: left; + height: 26px; + font-size: em($tag-font-size); + @include placeholder { + color: $text-3-clr; + } +} + +tags-input .tags .input.invalid-tag { + color: $red-clr; +} + +tags-input .tags .input::-ms-clear { + display: none; +} + +tags-input.ng-invalid .tags { + // highlight tags when model is invalid +} diff --git a/public/scss/style.scss b/public/scss/style.scss index afbec6fac..07dd5df3f 100644 --- a/public/scss/style.scss +++ b/public/scss/style.scss @@ -9,6 +9,10 @@ body { font-family: "Roboto", "Helvetica Neue", Arial, sans-serif; } +a { + color: $blue-clr; +} + @import "partials/applayout"; @import "partials/navigation"; @import "partials/topbar"; @@ -19,6 +23,11 @@ body { @import "partials/ui/datepicker"; @import "partials/ui/modal"; @import "partials/ui/poll"; +@import "partials/ui/tags"; +@import "partials/ui/dropdown"; +@import "partials/ui/comments"; +@import "partials/ui/switch"; +@import "partials/ui/notification"; @import "partials/pages/home"; @import "partials/pages/event"; diff --git a/public/templates/confirmmodal.html b/public/templates/confirmmodal.html index b0b54108d..10da2639a 100644 --- a/public/templates/confirmmodal.html +++ b/public/templates/confirmmodal.html @@ -6,7 +6,7 @@ {{modal.message}}
- - + +
diff --git a/public/templates/directives/discussion.html b/public/templates/directives/discussion.html new file mode 100644 index 000000000..0545b72df --- /dev/null +++ b/public/templates/directives/discussion.html @@ -0,0 +1,34 @@ +
    +
  • +
    + +
    +
    + × +
    + {{comment.author.name}} + {{comment.created | elapsed}} +
    +
    {{comment.content}}
    +
    +
  • +
+
+
+ +
+
+
+ +
+
+
+ + + + Make sure you fill in all the fields. + +
+
+
+
diff --git a/public/templates/directives/eventForm/participantsForm.html b/public/templates/directives/eventForm/participantsForm.html index b99d3ccc2..c557ba89c 100644 --- a/public/templates/directives/eventForm/participantsForm.html +++ b/public/templates/directives/eventForm/participantsForm.html @@ -4,8 +4,8 @@
- - + +
diff --git a/public/templates/directives/eventForm/settingsForm.html b/public/templates/directives/eventForm/settingsForm.html new file mode 100644 index 000000000..ad15d907f --- /dev/null +++ b/public/templates/directives/eventForm/settingsForm.html @@ -0,0 +1,53 @@ +
+
Settings
+
+
+
+
+
+ Poll Status +
+
+ Let people vote on the poll. +
+
+
+
+ {{event.isClosed ? 'Closed' : 'Open' }} +
+
+
+
+
+
+
+
+ Notifications +
+
+ Send email notifications to the creator of this event. +
+
+
+
+ {{event.creator.allowNotifications ? 'Enabled' : 'Disabled' }} +
+
+
+
+
+
+
+
+ Delete Event +
+
+ Once you delete an event it will no longer be accessible. +
+
+
+ +
+
+
+ diff --git a/public/templates/directives/poll.html b/public/templates/directives/poll.html index cc7ef7914..62dbd5f76 100644 --- a/public/templates/directives/poll.html +++ b/public/templates/directives/poll.html @@ -28,7 +28,7 @@ - {{participant.name}} + {{participant.name}}
@@ -36,16 +36,16 @@
-
- Edit - Delete - - Cancel +
+ + + +
-
-
+
+
diff --git a/public/templates/editevent.html b/public/templates/editevent.html index 75fc9219e..1f3ed042a 100644 --- a/public/templates/editevent.html +++ b/public/templates/editevent.html @@ -18,11 +18,16 @@
+ +
+ +
+
- + Done
diff --git a/public/templates/event.html b/public/templates/event.html index 70873b7ef..d1fbacbbb 100644 --- a/public/templates/event.html +++ b/public/templates/event.html @@ -1,12 +1,14 @@ -
+
- +
{{event.title}} + Poll Closed + Poll Open
Created by {{event.creator.name}} • {{event.created | elapsed}} @@ -23,7 +25,19 @@
-
+
+
+
+ +
+
+ Discussion +
+
+ You can discuss the event with your friends by leaving a comment below. +
+
+
diff --git a/public/templates/newevent.html b/public/templates/newevent.html index 8d7ffffbd..94f481a1e 100644 --- a/public/templates/newevent.html +++ b/public/templates/newevent.html @@ -6,7 +6,7 @@ Fill in the form below to create your event and share it with your friends and colleagues.
- +
@@ -37,7 +37,7 @@
Event Created
- Your event has been created successfully! Make sure you visit the page yourself and fill in the poll. + Your event has been created successfully! You should receive an email shortly with instructions to verify your email address.
diff --git a/public/templates/notification.html b/public/templates/notification.html new file mode 100644 index 000000000..8cdef6860 --- /dev/null +++ b/public/templates/notification.html @@ -0,0 +1,8 @@ +
+
+ {{notification.title}} +
+
+ {{notification.message}} +
+
diff --git a/public/vendor/angular-animate/.bower.json b/public/vendor/angular-animate/.bower.json new file mode 100644 index 000000000..e17a731d0 --- /dev/null +++ b/public/vendor/angular-animate/.bower.json @@ -0,0 +1,20 @@ +{ + "name": "angular-animate", + "version": "1.3.10", + "main": "./angular-animate.js", + "ignore": [], + "dependencies": { + "angular": "1.3.10" + }, + "homepage": "https://github.com/angular/bower-angular-animate", + "_release": "1.3.10", + "_resolution": { + "type": "version", + "tag": "v1.3.10", + "commit": "ae99c60870b78d1bcd01135d4412feaddd8b0959" + }, + "_source": "git://github.com/angular/bower-angular-animate.git", + "_target": "~1.3.10", + "_originalSource": "angular-animate", + "_direct": true +} \ No newline at end of file diff --git a/public/vendor/angular-animate/README.md b/public/vendor/angular-animate/README.md new file mode 100644 index 000000000..930b5dcc5 --- /dev/null +++ b/public/vendor/angular-animate/README.md @@ -0,0 +1,77 @@ +# packaged angular-animate + +This repo is for distribution on `npm` and `bower`. The source for this module is in the +[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAnimate). +Please file issues and pull requests against that repo. + +## Install + +You can install this package either with `npm` or with `bower`. + +### npm + +```shell +npm install angular-animate +``` + +Add a ` +``` + +Then add `ngAnimate` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngAnimate']); +``` + +Note that this package is not in CommonJS format, so doing `require('angular-animate')` will +return `undefined`. + +### bower + +```shell +bower install angular-animate +``` + +Then add a ` +``` + +Then add `ngAnimate` as a dependency for your app: + +```javascript +angular.module('myApp', ['ngAnimate']); +``` + +## Documentation + +Documentation is available on the +[AngularJS docs site](http://docs.angularjs.org/api/ngAnimate). + +## License + +The MIT License + +Copyright (c) 2010-2012 Google, Inc. http://angularjs.org + +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. diff --git a/public/vendor/angular-animate/angular-animate.js b/public/vendor/angular-animate/angular-animate.js new file mode 100644 index 000000000..2014baec7 --- /dev/null +++ b/public/vendor/angular-animate/angular-animate.js @@ -0,0 +1,2138 @@ +/** + * @license AngularJS v1.3.10 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +/* jshint maxlen: false */ + +/** + * @ngdoc module + * @name ngAnimate + * @description + * + * The `ngAnimate` module provides support for JavaScript, CSS3 transition and CSS3 keyframe animation hooks within existing core and custom directives. + * + *
+ * + * # Usage + * + * To see animations in action, all that is required is to define the appropriate CSS classes + * or to register a JavaScript animation via the `myModule.animation()` function. The directives that support animation automatically are: + * `ngRepeat`, `ngInclude`, `ngIf`, `ngSwitch`, `ngShow`, `ngHide`, `ngView` and `ngClass`. Custom directives can take advantage of animation + * by using the `$animate` service. + * + * Below is a more detailed breakdown of the supported animation events provided by pre-existing ng directives: + * + * | Directive | Supported Animations | + * |----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------| + * | {@link ng.directive:ngRepeat#animations ngRepeat} | enter, leave and move | + * | {@link ngRoute.directive:ngView#animations ngView} | enter and leave | + * | {@link ng.directive:ngInclude#animations ngInclude} | enter and leave | + * | {@link ng.directive:ngSwitch#animations ngSwitch} | enter and leave | + * | {@link ng.directive:ngIf#animations ngIf} | enter and leave | + * | {@link ng.directive:ngClass#animations ngClass} | add and remove (the CSS class(es) present) | + * | {@link ng.directive:ngShow#animations ngShow} & {@link ng.directive:ngHide#animations ngHide} | add and remove (the ng-hide class value) | + * | {@link ng.directive:form#animation-hooks form} & {@link ng.directive:ngModel#animation-hooks ngModel} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * | {@link module:ngMessages#animations ngMessages} | add and remove (ng-active & ng-inactive) | + * | {@link module:ngMessages#animations ngMessage} | enter and leave | + * + * You can find out more information about animations upon visiting each directive page. + * + * Below is an example of how to apply animations to a directive that supports animation hooks: + * + * ```html + * + * + * + * + * ``` + * + * Keep in mind that, by default, if an animation is running, any child elements cannot be animated + * until the parent element's animation has completed. This blocking feature can be overridden by + * placing the `ng-animate-children` attribute on a parent container tag. + * + * ```html + *
+ *
+ *
+ * ... + *
+ *
+ *
+ * ``` + * + * When the `on` expression value changes and an animation is triggered then each of the elements within + * will all animate without the block being applied to child elements. + * + * ## Are animations run when the application starts? + * No they are not. When an application is bootstrapped Angular will disable animations from running to avoid + * a frenzy of animations from being triggered as soon as the browser has rendered the screen. For this to work, + * Angular will wait for two digest cycles until enabling animations. From there on, any animation-triggering + * layout changes in the application will trigger animations as normal. + * + * In addition, upon bootstrap, if the routing system or any directives or load remote data (via $http) then Angular + * will automatically extend the wait time to enable animations once **all** of the outbound HTTP requests + * are complete. + * + * ## CSS-defined Animations + * The animate service will automatically apply two CSS classes to the animated element and these two CSS classes + * are designed to contain the start and end CSS styling. Both CSS transitions and keyframe animations are supported + * and can be used to play along with this naming structure. + * + * The following code below demonstrates how to perform animations using **CSS transitions** with Angular: + * + * ```html + * + * + *
+ *
+ *
+ * ``` + * + * The following code below demonstrates how to perform animations using **CSS animations** with Angular: + * + * ```html + * + * + *
+ *
+ *
+ * ``` + * + * Both CSS3 animations and transitions can be used together and the animate service will figure out the correct duration and delay timing. + * + * Upon DOM mutation, the event class is added first (something like `ng-enter`), then the browser prepares itself to add + * the active class (in this case `ng-enter-active`) which then triggers the animation. The animation module will automatically + * detect the CSS code to determine when the animation ends. Once the animation is over then both CSS classes will be + * removed from the DOM. If a browser does not support CSS transitions or CSS animations then the animation will start and end + * immediately resulting in a DOM element that is at its final state. This final state is when the DOM element + * has no CSS transition/animation classes applied to it. + * + * ### Structural transition animations + * + * Structural transitions (such as enter, leave and move) will always apply a `0s none` transition + * value to force the browser into rendering the styles defined in the setup (`.ng-enter`, `.ng-leave` + * or `.ng-move`) class. This means that any active transition animations operating on the element + * will be cut off to make way for the enter, leave or move animation. + * + * ### Class-based transition animations + * + * Class-based transitions refer to transition animations that are triggered when a CSS class is + * added to or removed from the element (via `$animate.addClass`, `$animate.removeClass`, + * `$animate.setClass`, or by directives such as `ngClass`, `ngModel` and `form`). + * They are different when compared to structural animations since they **do not cancel existing + * animations** nor do they **block successive transitions** from rendering on the same element. + * This distinction allows for **multiple class-based transitions** to be performed on the same element. + * + * In addition to ngAnimate supporting the default (natural) functionality of class-based transition + * animations, ngAnimate also decorates the element with starting and ending CSS classes to aid the + * developer in further styling the element throughout the transition animation. Earlier versions + * of ngAnimate may have caused natural CSS transitions to break and not render properly due to + * $animate temporarily blocking transitions using `0s none` in order to allow the setup CSS class + * (the `-add` or `-remove` class) to be applied without triggering an animation. However, as of + * **version 1.3**, this workaround has been removed with ngAnimate and all non-ngAnimate CSS + * class transitions are compatible with ngAnimate. + * + * There is, however, one special case when dealing with class-based transitions in ngAnimate. + * When rendering class-based transitions that make use of the setup and active CSS classes + * (e.g. `.fade-add` and `.fade-add-active` for when `.fade` is added) be sure to define + * the transition value **on the active CSS class** and not the setup class. + * + * ```css + * .fade-add { + * /* remember to place a 0s transition here + * to ensure that the styles are applied instantly + * even if the element already has a transition style */ + * transition:0s linear all; + * + * /* starting CSS styles */ + * opacity:1; + * } + * .fade-add.fade-add-active { + * /* this will be the length of the animation */ + * transition:1s linear all; + * opacity:0; + * } + * ``` + * + * The setup CSS class (in this case `.fade-add`) also has a transition style property, however, it + * has a duration of zero. This may not be required, however, incase the browser is unable to render + * the styling present in this CSS class instantly then it could be that the browser is attempting + * to perform an unnecessary transition. + * + * This workaround, however, does not apply to standard class-based transitions that are rendered + * when a CSS class containing a transition is applied to an element: + * + * ```css + * /* this works as expected */ + * .fade { + * transition:1s linear all; + * opacity:0; + * } + * ``` + * + * Please keep this in mind when coding the CSS markup that will be used within class-based transitions. + * Also, try not to mix the two class-based animation flavors together since the CSS code may become + * overly complex. + * + * + * ### Preventing Collisions With Third Party Libraries + * + * Some third-party frameworks place animation duration defaults across many element or className + * selectors in order to make their code small and reuseable. This can lead to issues with ngAnimate, which + * is expecting actual animations on these elements and has to wait for their completion. + * + * You can prevent this unwanted behavior by using a prefix on all your animation classes: + * + * ```css + * /* prefixed with animate- */ + * .animate-fade-add.animate-fade-add-active { + * transition:1s linear all; + * opacity:0; + * } + * ``` + * + * You then configure `$animate` to enforce this prefix: + * + * ```js + * $animateProvider.classNameFilter(/animate-/); + * ``` + *
+ * + * ### CSS Staggering Animations + * A Staggering animation is a collection of animations that are issued with a slight delay in between each successive operation resulting in a + * curtain-like effect. The ngAnimate module (versions >=1.2) supports staggering animations and the stagger effect can be + * performed by creating a **ng-EVENT-stagger** CSS class and attaching that class to the base CSS class used for + * the animation. The style property expected within the stagger class can either be a **transition-delay** or an + * **animation-delay** property (or both if your animation contains both transitions and keyframe animations). + * + * ```css + * .my-animation.ng-enter { + * /* standard transition code */ + * -webkit-transition: 1s linear all; + * transition: 1s linear all; + * opacity:0; + * } + * .my-animation.ng-enter-stagger { + * /* this will have a 100ms delay between each successive leave animation */ + * -webkit-transition-delay: 0.1s; + * transition-delay: 0.1s; + * + * /* in case the stagger doesn't work then these two values + * must be set to 0 to avoid an accidental CSS inheritance */ + * -webkit-transition-duration: 0s; + * transition-duration: 0s; + * } + * .my-animation.ng-enter.ng-enter-active { + * /* standard transition styles */ + * opacity:1; + * } + * ``` + * + * Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations + * on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this + * are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation + * will also be reset if more than 10ms has passed after the last animation has been fired. + * + * The following code will issue the **ng-leave-stagger** event on the element provided: + * + * ```js + * var kids = parent.children(); + * + * $animate.leave(kids[0]); //stagger index=0 + * $animate.leave(kids[1]); //stagger index=1 + * $animate.leave(kids[2]); //stagger index=2 + * $animate.leave(kids[3]); //stagger index=3 + * $animate.leave(kids[4]); //stagger index=4 + * + * $timeout(function() { + * //stagger has reset itself + * $animate.leave(kids[5]); //stagger index=0 + * $animate.leave(kids[6]); //stagger index=1 + * }, 100, false); + * ``` + * + * Stagger animations are currently only supported within CSS-defined animations. + * + * ## JavaScript-defined Animations + * In the event that you do not want to use CSS3 transitions or CSS3 animations or if you wish to offer animations on browsers that do not + * yet support CSS transitions/animations, then you can make use of JavaScript animations defined inside of your AngularJS module. + * + * ```js + * //!annotate="YourApp" Your AngularJS Module|Replace this or ngModule with the module that you used to define your application. + * var ngModule = angular.module('YourApp', ['ngAnimate']); + * ngModule.animation('.my-crazy-animation', function() { + * return { + * enter: function(element, done) { + * //run the animation here and call done when the animation is complete + * return function(cancelled) { + * //this (optional) function will be called when the animation + * //completes or when the animation is cancelled (the cancelled + * //flag will be set to true if cancelled). + * }; + * }, + * leave: function(element, done) { }, + * move: function(element, done) { }, + * + * //animation that can be triggered before the class is added + * beforeAddClass: function(element, className, done) { }, + * + * //animation that can be triggered after the class is added + * addClass: function(element, className, done) { }, + * + * //animation that can be triggered before the class is removed + * beforeRemoveClass: function(element, className, done) { }, + * + * //animation that can be triggered after the class is removed + * removeClass: function(element, className, done) { } + * }; + * }); + * ``` + * + * JavaScript-defined animations are created with a CSS-like class selector and a collection of events which are set to run + * a javascript callback function. When an animation is triggered, $animate will look for a matching animation which fits + * the element's CSS class attribute value and then run the matching animation event function (if found). + * In other words, if the CSS classes present on the animated element match any of the JavaScript animations then the callback function will + * be executed. It should be also noted that only simple, single class selectors are allowed (compound class selectors are not supported). + * + * Within a JavaScript animation, an object containing various event callback animation functions is expected to be returned. + * As explained above, these callbacks are triggered based on the animation event. Therefore if an enter animation is run, + * and the JavaScript animation is found, then the enter callback will handle that animation (in addition to the CSS keyframe animation + * or transition code that is defined via a stylesheet). + * + * + * ### Applying Directive-specific Styles to an Animation + * In some cases a directive or service may want to provide `$animate` with extra details that the animation will + * include into its animation. Let's say for example we wanted to render an animation that animates an element + * towards the mouse coordinates as to where the user clicked last. By collecting the X/Y coordinates of the click + * (via the event parameter) we can set the `top` and `left` styles into an object and pass that into our function + * call to `$animate.addClass`. + * + * ```js + * canvas.on('click', function(e) { + * $animate.addClass(element, 'on', { + * to: { + * left : e.client.x + 'px', + * top : e.client.y + 'px' + * } + * }): + * }); + * ``` + * + * Now when the animation runs, and a transition or keyframe animation is picked up, then the animation itself will + * also include and transition the styling of the `left` and `top` properties into its running animation. If we want + * to provide some starting animation values then we can do so by placing the starting animations styles into an object + * called `from` in the same object as the `to` animations. + * + * ```js + * canvas.on('click', function(e) { + * $animate.addClass(element, 'on', { + * from: { + * position: 'absolute', + * left: '0px', + * top: '0px' + * }, + * to: { + * left : e.client.x + 'px', + * top : e.client.y + 'px' + * } + * }): + * }); + * ``` + * + * Once the animation is complete or cancelled then the union of both the before and after styles are applied to the + * element. If `ngAnimate` is not present then the styles will be applied immediately. + * + */ + +angular.module('ngAnimate', ['ng']) + + /** + * @ngdoc provider + * @name $animateProvider + * @description + * + * The `$animateProvider` allows developers to register JavaScript animation event handlers directly inside of a module. + * When an animation is triggered, the $animate service will query the $animate service to find any animations that match + * the provided name value. + * + * Requires the {@link ngAnimate `ngAnimate`} module to be installed. + * + * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. + * + */ + .directive('ngAnimateChildren', function() { + var NG_ANIMATE_CHILDREN = '$$ngAnimateChildren'; + return function(scope, element, attrs) { + var val = attrs.ngAnimateChildren; + if (angular.isString(val) && val.length === 0) { //empty attribute + element.data(NG_ANIMATE_CHILDREN, true); + } else { + scope.$watch(val, function(value) { + element.data(NG_ANIMATE_CHILDREN, !!value); + }); + } + }; + }) + + //this private service is only used within CSS-enabled animations + //IE8 + IE9 do not support rAF natively, but that is fine since they + //also don't support transitions and keyframes which means that the code + //below will never be used by the two browsers. + .factory('$$animateReflow', ['$$rAF', '$document', function($$rAF, $document) { + var bod = $document[0].body; + return function(fn) { + //the returned function acts as the cancellation function + return $$rAF(function() { + //the line below will force the browser to perform a repaint + //so that all the animated elements within the animation frame + //will be properly updated and drawn on screen. This is + //required to perform multi-class CSS based animations with + //Firefox. DO NOT REMOVE THIS LINE. + var a = bod.offsetWidth + 1; + fn(); + }); + }; + }]) + + .config(['$provide', '$animateProvider', function($provide, $animateProvider) { + var noop = angular.noop; + var forEach = angular.forEach; + var selectors = $animateProvider.$$selectors; + var isArray = angular.isArray; + var isString = angular.isString; + var isObject = angular.isObject; + + var ELEMENT_NODE = 1; + var NG_ANIMATE_STATE = '$$ngAnimateState'; + var NG_ANIMATE_CHILDREN = '$$ngAnimateChildren'; + var NG_ANIMATE_CLASS_NAME = 'ng-animate'; + var rootAnimateState = {running: true}; + + function extractElementNode(element) { + for (var i = 0; i < element.length; i++) { + var elm = element[i]; + if (elm.nodeType == ELEMENT_NODE) { + return elm; + } + } + } + + function prepareElement(element) { + return element && angular.element(element); + } + + function stripCommentsFromElement(element) { + return angular.element(extractElementNode(element)); + } + + function isMatchingElement(elm1, elm2) { + return extractElementNode(elm1) == extractElementNode(elm2); + } + var $$jqLite; + $provide.decorator('$animate', + ['$delegate', '$$q', '$injector', '$sniffer', '$rootElement', '$$asyncCallback', '$rootScope', '$document', '$templateRequest', '$$jqLite', + function($delegate, $$q, $injector, $sniffer, $rootElement, $$asyncCallback, $rootScope, $document, $templateRequest, $$$jqLite) { + + $$jqLite = $$$jqLite; + $rootElement.data(NG_ANIMATE_STATE, rootAnimateState); + + // Wait until all directive and route-related templates are downloaded and + // compiled. The $templateRequest.totalPendingRequests variable keeps track of + // all of the remote templates being currently downloaded. If there are no + // templates currently downloading then the watcher will still fire anyway. + var deregisterWatch = $rootScope.$watch( + function() { return $templateRequest.totalPendingRequests; }, + function(val, oldVal) { + if (val !== 0) return; + deregisterWatch(); + + // Now that all templates have been downloaded, $animate will wait until + // the post digest queue is empty before enabling animations. By having two + // calls to $postDigest calls we can ensure that the flag is enabled at the + // very end of the post digest queue. Since all of the animations in $animate + // use $postDigest, it's important that the code below executes at the end. + // This basically means that the page is fully downloaded and compiled before + // any animations are triggered. + $rootScope.$$postDigest(function() { + $rootScope.$$postDigest(function() { + rootAnimateState.running = false; + }); + }); + } + ); + + var globalAnimationCounter = 0; + var classNameFilter = $animateProvider.classNameFilter(); + var isAnimatableClassName = !classNameFilter + ? function() { return true; } + : function(className) { + return classNameFilter.test(className); + }; + + function classBasedAnimationsBlocked(element, setter) { + var data = element.data(NG_ANIMATE_STATE) || {}; + if (setter) { + data.running = true; + data.structural = true; + element.data(NG_ANIMATE_STATE, data); + } + return data.disabled || (data.running && data.structural); + } + + function runAnimationPostDigest(fn) { + var cancelFn, defer = $$q.defer(); + defer.promise.$$cancelFn = function() { + cancelFn && cancelFn(); + }; + $rootScope.$$postDigest(function() { + cancelFn = fn(function() { + defer.resolve(); + }); + }); + return defer.promise; + } + + function parseAnimateOptions(options) { + // some plugin code may still be passing in the callback + // function as the last param for the $animate methods so + // it's best to only allow string or array values for now + if (isObject(options)) { + if (options.tempClasses && isString(options.tempClasses)) { + options.tempClasses = options.tempClasses.split(/\s+/); + } + return options; + } + } + + function resolveElementClasses(element, cache, runningAnimations) { + runningAnimations = runningAnimations || {}; + + var lookup = {}; + forEach(runningAnimations, function(data, selector) { + forEach(selector.split(' '), function(s) { + lookup[s]=data; + }); + }); + + var hasClasses = Object.create(null); + forEach((element.attr('class') || '').split(/\s+/), function(className) { + hasClasses[className] = true; + }); + + var toAdd = [], toRemove = []; + forEach((cache && cache.classes) || [], function(status, className) { + var hasClass = hasClasses[className]; + var matchingAnimation = lookup[className] || {}; + + // When addClass and removeClass is called then $animate will check to + // see if addClass and removeClass cancel each other out. When there are + // more calls to removeClass than addClass then the count falls below 0 + // and then the removeClass animation will be allowed. Otherwise if the + // count is above 0 then that means an addClass animation will commence. + // Once an animation is allowed then the code will also check to see if + // there exists any on-going animation that is already adding or remvoing + // the matching CSS class. + if (status === false) { + //does it have the class or will it have the class + if (hasClass || matchingAnimation.event == 'addClass') { + toRemove.push(className); + } + } else if (status === true) { + //is the class missing or will it be removed? + if (!hasClass || matchingAnimation.event == 'removeClass') { + toAdd.push(className); + } + } + }); + + return (toAdd.length + toRemove.length) > 0 && [toAdd.join(' '), toRemove.join(' ')]; + } + + function lookup(name) { + if (name) { + var matches = [], + flagMap = {}, + classes = name.substr(1).split('.'); + + //the empty string value is the default animation + //operation which performs CSS transition and keyframe + //animations sniffing. This is always included for each + //element animation procedure if the browser supports + //transitions and/or keyframe animations. The default + //animation is added to the top of the list to prevent + //any previous animations from affecting the element styling + //prior to the element being animated. + if ($sniffer.transitions || $sniffer.animations) { + matches.push($injector.get(selectors[''])); + } + + for (var i=0; i < classes.length; i++) { + var klass = classes[i], + selectorFactoryName = selectors[klass]; + if (selectorFactoryName && !flagMap[klass]) { + matches.push($injector.get(selectorFactoryName)); + flagMap[klass] = true; + } + } + return matches; + } + } + + function animationRunner(element, animationEvent, className, options) { + //transcluded directives may sometimes fire an animation using only comment nodes + //best to catch this early on to prevent any animation operations from occurring + var node = element[0]; + if (!node) { + return; + } + + if (options) { + options.to = options.to || {}; + options.from = options.from || {}; + } + + var classNameAdd; + var classNameRemove; + if (isArray(className)) { + classNameAdd = className[0]; + classNameRemove = className[1]; + if (!classNameAdd) { + className = classNameRemove; + animationEvent = 'removeClass'; + } else if (!classNameRemove) { + className = classNameAdd; + animationEvent = 'addClass'; + } else { + className = classNameAdd + ' ' + classNameRemove; + } + } + + var isSetClassOperation = animationEvent == 'setClass'; + var isClassBased = isSetClassOperation + || animationEvent == 'addClass' + || animationEvent == 'removeClass' + || animationEvent == 'animate'; + + var currentClassName = element.attr('class'); + var classes = currentClassName + ' ' + className; + if (!isAnimatableClassName(classes)) { + return; + } + + var beforeComplete = noop, + beforeCancel = [], + before = [], + afterComplete = noop, + afterCancel = [], + after = []; + + var animationLookup = (' ' + classes).replace(/\s+/g,'.'); + forEach(lookup(animationLookup), function(animationFactory) { + var created = registerAnimation(animationFactory, animationEvent); + if (!created && isSetClassOperation) { + registerAnimation(animationFactory, 'addClass'); + registerAnimation(animationFactory, 'removeClass'); + } + }); + + function registerAnimation(animationFactory, event) { + var afterFn = animationFactory[event]; + var beforeFn = animationFactory['before' + event.charAt(0).toUpperCase() + event.substr(1)]; + if (afterFn || beforeFn) { + if (event == 'leave') { + beforeFn = afterFn; + //when set as null then animation knows to skip this phase + afterFn = null; + } + after.push({ + event: event, fn: afterFn + }); + before.push({ + event: event, fn: beforeFn + }); + return true; + } + } + + function run(fns, cancellations, allCompleteFn) { + var animations = []; + forEach(fns, function(animation) { + animation.fn && animations.push(animation); + }); + + var count = 0; + function afterAnimationComplete(index) { + if (cancellations) { + (cancellations[index] || noop)(); + if (++count < animations.length) return; + cancellations = null; + } + allCompleteFn(); + } + + //The code below adds directly to the array in order to work with + //both sync and async animations. Sync animations are when the done() + //operation is called right away. DO NOT REFACTOR! + forEach(animations, function(animation, index) { + var progress = function() { + afterAnimationComplete(index); + }; + switch (animation.event) { + case 'setClass': + cancellations.push(animation.fn(element, classNameAdd, classNameRemove, progress, options)); + break; + case 'animate': + cancellations.push(animation.fn(element, className, options.from, options.to, progress)); + break; + case 'addClass': + cancellations.push(animation.fn(element, classNameAdd || className, progress, options)); + break; + case 'removeClass': + cancellations.push(animation.fn(element, classNameRemove || className, progress, options)); + break; + default: + cancellations.push(animation.fn(element, progress, options)); + break; + } + }); + + if (cancellations && cancellations.length === 0) { + allCompleteFn(); + } + } + + return { + node: node, + event: animationEvent, + className: className, + isClassBased: isClassBased, + isSetClassOperation: isSetClassOperation, + applyStyles: function() { + if (options) { + element.css(angular.extend(options.from || {}, options.to || {})); + } + }, + before: function(allCompleteFn) { + beforeComplete = allCompleteFn; + run(before, beforeCancel, function() { + beforeComplete = noop; + allCompleteFn(); + }); + }, + after: function(allCompleteFn) { + afterComplete = allCompleteFn; + run(after, afterCancel, function() { + afterComplete = noop; + allCompleteFn(); + }); + }, + cancel: function() { + if (beforeCancel) { + forEach(beforeCancel, function(cancelFn) { + (cancelFn || noop)(true); + }); + beforeComplete(true); + } + if (afterCancel) { + forEach(afterCancel, function(cancelFn) { + (cancelFn || noop)(true); + }); + afterComplete(true); + } + } + }; + } + + /** + * @ngdoc service + * @name $animate + * @kind object + * + * @description + * The `$animate` service provides animation detection support while performing DOM operations (enter, leave and move) as well as during addClass and removeClass operations. + * When any of these operations are run, the $animate service + * will examine any JavaScript-defined animations (which are defined by using the $animateProvider provider object) + * as well as any CSS-defined animations against the CSS classes present on the element once the DOM operation is run. + * + * The `$animate` service is used behind the scenes with pre-existing directives and animation with these directives + * will work out of the box without any extra configuration. + * + * Requires the {@link ngAnimate `ngAnimate`} module to be installed. + * + * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. + * ## Callback Promises + * With AngularJS 1.3, each of the animation methods, on the `$animate` service, return a promise when called. The + * promise itself is then resolved once the animation has completed itself, has been cancelled or has been + * skipped due to animations being disabled. (Note that even if the animation is cancelled it will still + * call the resolve function of the animation.) + * + * ```js + * $animate.enter(element, container).then(function() { + * //...this is called once the animation is complete... + * }); + * ``` + * + * Also note that, due to the nature of the callback promise, if any Angular-specific code (like changing the scope, + * location of the page, etc...) is executed within the callback promise then be sure to wrap the code using + * `$scope.$apply(...)`; + * + * ```js + * $animate.leave(element).then(function() { + * $scope.$apply(function() { + * $location.path('/new-page'); + * }); + * }); + * ``` + * + * An animation can also be cancelled by calling the `$animate.cancel(promise)` method with the provided + * promise that was returned when the animation was started. + * + * ```js + * var promise = $animate.addClass(element, 'super-long-animation'); + * promise.then(function() { + * //this will still be called even if cancelled + * }); + * + * element.on('click', function() { + * //tooo lazy to wait for the animation to end + * $animate.cancel(promise); + * }); + * ``` + * + * (Keep in mind that the promise cancellation is unique to `$animate` since promises in + * general cannot be cancelled.) + * + */ + return { + /** + * @ngdoc method + * @name $animate#animate + * @kind function + * + * @description + * Performs an inline animation on the element which applies the provided `to` and `from` CSS styles to the element. + * If any detected CSS transition, keyframe or JavaScript matches the provided `className` value then the animation + * will take on the provided styles. For example, if a transition animation is set for the given className then the + * provided `from` and `to` styles will be applied alongside the given transition. If a JavaScript animation is + * detected then the provided styles will be given in as function paramters. + * + * ```js + * ngModule.animation('.my-inline-animation', function() { + * return { + * animate : function(element, className, from, to, done) { + * //styles + * } + * } + * }); + * ``` + * + * Below is a breakdown of each step that occurs during the `animate` animation: + * + * | Animation Step | What the element class attribute looks like | + * |-----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------| + * | 1. `$animate.animate(...)` is called | `class="my-animation"` | + * | 2. `$animate` waits for the next digest to start the animation | `class="my-animation ng-animate"` | + * | 3. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | + * | 4. the `className` class value is added to the element | `class="my-animation ng-animate className"` | + * | 5. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate className"` | + * | 6. `$animate` blocks all CSS transitions on the element to ensure the `.className` class styling is applied right away| `class="my-animation ng-animate className"` | + * | 7. `$animate` applies the provided collection of `from` CSS styles to the element | `class="my-animation ng-animate className"` | + * | 8. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate className"` | + * | 9. `$animate` removes the CSS transition block placed on the element | `class="my-animation ng-animate className"` | + * | 10. the `className-active` class is added (this triggers the CSS transition/animation) | `class="my-animation ng-animate className className-active"` | + * | 11. `$animate` applies the collection of `to` CSS styles to the element which are then handled by the transition | `class="my-animation ng-animate className className-active"` | + * | 12. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate className className-active"` | + * | 13. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | + * | 14. The returned promise is resolved. | `class="my-animation"` | + * + * @param {DOMElement} element the element that will be the focus of the enter animation + * @param {object} from a collection of CSS styles that will be applied to the element at the start of the animation + * @param {object} to a collection of CSS styles that the element will animate towards + * @param {string=} className an optional CSS class that will be added to the element for the duration of the animation (the default class is `ng-inline-animate`) + * @param {object=} options an optional collection of options that will be picked up by the CSS transition/animation + * @return {Promise} the animation callback promise + */ + animate: function(element, from, to, className, options) { + className = className || 'ng-inline-animate'; + options = parseAnimateOptions(options) || {}; + options.from = to ? from : null; + options.to = to ? to : from; + + return runAnimationPostDigest(function(done) { + return performAnimation('animate', className, stripCommentsFromElement(element), null, null, noop, options, done); + }); + }, + + /** + * @ngdoc method + * @name $animate#enter + * @kind function + * + * @description + * Appends the element to the parentElement element that resides in the document and then runs the enter animation. Once + * the animation is started, the following CSS classes will be present on the element for the duration of the animation: + * + * Below is a breakdown of each step that occurs during enter animation: + * + * | Animation Step | What the element class attribute looks like | + * |-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------| + * | 1. `$animate.enter(...)` is called | `class="my-animation"` | + * | 2. element is inserted into the `parentElement` element or beside the `afterElement` element | `class="my-animation"` | + * | 3. `$animate` waits for the next digest to start the animation | `class="my-animation ng-animate"` | + * | 4. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | + * | 5. the `.ng-enter` class is added to the element | `class="my-animation ng-animate ng-enter"` | + * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate ng-enter"` | + * | 7. `$animate` blocks all CSS transitions on the element to ensure the `.ng-enter` class styling is applied right away | `class="my-animation ng-animate ng-enter"` | + * | 8. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate ng-enter"` | + * | 9. `$animate` removes the CSS transition block placed on the element | `class="my-animation ng-animate ng-enter"` | + * | 10. the `.ng-enter-active` class is added (this triggers the CSS transition/animation) | `class="my-animation ng-animate ng-enter ng-enter-active"` | + * | 11. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate ng-enter ng-enter-active"` | + * | 12. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | + * | 13. The returned promise is resolved. | `class="my-animation"` | + * + * @param {DOMElement} element the element that will be the focus of the enter animation + * @param {DOMElement} parentElement the parent element of the element that will be the focus of the enter animation + * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the enter animation + * @param {object=} options an optional collection of options that will be picked up by the CSS transition/animation + * @return {Promise} the animation callback promise + */ + enter: function(element, parentElement, afterElement, options) { + options = parseAnimateOptions(options); + element = angular.element(element); + parentElement = prepareElement(parentElement); + afterElement = prepareElement(afterElement); + + classBasedAnimationsBlocked(element, true); + $delegate.enter(element, parentElement, afterElement); + return runAnimationPostDigest(function(done) { + return performAnimation('enter', 'ng-enter', stripCommentsFromElement(element), parentElement, afterElement, noop, options, done); + }); + }, + + /** + * @ngdoc method + * @name $animate#leave + * @kind function + * + * @description + * Runs the leave animation operation and, upon completion, removes the element from the DOM. Once + * the animation is started, the following CSS classes will be added for the duration of the animation: + * + * Below is a breakdown of each step that occurs during leave animation: + * + * | Animation Step | What the element class attribute looks like | + * |-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------| + * | 1. `$animate.leave(...)` is called | `class="my-animation"` | + * | 2. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | + * | 3. `$animate` waits for the next digest to start the animation | `class="my-animation ng-animate"` | + * | 4. the `.ng-leave` class is added to the element | `class="my-animation ng-animate ng-leave"` | + * | 5. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate ng-leave"` | + * | 6. `$animate` blocks all CSS transitions on the element to ensure the `.ng-leave` class styling is applied right away | `class="my-animation ng-animate ng-leave"` | + * | 7. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate ng-leave"` | + * | 8. `$animate` removes the CSS transition block placed on the element | `class="my-animation ng-animate ng-leave"` | + * | 9. the `.ng-leave-active` class is added (this triggers the CSS transition/animation) | `class="my-animation ng-animate ng-leave ng-leave-active"` | + * | 10. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate ng-leave ng-leave-active"` | + * | 11. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | + * | 12. The element is removed from the DOM | ... | + * | 13. The returned promise is resolved. | ... | + * + * @param {DOMElement} element the element that will be the focus of the leave animation + * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation + * @return {Promise} the animation callback promise + */ + leave: function(element, options) { + options = parseAnimateOptions(options); + element = angular.element(element); + + cancelChildAnimations(element); + classBasedAnimationsBlocked(element, true); + return runAnimationPostDigest(function(done) { + return performAnimation('leave', 'ng-leave', stripCommentsFromElement(element), null, null, function() { + $delegate.leave(element); + }, options, done); + }); + }, + + /** + * @ngdoc method + * @name $animate#move + * @kind function + * + * @description + * Fires the move DOM operation. Just before the animation starts, the animate service will either append it into the parentElement container or + * add the element directly after the afterElement element if present. Then the move animation will be run. Once + * the animation is started, the following CSS classes will be added for the duration of the animation: + * + * Below is a breakdown of each step that occurs during move animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------| + * | 1. `$animate.move(...)` is called | `class="my-animation"` | + * | 2. element is moved into the parentElement element or beside the afterElement element | `class="my-animation"` | + * | 3. `$animate` waits for the next digest to start the animation | `class="my-animation ng-animate"` | + * | 4. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | + * | 5. the `.ng-move` class is added to the element | `class="my-animation ng-animate ng-move"` | + * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate ng-move"` | + * | 7. `$animate` blocks all CSS transitions on the element to ensure the `.ng-move` class styling is applied right away | `class="my-animation ng-animate ng-move"` | + * | 8. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate ng-move"` | + * | 9. `$animate` removes the CSS transition block placed on the element | `class="my-animation ng-animate ng-move"` | + * | 10. the `.ng-move-active` class is added (this triggers the CSS transition/animation) | `class="my-animation ng-animate ng-move ng-move-active"` | + * | 11. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate ng-move ng-move-active"` | + * | 12. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | + * | 13. The returned promise is resolved. | `class="my-animation"` | + * + * @param {DOMElement} element the element that will be the focus of the move animation + * @param {DOMElement} parentElement the parentElement element of the element that will be the focus of the move animation + * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the move animation + * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation + * @return {Promise} the animation callback promise + */ + move: function(element, parentElement, afterElement, options) { + options = parseAnimateOptions(options); + element = angular.element(element); + parentElement = prepareElement(parentElement); + afterElement = prepareElement(afterElement); + + cancelChildAnimations(element); + classBasedAnimationsBlocked(element, true); + $delegate.move(element, parentElement, afterElement); + return runAnimationPostDigest(function(done) { + return performAnimation('move', 'ng-move', stripCommentsFromElement(element), parentElement, afterElement, noop, options, done); + }); + }, + + /** + * @ngdoc method + * @name $animate#addClass + * + * @description + * Triggers a custom animation event based off the className variable and then attaches the className value to the element as a CSS class. + * Unlike the other animation methods, the animate service will suffix the className value with {@type -add} in order to provide + * the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if no CSS transitions + * or keyframes are defined on the -add-active or base CSS class). + * + * Below is a breakdown of each step that occurs during addClass animation: + * + * | Animation Step | What the element class attribute looks like | + * |--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------| + * | 1. `$animate.addClass(element, 'super')` is called | `class="my-animation"` | + * | 2. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | + * | 3. the `.super-add` class is added to the element | `class="my-animation ng-animate super-add"` | + * | 4. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate super-add"` | + * | 5. the `.super` and `.super-add-active` classes are added (this triggers the CSS transition/animation) | `class="my-animation ng-animate super super-add super-add-active"` | + * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate super super-add super-add-active"` | + * | 7. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate super super-add super-add-active"` | + * | 8. The animation ends and all generated CSS classes are removed from the element | `class="my-animation super"` | + * | 9. The super class is kept on the element | `class="my-animation super"` | + * | 10. The returned promise is resolved. | `class="my-animation super"` | + * + * @param {DOMElement} element the element that will be animated + * @param {string} className the CSS class that will be added to the element and then animated + * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation + * @return {Promise} the animation callback promise + */ + addClass: function(element, className, options) { + return this.setClass(element, className, [], options); + }, + + /** + * @ngdoc method + * @name $animate#removeClass + * + * @description + * Triggers a custom animation event based off the className variable and then removes the CSS class provided by the className value + * from the element. Unlike the other animation methods, the animate service will suffix the className value with {@type -remove} in + * order to provide the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if + * no CSS transitions or keyframes are defined on the -remove or base CSS classes). + * + * Below is a breakdown of each step that occurs during removeClass animation: + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------| + * | 1. `$animate.removeClass(element, 'super')` is called | `class="my-animation super"` | + * | 2. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation super ng-animate"` | + * | 3. the `.super-remove` class is added to the element | `class="my-animation super ng-animate super-remove"` | + * | 4. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation super ng-animate super-remove"` | + * | 5. the `.super-remove-active` classes are added and `.super` is removed (this triggers the CSS transition/animation) | `class="my-animation ng-animate super-remove super-remove-active"` | + * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate super-remove super-remove-active"` | + * | 7. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate super-remove super-remove-active"` | + * | 8. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | + * | 9. The returned promise is resolved. | `class="my-animation"` | + * + * + * @param {DOMElement} element the element that will be animated + * @param {string} className the CSS class that will be animated and then removed from the element + * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation + * @return {Promise} the animation callback promise + */ + removeClass: function(element, className, options) { + return this.setClass(element, [], className, options); + }, + + /** + * + * @ngdoc method + * @name $animate#setClass + * + * @description Adds and/or removes the given CSS classes to and from the element. + * Once complete, the `done()` callback will be fired (if provided). + * + * | Animation Step | What the element class attribute looks like | + * |----------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------| + * | 1. `$animate.setClass(element, 'on', 'off')` is called | `class="my-animation off"` | + * | 2. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate off"` | + * | 3. the `.on-add` and `.off-remove` classes are added to the element | `class="my-animation ng-animate on-add off-remove off"` | + * | 4. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate on-add off-remove off"` | + * | 5. the `.on`, `.on-add-active` and `.off-remove-active` classes are added and `.off` is removed (this triggers the CSS transition/animation) | `class="my-animation ng-animate on on-add on-add-active off-remove off-remove-active"` | + * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate on on-add on-add-active off-remove off-remove-active"` | + * | 7. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate on on-add on-add-active off-remove off-remove-active"` | + * | 8. The animation ends and all generated CSS classes are removed from the element | `class="my-animation on"` | + * | 9. The returned promise is resolved. | `class="my-animation on"` | + * + * @param {DOMElement} element the element which will have its CSS classes changed + * removed from it + * @param {string} add the CSS classes which will be added to the element + * @param {string} remove the CSS class which will be removed from the element + * CSS classes have been set on the element + * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation + * @return {Promise} the animation callback promise + */ + setClass: function(element, add, remove, options) { + options = parseAnimateOptions(options); + + var STORAGE_KEY = '$$animateClasses'; + element = angular.element(element); + element = stripCommentsFromElement(element); + + if (classBasedAnimationsBlocked(element)) { + return $delegate.$$setClassImmediately(element, add, remove, options); + } + + // we're using a combined array for both the add and remove + // operations since the ORDER OF addClass and removeClass matters + var classes, cache = element.data(STORAGE_KEY); + var hasCache = !!cache; + if (!cache) { + cache = {}; + cache.classes = {}; + } + classes = cache.classes; + + add = isArray(add) ? add : add.split(' '); + forEach(add, function(c) { + if (c && c.length) { + classes[c] = true; + } + }); + + remove = isArray(remove) ? remove : remove.split(' '); + forEach(remove, function(c) { + if (c && c.length) { + classes[c] = false; + } + }); + + if (hasCache) { + if (options && cache.options) { + cache.options = angular.extend(cache.options || {}, options); + } + + //the digest cycle will combine all the animations into one function + return cache.promise; + } else { + element.data(STORAGE_KEY, cache = { + classes: classes, + options: options + }); + } + + return cache.promise = runAnimationPostDigest(function(done) { + var parentElement = element.parent(); + var elementNode = extractElementNode(element); + var parentNode = elementNode.parentNode; + // TODO(matsko): move this code into the animationsDisabled() function once #8092 is fixed + if (!parentNode || parentNode['$$NG_REMOVED'] || elementNode['$$NG_REMOVED']) { + done(); + return; + } + + var cache = element.data(STORAGE_KEY); + element.removeData(STORAGE_KEY); + + var state = element.data(NG_ANIMATE_STATE) || {}; + var classes = resolveElementClasses(element, cache, state.active); + return !classes + ? done() + : performAnimation('setClass', classes, element, parentElement, null, function() { + if (classes[0]) $delegate.$$addClassImmediately(element, classes[0]); + if (classes[1]) $delegate.$$removeClassImmediately(element, classes[1]); + }, cache.options, done); + }); + }, + + /** + * @ngdoc method + * @name $animate#cancel + * @kind function + * + * @param {Promise} animationPromise The animation promise that is returned when an animation is started. + * + * @description + * Cancels the provided animation. + */ + cancel: function(promise) { + promise.$$cancelFn(); + }, + + /** + * @ngdoc method + * @name $animate#enabled + * @kind function + * + * @param {boolean=} value If provided then set the animation on or off. + * @param {DOMElement=} element If provided then the element will be used to represent the enable/disable operation + * @return {boolean} Current animation state. + * + * @description + * Globally enables/disables animations. + * + */ + enabled: function(value, element) { + switch (arguments.length) { + case 2: + if (value) { + cleanup(element); + } else { + var data = element.data(NG_ANIMATE_STATE) || {}; + data.disabled = true; + element.data(NG_ANIMATE_STATE, data); + } + break; + + case 1: + rootAnimateState.disabled = !value; + break; + + default: + value = !rootAnimateState.disabled; + break; + } + return !!value; + } + }; + + /* + all animations call this shared animation triggering function internally. + The animationEvent variable refers to the JavaScript animation event that will be triggered + and the className value is the name of the animation that will be applied within the + CSS code. Element, `parentElement` and `afterElement` are provided DOM elements for the animation + and the onComplete callback will be fired once the animation is fully complete. + */ + function performAnimation(animationEvent, className, element, parentElement, afterElement, domOperation, options, doneCallback) { + var noopCancel = noop; + var runner = animationRunner(element, animationEvent, className, options); + if (!runner) { + fireDOMOperation(); + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + closeAnimation(); + return noopCancel; + } + + animationEvent = runner.event; + className = runner.className; + var elementEvents = angular.element._data(runner.node); + elementEvents = elementEvents && elementEvents.events; + + if (!parentElement) { + parentElement = afterElement ? afterElement.parent() : element.parent(); + } + + //skip the animation if animations are disabled, a parent is already being animated, + //the element is not currently attached to the document body or then completely close + //the animation if any matching animations are not found at all. + //NOTE: IE8 + IE9 should close properly (run closeAnimation()) in case an animation was found. + if (animationsDisabled(element, parentElement)) { + fireDOMOperation(); + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + closeAnimation(); + return noopCancel; + } + + var ngAnimateState = element.data(NG_ANIMATE_STATE) || {}; + var runningAnimations = ngAnimateState.active || {}; + var totalActiveAnimations = ngAnimateState.totalActive || 0; + var lastAnimation = ngAnimateState.last; + var skipAnimation = false; + + if (totalActiveAnimations > 0) { + var animationsToCancel = []; + if (!runner.isClassBased) { + if (animationEvent == 'leave' && runningAnimations['ng-leave']) { + skipAnimation = true; + } else { + //cancel all animations when a structural animation takes place + for (var klass in runningAnimations) { + animationsToCancel.push(runningAnimations[klass]); + } + ngAnimateState = {}; + cleanup(element, true); + } + } else if (lastAnimation.event == 'setClass') { + animationsToCancel.push(lastAnimation); + cleanup(element, className); + } + else if (runningAnimations[className]) { + var current = runningAnimations[className]; + if (current.event == animationEvent) { + skipAnimation = true; + } else { + animationsToCancel.push(current); + cleanup(element, className); + } + } + + if (animationsToCancel.length > 0) { + forEach(animationsToCancel, function(operation) { + operation.cancel(); + }); + } + } + + if (runner.isClassBased + && !runner.isSetClassOperation + && animationEvent != 'animate' + && !skipAnimation) { + skipAnimation = (animationEvent == 'addClass') == element.hasClass(className); //opposite of XOR + } + + if (skipAnimation) { + fireDOMOperation(); + fireBeforeCallbackAsync(); + fireAfterCallbackAsync(); + fireDoneCallbackAsync(); + return noopCancel; + } + + runningAnimations = ngAnimateState.active || {}; + totalActiveAnimations = ngAnimateState.totalActive || 0; + + if (animationEvent == 'leave') { + //there's no need to ever remove the listener since the element + //will be removed (destroyed) after the leave animation ends or + //is cancelled midway + element.one('$destroy', function(e) { + var element = angular.element(this); + var state = element.data(NG_ANIMATE_STATE); + if (state) { + var activeLeaveAnimation = state.active['ng-leave']; + if (activeLeaveAnimation) { + activeLeaveAnimation.cancel(); + cleanup(element, 'ng-leave'); + } + } + }); + } + + //the ng-animate class does nothing, but it's here to allow for + //parent animations to find and cancel child animations when needed + $$jqLite.addClass(element, NG_ANIMATE_CLASS_NAME); + if (options && options.tempClasses) { + forEach(options.tempClasses, function(className) { + $$jqLite.addClass(element, className); + }); + } + + var localAnimationCount = globalAnimationCounter++; + totalActiveAnimations++; + runningAnimations[className] = runner; + + element.data(NG_ANIMATE_STATE, { + last: runner, + active: runningAnimations, + index: localAnimationCount, + totalActive: totalActiveAnimations + }); + + //first we run the before animations and when all of those are complete + //then we perform the DOM operation and run the next set of animations + fireBeforeCallbackAsync(); + runner.before(function(cancelled) { + var data = element.data(NG_ANIMATE_STATE); + cancelled = cancelled || + !data || !data.active[className] || + (runner.isClassBased && data.active[className].event != animationEvent); + + fireDOMOperation(); + if (cancelled === true) { + closeAnimation(); + } else { + fireAfterCallbackAsync(); + runner.after(closeAnimation); + } + }); + + return runner.cancel; + + function fireDOMCallback(animationPhase) { + var eventName = '$animate:' + animationPhase; + if (elementEvents && elementEvents[eventName] && elementEvents[eventName].length > 0) { + $$asyncCallback(function() { + element.triggerHandler(eventName, { + event: animationEvent, + className: className + }); + }); + } + } + + function fireBeforeCallbackAsync() { + fireDOMCallback('before'); + } + + function fireAfterCallbackAsync() { + fireDOMCallback('after'); + } + + function fireDoneCallbackAsync() { + fireDOMCallback('close'); + doneCallback(); + } + + //it is less complicated to use a flag than managing and canceling + //timeouts containing multiple callbacks. + function fireDOMOperation() { + if (!fireDOMOperation.hasBeenRun) { + fireDOMOperation.hasBeenRun = true; + domOperation(); + } + } + + function closeAnimation() { + if (!closeAnimation.hasBeenRun) { + if (runner) { //the runner doesn't exist if it fails to instantiate + runner.applyStyles(); + } + + closeAnimation.hasBeenRun = true; + if (options && options.tempClasses) { + forEach(options.tempClasses, function(className) { + $$jqLite.removeClass(element, className); + }); + } + + var data = element.data(NG_ANIMATE_STATE); + if (data) { + + /* only structural animations wait for reflow before removing an + animation, but class-based animations don't. An example of this + failing would be when a parent HTML tag has a ng-class attribute + causing ALL directives below to skip animations during the digest */ + if (runner && runner.isClassBased) { + cleanup(element, className); + } else { + $$asyncCallback(function() { + var data = element.data(NG_ANIMATE_STATE) || {}; + if (localAnimationCount == data.index) { + cleanup(element, className, animationEvent); + } + }); + element.data(NG_ANIMATE_STATE, data); + } + } + fireDoneCallbackAsync(); + } + } + } + + function cancelChildAnimations(element) { + var node = extractElementNode(element); + if (node) { + var nodes = angular.isFunction(node.getElementsByClassName) ? + node.getElementsByClassName(NG_ANIMATE_CLASS_NAME) : + node.querySelectorAll('.' + NG_ANIMATE_CLASS_NAME); + forEach(nodes, function(element) { + element = angular.element(element); + var data = element.data(NG_ANIMATE_STATE); + if (data && data.active) { + forEach(data.active, function(runner) { + runner.cancel(); + }); + } + }); + } + } + + function cleanup(element, className) { + if (isMatchingElement(element, $rootElement)) { + if (!rootAnimateState.disabled) { + rootAnimateState.running = false; + rootAnimateState.structural = false; + } + } else if (className) { + var data = element.data(NG_ANIMATE_STATE) || {}; + + var removeAnimations = className === true; + if (!removeAnimations && data.active && data.active[className]) { + data.totalActive--; + delete data.active[className]; + } + + if (removeAnimations || !data.totalActive) { + $$jqLite.removeClass(element, NG_ANIMATE_CLASS_NAME); + element.removeData(NG_ANIMATE_STATE); + } + } + } + + function animationsDisabled(element, parentElement) { + if (rootAnimateState.disabled) { + return true; + } + + if (isMatchingElement(element, $rootElement)) { + return rootAnimateState.running; + } + + var allowChildAnimations, parentRunningAnimation, hasParent; + do { + //the element did not reach the root element which means that it + //is not apart of the DOM. Therefore there is no reason to do + //any animations on it + if (parentElement.length === 0) break; + + var isRoot = isMatchingElement(parentElement, $rootElement); + var state = isRoot ? rootAnimateState : (parentElement.data(NG_ANIMATE_STATE) || {}); + if (state.disabled) { + return true; + } + + //no matter what, for an animation to work it must reach the root element + //this implies that the element is attached to the DOM when the animation is run + if (isRoot) { + hasParent = true; + } + + //once a flag is found that is strictly false then everything before + //it will be discarded and all child animations will be restricted + if (allowChildAnimations !== false) { + var animateChildrenFlag = parentElement.data(NG_ANIMATE_CHILDREN); + if (angular.isDefined(animateChildrenFlag)) { + allowChildAnimations = animateChildrenFlag; + } + } + + parentRunningAnimation = parentRunningAnimation || + state.running || + (state.last && !state.last.isClassBased); + } + while (parentElement = parentElement.parent()); + + return !hasParent || (!allowChildAnimations && parentRunningAnimation); + } + }]); + + $animateProvider.register('', ['$window', '$sniffer', '$timeout', '$$animateReflow', + function($window, $sniffer, $timeout, $$animateReflow) { + // Detect proper transitionend/animationend event names. + var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMATIONEND_EVENT; + + // If unprefixed events are not supported but webkit-prefixed are, use the latter. + // Otherwise, just use W3C names, browsers not supporting them at all will just ignore them. + // Note: Chrome implements `window.onwebkitanimationend` and doesn't implement `window.onanimationend` + // but at the same time dispatches the `animationend` event and not `webkitAnimationEnd`. + // Register both events in case `window.onanimationend` is not supported because of that, + // do the same for `transitionend` as Safari is likely to exhibit similar behavior. + // Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit + // therefore there is no reason to test anymore for other vendor prefixes: http://caniuse.com/#search=transition + if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) { + CSS_PREFIX = '-webkit-'; + TRANSITION_PROP = 'WebkitTransition'; + TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend'; + } else { + TRANSITION_PROP = 'transition'; + TRANSITIONEND_EVENT = 'transitionend'; + } + + if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) { + CSS_PREFIX = '-webkit-'; + ANIMATION_PROP = 'WebkitAnimation'; + ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend'; + } else { + ANIMATION_PROP = 'animation'; + ANIMATIONEND_EVENT = 'animationend'; + } + + var DURATION_KEY = 'Duration'; + var PROPERTY_KEY = 'Property'; + var DELAY_KEY = 'Delay'; + var ANIMATION_ITERATION_COUNT_KEY = 'IterationCount'; + var ANIMATION_PLAYSTATE_KEY = 'PlayState'; + var NG_ANIMATE_PARENT_KEY = '$$ngAnimateKey'; + var NG_ANIMATE_CSS_DATA_KEY = '$$ngAnimateCSS3Data'; + var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3; + var CLOSING_TIME_BUFFER = 1.5; + var ONE_SECOND = 1000; + + var lookupCache = {}; + var parentCounter = 0; + var animationReflowQueue = []; + var cancelAnimationReflow; + function clearCacheAfterReflow() { + if (!cancelAnimationReflow) { + cancelAnimationReflow = $$animateReflow(function() { + animationReflowQueue = []; + cancelAnimationReflow = null; + lookupCache = {}; + }); + } + } + + function afterReflow(element, callback) { + if (cancelAnimationReflow) { + cancelAnimationReflow(); + } + animationReflowQueue.push(callback); + cancelAnimationReflow = $$animateReflow(function() { + forEach(animationReflowQueue, function(fn) { + fn(); + }); + + animationReflowQueue = []; + cancelAnimationReflow = null; + lookupCache = {}; + }); + } + + var closingTimer = null; + var closingTimestamp = 0; + var animationElementQueue = []; + function animationCloseHandler(element, totalTime) { + var node = extractElementNode(element); + element = angular.element(node); + + //this item will be garbage collected by the closing + //animation timeout + animationElementQueue.push(element); + + //but it may not need to cancel out the existing timeout + //if the timestamp is less than the previous one + var futureTimestamp = Date.now() + totalTime; + if (futureTimestamp <= closingTimestamp) { + return; + } + + $timeout.cancel(closingTimer); + + closingTimestamp = futureTimestamp; + closingTimer = $timeout(function() { + closeAllAnimations(animationElementQueue); + animationElementQueue = []; + }, totalTime, false); + } + + function closeAllAnimations(elements) { + forEach(elements, function(element) { + var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); + if (elementData) { + forEach(elementData.closeAnimationFns, function(fn) { + fn(); + }); + } + }); + } + + function getElementAnimationDetails(element, cacheKey) { + var data = cacheKey ? lookupCache[cacheKey] : null; + if (!data) { + var transitionDuration = 0; + var transitionDelay = 0; + var animationDuration = 0; + var animationDelay = 0; + + //we want all the styles defined before and after + forEach(element, function(element) { + if (element.nodeType == ELEMENT_NODE) { + var elementStyles = $window.getComputedStyle(element) || {}; + + var transitionDurationStyle = elementStyles[TRANSITION_PROP + DURATION_KEY]; + transitionDuration = Math.max(parseMaxTime(transitionDurationStyle), transitionDuration); + + var transitionDelayStyle = elementStyles[TRANSITION_PROP + DELAY_KEY]; + transitionDelay = Math.max(parseMaxTime(transitionDelayStyle), transitionDelay); + + var animationDelayStyle = elementStyles[ANIMATION_PROP + DELAY_KEY]; + animationDelay = Math.max(parseMaxTime(elementStyles[ANIMATION_PROP + DELAY_KEY]), animationDelay); + + var aDuration = parseMaxTime(elementStyles[ANIMATION_PROP + DURATION_KEY]); + + if (aDuration > 0) { + aDuration *= parseInt(elementStyles[ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY], 10) || 1; + } + animationDuration = Math.max(aDuration, animationDuration); + } + }); + data = { + total: 0, + transitionDelay: transitionDelay, + transitionDuration: transitionDuration, + animationDelay: animationDelay, + animationDuration: animationDuration + }; + if (cacheKey) { + lookupCache[cacheKey] = data; + } + } + return data; + } + + function parseMaxTime(str) { + var maxValue = 0; + var values = isString(str) ? + str.split(/\s*,\s*/) : + []; + forEach(values, function(value) { + maxValue = Math.max(parseFloat(value) || 0, maxValue); + }); + return maxValue; + } + + function getCacheKey(element) { + var parentElement = element.parent(); + var parentID = parentElement.data(NG_ANIMATE_PARENT_KEY); + if (!parentID) { + parentElement.data(NG_ANIMATE_PARENT_KEY, ++parentCounter); + parentID = parentCounter; + } + return parentID + '-' + extractElementNode(element).getAttribute('class'); + } + + function animateSetup(animationEvent, element, className, styles) { + var structural = ['ng-enter','ng-leave','ng-move'].indexOf(className) >= 0; + + var cacheKey = getCacheKey(element); + var eventCacheKey = cacheKey + ' ' + className; + var itemIndex = lookupCache[eventCacheKey] ? ++lookupCache[eventCacheKey].total : 0; + + var stagger = {}; + if (itemIndex > 0) { + var staggerClassName = className + '-stagger'; + var staggerCacheKey = cacheKey + ' ' + staggerClassName; + var applyClasses = !lookupCache[staggerCacheKey]; + + applyClasses && $$jqLite.addClass(element, staggerClassName); + + stagger = getElementAnimationDetails(element, staggerCacheKey); + + applyClasses && $$jqLite.removeClass(element, staggerClassName); + } + + $$jqLite.addClass(element, className); + + var formerData = element.data(NG_ANIMATE_CSS_DATA_KEY) || {}; + var timings = getElementAnimationDetails(element, eventCacheKey); + var transitionDuration = timings.transitionDuration; + var animationDuration = timings.animationDuration; + + if (structural && transitionDuration === 0 && animationDuration === 0) { + $$jqLite.removeClass(element, className); + return false; + } + + var blockTransition = styles || (structural && transitionDuration > 0); + var blockAnimation = animationDuration > 0 && + stagger.animationDelay > 0 && + stagger.animationDuration === 0; + + var closeAnimationFns = formerData.closeAnimationFns || []; + element.data(NG_ANIMATE_CSS_DATA_KEY, { + stagger: stagger, + cacheKey: eventCacheKey, + running: formerData.running || 0, + itemIndex: itemIndex, + blockTransition: blockTransition, + closeAnimationFns: closeAnimationFns + }); + + var node = extractElementNode(element); + + if (blockTransition) { + blockTransitions(node, true); + if (styles) { + element.css(styles); + } + } + + if (blockAnimation) { + blockAnimations(node, true); + } + + return true; + } + + function animateRun(animationEvent, element, className, activeAnimationComplete, styles) { + var node = extractElementNode(element); + var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); + if (node.getAttribute('class').indexOf(className) == -1 || !elementData) { + activeAnimationComplete(); + return; + } + + var activeClassName = ''; + var pendingClassName = ''; + forEach(className.split(' '), function(klass, i) { + var prefix = (i > 0 ? ' ' : '') + klass; + activeClassName += prefix + '-active'; + pendingClassName += prefix + '-pending'; + }); + + var style = ''; + var appliedStyles = []; + var itemIndex = elementData.itemIndex; + var stagger = elementData.stagger; + var staggerTime = 0; + if (itemIndex > 0) { + var transitionStaggerDelay = 0; + if (stagger.transitionDelay > 0 && stagger.transitionDuration === 0) { + transitionStaggerDelay = stagger.transitionDelay * itemIndex; + } + + var animationStaggerDelay = 0; + if (stagger.animationDelay > 0 && stagger.animationDuration === 0) { + animationStaggerDelay = stagger.animationDelay * itemIndex; + appliedStyles.push(CSS_PREFIX + 'animation-play-state'); + } + + staggerTime = Math.round(Math.max(transitionStaggerDelay, animationStaggerDelay) * 100) / 100; + } + + if (!staggerTime) { + $$jqLite.addClass(element, activeClassName); + if (elementData.blockTransition) { + blockTransitions(node, false); + } + } + + var eventCacheKey = elementData.cacheKey + ' ' + activeClassName; + var timings = getElementAnimationDetails(element, eventCacheKey); + var maxDuration = Math.max(timings.transitionDuration, timings.animationDuration); + if (maxDuration === 0) { + $$jqLite.removeClass(element, activeClassName); + animateClose(element, className); + activeAnimationComplete(); + return; + } + + if (!staggerTime && styles && Object.keys(styles).length > 0) { + if (!timings.transitionDuration) { + element.css('transition', timings.animationDuration + 's linear all'); + appliedStyles.push('transition'); + } + element.css(styles); + } + + var maxDelay = Math.max(timings.transitionDelay, timings.animationDelay); + var maxDelayTime = maxDelay * ONE_SECOND; + + if (appliedStyles.length > 0) { + //the element being animated may sometimes contain comment nodes in + //the jqLite object, so we're safe to use a single variable to house + //the styles since there is always only one element being animated + var oldStyle = node.getAttribute('style') || ''; + if (oldStyle.charAt(oldStyle.length - 1) !== ';') { + oldStyle += ';'; + } + node.setAttribute('style', oldStyle + ' ' + style); + } + + var startTime = Date.now(); + var css3AnimationEvents = ANIMATIONEND_EVENT + ' ' + TRANSITIONEND_EVENT; + var animationTime = (maxDelay + maxDuration) * CLOSING_TIME_BUFFER; + var totalTime = (staggerTime + animationTime) * ONE_SECOND; + + var staggerTimeout; + if (staggerTime > 0) { + $$jqLite.addClass(element, pendingClassName); + staggerTimeout = $timeout(function() { + staggerTimeout = null; + + if (timings.transitionDuration > 0) { + blockTransitions(node, false); + } + if (timings.animationDuration > 0) { + blockAnimations(node, false); + } + + $$jqLite.addClass(element, activeClassName); + $$jqLite.removeClass(element, pendingClassName); + + if (styles) { + if (timings.transitionDuration === 0) { + element.css('transition', timings.animationDuration + 's linear all'); + } + element.css(styles); + appliedStyles.push('transition'); + } + }, staggerTime * ONE_SECOND, false); + } + + element.on(css3AnimationEvents, onAnimationProgress); + elementData.closeAnimationFns.push(function() { + onEnd(); + activeAnimationComplete(); + }); + + elementData.running++; + animationCloseHandler(element, totalTime); + return onEnd; + + // This will automatically be called by $animate so + // there is no need to attach this internally to the + // timeout done method. + function onEnd() { + element.off(css3AnimationEvents, onAnimationProgress); + $$jqLite.removeClass(element, activeClassName); + $$jqLite.removeClass(element, pendingClassName); + if (staggerTimeout) { + $timeout.cancel(staggerTimeout); + } + animateClose(element, className); + var node = extractElementNode(element); + for (var i in appliedStyles) { + node.style.removeProperty(appliedStyles[i]); + } + } + + function onAnimationProgress(event) { + event.stopPropagation(); + var ev = event.originalEvent || event; + var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now(); + + /* Firefox (or possibly just Gecko) likes to not round values up + * when a ms measurement is used for the animation */ + var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES)); + + /* $manualTimeStamp is a mocked timeStamp value which is set + * within browserTrigger(). This is only here so that tests can + * mock animations properly. Real events fallback to event.timeStamp, + * or, if they don't, then a timeStamp is automatically created for them. + * We're checking to see if the timeStamp surpasses the expected delay, + * but we're using elapsedTime instead of the timeStamp on the 2nd + * pre-condition since animations sometimes close off early */ + if (Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) { + activeAnimationComplete(); + } + } + } + + function blockTransitions(node, bool) { + node.style[TRANSITION_PROP + PROPERTY_KEY] = bool ? 'none' : ''; + } + + function blockAnimations(node, bool) { + node.style[ANIMATION_PROP + ANIMATION_PLAYSTATE_KEY] = bool ? 'paused' : ''; + } + + function animateBefore(animationEvent, element, className, styles) { + if (animateSetup(animationEvent, element, className, styles)) { + return function(cancelled) { + cancelled && animateClose(element, className); + }; + } + } + + function animateAfter(animationEvent, element, className, afterAnimationComplete, styles) { + if (element.data(NG_ANIMATE_CSS_DATA_KEY)) { + return animateRun(animationEvent, element, className, afterAnimationComplete, styles); + } else { + animateClose(element, className); + afterAnimationComplete(); + } + } + + function animate(animationEvent, element, className, animationComplete, options) { + //If the animateSetup function doesn't bother returning a + //cancellation function then it means that there is no animation + //to perform at all + var preReflowCancellation = animateBefore(animationEvent, element, className, options.from); + if (!preReflowCancellation) { + clearCacheAfterReflow(); + animationComplete(); + return; + } + + //There are two cancellation functions: one is before the first + //reflow animation and the second is during the active state + //animation. The first function will take care of removing the + //data from the element which will not make the 2nd animation + //happen in the first place + var cancel = preReflowCancellation; + afterReflow(element, function() { + //once the reflow is complete then we point cancel to + //the new cancellation function which will remove all of the + //animation properties from the active animation + cancel = animateAfter(animationEvent, element, className, animationComplete, options.to); + }); + + return function(cancelled) { + (cancel || noop)(cancelled); + }; + } + + function animateClose(element, className) { + $$jqLite.removeClass(element, className); + var data = element.data(NG_ANIMATE_CSS_DATA_KEY); + if (data) { + if (data.running) { + data.running--; + } + if (!data.running || data.running === 0) { + element.removeData(NG_ANIMATE_CSS_DATA_KEY); + } + } + } + + return { + animate: function(element, className, from, to, animationCompleted, options) { + options = options || {}; + options.from = from; + options.to = to; + return animate('animate', element, className, animationCompleted, options); + }, + + enter: function(element, animationCompleted, options) { + options = options || {}; + return animate('enter', element, 'ng-enter', animationCompleted, options); + }, + + leave: function(element, animationCompleted, options) { + options = options || {}; + return animate('leave', element, 'ng-leave', animationCompleted, options); + }, + + move: function(element, animationCompleted, options) { + options = options || {}; + return animate('move', element, 'ng-move', animationCompleted, options); + }, + + beforeSetClass: function(element, add, remove, animationCompleted, options) { + options = options || {}; + var className = suffixClasses(remove, '-remove') + ' ' + + suffixClasses(add, '-add'); + var cancellationMethod = animateBefore('setClass', element, className, options.from); + if (cancellationMethod) { + afterReflow(element, animationCompleted); + return cancellationMethod; + } + clearCacheAfterReflow(); + animationCompleted(); + }, + + beforeAddClass: function(element, className, animationCompleted, options) { + options = options || {}; + var cancellationMethod = animateBefore('addClass', element, suffixClasses(className, '-add'), options.from); + if (cancellationMethod) { + afterReflow(element, animationCompleted); + return cancellationMethod; + } + clearCacheAfterReflow(); + animationCompleted(); + }, + + beforeRemoveClass: function(element, className, animationCompleted, options) { + options = options || {}; + var cancellationMethod = animateBefore('removeClass', element, suffixClasses(className, '-remove'), options.from); + if (cancellationMethod) { + afterReflow(element, animationCompleted); + return cancellationMethod; + } + clearCacheAfterReflow(); + animationCompleted(); + }, + + setClass: function(element, add, remove, animationCompleted, options) { + options = options || {}; + remove = suffixClasses(remove, '-remove'); + add = suffixClasses(add, '-add'); + var className = remove + ' ' + add; + return animateAfter('setClass', element, className, animationCompleted, options.to); + }, + + addClass: function(element, className, animationCompleted, options) { + options = options || {}; + return animateAfter('addClass', element, suffixClasses(className, '-add'), animationCompleted, options.to); + }, + + removeClass: function(element, className, animationCompleted, options) { + options = options || {}; + return animateAfter('removeClass', element, suffixClasses(className, '-remove'), animationCompleted, options.to); + } + }; + + function suffixClasses(classes, suffix) { + var className = ''; + classes = isArray(classes) ? classes : classes.split(/\s+/); + forEach(classes, function(klass, i) { + if (klass && klass.length > 0) { + className += (i > 0 ? ' ' : '') + klass + suffix; + } + }); + return className; + } + }]); + }]); + + +})(window, window.angular); diff --git a/public/vendor/angular-animate/angular-animate.min.js b/public/vendor/angular-animate/angular-animate.min.js new file mode 100644 index 000000000..b406578de --- /dev/null +++ b/public/vendor/angular-animate/angular-animate.min.js @@ -0,0 +1,33 @@ +/* + AngularJS v1.3.10 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(N,f,W){'use strict';f.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){return function(X,C,g){g=g.ngAnimateChildren;f.isString(g)&&0===g.length?C.data("$$ngAnimateChildren",!0):X.$watch(g,function(f){C.data("$$ngAnimateChildren",!!f)})}}).factory("$$animateReflow",["$$rAF","$document",function(f,C){return function(g){return f(function(){g()})}}]).config(["$provide","$animateProvider",function(X,C){function g(f){for(var n=0;n=C&&b>=x&&c()}var m=g(e);a=e.data("$$ngAnimateCSS3Data");if(-1!=m.getAttribute("class").indexOf(b)&&a){var k="",t="";n(b.split(" "),function(a, +b){var e=(0", + "license": "MIT", + "bugs": { + "url": "https://github.com/angular/angular.js/issues" + }, + "homepage": "http://angularjs.org" +} diff --git a/public/vendor/angular/.bower.json b/public/vendor/angular/.bower.json index 68c1c9321..b96af4ea8 100644 --- a/public/vendor/angular/.bower.json +++ b/public/vendor/angular/.bower.json @@ -1,17 +1,17 @@ { "name": "angular", - "version": "1.3.7", + "version": "1.3.10", "main": "./angular.js", "ignore": [], "dependencies": {}, "homepage": "https://github.com/angular/bower-angular", - "_release": "1.3.7", + "_release": "1.3.10", "_resolution": { "type": "version", - "tag": "v1.3.7", - "commit": "6bede464de3d762812b1a64a931b5b828e833b9d" + "tag": "v1.3.10", + "commit": "ecf0435da949836c63ebf048ea8b7710542e33ce" }, "_source": "git://github.com/angular/bower-angular.git", - "_target": "1.3.7", + "_target": "1.3.10", "_originalSource": "angular" } \ No newline at end of file diff --git a/public/vendor/angular/angular.js b/public/vendor/angular/angular.js index f12180f36..109199265 100644 --- a/public/vendor/angular/angular.js +++ b/public/vendor/angular/angular.js @@ -1,5 +1,5 @@ /** - * @license AngularJS v1.3.7 + * @license AngularJS v1.3.10 * (c) 2010-2014 Google, Inc. http://angularjs.org * License: MIT */ @@ -54,7 +54,7 @@ function minErr(module, ErrorConstructor) { return match; }); - message = message + '\nhttp://errors.angularjs.org/1.3.7/' + + message = message + '\nhttp://errors.angularjs.org/1.3.10/' + (module ? module + '/' : '') + code; for (i = 2; i < arguments.length; i++) { message = message + (i == 2 ? '?' : '&') + 'p' + (i - 2) + '=' + @@ -465,6 +465,8 @@ noop.$inject = []; return (transformationFn || angular.identity)(value); }; ``` + * @param {*} value to be returned. + * @returns {*} the value passed in. */ function identity($) {return $;} identity.$inject = []; @@ -719,7 +721,7 @@ function arrayRemove(array, value) { * Creates a deep copy of `source`, which should be an object or an array. * * * If no destination is supplied, a copy of the object or array is created. - * * If a destination is provided, all of its elements (for array) or properties (for objects) + * * If a destination is provided, all of its elements (for arrays) or properties (for objects) * are deleted and then all elements/properties from the source are copied to it. * * If `source` is not an object or array (inc. `null` and `undefined`), `source` is returned. * * If `source` is identical to 'destination' an exception will be thrown. @@ -1057,7 +1059,7 @@ function toJson(obj, pretty) { * Deserializes a JSON string. * * @param {string} json JSON string to deserialize. - * @returns {Object|Array|string|number} Deserialized thingy. + * @returns {Object|Array|string|number} Deserialized JSON string. */ function fromJson(json) { return isString(json) @@ -1230,7 +1232,7 @@ function getNgAttribute(element, ngAttr) { * {@link angular.bootstrap} instead. AngularJS applications cannot be nested within each other. * * You can specify an **AngularJS module** to be used as the root module for the application. This - * module will be loaded into the {@link auto.$injector} when the application is bootstrapped and + * module will be loaded into the {@link auto.$injector} when the application is bootstrapped. It * should contain the application code needed or have dependencies on other modules that will * contain the code. See {@link angular.module} for more information. * @@ -1238,7 +1240,7 @@ function getNgAttribute(element, ngAttr) { * document would not be compiled, the `AppController` would not be instantiated and the `{{ a+b }}` * would not be resolved to `3`. * - * `ngApp` is the easiest, and most common, way to bootstrap an application. + * `ngApp` is the easiest, and most common way to bootstrap an application. * @@ -1400,7 +1402,7 @@ function angularInit(element, bootstrap) { * @param {DOMElement} element DOM element which is the root of angular application. * @param {Array=} modules an array of modules to load into the application. * Each item in the array should be the name of a predefined module or a (DI annotated) - * function that will be invoked by the injector as a run block. + * function that will be invoked by the injector as a `config` block. * See: {@link angular.module modules} * @param {Object=} config an object for defining configuration options for the application. The * following keys are supported: @@ -2116,11 +2118,11 @@ function toDebugString(obj) { * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat". */ var version = { - full: '1.3.7', // all of these placeholder strings will be replaced by grunt's + full: '1.3.10', // all of these placeholder strings will be replaced by grunt's major: 1, // package task minor: 3, - dot: 7, - codeName: 'leaky-obstruction' + dot: 10, + codeName: 'heliotropic-sundial' }; @@ -4184,7 +4186,7 @@ function createInjector(modulesToLoad, strictDi) { // Check if Type is annotated and use just the given function at n-1 as parameter // e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]); // Object creation: http://jsperf.com/create-constructor/2 - var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype); + var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype || null); var returnedValue = invoke(Type, instance, locals, serviceName); return isObject(returnedValue) || isFunction(returnedValue) ? returnedValue : instance; @@ -7163,6 +7165,10 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // use class as directive className = node.className; + if (isObject(className)) { + // Maybe SVGAnimatedString + className = className.animVal; + } if (isString(className) && className !== '') { while (match = CLASS_DIRECTIVE_REGEXP.exec(className)) { nName = directiveNormalize(match[2]); @@ -8429,7 +8435,7 @@ function $ControllerProvider() { // Object creation: http://jsperf.com/create-constructor/2 var controllerPrototype = (isArray(expression) ? expression[expression.length - 1] : expression).prototype; - instance = Object.create(controllerPrototype); + instance = Object.create(controllerPrototype || null); if (identifier) { addIdentifier(locals, identifier, instance, constructor || expression.name); @@ -8925,7 +8931,7 @@ function $HttpProvider() { * * Both requests and responses can be transformed using transformation functions: `transformRequest` * and `transformResponse`. These properties can be a single function that returns - * the transformed value (`{function(data, headersGetter, status)`) or an array of such transformation functions, + * the transformed value (`function(data, headersGetter, status)`) or an array of such transformation functions, * which allows you to `push` or `unshift` a new transformation function into the transformation chain. * * ### Default Transformations @@ -12266,7 +12272,7 @@ Parser.prototype = { }, { assign: function(scope, value, locals) { var o = object(scope, locals); - if (!o) object.assign(scope, o = {}); + if (!o) object.assign(scope, o = {}, locals); return getter.assign(o, value); } }); @@ -12292,7 +12298,7 @@ Parser.prototype = { var key = ensureSafeMemberName(indexFn(self, locals), expression); // prevent overwriting of Function.constructor which would break ensureSafeObject check var o = ensureSafeObject(obj(self, locals), expression); - if (!o) obj.assign(self, o = {}); + if (!o) obj.assign(self, o = {}, locals); return o[key] = value; } }); @@ -12402,18 +12408,19 @@ Parser.prototype = { // Parser helper functions ////////////////////////////////////////////////// -function setter(obj, path, setValue, fullExp) { +function setter(obj, locals, path, setValue, fullExp) { ensureSafeObject(obj, fullExp); + ensureSafeObject(locals, fullExp); var element = path.split('.'), key; for (var i = 0; element.length > 1; i++) { key = ensureSafeMemberName(element.shift(), fullExp); - var propertyObj = ensureSafeObject(obj[key], fullExp); + var propertyObj = (i === 0 && locals && locals[key]) || obj[key]; if (!propertyObj) { propertyObj = {}; obj[key] = propertyObj; } - obj = propertyObj; + obj = ensureSafeObject(propertyObj, fullExp); } key = ensureSafeMemberName(element.shift(), fullExp); ensureSafeObject(obj[key], fullExp); @@ -12540,8 +12547,8 @@ function getterFn(path, options, fullExp) { } fn.sharedGetter = true; - fn.assign = function(self, value) { - return setter(self, path, value, path); + fn.assign = function(self, value, locals) { + return setter(self, locals, path, value, path); }; getterFnCache[path] = fn; return fn; @@ -14497,7 +14504,7 @@ function $RootScopeProvider() { * @kind function * * @description - * Schedule the invokation of $apply to occur at a later time. The actual time difference + * Schedule the invocation of $apply to occur at a later time. The actual time difference * varies across browsers, but is typically around ~10 milliseconds. * * This can be used to queue up multiple expressions which need to be evaluated in the same @@ -15994,7 +16001,7 @@ var $compileMinErr = minErr('$compile'); * @description * The `$templateRequest` service downloads the provided template using `$http` and, upon success, * stores the contents inside of `$templateCache`. If the HTTP request fails or the response data - * of the HTTP request is empty then a `$compile` error will be thrown (the exception can be thwarted + * of the HTTP request is empty, a `$compile` error will be thrown (the exception can be thwarted * by setting the 2nd parameter of the function to true). * * @param {string} tpl The HTTP request template URL @@ -16007,8 +16014,7 @@ var $compileMinErr = minErr('$compile'); function $TemplateRequestProvider() { this.$get = ['$templateCache', '$http', '$q', function($templateCache, $http, $q) { function handleRequestFn(tpl, ignoreRequestError) { - var self = handleRequestFn; - self.totalPendingRequests++; + handleRequestFn.totalPendingRequests++; var transformResponse = $http.defaults && $http.defaults.transformResponse; @@ -16026,13 +16032,14 @@ function $TemplateRequestProvider() { }; return $http.get(tpl, httpOptions) + .finally(function() { + handleRequestFn.totalPendingRequests--; + }) .then(function(response) { - self.totalPendingRequests--; return response.data; }, handleError); function handleError(resp) { - self.totalPendingRequests--; if (!ignoreRequestError) { throw $compileMinErr('tpload', 'Failed to load template: {0}', tpl); } @@ -16554,19 +16561,26 @@ function $FilterProvider($provide) { * * Can be one of: * - * - `string`: The string is evaluated as an expression and the resulting value is used for substring match against - * the contents of the `array`. All strings or objects with string properties in `array` that contain this string - * will be returned. The predicate can be negated by prefixing the string with `!`. + * - `string`: The string is used for matching against the contents of the `array`. All strings or + * objects with string properties in `array` that match this string will be returned. This also + * applies to nested object properties. + * The predicate can be negated by prefixing the string with `!`. * * - `Object`: A pattern object can be used to filter specific properties on objects contained * by `array`. For example `{name:"M", phone:"1"}` predicate will return an array of items * which have property `name` containing "M" and property `phone` containing "1". A special * property name `$` can be used (as in `{$:"text"}`) to accept a match against any - * property of the object. That's equivalent to the simple substring match with a `string` - * as described above. The predicate can be negated by prefixing the string with `!`. - * For Example `{name: "!M"}` predicate will return an array of items which have property `name` + * property of the object or its nested object properties. That's equivalent to the simple + * substring match with a `string` as described above. The predicate can be negated by prefixing + * the string with `!`. + * For example `{name: "!M"}` predicate will return an array of items which have property `name` * not containing "M". * + * Note that a named property will match properties on the same level only, while the special + * `$` property will match properties on the same level or deeper. E.g. an array item like + * `{name: {first: 'John', last: 'Doe'}}` will **not** be matched by `{name: 'John'}`, but + * **will** be matched by `{$: 'John'}`. + * * - `function(value, index)`: A predicate function can be used to write arbitrary filters. The * function is called for each element of `array`. The final result is an array of those * elements that the predicate returned true for. @@ -16579,10 +16593,10 @@ function $FilterProvider($provide) { * * - `function(actual, expected)`: * The function will be given the object value and the predicate value to compare and - * should return true if the item should be included in filtered result. + * should return true if both values should be considered equal. * - * - `true`: A shorthand for `function(actual, expected) { return angular.equals(expected, actual)}`. - * this is essentially strict comparison of expected and actual. + * - `true`: A shorthand for `function(actual, expected) { return angular.equals(actual, expected)}`. + * This is essentially strict comparison of expected and actual. * * - `false|undefined`: A short hand for a function which will look for a substring match in case * insensitive way. @@ -16685,6 +16699,7 @@ function filterFilter() { // Helper functions for `filterFilter` function createPredicateFn(expression, comparator, matchAgainstAnyProp) { + var shouldMatchPrimitives = isObject(expression) && ('$' in expression); var predicateFn; if (comparator === true) { @@ -16703,19 +16718,22 @@ function createPredicateFn(expression, comparator, matchAgainstAnyProp) { } predicateFn = function(item) { + if (shouldMatchPrimitives && !isObject(item)) { + return deepCompare(item, expression.$, comparator, false); + } return deepCompare(item, expression, comparator, matchAgainstAnyProp); }; return predicateFn; } -function deepCompare(actual, expected, comparator, matchAgainstAnyProp) { +function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatchWholeObject) { var actualType = typeof actual; var expectedType = typeof expected; if ((expectedType === 'string') && (expected.charAt(0) === '!')) { return !deepCompare(actual, expected.substring(1), comparator, matchAgainstAnyProp); - } else if (actualType === 'array') { + } else if (isArray(actual)) { // In case `actual` is an array, consider it a match // if ANY of it's items matches `expected` return actual.some(function(item) { @@ -16728,11 +16746,11 @@ function deepCompare(actual, expected, comparator, matchAgainstAnyProp) { var key; if (matchAgainstAnyProp) { for (key in actual) { - if ((key.charAt(0) !== '$') && deepCompare(actual[key], expected, comparator)) { + if ((key.charAt(0) !== '$') && deepCompare(actual[key], expected, comparator, true)) { return true; } } - return false; + return dontMatchWholeObject ? false : deepCompare(actual, expected, comparator, false); } else if (expectedType === 'object') { for (key in expected) { var expectedVal = expected[key]; @@ -16740,9 +16758,9 @@ function deepCompare(actual, expected, comparator, matchAgainstAnyProp) { continue; } - var keyIsDollar = key === '$'; - var actualVal = keyIsDollar ? actual : actual[key]; - if (!deepCompare(actualVal, expectedVal, comparator, keyIsDollar)) { + var matchAnyProperty = key === '$'; + var actualVal = matchAnyProperty ? actual : actual[key]; + if (!deepCompare(actualVal, expectedVal, comparator, matchAnyProperty, matchAnyProperty)) { return false; } } @@ -17111,7 +17129,7 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEw']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d * * `'m'`: Minute in hour (0-59) * * `'ss'`: Second in minute, padded (00-59) * * `'s'`: Second in minute (0-59) - * * `'.sss' or ',sss'`: Millisecond in second, padded (000-999) + * * `'sss'`: Millisecond in second, padded (000-999) * * `'a'`: AM/PM marker * * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200) * * `'ww'`: Week of year, padded (00-53). Week 01 is the week with the first Thursday of the year @@ -17406,37 +17424,12 @@ function limitToFilter() { limit = int(limit); } - if (isString(input)) { - //NaN check on limit - if (limit) { - return limit >= 0 ? input.slice(0, limit) : input.slice(limit, input.length); - } else { - return ""; - } - } - - var out = [], - i, n; - - // if abs(limit) exceeds maximum length, trim it - if (limit > input.length) - limit = input.length; - else if (limit < -input.length) - limit = -input.length; - - if (limit > 0) { - i = 0; - n = limit; + //NaN check on limit + if (limit) { + return limit > 0 ? input.slice(0, limit) : input.slice(limit); } else { - i = input.length + limit; - n = input.length; + return isString(input) ? "" : []; } - - for (; i < n; i++) { - out.push(input[i]); - } - - return out; }; } @@ -17570,9 +17563,7 @@ function orderByFilter($parse) { } if (predicate === '') { // Effectively no predicate was passed so we compare identity - return reverseComparator(function(a, b) { - return compare(a, b); - }, descending); + return reverseComparator(compare, descending); } get = $parse(predicate); if (get.constant) { @@ -17614,14 +17605,14 @@ function orderByFilter($parse) { function objectToString(value) { if (value === null) return 'null'; - if (typeof value.toString === 'function') { - value = value.toString(); - if (isPrimitive(value)) return value; - } if (typeof value.valueOf === 'function') { value = value.valueOf(); if (isPrimitive(value)) return value; } + if (typeof value.toString === 'function') { + value = value.toString(); + if (isPrimitive(value)) return value; + } return ''; } @@ -18274,6 +18265,9 @@ function FormController(element, attrs, $scope, $animate, $interpolate) { forEach(form.$error, function(value, name) { form.$setValidity(name, null, control); }); + forEach(form.$$success, function(value, name) { + form.$setValidity(name, null, control); + }); arrayRemove(controls, control); }; @@ -18291,23 +18285,23 @@ function FormController(element, attrs, $scope, $animate, $interpolate) { addSetValidityMethod({ ctrl: this, $element: element, - set: function(object, property, control) { + set: function(object, property, controller) { var list = object[property]; if (!list) { - object[property] = [control]; + object[property] = [controller]; } else { - var index = list.indexOf(control); + var index = list.indexOf(controller); if (index === -1) { - list.push(control); + list.push(controller); } } }, - unset: function(object, property, control) { + unset: function(object, property, controller) { var list = object[property]; if (!list) { return; } - arrayRemove(list, control); + arrayRemove(list, controller); if (list.length === 0) { delete object[property]; } @@ -18600,19 +18594,19 @@ var formDirectiveFactory = function(isNgForm) { alias = controller.$name; if (alias) { - setter(scope, alias, controller, alias); + setter(scope, null, alias, controller, alias); attr.$observe(attr.name ? 'name' : 'ngForm', function(newValue) { if (alias === newValue) return; - setter(scope, alias, undefined, alias); + setter(scope, null, alias, undefined, alias); alias = newValue; - setter(scope, alias, controller, alias); + setter(scope, null, alias, controller, alias); parentFormCtrl.$$renameControl(controller, alias); }); } formElement.on('$destroy', function() { parentFormCtrl.$removeControl(controller); if (alias) { - setter(scope, alias, undefined, alias); + setter(scope, null, alias, undefined, alias); } extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards }); @@ -18628,12 +18622,13 @@ var formDirectiveFactory = function(isNgForm) { var formDirective = formDirectiveFactory(); var ngFormDirective = formDirectiveFactory(true); -/* global VALID_CLASS: true, - INVALID_CLASS: true, - PRISTINE_CLASS: true, - DIRTY_CLASS: true, - UNTOUCHED_CLASS: true, - TOUCHED_CLASS: true, +/* global VALID_CLASS: false, + INVALID_CLASS: false, + PRISTINE_CLASS: false, + DIRTY_CLASS: false, + UNTOUCHED_CLASS: false, + TOUCHED_CLASS: false, + $ngModelMinErr: false, */ // Regex code is obtained from SO: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231 @@ -18646,9 +18641,6 @@ var DATETIMELOCAL_REGEXP = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{ var WEEK_REGEXP = /^(\d{4})-W(\d\d)$/; var MONTH_REGEXP = /^(\d{4})-(\d\d)$/; var TIME_REGEXP = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; -var DEFAULT_REGEXP = /(\s+|^)default(\s+|$)/; - -var $ngModelMinErr = new minErr('ngModel'); var inputType = { @@ -20150,1344 +20142,6 @@ var inputDirective = ['$browser', '$sniffer', '$filter', '$parse', }; }]; -var VALID_CLASS = 'ng-valid', - INVALID_CLASS = 'ng-invalid', - PRISTINE_CLASS = 'ng-pristine', - DIRTY_CLASS = 'ng-dirty', - UNTOUCHED_CLASS = 'ng-untouched', - TOUCHED_CLASS = 'ng-touched', - PENDING_CLASS = 'ng-pending'; - -/** - * @ngdoc type - * @name ngModel.NgModelController - * - * @property {string} $viewValue Actual string value in the view. - * @property {*} $modelValue The value in the model that the control is bound to. - * @property {Array.} $parsers Array of functions to execute, as a pipeline, whenever - the control reads value from the DOM. The functions are called in array order, each passing - its return value through to the next. The last return value is forwarded to the - {@link ngModel.NgModelController#$validators `$validators`} collection. - -Parsers are used to sanitize / convert the {@link ngModel.NgModelController#$viewValue -`$viewValue`}. - -Returning `undefined` from a parser means a parse error occurred. In that case, -no {@link ngModel.NgModelController#$validators `$validators`} will run and the `ngModel` -will be set to `undefined` unless {@link ngModelOptions `ngModelOptions.allowInvalid`} -is set to `true`. The parse error is stored in `ngModel.$error.parse`. - - * - * @property {Array.} $formatters Array of functions to execute, as a pipeline, whenever - the model value changes. The functions are called in reverse array order, each passing the value through to the - next. The last return value is used as the actual DOM value. - Used to format / convert values for display in the control. - * ```js - * function formatter(value) { - * if (value) { - * return value.toUpperCase(); - * } - * } - * ngModel.$formatters.push(formatter); - * ``` - * - * @property {Object.} $validators A collection of validators that are applied - * whenever the model value changes. The key value within the object refers to the name of the - * validator while the function refers to the validation operation. The validation operation is - * provided with the model value as an argument and must return a true or false value depending - * on the response of that validation. - * - * ```js - * ngModel.$validators.validCharacters = function(modelValue, viewValue) { - * var value = modelValue || viewValue; - * return /[0-9]+/.test(value) && - * /[a-z]+/.test(value) && - * /[A-Z]+/.test(value) && - * /\W+/.test(value); - * }; - * ``` - * - * @property {Object.} $asyncValidators A collection of validations that are expected to - * perform an asynchronous validation (e.g. a HTTP request). The validation function that is provided - * is expected to return a promise when it is run during the model validation process. Once the promise - * is delivered then the validation status will be set to true when fulfilled and false when rejected. - * When the asynchronous validators are triggered, each of the validators will run in parallel and the model - * value will only be updated once all validators have been fulfilled. As long as an asynchronous validator - * is unfulfilled, its key will be added to the controllers `$pending` property. Also, all asynchronous validators - * will only run once all synchronous validators have passed. - * - * Please note that if $http is used then it is important that the server returns a success HTTP response code - * in order to fulfill the validation and a status level of `4xx` in order to reject the validation. - * - * ```js - * ngModel.$asyncValidators.uniqueUsername = function(modelValue, viewValue) { - * var value = modelValue || viewValue; - * - * // Lookup user by username - * return $http.get('/api/users/' + value). - * then(function resolved() { - * //username exists, this means validation fails - * return $q.reject('exists'); - * }, function rejected() { - * //username does not exist, therefore this validation passes - * return true; - * }); - * }; - * ``` - * - * @property {Array.} $viewChangeListeners Array of functions to execute whenever the - * view value has changed. It is called with no arguments, and its return value is ignored. - * This can be used in place of additional $watches against the model value. - * - * @property {Object} $error An object hash with all failing validator ids as keys. - * @property {Object} $pending An object hash with all pending validator ids as keys. - * - * @property {boolean} $untouched True if control has not lost focus yet. - * @property {boolean} $touched True if control has lost focus. - * @property {boolean} $pristine True if user has not interacted with the control yet. - * @property {boolean} $dirty True if user has already interacted with the control. - * @property {boolean} $valid True if there is no error. - * @property {boolean} $invalid True if at least one error on the control. - * @property {string} $name The name attribute of the control. - * - * @description - * - * `NgModelController` provides API for the {@link ngModel `ngModel`} directive. - * The controller contains services for data-binding, validation, CSS updates, and value formatting - * and parsing. It purposefully does not contain any logic which deals with DOM rendering or - * listening to DOM events. - * Such DOM related logic should be provided by other directives which make use of - * `NgModelController` for data-binding to control elements. - * Angular provides this DOM logic for most {@link input `input`} elements. - * At the end of this page you can find a {@link ngModel.NgModelController#custom-control-example - * custom control example} that uses `ngModelController` to bind to `contenteditable` elements. - * - * @example - * ### Custom Control Example - * This example shows how to use `NgModelController` with a custom control to achieve - * data-binding. Notice how different directives (`contenteditable`, `ng-model`, and `required`) - * collaborate together to achieve the desired result. - * - * Note that `contenteditable` is an HTML5 attribute, which tells the browser to let the element - * contents be edited in place by the user. This will not work on older browsers. - * - * We are using the {@link ng.service:$sce $sce} service here and include the {@link ngSanitize $sanitize} - * module to automatically remove "bad" content like inline event listener (e.g. ``). - * However, as we are using `$sce` the model can still decide to provide unsafe content if it marks - * that content using the `$sce` service. - * - * - - [contenteditable] { - border: 1px solid black; - background-color: white; - min-height: 20px; - } - - .ng-invalid { - border: 1px solid red; - } - - - - angular.module('customControl', ['ngSanitize']). - directive('contenteditable', ['$sce', function($sce) { - return { - restrict: 'A', // only activate on element attribute - require: '?ngModel', // get a hold of NgModelController - link: function(scope, element, attrs, ngModel) { - if (!ngModel) return; // do nothing if no ng-model - - // Specify how UI should be updated - ngModel.$render = function() { - element.html($sce.getTrustedHtml(ngModel.$viewValue || '')); - }; - - // Listen for change events to enable binding - element.on('blur keyup change', function() { - scope.$evalAsync(read); - }); - read(); // initialize - - // Write data to the model - function read() { - var html = element.html(); - // When we clear the content editable the browser leaves a
behind - // If strip-br attribute is provided then we strip this out - if ( attrs.stripBr && html == '
' ) { - html = ''; - } - ngModel.$setViewValue(html); - } - } - }; - }]); -
- - -
Change me!
- Required! -
- - -
- - it('should data-bind and become invalid', function() { - if (browser.params.browser == 'safari' || browser.params.browser == 'firefox') { - // SafariDriver can't handle contenteditable - // and Firefox driver can't clear contenteditables very well - return; - } - var contentEditable = element(by.css('[contenteditable]')); - var content = 'Change me!'; - - expect(contentEditable.getText()).toEqual(content); - - contentEditable.clear(); - contentEditable.sendKeys(protractor.Key.BACK_SPACE); - expect(contentEditable.getText()).toEqual(''); - expect(contentEditable.getAttribute('class')).toMatch(/ng-invalid-required/); - }); - - *
- * - * - */ -var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$parse', '$animate', '$timeout', '$rootScope', '$q', '$interpolate', - function($scope, $exceptionHandler, $attr, $element, $parse, $animate, $timeout, $rootScope, $q, $interpolate) { - this.$viewValue = Number.NaN; - this.$modelValue = Number.NaN; - this.$$rawModelValue = undefined; // stores the parsed modelValue / model set from scope regardless of validity. - this.$validators = {}; - this.$asyncValidators = {}; - this.$parsers = []; - this.$formatters = []; - this.$viewChangeListeners = []; - this.$untouched = true; - this.$touched = false; - this.$pristine = true; - this.$dirty = false; - this.$valid = true; - this.$invalid = false; - this.$error = {}; // keep invalid keys here - this.$$success = {}; // keep valid keys here - this.$pending = undefined; // keep pending keys here - this.$name = $interpolate($attr.name || '', false)($scope); - - - var parsedNgModel = $parse($attr.ngModel), - parsedNgModelAssign = parsedNgModel.assign, - ngModelGet = parsedNgModel, - ngModelSet = parsedNgModelAssign, - pendingDebounce = null, - ctrl = this; - - this.$$setOptions = function(options) { - ctrl.$options = options; - if (options && options.getterSetter) { - var invokeModelGetter = $parse($attr.ngModel + '()'), - invokeModelSetter = $parse($attr.ngModel + '($$$p)'); - - ngModelGet = function($scope) { - var modelValue = parsedNgModel($scope); - if (isFunction(modelValue)) { - modelValue = invokeModelGetter($scope); - } - return modelValue; - }; - ngModelSet = function($scope, newValue) { - if (isFunction(parsedNgModel($scope))) { - invokeModelSetter($scope, {$$$p: ctrl.$modelValue}); - } else { - parsedNgModelAssign($scope, ctrl.$modelValue); - } - }; - } else if (!parsedNgModel.assign) { - throw $ngModelMinErr('nonassign', "Expression '{0}' is non-assignable. Element: {1}", - $attr.ngModel, startingTag($element)); - } - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$render - * - * @description - * Called when the view needs to be updated. It is expected that the user of the ng-model - * directive will implement this method. - * - * The `$render()` method is invoked in the following situations: - * - * * `$rollbackViewValue()` is called. If we are rolling back the view value to the last - * committed value then `$render()` is called to update the input control. - * * The value referenced by `ng-model` is changed programmatically and both the `$modelValue` and - * the `$viewValue` are different to last time. - * - * Since `ng-model` does not do a deep watch, `$render()` is only invoked if the values of - * `$modelValue` and `$viewValue` are actually different to their previous value. If `$modelValue` - * or `$viewValue` are objects (rather than a string or number) then `$render()` will not be - * invoked if you only change a property on the objects. - */ - this.$render = noop; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$isEmpty - * - * @description - * This is called when we need to determine if the value of an input is empty. - * - * For instance, the required directive does this to work out if the input has data or not. - * - * The default `$isEmpty` function checks whether the value is `undefined`, `''`, `null` or `NaN`. - * - * You can override this for input directives whose concept of being empty is different to the - * default. The `checkboxInputType` directive does this because in its case a value of `false` - * implies empty. - * - * @param {*} value The value of the input to check for emptiness. - * @returns {boolean} True if `value` is "empty". - */ - this.$isEmpty = function(value) { - return isUndefined(value) || value === '' || value === null || value !== value; - }; - - var parentForm = $element.inheritedData('$formController') || nullFormCtrl, - currentValidationRunId = 0; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$setValidity - * - * @description - * Change the validity state, and notify the form. - * - * This method can be called within $parsers/$formatters or a custom validation implementation. - * However, in most cases it should be sufficient to use the `ngModel.$validators` and - * `ngModel.$asyncValidators` collections which will call `$setValidity` automatically. - * - * @param {string} validationErrorKey Name of the validator. The `validationErrorKey` will be assigned - * to either `$error[validationErrorKey]` or `$pending[validationErrorKey]` - * (for unfulfilled `$asyncValidators`), so that it is available for data-binding. - * The `validationErrorKey` should be in camelCase and will get converted into dash-case - * for class name. Example: `myError` will result in `ng-valid-my-error` and `ng-invalid-my-error` - * class and can be bound to as `{{someForm.someControl.$error.myError}}` . - * @param {boolean} isValid Whether the current state is valid (true), invalid (false), pending (undefined), - * or skipped (null). Pending is used for unfulfilled `$asyncValidators`. - * Skipped is used by Angular when validators do not run because of parse errors and - * when `$asyncValidators` do not run because any of the `$validators` failed. - */ - addSetValidityMethod({ - ctrl: this, - $element: $element, - set: function(object, property) { - object[property] = true; - }, - unset: function(object, property) { - delete object[property]; - }, - parentForm: parentForm, - $animate: $animate - }); - - /** - * @ngdoc method - * @name ngModel.NgModelController#$setPristine - * - * @description - * Sets the control to its pristine state. - * - * This method can be called to remove the `ng-dirty` class and set the control to its pristine - * state (`ng-pristine` class). A model is considered to be pristine when the control - * has not been changed from when first compiled. - */ - this.$setPristine = function() { - ctrl.$dirty = false; - ctrl.$pristine = true; - $animate.removeClass($element, DIRTY_CLASS); - $animate.addClass($element, PRISTINE_CLASS); - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$setDirty - * - * @description - * Sets the control to its dirty state. - * - * This method can be called to remove the `ng-pristine` class and set the control to its dirty - * state (`ng-dirty` class). A model is considered to be dirty when the control has been changed - * from when first compiled. - */ - this.$setDirty = function() { - ctrl.$dirty = true; - ctrl.$pristine = false; - $animate.removeClass($element, PRISTINE_CLASS); - $animate.addClass($element, DIRTY_CLASS); - parentForm.$setDirty(); - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$setUntouched - * - * @description - * Sets the control to its untouched state. - * - * This method can be called to remove the `ng-touched` class and set the control to its - * untouched state (`ng-untouched` class). Upon compilation, a model is set as untouched - * by default, however this function can be used to restore that state if the model has - * already been touched by the user. - */ - this.$setUntouched = function() { - ctrl.$touched = false; - ctrl.$untouched = true; - $animate.setClass($element, UNTOUCHED_CLASS, TOUCHED_CLASS); - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$setTouched - * - * @description - * Sets the control to its touched state. - * - * This method can be called to remove the `ng-untouched` class and set the control to its - * touched state (`ng-touched` class). A model is considered to be touched when the user has - * first focused the control element and then shifted focus away from the control (blur event). - */ - this.$setTouched = function() { - ctrl.$touched = true; - ctrl.$untouched = false; - $animate.setClass($element, TOUCHED_CLASS, UNTOUCHED_CLASS); - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$rollbackViewValue - * - * @description - * Cancel an update and reset the input element's value to prevent an update to the `$modelValue`, - * which may be caused by a pending debounced event or because the input is waiting for a some - * future event. - * - * If you have an input that uses `ng-model-options` to set up debounced events or events such - * as blur you can have a situation where there is a period when the `$viewValue` - * is out of synch with the ngModel's `$modelValue`. - * - * In this case, you can run into difficulties if you try to update the ngModel's `$modelValue` - * programmatically before these debounced/future events have resolved/occurred, because Angular's - * dirty checking mechanism is not able to tell whether the model has actually changed or not. - * - * The `$rollbackViewValue()` method should be called before programmatically changing the model of an - * input which may have such events pending. This is important in order to make sure that the - * input field will be updated with the new model value and any pending operations are cancelled. - * - * - * - * angular.module('cancel-update-example', []) - * - * .controller('CancelUpdateController', ['$scope', function($scope) { - * $scope.resetWithCancel = function(e) { - * if (e.keyCode == 27) { - * $scope.myForm.myInput1.$rollbackViewValue(); - * $scope.myValue = ''; - * } - * }; - * $scope.resetWithoutCancel = function(e) { - * if (e.keyCode == 27) { - * $scope.myValue = ''; - * } - * }; - * }]); - * - * - *
- *

Try typing something in each input. See that the model only updates when you - * blur off the input. - *

- *

Now see what happens if you start typing then press the Escape key

- * - *
- *

With $rollbackViewValue()

- *
- * myValue: "{{ myValue }}" - * - *

Without $rollbackViewValue()

- *
- * myValue: "{{ myValue }}" - *
- *
- *
- *
- */ - this.$rollbackViewValue = function() { - $timeout.cancel(pendingDebounce); - ctrl.$viewValue = ctrl.$$lastCommittedViewValue; - ctrl.$render(); - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$validate - * - * @description - * Runs each of the registered validators (first synchronous validators and then - * asynchronous validators). - * If the validity changes to invalid, the model will be set to `undefined`, - * unless {@link ngModelOptions `ngModelOptions.allowInvalid`} is `true`. - * If the validity changes to valid, it will set the model to the last available valid - * modelValue, i.e. either the last parsed value or the last value set from the scope. - */ - this.$validate = function() { - // ignore $validate before model is initialized - if (isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)) { - return; - } - - var viewValue = ctrl.$$lastCommittedViewValue; - // Note: we use the $$rawModelValue as $modelValue might have been - // set to undefined during a view -> model update that found validation - // errors. We can't parse the view here, since that could change - // the model although neither viewValue nor the model on the scope changed - var modelValue = ctrl.$$rawModelValue; - - // Check if the there's a parse error, so we don't unset it accidentially - var parserName = ctrl.$$parserName || 'parse'; - var parserValid = ctrl.$error[parserName] ? false : undefined; - - var prevValid = ctrl.$valid; - var prevModelValue = ctrl.$modelValue; - - var allowInvalid = ctrl.$options && ctrl.$options.allowInvalid; - - ctrl.$$runValidators(parserValid, modelValue, viewValue, function(allValid) { - // If there was no change in validity, don't update the model - // This prevents changing an invalid modelValue to undefined - if (!allowInvalid && prevValid !== allValid) { - // Note: Don't check ctrl.$valid here, as we could have - // external validators (e.g. calculated on the server), - // that just call $setValidity and need the model value - // to calculate their validity. - ctrl.$modelValue = allValid ? modelValue : undefined; - - if (ctrl.$modelValue !== prevModelValue) { - ctrl.$$writeModelToScope(); - } - } - }); - - }; - - this.$$runValidators = function(parseValid, modelValue, viewValue, doneCallback) { - currentValidationRunId++; - var localValidationRunId = currentValidationRunId; - - // check parser error - if (!processParseErrors(parseValid)) { - validationDone(false); - return; - } - if (!processSyncValidators()) { - validationDone(false); - return; - } - processAsyncValidators(); - - function processParseErrors(parseValid) { - var errorKey = ctrl.$$parserName || 'parse'; - if (parseValid === undefined) { - setValidity(errorKey, null); - } else { - setValidity(errorKey, parseValid); - if (!parseValid) { - forEach(ctrl.$validators, function(v, name) { - setValidity(name, null); - }); - forEach(ctrl.$asyncValidators, function(v, name) { - setValidity(name, null); - }); - return false; - } - } - return true; - } - - function processSyncValidators() { - var syncValidatorsValid = true; - forEach(ctrl.$validators, function(validator, name) { - var result = validator(modelValue, viewValue); - syncValidatorsValid = syncValidatorsValid && result; - setValidity(name, result); - }); - if (!syncValidatorsValid) { - forEach(ctrl.$asyncValidators, function(v, name) { - setValidity(name, null); - }); - return false; - } - return true; - } - - function processAsyncValidators() { - var validatorPromises = []; - var allValid = true; - forEach(ctrl.$asyncValidators, function(validator, name) { - var promise = validator(modelValue, viewValue); - if (!isPromiseLike(promise)) { - throw $ngModelMinErr("$asyncValidators", - "Expected asynchronous validator to return a promise but got '{0}' instead.", promise); - } - setValidity(name, undefined); - validatorPromises.push(promise.then(function() { - setValidity(name, true); - }, function(error) { - allValid = false; - setValidity(name, false); - })); - }); - if (!validatorPromises.length) { - validationDone(true); - } else { - $q.all(validatorPromises).then(function() { - validationDone(allValid); - }, noop); - } - } - - function setValidity(name, isValid) { - if (localValidationRunId === currentValidationRunId) { - ctrl.$setValidity(name, isValid); - } - } - - function validationDone(allValid) { - if (localValidationRunId === currentValidationRunId) { - - doneCallback(allValid); - } - } - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$commitViewValue - * - * @description - * Commit a pending update to the `$modelValue`. - * - * Updates may be pending by a debounced event or because the input is waiting for a some future - * event defined in `ng-model-options`. this method is rarely needed as `NgModelController` - * usually handles calling this in response to input events. - */ - this.$commitViewValue = function() { - var viewValue = ctrl.$viewValue; - - $timeout.cancel(pendingDebounce); - - // If the view value has not changed then we should just exit, except in the case where there is - // a native validator on the element. In this case the validation state may have changed even though - // the viewValue has stayed empty. - if (ctrl.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !ctrl.$$hasNativeValidators)) { - return; - } - ctrl.$$lastCommittedViewValue = viewValue; - - // change to dirty - if (ctrl.$pristine) { - this.$setDirty(); - } - this.$$parseAndValidate(); - }; - - this.$$parseAndValidate = function() { - var viewValue = ctrl.$$lastCommittedViewValue; - var modelValue = viewValue; - var parserValid = isUndefined(modelValue) ? undefined : true; - - if (parserValid) { - for (var i = 0; i < ctrl.$parsers.length; i++) { - modelValue = ctrl.$parsers[i](modelValue); - if (isUndefined(modelValue)) { - parserValid = false; - break; - } - } - } - if (isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)) { - // ctrl.$modelValue has not been touched yet... - ctrl.$modelValue = ngModelGet($scope); - } - var prevModelValue = ctrl.$modelValue; - var allowInvalid = ctrl.$options && ctrl.$options.allowInvalid; - ctrl.$$rawModelValue = modelValue; - - if (allowInvalid) { - ctrl.$modelValue = modelValue; - writeToModelIfNeeded(); - } - - // Pass the $$lastCommittedViewValue here, because the cached viewValue might be out of date. - // This can happen if e.g. $setViewValue is called from inside a parser - ctrl.$$runValidators(parserValid, modelValue, ctrl.$$lastCommittedViewValue, function(allValid) { - if (!allowInvalid) { - // Note: Don't check ctrl.$valid here, as we could have - // external validators (e.g. calculated on the server), - // that just call $setValidity and need the model value - // to calculate their validity. - ctrl.$modelValue = allValid ? modelValue : undefined; - writeToModelIfNeeded(); - } - }); - - function writeToModelIfNeeded() { - if (ctrl.$modelValue !== prevModelValue) { - ctrl.$$writeModelToScope(); - } - } - }; - - this.$$writeModelToScope = function() { - ngModelSet($scope, ctrl.$modelValue); - forEach(ctrl.$viewChangeListeners, function(listener) { - try { - listener(); - } catch (e) { - $exceptionHandler(e); - } - }); - }; - - /** - * @ngdoc method - * @name ngModel.NgModelController#$setViewValue - * - * @description - * Update the view value. - * - * This method should be called when an input directive want to change the view value; typically, - * this is done from within a DOM event handler. - * - * For example {@link ng.directive:input input} calls it when the value of the input changes and - * {@link ng.directive:select select} calls it when an option is selected. - * - * If the new `value` is an object (rather than a string or a number), we should make a copy of the - * object before passing it to `$setViewValue`. This is because `ngModel` does not perform a deep - * watch of objects, it only looks for a change of identity. If you only change the property of - * the object then ngModel will not realise that the object has changed and will not invoke the - * `$parsers` and `$validators` pipelines. - * - * For this reason, you should not change properties of the copy once it has been passed to - * `$setViewValue`. Otherwise you may cause the model value on the scope to change incorrectly. - * - * When this method is called, the new `value` will be staged for committing through the `$parsers` - * and `$validators` pipelines. If there are no special {@link ngModelOptions} specified then the staged - * value sent directly for processing, finally to be applied to `$modelValue` and then the - * **expression** specified in the `ng-model` attribute. - * - * Lastly, all the registered change listeners, in the `$viewChangeListeners` list, are called. - * - * In case the {@link ng.directive:ngModelOptions ngModelOptions} directive is used with `updateOn` - * and the `default` trigger is not listed, all those actions will remain pending until one of the - * `updateOn` events is triggered on the DOM element. - * All these actions will be debounced if the {@link ng.directive:ngModelOptions ngModelOptions} - * directive is used with a custom debounce for this particular event. - * - * Note that calling this function does not trigger a `$digest`. - * - * @param {string} value Value from the view. - * @param {string} trigger Event that triggered the update. - */ - this.$setViewValue = function(value, trigger) { - ctrl.$viewValue = value; - if (!ctrl.$options || ctrl.$options.updateOnDefault) { - ctrl.$$debounceViewValueCommit(trigger); - } - }; - - this.$$debounceViewValueCommit = function(trigger) { - var debounceDelay = 0, - options = ctrl.$options, - debounce; - - if (options && isDefined(options.debounce)) { - debounce = options.debounce; - if (isNumber(debounce)) { - debounceDelay = debounce; - } else if (isNumber(debounce[trigger])) { - debounceDelay = debounce[trigger]; - } else if (isNumber(debounce['default'])) { - debounceDelay = debounce['default']; - } - } - - $timeout.cancel(pendingDebounce); - if (debounceDelay) { - pendingDebounce = $timeout(function() { - ctrl.$commitViewValue(); - }, debounceDelay); - } else if ($rootScope.$$phase) { - ctrl.$commitViewValue(); - } else { - $scope.$apply(function() { - ctrl.$commitViewValue(); - }); - } - }; - - // model -> value - // Note: we cannot use a normal scope.$watch as we want to detect the following: - // 1. scope value is 'a' - // 2. user enters 'b' - // 3. ng-change kicks in and reverts scope value to 'a' - // -> scope value did not change since the last digest as - // ng-change executes in apply phase - // 4. view should be changed back to 'a' - $scope.$watch(function ngModelWatch() { - var modelValue = ngModelGet($scope); - - // if scope model value and ngModel value are out of sync - // TODO(perf): why not move this to the action fn? - if (modelValue !== ctrl.$modelValue) { - ctrl.$modelValue = ctrl.$$rawModelValue = modelValue; - - var formatters = ctrl.$formatters, - idx = formatters.length; - - var viewValue = modelValue; - while (idx--) { - viewValue = formatters[idx](viewValue); - } - if (ctrl.$viewValue !== viewValue) { - ctrl.$viewValue = ctrl.$$lastCommittedViewValue = viewValue; - ctrl.$render(); - - ctrl.$$runValidators(undefined, modelValue, viewValue, noop); - } - } - - return modelValue; - }); -}]; - - -/** - * @ngdoc directive - * @name ngModel - * - * @element input - * @priority 1 - * - * @description - * The `ngModel` directive binds an `input`,`select`, `textarea` (or custom form control) to a - * property on the scope using {@link ngModel.NgModelController NgModelController}, - * which is created and exposed by this directive. - * - * `ngModel` is responsible for: - * - * - Binding the view into the model, which other directives such as `input`, `textarea` or `select` - * require. - * - Providing validation behavior (i.e. required, number, email, url). - * - Keeping the state of the control (valid/invalid, dirty/pristine, touched/untouched, validation errors). - * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`, `ng-touched`, `ng-untouched`) including animations. - * - Registering the control with its parent {@link ng.directive:form form}. - * - * Note: `ngModel` will try to bind to the property given by evaluating the expression on the - * current scope. If the property doesn't already exist on this scope, it will be created - * implicitly and added to the scope. - * - * For best practices on using `ngModel`, see: - * - * - [Understanding Scopes](https://github.com/angular/angular.js/wiki/Understanding-Scopes) - * - * For basic examples, how to use `ngModel`, see: - * - * - {@link ng.directive:input input} - * - {@link input[text] text} - * - {@link input[checkbox] checkbox} - * - {@link input[radio] radio} - * - {@link input[number] number} - * - {@link input[email] email} - * - {@link input[url] url} - * - {@link input[date] date} - * - {@link input[datetime-local] datetime-local} - * - {@link input[time] time} - * - {@link input[month] month} - * - {@link input[week] week} - * - {@link ng.directive:select select} - * - {@link ng.directive:textarea textarea} - * - * # CSS classes - * The following CSS classes are added and removed on the associated input/select/textarea element - * depending on the validity of the model. - * - * - `ng-valid`: the model is valid - * - `ng-invalid`: the model is invalid - * - `ng-valid-[key]`: for each valid key added by `$setValidity` - * - `ng-invalid-[key]`: for each invalid key added by `$setValidity` - * - `ng-pristine`: the control hasn't been interacted with yet - * - `ng-dirty`: the control has been interacted with - * - `ng-touched`: the control has been blurred - * - `ng-untouched`: the control hasn't been blurred - * - `ng-pending`: any `$asyncValidators` are unfulfilled - * - * Keep in mind that ngAnimate can detect each of these classes when added and removed. - * - * ## Animation Hooks - * - * Animations within models are triggered when any of the associated CSS classes are added and removed - * on the input element which is attached to the model. These classes are: `.ng-pristine`, `.ng-dirty`, - * `.ng-invalid` and `.ng-valid` as well as any other validations that are performed on the model itself. - * The animations that are triggered within ngModel are similar to how they work in ngClass and - * animations can be hooked into using CSS transitions, keyframes as well as JS animations. - * - * The following example shows a simple way to utilize CSS transitions to style an input element - * that has been rendered as invalid after it has been validated: - * - *
- * //be sure to include ngAnimate as a module to hook into more
- * //advanced animations
- * .my-input {
- *   transition:0.5s linear all;
- *   background: white;
- * }
- * .my-input.ng-invalid {
- *   background: red;
- *   color:white;
- * }
- * 
- * - * @example - * - - - - Update input to see transitions when valid/invalid. - Integer is a valid value. -
- -
-
- *
- * - * ## Binding to a getter/setter - * - * Sometimes it's helpful to bind `ngModel` to a getter/setter function. A getter/setter is a - * function that returns a representation of the model when called with zero arguments, and sets - * the internal state of a model when called with an argument. It's sometimes useful to use this - * for models that have an internal representation that's different than what the model exposes - * to the view. - * - *
- * **Best Practice:** It's best to keep getters fast because Angular is likely to call them more - * frequently than other parts of your code. - *
- * - * You use this behavior by adding `ng-model-options="{ getterSetter: true }"` to an element that - * has `ng-model` attached to it. You can also add `ng-model-options="{ getterSetter: true }"` to - * a `
`, which will enable this behavior for all ``s within it. See - * {@link ng.directive:ngModelOptions `ngModelOptions`} for more. - * - * The following example shows how to use `ngModel` with a getter/setter: - * - * @example - * - -
- - Name: - - -
user.name = 
-
-
- - angular.module('getterSetterExample', []) - .controller('ExampleController', ['$scope', function($scope) { - var _name = 'Brian'; - $scope.user = { - name: function(newName) { - if (angular.isDefined(newName)) { - _name = newName; - } - return _name; - } - }; - }]); - - *
- */ -var ngModelDirective = ['$rootScope', function($rootScope) { - return { - restrict: 'A', - require: ['ngModel', '^?form', '^?ngModelOptions'], - controller: NgModelController, - // Prelink needs to run before any input directive - // so that we can set the NgModelOptions in NgModelController - // before anyone else uses it. - priority: 1, - compile: function ngModelCompile(element) { - // Setup initial state of the control - element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS); - - return { - pre: function ngModelPreLink(scope, element, attr, ctrls) { - var modelCtrl = ctrls[0], - formCtrl = ctrls[1] || nullFormCtrl; - - modelCtrl.$$setOptions(ctrls[2] && ctrls[2].$options); - - // notify others, especially parent forms - formCtrl.$addControl(modelCtrl); - - attr.$observe('name', function(newValue) { - if (modelCtrl.$name !== newValue) { - formCtrl.$$renameControl(modelCtrl, newValue); - } - }); - - scope.$on('$destroy', function() { - formCtrl.$removeControl(modelCtrl); - }); - }, - post: function ngModelPostLink(scope, element, attr, ctrls) { - var modelCtrl = ctrls[0]; - if (modelCtrl.$options && modelCtrl.$options.updateOn) { - element.on(modelCtrl.$options.updateOn, function(ev) { - modelCtrl.$$debounceViewValueCommit(ev && ev.type); - }); - } - - element.on('blur', function(ev) { - if (modelCtrl.$touched) return; - - if ($rootScope.$$phase) { - scope.$evalAsync(modelCtrl.$setTouched); - } else { - scope.$apply(modelCtrl.$setTouched); - } - }); - } - }; - } - }; -}]; - - -/** - * @ngdoc directive - * @name ngChange - * - * @description - * Evaluate the given expression when the user changes the input. - * The expression is evaluated immediately, unlike the JavaScript onchange event - * which only triggers at the end of a change (usually, when the user leaves the - * form element or presses the return key). - * - * The `ngChange` expression is only evaluated when a change in the input value causes - * a new value to be committed to the model. - * - * It will not be evaluated: - * * if the value returned from the `$parsers` transformation pipeline has not changed - * * if the input has continued to be invalid since the model will stay `null` - * * if the model is changed programmatically and not by a change to the input value - * - * - * Note, this directive requires `ngModel` to be present. - * - * @element input - * @param {expression} ngChange {@link guide/expression Expression} to evaluate upon change - * in input value. - * - * @example - * - * - * - *
- * - * - *
- * debug = {{confirmed}}
- * counter = {{counter}}
- *
- *
- * - * var counter = element(by.binding('counter')); - * var debug = element(by.binding('confirmed')); - * - * it('should evaluate the expression if changing from view', function() { - * expect(counter.getText()).toContain('0'); - * - * element(by.id('ng-change-example1')).click(); - * - * expect(counter.getText()).toContain('1'); - * expect(debug.getText()).toContain('true'); - * }); - * - * it('should not evaluate the expression if changing from model', function() { - * element(by.id('ng-change-example2')).click(); - - * expect(counter.getText()).toContain('0'); - * expect(debug.getText()).toContain('true'); - * }); - * - *
- */ -var ngChangeDirective = valueFn({ - restrict: 'A', - require: 'ngModel', - link: function(scope, element, attr, ctrl) { - ctrl.$viewChangeListeners.push(function() { - scope.$eval(attr.ngChange); - }); - } -}); - - -var requiredDirective = function() { - return { - restrict: 'A', - require: '?ngModel', - link: function(scope, elm, attr, ctrl) { - if (!ctrl) return; - attr.required = true; // force truthy in case we are on non input element - - ctrl.$validators.required = function(modelValue, viewValue) { - return !attr.required || !ctrl.$isEmpty(viewValue); - }; - - attr.$observe('required', function() { - ctrl.$validate(); - }); - } - }; -}; - - -var patternDirective = function() { - return { - restrict: 'A', - require: '?ngModel', - link: function(scope, elm, attr, ctrl) { - if (!ctrl) return; - - var regexp, patternExp = attr.ngPattern || attr.pattern; - attr.$observe('pattern', function(regex) { - if (isString(regex) && regex.length > 0) { - regex = new RegExp('^' + regex + '$'); - } - - if (regex && !regex.test) { - throw minErr('ngPattern')('noregexp', - 'Expected {0} to be a RegExp but was {1}. Element: {2}', patternExp, - regex, startingTag(elm)); - } - - regexp = regex || undefined; - ctrl.$validate(); - }); - - ctrl.$validators.pattern = function(value) { - return ctrl.$isEmpty(value) || isUndefined(regexp) || regexp.test(value); - }; - } - }; -}; - - -var maxlengthDirective = function() { - return { - restrict: 'A', - require: '?ngModel', - link: function(scope, elm, attr, ctrl) { - if (!ctrl) return; - - var maxlength = -1; - attr.$observe('maxlength', function(value) { - var intVal = int(value); - maxlength = isNaN(intVal) ? -1 : intVal; - ctrl.$validate(); - }); - ctrl.$validators.maxlength = function(modelValue, viewValue) { - return (maxlength < 0) || ctrl.$isEmpty(modelValue) || (viewValue.length <= maxlength); - }; - } - }; -}; - -var minlengthDirective = function() { - return { - restrict: 'A', - require: '?ngModel', - link: function(scope, elm, attr, ctrl) { - if (!ctrl) return; - - var minlength = 0; - attr.$observe('minlength', function(value) { - minlength = int(value) || 0; - ctrl.$validate(); - }); - ctrl.$validators.minlength = function(modelValue, viewValue) { - return ctrl.$isEmpty(viewValue) || viewValue.length >= minlength; - }; - } - }; -}; - - -/** - * @ngdoc directive - * @name ngList - * - * @description - * Text input that converts between a delimited string and an array of strings. The default - * delimiter is a comma followed by a space - equivalent to `ng-list=", "`. You can specify a custom - * delimiter as the value of the `ngList` attribute - for example, `ng-list=" | "`. - * - * The behaviour of the directive is affected by the use of the `ngTrim` attribute. - * * If `ngTrim` is set to `"false"` then whitespace around both the separator and each - * list item is respected. This implies that the user of the directive is responsible for - * dealing with whitespace but also allows you to use whitespace as a delimiter, such as a - * tab or newline character. - * * Otherwise whitespace around the delimiter is ignored when splitting (although it is respected - * when joining the list items back together) and whitespace around each list item is stripped - * before it is added to the model. - * - * ### Example with Validation - * - * - * - * angular.module('listExample', []) - * .controller('ExampleController', ['$scope', function($scope) { - * $scope.names = ['morpheus', 'neo', 'trinity']; - * }]); - * - * - *
- * List: - * - * Required! - *
- * names = {{names}}
- * myForm.namesInput.$valid = {{myForm.namesInput.$valid}}
- * myForm.namesInput.$error = {{myForm.namesInput.$error}}
- * myForm.$valid = {{myForm.$valid}}
- * myForm.$error.required = {{!!myForm.$error.required}}
- *
- *
- * - * var listInput = element(by.model('names')); - * var names = element(by.exactBinding('names')); - * var valid = element(by.binding('myForm.namesInput.$valid')); - * var error = element(by.css('span.error')); - * - * it('should initialize to model', function() { - * expect(names.getText()).toContain('["morpheus","neo","trinity"]'); - * expect(valid.getText()).toContain('true'); - * expect(error.getCssValue('display')).toBe('none'); - * }); - * - * it('should be invalid if empty', function() { - * listInput.clear(); - * listInput.sendKeys(''); - * - * expect(names.getText()).toContain(''); - * expect(valid.getText()).toContain('false'); - * expect(error.getCssValue('display')).not.toBe('none'); - * }); - * - *
- * - * ### Example - splitting on whitespace - * - * - * - *
{{ list | json }}
- *
- * - * it("should split the text by newlines", function() { - * var listInput = element(by.model('list')); - * var output = element(by.binding('list | json')); - * listInput.sendKeys('abc\ndef\nghi'); - * expect(output.getText()).toContain('[\n "abc",\n "def",\n "ghi"\n]'); - * }); - * - *
- * - * @element input - * @param {string=} ngList optional delimiter that should be used to split the value. - */ -var ngListDirective = function() { - return { - restrict: 'A', - priority: 100, - require: 'ngModel', - link: function(scope, element, attr, ctrl) { - // We want to control whitespace trimming so we use this convoluted approach - // to access the ngList attribute, which doesn't pre-trim the attribute - var ngList = element.attr(attr.$attr.ngList) || ', '; - var trimValues = attr.ngTrim !== 'false'; - var separator = trimValues ? trim(ngList) : ngList; - - var parse = function(viewValue) { - // If the viewValue is invalid (say required but empty) it will be `undefined` - if (isUndefined(viewValue)) return; - - var list = []; - - if (viewValue) { - forEach(viewValue.split(separator), function(value) { - if (value) list.push(trimValues ? trim(value) : value); - }); - } - - return list; - }; - - ctrl.$parsers.push(parse); - ctrl.$formatters.push(function(value) { - if (isArray(value)) { - return value.join(ngList); - } - - return undefined; - }); - - // Override the standard $isEmpty because an empty array means the input is empty. - ctrl.$isEmpty = function(value) { - return !value || !value.length; - }; - } - }; -}; var CONSTANT_VALUE_REGEXP = /^(true|false|\d+)$/; @@ -21568,281 +20222,6 @@ var ngValueDirective = function() { }; }; -/** - * @ngdoc directive - * @name ngModelOptions - * - * @description - * Allows tuning how model updates are done. Using `ngModelOptions` you can specify a custom list of - * events that will trigger a model update and/or a debouncing delay so that the actual update only - * takes place when a timer expires; this timer will be reset after another change takes place. - * - * Given the nature of `ngModelOptions`, the value displayed inside input fields in the view might - * be different than the value in the actual model. This means that if you update the model you - * should also invoke {@link ngModel.NgModelController `$rollbackViewValue`} on the relevant input field in - * order to make sure it is synchronized with the model and that any debounced action is canceled. - * - * The easiest way to reference the control's {@link ngModel.NgModelController `$rollbackViewValue`} - * method is by making sure the input is placed inside a form that has a `name` attribute. This is - * important because `form` controllers are published to the related scope under the name in their - * `name` attribute. - * - * Any pending changes will take place immediately when an enclosing form is submitted via the - * `submit` event. Note that `ngClick` events will occur before the model is updated. Use `ngSubmit` - * to have access to the updated model. - * - * `ngModelOptions` has an effect on the element it's declared on and its descendants. - * - * @param {Object} ngModelOptions options to apply to the current model. Valid keys are: - * - `updateOn`: string specifying which event should the input be bound to. You can set several - * events using an space delimited list. There is a special event called `default` that - * matches the default events belonging of the control. - * - `debounce`: integer value which contains the debounce model update value in milliseconds. A - * value of 0 triggers an immediate update. If an object is supplied instead, you can specify a - * custom value for each event. For example: - * `ng-model-options="{ updateOn: 'default blur', debounce: {'default': 500, 'blur': 0} }"` - * - `allowInvalid`: boolean value which indicates that the model can be set with values that did - * not validate correctly instead of the default behavior of setting the model to undefined. - * - `getterSetter`: boolean value which determines whether or not to treat functions bound to - `ngModel` as getters/setters. - * - `timezone`: Defines the timezone to be used to read/write the `Date` instance in the model for - * ``, ``, ... . Right now, the only supported value is `'UTC'`, - * otherwise the default timezone of the browser will be used. - * - * @example - - The following example shows how to override immediate updates. Changes on the inputs within the - form will update the model only when the control loses focus (blur event). If `escape` key is - pressed while the input field is focused, the value is reset to the value in the current model. - - - -
-
- Name: -
- - Other data: -
-
-
user.name = 
-
-
- - angular.module('optionsExample', []) - .controller('ExampleController', ['$scope', function($scope) { - $scope.user = { name: 'say', data: '' }; - - $scope.cancel = function(e) { - if (e.keyCode == 27) { - $scope.userForm.userName.$rollbackViewValue(); - } - }; - }]); - - - var model = element(by.binding('user.name')); - var input = element(by.model('user.name')); - var other = element(by.model('user.data')); - - it('should allow custom events', function() { - input.sendKeys(' hello'); - input.click(); - expect(model.getText()).toEqual('say'); - other.click(); - expect(model.getText()).toEqual('say hello'); - }); - - it('should $rollbackViewValue when model changes', function() { - input.sendKeys(' hello'); - expect(input.getAttribute('value')).toEqual('say hello'); - input.sendKeys(protractor.Key.ESCAPE); - expect(input.getAttribute('value')).toEqual('say'); - other.click(); - expect(model.getText()).toEqual('say'); - }); - -
- - This one shows how to debounce model changes. Model will be updated only 1 sec after last change. - If the `Clear` button is pressed, any debounced action is canceled and the value becomes empty. - - - -
-
- Name: - -
-
-
user.name = 
-
-
- - angular.module('optionsExample', []) - .controller('ExampleController', ['$scope', function($scope) { - $scope.user = { name: 'say' }; - }]); - -
- - This one shows how to bind to getter/setters: - - - -
-
- Name: - -
-
user.name = 
-
-
- - angular.module('getterSetterExample', []) - .controller('ExampleController', ['$scope', function($scope) { - var _name = 'Brian'; - $scope.user = { - name: function(newName) { - return angular.isDefined(newName) ? (_name = newName) : _name; - } - }; - }]); - -
- */ -var ngModelOptionsDirective = function() { - return { - restrict: 'A', - controller: ['$scope', '$attrs', function($scope, $attrs) { - var that = this; - this.$options = $scope.$eval($attrs.ngModelOptions); - // Allow adding/overriding bound events - if (this.$options.updateOn !== undefined) { - this.$options.updateOnDefault = false; - // extract "default" pseudo-event from list of events that can trigger a model update - this.$options.updateOn = trim(this.$options.updateOn.replace(DEFAULT_REGEXP, function() { - that.$options.updateOnDefault = true; - return ' '; - })); - } else { - this.$options.updateOnDefault = true; - } - }] - }; -}; - -// helper methods -function addSetValidityMethod(context) { - var ctrl = context.ctrl, - $element = context.$element, - classCache = {}, - set = context.set, - unset = context.unset, - parentForm = context.parentForm, - $animate = context.$animate; - - classCache[INVALID_CLASS] = !(classCache[VALID_CLASS] = $element.hasClass(VALID_CLASS)); - - ctrl.$setValidity = setValidity; - - function setValidity(validationErrorKey, state, options) { - if (state === undefined) { - createAndSet('$pending', validationErrorKey, options); - } else { - unsetAndCleanup('$pending', validationErrorKey, options); - } - if (!isBoolean(state)) { - unset(ctrl.$error, validationErrorKey, options); - unset(ctrl.$$success, validationErrorKey, options); - } else { - if (state) { - unset(ctrl.$error, validationErrorKey, options); - set(ctrl.$$success, validationErrorKey, options); - } else { - set(ctrl.$error, validationErrorKey, options); - unset(ctrl.$$success, validationErrorKey, options); - } - } - if (ctrl.$pending) { - cachedToggleClass(PENDING_CLASS, true); - ctrl.$valid = ctrl.$invalid = undefined; - toggleValidationCss('', null); - } else { - cachedToggleClass(PENDING_CLASS, false); - ctrl.$valid = isObjectEmpty(ctrl.$error); - ctrl.$invalid = !ctrl.$valid; - toggleValidationCss('', ctrl.$valid); - } - - // re-read the state as the set/unset methods could have - // combined state in ctrl.$error[validationError] (used for forms), - // where setting/unsetting only increments/decrements the value, - // and does not replace it. - var combinedState; - if (ctrl.$pending && ctrl.$pending[validationErrorKey]) { - combinedState = undefined; - } else if (ctrl.$error[validationErrorKey]) { - combinedState = false; - } else if (ctrl.$$success[validationErrorKey]) { - combinedState = true; - } else { - combinedState = null; - } - toggleValidationCss(validationErrorKey, combinedState); - parentForm.$setValidity(validationErrorKey, combinedState, ctrl); - } - - function createAndSet(name, value, options) { - if (!ctrl[name]) { - ctrl[name] = {}; - } - set(ctrl[name], value, options); - } - - function unsetAndCleanup(name, value, options) { - if (ctrl[name]) { - unset(ctrl[name], value, options); - } - if (isObjectEmpty(ctrl[name])) { - ctrl[name] = undefined; - } - } - - function cachedToggleClass(className, switchValue) { - if (switchValue && !classCache[className]) { - $animate.addClass($element, className); - classCache[className] = true; - } else if (!switchValue && classCache[className]) { - $animate.removeClass($element, className); - classCache[className] = false; - } - } - - function toggleValidationCss(validationErrorKey, isValid) { - validationErrorKey = validationErrorKey ? '-' + snake_case(validationErrorKey, '-') : ''; - - cachedToggleClass(VALID_CLASS + validationErrorKey, isValid === true); - cachedToggleClass(INVALID_CLASS + validationErrorKey, isValid === false); - } -} - -function isObjectEmpty(obj) { - if (obj) { - for (var prop in obj) { - return false; - } - } - return true; -} - /** * @ngdoc directive * @name ngBind @@ -22049,6 +20428,83 @@ var ngBindHtmlDirective = ['$sce', '$parse', '$compile', function($sce, $parse, }; }]; +/** + * @ngdoc directive + * @name ngChange + * + * @description + * Evaluate the given expression when the user changes the input. + * The expression is evaluated immediately, unlike the JavaScript onchange event + * which only triggers at the end of a change (usually, when the user leaves the + * form element or presses the return key). + * + * The `ngChange` expression is only evaluated when a change in the input value causes + * a new value to be committed to the model. + * + * It will not be evaluated: + * * if the value returned from the `$parsers` transformation pipeline has not changed + * * if the input has continued to be invalid since the model will stay `null` + * * if the model is changed programmatically and not by a change to the input value + * + * + * Note, this directive requires `ngModel` to be present. + * + * @element input + * @param {expression} ngChange {@link guide/expression Expression} to evaluate upon change + * in input value. + * + * @example + * + * + * + *
+ * + * + *
+ * debug = {{confirmed}}
+ * counter = {{counter}}
+ *
+ *
+ * + * var counter = element(by.binding('counter')); + * var debug = element(by.binding('confirmed')); + * + * it('should evaluate the expression if changing from view', function() { + * expect(counter.getText()).toContain('0'); + * + * element(by.id('ng-change-example1')).click(); + * + * expect(counter.getText()).toContain('1'); + * expect(debug.getText()).toContain('true'); + * }); + * + * it('should not evaluate the expression if changing from model', function() { + * element(by.id('ng-change-example2')).click(); + + * expect(counter.getText()).toContain('0'); + * expect(debug.getText()).toContain('true'); + * }); + * + *
+ */ +var ngChangeDirective = valueFn({ + restrict: 'A', + require: 'ngModel', + link: function(scope, element, attr, ctrl) { + ctrl.$viewChangeListeners.push(function() { + scope.$eval(attr.ngChange); + }); + } +}); + function classDirective(name, selector) { name = 'ngClass' + name; return ['$animate', function($animate) { @@ -22190,8 +20646,9 @@ function classDirective(name, selector) { * new classes are added. * * @animations - * add - happens just before the class is applied to the element - * remove - happens just before the class is removed from the element + * **add** - happens just before the class is applied to the elements + * + * **remove** - happens just before the class is removed from the element * * @element ANY * @param {expression} ngClass {@link guide/expression Expression} to eval. The result @@ -23533,7 +21990,7 @@ var ngIfDirective = ['$animate', function($animate) { - url of the template: {{template.url}} + url of the template: {{template.url}}
@@ -23657,7 +22114,7 @@ var ngIfDirective = ['$animate', function($animate) { * @name ngInclude#$includeContentError * @eventType emit on the scope ngInclude was declared in * @description - * Emitted when a template HTTP request yields an erronous response (status < 200 || status > 299) + * Emitted when a template HTTP request yields an erroneous response (status < 200 || status > 299) * * @param {Object} angularEvent Synthetic event object. * @param {String} src URL of content to load. @@ -23845,6 +22302,1466 @@ var ngInitDirective = ngDirective({ } }); +/** + * @ngdoc directive + * @name ngList + * + * @description + * Text input that converts between a delimited string and an array of strings. The default + * delimiter is a comma followed by a space - equivalent to `ng-list=", "`. You can specify a custom + * delimiter as the value of the `ngList` attribute - for example, `ng-list=" | "`. + * + * The behaviour of the directive is affected by the use of the `ngTrim` attribute. + * * If `ngTrim` is set to `"false"` then whitespace around both the separator and each + * list item is respected. This implies that the user of the directive is responsible for + * dealing with whitespace but also allows you to use whitespace as a delimiter, such as a + * tab or newline character. + * * Otherwise whitespace around the delimiter is ignored when splitting (although it is respected + * when joining the list items back together) and whitespace around each list item is stripped + * before it is added to the model. + * + * ### Example with Validation + * + * + * + * angular.module('listExample', []) + * .controller('ExampleController', ['$scope', function($scope) { + * $scope.names = ['morpheus', 'neo', 'trinity']; + * }]); + * + * + *
+ * List: + * + * Required! + *
+ * names = {{names}}
+ * myForm.namesInput.$valid = {{myForm.namesInput.$valid}}
+ * myForm.namesInput.$error = {{myForm.namesInput.$error}}
+ * myForm.$valid = {{myForm.$valid}}
+ * myForm.$error.required = {{!!myForm.$error.required}}
+ *
+ *
+ * + * var listInput = element(by.model('names')); + * var names = element(by.exactBinding('names')); + * var valid = element(by.binding('myForm.namesInput.$valid')); + * var error = element(by.css('span.error')); + * + * it('should initialize to model', function() { + * expect(names.getText()).toContain('["morpheus","neo","trinity"]'); + * expect(valid.getText()).toContain('true'); + * expect(error.getCssValue('display')).toBe('none'); + * }); + * + * it('should be invalid if empty', function() { + * listInput.clear(); + * listInput.sendKeys(''); + * + * expect(names.getText()).toContain(''); + * expect(valid.getText()).toContain('false'); + * expect(error.getCssValue('display')).not.toBe('none'); + * }); + * + *
+ * + * ### Example - splitting on whitespace + * + * + * + *
{{ list | json }}
+ *
+ * + * it("should split the text by newlines", function() { + * var listInput = element(by.model('list')); + * var output = element(by.binding('list | json')); + * listInput.sendKeys('abc\ndef\nghi'); + * expect(output.getText()).toContain('[\n "abc",\n "def",\n "ghi"\n]'); + * }); + * + *
+ * + * @element input + * @param {string=} ngList optional delimiter that should be used to split the value. + */ +var ngListDirective = function() { + return { + restrict: 'A', + priority: 100, + require: 'ngModel', + link: function(scope, element, attr, ctrl) { + // We want to control whitespace trimming so we use this convoluted approach + // to access the ngList attribute, which doesn't pre-trim the attribute + var ngList = element.attr(attr.$attr.ngList) || ', '; + var trimValues = attr.ngTrim !== 'false'; + var separator = trimValues ? trim(ngList) : ngList; + + var parse = function(viewValue) { + // If the viewValue is invalid (say required but empty) it will be `undefined` + if (isUndefined(viewValue)) return; + + var list = []; + + if (viewValue) { + forEach(viewValue.split(separator), function(value) { + if (value) list.push(trimValues ? trim(value) : value); + }); + } + + return list; + }; + + ctrl.$parsers.push(parse); + ctrl.$formatters.push(function(value) { + if (isArray(value)) { + return value.join(ngList); + } + + return undefined; + }); + + // Override the standard $isEmpty because an empty array means the input is empty. + ctrl.$isEmpty = function(value) { + return !value || !value.length; + }; + } + }; +}; + +/* global VALID_CLASS: true, + INVALID_CLASS: true, + PRISTINE_CLASS: true, + DIRTY_CLASS: true, + UNTOUCHED_CLASS: true, + TOUCHED_CLASS: true, +*/ + +var VALID_CLASS = 'ng-valid', + INVALID_CLASS = 'ng-invalid', + PRISTINE_CLASS = 'ng-pristine', + DIRTY_CLASS = 'ng-dirty', + UNTOUCHED_CLASS = 'ng-untouched', + TOUCHED_CLASS = 'ng-touched', + PENDING_CLASS = 'ng-pending'; + + +var $ngModelMinErr = new minErr('ngModel'); + +/** + * @ngdoc type + * @name ngModel.NgModelController + * + * @property {string} $viewValue Actual string value in the view. + * @property {*} $modelValue The value in the model that the control is bound to. + * @property {Array.} $parsers Array of functions to execute, as a pipeline, whenever + the control reads value from the DOM. The functions are called in array order, each passing + its return value through to the next. The last return value is forwarded to the + {@link ngModel.NgModelController#$validators `$validators`} collection. + +Parsers are used to sanitize / convert the {@link ngModel.NgModelController#$viewValue +`$viewValue`}. + +Returning `undefined` from a parser means a parse error occurred. In that case, +no {@link ngModel.NgModelController#$validators `$validators`} will run and the `ngModel` +will be set to `undefined` unless {@link ngModelOptions `ngModelOptions.allowInvalid`} +is set to `true`. The parse error is stored in `ngModel.$error.parse`. + + * + * @property {Array.} $formatters Array of functions to execute, as a pipeline, whenever + the model value changes. The functions are called in reverse array order, each passing the value through to the + next. The last return value is used as the actual DOM value. + Used to format / convert values for display in the control. + * ```js + * function formatter(value) { + * if (value) { + * return value.toUpperCase(); + * } + * } + * ngModel.$formatters.push(formatter); + * ``` + * + * @property {Object.} $validators A collection of validators that are applied + * whenever the model value changes. The key value within the object refers to the name of the + * validator while the function refers to the validation operation. The validation operation is + * provided with the model value as an argument and must return a true or false value depending + * on the response of that validation. + * + * ```js + * ngModel.$validators.validCharacters = function(modelValue, viewValue) { + * var value = modelValue || viewValue; + * return /[0-9]+/.test(value) && + * /[a-z]+/.test(value) && + * /[A-Z]+/.test(value) && + * /\W+/.test(value); + * }; + * ``` + * + * @property {Object.} $asyncValidators A collection of validations that are expected to + * perform an asynchronous validation (e.g. a HTTP request). The validation function that is provided + * is expected to return a promise when it is run during the model validation process. Once the promise + * is delivered then the validation status will be set to true when fulfilled and false when rejected. + * When the asynchronous validators are triggered, each of the validators will run in parallel and the model + * value will only be updated once all validators have been fulfilled. As long as an asynchronous validator + * is unfulfilled, its key will be added to the controllers `$pending` property. Also, all asynchronous validators + * will only run once all synchronous validators have passed. + * + * Please note that if $http is used then it is important that the server returns a success HTTP response code + * in order to fulfill the validation and a status level of `4xx` in order to reject the validation. + * + * ```js + * ngModel.$asyncValidators.uniqueUsername = function(modelValue, viewValue) { + * var value = modelValue || viewValue; + * + * // Lookup user by username + * return $http.get('/api/users/' + value). + * then(function resolved() { + * //username exists, this means validation fails + * return $q.reject('exists'); + * }, function rejected() { + * //username does not exist, therefore this validation passes + * return true; + * }); + * }; + * ``` + * + * @property {Array.} $viewChangeListeners Array of functions to execute whenever the + * view value has changed. It is called with no arguments, and its return value is ignored. + * This can be used in place of additional $watches against the model value. + * + * @property {Object} $error An object hash with all failing validator ids as keys. + * @property {Object} $pending An object hash with all pending validator ids as keys. + * + * @property {boolean} $untouched True if control has not lost focus yet. + * @property {boolean} $touched True if control has lost focus. + * @property {boolean} $pristine True if user has not interacted with the control yet. + * @property {boolean} $dirty True if user has already interacted with the control. + * @property {boolean} $valid True if there is no error. + * @property {boolean} $invalid True if at least one error on the control. + * @property {string} $name The name attribute of the control. + * + * @description + * + * `NgModelController` provides API for the {@link ngModel `ngModel`} directive. + * The controller contains services for data-binding, validation, CSS updates, and value formatting + * and parsing. It purposefully does not contain any logic which deals with DOM rendering or + * listening to DOM events. + * Such DOM related logic should be provided by other directives which make use of + * `NgModelController` for data-binding to control elements. + * Angular provides this DOM logic for most {@link input `input`} elements. + * At the end of this page you can find a {@link ngModel.NgModelController#custom-control-example + * custom control example} that uses `ngModelController` to bind to `contenteditable` elements. + * + * @example + * ### Custom Control Example + * This example shows how to use `NgModelController` with a custom control to achieve + * data-binding. Notice how different directives (`contenteditable`, `ng-model`, and `required`) + * collaborate together to achieve the desired result. + * + * Note that `contenteditable` is an HTML5 attribute, which tells the browser to let the element + * contents be edited in place by the user. This will not work on older browsers. + * + * We are using the {@link ng.service:$sce $sce} service here and include the {@link ngSanitize $sanitize} + * module to automatically remove "bad" content like inline event listener (e.g. ``). + * However, as we are using `$sce` the model can still decide to provide unsafe content if it marks + * that content using the `$sce` service. + * + * + + [contenteditable] { + border: 1px solid black; + background-color: white; + min-height: 20px; + } + + .ng-invalid { + border: 1px solid red; + } + + + + angular.module('customControl', ['ngSanitize']). + directive('contenteditable', ['$sce', function($sce) { + return { + restrict: 'A', // only activate on element attribute + require: '?ngModel', // get a hold of NgModelController + link: function(scope, element, attrs, ngModel) { + if (!ngModel) return; // do nothing if no ng-model + + // Specify how UI should be updated + ngModel.$render = function() { + element.html($sce.getTrustedHtml(ngModel.$viewValue || '')); + }; + + // Listen for change events to enable binding + element.on('blur keyup change', function() { + scope.$evalAsync(read); + }); + read(); // initialize + + // Write data to the model + function read() { + var html = element.html(); + // When we clear the content editable the browser leaves a
behind + // If strip-br attribute is provided then we strip this out + if ( attrs.stripBr && html == '
' ) { + html = ''; + } + ngModel.$setViewValue(html); + } + } + }; + }]); +
+ +
+
Change me!
+ Required! +
+ +
+
+ + it('should data-bind and become invalid', function() { + if (browser.params.browser == 'safari' || browser.params.browser == 'firefox') { + // SafariDriver can't handle contenteditable + // and Firefox driver can't clear contenteditables very well + return; + } + var contentEditable = element(by.css('[contenteditable]')); + var content = 'Change me!'; + + expect(contentEditable.getText()).toEqual(content); + + contentEditable.clear(); + contentEditable.sendKeys(protractor.Key.BACK_SPACE); + expect(contentEditable.getText()).toEqual(''); + expect(contentEditable.getAttribute('class')).toMatch(/ng-invalid-required/); + }); + + *
+ * + * + */ +var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$parse', '$animate', '$timeout', '$rootScope', '$q', '$interpolate', + function($scope, $exceptionHandler, $attr, $element, $parse, $animate, $timeout, $rootScope, $q, $interpolate) { + this.$viewValue = Number.NaN; + this.$modelValue = Number.NaN; + this.$$rawModelValue = undefined; // stores the parsed modelValue / model set from scope regardless of validity. + this.$validators = {}; + this.$asyncValidators = {}; + this.$parsers = []; + this.$formatters = []; + this.$viewChangeListeners = []; + this.$untouched = true; + this.$touched = false; + this.$pristine = true; + this.$dirty = false; + this.$valid = true; + this.$invalid = false; + this.$error = {}; // keep invalid keys here + this.$$success = {}; // keep valid keys here + this.$pending = undefined; // keep pending keys here + this.$name = $interpolate($attr.name || '', false)($scope); + + + var parsedNgModel = $parse($attr.ngModel), + parsedNgModelAssign = parsedNgModel.assign, + ngModelGet = parsedNgModel, + ngModelSet = parsedNgModelAssign, + pendingDebounce = null, + ctrl = this; + + this.$$setOptions = function(options) { + ctrl.$options = options; + if (options && options.getterSetter) { + var invokeModelGetter = $parse($attr.ngModel + '()'), + invokeModelSetter = $parse($attr.ngModel + '($$$p)'); + + ngModelGet = function($scope) { + var modelValue = parsedNgModel($scope); + if (isFunction(modelValue)) { + modelValue = invokeModelGetter($scope); + } + return modelValue; + }; + ngModelSet = function($scope, newValue) { + if (isFunction(parsedNgModel($scope))) { + invokeModelSetter($scope, {$$$p: ctrl.$modelValue}); + } else { + parsedNgModelAssign($scope, ctrl.$modelValue); + } + }; + } else if (!parsedNgModel.assign) { + throw $ngModelMinErr('nonassign', "Expression '{0}' is non-assignable. Element: {1}", + $attr.ngModel, startingTag($element)); + } + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$render + * + * @description + * Called when the view needs to be updated. It is expected that the user of the ng-model + * directive will implement this method. + * + * The `$render()` method is invoked in the following situations: + * + * * `$rollbackViewValue()` is called. If we are rolling back the view value to the last + * committed value then `$render()` is called to update the input control. + * * The value referenced by `ng-model` is changed programmatically and both the `$modelValue` and + * the `$viewValue` are different to last time. + * + * Since `ng-model` does not do a deep watch, `$render()` is only invoked if the values of + * `$modelValue` and `$viewValue` are actually different to their previous value. If `$modelValue` + * or `$viewValue` are objects (rather than a string or number) then `$render()` will not be + * invoked if you only change a property on the objects. + */ + this.$render = noop; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$isEmpty + * + * @description + * This is called when we need to determine if the value of an input is empty. + * + * For instance, the required directive does this to work out if the input has data or not. + * + * The default `$isEmpty` function checks whether the value is `undefined`, `''`, `null` or `NaN`. + * + * You can override this for input directives whose concept of being empty is different to the + * default. The `checkboxInputType` directive does this because in its case a value of `false` + * implies empty. + * + * @param {*} value The value of the input to check for emptiness. + * @returns {boolean} True if `value` is "empty". + */ + this.$isEmpty = function(value) { + return isUndefined(value) || value === '' || value === null || value !== value; + }; + + var parentForm = $element.inheritedData('$formController') || nullFormCtrl, + currentValidationRunId = 0; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setValidity + * + * @description + * Change the validity state, and notify the form. + * + * This method can be called within $parsers/$formatters or a custom validation implementation. + * However, in most cases it should be sufficient to use the `ngModel.$validators` and + * `ngModel.$asyncValidators` collections which will call `$setValidity` automatically. + * + * @param {string} validationErrorKey Name of the validator. The `validationErrorKey` will be assigned + * to either `$error[validationErrorKey]` or `$pending[validationErrorKey]` + * (for unfulfilled `$asyncValidators`), so that it is available for data-binding. + * The `validationErrorKey` should be in camelCase and will get converted into dash-case + * for class name. Example: `myError` will result in `ng-valid-my-error` and `ng-invalid-my-error` + * class and can be bound to as `{{someForm.someControl.$error.myError}}` . + * @param {boolean} isValid Whether the current state is valid (true), invalid (false), pending (undefined), + * or skipped (null). Pending is used for unfulfilled `$asyncValidators`. + * Skipped is used by Angular when validators do not run because of parse errors and + * when `$asyncValidators` do not run because any of the `$validators` failed. + */ + addSetValidityMethod({ + ctrl: this, + $element: $element, + set: function(object, property) { + object[property] = true; + }, + unset: function(object, property) { + delete object[property]; + }, + parentForm: parentForm, + $animate: $animate + }); + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setPristine + * + * @description + * Sets the control to its pristine state. + * + * This method can be called to remove the `ng-dirty` class and set the control to its pristine + * state (`ng-pristine` class). A model is considered to be pristine when the control + * has not been changed from when first compiled. + */ + this.$setPristine = function() { + ctrl.$dirty = false; + ctrl.$pristine = true; + $animate.removeClass($element, DIRTY_CLASS); + $animate.addClass($element, PRISTINE_CLASS); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setDirty + * + * @description + * Sets the control to its dirty state. + * + * This method can be called to remove the `ng-pristine` class and set the control to its dirty + * state (`ng-dirty` class). A model is considered to be dirty when the control has been changed + * from when first compiled. + */ + this.$setDirty = function() { + ctrl.$dirty = true; + ctrl.$pristine = false; + $animate.removeClass($element, PRISTINE_CLASS); + $animate.addClass($element, DIRTY_CLASS); + parentForm.$setDirty(); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setUntouched + * + * @description + * Sets the control to its untouched state. + * + * This method can be called to remove the `ng-touched` class and set the control to its + * untouched state (`ng-untouched` class). Upon compilation, a model is set as untouched + * by default, however this function can be used to restore that state if the model has + * already been touched by the user. + */ + this.$setUntouched = function() { + ctrl.$touched = false; + ctrl.$untouched = true; + $animate.setClass($element, UNTOUCHED_CLASS, TOUCHED_CLASS); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setTouched + * + * @description + * Sets the control to its touched state. + * + * This method can be called to remove the `ng-untouched` class and set the control to its + * touched state (`ng-touched` class). A model is considered to be touched when the user has + * first focused the control element and then shifted focus away from the control (blur event). + */ + this.$setTouched = function() { + ctrl.$touched = true; + ctrl.$untouched = false; + $animate.setClass($element, TOUCHED_CLASS, UNTOUCHED_CLASS); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$rollbackViewValue + * + * @description + * Cancel an update and reset the input element's value to prevent an update to the `$modelValue`, + * which may be caused by a pending debounced event or because the input is waiting for a some + * future event. + * + * If you have an input that uses `ng-model-options` to set up debounced events or events such + * as blur you can have a situation where there is a period when the `$viewValue` + * is out of synch with the ngModel's `$modelValue`. + * + * In this case, you can run into difficulties if you try to update the ngModel's `$modelValue` + * programmatically before these debounced/future events have resolved/occurred, because Angular's + * dirty checking mechanism is not able to tell whether the model has actually changed or not. + * + * The `$rollbackViewValue()` method should be called before programmatically changing the model of an + * input which may have such events pending. This is important in order to make sure that the + * input field will be updated with the new model value and any pending operations are cancelled. + * + * + * + * angular.module('cancel-update-example', []) + * + * .controller('CancelUpdateController', ['$scope', function($scope) { + * $scope.resetWithCancel = function(e) { + * if (e.keyCode == 27) { + * $scope.myForm.myInput1.$rollbackViewValue(); + * $scope.myValue = ''; + * } + * }; + * $scope.resetWithoutCancel = function(e) { + * if (e.keyCode == 27) { + * $scope.myValue = ''; + * } + * }; + * }]); + * + * + *
+ *

Try typing something in each input. See that the model only updates when you + * blur off the input. + *

+ *

Now see what happens if you start typing then press the Escape key

+ * + *
+ *

With $rollbackViewValue()

+ *
+ * myValue: "{{ myValue }}" + * + *

Without $rollbackViewValue()

+ *
+ * myValue: "{{ myValue }}" + *
+ *
+ *
+ *
+ */ + this.$rollbackViewValue = function() { + $timeout.cancel(pendingDebounce); + ctrl.$viewValue = ctrl.$$lastCommittedViewValue; + ctrl.$render(); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$validate + * + * @description + * Runs each of the registered validators (first synchronous validators and then + * asynchronous validators). + * If the validity changes to invalid, the model will be set to `undefined`, + * unless {@link ngModelOptions `ngModelOptions.allowInvalid`} is `true`. + * If the validity changes to valid, it will set the model to the last available valid + * modelValue, i.e. either the last parsed value or the last value set from the scope. + */ + this.$validate = function() { + // ignore $validate before model is initialized + if (isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)) { + return; + } + + var viewValue = ctrl.$$lastCommittedViewValue; + // Note: we use the $$rawModelValue as $modelValue might have been + // set to undefined during a view -> model update that found validation + // errors. We can't parse the view here, since that could change + // the model although neither viewValue nor the model on the scope changed + var modelValue = ctrl.$$rawModelValue; + + // Check if the there's a parse error, so we don't unset it accidentially + var parserName = ctrl.$$parserName || 'parse'; + var parserValid = ctrl.$error[parserName] ? false : undefined; + + var prevValid = ctrl.$valid; + var prevModelValue = ctrl.$modelValue; + + var allowInvalid = ctrl.$options && ctrl.$options.allowInvalid; + + ctrl.$$runValidators(parserValid, modelValue, viewValue, function(allValid) { + // If there was no change in validity, don't update the model + // This prevents changing an invalid modelValue to undefined + if (!allowInvalid && prevValid !== allValid) { + // Note: Don't check ctrl.$valid here, as we could have + // external validators (e.g. calculated on the server), + // that just call $setValidity and need the model value + // to calculate their validity. + ctrl.$modelValue = allValid ? modelValue : undefined; + + if (ctrl.$modelValue !== prevModelValue) { + ctrl.$$writeModelToScope(); + } + } + }); + + }; + + this.$$runValidators = function(parseValid, modelValue, viewValue, doneCallback) { + currentValidationRunId++; + var localValidationRunId = currentValidationRunId; + + // check parser error + if (!processParseErrors(parseValid)) { + validationDone(false); + return; + } + if (!processSyncValidators()) { + validationDone(false); + return; + } + processAsyncValidators(); + + function processParseErrors(parseValid) { + var errorKey = ctrl.$$parserName || 'parse'; + if (parseValid === undefined) { + setValidity(errorKey, null); + } else { + setValidity(errorKey, parseValid); + if (!parseValid) { + forEach(ctrl.$validators, function(v, name) { + setValidity(name, null); + }); + forEach(ctrl.$asyncValidators, function(v, name) { + setValidity(name, null); + }); + return false; + } + } + return true; + } + + function processSyncValidators() { + var syncValidatorsValid = true; + forEach(ctrl.$validators, function(validator, name) { + var result = validator(modelValue, viewValue); + syncValidatorsValid = syncValidatorsValid && result; + setValidity(name, result); + }); + if (!syncValidatorsValid) { + forEach(ctrl.$asyncValidators, function(v, name) { + setValidity(name, null); + }); + return false; + } + return true; + } + + function processAsyncValidators() { + var validatorPromises = []; + var allValid = true; + forEach(ctrl.$asyncValidators, function(validator, name) { + var promise = validator(modelValue, viewValue); + if (!isPromiseLike(promise)) { + throw $ngModelMinErr("$asyncValidators", + "Expected asynchronous validator to return a promise but got '{0}' instead.", promise); + } + setValidity(name, undefined); + validatorPromises.push(promise.then(function() { + setValidity(name, true); + }, function(error) { + allValid = false; + setValidity(name, false); + })); + }); + if (!validatorPromises.length) { + validationDone(true); + } else { + $q.all(validatorPromises).then(function() { + validationDone(allValid); + }, noop); + } + } + + function setValidity(name, isValid) { + if (localValidationRunId === currentValidationRunId) { + ctrl.$setValidity(name, isValid); + } + } + + function validationDone(allValid) { + if (localValidationRunId === currentValidationRunId) { + + doneCallback(allValid); + } + } + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$commitViewValue + * + * @description + * Commit a pending update to the `$modelValue`. + * + * Updates may be pending by a debounced event or because the input is waiting for a some future + * event defined in `ng-model-options`. this method is rarely needed as `NgModelController` + * usually handles calling this in response to input events. + */ + this.$commitViewValue = function() { + var viewValue = ctrl.$viewValue; + + $timeout.cancel(pendingDebounce); + + // If the view value has not changed then we should just exit, except in the case where there is + // a native validator on the element. In this case the validation state may have changed even though + // the viewValue has stayed empty. + if (ctrl.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !ctrl.$$hasNativeValidators)) { + return; + } + ctrl.$$lastCommittedViewValue = viewValue; + + // change to dirty + if (ctrl.$pristine) { + this.$setDirty(); + } + this.$$parseAndValidate(); + }; + + this.$$parseAndValidate = function() { + var viewValue = ctrl.$$lastCommittedViewValue; + var modelValue = viewValue; + var parserValid = isUndefined(modelValue) ? undefined : true; + + if (parserValid) { + for (var i = 0; i < ctrl.$parsers.length; i++) { + modelValue = ctrl.$parsers[i](modelValue); + if (isUndefined(modelValue)) { + parserValid = false; + break; + } + } + } + if (isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)) { + // ctrl.$modelValue has not been touched yet... + ctrl.$modelValue = ngModelGet($scope); + } + var prevModelValue = ctrl.$modelValue; + var allowInvalid = ctrl.$options && ctrl.$options.allowInvalid; + ctrl.$$rawModelValue = modelValue; + + if (allowInvalid) { + ctrl.$modelValue = modelValue; + writeToModelIfNeeded(); + } + + // Pass the $$lastCommittedViewValue here, because the cached viewValue might be out of date. + // This can happen if e.g. $setViewValue is called from inside a parser + ctrl.$$runValidators(parserValid, modelValue, ctrl.$$lastCommittedViewValue, function(allValid) { + if (!allowInvalid) { + // Note: Don't check ctrl.$valid here, as we could have + // external validators (e.g. calculated on the server), + // that just call $setValidity and need the model value + // to calculate their validity. + ctrl.$modelValue = allValid ? modelValue : undefined; + writeToModelIfNeeded(); + } + }); + + function writeToModelIfNeeded() { + if (ctrl.$modelValue !== prevModelValue) { + ctrl.$$writeModelToScope(); + } + } + }; + + this.$$writeModelToScope = function() { + ngModelSet($scope, ctrl.$modelValue); + forEach(ctrl.$viewChangeListeners, function(listener) { + try { + listener(); + } catch (e) { + $exceptionHandler(e); + } + }); + }; + + /** + * @ngdoc method + * @name ngModel.NgModelController#$setViewValue + * + * @description + * Update the view value. + * + * This method should be called when an input directive want to change the view value; typically, + * this is done from within a DOM event handler. + * + * For example {@link ng.directive:input input} calls it when the value of the input changes and + * {@link ng.directive:select select} calls it when an option is selected. + * + * If the new `value` is an object (rather than a string or a number), we should make a copy of the + * object before passing it to `$setViewValue`. This is because `ngModel` does not perform a deep + * watch of objects, it only looks for a change of identity. If you only change the property of + * the object then ngModel will not realise that the object has changed and will not invoke the + * `$parsers` and `$validators` pipelines. + * + * For this reason, you should not change properties of the copy once it has been passed to + * `$setViewValue`. Otherwise you may cause the model value on the scope to change incorrectly. + * + * When this method is called, the new `value` will be staged for committing through the `$parsers` + * and `$validators` pipelines. If there are no special {@link ngModelOptions} specified then the staged + * value sent directly for processing, finally to be applied to `$modelValue` and then the + * **expression** specified in the `ng-model` attribute. + * + * Lastly, all the registered change listeners, in the `$viewChangeListeners` list, are called. + * + * In case the {@link ng.directive:ngModelOptions ngModelOptions} directive is used with `updateOn` + * and the `default` trigger is not listed, all those actions will remain pending until one of the + * `updateOn` events is triggered on the DOM element. + * All these actions will be debounced if the {@link ng.directive:ngModelOptions ngModelOptions} + * directive is used with a custom debounce for this particular event. + * + * Note that calling this function does not trigger a `$digest`. + * + * @param {string} value Value from the view. + * @param {string} trigger Event that triggered the update. + */ + this.$setViewValue = function(value, trigger) { + ctrl.$viewValue = value; + if (!ctrl.$options || ctrl.$options.updateOnDefault) { + ctrl.$$debounceViewValueCommit(trigger); + } + }; + + this.$$debounceViewValueCommit = function(trigger) { + var debounceDelay = 0, + options = ctrl.$options, + debounce; + + if (options && isDefined(options.debounce)) { + debounce = options.debounce; + if (isNumber(debounce)) { + debounceDelay = debounce; + } else if (isNumber(debounce[trigger])) { + debounceDelay = debounce[trigger]; + } else if (isNumber(debounce['default'])) { + debounceDelay = debounce['default']; + } + } + + $timeout.cancel(pendingDebounce); + if (debounceDelay) { + pendingDebounce = $timeout(function() { + ctrl.$commitViewValue(); + }, debounceDelay); + } else if ($rootScope.$$phase) { + ctrl.$commitViewValue(); + } else { + $scope.$apply(function() { + ctrl.$commitViewValue(); + }); + } + }; + + // model -> value + // Note: we cannot use a normal scope.$watch as we want to detect the following: + // 1. scope value is 'a' + // 2. user enters 'b' + // 3. ng-change kicks in and reverts scope value to 'a' + // -> scope value did not change since the last digest as + // ng-change executes in apply phase + // 4. view should be changed back to 'a' + $scope.$watch(function ngModelWatch() { + var modelValue = ngModelGet($scope); + + // if scope model value and ngModel value are out of sync + // TODO(perf): why not move this to the action fn? + if (modelValue !== ctrl.$modelValue) { + ctrl.$modelValue = ctrl.$$rawModelValue = modelValue; + + var formatters = ctrl.$formatters, + idx = formatters.length; + + var viewValue = modelValue; + while (idx--) { + viewValue = formatters[idx](viewValue); + } + if (ctrl.$viewValue !== viewValue) { + ctrl.$viewValue = ctrl.$$lastCommittedViewValue = viewValue; + ctrl.$render(); + + ctrl.$$runValidators(undefined, modelValue, viewValue, noop); + } + } + + return modelValue; + }); +}]; + + +/** + * @ngdoc directive + * @name ngModel + * + * @element input + * @priority 1 + * + * @description + * The `ngModel` directive binds an `input`,`select`, `textarea` (or custom form control) to a + * property on the scope using {@link ngModel.NgModelController NgModelController}, + * which is created and exposed by this directive. + * + * `ngModel` is responsible for: + * + * - Binding the view into the model, which other directives such as `input`, `textarea` or `select` + * require. + * - Providing validation behavior (i.e. required, number, email, url). + * - Keeping the state of the control (valid/invalid, dirty/pristine, touched/untouched, validation errors). + * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`, `ng-touched`, `ng-untouched`) including animations. + * - Registering the control with its parent {@link ng.directive:form form}. + * + * Note: `ngModel` will try to bind to the property given by evaluating the expression on the + * current scope. If the property doesn't already exist on this scope, it will be created + * implicitly and added to the scope. + * + * For best practices on using `ngModel`, see: + * + * - [Understanding Scopes](https://github.com/angular/angular.js/wiki/Understanding-Scopes) + * + * For basic examples, how to use `ngModel`, see: + * + * - {@link ng.directive:input input} + * - {@link input[text] text} + * - {@link input[checkbox] checkbox} + * - {@link input[radio] radio} + * - {@link input[number] number} + * - {@link input[email] email} + * - {@link input[url] url} + * - {@link input[date] date} + * - {@link input[datetime-local] datetime-local} + * - {@link input[time] time} + * - {@link input[month] month} + * - {@link input[week] week} + * - {@link ng.directive:select select} + * - {@link ng.directive:textarea textarea} + * + * # CSS classes + * The following CSS classes are added and removed on the associated input/select/textarea element + * depending on the validity of the model. + * + * - `ng-valid`: the model is valid + * - `ng-invalid`: the model is invalid + * - `ng-valid-[key]`: for each valid key added by `$setValidity` + * - `ng-invalid-[key]`: for each invalid key added by `$setValidity` + * - `ng-pristine`: the control hasn't been interacted with yet + * - `ng-dirty`: the control has been interacted with + * - `ng-touched`: the control has been blurred + * - `ng-untouched`: the control hasn't been blurred + * - `ng-pending`: any `$asyncValidators` are unfulfilled + * + * Keep in mind that ngAnimate can detect each of these classes when added and removed. + * + * ## Animation Hooks + * + * Animations within models are triggered when any of the associated CSS classes are added and removed + * on the input element which is attached to the model. These classes are: `.ng-pristine`, `.ng-dirty`, + * `.ng-invalid` and `.ng-valid` as well as any other validations that are performed on the model itself. + * The animations that are triggered within ngModel are similar to how they work in ngClass and + * animations can be hooked into using CSS transitions, keyframes as well as JS animations. + * + * The following example shows a simple way to utilize CSS transitions to style an input element + * that has been rendered as invalid after it has been validated: + * + *
+ * //be sure to include ngAnimate as a module to hook into more
+ * //advanced animations
+ * .my-input {
+ *   transition:0.5s linear all;
+ *   background: white;
+ * }
+ * .my-input.ng-invalid {
+ *   background: red;
+ *   color:white;
+ * }
+ * 
+ * + * @example + * + + + + Update input to see transitions when valid/invalid. + Integer is a valid value. +
+ +
+
+ *
+ * + * ## Binding to a getter/setter + * + * Sometimes it's helpful to bind `ngModel` to a getter/setter function. A getter/setter is a + * function that returns a representation of the model when called with zero arguments, and sets + * the internal state of a model when called with an argument. It's sometimes useful to use this + * for models that have an internal representation that's different than what the model exposes + * to the view. + * + *
+ * **Best Practice:** It's best to keep getters fast because Angular is likely to call them more + * frequently than other parts of your code. + *
+ * + * You use this behavior by adding `ng-model-options="{ getterSetter: true }"` to an element that + * has `ng-model` attached to it. You can also add `ng-model-options="{ getterSetter: true }"` to + * a `
`, which will enable this behavior for all ``s within it. See + * {@link ng.directive:ngModelOptions `ngModelOptions`} for more. + * + * The following example shows how to use `ngModel` with a getter/setter: + * + * @example + * + +
+ + Name: + + +
user.name = 
+
+
+ + angular.module('getterSetterExample', []) + .controller('ExampleController', ['$scope', function($scope) { + var _name = 'Brian'; + $scope.user = { + name: function(newName) { + if (angular.isDefined(newName)) { + _name = newName; + } + return _name; + } + }; + }]); + + *
+ */ +var ngModelDirective = ['$rootScope', function($rootScope) { + return { + restrict: 'A', + require: ['ngModel', '^?form', '^?ngModelOptions'], + controller: NgModelController, + // Prelink needs to run before any input directive + // so that we can set the NgModelOptions in NgModelController + // before anyone else uses it. + priority: 1, + compile: function ngModelCompile(element) { + // Setup initial state of the control + element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS); + + return { + pre: function ngModelPreLink(scope, element, attr, ctrls) { + var modelCtrl = ctrls[0], + formCtrl = ctrls[1] || nullFormCtrl; + + modelCtrl.$$setOptions(ctrls[2] && ctrls[2].$options); + + // notify others, especially parent forms + formCtrl.$addControl(modelCtrl); + + attr.$observe('name', function(newValue) { + if (modelCtrl.$name !== newValue) { + formCtrl.$$renameControl(modelCtrl, newValue); + } + }); + + scope.$on('$destroy', function() { + formCtrl.$removeControl(modelCtrl); + }); + }, + post: function ngModelPostLink(scope, element, attr, ctrls) { + var modelCtrl = ctrls[0]; + if (modelCtrl.$options && modelCtrl.$options.updateOn) { + element.on(modelCtrl.$options.updateOn, function(ev) { + modelCtrl.$$debounceViewValueCommit(ev && ev.type); + }); + } + + element.on('blur', function(ev) { + if (modelCtrl.$touched) return; + + if ($rootScope.$$phase) { + scope.$evalAsync(modelCtrl.$setTouched); + } else { + scope.$apply(modelCtrl.$setTouched); + } + }); + } + }; + } + }; +}]; + +var DEFAULT_REGEXP = /(\s+|^)default(\s+|$)/; + +/** + * @ngdoc directive + * @name ngModelOptions + * + * @description + * Allows tuning how model updates are done. Using `ngModelOptions` you can specify a custom list of + * events that will trigger a model update and/or a debouncing delay so that the actual update only + * takes place when a timer expires; this timer will be reset after another change takes place. + * + * Given the nature of `ngModelOptions`, the value displayed inside input fields in the view might + * be different than the value in the actual model. This means that if you update the model you + * should also invoke {@link ngModel.NgModelController `$rollbackViewValue`} on the relevant input field in + * order to make sure it is synchronized with the model and that any debounced action is canceled. + * + * The easiest way to reference the control's {@link ngModel.NgModelController `$rollbackViewValue`} + * method is by making sure the input is placed inside a form that has a `name` attribute. This is + * important because `form` controllers are published to the related scope under the name in their + * `name` attribute. + * + * Any pending changes will take place immediately when an enclosing form is submitted via the + * `submit` event. Note that `ngClick` events will occur before the model is updated. Use `ngSubmit` + * to have access to the updated model. + * + * `ngModelOptions` has an effect on the element it's declared on and its descendants. + * + * @param {Object} ngModelOptions options to apply to the current model. Valid keys are: + * - `updateOn`: string specifying which event should the input be bound to. You can set several + * events using an space delimited list. There is a special event called `default` that + * matches the default events belonging of the control. + * - `debounce`: integer value which contains the debounce model update value in milliseconds. A + * value of 0 triggers an immediate update. If an object is supplied instead, you can specify a + * custom value for each event. For example: + * `ng-model-options="{ updateOn: 'default blur', debounce: {'default': 500, 'blur': 0} }"` + * - `allowInvalid`: boolean value which indicates that the model can be set with values that did + * not validate correctly instead of the default behavior of setting the model to undefined. + * - `getterSetter`: boolean value which determines whether or not to treat functions bound to + `ngModel` as getters/setters. + * - `timezone`: Defines the timezone to be used to read/write the `Date` instance in the model for + * ``, ``, ... . Right now, the only supported value is `'UTC'`, + * otherwise the default timezone of the browser will be used. + * + * @example + + The following example shows how to override immediate updates. Changes on the inputs within the + form will update the model only when the control loses focus (blur event). If `escape` key is + pressed while the input field is focused, the value is reset to the value in the current model. + + + +
+
+ Name: +
+ + Other data: +
+
+
user.name = 
+
+
+ + angular.module('optionsExample', []) + .controller('ExampleController', ['$scope', function($scope) { + $scope.user = { name: 'say', data: '' }; + + $scope.cancel = function(e) { + if (e.keyCode == 27) { + $scope.userForm.userName.$rollbackViewValue(); + } + }; + }]); + + + var model = element(by.binding('user.name')); + var input = element(by.model('user.name')); + var other = element(by.model('user.data')); + + it('should allow custom events', function() { + input.sendKeys(' hello'); + input.click(); + expect(model.getText()).toEqual('say'); + other.click(); + expect(model.getText()).toEqual('say hello'); + }); + + it('should $rollbackViewValue when model changes', function() { + input.sendKeys(' hello'); + expect(input.getAttribute('value')).toEqual('say hello'); + input.sendKeys(protractor.Key.ESCAPE); + expect(input.getAttribute('value')).toEqual('say'); + other.click(); + expect(model.getText()).toEqual('say'); + }); + +
+ + This one shows how to debounce model changes. Model will be updated only 1 sec after last change. + If the `Clear` button is pressed, any debounced action is canceled and the value becomes empty. + + + +
+
+ Name: + +
+
+
user.name = 
+
+
+ + angular.module('optionsExample', []) + .controller('ExampleController', ['$scope', function($scope) { + $scope.user = { name: 'say' }; + }]); + +
+ + This one shows how to bind to getter/setters: + + + +
+
+ Name: + +
+
user.name = 
+
+
+ + angular.module('getterSetterExample', []) + .controller('ExampleController', ['$scope', function($scope) { + var _name = 'Brian'; + $scope.user = { + name: function(newName) { + return angular.isDefined(newName) ? (_name = newName) : _name; + } + }; + }]); + +
+ */ +var ngModelOptionsDirective = function() { + return { + restrict: 'A', + controller: ['$scope', '$attrs', function($scope, $attrs) { + var that = this; + this.$options = $scope.$eval($attrs.ngModelOptions); + // Allow adding/overriding bound events + if (this.$options.updateOn !== undefined) { + this.$options.updateOnDefault = false; + // extract "default" pseudo-event from list of events that can trigger a model update + this.$options.updateOn = trim(this.$options.updateOn.replace(DEFAULT_REGEXP, function() { + that.$options.updateOnDefault = true; + return ' '; + })); + } else { + this.$options.updateOnDefault = true; + } + }] + }; +}; + + + +// helper methods +function addSetValidityMethod(context) { + var ctrl = context.ctrl, + $element = context.$element, + classCache = {}, + set = context.set, + unset = context.unset, + parentForm = context.parentForm, + $animate = context.$animate; + + classCache[INVALID_CLASS] = !(classCache[VALID_CLASS] = $element.hasClass(VALID_CLASS)); + + ctrl.$setValidity = setValidity; + + function setValidity(validationErrorKey, state, controller) { + if (state === undefined) { + createAndSet('$pending', validationErrorKey, controller); + } else { + unsetAndCleanup('$pending', validationErrorKey, controller); + } + if (!isBoolean(state)) { + unset(ctrl.$error, validationErrorKey, controller); + unset(ctrl.$$success, validationErrorKey, controller); + } else { + if (state) { + unset(ctrl.$error, validationErrorKey, controller); + set(ctrl.$$success, validationErrorKey, controller); + } else { + set(ctrl.$error, validationErrorKey, controller); + unset(ctrl.$$success, validationErrorKey, controller); + } + } + if (ctrl.$pending) { + cachedToggleClass(PENDING_CLASS, true); + ctrl.$valid = ctrl.$invalid = undefined; + toggleValidationCss('', null); + } else { + cachedToggleClass(PENDING_CLASS, false); + ctrl.$valid = isObjectEmpty(ctrl.$error); + ctrl.$invalid = !ctrl.$valid; + toggleValidationCss('', ctrl.$valid); + } + + // re-read the state as the set/unset methods could have + // combined state in ctrl.$error[validationError] (used for forms), + // where setting/unsetting only increments/decrements the value, + // and does not replace it. + var combinedState; + if (ctrl.$pending && ctrl.$pending[validationErrorKey]) { + combinedState = undefined; + } else if (ctrl.$error[validationErrorKey]) { + combinedState = false; + } else if (ctrl.$$success[validationErrorKey]) { + combinedState = true; + } else { + combinedState = null; + } + + toggleValidationCss(validationErrorKey, combinedState); + parentForm.$setValidity(validationErrorKey, combinedState, ctrl); + } + + function createAndSet(name, value, controller) { + if (!ctrl[name]) { + ctrl[name] = {}; + } + set(ctrl[name], value, controller); + } + + function unsetAndCleanup(name, value, controller) { + if (ctrl[name]) { + unset(ctrl[name], value, controller); + } + if (isObjectEmpty(ctrl[name])) { + ctrl[name] = undefined; + } + } + + function cachedToggleClass(className, switchValue) { + if (switchValue && !classCache[className]) { + $animate.addClass($element, className); + classCache[className] = true; + } else if (!switchValue && classCache[className]) { + $animate.removeClass($element, className); + classCache[className] = false; + } + } + + function toggleValidationCss(validationErrorKey, isValid) { + validationErrorKey = validationErrorKey ? '-' + snake_case(validationErrorKey, '-') : ''; + + cachedToggleClass(VALID_CLASS + validationErrorKey, isValid === true); + cachedToggleClass(INVALID_CLASS + validationErrorKey, isValid === false); + } +} + +function isObjectEmpty(obj) { + if (obj) { + for (var prop in obj) { + return false; + } + } + return true; +} + /** * @ngdoc directive * @name ngNonBindable @@ -24130,6 +24047,29 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp * Creating aliases for these properties is possible with {@link ng.directive:ngInit `ngInit`}. * This may be useful when, for instance, nesting ngRepeats. * + * # Iterating over object properties + * + * It is possible to get `ngRepeat` to iterate over the properties of an object using the following + * syntax: + * + * ```js + *
...
+ * ``` + * + * You need to be aware that the JavaScript specification does not define what order + * it will return the keys for an object. In order to have a guaranteed deterministic order + * for the keys, Angular versions up to and including 1.3 **sort the keys alphabetically**. + * + * If this is not desired, the recommended workaround is to convert your object into an array + * that is sorted into the order that you prefer before providing it to `ngRepeat`. You could + * do this with a filter such as [toArrayFilter](http://ngmodules.org/modules/angular-toArrayFilter) + * or implement a `$watch` on the object yourself. + * + * In version 1.4 we will remove the sorting, since it seems that browsers generally follow the + * strategy of providing keys in the order in which they were defined, although there are exceptions + * when keys are deleted and reinstated. + * + * * # Special repeat start and end points * To repeat a series of elements instead of just one parent element, ngRepeat (as well as other ng directives) supports extending * the range of the repeater by defining explicit start and end points by using **ng-repeat-start** and **ng-repeat-end** respectively. @@ -24374,7 +24314,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { var keyIdentifier = match[2]; if (aliasAs && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs) || - /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent)$/.test(aliasAs))) { + /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs))) { throw ngRepeatMinErr('badident', "alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.", aliasAs); } @@ -24927,12 +24867,12 @@ var ngHideDirective = ['$animate', function($animate) { */ var ngStyleDirective = ngDirective(function(scope, element, attr) { - scope.$watch(attr.ngStyle, function ngStyleWatchAction(newStyles, oldStyles) { + scope.$watchCollection(attr.ngStyle, function ngStyleWatchAction(newStyles, oldStyles) { if (oldStyles && (newStyles !== oldStyles)) { forEach(oldStyles, function(val, style) { element.css(style, '');}); } if (newStyles) element.css(newStyles); - }, true); + }); }); /** @@ -25273,14 +25213,15 @@ var ngOptionsMinErr = minErr('ngOptions'); * * The `ngOptions` attribute can be used to dynamically generate a list of `
* - * ## `select as` + * ## `select` **`as`** * - * Using `select as` will bind the result of the `select as` expression to the model, but + * Using `select` **`as`** will bind the result of the `select` expression to the model, but * the value of the ` + * ``` + * + * ```js + * $scope.values = [{ + * id: 1, + * label: 'aLabel', + * subItem: { name: 'aSubItem' } + * }, { + * id: 2, + * label: 'bLabel', + * subItem: { name: 'bSubItem' } + * }]; + * + * $scope.selected = { name: 'aSubItem' }; + * ``` + * + * With the purpose of preserving the selection, the **`track by`** expression is always applied to the element + * of the data source (to `item` in this example). To calculate whether an element is selected, we do the + * following: + * + * 1. Apply **`track by`** to the elements in the array. In the example: `[1, 2]` + * 2. Apply **`track by`** to the already selected value in `ngModel`. + * In the example: this is not possible as **`track by`** refers to `item.id`, but the selected + * value from `ngModel` is `{name: 'aSubItem'}`, so the **`track by`** expression is applied to + * a wrong object, the selected element can't be found, `', -""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ia.optgroup=ia.option;ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead;ia.th=ia.td;var Ka=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===Y.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(M).on("load",a))},toString:function(){var b=[];s(this,function(a){b.push(""+ -a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?B(this[b]):B(this[this.length+b])},length:0,push:Pf,sort:[].sort,splice:[].splice},Eb={};s("multiple selected checked disabled readOnly required open".split(" "),function(b){Eb[Q(b)]=b});var Mc={};s("input select option textarea button form details".split(" "),function(b){Mc[b]=!0});var Nc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};s({data:Ub,removeData:xb},function(b,a){R[a]=b});s({data:Ub, -inheritedData:Db,scope:function(b){return B.data(b,"$scope")||Db(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return B.data(b,"$isolateScope")||B.data(b,"$isolateScopeNoTemplate")},controller:Ic,injector:function(b){return Db(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Ab,css:function(b,a,c){a=bb(a);if(y(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=Q(a);if(Eb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d)); -else return b[a]||(b.attributes.getNamedItem(a)||C).specified?d:t;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?t:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(D(b)){var d=a.nodeType;return d===na||d===pb?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(D(a)){if(b.multiple&&"select"===ua(b)){var c=[];s(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length? -null:c}return b.value}b.value=a},html:function(b,a){if(D(a))return b.innerHTML;wb(b,!0);b.innerHTML=a},empty:Jc},function(b,a){R.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Jc&&(2==b.length&&b!==Ab&&b!==Ic?a:d)===t){if(P(a)){for(e=0;eh?ed(g[0], +g[1],g[2],g[3],g[4],c,d):function(a,b){var e=0,f;do f=ed(g[e++],g[e++],g[e++],g[e++],g[e++],c,d)(a,b),b=t,a=f;while(e=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in k++,f)e.hasOwnProperty(b)||(u--,delete f[b])}else f!==e&&(f=e,k++);return k}}c.$stateful=!0;var d=this,e,f,h,l=1s&&(y=4-s,W[y]||(W[y]=[]),W[y].push({msg:G(e.exp)?"fn: "+(e.exp.name||e.exp.toString()):e.exp,newVal:g,oldVal:l}));else if(e===c){v=!1;break a}}catch(A){f(A)}if(!(m=t.$$childHead||t!==this&&t.$$nextSibling))for(;t!==this&&!(m=t.$$nextSibling);)t=t.$parent}while(t=m);if((v||O.length)&&!s--)throw r.$$phase=null,a("infdig",b,W);}while(v||O.length);for(r.$$phase=null;p.length;)try{p.shift()()}catch(ca){f(ca)}},$destroy:function(){if(!this.$$destroyed){var a= +this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;if(this!==r){for(var b in this.$$listenerCount)m(this,this.$$listenerCount[b],b);a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=H;this.$on=this.$watch=this.$watchGroup= +function(){return H};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){r.$$phase||O.length||h.defer(function(){O.length&&r.$digest()});O.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){p.push(a)},$apply:function(a){try{return k("$apply"),this.$eval(a)}catch(b){f(b)}finally{r.$$phase=null;try{r.$digest()}catch(c){throw f(c),c; +}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&v.push(b);u()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,m(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,g=!1,h={name:a,targetScope:e,stopPropagation:function(){g=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1}, +l=Ya([h],arguments,1),k,m;do{d=e.$$listeners[a]||c;h.currentScope=e;k=0;for(m=d.length;kRa)throw Ca("iequirks");var d=ra(na);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=pa);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,g=d.trustAs;s(na,function(a,b){var c=Q(b);d[cb("parse_as_"+c)]=function(b){return e(a,b)};d[cb("get_trusted_"+c)]=function(b){return f(a,b)};d[cb("trust_as_"+ +c)]=function(b){return g(a,b)}});return d}]}function Ue(){this.$get=["$window","$document",function(b,a){var c={},d=ba((/android (\d+)/.exec(Q((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,m=!1;if(l){for(var n in l)if(k=h.exec(n)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);m=!!("animation"in l||g+"Animation"in +l);!d||k&&m||(k=F(f.body.style.webkitTransition),m=F(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Ra)return!1;if(A(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:ab(),vendorPrefix:g,transitions:k,animations:m,android:d}}]}function We(){this.$get=["$templateCache","$http","$q",function(b,a,c){function d(e,f){d.totalPendingRequests++;var g=a.defaults&&a.defaults.transformResponse;D(g)?g=g.filter(function(a){return a!== +Yb}):g===Yb&&(g=null);return a.get(e,{cache:b,transformResponse:g}).finally(function(){d.totalPendingRequests--}).then(function(a){return a.data},function(a){if(!f)throw ja("tpload",e);return c.reject(a)})}d.totalPendingRequests=0;return d}]}function Xe(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];s(a,function(a){var d=ga.element(a).data("$binding");d&&s(d,function(d){c?(new RegExp("(^|\\s)"+ +gd(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-","data-ng-","ng\\:"],h=0;hb;b=Math.abs(b);var g=b+"",h="",l=[],k=!1;if(-1!==g.indexOf("e")){var m=g.match(/([\d\.]+)e(-?)(\d+)/);m&& +"-"==m[2]&&m[3]>e+1?b=0:(h=g,k=!0)}if(k)0b&&(h=b.toFixed(e),b=parseFloat(h));else{g=(g.split(od)[1]||"").length;A(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(od),k=g[0],g=g[1]||"",n=0,q=a.lgSize,u=a.gSize;if(k.length>=q+u)for(n=k.length-q,m=0;mb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Hb(e,a,d)}}function Ib(b,a){return function(c,d){var e=c["get"+b](),f=ub(a?"SHORT"+b:b);return d[f][e]}}function pd(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function qd(b){return function(a){var c= +pd(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Hb(a,b)}}function kd(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=ba(b[9]+b[10]),g=ba(b[9]+b[11]));h.call(a,ba(b[1]),ba(b[2])-1,ba(b[3]));f=ba(b[4]||0)-f;g=ba(b[5]||0)-g;h=ba(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/; +return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;F(c)&&(c=Kf.test(c)?ba(c):a(c));V(c)&&(c=new Date(c));if(!qa(c))return c;for(;e;)(k=Lf.exec(e))?(h=Ya(h,k,1),e=h.pop()):(h.push(e),e=null);f&&"UTC"===f&&(c=new Date(c.getTime()),c.setMinutes(c.getMinutes()+c.getTimezoneOffset()));s(h,function(a){l=Mf[a];g+=l?l(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Ff(){return function(b,a){A(a)&&(a=2);return $a(b,a)}}function Gf(){return function(b, +a){V(b)&&(b=b.toString());return D(b)||F(b)?(a=Infinity===Math.abs(Number(a))?Number(a):ba(a))?0b||37<=b&&40>=b||m(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",m)}a.on("change",l);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)}}function Lb(b,a){return function(c,d){var e,f;if(qa(c))return c;if(F(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(Nf.test(c))return new Date(c);b.lastIndex= +0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},s(e,function(b,c){c=s}; +g.$observe("min",function(a){s=q(a);h.$validate()})}if(y(g.max)||g.ngMax){var p;h.$validators.max=function(a){return!n(a)||A(p)||c(a)<=p};g.$observe("max",function(a){p=q(a);h.$validate()})}}}function td(b,a,c,d){(d.$$hasNativeValidators=I(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?t:b})}function ud(b,a,c,d,e){if(y(d)){b=b(d);if(!b.constant)throw T("ngModel")("constexpr",c,d);return b(a)}return e}function ic(b,a){b="ngClass"+b;return["$animate", +function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Rb=/<|&#?\w+;/,ef=/<([\w:]+)/,ff=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ia={option:[1,'"],thead:[1,"","
"],col:[2,"", +"
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ia.optgroup=ia.option;ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead;ia.th=ia.td;var La=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===Y.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(M).on("load",a))},toString:function(){var b=[];s(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<= +b?B(this[b]):B(this[this.length+b])},length:0,push:Pf,sort:[].sort,splice:[].splice},Eb={};s("multiple selected checked disabled readOnly required open".split(" "),function(b){Eb[Q(b)]=b});var Mc={};s("input select option textarea button form details".split(" "),function(b){Mc[b]=!0});var Nc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};s({data:Ub,removeData:xb},function(b,a){R[a]=b});s({data:Ub,inheritedData:Db,scope:function(b){return B.data(b,"$scope")|| +Db(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return B.data(b,"$isolateScope")||B.data(b,"$isolateScopeNoTemplate")},controller:Ic,injector:function(b){return Db(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Ab,css:function(b,a,c){a=cb(a);if(y(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=Q(a);if(Eb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||H).specified? +d:t;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?t:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(A(b)){var d=a.nodeType;return d===oa||d===pb?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(A(a)){if(b.multiple&&"select"===ua(b)){var c=[];s(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(A(a))return b.innerHTML; +wb(b,!0);b.innerHTML=a},empty:Jc},function(b,a){R.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Jc&&(2==b.length&&b!==Ab&&b!==Ic?a:d)===t){if(I(a)){for(e=0;e":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a, c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),Xf={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},gc=function(a){this.options=a};gc.prototype={constructor:gc,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=y(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c, d)+"]":" "+d;throw la("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.indexa){a=this.tokens[a];var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},consume:function(a){if(0===this.tokens.length)throw la("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},unaryFn:function(a,c){var d=mb[a];return z(function(a,f){return d(a,f,c)},{constant:c.constant,inputs:[c]})},binaryFn:function(a, @@ -193,58 +193,58 @@ c,d,e){var f=mb[c];return z(function(c,e){return f(c,e,a,d)},{constant:a.constan ";","]")&&a.push(this.filterChain()),!this.expect(";"))return 1===a.length?a[0]:function(c,d){for(var e,f=0,g=a.length;f","<=",">=");)a=this.binaryFn(a,c.text,this.additive());return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(gb.ZERO, -a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c=this.identifier();return z(function(d,e,f){d=f||a(d,e);return null==d?t:c(d)},{assign:function(d,e,f){(f=a(d,f))||a.assign(d,f={});return c.assign(f,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]");return z(function(e,f){var g=a(e,f),h=d(e,f);sa(h,c);return g?ta(g[h],c):t},{assign:function(e,f,g){var h=sa(d(e,g),c);(g=ta(a(e,g),c))||a.assign(e, -g={});return g[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):y(c)?t:g,k=a(g,h,l)||C;if(f)for(var m=d.length;m--;)f[m]=ta(d[m](g,h),e);ta(l,e);if(k){if(k.constructor===k)throw la("isecfn",e);if(k===Uf||k===Vf||k===Wf)throw la("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);return ta(l,e)}},arrayDeclaration:function(){var a= +return a},relational:function(){for(var a=this.additive(),c;c=this.expect("<",">","<=",">=");)a=this.binaryFn(a,c.text,this.additive());return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(hb.ZERO, +a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c=this.identifier();return z(function(d,e,f){d=f||a(d,e);return null==d?t:c(d)},{assign:function(d,e,f){var g=a(d,f);g||a.assign(d,g={},f);return c.assign(g,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]");return z(function(e,f){var g=a(e,f),h=d(e,f);ta(h,c);return g?ma(g[h],c):t},{assign:function(e,f,g){var h=ta(d(e,g),c),l=ma(a(e,g),c);l||a.assign(e, +l={},g);return l[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(","))}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):y(c)?t:g,k=a(g,h,l)||H;if(f)for(var m=d.length;m--;)f[m]=ma(d[m](g,h),e);ma(l,e);if(k){if(k.constructor===k)throw la("isecfn",e);if(k===Uf||k===Vf||k===Wf)throw la("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);return ma(l,e)}},arrayDeclaration:function(){var a= [];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return z(function(c,d){for(var e=[],f=0,g=a.length;fa.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Hb(Math[0=h};d.$observe("min",function(a){y(a)&&!V(a)&&(a=parseFloat(a,10));h=V(a)&&!isNaN(a)?a:t;e.$validate()})}if(d.max||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)|| -D(l)||a<=l};d.$observe("max",function(a){y(a)&&!V(a)&&(a=parseFloat(a,10));l=V(a)&&!isNaN(a)?a:t;e.$validate()})}},url:function(a,c,d,e,f,g){ib(a,c,d,e,f,g);hc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||Yf.test(d)}},email:function(a,c,d,e,f,g){ib(a,c,d,e,f,g);hc(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||Zf.test(d)}},radio:function(a,c,d,e){D(d.name)&&c.attr("name",++nb);c.on("click",function(a){c[0].checked&& -e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=ud(l,a,"ngTrueValue",d.ngTrueValue,!0),m=ud(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return fa(a,k)});e.$parsers.push(function(a){return a?k:m})},hidden:C, -button:C,submit:C,reset:C,file:C},xc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Dd[Q(h.type)]||Dd.text)(f,g,h,l[0],c,a,d,e)}}}}],kb="ng-valid",vd="ng-invalid",Ra="ng-pristine",Kb="ng-dirty",xd="ng-pending",bg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,m){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue= -t;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=t;this.$name=m(d.name||"",!1)(a);var n=f(d.ngModel),q=n.assign,u=n,r=q,O=null,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");u=function(a){var d=n(a);G(d)&&(d=c(a));return d}; -r=function(a,c){G(n(a))?g(a,{$$$p:p.$modelValue}):q(a,p.$modelValue)}}else if(!n.assign)throw Mb("nonassign",d.ngModel,va(e));};this.$render=C;this.$isEmpty=function(a){return D(a)||""===a||null===a||a!==a};var v=e.inheritedData("$formController")||Jb,w=0;sd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:v,$animate:g});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;g.removeClass(e,Kb);g.addClass(e,Ra)};this.$setDirty=function(){p.$dirty=!0;p.$pristine= -!1;g.removeClass(e,Ra);g.addClass(e,Kb);v.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){p.$touched=!0;p.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(O);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!V(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,c=p.$valid,d=p.$modelValue,e=p.$options&&p.$options.allowInvalid; -p.$$runValidators(p.$error[p.$$parserName||"parse"]?!1:t,a,p.$$lastCommittedViewValue,function(f){e||c===f||(p.$modelValue=f?a:t,p.$modelValue!==d&&p.$$writeModelToScope())})}};this.$$runValidators=function(a,c,d,e){function f(){var a=!0;s(p.$validators,function(e,f){var g=e(c,d);a=a&&g;h(f,g)});return a?!0:(s(p.$asyncValidators,function(a,c){h(c,null)}),!1)}function g(){var a=[],e=!0;s(p.$asyncValidators,function(f,g){var k=f(c,d);if(!k||!G(k.then))throw Mb("$asyncValidators",k);h(g,t);a.push(k.then(function(){h(g, -!0)},function(a){e=!1;h(g,!1)}))});a.length?k.all(a).then(function(){l(e)},C):l(!0)}function h(a,c){m===w&&p.$setValidity(a,c)}function l(a){m===w&&e(a)}w++;var m=w;(function(a){var c=p.$$parserName||"parse";if(a===t)h(c,null);else if(h(c,a),!a)return s(p.$validators,function(a,c){h(c,null)}),s(p.$asyncValidators,function(a,c){h(c,null)}),!1;return!0})(a)?f()?g():l(!1):l(!1)};this.$commitViewValue=function(){var a=p.$viewValue;h.cancel(O);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue= -a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=p.$$lastCommittedViewValue,d=D(c)?t:!0;if(d)for(var e=0;ef||e.$isEmpty(a)||c.length<=f}}}}},Ac=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength", -function(a){f=ba(a)||0;e.$validate()});e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}},we=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?U(f):f;e.$parsers.push(function(a){if(!D(a)){var c=[];a&&s(a.split(h),function(a){a&&c.push(g?U(a):a)});return c}});e.$formatters.push(function(a){return x(a)?a.join(f):t});e.$isEmpty=function(a){return!a||!a.length}}}},cg=/^(true|false|\d+)$/, -ye=function(){return{restrict:"A",priority:100,compile:function(a,c){return cg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},ze=function(){return{restrict:"A",controller:["$scope","$attrs",function(a,c){var d=this;this.$options=a.$eval(c.ngModelOptions);this.$options.updateOn!==t?(this.$options.updateOnDefault=!1,this.$options.updateOn=U(this.$options.updateOn.replace(ag,function(){d.$options.updateOnDefault= -!0;return" "}))):this.$options.updateOnDefault=!0}]}},Zd=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===t?"":a})}}}}],ae=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate));c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent= -a===t?"":a})}}}}],$d=["$sce","$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],be=ic("",!0),de=ic("Odd",0),ce=ic("Even",1),ee=Ia({compile:function(a,c){c.$set("ngCloak",t);a.removeClass("ng-cloak")}}),fe=[function(){return{restrict:"A",scope:!0,controller:"@", -priority:500}}],Cc={},dg={blur:!0,focus:!0};s("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Cc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h=d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})};dg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ie=["$animate",function(a){return{multiElement:!0, -transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=Y.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k=tb(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],je=["$templateRequest","$anchorScroll","$animate","$sce",function(a,c,d,e){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element", -controller:ga.noop,compile:function(f,g){var h=g.ngInclude||g.src,l=g.onload||"",k=g.autoscroll;return function(f,g,q,s,r){var t=0,p,v,w,L=function(){v&&(v.remove(),v=null);p&&(p.$destroy(),p=null);w&&(d.leave(w).then(function(){v=null}),v=w,w=null)};f.$watch(e.parseAsResourceUrl(h),function(e){var h=function(){!y(k)||k&&!f.$eval(k)||c()},q=++t;e?(a(e,!0).then(function(a){if(q===t){var c=f.$new();s.template=a;a=r(c,function(a){L();d.enter(a,null,g).then(h)});p=c;w=a;p.$emit("$includeContentLoaded", -e);f.$eval(l)}},function(){q===t&&(L(),f.$emit("$includeContentError",e))}),f.$emit("$includeContentRequested",e)):(L(),s.template=null)})}}}}],Ae=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Fc(f.template,Y).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ke=Ia({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}), -le=Ia({terminal:!0,priority:1E3}),me=["$locale","$interpolate",function(a,c){var d=/{}/g,e=/^when(Minus)?(.+)$/;return{restrict:"EA",link:function(f,g,h){function l(a){g.text(a||"")}var k=h.count,m=h.$attr.when&&g.attr(h.$attr.when),n=h.offset||0,q=f.$eval(m)||{},u={},m=c.startSymbol(),r=c.endSymbol(),t=m+k+"-"+n+r,p=ga.noop,v;s(h,function(a,c){var d=e.exec(c);d&&(d=(d[1]?"-":"")+Q(d[2]),q[d]=g.attr(h.$attr[c]))});s(q,function(a,e){u[e]=c(a.replace(d,t))});f.$watch(k,function(c){c=parseFloat(c);var d= -isNaN(c);d||c in q||(c=a.pluralCat(c-n));c===v||d&&isNaN(v)||(p(),p=f.$watch(u[c],l),v=c)})}}}],ne=["$parse","$animate",function(a,c){var d=T("ngRepeat"),e=function(a,c,d,e,k,m,n){a[d]=e;k&&(a[k]=m);a.$index=c;a.$first=0===c;a.$last=c===n-1;a.$middle=!(a.$first||a.$last);a.$odd=!(a.$even=0===(c&1))};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(f,g){var h=g.ngRepeat,l=Y.createComment(" end ngRepeat: "+h+" "),k=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/); -if(!k)throw d("iexp",h);var m=k[1],n=k[2],q=k[3],u=k[4],k=m.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!k)throw d("iidexp",m);var r=k[3]||k[1],y=k[2];if(q&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(q)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent)$/.test(q)))throw d("badident",q);var p,v,w,D,z={$id:Ma};u?p=a(u):(w=function(a,c){return Ma(c)},D=function(a){return a});return function(a,f,g,k,m){p&&(v=function(c,d,e){y&&(z[y]=c);z[r]=d;z.$index=e;return p(a, -z)});var u=ha();a.$watchCollection(n,function(g){var k,p,n=f[0],E,z=ha(),C,S,N,G,J,x,H;q&&(a[q]=g);if(Sa(g))J=g,p=v||w;else{p=v||D;J=[];for(H in g)g.hasOwnProperty(H)&&"$"!=H.charAt(0)&&J.push(H);J.sort()}C=J.length;H=Array(C);for(k=0;kF;)d=r.pop(),m(N,d.label,!1),d.element.remove()}for(;R.length>x;){l=R.pop(); -for(F=1;Fa&&q.removeOption(c)})}var n;if(!(n=r.match(d)))throw eg("iexp",r,va(f));var C=c(n[2]||n[1]),A=n[4]||n[6],D=/ as /.test(n[0])&&n[1],B=D?c(D):null,H=n[5],J=c(n[3]||""),F=c(n[2]?n[1]:A),P=c(n[7]),M=n[8]?c(n[8]):null,Q={},R=[[{element:f,label:""}]],T={};z&&(a(z)(e),z.removeClass("ng-scope"),z.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=P(e)||[],c;if(u)c=[],s(f.val(),function(d){d= -M?Q[d]:d;c.push("?"===d?t:""===d?null:h(B?B:F,d,a[d]))});else{var d=M?Q[f.val()]:f.val();c="?"===d?t:""===d?null:h(B?B:F,d,a[d])}g.$setViewValue(c);p()})});g.$render=p;e.$watchCollection(P,l);e.$watchCollection(function(){var a=P(e),c;if(a&&x(a)){c=Array(a.length);for(var d=0,f=a.length;d@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}'); +(f.$set(h,c),Ra&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Jb={$addControl:H,$$renameControl:function(a,c){a.$name=c},$removeControl:H,$setValidity:H,$setDirty:H,$setPristine:H,$setSubmitted:H};rd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var yd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:rd,compile:function(a){a.addClass(Sa).addClass(kb);return{pre:function(a,d,g,h){if(!("action"in g)){var l=function(c){a.$apply(function(){h.$commitViewValue(); +h.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",l,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",l,!1)},0,!1)})}var k=h.$$parentForm,m=h.$name;m&&(gb(a,null,m,h,m),g.$observe(g.name?"name":"ngForm",function(c){m!==c&&(gb(a,null,m,t,m),m=c,gb(a,null,m,h,m),k.$$renameControl(h,m))}));d.on("$destroy",function(){k.$removeControl(h);m&&gb(a,null,m,t,m);z(h,Jb)})}}}}}]},Ud=yd(),ge=yd(!0),Nf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/, +Yf=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Zf=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,$f=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,zd=/^(\d{4})-(\d{2})-(\d{2})$/,Ad=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,jc=/^(\d{4})-W(\d\d)$/,Bd=/^(\d{4})-(\d\d)$/,Cd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Dd={text:function(a,c,d,e,f,g){ib(a,c,d,e,f,g);hc(e)},date:jb("date",zd,Lb(zd,["yyyy", +"MM","dd"]),"yyyy-MM-dd"),"datetime-local":jb("datetimelocal",Ad,Lb(Ad,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:jb("time",Cd,Lb(Cd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:jb("week",jc,function(a,c){if(qa(a))return a;if(F(a)){jc.lastIndex=0;var d=jc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=pd(e),f=7*(f-1);c&&(d=c.getHours(),g=c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"),month:jb("month", +Bd,Lb(Bd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){td(a,c,d,e);ib(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:$f.test(a)?parseFloat(a):t});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!V(a))throw Mb("numfmt",a);a=a.toString()}return a});if(d.min||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||A(h)||a>=h};d.$observe("min",function(a){y(a)&&!V(a)&&(a=parseFloat(a,10));h=V(a)&&!isNaN(a)?a:t;e.$validate()})}if(d.max|| +d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||A(l)||a<=l};d.$observe("max",function(a){y(a)&&!V(a)&&(a=parseFloat(a,10));l=V(a)&&!isNaN(a)?a:t;e.$validate()})}},url:function(a,c,d,e,f,g){ib(a,c,d,e,f,g);hc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||Yf.test(d)}},email:function(a,c,d,e,f,g){ib(a,c,d,e,f,g);hc(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||Zf.test(d)}},radio:function(a,c, +d,e){A(d.name)&&c.attr("name",++nb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=ud(l,a,"ngTrueValue",d.ngTrueValue,!0),m=ud(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return fa(a, +k)});e.$parsers.push(function(a){return a?k:m})},hidden:H,button:H,submit:H,reset:H,file:H},xc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Dd[Q(h.type)]||Dd.text)(f,g,h,l[0],c,a,d,e)}}}}],ag=/^(true|false|\d+)$/,ye=function(){return{restrict:"A",priority:100,compile:function(a,c){return ag.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value", +a)})}}}},Zd=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=a===t?"":a})}}}}],ae=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate));c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=a===t?"":a})}}}}],$d=["$sce", +"$parse","$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],xe=da({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),be=ic("",!0),de=ic("Odd",0),ce=ic("Even",1),ee=Ja({compile:function(a,c){c.$set("ngCloak", +t);a.removeClass("ng-cloak")}}),fe=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Cc={},bg={blur:!0,focus:!0};s("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Cc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h=d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})}; +bg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ie=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=Y.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k=tb(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],je=["$templateRequest","$anchorScroll", +"$animate","$sce",function(a,c,d,e){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ga.noop,compile:function(f,g){var h=g.ngInclude||g.src,l=g.onload||"",k=g.autoscroll;return function(f,g,q,s,r){var t=0,p,v,w,L=function(){v&&(v.remove(),v=null);p&&(p.$destroy(),p=null);w&&(d.leave(w).then(function(){v=null}),v=w,w=null)};f.$watch(e.parseAsResourceUrl(h),function(e){var h=function(){!y(k)||k&&!f.$eval(k)||c()},q=++t;e?(a(e,!0).then(function(a){if(q===t){var c=f.$new(); +s.template=a;a=r(c,function(a){L();d.enter(a,null,g).then(h)});p=c;w=a;p.$emit("$includeContentLoaded",e);f.$eval(l)}},function(){q===t&&(L(),f.$emit("$includeContentError",e))}),f.$emit("$includeContentRequested",e)):(L(),s.template=null)})}}}}],Ae=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Fc(f.template,Y).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}], +ke=Ja({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),we=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?U(f):f;e.$parsers.push(function(a){if(!A(a)){var c=[];a&&s(a.split(h),function(a){a&&c.push(g?U(a):a)});return c}});e.$formatters.push(function(a){return D(a)?a.join(f):t});e.$isEmpty=function(a){return!a||!a.length}}}},kb="ng-valid",vd="ng-invalid",Sa="ng-pristine", +Kb="ng-dirty",xd="ng-pending",Mb=new T("ngModel"),cg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,m){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=t;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success= +{};this.$pending=t;this.$name=m(d.name||"",!1)(a);var n=f(d.ngModel),q=n.assign,u=n,r=q,O=null,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");u=function(a){var d=n(a);G(d)&&(d=c(a));return d};r=function(a,c){G(n(a))?g(a,{$$$p:p.$modelValue}):q(a,p.$modelValue)}}else if(!n.assign)throw Mb("nonassign",d.ngModel,va(e));};this.$render=H;this.$isEmpty=function(a){return A(a)||""===a||null===a||a!==a};var v=e.inheritedData("$formController")|| +Jb,w=0;sd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:v,$animate:g});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;g.removeClass(e,Kb);g.addClass(e,Sa)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;g.removeClass(e,Sa);g.addClass(e,Kb);v.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){p.$touched=!0;p.$untouched=!1;g.setClass(e,"ng-touched", +"ng-untouched")};this.$rollbackViewValue=function(){h.cancel(O);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!V(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,c=p.$valid,d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$runValidators(p.$error[p.$$parserName||"parse"]?!1:t,a,p.$$lastCommittedViewValue,function(f){e||c===f||(p.$modelValue=f?a:t,p.$modelValue!==d&&p.$$writeModelToScope())})}};this.$$runValidators=function(a,c,d,e){function f(){var a= +!0;s(p.$validators,function(e,f){var g=e(c,d);a=a&&g;h(f,g)});return a?!0:(s(p.$asyncValidators,function(a,c){h(c,null)}),!1)}function g(){var a=[],e=!0;s(p.$asyncValidators,function(f,g){var l=f(c,d);if(!l||!G(l.then))throw Mb("$asyncValidators",l);h(g,t);a.push(l.then(function(){h(g,!0)},function(a){e=!1;h(g,!1)}))});a.length?k.all(a).then(function(){l(e)},H):l(!0)}function h(a,c){m===w&&p.$setValidity(a,c)}function l(a){m===w&&e(a)}w++;var m=w;(function(a){var c=p.$$parserName||"parse";if(a=== +t)h(c,null);else if(h(c,a),!a)return s(p.$validators,function(a,c){h(c,null)}),s(p.$asyncValidators,function(a,c){h(c,null)}),!1;return!0})(a)?f()?g():l(!1):l(!1)};this.$commitViewValue=function(){var a=p.$viewValue;h.cancel(O);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=p.$$lastCommittedViewValue,d=A(c)?t:!0;if(d)for(var e=0;eF;)d=r.pop(),m(N,d.label,!1),d.element.remove()}for(;R.length> +x;){l=R.pop();for(F=1;Fa&&q.removeOption(c)})}var n;if(!(n=r.match(d)))throw eg("iexp",r,va(f));var C=c(n[2]||n[1]),x=n[4]||n[6],A=/ as /.test(n[0])&&n[1],B=A?c(A):null,G=n[5],I=c(n[3]||""),F=c(n[2]?n[1]:x),P=c(n[7]),M=n[8]?c(n[8]):null,Q={},R=[[{element:f,label:""}]],T={};z&&(a(z)(e),z.removeClass("ng-scope"),z.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=P(e)||[],c;if(u)c=[],s(f.val(), +function(d){d=M?Q[d]:d;c.push("?"===d?t:""===d?null:h(B?B:F,d,a[d]))});else{var d=M?Q[f.val()]:f.val();c="?"===d?t:""===d?null:h(B?B:F,d,a[d])}g.$setViewValue(c);p()})});g.$render=p;e.$watchCollection(P,l);e.$watchCollection(function(){var a=P(e),c;if(a&&D(a)){c=Array(a.length);for(var d=0,f=a.length;df||e.$isEmpty(a)||c.length<=f}}}}},Ac=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=ba(a)||0;e.$validate()});e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};M.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(Nd(),Pd(ga),B(Y).ready(function(){Jd(Y,sc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document).find("head").prepend(''); //# sourceMappingURL=angular.min.js.map diff --git a/public/vendor/angular/angular.min.js.gzip b/public/vendor/angular/angular.min.js.gzip index c8f2039a7..ed85c2eff 100644 Binary files a/public/vendor/angular/angular.min.js.gzip and b/public/vendor/angular/angular.min.js.gzip differ diff --git a/public/vendor/angular/angular.min.js.map b/public/vendor/angular/angular.min.js.map index aee17a549..2b1ea032b 100644 --- a/public/vendor/angular/angular.min.js.map +++ b/public/vendor/angular/angular.min.js.map @@ -2,7 +2,7 @@ "version":3, "file":"angular.min.js", "lineCount":249, -"mappings":"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", +"mappings":"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", "sources":["angular.js"], -"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","forEachSorted","keys","Object","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","extend","dst","ii","arguments","j","jj","int","str","parseInt","noop","identity","$","valueFn","isUndefined","isDefined","isObject","isNumber","isDate","toString","isRegExp","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","push","result","Date","getTime","RegExp","match","lastIndex","emptyObject","create","getPrototypeOf","shallowCopy","src","charAt","equals","o1","o2","t1","t2","keySet","concat","array1","array2","slice","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","key_value","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","getAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","test","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","constructor","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","createMap","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","$LocaleProvider","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$asyncCallback","$$AsyncCallbackProvider","$$jqLite","$$jqLiteProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","parent","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","annotate","$inject","argDecl","FN_ARG_SPLIT","FN_ARG","all","underscore","last","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","Type","instance","prototype","returnedValue","has","$injector","instanceCache","decorator","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","supported","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","startPoller","interval","check","pollFns","pollFn","pollTimeout","cacheStateAndFireUrlChange","cacheState","fireUrlChange","cachedState","history","state","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","safeDecodeURIComponent","rawDocument","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","addPollFn","self.addPollFn","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$checkUrlChange","baseHref","self.baseHref","lastCookies","lastCookieString","cookiePath","cookies","self.cookies","cookieLength","cookie","warn","cookieArray","substring","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","options","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","$new","transcludeOnThisElement","createBoundTranscludeFn","transclude","elementTranscludeOnThisElement","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","elementTransclusion","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","retrievalMethod","$searchElement","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","scopeToChild","controllerDirectives","$scope","$attrs","$transclude","controllerInstance","controllerAs","templateDirective","$$originalDirective","isolateScopeController","isolateBindingContext","identifier","bindToController","lastValue","parentGet","parentSet","compare","$observe","$$observers","$$scope","literal","b","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","$on","invokeLinkFn","template","templateUrl","terminalPriority","newScopeDirective","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","extra","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","getTrustedResourceUrl","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","newValue","$$inter","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","expando","k","kk","annotation","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","dataName","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","CNTRL_REG","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","controllerPrototype","exception","cause","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","useApplyAsync","this.useApplyAsync","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","reqHeaderName","lowercaseDefHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","params","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","v","toISOString","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","mustHaveExpression","unescapeText","escapedStartRegexp","escapedEndRegexp","parseStringifyInterceptor","getTrusted","valueOf","newErr","$interpolateMinErr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","compute","interpolationFn","$$watchDelegate","objectEquality","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","count","invokeApply","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","NUMBER_FORMATS","DECIMAL_SEP","GROUP_SEP","PATTERNS","minInt","minFrac","maxFrac","posPre","posSuf","negPre","negSuf","gSize","lgSize","CURRENCY_SYM","DATETIME_FORMATS","MONTH","SHORTMONTH","DAY","SHORTDAY","AMPMS","medium","fullDate","longDate","mediumDate","shortDate","mediumTime","shortTime","pluralCat","num","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","stripFile","lastIndexOf","LocationHtml5Url","appBase","basePrefix","$$html5","appBaseNoFile","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","ctrlKey","metaKey","which","target","absHref","animVal","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","isConstant","setter","setValue","fullExp","propertyObj","isPossiblyDangerousMemberName","cspSafeGetterFn","key0","key1","key2","key3","key4","expensiveChecks","eso","o","eso0","eso1","eso2","eso3","eso4","cspSafeGetter","pathVal","getterFnWithEnsureSafeObject","s","getterFn","getterFnCache","getterFnCacheExpensive","getterFnCacheDefault","pathKeys","pathKeysLength","code","needsEnsureSafeObject","lookupJs","evaledFnGetter","Function","sharedGetter","fn.assign","getValueOf","objectValueOf","cacheDefault","cacheExpensive","wrapSharedExpression","wrapped","collectExpressionInputs","inputs","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","parsedExpression","inputExpressions","$$inputs","lastResult","oldInputValue","expressionInputWatch","newInputValue","oldInputValueOfValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","$parseOptions","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","promises","results","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","Scope","$id","$parent","$$watchers","$$nextSibling","$$prevSibling","$$childHead","$$childTail","$root","$$listeners","$$listenerCount","beginPhase","phase","decrementListenerCount","current","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","destroyChild","child","$$ChildScope","this.$$ChildScope","watchExp","watcher","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","expr","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","isNaN","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","currentScope","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","msie","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","predicateFn","createPredicateFn","actual","expected","item","deepCompare","actualType","expectedType","expectedVal","keyIsDollar","actualVal","$locale","formats","amount","currencySymbol","fractionSize","formatNumber","number","groupSep","decimalSep","isFinite","isNegative","abs","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","round","fraction","lgroup","group","padNumber","digits","neg","dateGetter","date","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","ms","format","timezone","NUMBER_STRING","DATE_FORMATS_SPLIT","setMinutes","getMinutes","getTimezoneOffset","DATE_FORMATS","object","spacing","limit","Infinity","out","sortPredicate","reverseOrder","reverseComparator","comp","descending","objectToString","v1","v2","map","predicate","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","$ngModelMinErr","timezoneOffset","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","fallback","parseFn","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","REGEX_STRING_REGEXP","documentMode","isActive_","active","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","removeAttribute","css","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","off","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","$$annotate","$animateMinErr","$$selectors","classNameFilter","this.classNameFilter","$$classNameFilter","runAnimationPostDigest","cancelFn","$$cancelFn","defer.promise.$$cancelFn","ngAnimatePostDigest","ngAnimateNotifyComplete","resolveElementClasses","hasClasses","cachedClassManipulation","op","asyncPromise","currentDefer","applyStyles","styles","from","to","animate","enter","leave","move","$$addClassImmediately","$$removeClassImmediately","add","createdCache","STORAGE_KEY","$$setClassImmediately","APPLICATION_JSON","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","CALL","APPLY","BIND","CONSTANTS","null","true","false","constantGetter","OPERATORS","+","-","*","/","%","===","!==","==","!=","<",">","<=",">=","&&","||","!","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","operator","throwError","chars","isExpOperator","start","end","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ZERO","statements","primary","expect","filterChain","consume","arrayDeclaration","functionCall","objectIndex","fieldAccess","peekToken","e1","e2","e3","e4","peekAhead","t","unaryFn","right","$parseUnaryFn","binaryFn","left","isBranching","$parseBinaryFn","$parseConstant","$parseStatements","inputFn","argsFn","$parseFilter","every","assignment","ternary","$parseAssignment","logicalOR","middle","$parseTernary","logicalAND","equality","relational","additive","multiplicative","unary","$parseFieldAccess","indexFn","$parseObjectIndex","fnGetter","contextGetter","expressionText","$parseFunctionCall","elementFns","$parseArrayLiteral","valueFns","$parseObjectLiteral","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","Z","timeZoneGetter","zone","paddedZone","ww","w","xlinkHref","propName","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","ngFormCompile","formElement","ngFormPreLink","handleFormSubmission","parentFormCtrl","alias","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","DEFAULT_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","minutes","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","ctrls","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$viewChangeListeners","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","parserValid","allValid","$$writeModelToScope","this.$$runValidators","parseValid","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","trimValues","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","that","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","forceAsyncEvents","ngEventHandler","$event","previousElements","ngIfWatchAction","newScope","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","parseAsResourceUrl","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","lhs","rhs","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","itemKey","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","tempClasses","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","ngOptionsMinErr","NG_OPTIONS_REGEXP","nullModelCtrl","optionsMap","ngModelCtrl","unknownOption","databound","init","self.init","ngModelCtrl_","nullOption_","unknownOption_","addOption","self.addOption","removeOption","self.removeOption","hasOption","renderUnknownOption","self.renderUnknownOption","unknownVal","self.hasOption","setupAsSingle","selectElement","selectCtrl","ngModelCtrl.$render","emptyOption","setupAsMultiple","lastView","selectMultipleWatch","setupAsOptions","callExpression","exprFn","valueName","keyName","createIsSelectedFn","selectedSet","trackFn","trackIndex","isSelected","compareValueFn","selectAsFn","scheduleRendering","renderScheduled","render","updateLabelMap","labelMap","label","added","optionGroups","optionGroupNames","optionGroupName","optionGroup","existingParent","existingOptions","existingOption","valuesFn","anySelected","optionId","trackKeysCache","groupByFn","displayFn","nullOption","groupIndex","groupLength","optionGroupsCache","optGroupTemplate","lastElement","optionTemplate","optionsExp","selectAs","track","selectionChanged","selectedKey","viewValueFn","getLabels","toDisplay","ngModelCtrl.$isEmpty","nullSelectCtrl","selectCtrlName","interpolateWatchAction","$$csp"] +"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","forEachSorted","keys","Object","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","extend","dst","ii","arguments","j","jj","int","str","parseInt","noop","identity","$","valueFn","isUndefined","isDefined","isObject","isNumber","isDate","toString","isRegExp","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","push","result","Date","getTime","RegExp","match","lastIndex","emptyObject","create","getPrototypeOf","shallowCopy","src","charAt","equals","o1","o2","t1","t2","keySet","concat","array1","array2","slice","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","key_value","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","getAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","test","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","constructor","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","createMap","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","$LocaleProvider","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$asyncCallback","$$AsyncCallbackProvider","$$jqLite","$$jqLiteProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","cloneNode","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","parent","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","getAliasedAttrName","ALIASED_ATTR","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","annotate","$inject","argDecl","FN_ARG_SPLIT","FN_ARG","all","underscore","last","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","Type","instance","prototype","returnedValue","has","$injector","instanceCache","decorator","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","supported","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","startPoller","interval","check","pollFns","pollFn","pollTimeout","cacheStateAndFireUrlChange","cacheState","fireUrlChange","cachedState","history","state","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","safeDecodeURIComponent","rawDocument","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","addPollFn","self.addPollFn","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$checkUrlChange","baseHref","self.baseHref","lastCookies","lastCookieString","cookiePath","cookies","self.cookies","cookieLength","cookie","warn","cookieArray","substring","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","options","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","$new","transcludeOnThisElement","createBoundTranscludeFn","transclude","elementTranscludeOnThisElement","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","elementTransclusion","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","retrievalMethod","$searchElement","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","scopeToChild","controllerDirectives","$scope","$attrs","$transclude","controllerInstance","controllerAs","templateDirective","$$originalDirective","isolateScopeController","isolateBindingContext","identifier","bindToController","lastValue","parentGet","parentSet","compare","$observe","$$observers","$$scope","literal","b","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","$on","invokeLinkFn","template","templateUrl","terminalPriority","newScopeDirective","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","extra","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","getTrustedResourceUrl","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","newValue","$$inter","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","expando","k","kk","annotation","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","dataName","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","CNTRL_REG","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","controllerPrototype","exception","cause","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","useApplyAsync","this.useApplyAsync","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","reqHeaderName","lowercaseDefHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","params","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","v","toISOString","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","mustHaveExpression","unescapeText","escapedStartRegexp","escapedEndRegexp","parseStringifyInterceptor","getTrusted","valueOf","newErr","$interpolateMinErr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","compute","interpolationFn","$$watchDelegate","objectEquality","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","count","invokeApply","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","NUMBER_FORMATS","DECIMAL_SEP","GROUP_SEP","PATTERNS","minInt","minFrac","maxFrac","posPre","posSuf","negPre","negSuf","gSize","lgSize","CURRENCY_SYM","DATETIME_FORMATS","MONTH","SHORTMONTH","DAY","SHORTDAY","AMPMS","medium","fullDate","longDate","mediumDate","shortDate","mediumTime","shortTime","pluralCat","num","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","stripFile","lastIndexOf","LocationHtml5Url","appBase","basePrefix","$$html5","appBaseNoFile","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","IGNORE_URI_REGEXP","ctrlKey","metaKey","which","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","isConstant","setter","setValue","fullExp","propertyObj","isPossiblyDangerousMemberName","cspSafeGetterFn","key0","key1","key2","key3","key4","expensiveChecks","eso","o","eso0","eso1","eso2","eso3","eso4","cspSafeGetter","pathVal","getterFnWithEnsureSafeObject","s","getterFn","getterFnCache","getterFnCacheExpensive","getterFnCacheDefault","pathKeys","pathKeysLength","code","needsEnsureSafeObject","lookupJs","evaledFnGetter","Function","sharedGetter","fn.assign","getValueOf","objectValueOf","cacheDefault","cacheExpensive","wrapSharedExpression","wrapped","collectExpressionInputs","inputs","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","parsedExpression","inputExpressions","$$inputs","lastResult","oldInputValue","expressionInputWatch","newInputValue","oldInputValueOfValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","$parseOptions","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","promises","results","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","Scope","$id","$parent","$$watchers","$$nextSibling","$$prevSibling","$$childHead","$$childTail","$root","$$listeners","$$listenerCount","beginPhase","phase","decrementListenerCount","current","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","destroyChild","child","$$ChildScope","this.$$ChildScope","watchExp","watcher","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","expr","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","isNaN","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","currentScope","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","msie","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","amount","currencySymbol","fractionSize","formatNumber","number","groupSep","decimalSep","isFinite","isNegative","abs","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","round","fraction","lgroup","group","padNumber","digits","neg","dateGetter","date","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","ms","format","timezone","NUMBER_STRING","DATE_FORMATS_SPLIT","setMinutes","getMinutes","getTimezoneOffset","DATE_FORMATS","object","spacing","limit","Infinity","sortPredicate","reverseOrder","reverseComparator","comp","descending","objectToString","v1","v2","map","predicate","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","$ngModelMinErr","timezoneOffset","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","fallback","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","isActive_","active","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","removeAttribute","css","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","off","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","$$annotate","$animateMinErr","$$selectors","classNameFilter","this.classNameFilter","$$classNameFilter","runAnimationPostDigest","cancelFn","$$cancelFn","defer.promise.$$cancelFn","ngAnimatePostDigest","ngAnimateNotifyComplete","resolveElementClasses","hasClasses","cachedClassManipulation","op","asyncPromise","currentDefer","applyStyles","styles","from","to","animate","enter","leave","move","$$addClassImmediately","$$removeClassImmediately","add","createdCache","STORAGE_KEY","$$setClassImmediately","APPLICATION_JSON","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","CALL","APPLY","BIND","CONSTANTS","null","true","false","constantGetter","OPERATORS","+","-","*","/","%","===","!==","==","!=","<",">","<=",">=","&&","||","!","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","operator","throwError","chars","isExpOperator","start","end","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ZERO","statements","primary","expect","filterChain","consume","arrayDeclaration","functionCall","objectIndex","fieldAccess","peekToken","e1","e2","e3","e4","peekAhead","t","unaryFn","right","$parseUnaryFn","binaryFn","left","isBranching","$parseBinaryFn","$parseConstant","$parseStatements","inputFn","argsFn","$parseFilter","every","assignment","ternary","$parseAssignment","logicalOR","middle","$parseTernary","logicalAND","equality","relational","additive","multiplicative","unary","$parseFieldAccess","indexFn","$parseObjectIndex","fnGetter","contextGetter","expressionText","$parseFunctionCall","elementFns","$parseArrayLiteral","valueFns","$parseObjectLiteral","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","Z","timeZoneGetter","zone","paddedZone","ww","w","xlinkHref","propName","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","ngFormCompile","formElement","ngFormPreLink","handleFormSubmission","parentFormCtrl","alias","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","minutes","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","ctrls","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","$event","previousElements","ngIfWatchAction","newScope","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","parseAsResourceUrl","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","parserValid","allValid","$$writeModelToScope","this.$$runValidators","parseValid","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","lhs","rhs","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","itemKey","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","tempClasses","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","ngOptionsMinErr","NG_OPTIONS_REGEXP","nullModelCtrl","optionsMap","ngModelCtrl","unknownOption","databound","init","self.init","ngModelCtrl_","nullOption_","unknownOption_","addOption","self.addOption","removeOption","self.removeOption","hasOption","renderUnknownOption","self.renderUnknownOption","unknownVal","self.hasOption","setupAsSingle","selectElement","selectCtrl","ngModelCtrl.$render","emptyOption","setupAsMultiple","lastView","selectMultipleWatch","setupAsOptions","callExpression","exprFn","valueName","keyName","createIsSelectedFn","selectedSet","trackFn","trackIndex","isSelected","compareValueFn","selectAsFn","scheduleRendering","renderScheduled","render","updateLabelMap","labelMap","label","added","optionGroups","optionGroupNames","optionGroupName","optionGroup","existingParent","existingOptions","existingOption","valuesFn","anySelected","optionId","trackKeysCache","groupByFn","displayFn","nullOption","groupIndex","groupLength","optionGroupsCache","optGroupTemplate","lastElement","optionTemplate","optionsExp","selectAs","track","selectionChanged","selectedKey","viewValueFn","getLabels","toDisplay","ngModelCtrl.$isEmpty","nullSelectCtrl","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","$$csp"] } diff --git a/public/vendor/angular/bower.json b/public/vendor/angular/bower.json index d386dcd34..07bfef00b 100644 --- a/public/vendor/angular/bower.json +++ b/public/vendor/angular/bower.json @@ -1,6 +1,6 @@ { "name": "angular", - "version": "1.3.7", + "version": "1.3.10", "main": "./angular.js", "ignore": [], "dependencies": { diff --git a/public/vendor/angular/package.json b/public/vendor/angular/package.json index 65b1c809c..a447b4346 100644 --- a/public/vendor/angular/package.json +++ b/public/vendor/angular/package.json @@ -1,6 +1,6 @@ { "name": "angular", - "version": "1.3.7", + "version": "1.3.10", "description": "HTML enhanced for web apps", "main": "angular.js", "scripts": { diff --git a/public/vendor/ng-tags-input/.bower.json b/public/vendor/ng-tags-input/.bower.json new file mode 100644 index 000000000..1842099d9 --- /dev/null +++ b/public/vendor/ng-tags-input/.bower.json @@ -0,0 +1,24 @@ +{ + "name": "ng-tags-input", + "version": "2.1.1", + "location": "https://github.com/mbenford/ngTagsInput-bower", + "homepage": "http://mbenford.github.io/ngTagsInput", + "main": [ + "ng-tags-input.min.js", + "ng-tags-input.min.css" + ], + "description": "Tags input directive for AngularJS", + "dependencies": { + "angular": ">=1.2.1" + }, + "_release": "2.1.1", + "_resolution": { + "type": "version", + "tag": "v2.1.1", + "commit": "04ddd024e0afd421d1073732a1aab5a5efb68a9d" + }, + "_source": "git://github.com/mbenford/ngTagsInput-bower.git", + "_target": "2.1.1", + "_originalSource": "ng-tags-input", + "_direct": true +} \ No newline at end of file diff --git a/public/vendor/ng-tags-input/README b/public/vendor/ng-tags-input/README new file mode 100644 index 000000000..c5ea3ea19 --- /dev/null +++ b/public/vendor/ng-tags-input/README @@ -0,0 +1 @@ +Bower repository for ngTagsInput diff --git a/public/vendor/ng-tags-input/bower.json b/public/vendor/ng-tags-input/bower.json new file mode 100644 index 000000000..95e929782 --- /dev/null +++ b/public/vendor/ng-tags-input/bower.json @@ -0,0 +1,14 @@ +{ + "name": "ng-tags-input", + "version": "2.1.1", + "location": "https://github.com/mbenford/ngTagsInput-bower", + "homepage": "http://mbenford.github.io/ngTagsInput", + "main": [ + "ng-tags-input.min.js", + "ng-tags-input.min.css" + ], + "description": "Tags input directive for AngularJS", + "dependencies": { + "angular": ">=1.2.1" + } +} \ No newline at end of file diff --git a/public/vendor/ng-tags-input/ng-tags-input.bootstrap.css b/public/vendor/ng-tags-input/ng-tags-input.bootstrap.css new file mode 100644 index 000000000..5f8ea5b79 --- /dev/null +++ b/public/vendor/ng-tags-input/ng-tags-input.bootstrap.css @@ -0,0 +1,166 @@ +tags-input { + box-shadow: none; + border: none; + padding: 0; + min-height: 34px; +} +tags-input .host { + margin: 0; +} +tags-input .tags { + -moz-appearance: none; + -webkit-appearance: none; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + -moz-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} +tags-input .tags .tag-item { + color: white; + background: #428bca; + border: 1px solid #357ebd; + border-radius: 4px; +} +tags-input .tags .tag-item.selected { + color: white; + background: #d9534f; + border: 1px solid #d43f3a; +} +tags-input .tags .tag-item .remove-button:hover { + text-decoration: none; +} +tags-input .tags.focused { + border: 1px solid #66afe9; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); +} +tags-input .autocomplete { + border-radius: 4px; +} +tags-input .autocomplete .suggestion-item.selected { + color: #262626; + background-color: whitesmoke; +} +tags-input .autocomplete .suggestion-item.selected em { + color: #262626; + background-color: whitesmoke; +} +tags-input .autocomplete .suggestion-item em { + color: black; + background-color: white; +} +tags-input.ng-invalid .tags { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; +} + +.input-group tags-input { + padding: 0; + display: table-cell; +} +.input-group tags-input:not(:first-child) .tags { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group tags-input:not(:last-child) .tags { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-lg tags-input:first-child .tags { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.input-group-lg tags-input:last-child .tags { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.input-group-sm tags-input:first-child .tags { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.input-group-sm tags-input:last-child .tags { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +tags-input.ti-input-lg, .input-group-lg tags-input { + min-height: 46px; +} +tags-input.ti-input-lg .tags, .input-group-lg tags-input .tags { + border-radius: 6px; +} +tags-input.ti-input-lg .tags .tag-item, .input-group-lg tags-input .tags .tag-item { + height: 38px; + line-height: 37px; + font-size: 18px; + border-radius: 6px; +} +tags-input.ti-input-lg .tags .tag-item .remove-button, .input-group-lg tags-input .tags .tag-item .remove-button { + font-size: 20px; +} +tags-input.ti-input-lg .tags .input, .input-group-lg tags-input .tags .input { + height: 38px; + font-size: 18px; +} +tags-input.ti-input-sm, .input-group-sm tags-input { + min-height: 30px; +} +tags-input.ti-input-sm .tags, .input-group-sm tags-input .tags { + border-radius: 3px; +} +tags-input.ti-input-sm .tags .tag-item, .input-group-sm tags-input .tags .tag-item { + height: 22px; + line-height: 21px; + font-size: 12px; + border-radius: 3px; +} +tags-input.ti-input-sm .tags .tag-item .remove-button, .input-group-sm tags-input .tags .tag-item .remove-button { + font-size: 16px; +} +tags-input.ti-input-sm .tags .input, .input-group-sm tags-input .tags .input { + height: 22px; + font-size: 12px; +} + +.has-feedback tags-input .tags { + padding-right: 30px; +} + +.has-success tags-input .tags { + border-color: #3c763d; +} +.has-success tags-input .tags.focused { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; +} + +.has-error tags-input .tags { + border-color: #a94442; +} +.has-error tags-input .tags.focused { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; +} + +.has-warning tags-input .tags { + border-color: #8a6d3b; +} +.has-warning tags-input .tags.focused { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; +} diff --git a/public/vendor/ng-tags-input/ng-tags-input.bootstrap.min.css b/public/vendor/ng-tags-input/ng-tags-input.bootstrap.min.css new file mode 100644 index 000000000..d21842194 --- /dev/null +++ b/public/vendor/ng-tags-input/ng-tags-input.bootstrap.min.css @@ -0,0 +1 @@ +tags-input{box-shadow:none;border:none;padding:0;min-height:34px}tags-input .host{margin:0}tags-input .tags{-moz-appearance:none;-webkit-appearance:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-moz-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}tags-input .tags .tag-item{color:#fff;background:#428bca;border:1px solid #357ebd;border-radius:4px}tags-input .tags .tag-item.selected{color:#fff;background:#d9534f;border:1px solid #d43f3a}tags-input .tags .tag-item .remove-button:hover{text-decoration:none}tags-input .tags.focused{border:1px solid #66afe9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}tags-input .autocomplete{border-radius:4px}tags-input .autocomplete .suggestion-item.selected,tags-input .autocomplete .suggestion-item.selected em{color:#262626;background-color:#f5f5f5}tags-input .autocomplete .suggestion-item em{color:#000;background-color:#fff}tags-input.ng-invalid .tags{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.input-group tags-input{padding:0;display:table-cell}.input-group tags-input:not(:first-child) .tags{border-top-left-radius:0;border-bottom-left-radius:0}.input-group tags-input:not(:last-child) .tags{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-lg tags-input:first-child .tags{border-top-left-radius:6px;border-bottom-left-radius:6px}.input-group-lg tags-input:last-child .tags{border-top-right-radius:6px;border-bottom-right-radius:6px}.input-group-sm tags-input:first-child .tags{border-top-left-radius:3px;border-bottom-left-radius:3px}.input-group-sm tags-input:last-child .tags{border-top-right-radius:3px;border-bottom-right-radius:3px}.input-group-lg tags-input,tags-input.ti-input-lg{min-height:46px}.input-group-lg tags-input .tags,tags-input.ti-input-lg .tags{border-radius:6px}.input-group-lg tags-input .tags .tag-item,tags-input.ti-input-lg .tags .tag-item{height:38px;line-height:37px;font-size:18px;border-radius:6px}.input-group-lg tags-input .tags .tag-item .remove-button,tags-input.ti-input-lg .tags .tag-item .remove-button{font-size:20px}.input-group-lg tags-input .tags .input,tags-input.ti-input-lg .tags .input{height:38px;font-size:18px}.input-group-sm tags-input,tags-input.ti-input-sm{min-height:30px}.input-group-sm tags-input .tags,tags-input.ti-input-sm .tags{border-radius:3px}.input-group-sm tags-input .tags .tag-item,tags-input.ti-input-sm .tags .tag-item{height:22px;line-height:21px;font-size:12px;border-radius:3px}.input-group-sm tags-input .tags .tag-item .remove-button,tags-input.ti-input-sm .tags .tag-item .remove-button{font-size:16px}.input-group-sm tags-input .tags .input,tags-input.ti-input-sm .tags .input{height:22px;font-size:12px}.has-feedback tags-input .tags{padding-right:30px}.has-success tags-input .tags{border-color:#3c763d}.has-success tags-input .tags.focused{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-error tags-input .tags{border-color:#a94442}.has-error tags-input .tags.focused{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-warning tags-input .tags{border-color:#8a6d3b}.has-warning tags-input .tags.focused{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b} \ No newline at end of file diff --git a/public/vendor/ng-tags-input/ng-tags-input.css b/public/vendor/ng-tags-input/ng-tags-input.css new file mode 100644 index 000000000..86ee970c2 --- /dev/null +++ b/public/vendor/ng-tags-input/ng-tags-input.css @@ -0,0 +1,133 @@ +tags-input { + display: block; +} +tags-input *, tags-input *:before, tags-input *:after { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +tags-input .host { + position: relative; + margin-top: 5px; + margin-bottom: 5px; + height: 100%; +} +tags-input .host:active { + outline: none; +} + +tags-input .tags { + -moz-appearance: textfield; + -webkit-appearance: textfield; + padding: 1px; + overflow: hidden; + word-wrap: break-word; + cursor: text; + background-color: white; + border: 1px solid darkgray; + box-shadow: 1px 1px 1px 0 lightgray inset; + height: 100%; +} +tags-input .tags.focused { + outline: none; + -webkit-box-shadow: 0 0 3px 1px rgba(5, 139, 242, 0.6); + -moz-box-shadow: 0 0 3px 1px rgba(5, 139, 242, 0.6); + box-shadow: 0 0 3px 1px rgba(5, 139, 242, 0.6); +} +tags-input .tags .tag-list { + margin: 0; + padding: 0; + list-style-type: none; +} +tags-input .tags .tag-item { + margin: 2px; + padding: 0 5px; + display: inline-block; + float: left; + font: 14px "Helvetica Neue", Helvetica, Arial, sans-serif; + height: 26px; + line-height: 25px; + border: 1px solid #acacac; + border-radius: 3px; + background: -webkit-linear-gradient(top, #f0f9ff 0%, #cbebff 47%, #a1dbff 100%); + background: linear-gradient(to bottom, #f0f9ff 0%, #cbebff 47%, #a1dbff 100%); +} +tags-input .tags .tag-item.selected { + background: -webkit-linear-gradient(top, #febbbb 0%, #fe9090 45%, #ff5c5c 100%); + background: linear-gradient(to bottom, #febbbb 0%, #fe9090 45%, #ff5c5c 100%); +} +tags-input .tags .tag-item .remove-button { + margin: 0 0 0 5px; + padding: 0; + border: none; + background: none; + cursor: pointer; + vertical-align: middle; + font: bold 16px Arial, sans-serif; + color: #585858; +} +tags-input .tags .tag-item .remove-button:active { + color: red; +} +tags-input .tags .input { + border: 0; + outline: none; + margin: 2px; + padding: 0; + padding-left: 5px; + float: left; + height: 26px; + font: 14px "Helvetica Neue", Helvetica, Arial, sans-serif; +} +tags-input .tags .input.invalid-tag { + color: red; +} +tags-input .tags .input::-ms-clear { + display: none; +} +tags-input.ng-invalid .tags { + -webkit-box-shadow: 0 0 3px 1px rgba(255, 0, 0, 0.6); + -moz-box-shadow: 0 0 3px 1px rgba(255, 0, 0, 0.6); + box-shadow: 0 0 3px 1px rgba(255, 0, 0, 0.6); +} + +tags-input .autocomplete { + margin-top: 5px; + position: absolute; + padding: 5px 0; + z-index: 999; + width: 100%; + background-color: white; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); +} +tags-input .autocomplete .suggestion-list { + margin: 0; + padding: 0; + list-style-type: none; +} +tags-input .autocomplete .suggestion-item { + padding: 5px 10px; + cursor: pointer; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font: 16px "Helvetica Neue", Helvetica, Arial, sans-serif; + color: black; + background-color: white; +} +tags-input .autocomplete .suggestion-item.selected { + color: white; + background-color: #0097cf; +} +tags-input .autocomplete .suggestion-item.selected em { + color: white; + background-color: #0097cf; +} +tags-input .autocomplete .suggestion-item em { + font: normal bold 16px "Helvetica Neue", Helvetica, Arial, sans-serif; + color: black; + background-color: white; +} diff --git a/public/vendor/ng-tags-input/ng-tags-input.js b/public/vendor/ng-tags-input/ng-tags-input.js new file mode 100644 index 000000000..2b1a15ad8 --- /dev/null +++ b/public/vendor/ng-tags-input/ng-tags-input.js @@ -0,0 +1,867 @@ +/*! + * ngTagsInput v2.1.1 + * http://mbenford.github.io/ngTagsInput + * + * Copyright (c) 2013-2014 Michael Benford + * License: MIT + * + * Generated at 2014-09-04 01:27:58 -0300 + */ +(function() { +'use strict'; + +var KEYS = { + backspace: 8, + tab: 9, + enter: 13, + escape: 27, + space: 32, + up: 38, + down: 40, + comma: 188 +}; + +var MAX_SAFE_INTEGER = 9007199254740991; +var SUPPORTED_INPUT_TYPES = ['text', 'email', 'url']; + +function SimplePubSub() { + var events = {}; + return { + on: function(names, handler) { + names.split(' ').forEach(function(name) { + if (!events[name]) { + events[name] = []; + } + events[name].push(handler); + }); + return this; + }, + trigger: function(name, args) { + angular.forEach(events[name], function(handler) { + handler.call(null, args); + }); + return this; + } + }; +} + +function makeObjectArray(array, key) { + array = array || []; + if (array.length > 0 && !angular.isObject(array[0])) { + array.forEach(function(item, index) { + array[index] = {}; + array[index][key] = item; + }); + } + return array; +} + +function findInObjectArray(array, obj, key) { + var item = null; + for (var i = 0; i < array.length; i++) { + // I'm aware of the internationalization issues regarding toLowerCase() + // but I couldn't come up with a better solution right now + if (safeToString(array[i][key]).toLowerCase() === safeToString(obj[key]).toLowerCase()) { + item = array[i]; + break; + } + } + return item; +} + +function replaceAll(str, substr, newSubstr) { + if (!substr) { + return str; + } + + var expression = substr.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'); + return str.replace(new RegExp(expression, 'gi'), newSubstr); +} + +function safeToString(value) { + return angular.isUndefined(value) || value == null ? '' : value.toString().trim(); +} + +function encodeHTML(value) { + return value.replace(/&/g, '&') + .replace(//g, '>'); +} + +var tagsInput = angular.module('ngTagsInput', []); + +/** + * @ngdoc directive + * @name tagsInput + * @module ngTagsInput + * + * @description + * Renders an input box with tag editing support. + * + * @param {string} ngModel Assignable angular expression to data-bind to. + * @param {string=} [displayProperty=text] Property to be rendered as the tag label. + * @param {string=} [input=text] Type of the input element. Only 'text', 'email' and 'url' are supported values. + * @param {number=} tabindex Tab order of the control. + * @param {string=} [placeholder=Add a tag] Placeholder text for the control. + * @param {number=} [minLength=3] Minimum length for a new tag. + * @param {number=} [maxLength=MAX_SAFE_INTEGER] Maximum length allowed for a new tag. + * @param {number=} [minTags=0] Sets minTags validation error key if the number of tags added is less than minTags. + * @param {number=} [maxTags=MAX_SAFE_INTEGER] Sets maxTags validation error key if the number of tags added is greater than maxTags. + * @param {boolean=} [allowLeftoverText=false] Sets leftoverText validation error key if there is any leftover text in + * the input element when the directive loses focus. + * @param {string=} [removeTagSymbol=×] Symbol character for the remove tag button. + * @param {boolean=} [addOnEnter=true] Flag indicating that a new tag will be added on pressing the ENTER key. + * @param {boolean=} [addOnSpace=false] Flag indicating that a new tag will be added on pressing the SPACE key. + * @param {boolean=} [addOnComma=true] Flag indicating that a new tag will be added on pressing the COMMA key. + * @param {boolean=} [addOnBlur=true] Flag indicating that a new tag will be added when the input field loses focus. + * @param {boolean=} [replaceSpacesWithDashes=true] Flag indicating that spaces will be replaced with dashes. + * @param {string=} [allowedTagsPattern=.+] Regular expression that determines whether a new tag is valid. + * @param {boolean=} [enableEditingLastTag=false] Flag indicating that the last tag will be moved back into + * the new tag input box instead of being removed when the backspace key + * is pressed and the input box is empty. + * @param {boolean=} [addFromAutocompleteOnly=false] Flag indicating that only tags coming from the autocomplete list will be allowed. + * When this flag is true, addOnEnter, addOnComma, addOnSpace, addOnBlur and + * allowLeftoverText values are ignored. + * @param {expression} onTagAdded Expression to evaluate upon adding a new tag. The new tag is available as $tag. + * @param {expression} onTagRemoved Expression to evaluate upon removing an existing tag. The removed tag is available as $tag. + */ +tagsInput.directive('tagsInput', ["$timeout","$document","tagsInputConfig", function($timeout, $document, tagsInputConfig) { + function TagList(options, events) { + var self = {}, getTagText, setTagText, tagIsValid; + + getTagText = function(tag) { + return safeToString(tag[options.displayProperty]); + }; + + setTagText = function(tag, text) { + tag[options.displayProperty] = text; + }; + + tagIsValid = function(tag) { + var tagText = getTagText(tag); + + return tagText && + tagText.length >= options.minLength && + tagText.length <= options.maxLength && + options.allowedTagsPattern.test(tagText) && + !findInObjectArray(self.items, tag, options.displayProperty); + }; + + self.items = []; + + self.addText = function(text) { + var tag = {}; + setTagText(tag, text); + return self.add(tag); + }; + + self.add = function(tag) { + var tagText = getTagText(tag); + + if (options.replaceSpacesWithDashes) { + tagText = tagText.replace(/\s/g, '-'); + } + + setTagText(tag, tagText); + + if (tagIsValid(tag)) { + self.items.push(tag); + events.trigger('tag-added', { $tag: tag }); + } + else if (tagText) { + events.trigger('invalid-tag', { $tag: tag }); + } + + return tag; + }; + + self.remove = function(index) { + var tag = self.items.splice(index, 1)[0]; + events.trigger('tag-removed', { $tag: tag }); + return tag; + }; + + self.removeLast = function() { + var tag, lastTagIndex = self.items.length - 1; + + if (options.enableEditingLastTag || self.selected) { + self.selected = null; + tag = self.remove(lastTagIndex); + } + else if (!self.selected) { + self.selected = self.items[lastTagIndex]; + } + + return tag; + }; + + return self; + } + + function validateType(type) { + return SUPPORTED_INPUT_TYPES.indexOf(type) !== -1; + } + + return { + restrict: 'E', + require: 'ngModel', + scope: { + tags: '=ngModel', + onTagAdded: '&', + onTagRemoved: '&' + }, + replace: false, + transclude: true, + templateUrl: 'ngTagsInput/tags-input.html', + controller: ["$scope","$attrs","$element", function($scope, $attrs, $element) { + $scope.events = new SimplePubSub(); + + tagsInputConfig.load('tagsInput', $scope, $attrs, { + type: [String, 'text', validateType], + placeholder: [String, 'Add a tag'], + tabindex: [Number, null], + removeTagSymbol: [String, String.fromCharCode(215)], + replaceSpacesWithDashes: [Boolean, true], + minLength: [Number, 3], + maxLength: [Number, MAX_SAFE_INTEGER], + addOnEnter: [Boolean, true], + addOnSpace: [Boolean, false], + addOnComma: [Boolean, true], + addOnBlur: [Boolean, true], + allowedTagsPattern: [RegExp, /.+/], + enableEditingLastTag: [Boolean, false], + minTags: [Number, 0], + maxTags: [Number, MAX_SAFE_INTEGER], + displayProperty: [String, 'text'], + allowLeftoverText: [Boolean, false], + addFromAutocompleteOnly: [Boolean, false] + }); + + $scope.tagList = new TagList($scope.options, $scope.events); + + this.registerAutocomplete = function() { + var input = $element.find('input'); + input.on('keydown', function(e) { + $scope.events.trigger('input-keydown', e); + }); + + return { + addTag: function(tag) { + return $scope.tagList.add(tag); + }, + focusInput: function() { + input[0].focus(); + }, + getTags: function() { + return $scope.tags; + }, + getCurrentTagText: function() { + return $scope.newTag.text; + }, + getOptions: function() { + return $scope.options; + }, + on: function(name, handler) { + $scope.events.on(name, handler); + return this; + } + }; + }; + }], + link: function(scope, element, attrs, ngModelCtrl) { + var hotkeys = [KEYS.enter, KEYS.comma, KEYS.space, KEYS.backspace], + tagList = scope.tagList, + events = scope.events, + options = scope.options, + input = element.find('input'), + validationOptions = ['minTags', 'maxTags', 'allowLeftoverText'], + setElementValidity; + + setElementValidity = function() { + ngModelCtrl.$setValidity('maxTags', scope.tags.length <= options.maxTags); + ngModelCtrl.$setValidity('minTags', scope.tags.length >= options.minTags); + ngModelCtrl.$setValidity('leftoverText', options.allowLeftoverText ? true : !scope.newTag.text); + }; + + events + .on('tag-added', scope.onTagAdded) + .on('tag-removed', scope.onTagRemoved) + .on('tag-added', function() { + scope.newTag.text = ''; + }) + .on('tag-added tag-removed', function() { + ngModelCtrl.$setViewValue(scope.tags); + }) + .on('invalid-tag', function() { + scope.newTag.invalid = true; + }) + .on('input-change', function() { + tagList.selected = null; + scope.newTag.invalid = null; + }) + .on('input-focus', function() { + ngModelCtrl.$setValidity('leftoverText', true); + }) + .on('input-blur', function() { + if (!options.addFromAutocompleteOnly) { + if (options.addOnBlur) { + tagList.addText(scope.newTag.text); + } + + setElementValidity(); + } + }) + .on('option-change', function(e) { + if (validationOptions.indexOf(e.name) !== -1) { + setElementValidity(); + } + }); + + scope.newTag = { text: '', invalid: null }; + + scope.getDisplayText = function(tag) { + return safeToString(tag[options.displayProperty]); + }; + + scope.track = function(tag) { + return tag[options.displayProperty]; + }; + + scope.newTagChange = function() { + events.trigger('input-change', scope.newTag.text); + }; + + scope.$watch('tags', function(value) { + scope.tags = makeObjectArray(value, options.displayProperty); + tagList.items = scope.tags; + }); + + scope.$watch('tags.length', function() { + setElementValidity(); + }); + + input + .on('keydown', function(e) { + // This hack is needed because jqLite doesn't implement stopImmediatePropagation properly. + // I've sent a PR to Angular addressing this issue and hopefully it'll be fixed soon. + // https://github.com/angular/angular.js/pull/4833 + if (e.isImmediatePropagationStopped && e.isImmediatePropagationStopped()) { + return; + } + + var key = e.keyCode, + isModifier = e.shiftKey || e.altKey || e.ctrlKey || e.metaKey, + addKeys = {}, + shouldAdd, shouldRemove; + + if (isModifier || hotkeys.indexOf(key) === -1) { + return; + } + + addKeys[KEYS.enter] = options.addOnEnter; + addKeys[KEYS.comma] = options.addOnComma; + addKeys[KEYS.space] = options.addOnSpace; + + shouldAdd = !options.addFromAutocompleteOnly && addKeys[key]; + shouldRemove = !shouldAdd && key === KEYS.backspace && scope.newTag.text.length === 0; + + if (shouldAdd) { + tagList.addText(scope.newTag.text); + + scope.$apply(); + e.preventDefault(); + } + else if (shouldRemove) { + var tag = tagList.removeLast(); + if (tag && options.enableEditingLastTag) { + scope.newTag.text = tag[options.displayProperty]; + } + + scope.$apply(); + e.preventDefault(); + } + }) + .on('focus', function() { + if (scope.hasFocus) { + return; + } + + scope.hasFocus = true; + events.trigger('input-focus'); + + scope.$apply(); + }) + .on('blur', function() { + $timeout(function() { + var activeElement = $document.prop('activeElement'), + lostFocusToBrowserWindow = activeElement === input[0], + lostFocusToChildElement = element[0].contains(activeElement); + + if (lostFocusToBrowserWindow || !lostFocusToChildElement) { + scope.hasFocus = false; + events.trigger('input-blur'); + } + }); + }); + + element.find('div').on('click', function() { + input[0].focus(); + }); + } + }; +}]); + +/** + * @ngdoc directive + * @name autoComplete + * @module ngTagsInput + * + * @description + * Provides autocomplete support for the tagsInput directive. + * + * @param {expression} source Expression to evaluate upon changing the input content. The input value is available as + * $query. The result of the expression must be a promise that eventually resolves to an + * array of strings. + * @param {number=} [debounceDelay=100] Amount of time, in milliseconds, to wait before evaluating the expression in + * the source option after the last keystroke. + * @param {number=} [minLength=3] Minimum number of characters that must be entered before evaluating the expression + * in the source option. + * @param {boolean=} [highlightMatchedText=true] Flag indicating that the matched text will be highlighted in the + * suggestions list. + * @param {number=} [maxResultsToShow=10] Maximum number of results to be displayed at a time. + * @param {boolean=} [loadOnDownArrow=false] Flag indicating that the source option will be evaluated when the down arrow + * key is pressed and the suggestion list is closed. The current input value + * is available as $query. + * @param {boolean=} {loadOnEmpty=false} Flag indicating that the source option will be evaluated when the input content + * becomes empty. The $query variable will be passed to the expression as an empty string. + * @param {boolean=} {loadOnFocus=false} Flag indicating that the source option will be evaluated when the input element + * gains focus. The current input value is available as $query. + */ +tagsInput.directive('autoComplete', ["$document","$timeout","$sce","tagsInputConfig", function($document, $timeout, $sce, tagsInputConfig) { + function SuggestionList(loadFn, options) { + var self = {}, debouncedLoadId, getDifference, lastPromise; + + getDifference = function(array1, array2) { + return array1.filter(function(item) { + return !findInObjectArray(array2, item, options.tagsInput.displayProperty); + }); + }; + + self.reset = function() { + lastPromise = null; + + self.items = []; + self.visible = false; + self.index = -1; + self.selected = null; + self.query = null; + + $timeout.cancel(debouncedLoadId); + }; + self.show = function() { + self.selected = null; + self.visible = true; + }; + self.load = function(query, tags) { + $timeout.cancel(debouncedLoadId); + debouncedLoadId = $timeout(function() { + self.query = query; + + var promise = loadFn({ $query: query }); + lastPromise = promise; + + promise.then(function(items) { + if (promise !== lastPromise) { + return; + } + + items = makeObjectArray(items.data || items, options.tagsInput.displayProperty); + items = getDifference(items, tags); + self.items = items.slice(0, options.maxResultsToShow); + + if (self.items.length > 0) { + self.show(); + } + else { + self.reset(); + } + }); + }, options.debounceDelay, false); + }; + self.selectNext = function() { + self.select(++self.index); + }; + self.selectPrior = function() { + self.select(--self.index); + }; + self.select = function(index) { + if (index < 0) { + index = self.items.length - 1; + } + else if (index >= self.items.length) { + index = 0; + } + self.index = index; + self.selected = self.items[index]; + }; + + self.reset(); + + return self; + } + + return { + restrict: 'E', + require: '^tagsInput', + scope: { source: '&' }, + templateUrl: 'ngTagsInput/auto-complete.html', + link: function(scope, element, attrs, tagsInputCtrl) { + var hotkeys = [KEYS.enter, KEYS.tab, KEYS.escape, KEYS.up, KEYS.down], + suggestionList, tagsInput, options, getItem, getDisplayText, shouldLoadSuggestions; + + tagsInputConfig.load('autoComplete', scope, attrs, { + debounceDelay: [Number, 100], + minLength: [Number, 3], + highlightMatchedText: [Boolean, true], + maxResultsToShow: [Number, 10], + loadOnDownArrow: [Boolean, false], + loadOnEmpty: [Boolean, false], + loadOnFocus: [Boolean, false] + }); + + options = scope.options; + + tagsInput = tagsInputCtrl.registerAutocomplete(); + options.tagsInput = tagsInput.getOptions(); + + suggestionList = new SuggestionList(scope.source, options); + + getItem = function(item) { + return item[options.tagsInput.displayProperty]; + }; + + getDisplayText = function(item) { + return safeToString(getItem(item)); + }; + + shouldLoadSuggestions = function(value) { + return value && value.length >= options.minLength || !value && options.loadOnEmpty; + }; + + scope.suggestionList = suggestionList; + + scope.addSuggestionByIndex = function(index) { + suggestionList.select(index); + scope.addSuggestion(); + }; + + scope.addSuggestion = function() { + var added = false; + + if (suggestionList.selected) { + tagsInput.addTag(suggestionList.selected); + suggestionList.reset(); + tagsInput.focusInput(); + + added = true; + } + return added; + }; + + scope.highlight = function(item) { + var text = getDisplayText(item); + text = encodeHTML(text); + if (options.highlightMatchedText) { + text = replaceAll(text, encodeHTML(suggestionList.query), '$&'); + } + return $sce.trustAsHtml(text); + }; + + scope.track = function(item) { + return getItem(item); + }; + + tagsInput + .on('tag-added tag-removed invalid-tag input-blur', function() { + suggestionList.reset(); + }) + .on('input-change', function(value) { + if (shouldLoadSuggestions(value)) { + suggestionList.load(value, tagsInput.getTags()); + } + else { + suggestionList.reset(); + } + }) + .on('input-focus', function() { + var value = tagsInput.getCurrentTagText(); + if (options.loadOnFocus && shouldLoadSuggestions(value)) { + suggestionList.load(value, tagsInput.getTags()); + } + }) + .on('input-keydown', function(e) { + // This hack is needed because jqLite doesn't implement stopImmediatePropagation properly. + // I've sent a PR to Angular addressing this issue and hopefully it'll be fixed soon. + // https://github.com/angular/angular.js/pull/4833 + var immediatePropagationStopped = false; + e.stopImmediatePropagation = function() { + immediatePropagationStopped = true; + e.stopPropagation(); + }; + e.isImmediatePropagationStopped = function() { + return immediatePropagationStopped; + }; + + var key = e.keyCode, + handled = false; + + if (hotkeys.indexOf(key) === -1) { + return; + } + + if (suggestionList.visible) { + + if (key === KEYS.down) { + suggestionList.selectNext(); + handled = true; + } + else if (key === KEYS.up) { + suggestionList.selectPrior(); + handled = true; + } + else if (key === KEYS.escape) { + suggestionList.reset(); + handled = true; + } + else if (key === KEYS.enter || key === KEYS.tab) { + handled = scope.addSuggestion(); + } + } + else { + if (key === KEYS.down && scope.options.loadOnDownArrow) { + suggestionList.load(tagsInput.getCurrentTagText(), tagsInput.getTags()); + handled = true; + } + } + + if (handled) { + e.preventDefault(); + e.stopImmediatePropagation(); + scope.$apply(); + } + }); + } + }; +}]); + + +/** + * @ngdoc directive + * @name tiTranscludeAppend + * @module ngTagsInput + * + * @description + * Re-creates the old behavior of ng-transclude. Used internally by tagsInput directive. + */ +tagsInput.directive('tiTranscludeAppend', function() { + return function(scope, element, attrs, ctrl, transcludeFn) { + transcludeFn(function(clone) { + element.append(clone); + }); + }; +}); + +/** + * @ngdoc directive + * @name tiAutosize + * @module ngTagsInput + * + * @description + * Automatically sets the input's width so its content is always visible. Used internally by tagsInput directive. + */ +tagsInput.directive('tiAutosize', ["tagsInputConfig", function(tagsInputConfig) { + return { + restrict: 'A', + require: 'ngModel', + link: function(scope, element, attrs, ctrl) { + var threshold = tagsInputConfig.getTextAutosizeThreshold(), + span, resize; + + span = angular.element(''); + span.css('display', 'none') + .css('visibility', 'hidden') + .css('width', 'auto') + .css('white-space', 'pre'); + + element.parent().append(span); + + resize = function(originalValue) { + var value = originalValue, width; + + if (angular.isString(value) && value.length === 0) { + value = attrs.placeholder; + } + + if (value) { + span.text(value); + span.css('display', ''); + width = span.prop('offsetWidth'); + span.css('display', 'none'); + } + + element.css('width', width ? width + threshold + 'px' : ''); + + return originalValue; + }; + + ctrl.$parsers.unshift(resize); + ctrl.$formatters.unshift(resize); + + attrs.$observe('placeholder', function(value) { + if (!ctrl.$modelValue) { + resize(value); + } + }); + } + }; +}]); + +/** + * @ngdoc directive + * @name tiBindAttrs + * @module ngTagsInput + * + * @description + * Binds attributes to expressions. Used internally by tagsInput directive. + */ +tagsInput.directive('tiBindAttrs', function() { + return function(scope, element, attrs) { + scope.$watch(attrs.tiBindAttrs, function(value) { + angular.forEach(value, function(value, key) { + attrs.$set(key, value); + }); + }, true); + }; +}); + +/** + * @ngdoc service + * @name tagsInputConfig + * @module ngTagsInput + * + * @description + * Sets global configuration settings for both tagsInput and autoComplete directives. It's also used internally to parse and + * initialize options from HTML attributes. + */ +tagsInput.provider('tagsInputConfig', function() { + var globalDefaults = {}, + interpolationStatus = {}, + autosizeThreshold = 3; + + /** + * @ngdoc method + * @name setDefaults + * @description Sets the default configuration option for a directive. + * @methodOf tagsInputConfig + * + * @param {string} directive Name of the directive to be configured. Must be either 'tagsInput' or 'autoComplete'. + * @param {object} defaults Object containing options and their values. + * + * @returns {object} The service itself for chaining purposes. + */ + this.setDefaults = function(directive, defaults) { + globalDefaults[directive] = defaults; + return this; + }; + + /*** + * @ngdoc method + * @name setActiveInterpolation + * @description Sets active interpolation for a set of options. + * @methodOf tagsInputConfig + * + * @param {string} directive Name of the directive to be configured. Must be either 'tagsInput' or 'autoComplete'. + * @param {object} options Object containing which options should have interpolation turned on at all times. + * + * @returns {object} The service itself for chaining purposes. + */ + this.setActiveInterpolation = function(directive, options) { + interpolationStatus[directive] = options; + return this; + }; + + /*** + * @ngdoc method + * @name setTextAutosizeThreshold + * @methodOf tagsInputConfig + * + * @param {number} threshold Threshold to be used by the tagsInput directive to re-size the input element based on its contents. + * + * @returns {object} The service itself for chaining purposes. + */ + this.setTextAutosizeThreshold = function(threshold) { + autosizeThreshold = threshold; + return this; + }; + + this.$get = ["$interpolate", function($interpolate) { + var converters = {}; + converters[String] = function(value) { return value; }; + converters[Number] = function(value) { return parseInt(value, 10); }; + converters[Boolean] = function(value) { return value.toLowerCase() === 'true'; }; + converters[RegExp] = function(value) { return new RegExp(value); }; + + return { + load: function(directive, scope, attrs, options) { + var defaultValidator = function() { return true; }; + + scope.options = {}; + + angular.forEach(options, function(value, key) { + var type, localDefault, validator, converter, getDefault, updateValue; + + type = value[0]; + localDefault = value[1]; + validator = value[2] || defaultValidator; + converter = converters[type]; + + getDefault = function() { + var globalValue = globalDefaults[directive] && globalDefaults[directive][key]; + return angular.isDefined(globalValue) ? globalValue : localDefault; + }; + + updateValue = function(value) { + scope.options[key] = value && validator(value) ? converter(value) : getDefault(); + }; + + if (interpolationStatus[directive] && interpolationStatus[directive][key]) { + attrs.$observe(key, function(value) { + updateValue(value); + scope.events.trigger('option-change', { name: key, newValue: value }); + }); + } + else { + updateValue(attrs[key] && $interpolate(attrs[key])(scope.$parent)); + } + }); + }, + getTextAutosizeThreshold: function() { + return autosizeThreshold; + } + }; + }]; +}); + + +/* HTML templates */ +tagsInput.run(["$templateCache", function($templateCache) { + $templateCache.put('ngTagsInput/tags-input.html', + "
" + ); + + $templateCache.put('ngTagsInput/auto-complete.html', + "
" + ); +}]); + +}()); \ No newline at end of file diff --git a/public/vendor/ng-tags-input/ng-tags-input.min.css b/public/vendor/ng-tags-input/ng-tags-input.min.css new file mode 100644 index 000000000..052ecf3d5 --- /dev/null +++ b/public/vendor/ng-tags-input/ng-tags-input.min.css @@ -0,0 +1 @@ +tags-input{display:block}tags-input *,tags-input :after,tags-input :before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}tags-input .host{position:relative;margin-top:5px;margin-bottom:5px;height:100%}tags-input .host:active{outline:0}tags-input .tags{-moz-appearance:textfield;-webkit-appearance:textfield;padding:1px;overflow:hidden;word-wrap:break-word;cursor:text;background-color:#fff;border:1px solid #a9a9a9;box-shadow:1px 1px 1px 0 #d3d3d3 inset;height:100%}tags-input .tags.focused{outline:0;-webkit-box-shadow:0 0 3px 1px rgba(5,139,242,.6);-moz-box-shadow:0 0 3px 1px rgba(5,139,242,.6);box-shadow:0 0 3px 1px rgba(5,139,242,.6)}tags-input .tags .tag-list{margin:0;padding:0;list-style-type:none}tags-input .tags .tag-item{margin:2px;padding:0 5px;display:inline-block;float:left;font:14px "Helvetica Neue",Helvetica,Arial,sans-serif;height:26px;line-height:25px;border:1px solid #acacac;border-radius:3px;background:-webkit-linear-gradient(top,#f0f9ff 0,#cbebff 47%,#a1dbff 100%);background:linear-gradient(to bottom,#f0f9ff 0,#cbebff 47%,#a1dbff 100%)}tags-input .tags .tag-item.selected{background:-webkit-linear-gradient(top,#febbbb 0,#fe9090 45%,#ff5c5c 100%);background:linear-gradient(to bottom,#febbbb 0,#fe9090 45%,#ff5c5c 100%)}tags-input .tags .tag-item .remove-button{margin:0 0 0 5px;padding:0;border:none;background:0 0;cursor:pointer;vertical-align:middle;font:700 16px Arial,sans-serif;color:#585858}tags-input .tags .tag-item .remove-button:active{color:red}tags-input .tags .input{border:0;outline:0;margin:2px;padding:0;padding-left:5px;float:left;height:26px;font:14px "Helvetica Neue",Helvetica,Arial,sans-serif}tags-input .tags .input.invalid-tag{color:red}tags-input .tags .input::-ms-clear{display:none}tags-input.ng-invalid .tags{-webkit-box-shadow:0 0 3px 1px rgba(255,0,0,.6);-moz-box-shadow:0 0 3px 1px rgba(255,0,0,.6);box-shadow:0 0 3px 1px rgba(255,0,0,.6)}tags-input .autocomplete{margin-top:5px;position:absolute;padding:5px 0;z-index:999;width:100%;background-color:#fff;border:1px solid rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}tags-input .autocomplete .suggestion-list{margin:0;padding:0;list-style-type:none}tags-input .autocomplete .suggestion-item{padding:5px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:16px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#000;background-color:#fff}tags-input .autocomplete .suggestion-item.selected,tags-input .autocomplete .suggestion-item.selected em{color:#fff;background-color:#0097cf}tags-input .autocomplete .suggestion-item em{font:normal bold 16px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#000;background-color:#fff} \ No newline at end of file diff --git a/public/vendor/ng-tags-input/ng-tags-input.min.js b/public/vendor/ng-tags-input/ng-tags-input.min.js new file mode 100644 index 000000000..c6b7b08b2 --- /dev/null +++ b/public/vendor/ng-tags-input/ng-tags-input.min.js @@ -0,0 +1 @@ +/*! ngTagsInput v2.1.1 License: MIT */!function(){"use strict";function a(){var a={};return{on:function(b,c){return b.split(" ").forEach(function(b){a[b]||(a[b]=[]),a[b].push(c)}),this},trigger:function(b,c){return angular.forEach(a[b],function(a){a.call(null,c)}),this}}}function b(a,b){return a=a||[],a.length>0&&!angular.isObject(a[0])&&a.forEach(function(c,d){a[d]={},a[d][b]=c}),a}function c(a,b,c){for(var d=null,f=0;f/g,">")}var g={backspace:8,tab:9,enter:13,escape:27,space:32,up:38,down:40,comma:188},h=9007199254740991,i=["text","email","url"],j=angular.module("ngTagsInput",[]);j.directive("tagsInput",["$timeout","$document","tagsInputConfig",function(d,f,j){function k(a,b){var d,f,g,h={};return d=function(b){return e(b[a.displayProperty])},f=function(b,c){b[a.displayProperty]=c},g=function(b){var e=d(b);return e&&e.length>=a.minLength&&e.length<=a.maxLength&&a.allowedTagsPattern.test(e)&&!c(h.items,b,a.displayProperty)},h.items=[],h.addText=function(a){var b={};return f(b,a),h.add(b)},h.add=function(c){var e=d(c);return a.replaceSpacesWithDashes&&(e=e.replace(/\s/g,"-")),f(c,e),g(c)?(h.items.push(c),b.trigger("tag-added",{$tag:c})):e&&b.trigger("invalid-tag",{$tag:c}),c},h.remove=function(a){var c=h.items.splice(a,1)[0];return b.trigger("tag-removed",{$tag:c}),c},h.removeLast=function(){var b,c=h.items.length-1;return a.enableEditingLastTag||h.selected?(h.selected=null,b=h.remove(c)):h.selected||(h.selected=h.items[c]),b},h}function l(a){return-1!==i.indexOf(a)}return{restrict:"E",require:"ngModel",scope:{tags:"=ngModel",onTagAdded:"&",onTagRemoved:"&"},replace:!1,transclude:!0,templateUrl:"ngTagsInput/tags-input.html",controller:["$scope","$attrs","$element",function(b,c,d){b.events=new a,j.load("tagsInput",b,c,{type:[String,"text",l],placeholder:[String,"Add a tag"],tabindex:[Number,null],removeTagSymbol:[String,String.fromCharCode(215)],replaceSpacesWithDashes:[Boolean,!0],minLength:[Number,3],maxLength:[Number,h],addOnEnter:[Boolean,!0],addOnSpace:[Boolean,!1],addOnComma:[Boolean,!0],addOnBlur:[Boolean,!0],allowedTagsPattern:[RegExp,/.+/],enableEditingLastTag:[Boolean,!1],minTags:[Number,0],maxTags:[Number,h],displayProperty:[String,"text"],allowLeftoverText:[Boolean,!1],addFromAutocompleteOnly:[Boolean,!1]}),b.tagList=new k(b.options,b.events),this.registerAutocomplete=function(){var a=d.find("input");return a.on("keydown",function(a){b.events.trigger("input-keydown",a)}),{addTag:function(a){return b.tagList.add(a)},focusInput:function(){a[0].focus()},getTags:function(){return b.tags},getCurrentTagText:function(){return b.newTag.text},getOptions:function(){return b.options},on:function(a,c){return b.events.on(a,c),this}}}}],link:function(a,c,h,i){var j,k=[g.enter,g.comma,g.space,g.backspace],l=a.tagList,m=a.events,n=a.options,o=c.find("input"),p=["minTags","maxTags","allowLeftoverText"];j=function(){i.$setValidity("maxTags",a.tags.length<=n.maxTags),i.$setValidity("minTags",a.tags.length>=n.minTags),i.$setValidity("leftoverText",n.allowLeftoverText?!0:!a.newTag.text)},m.on("tag-added",a.onTagAdded).on("tag-removed",a.onTagRemoved).on("tag-added",function(){a.newTag.text=""}).on("tag-added tag-removed",function(){i.$setViewValue(a.tags)}).on("invalid-tag",function(){a.newTag.invalid=!0}).on("input-change",function(){l.selected=null,a.newTag.invalid=null}).on("input-focus",function(){i.$setValidity("leftoverText",!0)}).on("input-blur",function(){n.addFromAutocompleteOnly||(n.addOnBlur&&l.addText(a.newTag.text),j())}).on("option-change",function(a){-1!==p.indexOf(a.name)&&j()}),a.newTag={text:"",invalid:null},a.getDisplayText=function(a){return e(a[n.displayProperty])},a.track=function(a){return a[n.displayProperty]},a.newTagChange=function(){m.trigger("input-change",a.newTag.text)},a.$watch("tags",function(c){a.tags=b(c,n.displayProperty),l.items=a.tags}),a.$watch("tags.length",function(){j()}),o.on("keydown",function(b){if(!b.isImmediatePropagationStopped||!b.isImmediatePropagationStopped()){var c,d,e=b.keyCode,f=b.shiftKey||b.altKey||b.ctrlKey||b.metaKey,h={};if(!f&&-1!==k.indexOf(e))if(h[g.enter]=n.addOnEnter,h[g.comma]=n.addOnComma,h[g.space]=n.addOnSpace,c=!n.addFromAutocompleteOnly&&h[e],d=!c&&e===g.backspace&&0===a.newTag.text.length,c)l.addText(a.newTag.text),a.$apply(),b.preventDefault();else if(d){var i=l.removeLast();i&&n.enableEditingLastTag&&(a.newTag.text=i[n.displayProperty]),a.$apply(),b.preventDefault()}}}).on("focus",function(){a.hasFocus||(a.hasFocus=!0,m.trigger("input-focus"),a.$apply())}).on("blur",function(){d(function(){var b=f.prop("activeElement"),d=b===o[0],e=c[0].contains(b);(d||!e)&&(a.hasFocus=!1,m.trigger("input-blur"))})}),c.find("div").on("click",function(){o[0].focus()})}}}]),j.directive("autoComplete",["$document","$timeout","$sce","tagsInputConfig",function(a,h,i,j){function k(a,d){var e,f,g,i={};return f=function(a,b){return a.filter(function(a){return!c(b,a,d.tagsInput.displayProperty)})},i.reset=function(){g=null,i.items=[],i.visible=!1,i.index=-1,i.selected=null,i.query=null,h.cancel(e)},i.show=function(){i.selected=null,i.visible=!0},i.load=function(c,j){h.cancel(e),e=h(function(){i.query=c;var e=a({$query:c});g=e,e.then(function(a){e===g&&(a=b(a.data||a,d.tagsInput.displayProperty),a=f(a,j),i.items=a.slice(0,d.maxResultsToShow),i.items.length>0?i.show():i.reset())})},d.debounceDelay,!1)},i.selectNext=function(){i.select(++i.index)},i.selectPrior=function(){i.select(--i.index)},i.select=function(a){0>a?a=i.items.length-1:a>=i.items.length&&(a=0),i.index=a,i.selected=i.items[a]},i.reset(),i}return{restrict:"E",require:"^tagsInput",scope:{source:"&"},templateUrl:"ngTagsInput/auto-complete.html",link:function(a,b,c,h){var l,m,n,o,p,q,r=[g.enter,g.tab,g.escape,g.up,g.down];j.load("autoComplete",a,c,{debounceDelay:[Number,100],minLength:[Number,3],highlightMatchedText:[Boolean,!0],maxResultsToShow:[Number,10],loadOnDownArrow:[Boolean,!1],loadOnEmpty:[Boolean,!1],loadOnFocus:[Boolean,!1]}),n=a.options,m=h.registerAutocomplete(),n.tagsInput=m.getOptions(),l=new k(a.source,n),o=function(a){return a[n.tagsInput.displayProperty]},p=function(a){return e(o(a))},q=function(a){return a&&a.length>=n.minLength||!a&&n.loadOnEmpty},a.suggestionList=l,a.addSuggestionByIndex=function(b){l.select(b),a.addSuggestion()},a.addSuggestion=function(){var a=!1;return l.selected&&(m.addTag(l.selected),l.reset(),m.focusInput(),a=!0),a},a.highlight=function(a){var b=p(a);return b=f(b),n.highlightMatchedText&&(b=d(b,f(l.query),"$&")),i.trustAsHtml(b)},a.track=function(a){return o(a)},m.on("tag-added tag-removed invalid-tag input-blur",function(){l.reset()}).on("input-change",function(a){q(a)?l.load(a,m.getTags()):l.reset()}).on("input-focus",function(){var a=m.getCurrentTagText();n.loadOnFocus&&q(a)&&l.load(a,m.getTags())}).on("input-keydown",function(b){var c=!1;b.stopImmediatePropagation=function(){c=!0,b.stopPropagation()},b.isImmediatePropagationStopped=function(){return c};var d=b.keyCode,e=!1;-1!==r.indexOf(d)&&(l.visible?d===g.down?(l.selectNext(),e=!0):d===g.up?(l.selectPrior(),e=!0):d===g.escape?(l.reset(),e=!0):(d===g.enter||d===g.tab)&&(e=a.addSuggestion()):d===g.down&&a.options.loadOnDownArrow&&(l.load(m.getCurrentTagText(),m.getTags()),e=!0),e&&(b.preventDefault(),b.stopImmediatePropagation(),a.$apply()))})}}}]),j.directive("tiTranscludeAppend",function(){return function(a,b,c,d,e){e(function(a){b.append(a)})}}),j.directive("tiAutosize",["tagsInputConfig",function(a){return{restrict:"A",require:"ngModel",link:function(b,c,d,e){var f,g,h=a.getTextAutosizeThreshold();f=angular.element(''),f.css("display","none").css("visibility","hidden").css("width","auto").css("white-space","pre"),c.parent().append(f),g=function(a){var b,e=a;return angular.isString(e)&&0===e.length&&(e=d.placeholder),e&&(f.text(e),f.css("display",""),b=f.prop("offsetWidth"),f.css("display","none")),c.css("width",b?b+h+"px":""),a},e.$parsers.unshift(g),e.$formatters.unshift(g),d.$observe("placeholder",function(a){e.$modelValue||g(a)})}}}]),j.directive("tiBindAttrs",function(){return function(a,b,c){a.$watch(c.tiBindAttrs,function(a){angular.forEach(a,function(a,b){c.$set(b,a)})},!0)}}),j.provider("tagsInputConfig",function(){var a={},b={},c=3;this.setDefaults=function(b,c){return a[b]=c,this},this.setActiveInterpolation=function(a,c){return b[a]=c,this},this.setTextAutosizeThreshold=function(a){return c=a,this},this.$get=["$interpolate",function(d){var e={};return e[String]=function(a){return a},e[Number]=function(a){return parseInt(a,10)},e[Boolean]=function(a){return"true"===a.toLowerCase()},e[RegExp]=function(a){return new RegExp(a)},{load:function(c,f,g,h){var i=function(){return!0};f.options={},angular.forEach(h,function(h,j){var k,l,m,n,o,p;k=h[0],l=h[1],m=h[2]||i,n=e[k],o=function(){var b=a[c]&&a[c][j];return angular.isDefined(b)?b:l},p=function(a){f.options[j]=a&&m(a)?n(a):o()},b[c]&&b[c][j]?g.$observe(j,function(a){p(a),f.events.trigger("option-change",{name:j,newValue:a})}):p(g[j]&&d(g[j])(f.$parent))})},getTextAutosizeThreshold:function(){return c}}}]}),j.run(["$templateCache",function(a){a.put("ngTagsInput/tags-input.html",'
'),a.put("ngTagsInput/auto-complete.html",'
')}])}(); \ No newline at end of file diff --git a/views/error.ejs b/views/error.ejs index 5c47a0839..7ce2ce18d 100644 --- a/views/error.ejs +++ b/views/error.ejs @@ -3,6 +3,6 @@ Error -

Nice meme m8!

+

An unknown error has occured

diff --git a/views/index.ejs b/views/index.ejs index 494af2836..de0fad20b 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -28,7 +28,8 @@ - + + @@ -63,13 +64,19 @@
-