upgrade to 1.0.0rc3 barefoot-telepathy

master
Igor Minar 12 years ago
parent 3d03b98517
commit 0c23b90ee2

@ -0,0 +1,163 @@
'use strict';
/**
* @ngdoc overview
* @name angular.module.ngCookies
*/
angular.module('ngCookies', ['ng']).
/**
* @ngdoc object
* @name angular.module.ng.$cookies
* @requires $browser
*
* @description
* Provides read/write access to browser's cookies.
*
* Only a simple Object is exposed and by adding or removing properties to/from
* this object, new cookies are created/deleted at the end of current $eval.
*
* @example
*/
factory('$cookies', ['$rootScope', '$browser', function ($rootScope, $browser) {
var cookies = {},
lastCookies = {},
lastBrowserCookies,
runEval = false,
copy = angular.copy,
isUndefined = angular.isUndefined;
//creates a poller fn that copies all cookies from the $browser to service & inits the service
$browser.addPollFn(function() {
var currentCookies = $browser.cookies();
if (lastBrowserCookies != currentCookies) { //relies on browser.cookies() impl
lastBrowserCookies = currentCookies;
copy(currentCookies, lastCookies);
copy(currentCookies, cookies);
if (runEval) $rootScope.$apply();
}
})();
runEval = true;
//at the end of each eval, push cookies
//TODO: this should happen before the "delayed" watches fire, because if some cookies are not
// strings or browser refuses to store some cookies, we update the model in the push fn.
$rootScope.$watch(push);
return cookies;
/**
* Pushes all the cookies from the service to the browser and verifies if all cookies were stored.
*/
function push() {
var name,
value,
browserCookies,
updated;
//delete any cookies deleted in $cookies
for (name in lastCookies) {
if (isUndefined(cookies[name])) {
$browser.cookies(name, undefined);
}
}
//update all cookies updated in $cookies
for(name in cookies) {
value = cookies[name];
if (!angular.isString(value)) {
if (angular.isDefined(lastCookies[name])) {
cookies[name] = lastCookies[name];
} else {
delete cookies[name];
}
} else if (value !== lastCookies[name]) {
$browser.cookies(name, value);
updated = true;
}
}
//verify what was actually stored
if (updated){
updated = false;
browserCookies = $browser.cookies();
for (name in cookies) {
if (cookies[name] !== browserCookies[name]) {
//delete or reset all cookies that the browser dropped from $cookies
if (isUndefined(browserCookies[name])) {
delete cookies[name];
} else {
cookies[name] = browserCookies[name];
}
updated = true;
}
}
}
}
}]).
/**
* @ngdoc object
* @name angular.module.ng.$cookieStore
* @requires $cookies
*
* @description
* Provides a key-value (string-object) storage, that is backed by session cookies.
* Objects put or retrieved from this storage are automatically serialized or
* deserialized by angular's toJson/fromJson.
* @example
*/
factory('$cookieStore', ['$cookies', function($cookies) {
return {
/**
* @ngdoc method
* @name angular.module.ng.$cookieStore#get
* @methodOf angular.module.ng.$cookieStore
*
* @description
* Returns the value of given cookie key
*
* @param {string} key Id to use for lookup.
* @returns {Object} Deserialized cookie value.
*/
get: function(key) {
return angular.fromJson($cookies[key]);
},
/**
* @ngdoc method
* @name angular.module.ng.$cookieStore#put
* @methodOf angular.module.ng.$cookieStore
*
* @description
* Sets a value for given cookie key
*
* @param {string} key Id for the `value`.
* @param {Object} value Value to be stored.
*/
put: function(key, value) {
$cookies[key] = angular.toJson(value);
},
/**
* @ngdoc method
* @name angular.module.ng.$cookieStore#remove
* @methodOf angular.module.ng.$cookieStore
*
* @description
* Remove given cookie
*
* @param {string} key Id of the key-value pair to delete.
*/
remove: function(key) {
delete $cookies[key];
}
};
}]);

@ -0,0 +1,2 @@
'use strict';angular.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(d,c){var b={},f={},g,h=!1,i=angular.copy,j=angular.isUndefined;c.addPollFn(function(){var a=c.cookies();g!=a&&(g=a,i(a,f),i(a,b),h&&d.$apply())})();h=!0;d.$watch(function(){var a,e,d;for(a in f)j(b[a])&&c.cookies(a,void 0);for(a in b)e=b[a],angular.isString(e)?e!==f[a]&&(c.cookies(a,e),d=!0):angular.isDefined(f[a])?b[a]=f[a]:delete b[a];if(d)for(a in e=c.cookies(),b)b[a]!==e[a]&&(j(e[a])?delete b[a]:
b[a]=e[a])});return b}]).factory("$cookieStore",["$cookies",function(d){return{get:function(c){return angular.fromJson(d[c])},put:function(c,b){d[c]=angular.toJson(b)},remove:function(c){delete d[c]}}}]);

@ -1,5 +1,5 @@
/**
* @license AngularJS v1.0.0rc2
* @license AngularJS v1.0.0rc3
* (c) 2010-2012 AngularJS http://angularjs.org
* License: MIT
*/
@ -173,13 +173,24 @@ function setupModuleLoader(window) {
* @ngdoc method
* @name angular.Module#filter
* @methodOf angular.Module
* @param {string} name filter name
* @param {string} name Filter name.
* @param {Function} filterFactory Factory function for creating new instance of filter.
* @description
* See {@link angular.module.ng.$filterProvider#register $filterProvider.register()}.
*/
filter: invokeLater('$filterProvider', 'register'),
/**
* @ngdoc method
* @name angular.Module#controller
* @methodOf angular.Module
* @param {string} name Controller name.
* @param {Function} constructor Controller constructor function.
* @description
* See {@link angular.module.ng.$controllerProvider#register $controllerProvider.register()}.
*/
controller: invokeLater('$controllerProvider', 'register'),
/**
* @ngdoc method
* @name angular.Module#directive

@ -1,7 +1,7 @@
/*
AngularJS v1.0.0rc2
AngularJS v1.0.0rc3
(c) 2010-2012 AngularJS http://angularjs.org
License: MIT
*/
'use strict';(function(i){function d(c,a,e){return c[a]||(c[a]=e())}return d(d(i,"angular",Object),"module",function(){var c={};return function(a,e,f){e&&c.hasOwnProperty(a)&&(c[a]=null);return d(c,a,function(){function b(a,b,d){return function(){c[d||"push"]([a,b,arguments]);return g}}if(!e)throw Error("No module: "+a);var c=[],d=[],h=b("$injector","invoke"),g={_invokeQueue:c,_runBlocks:d,requires:e,name:a,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),
value:b("$provide","value"),constant:b("$provide","constant","unshift"),filter:b("$filterProvider","register"),directive:b("$compileProvider","directive"),config:h,run:function(a){d.push(a);return this}};f&&h(f);return g})}})})(window);
'use strict';(function(i){function d(c,b,e){return c[b]||(c[b]=e())}return d(d(i,"angular",Object),"module",function(){var c={};return function(b,e,f){e&&c.hasOwnProperty(b)&&(c[b]=null);return d(c,b,function(){function a(a,b,d){return function(){c[d||"push"]([a,b,arguments]);return g}}if(!e)throw Error("No module: "+b);var c=[],d=[],h=a("$injector","invoke"),g={_invokeQueue:c,_runBlocks:d,requires:e,name:b,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),
value:a("$provide","value"),constant:a("$provide","constant","unshift"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:h,run:function(a){d.push(a);return this}};f&&h(f);return g})}})})(window);

@ -0,0 +1,420 @@
'use strict';
/**
* @ngdoc overview
* @name angular.module.ngResource
* @description
*/
/**
* @ngdoc object
* @name angular.module.ngResource.$resource
* @requires $http
*
* @description
* A factory which creates a resource object that lets you interact with
* [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer) server-side data sources.
*
* The returned resource object has action methods which provide high-level behaviors without
* the need to interact with the low level {@link angular.module.ng.$http $http} service.
*
* @param {string} url A parameterized URL template with parameters prefixed by `:` as in
* `/user/:username`.
*
* @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in
* `actions` methods.
*
* Each key value in the parameter object is first bound to url template if present and then any
* excess keys are appended to the url search query after the `?`.
*
* Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in
* URL `/path/greet?salutation=Hello`.
*
* If the parameter value is prefixed with `@` then the value of that parameter is extracted from
* the data object (useful for non-GET operations).
*
* @param {Object.<Object>=} actions Hash with declaration of custom action that should extend the
* default set of resource actions. The declaration should be created in the following format:
*
* {action1: {method:?, params:?, isArray:?},
* action2: {method:?, params:?, isArray:?},
* ...}
*
* Where:
*
* - `action` {string} The name of action. This name becomes the name of the method on your
* resource object.
* - `method` {string} HTTP request method. Valid methods are: `GET`, `POST`, `PUT`, `DELETE`,
* and `JSONP`
* - `params` {object=} Optional set of pre-bound parameters for this action.
* - isArray {boolean=} If true then the returned object for this action is an array, see
* `returns` section.
*
* @returns {Object} A resource "class" object with methods for the default set of resource actions
* optionally extended with custom `actions`. The default set contains these actions:
*
* { 'get': {method:'GET'},
* 'save': {method:'POST'},
* 'query': {method:'GET', isArray:true},
* 'remove': {method:'DELETE'},
* 'delete': {method:'DELETE'} };
*
* Calling these methods invoke an {@link angular.module.ng.$http} with the specified http method,
* destination and parameters. When the data is returned from the server then the object is an
* instance of the resource class `save`, `remove` and `delete` actions are available on it as
* methods with the `$` prefix. This allows you to easily perform CRUD operations (create, read,
* update, delete) on server-side data like this:
* <pre>
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
user.abc = true;
user.$save();
});
</pre>
*
* It is important to realize that invoking a $resource object method immediately returns an
* empty reference (object or array depending on `isArray`). Once the data is returned from the
* server the existing reference is populated with the actual data. This is a useful trick since
* usually the resource is assigned to a model which is then rendered by the view. Having an empty
* object results in no rendering, once the data arrives from the server then the object is
* populated with the data and the view automatically re-renders itself showing the new data. This
* means that in most case one never has to write a callback function for the action methods.
*
* The action methods on the class object or instance object can be invoked with the following
* parameters:
*
* - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])`
* - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])`
* - non-GET instance actions: `instance.$action([parameters], [success], [error])`
*
*
* @example
*
* # Credit card resource
*
* <pre>
// Define CreditCard class
var CreditCard = $resource('/user/:userId/card/:cardId',
{userId:123, cardId:'@id'}, {
charge: {method:'POST', params:{charge:true}}
});
// We can retrieve a collection from the server
var cards = CreditCard.query();
// GET: /user/123/card
// server returns: [ {id:456, number:'1234', name:'Smith'} ];
var card = cards[0];
// each item is an instance of CreditCard
expect(card instanceof CreditCard).toEqual(true);
card.name = "J. Smith";
// non GET methods are mapped onto the instances
card.$save();
// POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'}
// server returns: {id:456, number:'1234', name: 'J. Smith'};
// our custom method is mapped as well.
card.$charge({amount:9.99});
// POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'}
// server returns: {id:456, number:'1234', name: 'J. Smith'};
// we can create an instance as well
var newCard = new CreditCard({number:'0123'});
newCard.name = "Mike Smith";
newCard.$save();
// POST: /user/123/card {number:'0123', name:'Mike Smith'}
// server returns: {id:789, number:'01234', name: 'Mike Smith'};
expect(newCard.id).toEqual(789);
* </pre>
*
* The object returned from this function execution is a resource "class" which has "static" method
* for each action in the definition.
*
* Calling these methods invoke `$http` on the `url` template with the given `method` and `params`.
* When the data is returned from the server then the object is an instance of the resource type and
* all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD
* operations (create, read, update, delete) on server-side data.
<pre>
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
user.abc = true;
user.$save();
});
</pre>
*
* It's worth noting that the success callback for `get`, `query` and other method gets passed
* in the response that came from the server as well as $http header getter function, so one
* could rewrite the above example and get access to http headers as:
*
<pre>
var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123}, function(u, getResponseHeaders){
u.abc = true;
u.$save(function(u, putResponseHeaders) {
//u => saved user object
//putResponseHeaders => $http header getter
});
});
</pre>
* # Buzz client
Let's look at what a buzz client created with the `$resource` service looks like:
<doc:example>
<doc:source jsfiddle="false">
<script>
function BuzzController($resource) {
this.userId = 'googlebuzz';
this.Activity = $resource(
'https://www.googleapis.com/buzz/v1/activities/:userId/:visibility/:activityId/:comments',
{alt:'json', callback:'JSON_CALLBACK'},
{get:{method:'JSONP', params:{visibility:'@self'}}, replies: {method:'JSONP', params:{visibility:'@self', comments:'@comments'}}}
);
}
BuzzController.prototype = {
fetch: function() {
this.activities = this.Activity.get({userId:this.userId});
},
expandReplies: function(activity) {
activity.replies = this.Activity.replies({userId:this.userId, activityId:activity.id});
}
};
BuzzController.$inject = ['$resource'];
</script>
<div ng-controller="BuzzController">
<input ng-model="userId"/>
<button ng-click="fetch()">fetch</button>
<hr/>
<div ng-repeat="item in activities.data.items">
<h1 style="font-size: 15px;">
<img src="{{item.actor.thumbnailUrl}}" style="max-height:30px;max-width:30px;"/>
<a href="{{item.actor.profileUrl}}">{{item.actor.name}}</a>
<a href ng-click="expandReplies(item)" style="float: right;">Expand replies: {{item.links.replies[0].count}}</a>
</h1>
{{item.object.content | html}}
<div ng-repeat="reply in item.replies.data.items" style="margin-left: 20px;">
<img src="{{reply.actor.thumbnailUrl}}" style="max-height:30px;max-width:30px;"/>
<a href="{{reply.actor.profileUrl}}">{{reply.actor.name}}</a>: {{reply.content | html}}
</div>
</div>
</div>
</doc:source>
<doc:scenario>
</doc:scenario>
</doc:example>
*/
angular.module('ngResource', ['ng']).
factory('$resource', ['$http', '$parse', function($http, $parse) {
var DEFAULT_ACTIONS = {
'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'}
};
var noop = angular.noop,
forEach = angular.forEach,
extend = angular.extend,
copy = angular.copy,
isFunction = angular.isFunction,
getter = function(obj, path) {
return $parse(path)(obj);
};
/**
* We need our custom mehtod because encodeURIComponent is too agressive and doesn't follow
* http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path
* segments:
* segment = *pchar
* pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
* pct-encoded = "%" HEXDIG HEXDIG
* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
* sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
* / "*" / "+" / "," / ";" / "="
*/
function encodeUriSegment(val) {
return encodeUriQuery(val, true).
replace(/%26/gi, '&').
replace(/%3D/gi, '=').
replace(/%2B/gi, '+');
}
/**
* This method is intended for encoding *key* or *value* parts of query component. We need a custom
* method becuase encodeURIComponent is too agressive and encodes stuff that doesn't have to be
* encoded per http://tools.ietf.org/html/rfc3986:
* query = *( pchar / "/" / "?" )
* pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
* pct-encoded = "%" HEXDIG HEXDIG
* sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
* / "*" / "+" / "," / ";" / "="
*/
function encodeUriQuery(val, pctEncodeSpaces) {
return encodeURIComponent(val).
replace(/%40/gi, '@').
replace(/%3A/gi, ':').
replace(/%24/g, '$').
replace(/%2C/gi, ',').
replace((pctEncodeSpaces ? null : /%20/g), '+');
}
function Route(template, defaults) {
this.template = template = template + '#';
this.defaults = defaults || {};
var urlParams = this.urlParams = {};
forEach(template.split(/\W/), function(param){
if (param && template.match(new RegExp("[^\\\\]:" + param + "\\W"))) {
urlParams[param] = true;
}
});
this.template = template.replace(/\\:/g, ':');
}
Route.prototype = {
url: function(params) {
var self = this,
url = this.template,
encodedVal;
params = params || {};
forEach(this.urlParams, function(_, urlParam){
encodedVal = encodeUriSegment(params[urlParam] || self.defaults[urlParam] || "");
url = url.replace(new RegExp(":" + urlParam + "(\\W)"), encodedVal + "$1");
});
url = url.replace(/\/?#$/, '');
var query = [];
forEach(params, function(value, key){
if (!self.urlParams[key]) {
query.push(encodeUriQuery(key) + '=' + encodeUriQuery(value));
}
});
query.sort();
url = url.replace(/\/*$/, '');
return url + (query.length ? '?' + query.join('&') : '');
}
};
function ResourceFactory(url, paramDefaults, actions) {
var route = new Route(url);
actions = extend({}, DEFAULT_ACTIONS, actions);
function extractParams(data){
var ids = {};
forEach(paramDefaults || {}, function(value, key){
ids[key] = value.charAt && value.charAt(0) == '@' ? getter(data, value.substr(1)) : value;
});
return ids;
}
function Resource(value){
copy(value || {}, this);
}
forEach(actions, function(action, name) {
var isPostOrPut = action.method == 'POST' || action.method == 'PUT';
Resource[name] = function(a1, a2, a3, a4) {
var params = {};
var data;
var success = noop;
var error = null;
switch(arguments.length) {
case 4:
error = a4;
success = a3;
//fallthrough
case 3:
case 2:
if (isFunction(a2)) {
if (isFunction(a1)) {
success = a1;
error = a2;
break;
}
success = a2;
error = a3;
//fallthrough
} else {
params = a1;
data = a2;
success = a3;
break;
}
case 1:
if (isFunction(a1)) success = a1;
else if (isPostOrPut) data = a1;
else params = a1;
break;
case 0: break;
default:
throw "Expected between 0-4 arguments [params, data, success, error], got " +
arguments.length + " arguments.";
}
var value = this instanceof Resource ? this : (action.isArray ? [] : new Resource(data));
$http({
method: action.method,
url: route.url(extend({}, extractParams(data), action.params || {}, params)),
data: data
}).then(function(response) {
var data = response.data;
if (data) {
if (action.isArray) {
value.length = 0;
forEach(data, function(item) {
value.push(new Resource(item));
});
} else {
copy(data, value);
}
}
(success||noop)(value, response.headers);
}, error);
return value;
};
Resource.bind = function(additionalParamDefaults){
return ResourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions);
};
Resource.prototype['$' + name] = function(a1, a2, a3) {
var params = extractParams(this),
success = noop,
error;
switch(arguments.length) {
case 3: params = a1; success = a2; error = a3; break;
case 2:
case 1:
if (isFunction(a1)) {
success = a1;
error = a2;
} else {
params = a1;
success = a2 || noop;
}
case 0: break;
default:
throw "Expected between 1-3 arguments [params, success, error], got " +
arguments.length + " arguments.";
}
var data = isPostOrPut ? this : undefined;
Resource[name].call(this, params, data, success, error);
};
});
return Resource;
}
return ResourceFactory;
}]);

@ -0,0 +1,5 @@
'use strict';angular.module("ngResource",["ng"]).factory("$resource",["$http","$parse",function(u,v){function f(b,c){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(c?null:/%20/g,"+")}function h(b,c){this.template=b+="#";this.defaults=c||{};var a=this.urlParams={};j(b.split(/\W/),function(c){c&&b.match(RegExp("[^\\\\]:"+c+"\\W"))&&(a[c]=!0)});this.template=b.replace(/\\:/g,":")}function s(b,c,a){function r(d){var b={};j(c||{},
function(a,w){var l;a.charAt&&a.charAt(0)=="@"?(l=a.substr(1),l=v(l)(d)):l=a;b[w]=l});return b}function e(a){t(a||{},this)}var x=new h(b),a=q({},y,a);j(a,function(d,f){var h=d.method=="POST"||d.method=="PUT";e[f]=function(a,b,c,f){var i={},g,k=n,o=null;switch(arguments.length){case 4:o=f,k=c;case 3:case 2:if(p(b)){if(p(a)){k=a;o=b;break}k=b;o=c}else{i=a;g=b;k=c;break}case 1:p(a)?k=a:h?g=a:i=a;break;case 0:break;default:throw"Expected between 0-4 arguments [params, data, success, error], got "+arguments.length+
" arguments.";}var m=this instanceof e?this:d.isArray?[]:new e(g);u({method:d.method,url:x.url(q({},r(g),d.params||{},i)),data:g}).then(function(a){var b=a.data;if(b)d.isArray?(m.length=0,j(b,function(a){m.push(new e(a))})):t(b,m);(k||n)(m,a.headers)},o);return m};e.bind=function(d){return s(b,q({},c,d),a)};e.prototype["$"+f]=function(a,b,c){var d=r(this),i=n,g;switch(arguments.length){case 3:d=a;i=b;g=c;break;case 2:case 1:p(a)?(i=a,g=b):(d=a,i=b||n);case 0:break;default:throw"Expected between 1-3 arguments [params, success, error], got "+
arguments.length+" arguments.";}e[f].call(this,d,h?this:void 0,i,g)}});return e}var y={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},n=angular.noop,j=angular.forEach,q=angular.extend,t=angular.copy,p=angular.isFunction;h.prototype={url:function(b){var c=this,a=this.template,h,b=b||{};j(this.urlParams,function(e,d){h=f(b[d]||c.defaults[d]||"",!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+");a=a.replace(RegExp(":"+
d+"(\\W)"),h+"$1")});var a=a.replace(/\/?#$/,""),e=[];j(b,function(a,b){c.urlParams[b]||e.push(f(b)+"="+f(a))});e.sort();a=a.replace(/\/*$/,"");return a+(e.length?"?"+e.join("&"):"")}};return s}]);

File diff suppressed because it is too large Load Diff

@ -1,163 +1,156 @@
/*
AngularJS v1.0.0rc2
AngularJS v1.0.0rc3
(c) 2010-2012 AngularJS http://angularjs.org
License: MIT
*/
'use strict';(function(O,U,w){function k(b,a,c){var d;if(b)if(G(b))for(d in b)d!="prototype"&&d!=sc&&d!=tc&&b.hasOwnProperty(d)&&a.call(c,b[d],d);else if(b.forEach&&b.forEach!==k)b.forEach(a,c);else if(H(b)&&na(b.length))for(d=0;d<b.length;d++)a.call(c,b[d],d);else for(d in b)a.call(c,b[d],d);return b}function qb(b){var a=[],c;for(c in b)b.hasOwnProperty(c)&&a.push(c);return a.sort()}function uc(b,a,c){for(var d=qb(b),e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function rb(b){return function(a,
c){b(c,a)}}function Va(){for(var b=X.length,a;b;){b--;a=X[b].charCodeAt(0);if(a==57)return X[b]="A",X.join("");if(a==90)X[b]="0";else return X[b]=String.fromCharCode(a+1),X.join("")}X.unshift("0");return X.join("")}function t(b){k(arguments,function(a){a!==b&&k(a,function(a,d){b[d]=a})});return b}function z(b){return parseInt(b,10)}function Wa(b,a){return t(new (t(function(){},{prototype:b})),a)}function F(){}function va(b){return b}function A(b){return function(){return b}}function s(b){return typeof b==
Xa}function y(b){return typeof b!=Xa}function H(b){return b!=null&&typeof b==vc}function B(b){return typeof b==wc}function na(b){return typeof b=="number"}function ha(b){return Ya.apply(b)=="[object Date]"}function I(b){return Ya.apply(b)=="[object Array]"}function G(b){return typeof b=="function"}function wa(b){return b&&b.document&&b.location&&b.alert&&b.setInterval}function Q(b){return B(b)?b.replace(/^\s*/,"").replace(/\s*$/,""):b}function sb(b){return b&&(b.nodeName||b.bind&&b.find)}function ba(b){var a=
{},b=b.split(","),c;for(c=0;c<b.length;c++)a[b[c]]=!0;return a}function Za(b,a,c){var d=[];k(b,function(b,g,f){d.push(a.call(c,b,g,f))});return d}function xc(b,a){var c=0,d;if(I(b)||B(b))return b.length;else if(H(b))for(d in b)(!a||b.hasOwnProperty(d))&&c++;return c}function xa(b,a){if(b.indexOf)return b.indexOf(a);for(var c=0;c<b.length;c++)if(a===b[c])return c;return-1}function ya(b,a){var c=xa(b,a);c>=0&&b.splice(c,1);return a}function L(b,a){if(wa(b)||b&&b.$evalAsync&&b.$watch)throw C("Can't copy Window or Scope");
if(a){if(b===a)throw C("Can't copy equivalent objects or arrays");if(I(b)){for(;a.length;)a.pop();for(var c=0;c<b.length;c++)a.push(L(b[c]))}else for(c in k(a,function(b,c){delete a[c]}),b)a[c]=L(b[c])}else(a=b)&&(I(b)?a=L(b,[]):ha(b)?a=new Date(b.getTime()):H(b)&&(a=L(b,{})));return a}function yc(b){var a={},c;for(c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function da(b,a){if(b===a)return!0;if(b===null||a===null)return!1;if(b!==b&&a!==a)return!0;var c=typeof b,d;if(c==typeof a&&c=="object")if(I(b)){if((c=
b.length)==a.length){for(d=0;d<c;d++)if(!da(b[d],a[d]))return!1;return!0}}else if(ha(b))return ha(a)&&b.getTime()==a.getTime();else{if(b&&b.$evalAsync&&b.$watch||a&&a.$evalAsync&&a.$watch||wa(b)||wa(a))return!1;c={};for(d in b){if(d.charAt(0)!=="$"&&!G(b[d])&&!da(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c[d]&&d.charAt(0)!=="$"&&!G(a[d]))return!1;return!0}return!1}function za(b,a){var c=arguments.length>2?ia.call(arguments,2):[];return G(a)&&!(a instanceof RegExp)?c.length?function(){return arguments.length?
a.apply(b,c.concat(ia.call(arguments,0))):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}:a}function Aa(b){b&&b.length!==0?(b=E(""+b),b=!(b=="f"||b=="0"||b=="false"||b=="no"||b=="n"||b=="[]")):b=!1;return b}function Ba(b){b=p(b).clone();try{b.html("")}catch(a){}return p("<div>").append(b).html().match(/^(<[^>]+>)/)[1]}function $a(b){var a={},c,d;k((b||"").split("&"),function(b){b&&(c=b.split("="),d=decodeURIComponent(c[0]),a[d]=y(c[1])?decodeURIComponent(c[1]):!0)});
return a}function tb(b){var a=[];k(b,function(b,d){a.push(ja(d,!0)+(b===!0?"":"="+ja(b,!0)))});return a.length?a.join("&"):""}function Ca(b){return ja(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ja(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(a?null:/%20/g,"+")}function zc(b,a){function c(a){a&&d.push(a)}var d=[b],e,g,f=["ng:app","ng-app","x-ng-app","data-ng-app"],h=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;
k(f,function(a){f[a]=!0;c(U.getElementById(a));a=a.replace(":","\\:");b.querySelectorAll&&(k(b.querySelectorAll("."+a),c),k(b.querySelectorAll("."+a+"\\:"),c),k(b.querySelectorAll("["+a+"]"),c))});k(d,function(a){if(!e){var b=h.exec(" "+a.className+" ");b?(e=a,g=(b[2]||"").replace(/\s+/g,",")):k(a.attributes,function(b){if(!e&&f[b.name])e=a,g=b.value})}});e&&a(e,g?[g]:[])}function ub(b,a){b=p(b);a=a||[];a.unshift("ng");var c=vb(a);c.invoke(["$rootScope","$compile","$injector",function(a,c,g){a.$apply(function(){b.data("$injector",
g);c(b)(a)})}]);return c}function ab(b,a){a=a||"_";return b.replace(Ac,function(b,d){return(d?a:"")+b.toLowerCase()})}function oa(b,a,c){if(!b)throw new C("Argument '"+(a||"?")+"' is "+(c||"required"));return b}function pa(b,a){oa(G(b),a,"not a function, got "+(b&&typeof b=="object"?b.constructor.name||"Object":typeof b));return b}function Bc(b){function a(a,b,e){return a[b]||(a[b]=e())}return a(a(b,"angular",Object),"module",function(){var b={};return function(d,e,g){e&&b.hasOwnProperty(d)&&(b[d]=
null);return a(b,d,function(){function a(c,d,e){return function(){b[e||"push"]([c,d,arguments]);return j}}if(!e)throw C("No module: "+d);var b=[],c=[],i=a("$injector","invoke"),j={_invokeQueue:b,_runBlocks:c,requires:e,name:d,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),filter:a("$filterProvider","register"),directive:a("$compileProvider","directive"),config:i,run:function(a){c.push(a);
return this}};g&&i(g);return j})}})}function ca(b,a){var c=[];bb(c,b,a?"\n ":null,[]);return c.join("")}function cb(b,a){function c(a){if(B(a)&&15<=a.length&&a.length<=24)return wb(a);else(I(a)||H(a))&&k(a,function(b,d){a[d]=c(b)});return a}if(!B(b))return b;var d;d=a&&O.JSON&&O.JSON.parse?JSON.parse(b):xb(b,!0)();return c(d)}function wb(b){var a;if(a=b.match(Cc)){var b=new Date(0),c=0,d=0;a[9]&&(c=z(a[9]+a[10]),d=z(a[9]+a[11]));b.setUTCFullYear(z(a[1]),z(a[2])-1,z(a[3]));b.setUTCHours(z(a[4]||0)-
c,z(a[5]||0)-d,z(a[6]||0),z(a[7]||0))}return b}function Dc(b){if(!b)return b;var a=b.toISOString?b.toISOString():"";return a.length==24?a:W(b.getUTCFullYear(),4)+"-"+W(b.getUTCMonth()+1,2)+"-"+W(b.getUTCDate(),2)+"T"+W(b.getUTCHours(),2)+":"+W(b.getUTCMinutes(),2)+":"+W(b.getUTCSeconds(),2)+"."+W(b.getUTCMilliseconds(),3)+"Z"}function Da(b){for(var a=['"'],c=0;c<b.length;c++){var d=b.charCodeAt(c),e=b.charAt(c);switch(e){case '"':a.push('\\"');break;case "\\":a.push("\\\\");break;case "\n":a.push("\\n");
break;case "\u000c":a.push("\\f");break;case "\r":a.push("\\r");break;case "\t":a.push("\\t");break;default:32<=d&&d<=126?a.push(e):(d="000"+d.toString(16),a.push("\\u"+d.substring(d.length-4)))}}a.push('"');return a.join("")}function bb(b,a,c,d){if(H(a)){if(a===O){b.push("WINDOW");return}if(a===U){b.push("DOCUMENT");return}if(xa(d,a)!=-1){b.push("RECURSION");return}d.push(a)}if(a===null)b.push("null");else if(a instanceof RegExp)b.push(Da(a.toString()));else if(G(a))return;else if(typeof a==Ec)b.push(""+
a);else if(na(a))isNaN(a)?b.push("null"):b.push(""+a);else if(B(a))return b.push(Da(a));else if(H(a))if(I(a)){b.push("[");for(var e=a.length,g=!1,f=0;f<e;f++){var h=a[f];g&&b.push(",");!(h instanceof RegExp)&&(G(h)||s(h))?b.push("null"):bb(b,h,c,d);g=!0}b.push("]")}else if(sb(a))b.push("DOM_ELEMENT");else if(ha(a))b.push(Da(Dc(a)));else{b.push("{");c&&b.push(c);e=!1;g=c?c+" ":!1;f=[];for(h in a)h!="this"&&h!="$parent"&&h.substring(0,2)!="$$"&&a.hasOwnProperty(h)&&a[h]!==w&&f.push(h);f.sort();for(h=
0;h<f.length;h++){var l=f[h],i=a[l];G(i)||(e&&(b.push(","),c&&b.push(c)),b.push(Da(l)),b.push(":"),bb(b,i,g,d),e=!0)}b.push("}")}H(a)&&d.pop()}function Fc(b){pa(b);if(!b.$inject){var a=b.$inject=[],c=b.toString().replace(Gc,"").match(Hc);k(c[1].split(Ic),function(b){b.replace(Jc,function(b,c,d){a.push(d)})})}return b.$inject}function vb(b){function a(a){return function(b,c){if(H(b))k(b,rb(a));else return a(b,c)}}function c(a,b){G(b)&&(b=m.instantiate(b));if(!b.$get)throw C("Provider "+a+" must define $get factory method.");
return j[a+h]=b}function d(a,b){return c(a,{$get:b})}function e(a){var b=[];k(a,function(a){if(!i.get(a))if(i.put(a,!0),B(a)){var c=qa(a);b=b.concat(e(c.requires)).concat(c._runBlocks);try{for(var d=c._invokeQueue,c=0,f=d.length;c<f;c++){var l=d[c],g=l[0]=="$injector"?m:m.get(l[0]);g[l[1]].apply(g,l[2])}}catch(h){throw h.message&&(h.message+=" from "+a),h;}}else if(G(a))try{b.push(m.invoke(a))}catch(j){throw j.message&&(j.message+=" from "+a),j;}else if(I(a))try{b.push(m.invoke(a))}catch(o){throw o.message&&
(o.message+=" from "+String(a[a.length-1])),o;}else pa(a,"module")});return b}function g(a,b){function c(d){if(typeof d!=="string")throw C("Service name expected");if(a.hasOwnProperty(d)){if(a[d]===f)throw C("Circular dependency: "+l.join(" <- "));return a[d]}else try{return l.unshift(d),a[d]=f,a[d]=b(d)}finally{l.shift()}}function d(a,b,e){var f=[],g,h,j;typeof a=="function"?(g=Fc(a),h=g.length):(I(a)&&(g=a,h=g.length-1,a=g[h]),pa(a,"fn"));for(var i=0;i<h;i++)j=g[i],f.push(e&&e.hasOwnProperty(j)?
e[j]:c(j,l));switch(b?-1:f.length){case 0:return a();case 1:return a(f[0]);case 2:return a(f[0],f[1]);case 3:return a(f[0],f[1],f[2]);case 4:return a(f[0],f[1],f[2],f[3]);case 5:return a(f[0],f[1],f[2],f[3],f[4]);case 6:return a(f[0],f[1],f[2],f[3],f[4],f[5]);case 7:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6]);case 8:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7]);case 9:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8]);case 10:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9]);default:return a.apply(b,
f)}}return{invoke:d,instantiate:function(a,b){var c=function(){},e;c.prototype=(I(a)?a[a.length-1]:a).prototype;c=new c;e=d(a,c,b);return H(e)?e:c},get:c}}var f={},h="Provider",l=[],i=new Ea,j={$provide:{provider:a(c),factory:a(d),service:a(function(a,b){return d(a,["$injector",function(a){return a.instantiate(b)}])}),value:a(function(a,b){return d(a,A(b))}),constant:a(function(a,b){j[a]=b;n[a]=b}),decorator:function(a,b){var c=m.get(a+h),d=c.$get;c.$get=function(){var a=o.invoke(d,c);return o.invoke(b,
null,{$delegate:a})}}}},m=g(j,function(){throw C("Unknown provider: "+l.join(" <- "));}),n={},o=n.$injector=g(n,function(a){a=m.get(a+h);return o.invoke(a.$get,a)});k(e(b),function(a){o.invoke(a||F)});return o}function yb(b){return b.replace(Lc,function(a,b,d,e){return e?d.toUpperCase():d}).replace(Mc,"Moz$1")}function db(b,a){function c(){var e;for(var b=[this],c=a,f,h,l,i,j,m,n;b.length;){f=b.shift();h=0;for(l=f.length;h<l;h++){i=p(f[h]);c?(n=(j=i.data("events"))&&j.$destroy)&&k(n,function(a){a.handler()}):
c=!c;j=0;for(e=(m=i.children()).length,i=e;j<i;j++)b.push(la(m[j]))}}return d.apply(this,arguments)}var d=la.fn[b],d=d.$original||d;c.$original=d;la.fn[b]=c}function R(b){if(b instanceof R)return b;if(!(this instanceof R)){if(B(b)&&b.charAt(0)!="<")throw C("selectors not implemented");return new R(b)}if(B(b)){var a=U.createElement("div");a.innerHTML="<div>&nbsp;</div>"+b;a.removeChild(a.firstChild);eb(this,a.childNodes);this.remove()}else eb(this,b)}function fb(b){return b.cloneNode(!0)}function ra(b){zb(b);
for(var a=0,b=b.childNodes||[];a<b.length;a++)ra(b[a])}function zb(b){var a=b[Fa],c=Ga[a];c&&(c.bind&&k(c.bind,function(a,c){c=="$destroy"?a({}):gb(b,c,a)}),delete Ga[a],b[Fa]=w)}function Ha(b,a,c){var d=b[Fa],d=Ga[d||-1];if(y(c))d||(b[Fa]=d=Nc++,d=Ga[d]={}),d[a]=c;else return d?d[a]:null}function Ia(b,a){return(" "+b.className+" ").replace(/[\n\t]/g," ").indexOf(" "+a+" ")>-1}function Ab(b,a){a&&k(a.split(" "),function(a){b.className=Q((" "+b.className+" ").replace(/[\n\t]/g," ").replace(" "+Q(a)+
" "," "))})}function Bb(b,a){a&&k(a.split(" "),function(a){if(!Ia(b,a))b.className=Q(b.className+" "+Q(a))})}function eb(b,a){if(a)for(var a=!a.nodeName&&y(a.length)&&!wa(a)?a:[a],c=0;c<a.length;c++)b.push(a[c])}function Cb(b,a){return Ja(b,"$"+(a||"ngController")+"Controller")}function Ja(b,a,c){for(b=p(b);b.length;){if(c=b.data(a))return c;b=b.parent()}}function hb(b,a){return Db[b.nodeName]&&Ka[a.toLowerCase()]}function ib(b){var a=function(c){if(!c.preventDefault)c.preventDefault=function(){c.returnValue=
!1};if(!c.stopPropagation)c.stopPropagation=function(){c.cancelBubble=!0};if(!c.target)c.target=c.srcElement||U;if(s(c.defaultPrevented)){var d=c.preventDefault;c.preventDefault=function(){c.defaultPrevented=!0;d.call(c)};c.defaultPrevented=!1}c.isDefaultPrevented=function(){return c.defaultPrevented};k(a.fns,function(a){a.call(b,c)});ea<8?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)};a.fns=
[];return a}function sa(b){var a=typeof b,c;if(a=="object"&&b!==null)if(typeof(c=b.$$hashKey)=="function")c=b.$$hashKey();else{if(c===w)c=b.$$hashKey=Va()}else c=b;return a+":"+c}function Ea(b){k(b,this.put,this)}function jb(){}function Oc(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;k(a,function(a){!b&&E(a.nodeName)==="a"&&(b=a)});return b}function g(){var b=c.hash(),d;b?(d=f.getElementById(b))?d.scrollIntoView():
(d=e(f.getElementsByName(b)))?d.scrollIntoView():b==="top"&&a.scrollTo(0,0):a.scrollTo(0,0)}var f=a.document;b&&d.$watch(function(){return c.hash()},function(){d.$evalAsync(g)});return g}]}function Pc(b,a,c,d,e){function g(a){try{a.apply(null,ia.call(arguments,1))}finally{if(r--,r===0)for(;u.length;)try{u.pop()()}catch(b){d.error(b)}}}function f(a,b){(function Y(){k(M,function(a){a()});D=b(Y,a)})()}function h(){q!=l.url()&&(q=l.url(),k(K,function(a){a(l.url())}))}var l=this,i=a[0],j=b.location,m=
b.history,n=b.setTimeout,o=b.clearTimeout,v={};l.isMock=!1;var r=0,u=[];l.$$completeOutstandingRequest=g;l.$$incOutstandingRequestCount=function(){r++};l.notifyWhenNoOutstandingRequests=function(a){k(M,function(a){a()});r===0?a():u.push(a)};var M=[],D;l.addPollFn=function(a){s(D)&&f(100,n);M.push(a);return a};var q=j.href;l.url=function(a,b){return a?(q=a,e.history?b?m.replaceState(null,"",a):m.pushState(null,"",a):b?j.replace(a):j.href=a,l):j.href};var K=[],x=!1;l.onUrlChange=function(a){x||(e.history&&
p(b).bind("popstate",h),e.hashchange?p(b).bind("hashchange",h):l.addPollFn(h),x=!0);K.push(a);return a};var J={},ka="";l.cookies=function(a,b){var c,e,f,l;if(a)if(b===w)i.cookie=escape(a)+"=;expires=Thu, 01 Jan 1970 00:00:00 GMT";else{if(B(b))i.cookie=escape(a)+"="+escape(b),c=a.length+b.length+1,c>4096&&d.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+c+" > 4096 bytes)!"),J.length>20&&d.warn("Cookie '"+a+"' possibly not set or overflowed because too many cookies were already set ("+
J.length+" > 20 )")}else{if(i.cookie!==ka){ka=i.cookie;c=ka.split("; ");J={};for(f=0;f<c.length;f++)e=c[f],l=e.indexOf("="),l>0&&(J[unescape(e.substring(0,l))]=unescape(e.substring(l+1)))}return J}};l.defer=function(a,b){var c;r++;c=n(function(){delete v[c];g(a)},b||0);v[c]=!0;return c};l.defer.cancel=function(a){return v[a]?(delete v[a],o(a),g(F),!0):!1};l.addCss=function(a){var b=p(i.createElement("link"));b.attr("rel","stylesheet");b.attr("type","text/css");b.attr("href",a);c.append(b)};l.addJs=
function(a,b){var d=i.createElement("script");d.type="text/javascript";d.src=a;if(ea)d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&b&&b()};else if(b)d.onload=d.onerror=b;c[0].appendChild(d);return d};l.baseHref=function(){var b=a.find("base").attr("href");return b?b.replace(/^https?\:\/\/[^\/]*/,""):b}}function Qc(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new Pc(b,d,d.find("body"),a,c)}]}function Rc(){this.$get=function(){function b(b,d){function e(a){if(a!=
m){if(n){if(n==a)n=a.n}else n=a;g(a.n,a.p);g(a,m);m=a;m.n=null}}function g(a,b){if(a!=b){if(a)a.p=b;if(b)b.n=a}}if(b in a)throw C("cacheId "+b+" taken");var f=0,h=t({},d,{id:b}),l={},i=d&&d.capacity||Number.MAX_VALUE,j={},m=null,n=null;return a[b]={put:function(a,b){var c=j[a]||(j[a]={key:a});e(c);s(b)||(a in l||f++,l[a]=b,f>i&&this.remove(n.key))},get:function(a){var b=j[a];if(b)return e(b),l[a]},remove:function(a){var b=j[a];if(b==m)m=b.p;if(b==n)n=b.n;g(b.n,b.p);delete j[a];delete l[a];f--},removeAll:function(){l=
{};f=0;j={};m=n=null},destroy:function(){j=h=l=null;delete a[b]},info:function(){return t({},h,{size:f})}}}var a={};b.info=function(){var b={};k(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};return b}}function Sc(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function Eb(b){var a={},c="Directive",d=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,e=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,g=/\<\<content\>\>/i,f=/^\<[\s\S]*\>$/,h={};k("src,href,multiple,selected,checked,disabled,readonly,required".split(","),
function(a){h[a]=a;h[$("ng_"+a)]=a});this.directive=function i(d,e){B(d)?(oa(e,"directive"),a.hasOwnProperty(d)||(a[d]=[],b.factory(d+c,["$injector","$exceptionHandler",function(b,c){var e=[];k(a[d],function(a){try{var f=b.invoke(a);if(G(f))f={compile:A(f)};else if(!f.compile&&f.link)f.compile=A(f.link);f.priority=f.priority||0;f.name=f.name||d;f.require=f.require||f.controller&&f.name;f.restrict=f.restrict||"A";e.push(f)}catch(g){c(g)}});return e}])),a[d].push(e)):k(d,rb(i));return this};this.$get=
["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller",function(b,j,m,n,o,v,r){function u(a,b,c){a instanceof p||(a=p(a));k(a,function(b,c){b.nodeType==3&&(a[c]=p(b).wrap("<span>").parent()[0])});var d=q(a,b,a,c);return function(b,c){oa(b,"scope");var e=c?ta.clone.call(a):a;D(e.data("$scope",b),"ng-scope");c&&c(e,b);d&&d(b,e,e);return e}}function M(a,b){throw C("Unsupported '"+b+"' for '"+a+"'.");}function D(a,b){try{a.addClass(b)}catch(c){}}function q(a,b,
c,d){function e(a,c,d,g){if(f.length!=c.length*2)throw C("Template changed structure!");for(var h,j,i,m,n,o=0,S=0,r=f.length;o<r;S++)i=c[S],j=f[o++],h=f[o++],j?(j.scope&&!d?(m=a.$new(H(j.scope)),p(i).data("$scope",m)):m=a,(n=j.transclude)||!g&&b?j(h,m,i,d,function(b){return function(c){var d=a.$new();return b(d,c).bind("$destroy",za(d,d.$destroy))}}(n||b)):j(h,m,i,w,g)):h&&h(a,i.childNodes,w,g)}for(var f=[],g,h,j,i=0,m=a.length;i<m;i++)h={$attr:{},$normalize:$,$set:aa,$observe:fa,$observers:{}},g=
K(a[i],[],h,d),h=(g=g.length?x(g,a[i],h,b,c):null)&&g.terminal?null:q(a[i].childNodes,g?g.transclude:b),f.push(g),f.push(h),j=j||g||h;return j?e:null}function K(a,b,c,f){var g=c.$attr;switch(a.nodeType){case 1:J(b,$(Fb(a).toLowerCase()),"E",f);for(var h,j,i,m=a.attributes,n=0,o=m&&m.length;n<o;n++)if(h=m[n],h.specified)j=h.name,i=$(j.toLowerCase()),g[i]=j,c[i]=h=Q(ea&&j=="href"?decodeURIComponent(a.getAttribute(j,2)):h.value),hb(a,i)&&(c[i]=!0),E(a,b,h,i),J(b,i,"A",f);g=a.className;if(B(g))for(;a=
e.exec(g);)i=$(a[2]),J(b,i,"C",f)&&(c[i]=Q(a[3])),g=g.substr(a.index+a[0].length);break;case 3:y(b,a.nodeValue);break;case 8:if(a=d.exec(a.nodeValue))i=$(a[1]),J(b,i,"M",f)&&(c[i]=Q(a[2]))}b.sort(V);return b}function x(a,b,c,d,e){function f(a,b){if(a)a.require=q.require,n.push(a);if(b)b.require=q.require,o.push(b)}function h(a,b){var c,d="data",e=!1;if(B(a)){for(;(c=a.charAt(0))=="^"||c=="?";)a=a.substr(1),c=="^"&&(d="inheritedData"),e=e||c=="?";c=b[d]("$"+a+"Controller");if(!c&&!e)throw C("No controller: "+
a);}else I(a)&&(c=[],k(a,function(a){c.push(h(a,b))}));return c}function i(a,d,e,f,g){var j,S,Z,u,K;b===e?j=c:(j=yc(c),j.$element=p(e));S=j.$element;v&&H(v.scope)&&k(v.scope,function(a,b){(Gb[a]||M)(b,a,d.$parent||d,d,j)});E&&k(E,function(a){var b={$scope:d,$element:S,$attrs:j,$transclude:g};k(a.inject||{},function(a,c){(Gb[a]||M)(c,a,v?d.$parent||d:d,b,j)});K=a.controller;K=="@"&&(K=j[a.name]);S.data("$"+a.name+"Controller",r(K,b))});f=0;for(Z=n.length;f<Z;f++)try{u=n[f],u(d,S,j,u.require&&h(u.require,
S))}catch(q){m(q,Ba(S))}a&&a(d,e.childNodes,w,g);f=0;for(Z=o.length;f<Z;f++)try{u=o[f],u(d,S,j,u.require&&h(u.require,S))}catch(x){m(x,Ba(S))}}for(var j=-Number.MAX_VALUE,n=[],o=[],v=null,fa=null,J=null,aa=null,x=c.$element=p(b),q,V,t,F,y=d,E,A,Y=0,z=a.length;Y<z;Y++){q=a[Y];t=w;if(j>q.priority)break;if(t=q.scope)s("isolated scope",fa,q,x),H(t)&&(D(x,"ng-isolate-scope"),fa=q),D(x,"ng-scope"),v=v||q;V=q.name;if(t=q.controller)E=E||{},s("'"+V+"' controller",E[V],q,x),E[V]=q;if(t=q.transclude)s("transclusion",
F,q,x),F=q,j=q.priority,t=="element"?(t=p(b),b=(x=c.$element=p("<\!-- "+V+": "+c[V]+" --\>"))[0],Z(e,p(t[0]),b),y=u(t,d,j)):(t=p(fb(b)),x.html(""),y=u(t.contents(),d));if(t=q.template)s("template",J,q,x),J=q,V=t.replace(g,x.html()),b=p(V)[0],q.replace?(Z(e,x,b),z={$attr:{}},a=a.concat(K(b,a.splice(Y+1,a.length-(Y+1)),z)),ka(c,z),z=a.length):x.html(V);if(q.templateUrl)s("template",J,q,x),J=q,aa=Kc(a.splice(Y,a.length-Y),i,x,c,e,q.replace,y),z=a.length;else if(q.compile)try{A=q.compile(x,c,y),G(A)?
f(null,A):A&&f(A.pre,A.post)}catch(L){m(L,Ba(x))}if(q.terminal)i.terminal=!0,j=Math.max(j,q.priority)}A=aa||i;A.scope=v&&v.scope;A.transclude=F&&y;return A}function J(d,e,f,g){var h=!1;if(a.hasOwnProperty(e))for(var j,e=b.get(e+c),n=0,o=e.length;n<o;n++)try{if(j=e[n],(g===w||g>j.priority)&&j.restrict.indexOf(f)!=-1)d.push(j),h=!0}catch(r){m(r)}return h}function ka(a,b){var c=b.$attr,d=a.$attr,e=a.$element;k(a,function(d,e){e.charAt(0)!="$"&&(b[e]&&(d+=(e==="style"?";":" ")+b[e]),a.$set(e,d,c[e]))});
k(b,function(b,f){f=="class"?D(e,b):f=="style"?e.attr("style",e.attr("style")+";"+b):f.charAt(0)!="$"&&!a.hasOwnProperty(f)&&(a[f]=b,d[f]=c[f])})}function Kc(a,b,c,d,e,h,j){var i=[],m,r,v=c[0],u=a.shift(),M=t({},u,{templateUrl:null,transclude:null}),k=c.html();c.html("");n.get(u.templateUrl,{cache:o}).success(function(n){n=Q(n).replace(g,k);if(h&&!n.match(f))throw C("Template must have exactly one root element: "+n);var o,u;h?(u={$attr:{}},o=p(n)[0],Z(e,c,o),K(c[0],a,u),ka(d,u)):(o=c[0],c.html(n));
a.unshift(M);m=x(a,c,d,j);for(r=q(c.contents(),j);i.length;){var fa=i.pop(),n=i.pop();u=i.pop();var J=i.pop(),aa=o;u!==v&&(aa=fb(o),Z(n,p(u),aa));m(function(){b(r,J,aa,e,fa)},J,aa,e,fa)}i=null}).error(function(a,b,c,d){throw C("Failed to load template: "+d.url);});return function(a,c,d,e,f){i?(i.push(c),i.push(d),i.push(e),i.push(f)):m(function(){b(r,c,d,e,f)},c,d,e,f)}}function V(a,b){return b.priority-a.priority}function s(a,b,c,d){if(b)throw C("Multiple directives ["+b.name+", "+c.name+"] asking for "+
a+" on: "+Ba(d));}function y(a,b){var c=j(b,!0);c&&a.push({priority:0,compile:A(function(a,b){var d=b.parent(),e=d.data("$binding")||[];e.push(c);D(d.data("$binding",e),"ng-binding");a.$watch(c,function(a){b[0].nodeValue=a})})})}function E(a,b,c,d){var e=j(c,!0),f=h[d],g=f&&f!==d,f=f||d;g&&hb(a,d)&&(c=!0);(e||g)&&b.push({priority:100,compile:function(a,b){if(e)return function(a,b,c){d==="class"&&(e=j(c[d],!0));c.$observers[f]=[];c[f]=w;a.$watch(e,function(a){c.$set(f,a)})};else b.$set(f,c)}})}function Z(a,
b,c){var d=b[0],e=d.parentNode,f,g;if(a){f=0;for(g=a.length;f<g;f++)a[f]==d&&(a[f]=c)}e&&e.replaceChild(c,d);b[0]=c}function aa(a,b,c){var d=hb(this.$element[0],a.toLowerCase());d?(b=Aa(b),this.$element.prop(a,b),this[a]=b,c=a=d,b=b?d:w):this[a]=b;c?this.$attr[a]=c:(c=this.$attr[a])||(this.$attr[a]=c=ab(a,"-"));b===null||b===w?this.$element.removeAttr(c):this.$element.attr(c,b);k(this.$observers[a],function(a){try{a(b)}catch(c){m(c)}})}function fa(a,b){this.$observers[a]&&this.$observers[a].push(b)}
var Gb={attribute:function(a,b,c,d,e){d[a]=e[a]},evaluate:function(a,b,c,d,e){d[a]=c.$eval(e[a])},bind:function(a,b,c,d,e){var f=j(e[a]);d.$watch(function(){return f(c)},function(b){d[a]=b})},accessor:function(a,b,c,d,e){var f=F,g=F,h=e[a];h&&(f=v(h),g=f.assign||function(){throw C("Expression '"+h+"' not assignable.");});d[a]=function(a){return arguments.length?g(c,a):f(c)}},expression:function(a,b,c,d,e){d[a]=function(b){v(e[a])(c,b)}}};return u}]}function $(b){return yb(b.replace(Tc,""))}function Uc(){this.$get=
["$injector","$window",function(b,a){return function(c,d){if(B(c)){var e=c,c=La(d.$scope,e,!0)||La(a,e,!0);pa(c,e)}return b.instantiate(c,d)}}]}function Vc(){this.$get=["$cookies",function(b){return{get:function(a){return cb(b[a])},put:function(a,c){b[a]=ca(c)},remove:function(a){delete b[a]}}}]}function Wc(){this.$get=["$rootScope","$browser",function(b,a){var c={},d={},e,g=!1;a.addPollFn(function(){var f=a.cookies();e!=f&&(e=f,L(f,d),L(f,c),g&&b.$apply())})();g=!0;b.$watch(function(){var b,e,g;
for(b in d)s(c[b])&&a.cookies(b,w);for(b in c)e=c[b],B(e)?e!==d[b]&&(a.cookies(b,e),g=!0):y(d[b])?c[b]=d[b]:delete c[b];if(g)for(b in e=a.cookies(),c)c[b]!==e[b]&&(s(e[b])?delete c[b]:c[b]=e[b])});return c}]}function Xc(){this.$get=["$rootScope","$browser",function(b,a){function c(c,e){return a.defer(function(){b.$apply(c)},e)}c.cancel=function(b){return a.defer.cancel(b)};return c}]}function Yc(){this.$get=["$window",function(b){return p(b.document)}]}function Zc(){this.$get=["$log",function(b){return function(a,
c){b.error.apply(b,arguments)}}]}function Hb(b){function a(a,e){return b.factory(a+c,e)}var c="Filter";this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}];a("currency",Ib);a("date",Jb);a("filter",$c);a("json",ad);a("limitTo",bd);a("linky",cd);a("lowercase",dd);a("number",Kb);a("orderBy",Lb);a("uppercase",ed)}function $c(){return function(b,a){if(!(b instanceof Array))return b;var c=[];c.check=function(a){for(var b=0;b<c.length;b++)if(!c[b](a))return!1;return!0};
var d=function(a,b){if(b.charAt(0)==="!")return!d(a,b.substr(1));switch(typeof a){case "boolean":case "number":case "string":return(""+a).toLowerCase().indexOf(b)>-1;case "object":for(var c in a)if(c.charAt(0)!=="$"&&d(a[c],b))return!0;return!1;case "array":for(c=0;c<a.length;c++)if(d(a[c],b))return!0;return!1;default:return!1}};switch(typeof a){case "boolean":case "number":case "string":a={$:a};case "object":for(var e in a)e=="$"?function(){var b=(""+a[e]).toLowerCase();b&&c.push(function(a){return d(a,
b)})}():function(){var b=e,f=(""+a[e]).toLowerCase();f&&c.push(function(a){return d(La(a,b),f)})}();break;case "function":c.push(a);break;default:return b}for(var g=[],f=0;f<b.length;f++){var h=b[f];c.check(h)&&g.push(h)}return g}}function Ib(b){var a=b.NUMBER_FORMATS;return function(b,d){if(s(d))d=a.CURRENCY_SYM;return Mb(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,2).replace(/\u00A4/g,d)}}function Kb(b){var a=b.NUMBER_FORMATS;return function(b,d){return Mb(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,
d)}}function Mb(b,a,c,d,e){if(isNaN(b)||!isFinite(b))return"";var g=b<0,b=Math.abs(b),f=b+"",h="",l=[];if(f.indexOf("e")!==-1)h=f;else{f=(f.split(Nb)[1]||"").length;s(e)&&(e=Math.min(Math.max(a.minFrac,f),a.maxFrac));var f=Math.pow(10,e),b=Math.round(b*f)/f,b=(""+b).split(Nb),f=b[0],b=b[1]||"",i=0,j=a.lgSize,m=a.gSize;if(f.length>=j+m)for(var i=f.length-j,n=0;n<i;n++)(i-n)%m===0&&n!==0&&(h+=c),h+=f.charAt(n);for(n=i;n<f.length;n++)(f.length-n)%j===0&&n!==0&&(h+=c),h+=f.charAt(n);for(;b.length<e;)b+=
"0";e&&(h+=d+b.substr(0,e))}l.push(g?a.negPre:a.posPre);l.push(h);l.push(g?a.negSuf:a.posSuf);return l.join("")}function W(b,a,c){var d="";b<0&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=b.substr(b.length-a));return d+b}function N(b,a,c,d){return function(e){e=e["get"+b]();if(c>0||e>-c)e+=c;e===0&&c==-12&&(e=12);return W(e,a,d)}}function Ma(b,a){return function(c,d){var e=c["get"+b](),g=ma(a?"SHORT"+b:b);return d[g][e]}}function Jb(b){return function(a,c){var d="",e=[],g,f,c=c||"mediumDate",
c=b.DATETIME_FORMATS[c]||c;B(a)&&(a=fd.test(a)?z(a):wb(a));na(a)&&(a=new Date(a));if(!ha(a))return a;for(;c;)(f=gd.exec(c))?(e=e.concat(ia.call(f,1)),c=e.pop()):(e.push(c),c=null);k(e,function(c){g=hd[c];d+=g?g(a,b.DATETIME_FORMATS):c.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return d}}function ad(){return function(b){return ca(b,!0)}}function cd(){var b=/((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s\.\;\,\(\)\{\}\<\>]/,a=/^mailto:/;return function(c){if(!c)return c;for(var d=c,e=[],g=
Ob(e),f,h;c=d.match(b);)f=c[0],c[2]==c[3]&&(f="mailto:"+f),h=c.index,g.chars(d.substr(0,h)),g.start("a",{href:f}),g.chars(c[0].replace(a,"")),g.end("a"),d=d.substring(h+c[0].length);g.chars(d);return e.join("")}}function bd(){return function(b,a){if(!(b instanceof Array))return b;var a=z(a),c=[],d,e;if(!b||!(b instanceof Array))return c;a>b.length?a=b.length:a<-b.length&&(a=-b.length);a>0?(d=0,e=a):(d=b.length+a,e=b.length);for(;d<e;d++)c.push(b[d]);return c}}function Lb(b){return function(a,c,d){function e(a,
b){return Aa(b)?function(b,c){return a(c,b)}:a}if(!(a instanceof Array))return a;if(!c)return a;for(var c=I(c)?c:[c],c=Za(c,function(a){var c=!1,d=a||va;if(B(a)){if(a.charAt(0)=="+"||a.charAt(0)=="-")c=a.charAt(0)=="-",a=a.substring(1);d=b(a)}return e(function(a,b){var c;c=d(a);var e=d(b),f=typeof c,g=typeof e;f==g?(f=="string"&&(c=c.toLowerCase()),f=="string"&&(e=e.toLowerCase()),c=c===e?0:c<e?-1:1):c=f<g?-1:1;return c},c)}),g=[],f=0;f<a.length;f++)g.push(a[f]);return g.sort(e(function(a,b){for(var d=
0;d<c.length;d++){var e=c[d](a,b);if(e!==0)return e}return 0},d))}}function id(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b};this.endSymbol=function(c){return c?(a=c,this):b};this.$get=["$parse",function(c){var d=b.length,e=a.length;return function(g,f){for(var h,l,i=0,j=[],m=g.length,n=!1,o=[];i<m;)(h=g.indexOf(b,i))!=-1&&(l=g.indexOf(a,h+d))!=-1?(i!=h&&j.push(g.substring(i,h)),j.push(i=c(n=g.substring(h+d,l))),i.exp=n,i=l+e,n=!0):(i!=m&&j.push(g.substring(i)),i=m);if(!(m=
j.length))j.push(""),m=1;if(!f||n)return o.length=m,i=function(a){for(var b=0,c=m,d;b<c;b++){if(typeof(d=j[b])=="function")d=d(a),d==null||d==w?d="":typeof d!="string"&&(d=ca(d));o[b]=d}return o.join("")},i.exp=g,i.parts=j,i}}]}function Pb(b){for(var b=b.split("/"),a=b.length;a--;)b[a]=Ca(b[a]);return b.join("/")}function Na(b,a){var c=Qb.exec(b),c={protocol:c[1],host:c[3],port:z(c[5])||Rb[c[1]]||null,path:c[6]||"/",search:c[8],hash:c[10]};if(a)a.$$protocol=c.protocol,a.$$host=c.host,a.$$port=c.port;
return c}function ua(b,a,c){return b+"://"+a+(c==Rb[b]?"":":"+c)}function jd(b,a,c){var d=Na(b);return decodeURIComponent(d.path)!=a||s(d.hash)||d.hash.indexOf(c)!==0?b:ua(d.protocol,d.host,d.port)+a.substr(0,a.lastIndexOf("/"))+d.hash.substr(c.length)}function kd(b,a,c){var d=Na(b);if(decodeURIComponent(d.path)==a)return b;else{var e=d.search&&"?"+d.search||"",g=d.hash&&"#"+d.hash||"",f=a.substr(0,a.lastIndexOf("/")),h=d.path.substr(f.length);if(d.path.indexOf(f)!==0)throw'Invalid url "'+b+'", missing path prefix "'+
f+'" !';return ua(d.protocol,d.host,d.port)+a+"#"+c+h+e+g}}function kb(b,a){a=a||"";this.$$parse=function(b){var d=Na(b,this);if(d.path.indexOf(a)!==0)throw'Invalid url "'+b+'", missing path prefix "'+a+'" !';this.$$path=decodeURIComponent(d.path.substr(a.length));this.$$search=$a(d.search);this.$$hash=d.hash&&decodeURIComponent(d.hash)||"";this.$$compose()};this.$$compose=function(){var b=tb(this.$$search),d=this.$$hash?"#"+Ca(this.$$hash):"";this.$$url=Pb(this.$$path)+(b?"?"+b:"")+d;this.$$absUrl=
ua(this.$$protocol,this.$$host,this.$$port)+a+this.$$url};this.$$parse(b)}function lb(b,a){var c;this.$$parse=function(b){var e=Na(b,this);if(e.hash&&e.hash.indexOf(a)!==0)throw'Invalid url "'+b+'", missing hash prefix "'+a+'" !';c=e.path+(e.search?"?"+e.search:"");e=ld.exec((e.hash||"").substr(a.length));this.$$path=e[1]?(e[1].charAt(0)=="/"?"":"/")+decodeURIComponent(e[1]):"";this.$$search=$a(e[3]);this.$$hash=e[5]&&decodeURIComponent(e[5])||"";this.$$compose()};this.$$compose=function(){var b=
tb(this.$$search),e=this.$$hash?"#"+Ca(this.$$hash):"";this.$$url=Pb(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=ua(this.$$protocol,this.$$host,this.$$port)+c+(this.$$url?"#"+a+this.$$url:"")};this.$$parse(b)}function Oa(b){return function(){return this[b]}}function Sb(b,a){return function(c){if(s(c))return this[b];this[b]=a(c);this.$$compose();return this}}function md(){var b="",a=!1;this.hashPrefix=function(a){return y(a)?(b=a,this):b};this.html5Mode=function(b){return y(b)?(a=b,this):a};this.$get=
["$rootScope","$browser","$sniffer","$document",function(c,d,e,g){var f,h=d.baseHref()||"/",l=h.substr(0,h.lastIndexOf("/")),i=d.url();if(a){var e=f=e.history?new kb(jd(i,h,b),l):new lb(kd(i,h,b),b),j=ua(e.protocol(),e.host(),e.port())+l;g.bind("click",function(a){if(!a.ctrlKey&&!(a.metaKey||a.which==2)){for(var b=p(a.target);b.length&&E(b[0].nodeName)!=="a";)b=b.parent();var d=b.attr("href");d&&!y(b.attr("ng-ext-link"))&&!b.attr("target")&&(d=d.replace(j,""),d.substr(0,4)!="http"&&(d=d.indexOf(l)===
0?d.substr(l.length):d,f.url(d),c.$apply(),a.preventDefault(),O.angular["ff-684208-preventDefault"]=!0))}})}else f=new lb(i,b);f.absUrl()!=i&&d.url(f.absUrl(),!0);d.onUrlChange(function(a){f.absUrl()!=a&&(c.$evalAsync(function(){f.$$parse(a)}),c.$$phase||c.$digest())});var m=0;c.$watch(function(){d.url()!=f.absUrl()&&(m++,c.$evalAsync(function(){d.url(f.absUrl(),f.$$replace);f.$$replace=!1}));return m});return f}]}function nd(){this.$get=["$window",function(b){function a(a){a instanceof C&&(a.stack?
a=a.message&&a.stack.indexOf(a.message)===-1?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function c(c){var e=b.console||{},g=e[c]||e.log||F;return g.apply?function(){var b=[];k(arguments,function(c){b.push(a(c))});return g.apply(e,b)}:function(a,b){g(a,b)}}return{log:c("log"),warn:c("warn"),info:c("info"),error:c("error")}}]}function od(){this.$get=["$http",function(b){function a(a,b){this.template=a+="#";this.defaults=b||{};var c=this.urlParams=
{};k(a.split(/\W/),function(b){b&&a.match(RegExp("[^\\\\]:"+b+"\\W"))&&(c[b]=!0)});this.template=a.replace(/\\:/g,":")}function c(e,g,f){function h(a){var b={};k(g||{},function(c,d){b[d]=c.charAt&&c.charAt(0)=="@"?La(a,c.substr(1)):c});return b}function l(a){L(a||{},this)}var i=new a(e),f=t({},d,f);k(f,function(a,d){var n=a.method=="POST"||a.method=="PUT";l[d]=function(c,d,e,f){var g={},m,q=F,K=null;switch(arguments.length){case 4:K=f,q=e;case 3:case 2:if(G(d)){if(G(c)){q=c;K=d;break}q=d;K=e}else{g=
c;m=d;q=e;break}case 1:G(c)?q=c:n?m=c:g=c;break;case 0:break;default:throw"Expected between 0-4 arguments [params, data, success, error], got "+arguments.length+" arguments.";}var x=this instanceof l?this:a.isArray?[]:new l(m);b({method:a.method,url:i.url(t({},h(m),a.params||{},g)),data:m}).then(function(b){var c=b.data;if(c)a.isArray?(x.length=0,k(c,function(a){x.push(new l(a))})):L(c,x);(q||F)(x,b.headers)},K);return x};l.bind=function(a){return c(e,t({},g,a),f)};l.prototype["$"+d]=function(a,b,
c){var e=h(this),f=F,g;switch(arguments.length){case 3:e=a;f=b;g=c;break;case 2:case 1:G(a)?(f=a,g=b):(e=a,f=b||F);case 0:break;default:throw"Expected between 1-3 arguments [params, success, error], got "+arguments.length+" arguments.";}l[d].call(this,e,n?this:w,f,g)}});return l}var d={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}};a.prototype={url:function(a){var b=this,c=this.template,d,a=a||{};k(this.urlParams,function(l,
j){d=Ca(a[j]||b.defaults[j]||"");c=c.replace(RegExp(":"+j+"(\\W)"),d+"$1")});var c=c.replace(/\/?#$/,""),l=[];uc(a,function(a,c){b.urlParams[c]||l.push(ja(c)+"="+ja(a))});c=c.replace(/\/*$/,"");return c+(l.length?"?"+l.join("&"):"")}};return c}]}function pd(b){function a(a){return a.indexOf(r)!=-1}function c(){return o+1<b.length?b.charAt(o+1):!1}function d(a){return"0"<=a&&a<="9"}function e(a){return a==" "||a=="\r"||a=="\t"||a=="\n"||a=="\u000b"||a=="\u00a0"}function g(a){return"a"<=a&&a<="z"||
"A"<=a&&a<="Z"||"_"==a||a=="$"}function f(a){return a=="-"||a=="+"||d(a)}function h(a,c,d){d=d||o;throw C("Lexer Error: "+a+" at column"+(y(c)?"s "+c+"-"+o+" ["+b.substring(c,d)+"]":" "+d)+" in expression ["+b+"].");}function l(){for(var a="",e=o;o<b.length;){var g=E(b.charAt(o));if(g=="."||d(g))a+=g;else{var l=c();if(g=="e"&&f(l))a+=g;else if(f(g)&&l&&d(l)&&a.charAt(a.length-1)=="e")a+=g;else if(f(g)&&(!l||!d(l))&&a.charAt(a.length-1)=="e")h("Invalid exponent");else break}o++}a*=1;m.push({index:e,
text:a,json:!0,fn:function(){return a}})}function i(){for(var a="",c=o,f,h,l;o<b.length;){var j=b.charAt(o);if(j=="."||g(j)||d(j))j=="."&&(f=o),a+=j;else break;o++}if(f)for(h=o;h<b.length;){j=b.charAt(h);if(j=="("){l=a.substr(f-c+1);a=a.substr(0,f-c);o=h;break}if(e(j))h++;else break}c={index:c,text:a};if(Pa.hasOwnProperty(a))c.fn=c.json=Pa[a];else{var i=Tb(a);c.fn=t(function(a,b){return i(a,b)},{assign:function(b,c){return Ub(b,a,c)}})}m.push(c);l&&(m.push({index:f,text:".",json:!1}),m.push({index:f+
1,text:l,json:!1}))}function j(a){var c=o;o++;for(var d="",e=a,f=!1;o<b.length;){var g=b.charAt(o);e+=g;if(f)g=="u"?(g=b.substring(o+1,o+5),g.match(/[\da-f]{4}/i)||h("Invalid unicode escape [\\u"+g+"]"),o+=4,d+=String.fromCharCode(parseInt(g,16))):(f=qd[g],d+=f?f:g),f=!1;else if(g=="\\")f=!0;else if(g==a){o++;m.push({index:c,text:e,string:d,json:!0,fn:function(){return d}});return}else d+=g;o++}h("Unterminated quote",c)}for(var m=[],n,o=0,v=[],r,u=":";o<b.length;){r=b.charAt(o);if(a("\"'"))j(r);else if(d(r)||
a(".")&&d(c()))l();else if(g(r)){if(i(),"{,".indexOf(u)!=-1&&v[0]=="{"&&(n=m[m.length-1]))n.json=n.text.indexOf(".")==-1}else if(a("(){}[].,;:"))m.push({index:o,text:r,json:":[,".indexOf(u)!=-1&&a("{[")||a("}]:,")}),a("{[")&&v.unshift(r),a("}]")&&v.shift(),o++;else if(e(r)){o++;continue}else{var k=r+c(),D=Pa[r],q=Pa[k];q?(m.push({index:o,text:k,fn:q}),o+=2):D?(m.push({index:o,text:r,fn:D,json:"[,:".indexOf(u)!=-1&&a("+-")}),o+=1):h("Unexpected next character ",o,o+1)}u=r}return m}function xb(b,a,
c){function d(a,c){throw C("Syntax Error: Token '"+c.text+"' "+a+" at column "+(c.index+1)+" of the expression ["+b+"] starting at ["+b.substring(c.index)+"].");}function e(){if(p.length===0)throw C("Unexpected end of expression: "+b);return p[0]}function g(a,b,c,d){if(p.length>0){var e=p[0],f=e.text;if(f==a||f==b||f==c||f==d||!a&&!b&&!c&&!d)return e}return!1}function f(b,c,e,f){return(b=g(b,c,e,f))?(a&&!b.json&&d("is not valid json",b),p.shift(),b):!1}function h(a){f(a)||d("is unexpected, expecting ["+
a+"]",g())}function l(a,b){return function(c,d){return a(c,d,b)}}function i(a,b,c){return function(d,e){return b(d,e,a,c)}}function j(){for(var a=[];;)if(p.length>0&&!g("}",")",";","]")&&a.push(G()),!f(";"))return a.length==1?a[0]:function(b,c){for(var d,e=0;e<a.length;e++){var f=a[e];f&&(d=f(b,c))}return d}}function m(){for(var a=f(),b=c(a.text),d=[];;)if(a=f(":"))d.push(s());else{var e=function(a,c,e){for(var e=[e],f=0;f<d.length;f++)e.push(d[f](a,c));return b.apply(a,e)};return function(){return e}}}
function n(){for(var a=o(),b;;)if(b=f("||"))a=i(a,b.fn,o());else return a}function o(){var a=v(),b;if(b=f("&&"))a=i(a,b.fn,o());return a}function v(){var a=r(),b;if(b=f("==","!="))a=i(a,b.fn,v());return a}function r(){var a;a=u();for(var b;b=f("+","-");)a=i(a,b.fn,u());if(b=f("<",">","<=",">="))a=i(a,b.fn,r());return a}function u(){for(var a=k(),b;b=f("*","/","%");)a=i(a,b.fn,k());return a}function k(){var a;return f("+")?D():(a=f("-"))?i(x,a.fn,k()):(a=f("!"))?l(a.fn,k()):D()}function D(){var a;
if(f("("))a=G(),h(")");else if(f("["))a=q();else if(f("{"))a=K();else{var b=f();(a=b.fn)||d("not a primary expression",b)}for(var c;b=f("(","[",".");)b.text==="("?(a=y(a,c),c=null):b.text==="["?(c=a,a=B(a)):b.text==="."?(c=a,a=E(a)):d("IMPOSSIBLE");return a}function q(){var a=[];if(e().text!="]"){do a.push(s());while(f(","))}h("]");return function(b,c){for(var d=[],e=0;e<a.length;e++)d.push(a[e](b,c));return d}}function K(){var a=[];if(e().text!="}"){do{var b=f(),b=b.string||b.text;h(":");var c=s();
a.push({key:b,value:c})}while(f(","))}h("}");return function(b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=f.value(b,c);d[f.key]=g}return d}}var x=A(0),J,p=pd(b),s=function(){var a=n(),c,e;return(e=f("="))?(a.assign||d("implies assignment but ["+b.substring(0,e.index)+"] can not be assigned to",e),c=n(),function(b,d){return a.assign(b,c(b,d),d)}):a},y=function(a,b){var c=[];if(e().text!=")"){do c.push(s());while(f(","))}h(")");return function(d,e){for(var f=[],g=b?b(d,e):d,h=0;h<c.length;h++)f.push(c[h](d,
e));h=a(d,e)||F;return h.apply?h.apply(g,f):h(f[0],f[1],f[2],f[3],f[4])}},E=function(a){var b=f().text,c=Tb(b);return t(function(b,d){return c(a(b,d),d)},{assign:function(c,d,e){return Ub(a(c,e),b,d)}})},B=function(a){var b=s();h("]");return t(function(c,d){var e=a(c,d),f=b(c,d),g;if(!e)return w;if((e=e[f])&&e.then){g=e;if(!("$$v"in e))g.$$v=w,g.then(function(a){g.$$v=a});e=e.$$v}return e},{assign:function(c,d,e){return a(c,e)[b(c,e)]=d}})},G=function(){for(var a=s(),b;;)if(b=f("|"))a=i(a,b.fn,m());
else return a};a?(s=n,y=E=B=G=function(){d("is not valid json",{text:b,index:0})},J=D()):J=j();p.length!==0&&d("is an unexpected token",p[0]);return J}function Ub(b,a,c){for(var a=a.split("."),d=0;a.length>1;d++){var e=a.shift(),g=b[e];g||(g={},b[e]=g);b=g}return b[a.shift()]=c}function La(b,a,c){if(!a)return b;for(var a=a.split("."),d,e=b,g=a.length,f=0;f<g;f++)d=a[f],b&&(b=(e=b)[d]);return!c&&G(b)?za(e,b):b}function Tb(b){if(mb.hasOwnProperty(b))return mb[b];var a,c="var l, fn, p;\n";k(b.split("."),
function(a,b){c+="if(!s) return s;\nl=s;\ns="+(b?"s":'((k&&k.hasOwnProperty("'+a+'"))?k:s)')+'["'+a+'"];\nif (s && s.then) {\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n'});c+="return s;";a=Function("s","k",c);a.toString=function(){return c};return mb[b]=a}function rd(){var b={};this.$get=["$filter",function(a){return function(c){switch(typeof c){case "string":return b.hasOwnProperty(c)?b[c]:b[c]=xb(c,!1,a);case "function":return c;default:return F}}}]}
function sd(){this.$get=["$rootScope","$exceptionHandler",function(b,a){return td(function(a){b.$evalAsync(a)},a)}]}function td(b,a){function c(a){return a}function d(a){return f(a)}var e=function(){var h=[],l,i;return i={resolve:function(a){if(h){var c=h;h=w;l=g(a);c.length&&b(function(){for(var a,b=0,d=c.length;b<d;b++)a=c[b],l.then(a[0],a[1])})}},reject:function(a){i.resolve(f(a))},promise:{then:function(b,f){var g=e(),i=function(d){try{g.resolve((b||c)(d))}catch(e){a(e),g.reject(e)}},k=function(b){try{g.resolve((f||
d)(b))}catch(c){a(c),g.reject(c)}};h?h.push([i,k]):l.then(i,k);return g.promise}}}},g=function(a){return a&&a.then?a:{then:function(c){var d=e();b(function(){d.resolve(c(a))});return d.promise}}},f=function(a){return{then:function(c,d){var f=e();b(function(){f.resolve(d(a))});return f.promise}}};return{defer:e,reject:f,when:function(h,l,i){var j=e(),m,n=function(b){try{return(l||c)(b)}catch(d){return a(d),f(d)}},o=function(b){try{return(i||d)(b)}catch(c){return a(c),f(c)}};b(function(){g(h).then(function(a){m||
(m=!0,j.resolve(g(a).then(n,o)))},function(a){m||(m=!0,j.resolve(o(a)))})});return j.promise},all:function(a){var b=e(),c=a.length,d=[];k(a,function(a,e){a.then(function(a){e in d||(d[e]=a,--c||b.resolve(d))},function(a){e in d||b.reject(a)})});return b.promise}}}function ud(){var b={};this.when=function(a,c){var d=b[a];d||(d=b[a]={reloadOnSearch:!0});c&&t(d,c);if(a){var e=a[a.length-1]=="/"?a.substr(0,a.length-1):a+"/";b[e]={redirectTo:a}}return d};this.otherwise=function(a){this.when(null,a)};this.$get=
["$rootScope","$location","$routeParams",function(a,c,d){function e(){var a,d;k(b,function(b,e){if(!d&&(a=f(c.path(),e)))d=Wa(b,{params:t({},c.search(),a),pathParams:a}),d.$route=b});return d||b[null]&&Wa(b[null],{params:{},pathParams:{}})}function g(a,b){var c=[];k((a||"").split(":"),function(a,d){if(d==0)c.push(a);else{var e=a.match(/(\w+)(.*)/),f=e[1];c.push(b[f]);c.push(e[2]||"");delete b[f]}});return c.join("")}var f=function(a,b){var c="^"+b.replace(/([\.\\\(\)\^\$])/g,"\\$1")+"$",d=[],e={};
k(b.split(/\W/),function(a){if(a){var b=RegExp(":"+a+"([\\W])");c.match(b)&&(c=c.replace(b,"([^\\/]*)$1"),d.push(a))}});var f=a.match(RegExp(c));f&&k(d,function(a,b){e[a]=f[b+1]});return f?e:null},h=0,l=!1,i={routes:b,reload:function(){h++;l=!0}};a.$watch(function(){return h+c.url()},function(){var b=e(),f=i.current;if(b&&f&&b.$route===f.$route&&da(b.pathParams,f.pathParams)&&!b.reloadOnSearch&&!l)f.params=b.params,L(f.params,d),a.$broadcast("$routeUpdate",f);else if(b||f)l=!1,a.$broadcast("$beforeRouteChange",
b,f),(i.current=b)&&(b.redirectTo?B(b.redirectTo)?c.path(g(b.redirectTo,b.params)).search(b.params).replace():c.url(b.redirectTo(b.pathParams,c.path(),c.search())).replace():L(b.params,d)),a.$broadcast("$afterRouteChange",b,f)});return i}]}function vd(){this.$get=A({})}function wd(){var b=10;this.digestTtl=function(a){arguments.length&&(b=a);return b};this.$get=["$injector","$exceptionHandler","$parse",function(a,c,d){function e(){this.$id=Va();this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=
this.$$prevSibling=this.$$childHead=this.$$childTail=null;this["this"]=this.$root=this;this.$$asyncQueue=[];this.$$listeners={}}function g(a,b){var c=a.$root;if(c.$$phase)throw C(c.$$phase+" already in progress");c.$$phase=b}function f(a,b){var c=d(a);pa(c,b);return c}function h(){}e.prototype={$new:function(a){if(G(a))throw C("API-CHANGE: Use $controller to instantiate controllers.");a?(a=new e,a.$root=this.$root):(a=function(){},a.prototype=this,a=new a,a.$id=Va());a["this"]=a;a.$$listeners={};
a.$parent=this;a.$$asyncQueue=[];a.$$watchers=a.$$nextSibling=a.$$childHead=a.$$childTail=null;a.$$prevSibling=this.$$childTail;this.$$childHead?this.$$childTail=this.$$childTail.$$nextSibling=a:this.$$childHead=this.$$childTail=a;return a},$watch:function(a,b,c){var d=f(a,"watch"),e=this.$$watchers,g={fn:b,last:h,get:d,exp:a,eq:!!c};if(!G(b)){var k=f(b||F,"listener");g.fn=function(a,b,c){k(c)}}if(!e)e=this.$$watchers=[];e.unshift(g);return function(){ya(e,g)}},$digest:function(){var a,d,e,f,n,o,
k,r=b,u,M=[],D,q;g(this,"$digest");do{k=!1;u=this;do{for(n=u.$$asyncQueue;n.length;)try{u.$eval(n.shift())}catch(K){c(K)}if(f=u.$$watchers)for(o=f.length;o--;)try{if(a=f[o],(d=a.get(u))!==(e=a.last)&&!(a.eq?da(d,e):typeof d=="number"&&typeof e=="number"&&isNaN(d)&&isNaN(e)))k=!0,a.last=a.eq?L(d):d,a.fn(d,e===h?d:e,u),r<5&&(D=4-r,M[D]||(M[D]=[]),q=G(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,q+="; newVal: "+ca(d)+"; oldVal: "+ca(e),M[D].push(q))}catch(x){c(x)}if(!(f=u.$$childHead||u!==this&&
u.$$nextSibling))for(;u!==this&&!(f=u.$$nextSibling);)u=u.$parent}while(u=f);if(k&&!r--)throw C(b+" $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: "+ca(M));}while(k||n.length);this.$root.$$phase=null},$destroy:function(){if(this.$root!=this){var a=this.$parent;this.$broadcast("$destroy");if(a.$$childHead==this)a.$$childHead=this.$$nextSibling;if(a.$$childTail==this)a.$$childTail=this.$$prevSibling;if(this.$$prevSibling)this.$$prevSibling.$$nextSibling=this.$$nextSibling;
if(this.$$nextSibling)this.$$nextSibling.$$prevSibling=this.$$prevSibling}},$eval:function(a,b){return d(a)(this,b)},$evalAsync:function(a){this.$$asyncQueue.push(a)},$apply:function(a){try{return g(this,"$apply"),this.$eval(a)}catch(b){c(b)}finally{this.$root.$$phase=null,this.$root.$digest()}},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);return function(){ya(c,b)}},$emit:function(a,b){var d=[],e,f=this,g={name:a,targetScope:f,cancel:function(){g.cancelled=
!0},cancelled:!1},h=[g].concat(ia.call(arguments,1)),r,k;do{e=f.$$listeners[a]||d;g.currentScope=f;r=0;for(k=e.length;r<k;r++)try{if(e[r].apply(null,h),g.cancelled)return g}catch(M){c(M)}f=f.$parent}while(f);return g},$broadcast:function(a,b){var d=this,e=this,f={name:a,targetScope:this},g=[f].concat(ia.call(arguments,1));do if(d=e,f.currentScope=d,k(d.$$listeners[a],function(a){try{a.apply(null,g)}catch(b){c(b)}}),!(e=d.$$childHead||d!==this&&d.$$nextSibling))for(;d!==this&&!(e=d.$$nextSibling);)d=
d.$parent;while(d=e);return f}};return new e}]}function xd(){this.$get=A(function(b){var a=[];yd(b,Ob(a));return a.join("")})}function yd(b,a){function c(b,c,e,g){c=E(c);if(Vb[c])for(;f.last()&&Wb[f.last()];)d("",f.last());Xb[c]&&f.last()==c&&d("",c);(g=Yb[c]||!!g)||f.push(c);var h={};e.replace(zd,function(a,b,c,d,e){h[b]=nb(c||d||e||"")});a.start&&a.start(c,h,g)}function d(b,c){var d=0,e;if(c=E(c))for(d=f.length-1;d>=0;d--)if(f[d]==c)break;if(d>=0){for(e=f.length-1;e>=d;e--)a.end&&a.end(f[e]);f.length=
d}}var e,g,f=[],h=b;for(f.last=function(){return f[f.length-1]};b;){g=!0;if(!f.last()||!Zb[f.last()]){if(b.indexOf("<\!--")===0)e=b.indexOf("--\>"),e>=0&&(a.comment&&a.comment(b.substring(4,e)),b=b.substring(e+3),g=!1);else if(Ad.test(b)){if(e=b.match($b))b=b.substring(e[0].length),e[0].replace($b,d),g=!1}else if(Bd.test(b)&&(e=b.match(ac)))b=b.substring(e[0].length),e[0].replace(ac,c),g=!1;g&&(e=b.indexOf("<"),g=e<0?b:b.substring(0,e),b=e<0?"":b.substring(e),a.chars&&a.chars(nb(g)))}else b=b.replace(RegExp("(.*)<\\s*\\/\\s*"+
f.last()+"[^>]*>","i"),function(b,c){c=c.replace(Cd,"$1").replace(Dd,"$1");a.chars&&a.chars(nb(c));return""}),d("",f.last());if(b==h)throw"Parse Error: "+b;h=b}d()}function nb(b){ob.innerHTML=b.replace(/</g,"&lt;");return ob.innerText||ob.textContent||""}function bc(b){return b.replace(/&/g,"&amp;").replace(Ed,function(a){return"&#"+a.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Ob(b){var a=!1,c=za(b,b.push);return{start:function(b,e,g){b=E(b);!a&&Zb[b]&&(a=b);!a&&cc[b]==
!0&&(c("<"),c(b),k(e,function(a,b){var d=E(b);if(Fd[d]==!0&&(dc[d]!==!0||a.match(Gd)))c(" "),c(b),c('="'),c(bc(a)),c('"')}),c(g?"/>":">"))},end:function(b){b=E(b);!a&&cc[b]==!0&&(c("</"),c(b),c(">"));b==a&&(a=!1)},chars:function(b){a||c(bc(b))}}}function Hd(){this.$get=["$window",function(b){return b.Modernizr?b.Modernizr:{history:!(!b.history||!b.history.pushState),hashchange:"onhashchange"in b&&(!b.document.documentMode||b.document.documentMode>7)}}]}function Id(){this.$get=A(O)}function ec(b){var a=
{},c,d,e;if(!b)return a;k(b.split("\n"),function(b){e=b.indexOf(":");c=E(Q(b.substr(0,e)));d=Q(b.substr(e+1));c&&(a[c]?a[c]+=", "+d:a[c]=d)});return a}function fc(b){var a=H(b)?b:w;return function(c){a||(a=ec(b));return c?a[E(c)]||null:a}}function gc(b,a,c){if(G(c))return c(b,a);k(c,function(c){b=c(b,a)});return b}function Jd(){var b=/^\s*(\[|\{[^\{])/,a=/[\}\]]\s*$/,c=/^\)\]\}',?\n/,d=this.defaults={transformResponse:function(d){B(d)&&(d=d.replace(c,""),b.test(d)&&a.test(d)&&(d=cb(d,!0)));return d},
transformRequest:function(a){return H(a)&&Ya.apply(a)!=="[object File]"?ca(a):a},headers:{common:{Accept:"application/json, text/plain, */*","X-Requested-With":"XMLHttpRequest"},post:{"Content-Type":"application/json"},put:{"Content-Type":"application/json"}}},e=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,b,c,l,i,j){function m(a){function c(a){var b=t({},a,{data:gc(a.data,a.headers,g)});return 200<=a.status&&a.status<300?
b:i.reject(b)}a.method=ma(a.method);var e=a.transformRequest||d.transformRequest,g=a.transformResponse||d.transformResponse,h=d.headers,h=t({"X-XSRF-TOKEN":b.cookies()["XSRF-TOKEN"]},h.common,h[E(a.method)],a.headers),e=gc(a.data,fc(h),e),l;s(a.data)&&delete h["Content-Type"];l=n(a,e,h);l=l.then(c,c);k(v,function(a){l=a(l)});l.success=function(b){l.then(function(c){b(c.data,c.status,c.headers,a)});return l};l.error=function(b){l.then(null,function(c){b(c.data,c.status,c.headers,a)});return l};return l}
function n(b,c,d){function e(a,c,d){k&&(200<=a&&a<300?k.put(b.url,[a,c,ec(d)]):k.remove(b.url));f(c,a,d);l.$apply()}function f(a,c,d){c=Math.max(c,0);(200<=c&&c<300?j.resolve:j.reject)({data:a,status:c,headers:fc(d),config:b})}function h(){var a=xa(m.pendingRequests,b);a!==-1&&m.pendingRequests.splice(a,1)}var j=i.defer(),n=j.promise,k,v;m.pendingRequests.push(b);n.then(h,h);b.cache&&b.method=="GET"&&(k=H(b.cache)?b.cache:o);if(k)if(v=k.get(b.url))if(v.then)return v.then(h,h),v;else I(v)?f(v[1],v[0],
L(v[2])):f(v,200,{});else k.put(b.url,n);v||a(b.method,b.url,c,e,d,b.timeout);return n}var o=c("$http"),v=[];k(e,function(a){v.push(B(a)?j.get(a):j.invoke(a))});m.pendingRequests=[];(function(a){k(arguments,function(a){m[a]=function(b,c){return m(t(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){k(arguments,function(a){m[a]=function(b,c,d){return m(t(d||{},{method:a,url:b,data:c}))}})})("post","put");return m}]}function Kd(){this.$get=["$browser","$window","$document",function(b,
a,c){return Ld(b,Md,b.defer,a.angular.callbacks,c[0].body,a.location.protocol.replace(":",""))}]}function Ld(b,a,c,d,e,g){return function(f,h,l,i,j,m){function n(a,c,d,e){c=(h.match(Qb)||["",g])[1]=="file"?d?200:404:c;a(c==1223?204:c,d,e);b.$$completeOutstandingRequest(F)}b.$$incOutstandingRequestCount();h=h||b.url();if(E(f)=="jsonp"){var o="_"+(d.counter++).toString(36);d[o]=function(a){d[o].data=a};var v=b.addJs(h.replace("JSON_CALLBACK","angular.callbacks."+o),function(){d[o].data?n(i,200,d[o].data):
n(i,-2);delete d[o];e.removeChild(v)})}else{var r=new a;r.open(f,h,!0);k(j,function(a,b){a&&r.setRequestHeader(b,a)});var u;r.onreadystatechange=function(){r.readyState==4&&n(i,u||r.status,r.responseText,r.getAllResponseHeaders())};r.send(l||"");m>0&&c(function(){u=-1;r.abort()},m)}}}function Nd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,
maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",
longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return b===1?"one":"other"}}}}function P(b){G(b)&&(b={link:b});b.restrict=b.restrict||"AC";return A(b)}function hc(b,a){ic[$("ng-"+a)]=A(function(b,d,e){e.$observe($("ng-"+a),function(b){e.$set(a,b)})})}function jc(b,a){function c(a,c){c=c?"-"+ab(c,"-"):"";b.removeClass((a?Qa:Ra)+c).addClass((a?Ra:Qa)+c)}function d(a,b,d){a&&(ya(a,d||this),a.length||(f--,h[b]=!1,c(!0,b),g.$setValidity(b,
!0,e)))}var e=this,g=b.parent().controller("form")||Sa,f=0,h=e.$error={};e.$name=a.name;e.$dirty=!1;e.$pristine=!0;e.$valid=!0;e.$invalid=!1;g.$addControl(e);b.addClass(Ta);c(!0);e.$addControl=function(a){a.$name&&!e.hasOwnProperty(a.$name)&&(e[a.$name]=a)};e.$removeControl=function(a){a.$name&&e[a.$name]===a&&delete e[a.$name];k(h,d,a)};e.$setValidity=function(a,b,j){if(b){if(d(h[a],a,j),!f)c(b),e.$valid=!0,e.$invalid=!1}else{f||c(b);a:{if(b=h[a]){if(xa(b,j)!=-1)break a}else h[a]=b=[],f++,c(!1,a),
g.$setValidity(a,!1,e);b.push(j)}e.$valid=!1;e.$invalid=!0}};e.$setDirty=function(){b.removeClass(Ta).addClass(kc);e.$dirty=!0;e.$pristine=!1}}function T(b){return s(b)||b===""||b===null||b!==b}function Ua(b,a,c,d){a.bind("blur",function(){b.$apply(function(){d.$setViewValue(Q(a.val()))})});d.$render=function(){a.val(T(d.$viewValue)?"":d.$viewValue)};var e=c.ngPattern,g,f=function(a,b){return T(b)||a.test(b)?(d.$setValidity("pattern",!0),b):(d.$setValidity("pattern",!1),w)};e&&(e.match(/^\/(.*)\/$/)?
(e=RegExp(e.substr(1,e.length-2)),g=function(a){return f(e,a)}):g=function(a){var c=b.$eval(e);if(!c||!c.test)throw new C("Expected "+e+" to be a RegExp but was "+c);return f(c,a)},d.$formatters.push(g),d.$parsers.push(g));if(c.ngMinlength){var h=z(c.ngMinlength);g=function(a){return!T(a)&&a.length<h?(d.$setValidity("minlength",!1),w):(d.$setValidity("minlength",!0),a)};d.$parsers.push(g);d.$formatters.push(g)}if(c.ngMaxlength){var l=z(c.ngMaxlength),c=function(a){return!T(a)&&a.length>l?(d.$setValidity("maxlength",
!1),w):(d.$setValidity("maxlength",!0),a)};d.$parsers.push(c);d.$formatters.push(c)}}function pb(b,a){b="ngClass"+b;return P(function(c,d,e){c.$watch(e[b],function(b,e){if(a===!0||c.$index%2===a)e&&b!==e&&(H(e)&&!I(e)&&(e=Za(e,function(a,b){if(a)return b})),d.removeClass(I(e)?e.join(" "):e)),H(b)&&!I(b)&&(b=Za(b,function(a,b){if(a)return b})),b&&d.addClass(I(b)?b.join(" "):b)},!0)})}if(typeof U.getAttribute==Xa)U.getAttribute=function(){};var E=function(b){return B(b)?b.toLowerCase():b},ma=function(b){return B(b)?
b.toUpperCase():b},Ec="boolean",sc="length",tc="name",vc="object",wc="string",Xa="undefined",C=O.Error,ea=z((/msie (\d+)/.exec(E(navigator.userAgent))||[])[1]),p,la,ia=[].slice,ga=[].push,Ya=Object.prototype.toString,lc=O.angular||(O.angular={}),qa,Fb,X=["0","0","0"];F.$inject=[];va.$inject=[];Fb=ea<9?function(b){b=b.nodeName?b:b[0];return b.scopeName&&b.scopeName!="HTML"?ma(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var Ac=/[A-Z]/g,Od={full:"1.0.0rc2",
major:1,minor:0,dot:0,codeName:"silence-absorption"},Cc=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/,Hc=/^function\s*[^\(]*\(([^\)]*)\)/m,Ic=/,/,Jc=/^\s*(_?)(.+?)\1\s*$/,Gc=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ga={},Fa="ng-"+(new Date).getTime(),Nc=1,Pd=O.document.addEventListener?function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c)},gb=O.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,
!1)}:function(b,a,c){b.detachEvent("on"+a,c)},Lc=/([\:\-\_]+(.))/g,Mc=/^moz([A-Z])/,ta=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;this.bind("DOMContentLoaded",a);R(O).bind("load",a)},toString:function(){var b=[];k(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return b>=0?p(this[b]):p(this[this.length+b])},length:0,push:ga,sort:[].sort,splice:[].splice},Ka={};k("multiple,selected,checked,disabled,readOnly,required".split(","),function(b){Ka[E(b)]=
b});var Db={};k("input,select,option,textarea,button,form".split(","),function(b){Db[ma(b)]=!0});k({data:Ha,inheritedData:Ja,scope:function(b){return Ja(b,"$scope")},controller:Cb,injector:function(b){return Ja(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Ia,css:function(b,a,c){a=yb(a);if(y(c))b.style[a]=c;else{var d;ea<=8&&(d=b.currentStyle&&b.currentStyle[a],d===""&&(d="auto"));d=d||b.style[a];ea<=8&&(d=d===""?w:d);return d}},attr:function(b,a,c){var d=E(a);if(Ka[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)||F).specified?d:w;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),b===null?w:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:t(ea<9?function(b,a){if(b.nodeType==1){if(s(a))return b.innerText;b.innerText=a}else{if(s(a))return b.nodeValue;b.nodeValue=a}}:function(b,a){if(s(a))return b.textContent;b.textContent=a},{$dv:""}),val:function(b,a){if(s(a))return b.value;
b.value=a},html:function(b,a){if(s(a))return b.innerHTML;for(var c=0,d=b.childNodes;c<d.length;c++)ra(d[c]);b.innerHTML=a}},function(b,a){R.prototype[a]=function(a,d){var e,g;if((b.length==2&&b!==Ia&&b!==Cb?a:d)===w)if(H(a)){for(e=0;e<this.length;e++)for(g in a)b(this[e],g,a[g]);return this}else{if(this.length)return b(this[0],a,d)}else{for(e=0;e<this.length;e++)b(this[e],a,d);return this}return b.$dv}});k({removeData:zb,dealoc:ra,bind:function a(c,d,e){var g=Ha(c,"bind");g||Ha(c,"bind",g={});k(d.split(" "),
function(d){var h=g[d];if(!h)if(d=="mouseenter"||d=="mouseleave"){var l=g.mouseenter=ib(c),i=g.mouseleave=ib(c),j=0;a(c,"mouseover",function(a){j++;if(j==1)a.type="mouseenter",l(a)});a(c,"mouseout",function(a){j--;if(j==0)a.type="mouseleave",i(a)});h=g[d]}else h=g[d]=ib(c),Pd(c,d,h);h.fns.push(e)})},unbind:function(a,c,d){var e=Ha(a,"bind");e&&(s(c)?k(e,function(c,d){gb(a,d,c);delete e[d]}):s(d)?(gb(a,c,e[c]),delete e[c]):ya(e[c].fns,d))},replaceWith:function(a,c){var d,e=a.parentNode;ra(a);k(new R(c),
function(c){d?e.insertBefore(c,d.nextSibling):e.replaceChild(c,a);d=c})},children:function(a){var c=[];k(a.childNodes,function(a){a.nodeName!="#text"&&c.push(a)});return c},contents:function(a){return a.childNodes},append:function(a,c){k(new R(c),function(c){a.nodeType===1&&a.appendChild(c)})},prepend:function(a,c){if(a.nodeType===1){var d=a.firstChild;k(new R(c),function(c){d?a.insertBefore(c,d):(a.appendChild(c),d=c)})}},wrap:function(a,c){var c=p(c)[0],d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},
remove:function(a){ra(a);var c=a.parentNode;c&&c.removeChild(a)},after:function(a,c){var d=a,e=a.parentNode;k(new R(c),function(a){e.insertBefore(a,d.nextSibling);d=a})},addClass:Bb,removeClass:Ab,toggleClass:function(a,c,d){s(d)&&(d=!Ia(a,c));(d?Bb:Ab)(a,c)},parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},next:function(a){return a.nextSibling},find:function(a,c){return a.getElementsByTagName(c)},clone:fb},function(a,c){R.prototype[c]=function(c,e){for(var g,f=0;f<this.length;f++)g==
w?(g=a(this[f],c,e),g!==w&&(g=p(g))):eb(g,a(this[f],c,e));return g==w?this:g}});Ea.prototype={put:function(a,c){this[sa(a)]=c},get:function(a){return this[sa(a)]},remove:function(a){var c=this[a=sa(a)];delete this[a];return c}};jb.prototype={push:function(a,c){var d=this[a=sa(a)];d?d.push(c):this[a]=[c]},shift:function(a){var c=this[a=sa(a)];if(c)return c.length==1?(delete this[a],c[0]):c.shift()}};Eb.$inject=["$provide"];var Tc=/^(x[\:\-_]|data[\:\-_])/i;Hb.$inject=["$provide"];Ib.$inject=["$locale"];
Kb.$inject=["$locale"];var Nb=".",hd={yyyy:N("FullYear",4),yy:N("FullYear",2,0,!0),y:N("FullYear",1),MMMM:Ma("Month"),MMM:Ma("Month",!0),MM:N("Month",2,1),M:N("Month",1,1),dd:N("Date",2),d:N("Date",1),HH:N("Hours",2),H:N("Hours",1),hh:N("Hours",2,-12),h:N("Hours",1,-12),mm:N("Minutes",2),m:N("Minutes",1),ss:N("Seconds",2),s:N("Seconds",1),EEEE:Ma("Day"),EEE:Ma("Day",!0),a:function(a,c){return a.getHours()<12?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=a.getTimezoneOffset();return W(a/60,2)+W(Math.abs(a%
60),2)}},gd=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,fd=/^\d+$/;Jb.$inject=["$locale"];var dd=A(E),ed=A(ma);Lb.$inject=["$parse"];var Qb=/^(file|ftp|http|https):\/\/(\w+:{0,1}\w*@)?([\w\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,mc=/^([^\?#]*)?(\?([^#]*))?(#(.*))?$/,ld=mc,Rb={http:80,https:443,ftp:21};kb.prototype={$$replace:!1,absUrl:Oa("$$absUrl"),url:function(a,c){if(s(a))return this.$$url;var d=mc.exec(a);d[1]&&this.path(decodeURIComponent(d[1]));
if(d[2]||d[1])this.search(d[3]||"");this.hash(d[5]||"",c);return this},protocol:Oa("$$protocol"),host:Oa("$$host"),port:Oa("$$port"),path:Sb("$$path",function(a){return a.charAt(0)=="/"?a:"/"+a}),search:function(a,c){if(s(a))return this.$$search;y(c)?c===null?delete this.$$search[a]:this.$$search[a]=ja(c):this.$$search=B(a)?$a(a):a;this.$$compose();return this},hash:Sb("$$hash",va),replace:function(){this.$$replace=!0;return this}};lb.prototype=Wa(kb.prototype);var Pa={"null":function(){return null},
"true":function(){return!0},"false":function(){return!1},undefined:F,"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return(y(d)?d:0)+(y(e)?e:0)},"-":function(a,c,d,e){d=d(a,c);e=e(a,c);return(y(d)?d:0)-(y(e)?e:0)},"*":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)},"=":F,"==":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,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 e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},qd={n:"\n",f:"\u000c",r:"\r",t:"\t",v:"\u000b","'":"'",'"':'"'},mb={},ac=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,
$b=/^<\s*\/\s*([\w:-]+)[^>]*>/,zd=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,Bd=/^</,Ad=/^<\s*\//,Cd=/<\!--(.*?)--\>/g,Dd=/<!\[CDATA\[(.*?)]]\>/g,Gd=/^((ftp|https?):\/\/|mailto:|#)/,Ed=/([^\#-~| |!])/g,Yb=ba("area,br,col,hr,img,wbr"),ga=ba("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),nc=ba("rp,rt"),Xb=t({},nc,ga),Vb=t({},ga,ba("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),
Wb=t({},nc,ba("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),Zb=ba("script,style"),cc=t({},Yb,Vb,Wb,Xb),dc=ba("background,cite,href,longdesc,src,usemap"),Fd=t({},dc,ba("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,span,start,summary,target,title,type,valign,value,vspace,width")),
ob=U.createElement("pre"),Md=O.XMLHttpRequest||function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(c){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw new C("This browser does not support XMLHttpRequest.");},Qd=A({restrict:"E",compile:function(a,c){c.href||c.$set("href","");return function(a,c){c.bind("click",function(a){c.attr("href")||a.preventDefault()})}}}),ic={};k(Ka,hc);hc(null,"src");var Sa={$addControl:F,
$removeControl:F,$setValidity:F,$setDirty:F};jc.$inject=["$element","$attrs"];var ga={name:"form",restrict:"E",controller:jc,compile:function(){return{pre:function(a,c,d,e){d.action||c.bind("submit",function(a){a.preventDefault()});var g=c.parent().controller("form"),f=d.name||d.ngForm;f&&(a[f]=e);g&&c.bind("$destroy",function(){g.$removeControl(e);f&&(a[f]=w);t(e,Sa)})}}}},Rd=A(ga),Sd=A(t(L(ga),{restrict:"EAC"})),Td=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,
Ud=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,Vd=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,oc={text:Ua,number:function(a,c,d,e){Ua(a,c,d,e);e.$parsers.push(function(a){var c=T(a);return c||Vd.test(a)?(e.$setValidity("number",!0),a===""?null:c?a:parseFloat(a)):(e.$setValidity("number",!1),w)});e.$formatters.push(function(a){return T(a)?"":""+a});if(d.min){var g=parseFloat(d.min),a=function(a){return!T(a)&&a<g?(e.$setValidity("min",!1),w):(e.$setValidity("min",!0),a)};e.$parsers.push(a);e.$formatters.push(a)}if(d.max){var f=
parseFloat(d.max),d=function(a){return!T(a)&&a>f?(e.$setValidity("max",!1),w):(e.$setValidity("max",!0),a)};e.$parsers.push(d);e.$formatters.push(d)}e.$formatters.push(function(a){return T(a)||na(a)?(e.$setValidity("number",!0),a):(e.$setValidity("number",!1),w)})},url:function(a,c,d,e){Ua(a,c,d,e);a=function(a){return T(a)||Td.test(a)?(e.$setValidity("url",!0),a):(e.$setValidity("url",!1),w)};e.$formatters.push(a);e.$parsers.push(a)},email:function(a,c,d,e){Ua(a,c,d,e);a=function(a){return T(a)||
Ud.test(a)?(e.$setValidity("email",!0),a):(e.$setValidity("email",!1),w)};e.$formatters.push(a);e.$parsers.push(a)},radio:function(a,c,d,e){c.attr("name",d.id+"@"+d.name);c.bind("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})});e.$render=function(){var a=d.value;c[0].checked=y(a)&&a==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e){var g=d.ngTrueValue,f=d.ngFalseValue;B(g)||(g=!0);B(f)||(f=!1);c.bind("click",function(){a.$apply(function(){e.$setViewValue(c[0].checked)})});
e.$render=function(){c[0].checked=e.$viewValue};e.$formatters.push(function(a){return a===g});e.$parsers.push(function(a){return a?g:f})},hidden:F,button:F,submit:F,reset:F},pc=[function(){return{restrict:"E",require:"?ngModel",link:function(a,c,d,e){e&&(oc[E(d.type)]||oc.text)(a,c,d,e)}}}],Ra="ng-valid",Qa="ng-invalid",Ta="ng-pristine",kc="ng-dirty",Wd=["$scope","$exceptionHandler","$attrs","ngModel","$element",function(a,c,d,e,g){function f(a,c){c=c?"-"+ab(c,"-"):"";g.removeClass((a?Qa:Ra)+c).addClass((a?
Ra:Qa)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$render=F;this.$name=d.name;var h=g.inheritedData("$formController")||Sa,l=0,i=this.$error={};g.addClass(Ta);f(!0);this.$setValidity=function(a,c){if(i[a]!==!c){if(c){if(i[a]&&l--,!l)f(!0),this.$valid=!0,this.$invalid=!1}else f(!1),this.$invalid=!0,this.$valid=!1,l++;i[a]=!c;f(c,a);h.$setValidity(a,c,this)}};this.$setViewValue=
function(a){this.$viewValue=a;if(this.$pristine)this.$dirty=!0,this.$pristine=!1,g.removeClass(Ta).addClass(kc),h.$setDirty();k(this.$parsers,function(c){a=c(a)});if(this.$modelValue!==a)this.$modelValue=a,e(a),k(this.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};var j=this;a.$watch(function(){return e()},function(a){if(j.$modelValue!==a){var c=j.$formatters,d=c.length;for(j.$modelValue=a;d--;)a=c[d](a);if(j.$viewValue!==a)j.$viewValue=a,j.$render()}})}],Xd=[function(){return{inject:{ngModel:"accessor"},
require:["ngModel","^?form"],controller:Wd,link:function(a,c,d,e){var g=e[0],f=e[1]||Sa;f.$addControl(g);c.bind("$destroy",function(){f.$removeControl(g)})}}}],Yd=A({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),Zd=["$browser",function(a){return{require:"ngModel",link:function(c,d,e,g){var f=function(){c.$apply(function(){g.$setViewValue(Q(d.val()))})},h;d.bind("keydown",function(c){c=c.keyCode;c===91||15<c&&c<19||37<=c&&c<=40||h||(h=a.defer(function(){f();
h=null}))});d.bind("change input",f)}}}],qc=[function(){return{require:"?ngModel",link:function(a,c,d,e){if(e){var g=function(a){if(d.required&&(T(a)||a===!1))e.$setValidity("required",!1);else return e.$setValidity("required",!0),a};e.$formatters.push(g);e.$parsers.unshift(g);d.$observe("required",function(){g(e.$viewValue)})}}}}],$d=function(){return{require:"ngModel",link:function(a,c,d,e){var g=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",",f=function(a){var c=[];a&&k(a.split(g),function(a){a&&
c.push(Q(a))});return c};e.$parsers.push(f);e.$formatters.push(function(a){return I(a)&&!da(f(e.$viewValue),a)?a.join(", "):w})}}},ae=P(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBind);a.$watch(d.ngBind,function(a){c.text(a==w?"":a)})}),be=P(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBindHtmlUnsafe);a.$watch(d.ngBindHtmlUnsafe,function(a){c.html(a==w?"":a)})}),ce=["$sanitize",function(a){return function(c,d,e){d.addClass("ng-binding").data("$binding",e.ngBindHtml);
c.$watch(e.ngBindHtml,function(c){(c=a(c))&&d.html(c)})}}],de=["$interpolate",function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",c);e.$observe("ngBindTemplate",function(a){d.text(a)})}}],ee=["$interpolate",function(a){return function(c,d,e){var g={},f={};c.$watch(function(){var d=c.$eval(e.ngBindAttr),l;for(l in d){var i=d[l],i=(f[i]||(f[d[l]]=a(i)))(c);g[l]!==i&&e.$set(l,g[l]=i)}})}}],fe=pb("",!0),ge=pb("Odd",0),he=pb("Even",1),ie=P({compile:function(a,
c){c.$set("ngCloak",w);a.removeClass("ng-cloak")}}),je=["$controller","$window",function(){return{scope:!0,controller:"@"}}],rc={};k("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave".split(" "),function(a){var c=$("ng-"+a);rc[c]=["$parse",function(d){return function(e,g,f){var h=d(f[c]);g.bind(E(a),function(a){e.$apply(function(){h(e,{$event:a})})})}}]});var ke=P(function(a,c,d){c.bind("submit",function(){a.$apply(d.ngSubmit)})}),le=["$http","$templateCache","$anchorScroll",
"$compile",function(a,c,d,e){return{restrict:"EA",compile:function(g,f){var h=f.ngInclude||f.src,l=f.scope||"",i=f.onload||"",j=f.autoscroll;return function(f,g){function k(){v++}var v=0,r;f.$watch(h,k);f.$watch(function(){var a=f.$eval(l);if(a)return a.$id},k);f.$watch(function(){return v},function(k){function o(){k===v&&(r&&r.$destroy(),r=null,g.html(""))}var p=f.$eval(h),q=f.$eval(l);p?a.get(p,{cache:c}).success(function(a){k===v&&(g.html(a),r&&r.$destroy(),r=q?q:f.$new(),e(g.contents())(r),y(j)&&
(!j||f.$eval(j))&&d(),f.$emit("$includeContentLoaded"),f.$eval(i))}).error(o):o()})}}}}],me=P({compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),ne=P({terminal:!0,priority:1E3}),oe=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,g,f){var h=f.count,l=g.attr(f.$attr.when),i=f.offset||0,j=e.$eval(l),m={};k(j,function(a,e){m[e]=c(a.replace(d,"{{"+h+"-"+i+"}}"))});e.$watch(function(){var c=parseFloat(e.$eval(h));return isNaN(c)?"":(j[c]||(c=a.pluralCat(c-
i)),m[c](e,g,!0))},function(a){g.text(a)})}}}],pe=P({transclude:"element",priority:1E3,terminal:!0,compile:function(a,c,d){return function(a,c,f){var h=f.ngRepeat,f=h.match(/^\s*(.+)\s+in\s+(.*)\s*$/),l,i,j;if(!f)throw C("Expected ng-repeat in form of '_item_ in _collection_' but got '"+h+"'.");h=f[1];l=f[2];f=h.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!f)throw C("'item' in 'item in collection' should be identifier or (key, value) but got '"+h+"'.");i=f[3]||f[1];j=f[2];var m=new jb;
a.$watch(function(a){var e,f,h=a.$eval(l),k=xc(h,!0),p,w=new jb,q,t,x,s,y=c;if(I(h))x=h||[];else{x=[];for(q in h)h.hasOwnProperty(q)&&q.charAt(0)!="$"&&x.push(q);x.sort()}e=0;for(f=x.length;e<f;e++){q=h===x?e:x[e];t=h[q];if(s=m.shift(t)){p=s.scope;w.push(t,s);if(e!==s.index)s.index=e,y.after(s.element);y=s.element}else p=a.$new();p[i]=t;j&&(p[j]=q);p.$index=e;p.$position=e===0?"first":e==k-1?"last":"middle";s||d(p,function(a){y.after(a);s={scope:p,element:y=a,index:e};w.push(t,s)})}for(q in m)if(m.hasOwnProperty(q))for(x=
m[q];x.length;)t=x.pop(),t.element.remove(),t.scope.$destroy();m=w})}}}),qe=P(function(a,c,d){a.$watch(d.ngShow,function(a){c.css("display",Aa(a)?"":"none")})}),re=P(function(a,c,d){a.$watch(d.ngHide,function(a){c.css("display",Aa(a)?"none":"")})}),se=P(function(a,c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&k(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),te=A({restrict:"EA",compile:function(a,c){var d=c.ngSwitch||c.on,e={};a.data("ng-switch",e);return function(a,f){var h,l,i;a.$watch(d,function(d){l&&
(i.$destroy(),l.remove(),l=i=null);if(h=e["!"+d]||e["?"])a.$eval(c.change),i=a.$new(),h(i,function(a){l=a;f.append(a)})})}}}),ue=P({transclude:"element",priority:500,compile:function(a,c,d){a=a.inheritedData("ng-switch");oa(a);a["!"+c.ngSwitchWhen]=d}}),ve=P({transclude:"element",priority:500,compile:function(a,c,d){a=a.inheritedData("ng-switch");oa(a);a["?"]=d}}),we=P({controller:["$transclude","$element",function(a,c){a(function(a){c.append(a)})}]}),xe=["$http","$templateCache","$route","$anchorScroll",
"$compile","$controller",function(a,c,d,e,g,f){return{restrict:"ECA",terminal:!0,link:function(h,l,i){var j=0,k,n=i.onload||"";h.$on("$afterRouteChange",function(){j++});h.$watch(function(){return j},function(i){function v(){i==j&&l.html("");k&&(k.$destroy(),k=null)}var r=d.current&&d.current.template;r?a.get(r,{cache:c}).success(function(a){if(i==j){l.html(a);k&&(k.$destroy(),k=null);var a=g(l.contents()),c=d.current;k=c.scope=h.$new();c.controller&&l.contents().data("$ngControllerController",f(c.controller,
{$scope:k}));a(k);k.$emit("$viewContentLoaded");k.$eval(n);e()}}).error(v):v()})}}}],ye=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){d.type=="text/ng-template"&&a.put(d.id,c.text())}}}],ze=A({terminal:!0}),Ae=["$compile","$parse",function(a,c){var d=/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*)$/;return{restrict:"E",require:"?ngModel",link:function(e,g,f,
h){function l(a,c,d){d.$render=function(){c.val(d.$viewValue)};c.bind("change",function(){a.$apply(function(){d.$setViewValue(c.val())})})}function i(a,c,d){var e;d.$render=function(){var a=new Ea(d.$viewValue);k(c.children(),function(c){c.selected=y(a.get(c.value))})};a.$watch(function(){da(e,d.$viewValue)||(e=L(d.$viewValue),d.$render())});c.bind("change",function(){a.$apply(function(){var a=[];k(c.children(),function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function j(e,f,g){function h(){var a=
{"":[]},c=[""],d,i,k,n,p;k=g.$modelValue;n=y(e)||[];var C=o?qb(n):n,G,z,D;z={};p=!1;var H,I;if(m)p=new Ea(k);else if(k===null||A)a[""].push({selected:k===null,id:"",label:""}),p=!0;for(D=0;G=C.length,D<G;D++){z[l]=n[o?z[o]=C[D]:D];d=t(e,z)||"";if(!(i=a[d]))i=a[d]=[],c.push(d);m?d=p.remove(s(e,z))!=w:(d=k===s(e,z),p=p||d);i.push({id:o?C[D]:D,label:j(e,z)||"",selected:d})}!m&&!p&&a[""].unshift({id:"?",label:"",selected:!0});z=0;for(C=c.length;z<C;z++){d=c[z];i=a[d];if(B.length<=z)k={element:F.clone().attr("label",
d),label:i.label},n=[k],B.push(n),f.append(k.element);else if(n=B[z],k=n[0],k.label!=d)k.element.attr("label",k.label=d);H=null;D=0;for(G=i.length;D<G;D++)if(d=i[D],p=n[D+1]){H=p.element;if(p.label!==d.label)H.text(p.label=d.label);if(p.id!==d.id)H.val(p.id=d.id);if(p.element.selected!==d.selected)H.prop("selected",p.selected=d.selected)}else d.id===""&&A?I=A:(I=E.clone()).val(d.id).attr("selected",d.selected).text(d.label),n.push({element:I,label:d.label,id:d.id,selected:d.selected}),H?H.after(I):
k.element.append(I),H=I;for(D++;n.length>D;)n.pop().element.remove()}for(;B.length>z;)B.pop()[0].element.remove()}var i;if(!(i=n.match(d)))throw C("Expected ng-options in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '"+n+"'.");var j=c(i[2]||i[1]),l=i[4]||i[6],o=i[5],t=c(i[3]||""),s=c(i[2]?i[1]:l),y=c(i[7]),E=p(U.createElement("option")),F=p(U.createElement("optgroup")),A=!1,B=[[{element:f,label:""}]];k(f.children(),function(c){c.value==""&&(A=p(c).remove(),a(A)(e))});
f.html("");f.bind("change",function(){e.$apply(function(){var a,c=y(e)||[],d={},h,i,j,k,n,p;if(m){i=[];k=0;for(p=B.length;k<p;k++){a=B[k];j=1;for(n=a.length;j<n;j++)if((h=a[j].element)[0].selected)h=h.val(),o&&(d[o]=h),d[l]=c[h],i.push(s(e,d))}}else h=f.val(),h=="?"?i=w:h==""?i=null:(d[l]=c[h],o&&(d[o]=h),i=s(e,d));g.$setViewValue(i)})});g.$render=h;e.$watch(h)}if(h){var m=f.multiple,n=f.ngOptions;if(m&&(f.required||f.ngRequired)){var o=function(a){h.$setValidity("required",!f.required||a&&a.length);
return a};h.$parsers.push(o);h.$formatters.unshift(o);f.$observe("required",function(){o(h.$viewValue)})}n?j(e,g,h):m?i(e,g,h):l(e,g,h)}}}}],Be=["$interpolate",function(a){return{restrict:"E",priority:100,compile:function(c,d){if(s(d.value)){var e=a(c.text(),!0);if(e)return function(a,c,d){a.$watch(e,function(a){d.$set("value",a)})};else d.$set("value",c.text())}}}}],Ce=A({restrict:"E",terminal:!0});(la=O.jQuery)?(p=la,t(la.fn,{scope:ta.scope,controller:ta.controller,injector:ta.injector,inheritedData:ta.inheritedData}),
db("remove",!0),db("empty"),db("html")):p=R;lc.element=p;(function(a){t(a,{bootstrap:ub,copy:L,extend:t,equals:da,element:p,forEach:k,injector:vb,noop:F,bind:za,toJson:ca,fromJson:cb,identity:va,isUndefined:s,isDefined:y,isString:B,isFunction:G,isObject:H,isNumber:na,isElement:sb,isArray:I,version:Od,isDate:ha,lowercase:E,uppercase:ma,callbacks:{counter:0}});qa=Bc(O);try{qa("ngLocale")}catch(c){qa("ngLocale",[]).provider("$locale",Nd)}qa("ng",["ngLocale"],["$provide",function(a){a.provider("$compile",
Eb).directive({a:Qd,input:pc,textarea:pc,form:Rd,script:ye,select:Ae,style:Ce,option:Be,ngBind:ae,ngBindHtml:ce,ngBindHtmlUnsafe:be,ngBindTemplate:de,ngBindAttr:ee,ngClass:fe,ngClassEven:he,ngClassOdd:ge,ngCloak:ie,ngController:je,ngForm:Sd,ngHide:re,ngInclude:le,ngInit:me,ngNonBindable:ne,ngPluralize:oe,ngRepeat:pe,ngShow:qe,ngSubmit:ke,ngStyle:se,ngSwitch:te,ngSwitchWhen:ue,ngSwitchDefault:ve,ngOptions:ze,ngView:xe,ngTransclude:we,ngModel:Xd,ngList:$d,ngChange:Yd,ngModelInstant:Zd,required:qc,ngRequired:qc}).directive(ic).directive(rc);
a.provider({$anchorScroll:Oc,$browser:Qc,$cacheFactory:Rc,$controller:Uc,$cookies:Wc,$cookieStore:Vc,$defer:Xc,$document:Yc,$exceptionHandler:Zc,$filter:Hb,$interpolate:id,$http:Jd,$httpBackend:Kd,$location:md,$log:nd,$parse:rd,$resource:od,$route:ud,$routeParams:vd,$rootScope:wd,$q:sd,$sanitize:xd,$sniffer:Hd,$templateCache:Sc,$window:Id})}])})(lc);R(U).ready(function(){zc(U,ub)})})(window,document);angular.element(document).find("head").append('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}</style>');
'use strict';(function(W,X,r){function l(b,a,c){var d;if(b)if(K(b))for(d in b)d!="prototype"&&d!=oc&&d!=pc&&b.hasOwnProperty(d)&&a.call(c,b[d],d);else if(b.forEach&&b.forEach!==l)b.forEach(a,c);else if(L(b)&&ta(b.length))for(d=0;d<b.length;d++)a.call(c,b[d],d);else for(d in b)b.hasOwnProperty(d)&&a.call(c,b[d],d);return b}function qb(b){var a=[],c;for(c in b)b.hasOwnProperty(c)&&a.push(c);return a.sort()}function qc(b,a,c){for(var d=qb(b),e=0;e<d.length;e++)a.call(c,b[d[e]],d[e]);return d}function rb(b){return function(a,
c){b(c,a)}}function Sa(){for(var b=Z.length,a;b;){b--;a=Z[b].charCodeAt(0);if(a==57)return Z[b]="A",Z.join("");if(a==90)Z[b]="0";else return Z[b]=String.fromCharCode(a+1),Z.join("")}Z.unshift("0");return Z.join("")}function u(b){l(arguments,function(a){a!==b&&l(a,function(a,d){b[d]=a})});return b}function w(b){return parseInt(b,10)}function Ta(b,a){return u(new (u(function(){},{prototype:b})),a)}function s(){}function ua(b){return b}function z(b){return function(){return b}}function B(b){return typeof b==
Ua}function v(b){return typeof b!=Ua}function L(b){return b!=null&&typeof b==rc}function x(b){return typeof b==sc}function ta(b){return typeof b=="number"}function ja(b){return Va.apply(b)=="[object Date]"}function H(b){return Va.apply(b)=="[object Array]"}function K(b){return typeof b=="function"}function ka(b){return b&&b.document&&b.location&&b.alert&&b.setInterval}function Q(b){return x(b)?b.replace(/^\s*/,"").replace(/\s*$/,""):b}function tc(b){return b&&(b.nodeName||b.bind&&b.find)}function $(b){var a=
{},b=b.split(","),c;for(c=0;c<b.length;c++)a[b[c]]=!0;return a}function Wa(b,a,c){var d=[];l(b,function(b,g,f){d.push(a.call(c,b,g,f))});return d}function uc(b,a){var c=0,d;if(H(b)||x(b))return b.length;else if(L(b))for(d in b)(!a||b.hasOwnProperty(d))&&c++;return c}function Xa(b,a){if(b.indexOf)return b.indexOf(a);for(var c=0;c<b.length;c++)if(a===b[c])return c;return-1}function va(b,a){var c=Xa(b,a);c>=0&&b.splice(c,1);return a}function Y(b,a){if(ka(b)||b&&b.$evalAsync&&b.$watch)throw A("Can't copy Window or Scope");
if(a){if(b===a)throw A("Can't copy equivalent objects or arrays");if(H(b)){for(;a.length;)a.pop();for(var c=0;c<b.length;c++)a.push(Y(b[c]))}else for(c in l(a,function(b,c){delete a[c]}),b)a[c]=Y(b[c])}else(a=b)&&(H(b)?a=Y(b,[]):ja(b)?a=new Date(b.getTime()):L(b)&&(a=Y(b,{})));return a}function vc(b,a){var a=a||{},c;for(c in b)b.hasOwnProperty(c)&&c.substr(0,2)!=="$$"&&(a[c]=b[c]);return a}function ca(b,a){if(b===a)return!0;if(b===null||a===null)return!1;if(b!==b&&a!==a)return!0;var c=typeof b,d;
if(c==typeof a&&c=="object")if(H(b)){if((c=b.length)==a.length){for(d=0;d<c;d++)if(!ca(b[d],a[d]))return!1;return!0}}else if(ja(b))return ja(a)&&b.getTime()==a.getTime();else{if(b&&b.$evalAsync&&b.$watch||a&&a.$evalAsync&&a.$watch||ka(b)||ka(a))return!1;c={};for(d in b){if(d.charAt(0)!=="$"&&!K(b[d])&&!ca(b[d],a[d]))return!1;c[d]=!0}for(d in a)if(!c[d]&&d.charAt(0)!=="$"&&!K(a[d]))return!1;return!0}return!1}function wa(b,a){var c=arguments.length>2?fa.call(arguments,2):[];return K(a)&&!(a instanceof
RegExp)?c.length?function(){return arguments.length?a.apply(b,c.concat(fa.call(arguments,0))):a.apply(b,c)}:function(){return arguments.length?a.apply(b,arguments):a.call(b)}:a}function wc(b,a){var c=a;/^\$+/.test(b)?c=r:ka(a)?c="$WINDOW":a&&X===a?c="$DOCUMENT":a&&a.$evalAsync&&a.$watch&&(c="$SCOPE");return c}function aa(b,a){return JSON.stringify(b,wc,a?" ":null)}function sb(b){return x(b)?JSON.parse(b):b}function Ya(b){b&&b.length!==0?(b=C(""+b),b=!(b=="f"||b=="0"||b=="false"||b=="no"||b=="n"||
b=="[]")):b=!1;return b}function xa(b){b=p(b).clone();try{b.html("")}catch(a){}return p("<div>").append(b).html().match(/^(<[^>]+>)/)[1]}function Za(b){var a={},c,d;l((b||"").split("&"),function(b){b&&(c=b.split("="),d=decodeURIComponent(c[0]),a[d]=v(c[1])?decodeURIComponent(c[1]):!0)});return a}function tb(b){var a=[];l(b,function(b,d){a.push(ya(d,!0)+(b===!0?"":"="+ya(b,!0)))});return a.length?a.join("&"):""}function $a(b){return ya(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,
"+")}function ya(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(a?null:/%20/g,"+")}function xc(b,a){function c(a){a&&d.push(a)}var d=[b],e,g,f=["ng:app","ng-app","x-ng-app","data-ng-app"],h=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;l(f,function(a){f[a]=!0;c(X.getElementById(a));a=a.replace(":","\\:");b.querySelectorAll&&(l(b.querySelectorAll("."+a),c),l(b.querySelectorAll("."+a+"\\:"),c),l(b.querySelectorAll("["+a+"]"),c))});
l(d,function(a){if(!e){var b=h.exec(" "+a.className+" ");b?(e=a,g=(b[2]||"").replace(/\s+/g,",")):l(a.attributes,function(b){if(!e&&f[b.name])e=a,g=b.value})}});e&&a(e,g?[g]:[])}function ub(b,a){b=p(b);a=a||[];a.unshift("ng");var c=vb(a);c.invoke(["$rootScope","$compile","$injector",function(a,c,g){a.$apply(function(){b.data("$injector",g);c(b)(a)})}]);return c}function ab(b,a){a=a||"_";return b.replace(yc,function(b,d){return(d?a:"")+b.toLowerCase()})}function la(b,a,c){if(!b)throw new A("Argument '"+
(a||"?")+"' is "+(c||"required"));return b}function ma(b,a,c){c&&H(b)&&(b=b[b.length-1]);la(K(b),a,"not a function, got "+(b&&typeof b=="object"?b.constructor.name||"Object":typeof b));return b}function zc(b){function a(a,b,e){return a[b]||(a[b]=e())}return a(a(b,"angular",Object),"module",function(){var b={};return function(d,e,g){e&&b.hasOwnProperty(d)&&(b[d]=null);return a(b,d,function(){function a(c,d,e){return function(){b[e||"push"]([c,d,arguments]);return k}}if(!e)throw A("No module: "+d);
var b=[],c=[],j=a("$injector","invoke"),k={_invokeQueue:b,_runBlocks:c,requires:e,name:d,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:j,run:function(a){c.push(a);return this}};g&&j(g);return k})}})}function wb(b){return b.replace(Ac,function(a,
b,d,e){return e?d.toUpperCase():d}).replace(Bc,"Moz$1")}function bb(b,a){function c(){var e;for(var b=[this],c=a,f,h,i,j,k,m,o;b.length;){f=b.shift();h=0;for(i=f.length;h<i;h++){j=p(f[h]);c?(o=(k=j.data("events"))&&k.$destroy)&&l(o,function(a){a.handler()}):c=!c;k=0;for(e=(m=j.children()).length,j=e;k<j;k++)b.push(ga(m[k]))}}return d.apply(this,arguments)}var d=ga.fn[b],d=d.$original||d;c.$original=d;ga.fn[b]=c}function S(b){if(b instanceof S)return b;if(!(this instanceof S)){if(x(b)&&b.charAt(0)!=
"<")throw A("selectors not implemented");return new S(b)}if(x(b)){var a=X.createElement("div");a.innerHTML="<div>&nbsp;</div>"+b;a.removeChild(a.firstChild);cb(this,a.childNodes);this.remove()}else cb(this,b)}function db(b){return b.cloneNode(!0)}function na(b){xb(b);for(var a=0,b=b.childNodes||[];a<b.length;a++)na(b[a])}function xb(b){var a=b[za],c=Aa[a];c&&(c.bind&&l(c.bind,function(a,c){c=="$destroy"?a({}):eb(b,c,a)}),delete Aa[a],b[za]=r)}function Ba(b,a,c){var d=b[za],d=Aa[d||-1];if(v(c))d||
(b[za]=d=Cc++,d=Aa[d]={}),d[a]=c;else return d?d[a]:null}function Ca(b,a){return(" "+b.className+" ").replace(/[\n\t]/g," ").indexOf(" "+a+" ")>-1}function yb(b,a){a&&l(a.split(" "),function(a){b.className=Q((" "+b.className+" ").replace(/[\n\t]/g," ").replace(" "+Q(a)+" "," "))})}function zb(b,a){a&&l(a.split(" "),function(a){if(!Ca(b,a))b.className=Q(b.className+" "+Q(a))})}function cb(b,a){if(a)for(var a=!a.nodeName&&v(a.length)&&!ka(a)?a:[a],c=0;c<a.length;c++)b.push(a[c])}function Ab(b,a){return Da(b,
"$"+(a||"ngController")+"Controller")}function Da(b,a,c){b=p(b);for(b[0].nodeType==9&&(b=b.find("html"));b.length;){if(c=b.data(a))return c;b=b.parent()}}function Bb(b,a){return Cb[b.nodeName]&&Ea[a.toLowerCase()]}function fb(b){var a=function(c){if(!c.preventDefault)c.preventDefault=function(){c.returnValue=!1};if(!c.stopPropagation)c.stopPropagation=function(){c.cancelBubble=!0};if(!c.target)c.target=c.srcElement||X;if(B(c.defaultPrevented)){var d=c.preventDefault;c.preventDefault=function(){c.defaultPrevented=
!0;d.call(c)};c.defaultPrevented=!1}c.isDefaultPrevented=function(){return c.defaultPrevented};l(a.fns,function(a){a.call(b,c)});da<8?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)};a.fns=[];return a}function oa(b){var a=typeof b,c;if(a=="object"&&b!==null)if(typeof(c=b.$$hashKey)=="function")c=b.$$hashKey();else{if(c===r)c=b.$$hashKey=Sa()}else c=b;return a+":"+c}function Fa(b){l(b,this.put,this)}
function gb(){}function Dc(b){ma(b);if(!b.$inject){var a=b.$inject=[],c=b.toString().replace(Ec,"").match(Fc);l(c[1].split(Gc),function(b){b.replace(Hc,function(b,c,d){a.push(d)})})}return b.$inject}function vb(b){function a(a){return function(b,c){if(L(b))l(b,rb(a));else return a(b,c)}}function c(a,b){K(b)&&(b=m.instantiate(b));if(!b.$get)throw A("Provider "+a+" must define $get factory method.");return k[a+h]=b}function d(a,b){return c(a,{$get:b})}function e(a){var b=[];l(a,function(a){if(!j.get(a))if(j.put(a,
!0),x(a)){var c=pa(a);b=b.concat(e(c.requires)).concat(c._runBlocks);try{for(var d=c._invokeQueue,c=0,f=d.length;c<f;c++){var g=d[c],i=g[0]=="$injector"?m:m.get(g[0]);i[g[1]].apply(i,g[2])}}catch(h){throw h.message&&(h.message+=" from "+a),h;}}else if(K(a))try{b.push(m.invoke(a))}catch(k){throw k.message&&(k.message+=" from "+a),k;}else if(H(a))try{b.push(m.invoke(a))}catch(n){throw n.message&&(n.message+=" from "+String(a[a.length-1])),n;}else ma(a,"module")});return b}function g(a,b){function c(d){if(typeof d!==
"string")throw A("Service name expected");if(a.hasOwnProperty(d)){if(a[d]===f)throw A("Circular dependency: "+i.join(" <- "));return a[d]}else try{return i.unshift(d),a[d]=f,a[d]=b(d)}finally{i.shift()}}function d(a,b,e){var f=[],g,j,h;typeof a=="function"?(g=Dc(a),j=g.length):(H(a)&&(g=a,j=g.length-1,a=g[j]),ma(a,"fn"));for(var k=0;k<j;k++)h=g[k],f.push(e&&e.hasOwnProperty(h)?e[h]:c(h,i));switch(b?-1:f.length){case 0:return a();case 1:return a(f[0]);case 2:return a(f[0],f[1]);case 3:return a(f[0],
f[1],f[2]);case 4:return a(f[0],f[1],f[2],f[3]);case 5:return a(f[0],f[1],f[2],f[3],f[4]);case 6:return a(f[0],f[1],f[2],f[3],f[4],f[5]);case 7:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6]);case 8:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7]);case 9:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8]);case 10:return a(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9]);default:return a.apply(b,f)}}return{invoke:d,instantiate:function(a,b){var c=function(){},e;c.prototype=(H(a)?a[a.length-1]:a).prototype;
c=new c;e=d(a,c,b);return L(e)?e:c},get:c}}var f={},h="Provider",i=[],j=new Fa,k={$provide:{provider:a(c),factory:a(d),service:a(function(a,b){return d(a,["$injector",function(a){return a.instantiate(b)}])}),value:a(function(a,b){return d(a,z(b))}),constant:a(function(a,b){k[a]=b;o[a]=b}),decorator:function(a,b){var c=m.get(a+h),d=c.$get;c.$get=function(){var a=n.invoke(d,c);return n.invoke(b,null,{$delegate:a})}}}},m=g(k,function(){throw A("Unknown provider: "+i.join(" <- "));}),o={},n=o.$injector=
g(o,function(a){a=m.get(a+h);return n.invoke(a.$get,a)});l(e(b),function(a){n.invoke(a||s)});return n}function Ic(){var b=!0;this.disableAutoScrolling=function(){b=!1};this.$get=["$window","$location","$rootScope",function(a,c,d){function e(a){var b=null;l(a,function(a){!b&&C(a.nodeName)==="a"&&(b=a)});return b}function g(){var b=c.hash(),d;b?(d=f.getElementById(b))?d.scrollIntoView():(d=e(f.getElementsByName(b)))?d.scrollIntoView():b==="top"&&a.scrollTo(0,0):a.scrollTo(0,0)}var f=a.document;b&&d.$watch(function(){return c.hash()},
function(){d.$evalAsync(g)});return g}]}function Jc(b,a,c,d,e){function g(a){try{a.apply(null,fa.call(arguments,1))}finally{if(q--,q===0)for(;y.length;)try{y.pop()()}catch(b){d.error(b)}}}function f(a,b){(function F(){l(t,function(a){a()});M=b(F,a)})()}function h(){N!=i.url()&&(N=i.url(),l(J,function(a){a(i.url())}))}var i=this,j=a[0],k=b.location,m=b.history,o=b.setTimeout,n=b.clearTimeout,I={};i.isMock=!1;var q=0,y=[];i.$$completeOutstandingRequest=g;i.$$incOutstandingRequestCount=function(){q++};
i.notifyWhenNoOutstandingRequests=function(a){l(t,function(a){a()});q===0?a():y.push(a)};var t=[],M;i.addPollFn=function(a){B(M)&&f(100,o);t.push(a);return a};var N=k.href;i.url=function(a,b){return a?(N=a,e.history?b?m.replaceState(null,"",a):m.pushState(null,"",a):b?k.replace(a):k.href=a,i):k.href};var J=[],D=!1;i.onUrlChange=function(a){D||(e.history&&p(b).bind("popstate",h),e.hashchange?p(b).bind("hashchange",h):i.addPollFn(h),D=!0);J.push(a);return a};var T={},P="";i.cookies=function(a,b){var c,
e,f,g;if(a)if(b===r)j.cookie=escape(a)+"=;expires=Thu, 01 Jan 1970 00:00:00 GMT";else{if(x(b))j.cookie=escape(a)+"="+escape(b),c=a.length+b.length+1,c>4096&&d.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+c+" > 4096 bytes)!"),T.length>20&&d.warn("Cookie '"+a+"' possibly not set or overflowed because too many cookies were already set ("+T.length+" > 20 )")}else{if(j.cookie!==P){P=j.cookie;c=P.split("; ");T={};for(f=0;f<c.length;f++)e=c[f],g=e.indexOf("="),g>0&&(T[unescape(e.substring(0,
g))]=unescape(e.substring(g+1)))}return T}};i.defer=function(a,b){var c;q++;c=o(function(){delete I[c];g(a)},b||0);I[c]=!0;return c};i.defer.cancel=function(a){return I[a]?(delete I[a],n(a),g(s),!0):!1};i.addCss=function(a){var b=p(j.createElement("link"));b.attr("rel","stylesheet");b.attr("type","text/css");b.attr("href",a);c.append(b)};i.addJs=function(a,b){var d=j.createElement("script");d.type="text/javascript";d.src=a;if(da)d.onreadystatechange=function(){/loaded|complete/.test(d.readyState)&&
b&&b()};else if(b)d.onload=d.onerror=b;c[0].appendChild(d);return d};i.baseHref=function(){var b=a.find("base").attr("href");return b?b.replace(/^https?\:\/\/[^\/]*/,""):b}}function Kc(){this.$get=["$window","$log","$sniffer","$document",function(b,a,c,d){return new Jc(b,d,d.find("body"),a,c)}]}function Lc(){this.$get=function(){function b(b,d){function e(a){if(a!=m){if(o){if(o==a)o=a.n}else o=a;g(a.n,a.p);g(a,m);m=a;m.n=null}}function g(a,b){if(a!=b){if(a)a.p=b;if(b)b.n=a}}if(b in a)throw A("cacheId "+
b+" taken");var f=0,h=u({},d,{id:b}),i={},j=d&&d.capacity||Number.MAX_VALUE,k={},m=null,o=null;return a[b]={put:function(a,b){var c=k[a]||(k[a]={key:a});e(c);B(b)||(a in i||f++,i[a]=b,f>j&&this.remove(o.key))},get:function(a){var b=k[a];if(b)return e(b),i[a]},remove:function(a){var b=k[a];if(b==m)m=b.p;if(b==o)o=b.n;g(b.n,b.p);delete k[a];delete i[a];f--},removeAll:function(){i={};f=0;k={};m=o=null},destroy:function(){k=h=i=null;delete a[b]},info:function(){return u({},h,{size:f})}}}var a={};b.info=
function(){var b={};l(a,function(a,e){b[e]=a.info()});return b};b.get=function(b){return a[b]};return b}}function Mc(){this.$get=["$cacheFactory",function(b){return b("templates")}]}function Db(b){var a={},c="Directive",d=/^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,e=/(([\d\w\-_]+)(?:\:([^;]+))?;?)/,g=/\<\<content\>\>/i,f=/^\<[\s\S]*\>$/;this.directive=function i(d,e){x(d)?(la(e,"directive"),a.hasOwnProperty(d)||(a[d]=[],b.factory(d+c,["$injector","$exceptionHandler",function(b,c){var e=[];l(a[d],function(a){try{var f=
b.invoke(a);if(K(f))f={compile:z(f)};else if(!f.compile&&f.link)f.compile=z(f.link);f.priority=f.priority||0;f.name=f.name||d;f.require=f.require||f.controller&&f.name;f.restrict=f.restrict||"A";e.push(f)}catch(g){c(g)}});return e}])),a[d].push(e)):l(d,rb(i));return this};this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller",function(b,j,k,m,o,n,I){function q(a,b,c){a instanceof p||(a=p(a));l(a,function(b,c){b.nodeType==3&&(a[c]=p(b).wrap("<span>").parent()[0])});
var d=M(a,b,a,c);return function(b,c){la(b,"scope");var e=c?ra.clone.call(a):a;t(e.data("$scope",b),"ng-scope");c&&c(e,b);d&&d(b,e,e);return e}}function y(a,b){throw A("Unsupported '"+b+"' for '"+a+"'.");}function t(a,b){try{a.addClass(b)}catch(c){}}function M(a,b,c,d){function e(a,c,d,g){if(f.length!=c.length*2)throw A("Template changed structure!");for(var i,j,k,m,o,R=0,n=0,Nc=f.length;R<Nc;n++)k=c[n],j=f[R++],i=f[R++],j?(j.scope?(m=a.$new(L(j.scope)),p(k).data("$scope",m)):m=a,(o=j.transclude)||
!g&&b?j(i,m,k,d,function(b){return function(c){var d=a.$new();return b(d,c).bind("$destroy",wa(d,d.$destroy))}}(o||b)):j(i,m,k,r,g)):i&&i(a,k.childNodes,r,g)}for(var f=[],g,i,j,k=0,m=a.length;k<m;k++)i=new ha,g=N(a[k],[],i,d),i=(g=g.length?J(g,a[k],i,b,c):null)&&g.terminal?null:M(a[k].childNodes,g?g.transclude:b),f.push(g),f.push(i),j=j||g||i;return j?e:null}function N(a,b,c,f){var g=c.$attr;switch(a.nodeType){case 1:D(b,ba(Eb(a).toLowerCase()),"E",f);for(var i,j,k,m=a.attributes,o=0,n=m&&m.length;o<
n;o++)if(i=m[o],i.specified)j=i.name,k=ba(j.toLowerCase()),g[k]=j,c[k]=i=Q(da&&j=="href"?decodeURIComponent(a.getAttribute(j,2)):i.value),Bb(a,k)&&(c[k]=!0),F(a,b,i,k),D(b,k,"A",f);g=a.className;if(x(g))for(;a=e.exec(g);)k=ba(a[2]),D(b,k,"C",f)&&(c[k]=Q(a[3])),g=g.substr(a.index+a[0].length);break;case 3:B(b,a.nodeValue);break;case 8:if(a=d.exec(a.nodeValue))k=ba(a[1]),D(b,k,"M",f)&&(c[k]=Q(a[2]))}b.sort(Ga);return b}function J(a,b,c,d,e){function f(a,b){if(a)a.require=G.require,o.push(a);if(b)b.require=
G.require,n.push(b)}function i(a,b){var c,d="data",e=!1;if(x(a)){for(;(c=a.charAt(0))=="^"||c=="?";)a=a.substr(1),c=="^"&&(d="inheritedData"),e=e||c=="?";c=b[d]("$"+a+"Controller");if(!c&&!e)throw A("No controller: "+a);}else H(a)&&(c=[],l(a,function(a){c.push(i(a,b))}));return c}function j(a,d,e,f,g){var m,R,q,t,Ia;m=b===e?c:vc(c,new ha(p(e),c.$attr));R=m.$$element;J&&L(J.scope)&&l(J.scope,function(a,b){(U[a]||y)(b,a,d.$parent||d,d,m)});z&&l(z,function(a){var b={$scope:d,$element:R,$attrs:m,$transclude:g};
l(a.inject||{},function(a,c){(U[a]||y)(c,a,J?d.$parent||d:d,b,m)});Ia=a.controller;Ia=="@"&&(Ia=m[a.name]);R.data("$"+a.name+"Controller",I(Ia,b))});f=0;for(q=o.length;f<q;f++)try{t=o[f],t(d,R,m,t.require&&i(t.require,R))}catch(D){k(D,xa(R))}a&&a(d,e.childNodes,r,g);f=0;for(q=n.length;f<q;f++)try{t=n[f],t(d,R,m,t.require&&i(t.require,R))}catch(Oc){k(Oc,xa(R))}}for(var m=-Number.MAX_VALUE,o=[],n=[],J=null,D=null,M=null,Ga=null,F=c.$$element=p(b),G,u,s,B,C=d,z,v,w=0,E=a.length;w<E;w++){G=a[w];s=r;if(m>
G.priority)break;if(s=G.scope)qa("isolated scope",D,G,F),L(s)&&(t(F,"ng-isolate-scope"),D=G),t(F,"ng-scope"),J=J||G;u=G.name;if(s=G.controller)z=z||{},qa("'"+u+"' controller",z[u],G,F),z[u]=G;if(s=G.transclude)qa("transclusion",B,G,F),B=G,m=G.priority,s=="element"?(s=p(b),b=(F=c.$$element=p("<\!-- "+u+": "+c[u]+" --\>"))[0],Ha(e,p(s[0]),b),C=q(s,d,m)):(s=p(db(b)),F.html(""),C=q(s.contents(),d));if(s=G.template)qa("template",M,G,F),M=G,u=s.replace(g,F.html()),b=p(u)[0],G.replace?(Ha(e,F,b),E={$attr:{}},
a=a.concat(N(b,a.splice(w+1,a.length-(w+1)),E)),T(c,E),E=a.length):F.html(u);if(G.templateUrl)qa("template",M,G,F),M=G,Ga=P(a.splice(w,a.length-w),j,F,c,e,G.replace,C),E=a.length;else if(G.compile)try{v=G.compile(F,c,C),K(v)?f(null,v):v&&f(v.pre,v.post)}catch(O){k(O,xa(F))}if(G.terminal)j.terminal=!0,m=Math.max(m,G.priority)}v=Ga||j;v.scope=J&&J.scope;v.transclude=B&&C;return v}function D(d,e,f,g){var j=!1;if(a.hasOwnProperty(e))for(var m,e=b.get(e+c),o=0,n=e.length;o<n;o++)try{if(m=e[o],(g===r||
g>m.priority)&&m.restrict.indexOf(f)!=-1)d.push(m),j=!0}catch(q){k(q)}return j}function T(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;l(a,function(d,e){e.charAt(0)!="$"&&(b[e]&&(d+=(e==="style"?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});l(b,function(b,f){f=="class"?t(e,b):f=="style"?e.attr("style",e.attr("style")+";"+b):f.charAt(0)!="$"&&!a.hasOwnProperty(f)&&(a[f]=b,d[f]=c[f])})}function P(a,b,c,d,e,i,j){var k=[],n,q,y=c[0],U=a.shift(),I=u({},U,{templateUrl:null,transclude:null}),t=c.html();c.html("");
m.get(U.templateUrl,{cache:o}).success(function(m){m=Q(m).replace(g,t);if(i&&!m.match(f))throw A("Template must have exactly one root element: "+m);var o,U;i?(U={$attr:{}},o=p(m)[0],Ha(e,c,o),N(c[0],a,U),T(d,U)):(o=c[0],c.html(m));a.unshift(I);n=J(a,c,d,j);for(q=M(c.contents(),j);k.length;){var l=k.pop(),m=k.pop();U=k.pop();var ha=k.pop(),D=o;U!==y&&(D=db(o),Ha(m,p(U),D));n(function(){b(q,ha,D,e,l)},ha,D,e,l)}k=null}).error(function(a,b,c,d){throw A("Failed to load template: "+d.url);});return function(a,
c,d,e,f){k?(k.push(c),k.push(d),k.push(e),k.push(f)):n(function(){b(q,c,d,e,f)},c,d,e,f)}}function Ga(a,b){return b.priority-a.priority}function qa(a,b,c,d){if(b)throw A("Multiple directives ["+b.name+", "+c.name+"] asking for "+a+" on: "+xa(d));}function B(a,b){var c=j(b,!0);c&&a.push({priority:0,compile:z(function(a,b){var d=b.parent(),e=d.data("$binding")||[];e.push(c);t(d.data("$binding",e),"ng-binding");a.$watch(c,function(a){b[0].nodeValue=a})})})}function F(a,b,c,d){var e=j(c,!0);e&&b.push({priority:100,
compile:z(function(a,b,c){d==="class"&&(e=j(c[d],!0));c.$$observers[d]=[];c[d]=r;a.$watch(e,function(a){c.$set(d,a)})})})}function Ha(a,b,c){var d=b[0],e=d.parentNode,f,g;if(a){f=0;for(g=a.length;f<g;f++)a[f]==d&&(a[f]=c)}e&&e.replaceChild(c,d);b[0]=c}var U={attribute:function(a,b,c,d,e){d[a]=e[a]},evaluate:function(a,b,c,d,e){d[a]=c.$eval(e[a])},bind:function(a,b,c,d,e){var f=j(e[a]);d.$watch(function(){return f(c)},function(b){d[a]=b})},accessor:function(a,b,c,d,e){var f=s,g=s,i=e[a];i&&(f=n(i),
g=f.assign||function(){throw A("Expression '"+i+"' not assignable.");});d[a]=function(a){return arguments.length?g(c,a):f(c)}},expression:function(a,b,c,d,e){d[a]=function(b){n(e[a])(c,b)}}},ha=function(a,b){this.$$element=a;this.$$observers={};this.$attr=b||{}};ha.prototype={$normalize:ba,$set:function(a,b,c,d){var e=Bb(this.$$element[0],a.toLowerCase());e&&(this.$$element.prop(a,b),d=e);this[a]=b;d?this.$attr[a]=d:(d=this.$attr[a])||(this.$attr[a]=d=ab(a,"-"));c!==!1&&(b===null||b===r?this.$$element.removeAttr(d):
this.$$element.attr(d,b));l(this.$$observers[a],function(a){try{a(b)}catch(c){k(c)}})},$observe:function(a,b){this.$$observers[a]&&this.$$observers[a].push(b)}};return q}]}function ba(b){return wb(b.replace(Pc,""))}function Qc(){var b={};this.register=function(a,c){b[a]=c};this.$get=["$injector","$window",function(a,c){return function(d,e){if(x(d)){var g=d,d=b.hasOwnProperty(g)?b[g]:hb(e.$scope,g,!0)||hb(c,g,!0);ma(d,g,!0)}return a.instantiate(d,e)}}]}function Rc(){this.$get=["$rootScope","$browser",
function(b,a){function c(c,e){return a.defer(function(){b.$apply(c)},e)}c.cancel=function(b){return a.defer.cancel(b)};return c}]}function Sc(){this.$get=["$window",function(b){return p(b.document)}]}function Tc(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Uc(){var b="{{",a="}}";this.startSymbol=function(a){return a?(b=a,this):b};this.endSymbol=function(c){return c?(a=c,this):b};this.$get=["$parse",function(c){var d=b.length,e=a.length;return function(g,
f){for(var h,i,j=0,k=[],m=g.length,o=!1,n=[];j<m;)(h=g.indexOf(b,j))!=-1&&(i=g.indexOf(a,h+d))!=-1?(j!=h&&k.push(g.substring(j,h)),k.push(j=c(o=g.substring(h+d,i))),j.exp=o,j=i+e,o=!0):(j!=m&&k.push(g.substring(j)),j=m);if(!(m=k.length))k.push(""),m=1;if(!f||o)return n.length=m,j=function(a){for(var b=0,c=m,d;b<c;b++){if(typeof(d=k[b])=="function")d=d(a),d==null||d==r?d="":typeof d!="string"&&(d=aa(d));n[b]=d}return n.join("")},j.exp=g,j.parts=k,j}}]}function Fb(b){for(var b=b.split("/"),a=b.length;a--;)b[a]=
$a(b[a]);return b.join("/")}function Ja(b,a){var c=Gb.exec(b),c={protocol:c[1],host:c[3],port:w(c[5])||Hb[c[1]]||null,path:c[6]||"/",search:c[8],hash:c[10]};if(a)a.$$protocol=c.protocol,a.$$host=c.host,a.$$port=c.port;return c}function sa(b,a,c){return b+"://"+a+(c==Hb[b]?"":":"+c)}function Vc(b,a,c){var d=Ja(b);return decodeURIComponent(d.path)!=a||B(d.hash)||d.hash.indexOf(c)!==0?b:sa(d.protocol,d.host,d.port)+a.substr(0,a.lastIndexOf("/"))+d.hash.substr(c.length)}function Wc(b,a,c){var d=Ja(b);
if(decodeURIComponent(d.path)==a)return b;else{var e=d.search&&"?"+d.search||"",g=d.hash&&"#"+d.hash||"",f=a.substr(0,a.lastIndexOf("/")),h=d.path.substr(f.length);if(d.path.indexOf(f)!==0)throw'Invalid url "'+b+'", missing path prefix "'+f+'" !';return sa(d.protocol,d.host,d.port)+a+"#"+c+h+e+g}}function ib(b,a){a=a||"";this.$$parse=function(b){var d=Ja(b,this);if(d.path.indexOf(a)!==0)throw'Invalid url "'+b+'", missing path prefix "'+a+'" !';this.$$path=decodeURIComponent(d.path.substr(a.length));
this.$$search=Za(d.search);this.$$hash=d.hash&&decodeURIComponent(d.hash)||"";this.$$compose()};this.$$compose=function(){var b=tb(this.$$search),d=this.$$hash?"#"+$a(this.$$hash):"";this.$$url=Fb(this.$$path)+(b?"?"+b:"")+d;this.$$absUrl=sa(this.$$protocol,this.$$host,this.$$port)+a+this.$$url};this.$$parse(b)}function jb(b,a){var c;this.$$parse=function(b){var e=Ja(b,this);if(e.hash&&e.hash.indexOf(a)!==0)throw'Invalid url "'+b+'", missing hash prefix "'+a+'" !';c=e.path+(e.search?"?"+e.search:
"");e=Xc.exec((e.hash||"").substr(a.length));this.$$path=e[1]?(e[1].charAt(0)=="/"?"":"/")+decodeURIComponent(e[1]):"";this.$$search=Za(e[3]);this.$$hash=e[5]&&decodeURIComponent(e[5])||"";this.$$compose()};this.$$compose=function(){var b=tb(this.$$search),e=this.$$hash?"#"+$a(this.$$hash):"";this.$$url=Fb(this.$$path)+(b?"?"+b:"")+e;this.$$absUrl=sa(this.$$protocol,this.$$host,this.$$port)+c+(this.$$url?"#"+a+this.$$url:"")};this.$$parse(b)}function Ka(b){return function(){return this[b]}}function Ib(b,
a){return function(c){if(B(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Yc(){var b="",a=!1;this.hashPrefix=function(a){return v(a)?(b=a,this):b};this.html5Mode=function(b){return v(b)?(a=b,this):a};this.$get=["$rootScope","$browser","$sniffer","$document",function(c,d,e,g){var f,h=d.baseHref()||"/",i=h.substr(0,h.lastIndexOf("/")),j=d.url();if(a){var e=f=e.history?new ib(Vc(j,h,b),i):new jb(Wc(j,h,b),b),k=sa(e.protocol(),e.host(),e.port())+i;g.bind("click",function(a){if(!a.ctrlKey&&
!(a.metaKey||a.which==2)){for(var b=p(a.target);b.length&&C(b[0].nodeName)!=="a";)b=b.parent();var d=b.attr("href");d&&!v(b.attr("ng-ext-link"))&&!b.attr("target")&&(d=d.replace(k,""),d.substr(0,4)!="http"&&(d=d.indexOf(i)===0?d.substr(i.length):d,f.url(d),c.$apply(),a.preventDefault(),W.angular["ff-684208-preventDefault"]=!0))}})}else f=new jb(j,b);f.absUrl()!=j&&d.url(f.absUrl(),!0);d.onUrlChange(function(a){f.absUrl()!=a&&(c.$evalAsync(function(){f.$$parse(a)}),c.$$phase||c.$digest())});var m=
0;c.$watch(function(){d.url()!=f.absUrl()&&(m++,c.$evalAsync(function(){d.url(f.absUrl(),f.$$replace);f.$$replace=!1}));return m});return f}]}function Zc(){this.$get=["$window",function(b){function a(a){a instanceof A&&(a.stack?a=a.message&&a.stack.indexOf(a.message)===-1?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function c(c){var e=b.console||{},g=e[c]||e.log||s;return g.apply?function(){var b=[];l(arguments,function(c){b.push(a(c))});
return g.apply(e,b)}:function(a,b){g(a,b)}}return{log:c("log"),warn:c("warn"),info:c("info"),error:c("error")}}]}function $c(b){function a(a){return a.indexOf(q)!=-1}function c(){return n+1<b.length?b.charAt(n+1):!1}function d(a){return"0"<=a&&a<="9"}function e(a){return a==" "||a=="\r"||a=="\t"||a=="\n"||a=="\u000b"||a=="\u00a0"}function g(a){return"a"<=a&&a<="z"||"A"<=a&&a<="Z"||"_"==a||a=="$"}function f(a){return a=="-"||a=="+"||d(a)}function h(a,c,d){d=d||n;throw A("Lexer Error: "+a+" at column"+
(v(c)?"s "+c+"-"+n+" ["+b.substring(c,d)+"]":" "+d)+" in expression ["+b+"].");}function i(){for(var a="",e=n;n<b.length;){var g=C(b.charAt(n));if(g=="."||d(g))a+=g;else{var i=c();if(g=="e"&&f(i))a+=g;else if(f(g)&&i&&d(i)&&a.charAt(a.length-1)=="e")a+=g;else if(f(g)&&(!i||!d(i))&&a.charAt(a.length-1)=="e")h("Invalid exponent");else break}n++}a*=1;m.push({index:e,text:a,json:!0,fn:function(){return a}})}function j(){for(var a="",c=n,f,i,k;n<b.length;){var j=b.charAt(n);if(j=="."||g(j)||d(j))j=="."&&
(f=n),a+=j;else break;n++}if(f)for(i=n;i<b.length;){j=b.charAt(i);if(j=="("){k=a.substr(f-c+1);a=a.substr(0,f-c);n=i;break}if(e(j))i++;else break}c={index:c,text:a};if(La.hasOwnProperty(a))c.fn=c.json=La[a];else{var h=Jb(a);c.fn=u(function(a,b){return h(a,b)},{assign:function(b,c){return Kb(b,a,c)}})}m.push(c);k&&(m.push({index:f,text:".",json:!1}),m.push({index:f+1,text:k,json:!1}))}function k(a){var c=n;n++;for(var d="",e=a,f=!1;n<b.length;){var g=b.charAt(n);e+=g;if(f)g=="u"?(g=b.substring(n+1,
n+5),g.match(/[\da-f]{4}/i)||h("Invalid unicode escape [\\u"+g+"]"),n+=4,d+=String.fromCharCode(parseInt(g,16))):(f=ad[g],d+=f?f:g),f=!1;else if(g=="\\")f=!0;else if(g==a){n++;m.push({index:c,text:e,string:d,json:!0,fn:function(){return d}});return}else d+=g;n++}h("Unterminated quote",c)}for(var m=[],o,n=0,I=[],q,y=":";n<b.length;){q=b.charAt(n);if(a("\"'"))k(q);else if(d(q)||a(".")&&d(c()))i();else if(g(q)){if(j(),"{,".indexOf(y)!=-1&&I[0]=="{"&&(o=m[m.length-1]))o.json=o.text.indexOf(".")==-1}else if(a("(){}[].,;:"))m.push({index:n,
text:q,json:":[,".indexOf(y)!=-1&&a("{[")||a("}]:,")}),a("{[")&&I.unshift(q),a("}]")&&I.shift(),n++;else if(e(q)){n++;continue}else{var t=q+c(),l=La[q],N=La[t];N?(m.push({index:n,text:t,fn:N}),n+=2):l?(m.push({index:n,text:q,fn:l,json:"[,:".indexOf(y)!=-1&&a("+-")}),n+=1):h("Unexpected next character ",n,n+1)}y=q}return m}function bd(b,a,c){function d(a,c){throw A("Syntax Error: Token '"+c.text+"' "+a+" at column "+(c.index+1)+" of the expression ["+b+"] starting at ["+b.substring(c.index)+"].");
}function e(){if(P.length===0)throw A("Unexpected end of expression: "+b);return P[0]}function g(a,b,c,d){if(P.length>0){var e=P[0],f=e.text;if(f==a||f==b||f==c||f==d||!a&&!b&&!c&&!d)return e}return!1}function f(b,c,e,f){return(b=g(b,c,e,f))?(a&&!b.json&&d("is not valid json",b),P.shift(),b):!1}function h(a){f(a)||d("is unexpected, expecting ["+a+"]",g())}function i(a,b){return function(c,d){return a(c,d,b)}}function j(a,b,c){return function(d,e){return b(d,e,a,c)}}function k(){for(var a=[];;)if(P.length>
0&&!g("}",")",";","]")&&a.push(C()),!f(";"))return a.length==1?a[0]:function(b,c){for(var d,e=0;e<a.length;e++){var f=a[e];f&&(d=f(b,c))}return d}}function m(){for(var a=f(),b=c(a.text),d=[];;)if(a=f(":"))d.push(p());else{var e=function(a,c,e){for(var e=[e],f=0;f<d.length;f++)e.push(d[f](a,c));return b.apply(a,e)};return function(){return e}}}function o(){for(var a=n(),b;;)if(b=f("||"))a=j(a,b.fn,n());else return a}function n(){var a=I(),b;if(b=f("&&"))a=j(a,b.fn,n());return a}function I(){var a=
q(),b;if(b=f("==","!="))a=j(a,b.fn,I());return a}function q(){var a;a=y();for(var b;b=f("+","-");)a=j(a,b.fn,y());if(b=f("<",">","<=",">="))a=j(a,b.fn,q());return a}function y(){for(var a=t(),b;b=f("*","/","%");)a=j(a,b.fn,t());return a}function t(){var a;return f("+")?l():(a=f("-"))?j(D,a.fn,t()):(a=f("!"))?i(a.fn,t()):l()}function l(){var a;if(f("("))a=C(),h(")");else if(f("["))a=N();else if(f("{"))a=J();else{var b=f();(a=b.fn)||d("not a primary expression",b)}for(var c;b=f("(","[",".");)b.text===
"("?(a=v(a,c),c=null):b.text==="["?(c=a,a=F(a)):b.text==="."?(c=a,a=B(a)):d("IMPOSSIBLE");return a}function N(){var a=[];if(e().text!="]"){do a.push(p());while(f(","))}h("]");return function(b,c){for(var d=[],e=0;e<a.length;e++)d.push(a[e](b,c));return d}}function J(){var a=[];if(e().text!="}"){do{var b=f(),b=b.string||b.text;h(":");var c=p();a.push({key:b,value:c})}while(f(","))}h("}");return function(b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=f.value(b,c);d[f.key]=g}return d}}var D=z(0),
T,P=$c(b),p=function(){var a=o(),c,e;return(e=f("="))?(a.assign||d("implies assignment but ["+b.substring(0,e.index)+"] can not be assigned to",e),c=o(),function(b,d){return a.assign(b,c(b,d),d)}):a},v=function(a,b){var c=[];if(e().text!=")"){do c.push(p());while(f(","))}h(")");return function(d,e){for(var f=[],g=b?b(d,e):d,i=0;i<c.length;i++)f.push(c[i](d,e));i=a(d,e)||s;return i.apply?i.apply(g,f):i(f[0],f[1],f[2],f[3],f[4])}},B=function(a){var b=f().text,c=Jb(b);return u(function(b,d){return c(a(b,
d),d)},{assign:function(c,d,e){return Kb(a(c,e),b,d)}})},F=function(a){var b=p();h("]");return u(function(c,d){var e=a(c,d),f=b(c,d),g;if(!e)return r;if((e=e[f])&&e.then){g=e;if(!("$$v"in e))g.$$v=r,g.then(function(a){g.$$v=a});e=e.$$v}return e},{assign:function(c,d,e){return a(c,e)[b(c,e)]=d}})},C=function(){for(var a=p(),b;;)if(b=f("|"))a=j(a,b.fn,m());else return a};a?(p=o,v=B=F=C=function(){d("is not valid json",{text:b,index:0})},T=l()):T=k();P.length!==0&&d("is an unexpected token",P[0]);return T}
function Kb(b,a,c){for(var a=a.split("."),d=0;a.length>1;d++){var e=a.shift(),g=b[e];g||(g={},b[e]=g);b=g}return b[a.shift()]=c}function hb(b,a,c){if(!a)return b;for(var a=a.split("."),d,e=b,g=a.length,f=0;f<g;f++)d=a[f],b&&(b=(e=b)[d]);return!c&&K(b)?wa(e,b):b}function Jb(b){if(kb.hasOwnProperty(b))return kb[b];var a,c="var l, fn, p;\n";l(b.split("."),function(a,b){c+="if(!s) return s;\nl=s;\ns="+(b?"s":'((k&&k.hasOwnProperty("'+a+'"))?k:s)')+'["'+a+'"];\nif (s && s.then) {\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=v;});\n}\n s=s.$$v\n}\n'});
c+="return s;";a=Function("s","k",c);a.toString=function(){return c};return kb[b]=a}function cd(){var b={};this.$get=["$filter",function(a){return function(c){switch(typeof c){case "string":return b.hasOwnProperty(c)?b[c]:b[c]=bd(c,!1,a);case "function":return c;default:return s}}}]}function dd(){this.$get=["$rootScope","$exceptionHandler",function(b,a){return ed(function(a){b.$evalAsync(a)},a)}]}function ed(b,a){function c(a){return a}function d(a){return f(a)}var e=function(){var h=[],i,j;return j=
{resolve:function(a){if(h){var c=h;h=r;i=g(a);c.length&&b(function(){for(var a,b=0,d=c.length;b<d;b++)a=c[b],i.then(a[0],a[1])})}},reject:function(a){j.resolve(f(a))},promise:{then:function(b,f){var g=e(),j=function(d){try{g.resolve((b||c)(d))}catch(e){a(e),g.reject(e)}},l=function(b){try{g.resolve((f||d)(b))}catch(c){a(c),g.reject(c)}};h?h.push([j,l]):i.then(j,l);return g.promise}}}},g=function(a){return a&&a.then?a:{then:function(c){var d=e();b(function(){d.resolve(c(a))});return d.promise}}},f=
function(a){return{then:function(c,d){var f=e();b(function(){f.resolve(d(a))});return f.promise}}};return{defer:e,reject:f,when:function(h,i,j){var k=e(),m,o=function(b){try{return(i||c)(b)}catch(d){return a(d),f(d)}},n=function(b){try{return(j||d)(b)}catch(c){return a(c),f(c)}};b(function(){g(h).then(function(a){m||(m=!0,k.resolve(g(a).then(o,n)))},function(a){m||(m=!0,k.resolve(n(a)))})});return k.promise},all:function(a){var b=e(),c=a.length,d=[];c?l(a,function(a,e){g(a).then(function(a){e in d||
(d[e]=a,--c||b.resolve(d))},function(a){e in d||b.reject(a)})}):b.resolve(d);return b.promise}}}function fd(){var b={};this.when=function(a,c){var d=b[a];d||(d=b[a]={reloadOnSearch:!0});c&&u(d,c);if(a){var e=a[a.length-1]=="/"?a.substr(0,a.length-1):a+"/";b[e]={redirectTo:a}}return d};this.otherwise=function(a){this.when(null,a)};this.$get=["$rootScope","$location","$routeParams",function(a,c,d){function e(){var a,d;l(b,function(b,e){if(!d&&(a=f(c.path(),e)))d=Ta(b,{params:u({},c.search(),a),pathParams:a}),
d.$route=b});return d||b[null]&&Ta(b[null],{params:{},pathParams:{}})}function g(a,b){var c=[];l((a||"").split(":"),function(a,d){if(d==0)c.push(a);else{var e=a.match(/(\w+)(.*)/),f=e[1];c.push(b[f]);c.push(e[2]||"");delete b[f]}});return c.join("")}var f=function(a,b){var c="^"+b.replace(/([\.\\\(\)\^\$])/g,"\\$1")+"$",d=[],e={};l(b.split(/\W/),function(a){if(a){var b=RegExp(":"+a+"([\\W])");c.match(b)&&(c=c.replace(b,"([^\\/]*)$1"),d.push(a))}});var f=a.match(RegExp(c));f&&l(d,function(a,b){e[a]=
f[b+1]});return f?e:null},h=0,i=!1,j={routes:b,reload:function(){h++;i=!0}};a.$watch(function(){return h+c.url()},function(){var b=e(),f=j.current;if(b&&f&&b.$route===f.$route&&ca(b.pathParams,f.pathParams)&&!b.reloadOnSearch&&!i)f.params=b.params,Y(f.params,d),a.$broadcast("$routeUpdate",f);else if(b||f)i=!1,a.$broadcast("$beforeRouteChange",b,f),(j.current=b)&&(b.redirectTo?x(b.redirectTo)?c.path(g(b.redirectTo,b.params)).search(b.params).replace():c.url(b.redirectTo(b.pathParams,c.path(),c.search())).replace():
Y(b.params,d)),a.$broadcast("$afterRouteChange",b,f)});return j}]}function gd(){this.$get=z({})}function hd(){var b=10;this.digestTtl=function(a){arguments.length&&(b=a);return b};this.$get=["$injector","$exceptionHandler","$parse",function(a,c,d){function e(){this.$id=Sa();this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this["this"]=this.$root=this;this.$$asyncQueue=[];this.$$listeners={}}function g(a,b){var c=a.$root;if(c.$$phase)throw A(c.$$phase+
" already in progress");c.$$phase=b}function f(a,b){var c=d(a);ma(c,b);return c}function h(){}e.prototype={$new:function(a){if(K(a))throw A("API-CHANGE: Use $controller to instantiate controllers.");a?(a=new e,a.$root=this.$root):(a=function(){},a.prototype=this,a=new a,a.$id=Sa());a["this"]=a;a.$$listeners={};a.$parent=this;a.$$asyncQueue=[];a.$$watchers=a.$$nextSibling=a.$$childHead=a.$$childTail=null;a.$$prevSibling=this.$$childTail;this.$$childHead?this.$$childTail=this.$$childTail.$$nextSibling=
a:this.$$childHead=this.$$childTail=a;return a},$watch:function(a,b,c){var d=f(a,"watch"),e=this.$$watchers,g={fn:b,last:h,get:d,exp:a,eq:!!c};if(!K(b)){var l=f(b||s,"listener");g.fn=function(a,b,c){l(c)}}if(!e)e=this.$$watchers=[];e.unshift(g);return function(){va(e,g)}},$digest:function(){var a,d,e,f,o,n,l,q=b,y,t=[],M,N;g(this,"$digest");do{l=!1;y=this;do{for(o=y.$$asyncQueue;o.length;)try{y.$eval(o.shift())}catch(J){c(J)}if(f=y.$$watchers)for(n=f.length;n--;)try{if(a=f[n],(d=a.get(y))!==(e=a.last)&&
!(a.eq?ca(d,e):typeof d=="number"&&typeof e=="number"&&isNaN(d)&&isNaN(e)))l=!0,a.last=a.eq?Y(d):d,a.fn(d,e===h?d:e,y),q<5&&(M=4-q,t[M]||(t[M]=[]),N=K(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,N+="; newVal: "+aa(d)+"; oldVal: "+aa(e),t[M].push(N))}catch(D){c(D)}if(!(f=y.$$childHead||y!==this&&y.$$nextSibling))for(;y!==this&&!(f=y.$$nextSibling);)y=y.$parent}while(y=f);if(l&&!q--)throw A(b+" $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: "+aa(t));}while(l||
o.length);this.$root.$$phase=null},$destroy:function(){if(this.$root!=this){var a=this.$parent;this.$broadcast("$destroy");if(a.$$childHead==this)a.$$childHead=this.$$nextSibling;if(a.$$childTail==this)a.$$childTail=this.$$prevSibling;if(this.$$prevSibling)this.$$prevSibling.$$nextSibling=this.$$nextSibling;if(this.$$nextSibling)this.$$nextSibling.$$prevSibling=this.$$prevSibling}},$eval:function(a,b){return d(a)(this,b)},$evalAsync:function(a){this.$$asyncQueue.push(a)},$apply:function(a){try{return g(this,
"$apply"),this.$eval(a)}catch(b){c(b)}finally{this.$root.$$phase=null,this.$root.$digest()}},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);return function(){va(c,b)}},$emit:function(a,b){var d=[],e,f=this,g={name:a,targetScope:f,cancel:function(){g.cancelled=!0},cancelled:!1},h=[g].concat(fa.call(arguments,1)),l,y;do{e=f.$$listeners[a]||d;g.currentScope=f;l=0;for(y=e.length;l<y;l++)try{if(e[l].apply(null,h),g.cancelled)return g}catch(t){c(t)}f=f.$parent}while(f);
return g},$broadcast:function(a,b){var d=this,e=this,f={name:a,targetScope:this},g=[f].concat(fa.call(arguments,1));do if(d=e,f.currentScope=d,l(d.$$listeners[a],function(a){try{a.apply(null,g)}catch(b){c(b)}}),!(e=d.$$childHead||d!==this&&d.$$nextSibling))for(;d!==this&&!(e=d.$$nextSibling);)d=d.$parent;while(d=e);return f}};return new e}]}function id(){this.$get=z(function(b){var a=[];jd(b,Lb(a));return a.join("")})}function jd(b,a){function c(b,c,e,g){c=C(c);if(Mb[c])for(;f.last()&&Nb[f.last()];)d("",
f.last());Ob[c]&&f.last()==c&&d("",c);(g=Pb[c]||!!g)||f.push(c);var h={};e.replace(kd,function(a,b,c,d,e){h[b]=lb(c||d||e||"")});a.start&&a.start(c,h,g)}function d(b,c){var d=0,e;if(c=C(c))for(d=f.length-1;d>=0;d--)if(f[d]==c)break;if(d>=0){for(e=f.length-1;e>=d;e--)a.end&&a.end(f[e]);f.length=d}}var e,g,f=[],h=b;for(f.last=function(){return f[f.length-1]};b;){g=!0;if(!f.last()||!Qb[f.last()]){if(b.indexOf("<\!--")===0)e=b.indexOf("--\>"),e>=0&&(a.comment&&a.comment(b.substring(4,e)),b=b.substring(e+
3),g=!1);else if(ld.test(b)){if(e=b.match(Rb))b=b.substring(e[0].length),e[0].replace(Rb,d),g=!1}else if(md.test(b)&&(e=b.match(Sb)))b=b.substring(e[0].length),e[0].replace(Sb,c),g=!1;g&&(e=b.indexOf("<"),g=e<0?b:b.substring(0,e),b=e<0?"":b.substring(e),a.chars&&a.chars(lb(g)))}else b=b.replace(RegExp("(.*)<\\s*\\/\\s*"+f.last()+"[^>]*>","i"),function(b,c){c=c.replace(nd,"$1").replace(od,"$1");a.chars&&a.chars(lb(c));return""}),d("",f.last());if(b==h)throw"Parse Error: "+b;h=b}d()}function lb(b){mb.innerHTML=
b.replace(/</g,"&lt;");return mb.innerText||mb.textContent||""}function Tb(b){return b.replace(/&/g,"&amp;").replace(pd,function(a){return"&#"+a.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function Lb(b){var a=!1,c=wa(b,b.push);return{start:function(b,e,g){b=C(b);!a&&Qb[b]&&(a=b);!a&&Ub[b]==!0&&(c("<"),c(b),l(e,function(a,b){var d=C(b);if(qd[d]==!0&&(Vb[d]!==!0||a.match(rd)))c(" "),c(b),c('="'),c(Tb(a)),c('"')}),c(g?"/>":">"))},end:function(b){b=C(b);!a&&Ub[b]==!0&&(c("</"),c(b),
c(">"));b==a&&(a=!1)},chars:function(b){a||c(Tb(b))}}}function sd(){this.$get=["$window",function(b){return{history:!(!b.history||!b.history.pushState),hashchange:"onhashchange"in b&&(!b.document.documentMode||b.document.documentMode>7)}}]}function td(){this.$get=z(W)}function Wb(b){var a={},c,d,e;if(!b)return a;l(b.split("\n"),function(b){e=b.indexOf(":");c=C(Q(b.substr(0,e)));d=Q(b.substr(e+1));c&&(a[c]?a[c]+=", "+d:a[c]=d)});return a}function Xb(b){var a=L(b)?b:r;return function(c){a||(a=Wb(b));
return c?a[C(c)]||null:a}}function Yb(b,a,c){if(K(c))return c(b,a);l(c,function(c){b=c(b,a)});return b}function ud(){var b=/^\s*(\[|\{[^\{])/,a=/[\}\]]\s*$/,c=/^\)\]\}',?\n/,d=this.defaults={transformResponse:[function(d){x(d)&&(d=d.replace(c,""),b.test(d)&&a.test(d)&&(d=sb(d,!0)));return d}],transformRequest:[function(a){return L(a)&&Va.apply(a)!=="[object File]"?aa(a):a}],headers:{common:{Accept:"application/json, text/plain, */*","X-Requested-With":"XMLHttpRequest"},post:{"Content-Type":"application/json"},
put:{"Content-Type":"application/json"}}},e=this.responseInterceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(a,b,c,i,j,k){function m(a){function c(a){var b=u({},a,{data:Yb(a.data,a.headers,g)});return 200<=a.status&&a.status<300?b:j.reject(b)}a.method=ia(a.method);var e=a.transformRequest||d.transformRequest,g=a.transformResponse||d.transformResponse,i=d.headers,i=u({"X-XSRF-TOKEN":b.cookies()["XSRF-TOKEN"]},i.common,i[C(a.method)],a.headers),
e=Yb(a.data,Xb(i),e),h;B(a.data)&&delete i["Content-Type"];h=o(a,e,i);h=h.then(c,c);l(q,function(a){h=a(h)});h.success=function(b){h.then(function(c){b(c.data,c.status,c.headers,a)});return h};h.error=function(b){h.then(null,function(c){b(c.data,c.status,c.headers,a)});return h};return h}function o(b,c,d){function e(a,b,c){l&&(200<=a&&a<300?l.put(p,[a,b,Wb(c)]):l.remove(p));f(b,a,c);i.$apply()}function f(a,c,d){c=Math.max(c,0);(200<=c&&c<300?k.resolve:k.reject)({data:a,status:c,headers:Xb(d),config:b})}
function h(){var a=Xa(m.pendingRequests,b);a!==-1&&m.pendingRequests.splice(a,1)}var k=j.defer(),o=k.promise,l,q,p=n(b.url,b.params);m.pendingRequests.push(b);o.then(h,h);b.cache&&b.method=="GET"&&(l=L(b.cache)?b.cache:I);if(l)if(q=l.get(p))if(q.then)return q.then(h,h),q;else H(q)?f(q[1],q[0],Y(q[2])):f(q,200,{});else l.put(p,o);q||a(b.method,p,c,e,d,b.timeout);return o}function n(a,b){if(!b)return a;var c=[];qc(b,function(a,b){a==null||a==r||(L(a)&&(a=aa(a)),c.push(encodeURIComponent(b)+"="+encodeURIComponent(a)))});
return a+(a.indexOf("?")==-1?"?":"&")+c.join("&")}var I=c("$http"),q=[];l(e,function(a){q.push(x(a)?k.get(a):k.invoke(a))});m.pendingRequests=[];(function(a){l(arguments,function(a){m[a]=function(b,c){return m(u(c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){l(arguments,function(a){m[a]=function(b,c,d){return m(u(d||{},{method:a,url:b,data:c}))}})})("post","put");return m}]}function vd(){this.$get=["$browser","$window","$document",function(b,a,c){return wd(b,xd,b.defer,
a.angular.callbacks,c[0].body,a.location.protocol.replace(":",""))}]}function wd(b,a,c,d,e,g){return function(f,h,i,j,k,m){function o(a,c,d,e){c=(h.match(Gb)||["",g])[1]=="file"?d?200:404:c;a(c==1223?204:c,d,e);b.$$completeOutstandingRequest(s)}b.$$incOutstandingRequestCount();h=h||b.url();if(C(f)=="jsonp"){var n="_"+(d.counter++).toString(36);d[n]=function(a){d[n].data=a};var I=b.addJs(h.replace("JSON_CALLBACK","angular.callbacks."+n),function(){d[n].data?o(j,200,d[n].data):o(j,-2);delete d[n];e.removeChild(I)})}else{var q=
new a;q.open(f,h,!0);l(k,function(a,b){a&&q.setRequestHeader(b,a)});var y;q.onreadystatechange=function(){q.readyState==4&&o(j,y||q.status,q.responseText,q.getAllResponseHeaders())};q.send(i||"");m>0&&c(function(){y=-1;q.abort()},m)}}}function yd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",
negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),SHORTMONTH:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),SHORTDAY:"Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(","),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",
shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return b===1?"one":"other"}}}}function Zb(b){function a(a,e){return b.factory(a+c,e)}var c="Filter";this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}];a("currency",$b);a("date",ac);a("filter",zd);a("json",Ad);a("limitTo",Bd);a("linky",Cd);a("lowercase",Dd);a("number",bc);a("orderBy",cc);a("uppercase",Ed)}function zd(){return function(b,a){if(!(b instanceof Array))return b;var c=
[];c.check=function(a){for(var b=0;b<c.length;b++)if(!c[b](a))return!1;return!0};var d=function(a,b){if(b.charAt(0)==="!")return!d(a,b.substr(1));switch(typeof a){case "boolean":case "number":case "string":return(""+a).toLowerCase().indexOf(b)>-1;case "object":for(var c in a)if(c.charAt(0)!=="$"&&d(a[c],b))return!0;return!1;case "array":for(c=0;c<a.length;c++)if(d(a[c],b))return!0;return!1;default:return!1}};switch(typeof a){case "boolean":case "number":case "string":a={$:a};case "object":for(var e in a)e==
"$"?function(){var b=(""+a[e]).toLowerCase();b&&c.push(function(a){return d(a,b)})}():function(){var b=e,f=(""+a[e]).toLowerCase();f&&c.push(function(a){return d(hb(a,b),f)})}();break;case "function":c.push(a);break;default:return b}for(var g=[],f=0;f<b.length;f++){var h=b[f];c.check(h)&&g.push(h)}return g}}function $b(b){var a=b.NUMBER_FORMATS;return function(b,d){if(B(d))d=a.CURRENCY_SYM;return dc(b,a.PATTERNS[1],a.GROUP_SEP,a.DECIMAL_SEP,2).replace(/\u00A4/g,d)}}function bc(b){var a=b.NUMBER_FORMATS;
return function(b,d){return dc(b,a.PATTERNS[0],a.GROUP_SEP,a.DECIMAL_SEP,d)}}function dc(b,a,c,d,e){if(isNaN(b)||!isFinite(b))return"";var g=b<0,b=Math.abs(b),f=b+"",h="",i=[];if(f.indexOf("e")!==-1)h=f;else{f=(f.split(ec)[1]||"").length;B(e)&&(e=Math.min(Math.max(a.minFrac,f),a.maxFrac));var f=Math.pow(10,e),b=Math.round(b*f)/f,b=(""+b).split(ec),f=b[0],b=b[1]||"",j=0,k=a.lgSize,m=a.gSize;if(f.length>=k+m)for(var j=f.length-k,o=0;o<j;o++)(j-o)%m===0&&o!==0&&(h+=c),h+=f.charAt(o);for(o=j;o<f.length;o++)(f.length-
o)%k===0&&o!==0&&(h+=c),h+=f.charAt(o);for(;b.length<e;)b+="0";e&&(h+=d+b.substr(0,e))}i.push(g?a.negPre:a.posPre);i.push(h);i.push(g?a.negSuf:a.posSuf);return i.join("")}function nb(b,a,c){var d="";b<0&&(d="-",b=-b);for(b=""+b;b.length<a;)b="0"+b;c&&(b=b.substr(b.length-a));return d+b}function E(b,a,c,d){return function(e){e=e["get"+b]();if(c>0||e>-c)e+=c;e===0&&c==-12&&(e=12);return nb(e,a,d)}}function Ma(b,a){return function(c,d){var e=c["get"+b](),g=ia(a?"SHORT"+b:b);return d[g][e]}}function ac(b){function a(a){var b;
if(b=a.match(c)){var a=new Date(0),g=0,f=0;b[9]&&(g=w(b[9]+b[10]),f=w(b[9]+b[11]));a.setUTCFullYear(w(b[1]),w(b[2])-1,w(b[3]));a.setUTCHours(w(b[4]||0)-g,w(b[5]||0)-f,w(b[6]||0),w(b[7]||0))}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/;return function(c,e){var g="",f=[],h,i,e=e||"mediumDate",e=b.DATETIME_FORMATS[e]||e;x(c)&&(c=Fd.test(c)?w(c):a(c));ta(c)&&(c=new Date(c));if(!ja(c))return c;for(;e;)(i=Gd.exec(e))?(f=f.concat(fa.call(i,
1)),e=f.pop()):(f.push(e),e=null);l(f,function(a){h=Hd[a];g+=h?h(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Ad(){return function(b){return aa(b,!0)}}function Cd(){var b=/((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s\.\;\,\(\)\{\}\<\>]/,a=/^mailto:/;return function(c){if(!c)return c;for(var d=c,e=[],g=Lb(e),f,h;c=d.match(b);)f=c[0],c[2]==c[3]&&(f="mailto:"+f),h=c.index,g.chars(d.substr(0,h)),g.start("a",{href:f}),g.chars(c[0].replace(a,"")),g.end("a"),
d=d.substring(h+c[0].length);g.chars(d);return e.join("")}}function Bd(){return function(b,a){if(!(b instanceof Array))return b;var a=w(a),c=[],d,e;if(!b||!(b instanceof Array))return c;a>b.length?a=b.length:a<-b.length&&(a=-b.length);a>0?(d=0,e=a):(d=b.length+a,e=b.length);for(;d<e;d++)c.push(b[d]);return c}}function cc(b){return function(a,c,d){function e(a,b){return Ya(b)?function(b,c){return a(c,b)}:a}if(!(a instanceof Array))return a;if(!c)return a;for(var c=H(c)?c:[c],c=Wa(c,function(a){var c=
!1,d=a||ua;if(x(a)){if(a.charAt(0)=="+"||a.charAt(0)=="-")c=a.charAt(0)=="-",a=a.substring(1);d=b(a)}return e(function(a,b){var c;c=d(a);var e=d(b),f=typeof c,g=typeof e;f==g?(f=="string"&&(c=c.toLowerCase()),f=="string"&&(e=e.toLowerCase()),c=c===e?0:c<e?-1:1):c=f<g?-1:1;return c},c)}),g=[],f=0;f<a.length;f++)g.push(a[f]);return g.sort(e(function(a,b){for(var d=0;d<c.length;d++){var e=c[d](a,b);if(e!==0)return e}return 0},d))}}function O(b){K(b)&&(b={link:b});b.restrict=b.restrict||"AC";return z(b)}
function fc(b,a){function c(a,c){c=c?"-"+ab(c,"-"):"";b.removeClass((a?Na:Oa)+c).addClass((a?Oa:Na)+c)}function d(a,b,d){a&&(va(a,d||this),a.length||(f--,h[b]=!1,c(!0,b),g.$setValidity(b,!0,e)))}var e=this,g=b.parent().controller("form")||Pa,f=0,h=e.$error={};e.$name=a.name;e.$dirty=!1;e.$pristine=!0;e.$valid=!0;e.$invalid=!1;g.$addControl(e);b.addClass(Qa);c(!0);e.$addControl=function(a){a.$name&&!e.hasOwnProperty(a.$name)&&(e[a.$name]=a)};e.$removeControl=function(a){a.$name&&e[a.$name]===a&&delete e[a.$name];
l(h,d,a)};e.$setValidity=function(a,b,k){if(b){if(d(h[a],a,k),!f)c(b),e.$valid=!0,e.$invalid=!1}else{f||c(b);a:{if(b=h[a]){if(Xa(b,k)!=-1)break a}else h[a]=b=[],f++,c(!1,a),g.$setValidity(a,!1,e);b.push(k)}e.$valid=!1;e.$invalid=!0}};e.$setDirty=function(){b.removeClass(Qa).addClass(gc);e.$dirty=!0;e.$pristine=!1}}function V(b){return B(b)||b===""||b===null||b!==b}function Ra(b,a,c,d){a.bind("blur",function(){b.$apply(function(){d.$setViewValue(Q(a.val()))})});d.$render=function(){a.val(V(d.$viewValue)?
"":d.$viewValue)};var e=c.ngPattern,g,f=function(a,b){return V(b)||a.test(b)?(d.$setValidity("pattern",!0),b):(d.$setValidity("pattern",!1),r)};e&&(e.match(/^\/(.*)\/$/)?(e=RegExp(e.substr(1,e.length-2)),g=function(a){return f(e,a)}):g=function(a){var c=b.$eval(e);if(!c||!c.test)throw new A("Expected "+e+" to be a RegExp but was "+c);return f(c,a)},d.$formatters.push(g),d.$parsers.push(g));if(c.ngMinlength){var h=w(c.ngMinlength);g=function(a){return!V(a)&&a.length<h?(d.$setValidity("minlength",!1),
r):(d.$setValidity("minlength",!0),a)};d.$parsers.push(g);d.$formatters.push(g)}if(c.ngMaxlength){var i=w(c.ngMaxlength),c=function(a){return!V(a)&&a.length>i?(d.$setValidity("maxlength",!1),r):(d.$setValidity("maxlength",!0),a)};d.$parsers.push(c);d.$formatters.push(c)}}function ob(b,a){b="ngClass"+b;return O(function(c,d,e){c.$watch(e[b],function(b,e){if(a===!0||c.$index%2===a)e&&b!==e&&(L(e)&&!H(e)&&(e=Wa(e,function(a,b){if(a)return b})),d.removeClass(H(e)?e.join(" "):e)),L(b)&&!H(b)&&(b=Wa(b,
function(a,b){if(a)return b})),b&&d.addClass(H(b)?b.join(" "):b)},!0)})}if(typeof X.getAttribute==Ua)X.getAttribute=function(){};var C=function(b){return x(b)?b.toLowerCase():b},ia=function(b){return x(b)?b.toUpperCase():b},oc="length",pc="name",rc="object",sc="string",Ua="undefined",A=W.Error,da=w((/msie (\d+)/.exec(C(navigator.userAgent))||[])[1]),p,ga,fa=[].slice,ea=[].push,Va=Object.prototype.toString,hc=W.angular||(W.angular={}),pa,Eb,Z=["0","0","0"];s.$inject=[];ua.$inject=[];Eb=da<9?function(b){b=
b.nodeName?b:b[0];return b.scopeName&&b.scopeName!="HTML"?ia(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var yc=/[A-Z]/g,Id={full:"1.0.0rc3",major:1,minor:0,dot:0,codeName:"barefoot-telepathy"},Aa={},za="ng-"+(new Date).getTime(),Cc=1,Jd=W.document.addEventListener?function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c)},eb=W.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,!1)}:function(b,a,c){b.detachEvent("on"+
a,c)},Ac=/([\:\-\_]+(.))/g,Bc=/^moz([A-Z])/,ra=S.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;this.bind("DOMContentLoaded",a);S(W).bind("load",a)},toString:function(){var b=[];l(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return b>=0?p(this[b]):p(this[this.length+b])},length:0,push:ea,sort:[].sort,splice:[].splice},Ea={};l("multiple,selected,checked,disabled,readOnly,required".split(","),function(b){Ea[C(b)]=b});var Cb={};l("input,select,option,textarea,button,form".split(","),
function(b){Cb[ia(b)]=!0});l({data:Ba,inheritedData:Da,scope:function(b){return Da(b,"$scope")},controller:Ab,injector:function(b){return Da(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Ca,css:function(b,a,c){a=wb(a);if(v(c))b.style[a]=c;else{var d;da<=8&&(d=b.currentStyle&&b.currentStyle[a],d===""&&(d="auto"));d=d||b.style[a];da<=8&&(d=d===""?r:d);return d}},attr:function(b,a,c){var d=C(a);if(Ea[d])if(v(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));
else return b[a]||(b.attributes.getNamedItem(a)||s).specified?d:r;else if(v(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),b===null?r:b},prop:function(b,a,c){if(v(c))b[a]=c;else return b[a]},text:u(da<9?function(b,a){if(b.nodeType==1){if(B(a))return b.innerText;b.innerText=a}else{if(B(a))return b.nodeValue;b.nodeValue=a}}:function(b,a){if(B(a))return b.textContent;b.textContent=a},{$dv:""}),val:function(b,a){if(B(a))return b.value;b.value=a},html:function(b,a){if(B(a))return b.innerHTML;
for(var c=0,d=b.childNodes;c<d.length;c++)na(d[c]);b.innerHTML=a}},function(b,a){S.prototype[a]=function(a,d){var e,g;if((b.length==2&&b!==Ca&&b!==Ab?a:d)===r)if(L(a)){for(e=0;e<this.length;e++)for(g in a)b(this[e],g,a[g]);return this}else{if(this.length)return b(this[0],a,d)}else{for(e=0;e<this.length;e++)b(this[e],a,d);return this}return b.$dv}});l({removeData:xb,dealoc:na,bind:function a(c,d,e){var g=Ba(c,"bind");g||Ba(c,"bind",g={});l(d.split(" "),function(d){var h=g[d];if(!h)if(d=="mouseenter"||
d=="mouseleave"){var i=g.mouseenter=fb(c),j=g.mouseleave=fb(c),k=0;a(c,"mouseover",function(a){k++;if(k==1)a.type="mouseenter",i(a)});a(c,"mouseout",function(a){k--;if(k==0)a.type="mouseleave",j(a)});h=g[d]}else h=g[d]=fb(c),Jd(c,d,h);h.fns.push(e)})},unbind:function(a,c,d){var e=Ba(a,"bind");e&&(B(c)?l(e,function(c,d){eb(a,d,c);delete e[d]}):B(d)?(eb(a,c,e[c]),delete e[c]):va(e[c].fns,d))},replaceWith:function(a,c){var d,e=a.parentNode;na(a);l(new S(c),function(c){d?e.insertBefore(c,d.nextSibling):
e.replaceChild(c,a);d=c})},children:function(a){var c=[];l(a.childNodes,function(a){a.nodeName!="#text"&&c.push(a)});return c},contents:function(a){return a.childNodes},append:function(a,c){l(new S(c),function(c){a.nodeType===1&&a.appendChild(c)})},prepend:function(a,c){if(a.nodeType===1){var d=a.firstChild;l(new S(c),function(c){d?a.insertBefore(c,d):(a.appendChild(c),d=c)})}},wrap:function(a,c){var c=p(c)[0],d=a.parentNode;d&&d.replaceChild(c,a);c.appendChild(a)},remove:function(a){na(a);var c=
a.parentNode;c&&c.removeChild(a)},after:function(a,c){var d=a,e=a.parentNode;l(new S(c),function(a){e.insertBefore(a,d.nextSibling);d=a})},addClass:zb,removeClass:yb,toggleClass:function(a,c,d){B(d)&&(d=!Ca(a,c));(d?zb:yb)(a,c)},parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},next:function(a){return a.nextSibling},find:function(a,c){return a.getElementsByTagName(c)},clone:db},function(a,c){S.prototype[c]=function(c,e){for(var g,f=0;f<this.length;f++)g==r?(g=a(this[f],c,e),g!==r&&
(g=p(g))):cb(g,a(this[f],c,e));return g==r?this:g}});Fa.prototype={put:function(a,c){this[oa(a)]=c},get:function(a){return this[oa(a)]},remove:function(a){var c=this[a=oa(a)];delete this[a];return c}};gb.prototype={push:function(a,c){var d=this[a=oa(a)];d?d.push(c):this[a]=[c]},shift:function(a){var c=this[a=oa(a)];if(c)return c.length==1?(delete this[a],c[0]):c.shift()}};var Fc=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,Gc=/,/,Hc=/^\s*(_?)(.+?)\1\s*$/,Ec=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;Db.$inject=["$provide"];
var Pc=/^(x[\:\-_]|data[\:\-_])/i,Gb=/^(file|ftp|http|https):\/\/(\w+:{0,1}\w*@)?([\w\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,ic=/^([^\?#]*)?(\?([^#]*))?(#(.*))?$/,Xc=ic,Hb={http:80,https:443,ftp:21};ib.prototype={$$replace:!1,absUrl:Ka("$$absUrl"),url:function(a,c){if(B(a))return this.$$url;var d=ic.exec(a);d[1]&&this.path(decodeURIComponent(d[1]));if(d[2]||d[1])this.search(d[3]||"");this.hash(d[5]||"",c);return this},protocol:Ka("$$protocol"),host:Ka("$$host"),port:Ka("$$port"),path:Ib("$$path",
function(a){return a.charAt(0)=="/"?a:"/"+a}),search:function(a,c){if(B(a))return this.$$search;v(c)?c===null?delete this.$$search[a]:this.$$search[a]=ya(c):this.$$search=x(a)?Za(a):a;this.$$compose();return this},hash:Ib("$$hash",ua),replace:function(){this.$$replace=!0;return this}};jb.prototype=Ta(ib.prototype);var La={"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:s,"+":function(a,c,d,e){d=d(a,c);e=e(a,c);return(v(d)?d:0)+(v(e)?e:0)},"-":function(a,
c,d,e){d=d(a,c);e=e(a,c);return(v(d)?d:0)-(v(e)?e:0)},"*":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)},"=":s,"==":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,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 e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},ad={n:"\n",f:"\u000c",r:"\r",t:"\t",v:"\u000b","'":"'",'"':'"'},kb={},Sb=/^<\s*([\w:-]+)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*>/,Rb=/^<\s*\/\s*([\w:-]+)[^>]*>/,kd=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,md=
/^</,ld=/^<\s*\//,nd=/<\!--(.*?)--\>/g,od=/<!\[CDATA\[(.*?)]]\>/g,rd=/^((ftp|https?):\/\/|mailto:|#)/,pd=/([^\#-~| |!])/g,Pb=$("area,br,col,hr,img,wbr"),ea=$("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),jc=$("rp,rt"),Ob=u({},jc,ea),Mb=u({},ea,$("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),Nb=u({},jc,$("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),
Qb=$("script,style"),Ub=u({},Pb,Mb,Nb,Ob),Vb=$("background,cite,href,longdesc,src,usemap"),qd=u({},Vb,$("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,span,start,summary,target,title,type,valign,value,vspace,width")),mb=X.createElement("pre"),xd=W.XMLHttpRequest||function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(c){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw new A("This browser does not support XMLHttpRequest.");
};Zb.$inject=["$provide"];$b.$inject=["$locale"];bc.$inject=["$locale"];var ec=".",Hd={yyyy:E("FullYear",4),yy:E("FullYear",2,0,!0),y:E("FullYear",1),MMMM:Ma("Month"),MMM:Ma("Month",!0),MM:E("Month",2,1),M:E("Month",1,1),dd:E("Date",2),d:E("Date",1),HH:E("Hours",2),H:E("Hours",1),hh:E("Hours",2,-12),h:E("Hours",1,-12),mm:E("Minutes",2),m:E("Minutes",1),ss:E("Seconds",2),s:E("Seconds",1),EEEE:Ma("Day"),EEE:Ma("Day",!0),a:function(a,c){return a.getHours()<12?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=a.getTimezoneOffset();
return nb(a/60,2)+nb(Math.abs(a%60),2)}},Gd=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,Fd=/^\d+$/;ac.$inject=["$locale"];var Dd=z(C),Ed=z(ia);cc.$inject=["$parse"];var Kd=z({restrict:"E",compile:function(a,c){c.href||c.$set("href","");return function(a,c){c.bind("click",function(a){c.attr("href")||a.preventDefault()})}}}),pb={};l(Ea,function(a,c){var d=ba("ng-"+c);pb[d]=function(){return{priority:100,compile:function(){return function(a,g,f){f.$$observers[c]=[];
a.$watch(f[d],function(a){f.$set(c,a)})}}}}});l(["src","href"],function(a){var c=ba("ng-"+a);pb[c]=function(){return{priority:100,compile:function(){return function(d,e,g){g.$$observers[a]=[];g.$observe(c,function(c){g.$set(a,c)})}}}}});var Pa={$addControl:s,$removeControl:s,$setValidity:s,$setDirty:s};fc.$inject=["$element","$attrs","$scope"];var ea={name:"form",restrict:"E",controller:fc,compile:function(){return{pre:function(a,c,d,e){d.action||c.bind("submit",function(a){a.preventDefault()});var g=
c.parent().controller("form"),f=d.name||d.ngForm;f&&(a[f]=e);g&&c.bind("$destroy",function(){g.$removeControl(e);f&&(a[f]=r);u(e,Pa)})}}}},Ld=z(ea),Md=z(u(Y(ea),{restrict:"EAC"})),Nd=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Od=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/,Pd=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,kc={text:Ra,number:function(a,c,d,e){Ra(a,c,d,e);e.$parsers.push(function(a){var c=V(a);return c||Pd.test(a)?(e.$setValidity("number",!0),
a===""?null:c?a:parseFloat(a)):(e.$setValidity("number",!1),r)});e.$formatters.push(function(a){return V(a)?"":""+a});if(d.min){var g=parseFloat(d.min),a=function(a){return!V(a)&&a<g?(e.$setValidity("min",!1),r):(e.$setValidity("min",!0),a)};e.$parsers.push(a);e.$formatters.push(a)}if(d.max){var f=parseFloat(d.max),d=function(a){return!V(a)&&a>f?(e.$setValidity("max",!1),r):(e.$setValidity("max",!0),a)};e.$parsers.push(d);e.$formatters.push(d)}e.$formatters.push(function(a){return V(a)||ta(a)?(e.$setValidity("number",
!0),a):(e.$setValidity("number",!1),r)})},url:function(a,c,d,e){Ra(a,c,d,e);a=function(a){return V(a)||Nd.test(a)?(e.$setValidity("url",!0),a):(e.$setValidity("url",!1),r)};e.$formatters.push(a);e.$parsers.push(a)},email:function(a,c,d,e){Ra(a,c,d,e);a=function(a){return V(a)||Od.test(a)?(e.$setValidity("email",!0),a):(e.$setValidity("email",!1),r)};e.$formatters.push(a);e.$parsers.push(a)},radio:function(a,c,d,e){c.attr("name",d.id+"@"+d.name);c.bind("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})});
e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e){var g=d.ngTrueValue,f=d.ngFalseValue;x(g)||(g=!0);x(f)||(f=!1);c.bind("click",function(){a.$apply(function(){e.$setViewValue(c[0].checked)})});e.$render=function(){c[0].checked=e.$viewValue};e.$formatters.push(function(a){return a===g});e.$parsers.push(function(a){return a?g:f})},hidden:s,button:s,submit:s,reset:s},lc=[function(){return{restrict:"E",require:"?ngModel",link:function(a,
c,d,e){e&&(kc[C(d.type)]||kc.text)(a,c,d,e)}}}],Oa="ng-valid",Na="ng-invalid",Qa="ng-pristine",gc="ng-dirty",Qd=["$scope","$exceptionHandler","$attrs","ngModel","$element",function(a,c,d,e,g){function f(a,c){c=c?"-"+ab(c,"-"):"";g.removeClass((a?Na:Oa)+c).addClass((a?Oa:Na)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$render=s;this.$name=d.name;var h=g.inheritedData("$formController")||
Pa,i=0,j=this.$error={};g.addClass(Qa);f(!0);this.$setValidity=function(a,c){if(j[a]!==!c){if(c){if(j[a]&&i--,!i)f(!0),this.$valid=!0,this.$invalid=!1}else f(!1),this.$invalid=!0,this.$valid=!1,i++;j[a]=!c;f(c,a);h.$setValidity(a,c,this)}};this.$setViewValue=function(a){this.$viewValue=a;if(this.$pristine)this.$dirty=!0,this.$pristine=!1,g.removeClass(Qa).addClass(gc),h.$setDirty();l(this.$parsers,function(c){a=c(a)});if(this.$modelValue!==a)this.$modelValue=a,e(a),l(this.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}})};
var k=this;a.$watch(function(){return e()},function(a){if(k.$modelValue!==a){var c=k.$formatters,d=c.length;for(k.$modelValue=a;d--;)a=c[d](a);if(k.$viewValue!==a)k.$viewValue=a,k.$render()}})}],Rd=[function(){return{inject:{ngModel:"accessor"},require:["ngModel","^?form"],controller:Qd,link:function(a,c,d,e){var g=e[0],f=e[1]||Pa;f.$addControl(g);c.bind("$destroy",function(){f.$removeControl(g)})}}}],Sd=z({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),
Td=["$browser",function(a){return{require:"ngModel",link:function(c,d,e,g){var f=function(){c.$apply(function(){g.$setViewValue(Q(d.val()))})},h;d.bind("keydown",function(c){c=c.keyCode;c===91||15<c&&c<19||37<=c&&c<=40||h||(h=a.defer(function(){f();h=null}))});d.bind("change input",f)}}}],mc=[function(){return{require:"?ngModel",link:function(a,c,d,e){if(e){var g=function(a){if(d.required&&(V(a)||a===!1))e.$setValidity("required",!1);else return e.$setValidity("required",!0),a};e.$formatters.push(g);
e.$parsers.unshift(g);d.$observe("required",function(){g(e.$viewValue)})}}}}],Ud=function(){return{require:"ngModel",link:function(a,c,d,e){var g=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",",f=function(a){var c=[];a&&l(a.split(g),function(a){a&&c.push(Q(a))});return c};e.$parsers.push(f);e.$formatters.push(function(a){return H(a)&&!ca(f(e.$viewValue),a)?a.join(", "):r})}}},Vd=/^(true|false|\d+)$/,Wd=[function(){return{priority:100,compile:function(a,c){return Vd.test(c.ngValue)?function(a){c.$set("value",
a.$eval(c.ngValue))}:function(a,c,g){g.$$observers.value=[];a.$watch(g.ngValue,function(a){g.$set("value",a,!1)})}}}}],Xd=O(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBind);a.$watch(d.ngBind,function(a){c.text(a==r?"":a)})}),Yd=O(function(a,c,d){c.addClass("ng-binding").data("$binding",d.ngBindHtmlUnsafe);a.$watch(d.ngBindHtmlUnsafe,function(a){c.html(a==r?"":a)})}),Zd=["$sanitize",function(a){return function(c,d,e){d.addClass("ng-binding").data("$binding",e.ngBindHtml);c.$watch(e.ngBindHtml,
function(c){(c=a(c))&&d.html(c)})}}],$d=["$interpolate",function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",c);e.$observe("ngBindTemplate",function(a){d.text(a)})}}],ae=ob("",!0),be=ob("Odd",0),ce=ob("Even",1),de=O({compile:function(a,c){c.$set("ngCloak",r);a.removeClass("ng-cloak")}}),ee=[function(){return{scope:!0,controller:"@"}}],nc={};l("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave".split(" "),
function(a){var c=ba("ng-"+a);nc[c]=["$parse",function(d){return function(e,g,f){var h=d(f[c]);g.bind(C(a),function(a){e.$apply(function(){h(e,{$event:a})})})}}]});var fe=O(function(a,c,d){c.bind("submit",function(){a.$apply(d.ngSubmit)})}),ge=["$http","$templateCache","$anchorScroll","$compile",function(a,c,d,e){return{restrict:"EA",compile:function(g,f){var h=f.ngInclude||f.src,i=f.scope||"",j=f.onload||"",k=f.autoscroll;return function(f,g){function l(){I++}var I=0,q;f.$watch(h,l);f.$watch(function(){var a=
f.$eval(i);if(a)return a.$id},l);f.$watch(function(){return I},function(l){function n(){l===I&&(q&&q.$destroy(),q=null,g.html(""))}var p=f.$eval(h),r=f.$eval(i);p?a.get(p,{cache:c}).success(function(a){l===I&&(g.html(a),q&&q.$destroy(),q=r?r:f.$new(),e(g.contents())(q),v(k)&&(!k||f.$eval(k))&&d(),f.$emit("$includeContentLoaded"),f.$eval(j))}).error(n):n()})}}}}],he=O({compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),ie=O({terminal:!0,priority:1E3}),je=["$locale","$interpolate",
function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,g,f){var h=f.count,i=g.attr(f.$attr.when),j=f.offset||0,k=e.$eval(i),m={};l(k,function(a,e){m[e]=c(a.replace(d,"{{"+h+"-"+j+"}}"))});e.$watch(function(){var c=parseFloat(e.$eval(h));return isNaN(c)?"":(k[c]||(c=a.pluralCat(c-j)),m[c](e,g,!0))},function(a){g.text(a)})}}}],ke=O({transclude:"element",priority:1E3,terminal:!0,compile:function(a,c,d){return function(a,c,f){var h=f.ngRepeat,f=h.match(/^\s*(.+)\s+in\s+(.*)\s*$/),i,j,k;if(!f)throw A("Expected ng-repeat in form of '_item_ in _collection_' but got '"+
h+"'.");h=f[1];i=f[2];f=h.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!f)throw A("'item' in 'item in collection' should be identifier or (key, value) but got '"+h+"'.");j=f[3]||f[1];k=f[2];var m=new gb;a.$watch(function(a){var e,f,h=a.$eval(i),l=uc(h,!0),t,p=new gb,r,s,D,u,v=c;if(H(h))D=h||[];else{D=[];for(r in h)h.hasOwnProperty(r)&&r.charAt(0)!="$"&&D.push(r);D.sort()}e=0;for(f=D.length;e<f;e++){r=h===D?e:D[e];s=h[r];if(u=m.shift(s)){t=u.scope;p.push(s,u);if(e!==u.index)u.index=e,
v.after(u.element);v=u.element}else t=a.$new();t[j]=s;k&&(t[k]=r);t.$index=e;t.$position=e===0?"first":e==l-1?"last":"middle";u||d(t,function(a){v.after(a);u={scope:t,element:v=a,index:e};p.push(s,u)})}for(r in m)if(m.hasOwnProperty(r))for(D=m[r];D.length;)s=D.pop(),s.element.remove(),s.scope.$destroy();m=p})}}}),le=O(function(a,c,d){a.$watch(d.ngShow,function(a){c.css("display",Ya(a)?"":"none")})}),me=O(function(a,c,d){a.$watch(d.ngHide,function(a){c.css("display",Ya(a)?"none":"")})}),ne=O(function(a,
c,d){a.$watch(d.ngStyle,function(a,d){d&&a!==d&&l(d,function(a,d){c.css(d,"")});a&&c.css(a)},!0)}),oe=z({restrict:"EA",compile:function(a,c){var d=c.ngSwitch||c.on,e={};a.data("ng-switch",e);return function(a,f){var h,i,j;a.$watch(d,function(d){i&&(j.$destroy(),i.remove(),i=j=null);if(h=e["!"+d]||e["?"])a.$eval(c.change),j=a.$new(),h(j,function(a){i=a;f.append(a)})})}}}),pe=O({transclude:"element",priority:500,compile:function(a,c,d){a=a.inheritedData("ng-switch");la(a);a["!"+c.ngSwitchWhen]=d}}),
qe=O({transclude:"element",priority:500,compile:function(a,c,d){a=a.inheritedData("ng-switch");la(a);a["?"]=d}}),re=O({controller:["$transclude","$element",function(a,c){a(function(a){c.append(a)})}]}),se=["$http","$templateCache","$route","$anchorScroll","$compile","$controller",function(a,c,d,e,g,f){return{restrict:"ECA",terminal:!0,link:function(h,i,j){var k=0,m,l=j.onload||"";h.$on("$afterRouteChange",function(){k++});h.$watch(function(){return k},function(j){function p(){j==k&&i.html("");m&&
(m.$destroy(),m=null)}var q=d.current&&d.current.template;q?a.get(q,{cache:c}).success(function(a){if(j==k){i.html(a);m&&(m.$destroy(),m=null);var a=g(i.contents()),c=d.current;m=c.scope=h.$new();c.controller&&i.contents().data("$ngControllerController",f(c.controller,{$scope:m}));a(m);m.$emit("$viewContentLoaded");m.$eval(l);e()}}).error(p):p()})}}}],te=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(c,d){d.type=="text/ng-template"&&a.put(d.id,c.text())}}}],ue=z({terminal:!0}),
ve=["$compile","$parse",function(a,c){var d=/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*)$/;return{restrict:"E",require:"?ngModel",link:function(e,g,f,h){function i(a,c,d){d.$render=function(){c.val(d.$viewValue)};c.bind("change",function(){a.$apply(function(){d.$setViewValue(c.val())})})}function j(a,c,d){var e;d.$render=function(){var a=new Fa(d.$viewValue);l(c.children(),function(c){c.selected=
v(a.get(c.value))})};a.$watch(function(){ca(e,d.$viewValue)||(e=Y(d.$viewValue),d.$render())});c.bind("change",function(){a.$apply(function(){var a=[];l(c.children(),function(c){c.selected&&a.push(c.value)});d.$setViewValue(a)})})}function k(e,f,g){function h(){var a={"":[]},c=[""],d,i,l,o,p;l=g.$modelValue;o=v(e)||[];var t=n?qb(o):o,A,w,x;w={};p=!1;var E,H;if(m)p=new Fa(l);else if(l===null||F)a[""].push({selected:l===null,id:"",label:""}),p=!0;for(x=0;A=t.length,x<A;x++){w[k]=o[n?w[n]=t[x]:x];d=
u(e,w)||"";if(!(i=a[d]))i=a[d]=[],c.push(d);m?d=p.remove(s(e,w))!=r:(d=l===s(e,w),p=p||d);i.push({id:n?t[x]:x,label:j(e,w)||"",selected:d})}!m&&!p&&a[""].unshift({id:"?",label:"",selected:!0});w=0;for(t=c.length;w<t;w++){d=c[w];i=a[d];if(z.length<=w)l={element:C.clone().attr("label",d),label:i.label},o=[l],z.push(o),f.append(l.element);else if(o=z[w],l=o[0],l.label!=d)l.element.attr("label",l.label=d);E=null;x=0;for(A=i.length;x<A;x++)if(d=i[x],p=o[x+1]){E=p.element;if(p.label!==d.label)E.text(p.label=
d.label);if(p.id!==d.id)E.val(p.id=d.id);if(p.element.selected!==d.selected)E.prop("selected",p.selected=d.selected)}else d.id===""&&F?H=F:(H=B.clone()).val(d.id).attr("selected",d.selected).text(d.label),o.push({element:H,label:d.label,id:d.id,selected:d.selected}),E?E.after(H):l.element.append(H),E=H;for(x++;o.length>x;)o.pop().element.remove()}for(;z.length>w;)z.pop()[0].element.remove()}var i;if(!(i=o.match(d)))throw A("Expected ng-options in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '"+
o+"'.");var j=c(i[2]||i[1]),k=i[4]||i[6],n=i[5],u=c(i[3]||""),s=c(i[2]?i[1]:k),v=c(i[7]),B=p(X.createElement("option")),C=p(X.createElement("optgroup")),F=!1,z=[[{element:f,label:""}]];l(f.children(),function(c){c.value==""&&(F=p(c).remove(),a(F)(e))});f.html("");f.bind("change",function(){e.$apply(function(){var a,c=v(e)||[],d={},h,i,j,l,o,p;if(m){i=[];l=0;for(p=z.length;l<p;l++){a=z[l];j=1;for(o=a.length;j<o;j++)if((h=a[j].element)[0].selected)h=h.val(),n&&(d[n]=h),d[k]=c[h],i.push(s(e,d))}}else h=
f.val(),h=="?"?i=r:h==""?i=null:(d[k]=c[h],n&&(d[n]=h),i=s(e,d));g.$setViewValue(i)})});g.$render=h;e.$watch(h)}if(h){var m=f.multiple,o=f.ngOptions;if(m&&(f.required||f.ngRequired)){var n=function(a){h.$setValidity("required",!f.required||a&&a.length);return a};h.$parsers.push(n);h.$formatters.unshift(n);f.$observe("required",function(){n(h.$viewValue)})}o?k(e,g,h):m?j(e,g,h):i(e,g,h)}}}}],we=["$interpolate",function(a){return{restrict:"E",priority:100,compile:function(c,d){if(B(d.value)){var e=
a(c.text(),!0);if(e)return function(a,c,d){a.$watch(e,function(a){d.$set("value",a)})};else d.$set("value",c.text())}}}}],xe=z({restrict:"E",terminal:!0});(ga=W.jQuery)?(p=ga,u(ga.fn,{scope:ra.scope,controller:ra.controller,injector:ra.injector,inheritedData:ra.inheritedData}),bb("remove",!0),bb("empty"),bb("html")):p=S;hc.element=p;(function(a){u(a,{bootstrap:ub,copy:Y,extend:u,equals:ca,element:p,forEach:l,injector:vb,noop:s,bind:wa,toJson:aa,fromJson:sb,identity:ua,isUndefined:B,isDefined:v,isString:x,
isFunction:K,isObject:L,isNumber:ta,isElement:tc,isArray:H,version:Id,isDate:ja,lowercase:C,uppercase:ia,callbacks:{counter:0}});pa=zc(W);try{pa("ngLocale")}catch(c){pa("ngLocale",[]).provider("$locale",yd)}pa("ng",["ngLocale"],["$provide",function(a){a.provider("$compile",Db).directive({a:Kd,input:lc,textarea:lc,form:Ld,script:te,select:ve,style:xe,option:we,ngBind:Xd,ngBindHtml:Zd,ngBindHtmlUnsafe:Yd,ngBindTemplate:$d,ngClass:ae,ngClassEven:ce,ngClassOdd:be,ngCloak:de,ngController:ee,ngForm:Md,
ngHide:me,ngInclude:ge,ngInit:he,ngNonBindable:ie,ngPluralize:je,ngRepeat:ke,ngShow:le,ngSubmit:fe,ngStyle:ne,ngSwitch:oe,ngSwitchWhen:pe,ngSwitchDefault:qe,ngOptions:ue,ngView:se,ngTransclude:re,ngModel:Rd,ngList:Ud,ngChange:Sd,ngModelInstant:Td,required:mc,ngRequired:mc,ngValue:Wd}).directive(pb).directive(nc);a.provider({$anchorScroll:Ic,$browser:Kc,$cacheFactory:Lc,$controller:Qc,$defer:Rc,$document:Sc,$exceptionHandler:Tc,$filter:Zb,$interpolate:Uc,$http:ud,$httpBackend:vd,$location:Yc,$log:Zc,
$parse:cd,$route:fd,$routeParams:gd,$rootScope:hd,$q:dd,$sanitize:id,$sniffer:sd,$templateCache:Mc,$window:td})}])})(hc);p(X).ready(function(){xc(X,ub)})})(window,document);angular.element(document).find("head").append('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak{display:none;}ng\\:form{display:block;}</style>');

@ -1 +1 @@
1.0.0rc2
1.0.0rc3

@ -1,6 +1,6 @@
/**
* @license AngularJS v1.0.0rc2
* @license AngularJS v1.0.0rc3
* (c) 2010-2011 AngularJS http://angularjs.org
* License: MIT
*
@ -373,146 +373,202 @@ angular.mock.$LogProvider = function() {
};
/**
* @ngdoc object
* @name angular.mock.TzDate
* @description
*
* *NOTE*: this is not an injectable instance, just a globally available mock class of `Date`.
*
* Mock of the Date type which has its timezone specified via constroctor arg.
*
* The main purpose is to create Date-like instances with timezone fixed to the specified timezone
* offset, so that we can test code that depends on local timezone settings without dependency on
* the time zone settings of the machine where the code is running.
*
* @param {number} offset Offset of the *desired* timezone in hours (fractions will be honored)
* @param {(number|string)} timestamp Timestamp representing the desired time in *UTC*
*
* @example
* !!!! WARNING !!!!!
* This is not a complete Date object so only methods that were implemented can be called safely.
* To make matters worse, TzDate instances inherit stuff from Date via a prototype.
*
* We do our best to intercept calls to "unimplemented" methods, but since the list of methods is
* incomplete we might be missing some non-standard methods. This can result in errors like:
* "Date.prototype.foo called on incompatible Object".
*
* <pre>
* var newYearInBratislava = new TzDate(-1, '2009-12-31T23:00:00Z');
* newYearInBratislava.getTimezoneOffset() => -60;
* newYearInBratislava.getFullYear() => 2010;
* newYearInBratislava.getMonth() => 0;
* newYearInBratislava.getDate() => 1;
* newYearInBratislava.getHours() => 0;
* newYearInBratislava.getMinutes() => 0;
* </pre>
*
*/
angular.mock.TzDate = function (offset, timestamp) {
var self = new Date(0);
if (angular.isString(timestamp)) {
var tsStr = timestamp;
self.origDate = angular.fromJson(angular.toJson({date:timestamp})).date;
timestamp = self.origDate.getTime();
if (isNaN(timestamp))
throw {
name: "Illegal Argument",
message: "Arg '" + tsStr + "' passed into TzDate constructor is not a valid date string"
};
} else {
self.origDate = new Date(timestamp);
(function() {
var R_ISO8061_STR = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/;
function jsonStringToDate(string){
var match;
if (match = string.match(R_ISO8061_STR)) {
var date = new Date(0),
tzHour = 0,
tzMin = 0;
if (match[9]) {
tzHour = int(match[9] + match[10]);
tzMin = int(match[9] + match[11]);
}
date.setUTCFullYear(int(match[1]), int(match[2]) - 1, int(match[3]));
date.setUTCHours(int(match[4]||0) - tzHour, int(match[5]||0) - tzMin, int(match[6]||0), int(match[7]||0));
return date;
}
return string;
}
var localOffset = new Date(timestamp).getTimezoneOffset();
self.offsetDiff = localOffset*60*1000 - offset*1000*60*60;
self.date = new Date(timestamp + self.offsetDiff);
function int(str) {
return parseInt(str, 10);
}
self.getTime = function() {
return self.date.getTime() - self.offsetDiff;
};
function padNumber(num, digits, trim) {
var neg = '';
if (num < 0) {
neg = '-';
num = -num;
}
num = '' + num;
while(num.length < digits) num = '0' + num;
if (trim)
num = num.substr(num.length - digits);
return neg + num;
}
self.toLocaleDateString = function() {
return self.date.toLocaleDateString();
};
self.getFullYear = function() {
return self.date.getFullYear();
};
/**
* @ngdoc object
* @name angular.mock.TzDate
* @description
*
* *NOTE*: this is not an injectable instance, just a globally available mock class of `Date`.
*
* Mock of the Date type which has its timezone specified via constroctor arg.
*
* The main purpose is to create Date-like instances with timezone fixed to the specified timezone
* offset, so that we can test code that depends on local timezone settings without dependency on
* the time zone settings of the machine where the code is running.
*
* @param {number} offset Offset of the *desired* timezone in hours (fractions will be honored)
* @param {(number|string)} timestamp Timestamp representing the desired time in *UTC*
*
* @example
* !!!! WARNING !!!!!
* This is not a complete Date object so only methods that were implemented can be called safely.
* To make matters worse, TzDate instances inherit stuff from Date via a prototype.
*
* We do our best to intercept calls to "unimplemented" methods, but since the list of methods is
* incomplete we might be missing some non-standard methods. This can result in errors like:
* "Date.prototype.foo called on incompatible Object".
*
* <pre>
* var newYearInBratislava = new TzDate(-1, '2009-12-31T23:00:00Z');
* newYearInBratislava.getTimezoneOffset() => -60;
* newYearInBratislava.getFullYear() => 2010;
* newYearInBratislava.getMonth() => 0;
* newYearInBratislava.getDate() => 1;
* newYearInBratislava.getHours() => 0;
* newYearInBratislava.getMinutes() => 0;
* </pre>
*
*/
angular.mock.TzDate = function (offset, timestamp) {
var self = new Date(0);
if (angular.isString(timestamp)) {
var tsStr = timestamp;
self.origDate = jsonStringToDate(timestamp)
timestamp = self.origDate.getTime();
if (isNaN(timestamp))
throw {
name: "Illegal Argument",
message: "Arg '" + tsStr + "' passed into TzDate constructor is not a valid date string"
};
} else {
self.origDate = new Date(timestamp);
}
self.getMonth = function() {
return self.date.getMonth();
};
var localOffset = new Date(timestamp).getTimezoneOffset();
self.offsetDiff = localOffset*60*1000 - offset*1000*60*60;
self.date = new Date(timestamp + self.offsetDiff);
self.getDate = function() {
return self.date.getDate();
};
self.getTime = function() {
return self.date.getTime() - self.offsetDiff;
};
self.getHours = function() {
return self.date.getHours();
};
self.toLocaleDateString = function() {
return self.date.toLocaleDateString();
};
self.getMinutes = function() {
return self.date.getMinutes();
};
self.getFullYear = function() {
return self.date.getFullYear();
};
self.getSeconds = function() {
return self.date.getSeconds();
};
self.getMonth = function() {
return self.date.getMonth();
};
self.getTimezoneOffset = function() {
return offset * 60;
};
self.getDate = function() {
return self.date.getDate();
};
self.getUTCFullYear = function() {
return self.origDate.getUTCFullYear();
};
self.getHours = function() {
return self.date.getHours();
};
self.getUTCMonth = function() {
return self.origDate.getUTCMonth();
};
self.getMinutes = function() {
return self.date.getMinutes();
};
self.getUTCDate = function() {
return self.origDate.getUTCDate();
};
self.getSeconds = function() {
return self.date.getSeconds();
};
self.getUTCHours = function() {
return self.origDate.getUTCHours();
};
self.getTimezoneOffset = function() {
return offset * 60;
};
self.getUTCMinutes = function() {
return self.origDate.getUTCMinutes();
};
self.getUTCFullYear = function() {
return self.origDate.getUTCFullYear();
};
self.getUTCSeconds = function() {
return self.origDate.getUTCSeconds();
};
self.getUTCMonth = function() {
return self.origDate.getUTCMonth();
};
self.getDay = function() {
return self.date.getDay();
};
self.getUTCDate = function() {
return self.origDate.getUTCDate();
};
//hide all methods not implemented in this mock that the Date prototype exposes
var unimplementedMethods = ['getMilliseconds', 'getUTCDay',
'getUTCMilliseconds', 'getYear', 'setDate', 'setFullYear', 'setHours', 'setMilliseconds',
'setMinutes', 'setMonth', 'setSeconds', 'setTime', 'setUTCDate', 'setUTCFullYear',
'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth', 'setUTCSeconds',
'setYear', 'toDateString', 'toJSON', 'toGMTString', 'toLocaleFormat', 'toLocaleString',
'toLocaleTimeString', 'toSource', 'toString', 'toTimeString', 'toUTCString', 'valueOf'];
angular.forEach(unimplementedMethods, function(methodName) {
self[methodName] = function() {
throw Error("Method '" + methodName + "' is not implemented in the TzDate mock");
self.getUTCHours = function() {
return self.origDate.getUTCHours();
};
});
return self;
};
self.getUTCMinutes = function() {
return self.origDate.getUTCMinutes();
};
self.getUTCSeconds = function() {
return self.origDate.getUTCSeconds();
};
self.getUTCMilliseconds = function() {
return self.origDate.getUTCMilliseconds();
};
self.getDay = function() {
return self.date.getDay();
};
// provide this method only on browsers that already have it
if (self.toISOString) {
self.toISOString = function() {
return padNumber(self.origDate.getUTCFullYear(), 4) + '-' +
padNumber(self.origDate.getUTCMonth() + 1, 2) + '-' +
padNumber(self.origDate.getUTCDate(), 2) + 'T' +
padNumber(self.origDate.getUTCHours(), 2) + ':' +
padNumber(self.origDate.getUTCMinutes(), 2) + ':' +
padNumber(self.origDate.getUTCSeconds(), 2) + '.' +
padNumber(self.origDate.getUTCMilliseconds(), 3) + 'Z'
}
}
//hide all methods not implemented in this mock that the Date prototype exposes
var unimplementedMethods = ['getMilliseconds', 'getUTCDay',
'getYear', 'setDate', 'setFullYear', 'setHours', 'setMilliseconds',
'setMinutes', 'setMonth', 'setSeconds', 'setTime', 'setUTCDate', 'setUTCFullYear',
'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth', 'setUTCSeconds',
'setYear', 'toDateString', 'toGMTString', 'toJSON', 'toLocaleFormat', 'toLocaleString',
'toLocaleTimeString', 'toSource', 'toString', 'toTimeString', 'toUTCString', 'valueOf'];
angular.forEach(unimplementedMethods, function(methodName) {
self[methodName] = function() {
throw Error("Method '" + methodName + "' is not implemented in the TzDate mock");
};
});
return self;
};
//make "tzDateInstance instanceof Date" return true
angular.mock.TzDate.prototype = Date.prototype;
//make "tzDateInstance instanceof Date" return true
angular.mock.TzDate.prototype = Date.prototype;
})();
/**

File diff suppressed because it is too large Load Diff

@ -1 +1 @@
1.0.0rc2
1.0.0rc3