You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2014/03/31 23:23:41 UTC

[1/9] fixed img path

Repository: incubator-usergrid
Updated Branches:
  refs/heads/master d5b6c97e3 -> ec3f5b1c1
  refs/pull/89/head [created] 09611d5b1
  refs/pull/90/head [created] 70780481a


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b73da256/portal/js/usergrid.min.js
----------------------------------------------------------------------
diff --git a/portal/js/usergrid.min.js b/portal/js/usergrid.min.js
index 1a578a1..3f03288 100644
--- a/portal/js/usergrid.min.js
+++ b/portal/js/usergrid.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-28 */
+/*! usergrid@2.0.1 2014-03-31 */
 !function(exports,global){function renderChart(chartsDefaults,chartdata){var newSettings={};$.extend(!0,newSettings,chartsDefaults,chartdata);new Highcharts.Chart(newSettings)}function menuBindClick(scope,lElement,cevent,menuContext){var currentSelection=angular.element(cevent.srcElement).parent(),previousSelection=scope[menuContext];previousSelection!==currentSelection&&(previousSelection&&angular.element(previousSelection).removeClass("active"),scope[menuContext]=currentSelection,scope.$apply(function(){currentSelection.addClass("active")}))}global["true"]=exports;var polyfills=function(window,Object){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}(),Object.defineProperty(Object.prototype,"clone",{enumerable:!1,writable:!0,value:function(){var i,newObj=this instanceof Arra
 y?[]:{};for(i in this)"clone"!==i&&(newObj[i]=this[i]&&"object"==typeof this[i]?this[i].clone():this[i]);return newObj}}),Object.defineProperty(Object.prototype,"stringifyJSON",{enumerable:!1,writable:!0,value:function(){return JSON.stringify(this,null,"	")}})};polyfills(window,Object);var global=global||this,AppServices=AppServices||{};global.AppServices=global.AppServices||AppServices,AppServices.Constants=angular.module("appservices.constants",[]),AppServices.Services=angular.module("appservices.services",[]),AppServices.Controllers=angular.module("appservices.controllers",[]),AppServices.Filters=angular.module("appservices.filters",[]),AppServices.Directives=angular.module("appservices.directives",[]),AppServices.Performance=angular.module("appservices.performance",[]),AppServices.MAX=angular.module("appservices.max",[]),angular.module("appservices",["ngRoute","ngResource","ngSanitize","ui.bootstrap","angulartics","angulartics.google.analytics","appservices.filters","appservices
 .services","appservices.directives","appservices.constants","appservices.controllers","appservices.max","angular-intro"]).config(["$routeProvider","$locationProvider","$sceDelegateProvider","$analyticsProvider",function($routeProvider,$locationProvider,$sceDelegateProvider,$analyticsProvider){$routeProvider.when("/org-overview",{templateUrl:"org-overview/org-overview.html",controller:"OrgOverviewCtrl"}).when("/login",{templateUrl:"login/login.html",controller:"LoginCtrl"}).when("/login/loading",{templateUrl:"login/loading.html",controller:"LoginCtrl"}).when("/app-overview/summary",{templateUrl:"app-overview/app-overview.html",controller:"AppOverviewCtrl"}).when("/getting-started/setup",{templateUrl:"app-overview/getting-started.html",controller:"GettingStartedCtrl"}).when("/forgot-password",{templateUrl:"login/forgot-password.html",controller:"ForgotPasswordCtrl"}).when("/register",{templateUrl:"login/register.html",controller:"RegisterCtrl"}).when("/users",{templateUrl:"users/users
 .html",controller:"UsersCtrl"}).when("/users/profile",{templateUrl:"users/users-profile.html",controller:"UsersProfileCtrl"}).when("/users/groups",{templateUrl:"users/users-groups.html",controller:"UsersGroupsCtrl"}).when("/users/activities",{templateUrl:"users/users-activities.html",controller:"UsersActivitiesCtrl"}).when("/users/feed",{templateUrl:"users/users-feed.html",controller:"UsersFeedCtrl"}).when("/users/graph",{templateUrl:"users/users-graph.html",controller:"UsersGraphCtrl"}).when("/users/roles",{templateUrl:"users/users-roles.html",controller:"UsersRolesCtrl"}).when("/groups",{templateUrl:"groups/groups.html",controller:"GroupsCtrl"}).when("/groups/details",{templateUrl:"groups/groups-details.html",controller:"GroupsDetailsCtrl"}).when("/groups/members",{templateUrl:"groups/groups-members.html",controller:"GroupsMembersCtrl"}).when("/groups/activities",{templateUrl:"groups/groups-activities.html",controller:"GroupsActivitiesCtrl"}).when("/groups/roles",{templateUrl:"gro
 ups/groups-roles.html",controller:"GroupsRolesCtrl"}).when("/roles",{templateUrl:"roles/roles.html",controller:"RolesCtrl"}).when("/roles/settings",{templateUrl:"roles/roles-settings.html",controller:"RolesSettingsCtrl"}).when("/roles/users",{templateUrl:"roles/roles-users.html",controller:"RolesUsersCtrl"}).when("/roles/groups",{templateUrl:"roles/roles-groups.html",controller:"RolesGroupsCtrl"}).when("/data",{templateUrl:"data/data.html",controller:"DataCtrl"}).when("/data/entity",{templateUrl:"data/entity.html",controller:"EntityCtrl"}).when("/data/shell",{templateUrl:"data/shell.html",controller:"ShellCtrl"}).when("/profile/organizations",{templateUrl:"profile/organizations.html",controller:"OrgCtrl"}).when("/profile/profile",{templateUrl:"profile/profile.html",controller:"ProfileCtrl"}).when("/profile",{templateUrl:"profile/account.html",controller:"AccountCtrl"}).when("/activities",{templateUrl:"activities/activities.html",controller:"ActivitiesCtrl"}).when("/shell",{templateU
 rl:"shell/shell.html",controller:"ShellCtrl"}).when("/logout",{templateUrl:"login/logout.html",controller:"LogoutCtrl"}).otherwise({redirectTo:"/org-overview"}),$locationProvider.html5Mode(!1).hashPrefix("!"),$sceDelegateProvider.resourceUrlWhitelist(["self","http://apigee-internal-prod.jupiter.apigee.net/**","http://apigee-internal-prod.mars.apigee.net/**","https://appservices.apigee.com/**","https://api.usergrid.com/**"]),$analyticsProvider.virtualPageviews(!1),$analyticsProvider.firstPageview(!1)}]),AppServices.Controllers.controller("ActivitiesCtrl",["ug","$scope","$rootScope","$location","$route",function(ug,$scope,$rootScope){$scope.$on("app-activities-received",function(evt,data){$scope.activities=data,$scope.$apply()}),$scope.$on("app-activities-error",function(){$rootScope.$broadcast("alert","error","Application failed to retreive activities data.")}),ug.getActivities()}]),AppServices.Controllers.controller("AppOverviewCtrl",["ug","charts","$scope","$rootScope","$log",funct
 ion(ug,charts,$scope,$rootScope,$log){var createGradient=function(color1,color2){var perShapeGradient={x1:0,y1:0,x2:0,y2:1};return{linearGradient:perShapeGradient,stops:[[0,color1],[1,color2]]}};$scope.appOverview={},$scope.collections=[],$scope.graph="",$scope.$on("top-collections-received",function(event,collections){var dataDescription={bar1:{labels:["Total"],dataAttr:["title","count"],colors:[createGradient("rgba(36,151,212,0.6)","rgba(119,198,240,0.6)")],borderColor:"#1b97d1"}};$scope.collections=collections;var arr=[];for(var i in collections)collections.hasOwnProperty(i)&&arr.push(collections[i]);$scope.appOverview={},$rootScope.chartTemplate?($scope.appOverview.chart=angular.copy($rootScope.chartTemplate.pareto),$scope.appOverview.chart=charts.convertParetoChart(arr,$scope.appOverview.chart,dataDescription.bar1,"1h","NOW"),$scope.applyScope()):ug.httpGet(null,"js/charts/highcharts.json").then(function(success){$rootScope.chartTemplate=success,$scope.appOverview.chart=angular
 .copy($rootScope.chartTemplate.pareto),$scope.appOverview.chart=charts.convertParetoChart(arr,$scope.appOverview.chart,dataDescription.bar1,"1h","NOW"),$scope.applyScope()},function(fail){$log.error("Problem getting chart template",fail)})}),$scope.$on("app-initialized",function(){ug.getTopCollections()}),$rootScope.activeUI&&ug.getTopCollections()}]),AppServices.Controllers.controller("GettingStartedCtrl",["ug","$scope","$rootScope","$location","$timeout","$anchorScroll",function(ug,$scope,$rootScope,$location,$timeout,$anchorScroll){$scope.collections=[],$scope.graph="",$scope.clientID="",$scope.clientSecret="";$scope.regenerateCredentialsDialog=function(modalId){$scope.orgAPICredentials={client_id:"regenerating...",client_secret:"regenerating..."},ug.regenerateAppCredentials(),$scope.hideModal(modalId)},$scope.$on("app-creds-updated",function(event,credentials){credentials?($scope.clientID=credentials.client_id,$scope.clientSecret=credentials.client_secret,$scope.$$phase||$scope.
 $apply()):setTimeout(function(){ug.getAppCredentials()},5e3)}),ug.getAppCredentials(),$scope.contentTitle,$scope.showSDKDetail=function(name){var introContainer=document.getElementById("intro-container");if("nocontent"===name)return introContainer.style.height="0",!0;introContainer.style.opacity=.1,introContainer.style.height="0";var timeout=0;$scope.contentTitle&&(timeout=500),$timeout(function(){introContainer.style.height="1000px",introContainer.style.opacity=1},timeout),$scope.optionName=name,$scope.contentTitle=name,$scope.sdkLink="http://apigee.com/docs/content/"+name+"-sdk-redirect",$scope.docsLink="http://apigee.com/docs/app-services/content/installing-apigee-sdk-"+name,$scope.getIncludeURL=function(){return"app-overview/doc-includes/"+$scope.optionName+".html"}},$scope.scrollToElement=function(elem){return $location.hash(elem),$anchorScroll(),!1}}]),AppServices.Controllers.controller("ChartCtrl",["$scope","$location",function(){}]),AppServices.Directives.directive("chart",f
 unction(){return{restrict:"E",scope:{chartdata:"=chartdata"},template:"<div></div>",replace:!0,controller:function(){},link:function(scope,element,attrs){scope.$watch("chartdata",function(chartdata){if(chartdata){var chartsDefaults={chart:{renderTo:element[0],type:attrs.type||null,height:attrs.height||null,width:attrs.width||null,reflow:!0,animation:!1,zoomType:"x"}};if("pie"===attrs.type&&(chartsDefaults.chart.margin=[0,0,0,0],chartsDefaults.chart.spacingLeft=0,chartsDefaults.chart.spacingRight=0,chartsDefaults.chart.spacingTop=0,chartsDefaults.chart.spacingBottom=0,attrs.titleimage&&(chartdata.title.text='<img src="'+attrs.titleimage+'">'),attrs.titleicon&&(chartdata.title.text='<i class="pictogram '+attrs.titleiconclass+'">'+attrs.titleicon+"</i>"),attrs.titlecolor&&(chartdata.title.style.color=attrs.titlecolor),attrs.titleimagetop&&(chartdata.title.style.marginTop=attrs.titleimagetop),attrs.titleimageleft&&(chartdata.title.style.marginLeft=attrs.titleimageleft)),"line"===attrs.t
 ype&&(chartsDefaults.chart.marginTop=30,chartsDefaults.chart.spacingTop=50),"column"===attrs.type&&(chartsDefaults.chart.marginBottom=80),"area"===attrs.type&&(chartsDefaults.chart.spacingLeft=0,chartsDefaults.chart.spacingRight=0,chartsDefaults.chart.marginLeft=0,chartsDefaults.chart.marginRight=0),Highcharts.setOptions({global:{useUTC:!1},chart:{style:{fontFamily:"marquette-light, Helvetica, Arial, sans-serif"}}}),"line"===attrs.type){var xAxis1=chartdata.xAxis[0];xAxis1.labels.formatter||(xAxis1.labels.formatter=new Function(attrs.xaxislabel)),xAxis1.labels.step||(xAxis1.labels.step=attrs.xaxisstep)}chartdata.tooltip&&"string"==typeof chartdata.tooltip.formatter&&(chartdata.tooltip.formatter=new Function(chartdata.tooltip.formatter)),renderChart(chartsDefaults,chartdata)}},!0)}}}),AppServices.Services.factory("charts",function(){function sortJsonArrayByProperty(objArray,prop){if(arguments.length<2)throw new Error("sortJsonArrayByProp requires 2 arguments");var direct=arguments.le
 ngth>2?arguments[2]:1;if(objArray&&objArray.constructor===Array){var propPath=prop.constructor===Array?prop:prop.split(".");objArray.sort(function(a,b){for(var p in propPath)a[propPath[p]]&&b[propPath[p]]&&(a=a[propPath[p]],b=b[propPath[p]]);return a=a.match(/^\d+$/)?+a:a,b=b.match(/^\d+$/)?+b:b,b>a?-1*direct:a>b?1*direct:0})}}var lineChart,areaChart,paretoChart,pieChart,xaxis,seriesIndex;return{convertLineChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function plotData(counter,dPLength,dataPoints,dataAttrs,detailedView){for(var i=0;dPLength>i;i++)for(var dp=dataPoints[i],localCounter=counter,j=0;j<dataAttrs.length;j++)lineChart.series[localCounter].data.push("undefined"==typeof dp?[i,0]:[i,dp[dataAttrs[j]]]),detailedView||localCounter++}lineChart=chartTemplate,"undefined"==typeof chartData[0]&&(chartData[0]={},chartData[0].datapoints=[]);var label,dataPoints=chartData[0].datapoints,dPLength=dataPoints.length;"YESTERDAY"===currentCompare?(seriesIndex
 =dataDescription.dataAttr.length,label="Yesterday "):"LAST_WEEK"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Last Week "):(lineChart=chartTemplate,seriesIndex=0,lineChart.series=[],label=""),xaxis=lineChart.xAxis[0],xaxis.categories=[],settings.xaxisformat&&(xaxis.labels.formatter=new Function(settings.xaxisformat)),settings.step&&(xaxis.labels.step=settings.step);for(var i=0;dPLength>i;i++){var dp=dataPoints[i];xaxis.categories.push(dp.timestamp)}if(chartData.length>1)for(var l=0;l<chartData.length;l++)chartData[l].chartGroupName&&(dataPoints=chartData[l].datapoints,lineChart.series[l]={},lineChart.series[l].data=[],lineChart.series[l].name=chartData[l].chartGroupName,lineChart.series[l].yAxis=0,lineChart.series[l].type="line",lineChart.series[l].color=dataDescription.colors[i],lineChart.series[l].dashStyle="solid",lineChart.series[l].yAxis.title.text=dataDescription.yAxisLabels,plotData(l,dPLength,dataPoints,dataDescription.detailDataAttr,!0));else{for(var
  steadyCounter=0,i=seriesIndex;i<dataDescription.dataAttr.length+(seriesIndex>0?seriesIndex:0);i++){var yAxisIndex=dataDescription.multiAxis?steadyCounter:0;lineChart.series[i]={},lineChart.series[i].data=[],lineChart.series[i].name=label+dataDescription.labels[steadyCounter],lineChart.series[i].yAxis=yAxisIndex,lineChart.series[i].type="line",lineChart.series[i].color=dataDescription.colors[i],lineChart.series[i].dashStyle="solid",lineChart.yAxis[yAxisIndex].title.text=dataDescription.yAxisLabels[dataDescription.yAxisLabels>1?steadyCounter:0],steadyCounter++}plotData(seriesIndex,dPLength,dataPoints,dataDescription.dataAttr,!1)}return lineChart},convertAreaChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function plotData(counter,dPLength,dataPoints,dataAttrs,detailedView){for(var i=0;dPLength>i;i++)for(var dp=dataPoints[i],localCounter=counter,j=0;j<dataAttrs.length;j++)areaChart.series[localCounter].data.push("undefined"==typeof dp?0:dp[dataAttrs[j]]
 ),detailedView||localCounter++}areaChart=angular.copy(areaChart),"undefined"==typeof chartData[0]&&(chartData[0]={},chartData[0].datapoints=[]);var label,dataPoints=chartData[0].datapoints,dPLength=dataPoints.length;"YESTERDAY"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Yesterday "):"LAST_WEEK"===currentCompare?(seriesIndex=dataDescription.dataAttr.length,label="Last Week "):(areaChart=chartTemplate,seriesIndex=0,areaChart.series=[],label=""),xaxis=areaChart.xAxis[0],xaxis.categories=[],settings.xaxisformat&&(xaxis.labels.formatter=new Function(settings.xaxisformat)),settings.step&&(xaxis.labels.step=settings.step);for(var i=0;dPLength>i;i++){var dp=dataPoints[i];xaxis.categories.push(dp.timestamp)}if(chartData.length>1)for(var l=0;l<chartData.length;l++)chartData[l].chartGroupName&&(dataPoints=chartData[l].datapoints,areaChart.series[l]={},areaChart.series[l].data=[],areaChart.series[l].fillColor=dataDescription.areaColors[l],areaChart.series[l].name=chart
 Data[l].chartGroupName,areaChart.series[l].yAxis=0,areaChart.series[l].type="area",areaChart.series[l].pointInterval=1,areaChart.series[l].color=dataDescription.colors[l],areaChart.series[l].dashStyle="solid",areaChart.series[l].yAxis.title.text=dataDescription.yAxisLabels,plotData(l,dPLength,dataPoints,dataDescription.detailDataAttr,!0));else{for(var steadyCounter=0,i=seriesIndex;i<dataDescription.dataAttr.length+(seriesIndex>0?seriesIndex:0);i++){var yAxisIndex=dataDescription.multiAxis?steadyCounter:0;areaChart.series[i]={},areaChart.series[i].data=[],areaChart.series[i].fillColor=dataDescription.areaColors[i],areaChart.series[i].name=label+dataDescription.labels[steadyCounter],areaChart.series[i].yAxis=yAxisIndex,areaChart.series[i].type="area",areaChart.series[i].pointInterval=1,areaChart.series[i].color=dataDescription.colors[i],areaChart.series[i].dashStyle="solid",areaChart.yAxis[yAxisIndex].title.text=dataDescription.yAxisLabels[dataDescription.yAxisLabels>1?steadyCounter:0
 ],steadyCounter++}plotData(seriesIndex,dPLength,dataPoints,dataDescription.dataAttr,!1)}return areaChart},convertParetoChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){function getPreviousData(){for(var i=0;i<chartTemplate.series[0].data.length;i++)allParetoOptions.push(chartTemplate.xAxis.categories[i])}function createStackedBar(dataDescription,paretoChart){paretoChart.plotOptions={series:{shadow:!1,borderColor:dataDescription.borderColor,borderWidth:1},column:{stacking:"normal",dataLabels:{enabled:!0,color:Highcharts.theme&&Highcharts.theme.dataLabelsColor||"white"}}};var start=dataDescription.dataAttr[1].length,steadyCounter=0;compare&&(paretoChart.legend.enabled=!0);for(var f=seriesIndex;start+seriesIndex>f;f++)paretoChart.series[f]||(paretoChart.series[f]={data:[]}),paretoChart.series[f].data.push(bar[dataDescription.dataAttr[1][steadyCounter]]),paretoChart.series[f].name=""!==label?label+" "+dataDescription.labels[steadyCounter]:dataDescription.l
 abels[steadyCounter],paretoChart.series[f].color=dataDescription.colors[f],paretoChart.series[f].stack=label,steadyCounter++}paretoChart=chartTemplate,"undefined"==typeof chartData&&(chartData=[]);var label,cdLength=chartData.length,compare=!1,allParetoOptions=[],stackedBar=!1;if(seriesIndex=0,"object"==typeof dataDescription.dataAttr[1]&&(stackedBar=!0),"YESTERDAY"===currentCompare?(label="Yesterday ",compare=!0,stackedBar&&(seriesIndex=dataDescription.dataAttr[1].length),getPreviousData()):"LAST_WEEK"===currentCompare?(label="Last Week ",compare=!0,stackedBar&&(seriesIndex=dataDescription.dataAttr[1].length),seriesIndex=getPreviousData()):(compare=!1,label="",paretoChart.xAxis.categories=[],paretoChart.series=[],paretoChart.series[0]={},paretoChart.series[0].data=[],paretoChart.legend.enabled=!1),paretoChart.plotOptions.series.borderColor=dataDescription.borderColor,compare&&!stackedBar){paretoChart.series[1]={},paretoChart.series[1].data=[];for(var i=0;i<allParetoOptions.length;i
 ++)paretoChart.series[1].data.push(0);paretoChart.legend.enabled=!0}for(var i=0;cdLength>i;i++){var bar=chartData[i];if(compare){var newLabel=bar[dataDescription.dataAttr[0]],newValue=bar[dataDescription.dataAttr[1]],previousIndex=allParetoOptions.indexOf(newLabel);previousIndex>-1&&("object"==typeof dataDescription.dataAttr[1]?createStackedBar(dataDescription,paretoChart,paretoChart.series.length):(paretoChart.series[1].data[previousIndex]=newValue,paretoChart.series[1].name=""!==label?label+" "+dataDescription.labels[0]:dataDescription.labels[0],paretoChart.series[1].color=dataDescription.colors[1]))}else paretoChart.xAxis.categories.push(bar[dataDescription.dataAttr[0]]),"object"==typeof dataDescription.dataAttr[1]?createStackedBar(dataDescription,paretoChart,paretoChart.series.length):(paretoChart.series[0].data.push(bar[dataDescription.dataAttr[1]]),paretoChart.series[0].name=dataDescription.labels[0],paretoChart.series[0].color=dataDescription.colors[0])}return paretoChart},co
 nvertPieChart:function(chartData,chartTemplate,dataDescription,settings,currentCompare){var label,cdLength=chartData.length,compare=!1;pieChart=chartTemplate,"YESTERDAY"===currentCompare?(label="Yesterday ",compare=!1):"LAST_WEEK"===currentCompare?(label="Last Week ",compare=!1):(compare=!1,pieChart.series[0].data=[],pieChart.series[0].dataLabels&&"string"==typeof pieChart.series[0].dataLabels.formatter&&(pieChart.series[0].dataLabels.formatter=new Function(pieChart.series[0].dataLabels.formatter))),pieChart.plotOptions.pie.borderColor=dataDescription.borderColor,compare&&(pieChart.series[1].data=[],pieChart.series[1].dataLabels&&"string"==typeof pieChart.series[1].dataLabels.formatter&&(pieChart.series[1].dataLabels.formatter=new Function(pieChart.series[1].dataLabels.formatter)));for(var tempArray=[],i=0;cdLength>i;i++){var pie=chartData[i];tempArray.push({name:pie[dataDescription.dataAttr[0]],y:pie[dataDescription.dataAttr[1]],color:""})}sortJsonArrayByProperty(tempArray,"name");
 for(var i=0;i<tempArray.length;i++)tempArray[i].color=dataDescription.colors[i];return compare?pieChart.series[1].data=tempArray:pieChart.series[0].data=tempArray,pieChart}}}),$(".sessions-bar").sparkline([3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,4,3,5,6,3,4,5,6,7,8,1],{type:"bar",barColor:"#c5c5c5",width:"800px",height:100,barWidth:12,barSpacing:"1px"}),AppServices.Controllers.controller("DataCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope){var init=function(){$scope.verb="GET",$scope.display="",$scope.queryBodyDetail={},$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.entitySelected={},$scope.newCollection={},$rootScope.queryCollection={},$scope.data={},$scope.data.queryPath="",$scope.data.queryBody='{ "name":"value" }',$scope.data.searchString="",$scope.data.queryLimit=""},runQuery=function(verb){$scope.loading=!0;var queryPath=$scope.remove
 FirstSlash($scope.data.queryPath||""),searchString=$scope.data.searchString||"",queryLimit=$scope.data.queryLimit||"",body=JSON.parse($scope.data.queryBody||"{}");"POST"==verb&&$scope.validateJson(!0)?ug.runDataPOSTQuery(queryPath,body):"PUT"==verb&&$scope.validateJson(!0)?ug.runDataPutQuery(queryPath,searchString,queryLimit,body):"DELETE"==verb?ug.runDataDeleteQuery(queryPath,searchString,queryLimit):ug.runDataQuery(queryPath,searchString,queryLimit)};$scope.$on("top-collections-received",function(event,collectionList){$scope.loading=!1;var ignoredCollections=["events"];ignoredCollections.forEach(function(ignoredCollection){collectionList.hasOwnProperty(ignoredCollection)&&delete collectionList[ignoredCollection]}),$scope.collectionList=collectionList,$scope.queryBoxesSelected=!1,$scope.queryPath||$scope.loadCollection("/"+collectionList[Object.keys(collectionList).sort()[0]].name),$scope.applyScope()}),$scope.$on("error-running-query",function(){$scope.loading=!1,runQuery("GET"),$
 scope.applyScope()}),$scope.$on("entity-deleted",function(){$scope.deleteLoading=!1,$rootScope.$broadcast("alert","success","Entities deleted sucessfully"),$scope.queryBoxesSelected=!1,$scope.checkNextPrev(),$scope.applyScope()}),$scope.$on("entity-deleted-error",function(){$scope.deleteLoading=!1,runQuery("GET"),$scope.applyScope()}),$scope.$on("collection-created",function(){$scope.newCollection.name=""}),$scope.$on("query-received",function(event,collection){$scope.loading=!1,$rootScope.queryCollection=collection,ug.getIndexes($scope.data.queryPath),$scope.setDisplayType(),$scope.checkNextPrev(),$scope.applyScope(),$scope.queryBoxesSelected=!1}),$scope.$on("indexes-received",function(event,indexes){}),$scope.$on("app-changed",function(){init()}),$scope.setDisplayType=function(){$scope.display="generic"},$scope.deleteEntitiesDialog=function(modalId){$scope.deleteLoading=!1,$scope.deleteEntities($rootScope.queryCollection,"entity-deleted","error deleting entity"),$scope.hideModal(m
 odalId)},$scope.newCollectionDialog=function(modalId){$scope.newCollection.name?(ug.createCollection($scope.newCollection.name),ug.getTopCollections(),$rootScope.$broadcast("alert","success","Collection created successfully."),$scope.hideModal(modalId)):$rootScope.$broadcast("alert","error","You must specify a collection name.")},$scope.addToPath=function(uuid){$scope.data.queryPath="/"+$rootScope.queryCollection._type+"/"+uuid},$scope.isDeep=function(item){return"[object Object]"===Object.prototype.toString.call(item)},$scope.loadCollection=function(type){$scope.data.queryPath="/"+type.substring(1,type.length),$scope.data.searchString="",$scope.data.queryLimit="",$scope.data.body='{ "name":"value" }',$scope.selectGET(),$scope.applyScope(),$scope.run()},$scope.selectGET=function(){$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="GET"},$scope.selectPOST=function(){$scope.queryBodyDisplay="block",$scope.queryLimitDisplay="n
 one",$scope.queryStringDisplay="none",$scope.verb="POST"},$scope.selectPUT=function(){$scope.queryBodyDisplay="block",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="PUT"},$scope.selectDELETE=function(){$scope.queryBodyDisplay="none",$scope.queryLimitDisplay="block",$scope.queryStringDisplay="block",$scope.verb="DELETE"},$scope.validateJson=function(skipMessage){var queryBody=$scope.data.queryBody;try{queryBody=JSON.parse(queryBody)}catch(e){return $rootScope.$broadcast("alert","error","JSON is not valid"),!1}return queryBody=JSON.stringify(queryBody,null,2),!skipMessage&&$rootScope.$broadcast("alert","success","JSON is valid"),$scope.data.queryBody=queryBody,!0},$scope.saveEntity=function(entity){if(!$scope.validateJson())return!1;var queryBody=entity._json;queryBody=JSON.parse(queryBody),$rootScope.selectedEntity.set(),$rootScope.selectedEntity.set(queryBody),$rootScope.selectedEntity.set("type",entity._data.type),$rootScope.selectedEntity.set("uuid
 ",entity._data.uuid),$rootScope.selectedEntity.save(function(err,data){err?$rootScope.$broadcast("alert","error","error: "+data.error_description):$rootScope.$broadcast("alert","success","entity saved")})},$scope.run=function(){$rootScope.queryCollection="";var verb=$scope.verb;runQuery(verb)},$scope.hasProperty=function(prop){var retval=!1;return"undefined"!=typeof $rootScope.queryCollection._list&&angular.forEach($rootScope.queryCollection._list,function(value){retval||value._data[prop]&&(retval=!0)}),retval},$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$rootScope.queryCollection.hasPreviousPage()&&($scope.previous_display="default"),$rootScope.queryCollection.hasNextPage()&&($scope.next_display="default")},$scope.selectEntity=function(uuid){$rootScope.selectedEntity=$rootScope.queryCollection.getEntityByUUID(uuid),$scope.addToPath(uuid)},$scope.getJSONView=function(entity){var tem
 pjson=entity.get(),queryBody=JSON.stringify(tempjson,null,2);queryBody=JSON.parse(queryBody),delete queryBody.metadata,delete queryBody.uuid,delete queryBody.created,delete queryBody.modified,delete queryBody.type,$scope.queryBody=JSON.stringify(queryBody,null,2)},$scope.getPrevious=function(){$rootScope.queryCollection.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of data"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.getNext=function(){$rootScope.queryCollection.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of data"),$scope.checkNextPrev(),$scope.applyScope()})},init(),$rootScope.queryCollection=$rootScope.queryCollection||{},$rootScope.selectedEntity={},$rootScope.queryCollection&&$rootScope.queryCollection._type&&($scope.loadCollection($rootScope.queryCollection._type),$scope.setDisplayType()),ug.getTopCollections(),$scope.resetNextPrev()}]),AppServices.Controllers.con
 troller("EntityCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){if(!$rootScope.selectedEntity)return void $location.path("/data");$scope.entityUUID=$rootScope.selectedEntity.get("uuid"),$scope.entityType=$rootScope.selectedEntity.get("type");var tempjson=$rootScope.selectedEntity.get(),queryBody=JSON.stringify(tempjson,null,2);queryBody=JSON.parse(queryBody),delete queryBody.metadata,delete queryBody.uuid,delete queryBody.created,delete queryBody.modified,delete queryBody.type,$scope.queryBody=JSON.stringify(queryBody,null,2),$scope.validateJson=function(){var queryBody=$scope.queryBody;try{queryBody=JSON.parse(queryBody)}catch(e){return $rootScope.$broadcast("alert","error","JSON is not valid"),!1}return queryBody=JSON.stringify(queryBody,null,2),$rootScope.$broadcast("alert","success","JSON is valid"),$scope.queryBody=queryBody,!0},$scope.saveEntity=function(){if(!$scope.validateJson())return!1;var queryBody=$scope.queryBody;queryBody=JSON.par
 se(queryBody),$rootScope.selectedEntity.set(),$rootScope.selectedEntity.set(queryBody),$rootScope.selectedEntity.set("type",$scope.entityType),$rootScope.selectedEntity.set("uuid",$scope.entityUUID),$rootScope.selectedEntity.save(function(err,data){err?$rootScope.$broadcast("alert","error","error: "+data.error_description):$rootScope.$broadcast("alert","success","entity saved")})}}]),AppServices.Directives.directive("balloon",["$window","$timeout",function($window,$timeout){return{restrict:"ECA",scope:"=",template:'<div class="baloon {{direction}}" ng-transclude></div>',replace:!0,transclude:!0,link:function(scope,lElement,attrs){scope.direction=attrs.direction;var runScroll=!0,windowEl=angular.element($window);windowEl.on("scroll",function(){runScroll&&(lElement.addClass("fade-out"),$timeout(function(){lElement.addClass("hide")},1e3),runScroll=!1)})}}}]),AppServices.Directives.directive("bsmodal",["$rootScope",function($rootScope){return{restrict:"ECA",scope:{title:"@title",buttoni
 d:"=buttonid",footertext:"=footertext",closelabel:"=closelabel"},transclude:!0,templateUrl:"dialogs/modal.html",replace:!0,link:function(scope,lElement,attrs,parentCtrl){scope.title=attrs.title,scope.footertext=attrs.footertext,scope.closelabel=attrs.closelabel,scope.close=attrs.close,scope.extrabutton=attrs.extrabutton,scope.extrabuttonlabel=attrs.extrabuttonlabel,scope.buttonId=attrs.buttonid,scope.closeDelegate=function(attr){scope.$parent[attr](attrs.id,scope)},scope.extraDelegate=function(attr){scope.dialogForm.$valid?(console.log(parentCtrl),scope.$parent[attr](attrs.id)):$rootScope.$broadcast("alert","error","Please check your form input and resubmit.")}}}}]),AppServices.Controllers.controller("AlertCtrl",["$scope","$rootScope","$timeout",function($scope,$rootScope,$timeout){$scope.alertDisplay="none",$scope.alerts=[],$scope.$on("alert",function(event,type,message,permanent){$scope.addAlert(type,message,permanent)}),$scope.$on("clear-alerts",function(){$scope.alerts=[]}),$sco
 pe.addAlert=function(type,message,permanent){$scope.alertDisplay="block",$scope.alerts.push({type:type,msg:message}),$scope.applyScope(),permanent||$timeout(function(){$scope.alerts.shift()},5e3)},$scope.closeAlert=function(index){$scope.alerts.splice(index,1)}}]),AppServices.Directives.directive("alerti",["$rootScope","$timeout",function($rootScope,$timeout){return{restrict:"ECA",scope:{type:"=type",closeable:"@closeable",index:"&index"},template:'<div class="alert" ng-class="type && \'alert-\' + type">    <button ng-show="closeable" type="button" class="close" ng-click="closeAlert(index)">&times;</button>    <i ng-if="type === \'warning\'" class="pictogram pull-left" style="font-size:3em;line-height:0.4">&#128165;</i>    <i ng-if="type === \'info\'" class="pictogram pull-left">&#8505;</i>    <i ng-if="type === \'error\'" class="pictogram pull-left">&#9889;</i>    <i ng-if="type === \'success\'" class="pictogram pull-left">&#128077;</i><div ng-transclude></div></div>',replace:!0,tr
 ansclude:!0,link:function(scope,lElement,attrs){$timeout(function(){lElement.addClass("fade-out")},4e3),lElement.click(function(){attrs.index&&scope.$parent.closeAlert(attrs.index)}),setTimeout(function(){lElement.addClass("alert-animate")},10)}}}]),AppServices.Directives.directive("appswitcher",["$rootScope",function(){return{restrict:"ECA",scope:"=",templateUrl:"global/appswitcher-template.html",replace:!0,transclude:!0,link:function(){function globalNavDetail(){$("#globalNavDetail > div").removeClass(classNameOpen),$("#globalNavDetailApiPlatform").addClass(classNameOpen)}var classNameOpen="open";$("ul.nav li.dropdownContainingSubmenu").hover(function(){$(this).addClass(classNameOpen)},function(){$(this).removeClass(classNameOpen)}),$("#globalNav > a").mouseover(globalNavDetail),$("#globalNavDetail").mouseover(globalNavDetail),$("#globalNavSubmenuContainer ul li").mouseover(function(){$("#globalNavDetail > div").removeClass(classNameOpen),$("#"+this.getAttribute("data-globalNavDet
 ail")).addClass(classNameOpen)})}}}]),AppServices.Services.factory("help",function($rootScope,$http,$analytics){$rootScope.help={},$rootScope.help.helpButtonStatus="Enable Help",$rootScope.help.helpTooltipsEnabled=!1,$rootScope.help.clicked=!1,$rootScope.help.showHelpButtons=!1;
 var helpStartTime,introjs_step;$rootScope.help.sendTooltipGA=function(tooltipName){$analytics.eventTrack("tooltip - "+$rootScope.currentPath,{category:"App Services",label:tooltipName})},$rootScope.help.toggleTooltips=function(){0==$rootScope.help.helpTooltipsEnabled?($rootScope.help.helpButtonStatus="Disable Help",$rootScope.help.helpTooltipsEnabled=!0,showHelpModal("tooltips")):($rootScope.help.helpButtonStatus="Enable Help",$rootScope.help.helpTooltipsEnabled=!1)},$rootScope.help.IntroOptions={steps:[],showStepNumbers:!1,exitOnOverlayClick:!0,exitOnEsc:!0,nextLabel:"Next",prevLabel:"Back",skipLabel:"Exit",doneLabel:"Done"},$rootScope.$on("$routeChangeSuccess",function(event,current){var path=current.$$route?current.$$route.originalPath:null;"/org-overview"==path?($rootScope.help.showHelpButtons=!0,getHelpJson(path).success(function(json){var helpJson=json;setHelpStrings(helpJson),showHelpModal("tour")})):$rootScope.help.showHelpButtons=!1});var showHelpModal=function(helpType){va
 r shouldHelp=location.search.indexOf("noHelp")<=0;"tour"!=helpType||getHelpStatus(helpType)?"tooltips"!=helpType||getHelpStatus(helpType)||shouldHelp&&$rootScope.showModal("tooltips"):shouldHelp&&$rootScope.showModal("introjs")},setHelpStrings=function(helpJson){$rootScope.help.IntroOptions.steps=helpJson.introjs,angular.forEach(helpJson.tooltip,function(value,binding){$rootScope[binding]=value})};$rootScope.help.introjs_StartEvent=function(){helpStartTime=Date.now(),introjs_step=1},$rootScope.help.introjs_ExitEvent=function(){var introjs_time=Math.round((Date.now()-helpStartTime)/1e3);$analytics.eventTrack("introjs timing - "+$rootScope.currentPath,{category:"App Services",label:introjs_time+"s"}),$analytics.eventTrack("introjs exit - "+$rootScope.currentPath,{category:"App Services",label:"step"+introjs_step})},$rootScope.help.introjs_ChangeEvent=function(){introjs_step++};var getHelpJson=function(path){return $http.jsonp("http://sdk.apigee.com.s3.amazonaws.com/portal_help"+path+"
 /helpJson.json?callback=JSON_CALLBACK")},getHelpStatus=function(helpType){var status;return"tour"==helpType?(status=localStorage.getItem("ftu_tour"),localStorage.setItem("ftu_tour","false")):"tooltips"==helpType&&(status=localStorage.getItem("ftu_tooltips"),localStorage.setItem("ftu_tooltips","false")),status}}),AppServices.Directives.directive("insecureBanner",["$rootScope","ug",function($rootScope,ug){return{restrict:"E",transclude:!0,templateUrl:"global/insecure-banner.html",link:function(scope){scope.securityWarning=!1,scope.$on("roles-received",function(evt,roles){scope.securityWarning=!1,roles&&roles._list&&roles._list.forEach(function(roleHolder){var role=roleHolder._data;"GUEST"===role.name.toUpperCase()&&roleHolder.getPermissions(function(err){err||roleHolder.permissions&&roleHolder.permissions.forEach(function(permission){permission.path.indexOf("/**")>=0&&(scope.securityWarning=!0,scope.applyScope())})})})});var initialized=!1;scope.$on("app-initialized",function(){!initi
 alized&&ug.getRoles(),initialized=!0}),scope.$on("app-changed",function(){scope.securityWarning=!1,ug.getRoles()})}}}]),AppServices.Constants.constant("configuration",{ITEMS_URL:"global/temp.json"}),AppServices.Controllers.controller("PageCtrl",["ug","help","utility","$scope","$rootScope","$location","$routeParams","$q","$route","$log","$analytics",function(ug,help,utility,$scope,$rootScope,$location,$routeParams,$q,$route,$log,$analytics){var initScopeVariables=function(){$scope.loadingText="Loading...",$scope.use_sso=!1,$scope.newApp={name:""},$scope.getPerm="",$scope.postPerm="",$scope.putPerm="",$scope.deletePerm="",$scope.usersTypeaheadValues=[],$scope.groupsTypeaheadValues=[],$scope.rolesTypeaheadValues=[],$rootScope.sdkActive=!1,$rootScope.demoData=!1,$scope.queryStringApplied=!1,$rootScope.autoUpdateTimer=Usergrid.config?Usergrid.config.autoUpdateTimer:61,$rootScope.requiresDeveloperKey=Usergrid.config?Usergrid.config.client.requiresDeveloperKey:!1,$rootScope.loaded=$rootSco
 pe.activeUI=!1;for(var key in Usergrid.regex)$scope[key]=Usergrid.regex[key];$scope.options=Usergrid.options;var getQuery=function(){for(var m,result={},queryString=location.search.slice(1),re=/([^&=]+)=([^&]*)/g;m=re.exec(queryString);)result[decodeURIComponent(m[1])]=decodeURIComponent(m[2]);return result};$scope.queryString=getQuery()};initScopeVariables(),$rootScope.urls=function(){var urls=ug.getUrls();return $scope.apiUrl=urls.apiUrl,$scope.use_sso=urls.use_sso,urls},$rootScope.gotoPage=function(path){$location.path(path)};var notRegistration=function(){return"/forgot-password"!==$location.path()&&"/register"!==$location.path()},verifyUser=function(){"/login"!==$location.path().slice(0,"/login".length)&&($rootScope.currentPath=$location.path()),$routeParams.access_token&&$routeParams.admin_email&&$routeParams.uuid&&(ug.set("token",$routeParams.access_token),ug.set("email",$routeParams.admin_email),ug.set("uuid",$routeParams.uuid),$location.search("access_token",null),$location
 .search("admin_email",null),$location.search("uuid",null)),ug.checkAuthentication(!0)};$scope.profile=function(){$scope.use_sso?window.location=$rootScope.urls().PROFILE_URL+"?callback="+encodeURIComponent($location.absUrl()):$location.path("/profile")},$rootScope.showModal=function(id){$("#"+id).modal("show")},$rootScope.hideModal=function(id){$("#"+id).modal("hide")},$scope.deleteEntities=function(collection,successBroadcast,errorMessage){collection.resetEntityPointer();for(var entitiesToDelete=[];collection.hasNextEntity();){var entity=collection.getNextEntity(),checked=entity.checked;checked&&entitiesToDelete.push(entity)}for(var count=0,success=!1,i=0;i<entitiesToDelete.length;i++){var entity=entitiesToDelete[i];collection.destroyEntity(entity,function(err){count++,err?($rootScope.$broadcast("alert","error",errorMessage),$rootScope.$broadcast(successBroadcast+"-error",err)):success=!0,count===entitiesToDelete.length&&(success&&$rootScope.$broadcast(successBroadcast),$scope.appl
 yScope())})}},$scope.selectAllEntities=function(list,that,varName,setValue){varName=varName||"master";var val=that[varName];void 0==setValue&&(setValue=!0),setValue&&(that[varName]=val=!val),list.forEach(function(entitiy){entitiy.checked=val})},$scope.createPermission=function(type,entity,path,permissions){"/"!=path.charAt(0)&&(path="/"+path);var ops="",s="";permissions.getPerm&&(ops="get",s=","),permissions.postPerm&&(ops=ops+s+"post",s=","),permissions.putPerm&&(ops=ops+s+"put",s=","),permissions.deletePerm&&(ops=ops+s+"delete",s=",");var permission=ops+":"+path;return permission},$scope.formatDate=function(date){return new Date(date).toUTCString()},$scope.clearCheckbox=function(id){$("#"+id).attr("checked")&&$("#"+id).click()},$scope.removeFirstSlash=function(path){return 0===path.indexOf("/")?path.substring(1,path.length):path},$scope.applyScope=function(cb){return cb="function"==typeof cb?cb:function(){},this.$$phase?void cb():this.$apply(cb)},$scope.valueSelected=function(list
 ){return list&&list.some(function(item){return item.checked})},$scope.sendHelp=function(modalId){ug.jsonpRaw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$scope.hideModal(modalId)},$scope.$on("users-typeahead-received",function(event,users){$scope.usersTypeaheadValues=users,$scope.$$phase||$scope.$apply()}),$scope.$on("groups-typeahead-received",function(event,groups){$scope.groupsTypeaheadValues=groups,$scope.$$phase||$scope.$apply()}),$scope.$on("roles-typeahead-received",function(event,roles){$scope.rolesTypeaheadValues=roles,$scope.$$phase||$scope.$apply()}),$scope.$on("checkAuthentication-success",function(){sessionStorage.setItem("authenticateAttempts",0),$scope.loaded=!0,$rootScope.activeUI=!0,$scope.applyScope(),$scope.queryStringA
 pplied||($scope.queryStringApplied=!0,setTimeout(function(){$scope.queryString.org&&$rootScope.$broadcast("change-org",$scope.queryString.org)},1e3)),$rootScope.$broadcast("app-initialized")}),$scope.$on("checkAuthentication-error",function(args,err,missingData,email){if($scope.loaded=!0,err&&!$scope.use_sso&&notRegistration())ug.logout(),$location.path("/login"),$scope.applyScope();else if(missingData&&notRegistration()){if(!email&&$scope.use_sso)return void(window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0]));ug.reAuthenticate(email)}}),$scope.$on("reAuthenticate-success",function(args,err,data,user,organizations,applications){sessionStorage.setItem("authenticateAttempts",0),$rootScope.$broadcast("loginSuccesful",user,organizations,applications),$rootScope.$emit("loginSuccesful",user,organizations,applications),$rootScope.$broadcast("checkAuthentication-success"),$scope.applyScope(function(){$scope.deferredLogin.resolve(),$
 location.path("/org-overview")})});var authenticateAttempts=parseInt(sessionStorage.getItem("authenticateAttempts")||0);$scope.$on("reAuthenticate-error",function(){if($scope.use_sso){if(authenticateAttempts++>5)return void $rootScope.$broadcast("alert","error","There is an issue with authentication. Please contact support.");console.error("Failed to login via sso "+authenticateAttempts),sessionStorage.setItem("authenticateAttempts",authenticateAttempts),window.location=$rootScope.urls().LOGIN_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0])}else notRegistration()&&(ug.logout(),$location.path("/login"),$scope.applyScope())}),$scope.$on("loginSuccessful",function(){$rootScope.activeUI=!0}),$scope.$on("app-changed",function(args,oldVal,newVal,preventReload){newVal===oldVal||preventReload||$route.reload()}),$scope.$on("org-changed",function(){ug.getApplications(),$route.reload()}),$scope.$on("app-settings-received",function(){}),$scope.$on("request-times-slow",func
 tion(){$rootScope.$broadcast("alert","info","We are experiencing performance issues on our server.  Please click Get Help for support if this continues.")});var lastPage="";$scope.$on("$routeChangeSuccess",function(){verifyUser(),$scope.showDemoBar="/performance"===$location.path().slice(0,"/performance".length),$scope.showDemoBar||($rootScope.demoData=!1),setTimeout(function(){lastPage=""},50);var path=window.location.pathname.replace("index-debug.html","");""===lastPage&&$analytics.pageTrack((path+$location.path()).replace("//","/")),lastPage=$location.path()}),$scope.$on("applications-received",function(event,applications){$scope.applications=applications,$scope.hasApplications=Object.keys(applications).length>0}),ug.getAppSettings(),$rootScope.startFirstTimeUser=function(){$rootScope.hideModal("introjs"),$rootScope.help.introjs_StartEvent(),$scope.startHelp()}}]),AppServices.Directives.directive("pageTitle",["$rootScope","ug",function($rootScope){return{restrict:"E",transclude:!
 0,templateUrl:"global/page-title.html",link:function(scope,lElement,attrs){scope.title=attrs.title,scope.icon=attrs.icon,scope.showHelp=function(){$("#need-help").modal("show")},scope.sendHelp=function(){data.jsonp_raw("apigeeuihelpemail","",{useremail:$rootScope.userEmail}).then(function(){$rootScope.$broadcast("alert","success","Email sent. Our team will be in touch with you shortly.")},function(){$rootScope.$broadcast("alert","error","Problem Sending Email. Try sending an email to mobile@apigee.com.")}),$("#need-help").modal("hide")}}}}]),AppServices.Services.factory("ug",function(configuration,$rootScope,utility,$q,$http,$resource,$log,$analytics,$location){function reportError(data,config){try{$analytics.eventTrack("error",{category:"App Services",label:data+":"+config.url+":"+(sessionStorage.apigee_uuid||"na")})}catch(e){console.log(e)}}var requestTimes=[],running=!1,currentRequests={},getAccessToken=function(){return sessionStorage.getItem("accessToken")};return{get:function(
 prop,isObject){return isObject?this.client().getObject(prop):this.client().get(prop)},set:function(prop,value){this.client().set(prop,value)},getUrls:function(){var host=$location.host(),qs=$location.search(),BASE_URL="",DATA_URL="",use_sso=!1;switch(!0){case"appservices.apigee.com"===host&&location.pathname.indexOf("/dit")>=0:BASE_URL="https://accounts.jupiter.apigee.net",DATA_URL="http://apigee-internal-prod.jupiter.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host&&location.pathname.indexOf("/mars")>=0:BASE_URL="https://accounts.mars.apigee.net",DATA_URL="http://apigee-internal-prod.mars.apigee.net",use_sso=!0;break;case"appservices.apigee.com"===host:DATA_URL=Usergrid.overrideUrl;break;case"apigee.com"===host:BASE_URL="https://accounts.apigee.com",DATA_URL="https://api.usergrid.com",use_sso=!0;break;case"usergrid.dev"===host:DATA_URL="https://api.usergrid.com";break;default:DATA_URL=Usergrid.overrideUrl}return DATA_URL=qs.api_url||DATA_URL,DATA_URL=DATA_URL.lastIn
 dexOf("/")===DATA_URL.length-1?DATA_URL.substring(0,DATA_URL.length-1):DATA_URL,{DATA_URL:DATA_URL,LOGIN_URL:BASE_URL+"/accounts/sign_in",PROFILE_URL:BASE_URL+"/accounts/my_account",LOGOUT_URL:BASE_URL+"/accounts/sign_out",apiUrl:DATA_URL,use_sso:use_sso}},orgLogin:function(username,password){var self=this;this.client().set("email",username),this.client().set("token",null),this.client().orgLogin(username,password,function(err,data,user,organizations,applications){err?$rootScope.$broadcast("loginFailed",err,data):self.initializeCurrentUser(function(){$rootScope.$broadcast("loginSuccesful",user,organizations,applications)})})},checkAuthentication:function(force){var ug=this,client=ug.client(),initialize=function(){ug.initializeCurrentUser(function(){$rootScope.userEmail=client.get("email"),$rootScope.organizations=client.getObject("organizations"),$rootScope.applications=client.getObject("applications"),$rootScope.currentOrg=client.get("orgName"),$rootScope.currentApp=client.get("appN
 ame");var key,size=0;for(key in $rootScope.applications)$rootScope.applications.hasOwnProperty(key)&&size++;$rootScope.$broadcast("checkAuthentication-success",client.getObject("organizations"),client.getObject("applications"),client.get("orgName"),client.get("appName"),client.get("email"))})},isAuthenticated=function(){var authenticated=null!==client.get("token")&&null!==client.get("organizations");return authenticated&&initialize(),authenticated};if(!isAuthenticated()||force){if(!client.get("token"))return $rootScope.$broadcast("checkAuthentication-error","no token",{},client.get("email"));this.client().reAuthenticateLite(function(err){var missingData=err||!client.get("orgName")||!client.get("appName")||!client.getObject("organizations")||!client.getObject("applications"),email=client.get("email");err||missingData?$rootScope.$broadcast("checkAuthentication-error",err,missingData,email):initialize()})}},reAuthenticate:function(email,eventOveride){var ug=this;this.client().reAuthent
 icate(email,function(err,data,user,organizations,applications){err||($rootScope.currentUser=user),err||($rootScope.userEmail=user.get("email"),$rootScope.organizations=organizations,$rootScope.applications=applications,$rootScope.currentOrg=ug.get("orgName"),$rootScope.currentApp=ug.get("appName"),$rootScope.currentUser=user._data,$rootScope.currentUser.profileImg=utility.get_gravatar($rootScope.currentUser.email)),$rootScope.$broadcast((eventOveride||"reAuthenticate")+"-"+(err?"error":"success"),err,data,user,organizations,applications)})},logoutCallback:function(){$rootScope.$broadcast("userNotAuthenticated")},logout:function(){$rootScope.activeUI=!1,$rootScope.userEmail="user@apigee.com",$rootScope.organizations={noOrg:{name:"No Orgs Found"}},$rootScope.applications={noApp:{name:"No Apps Found"}},$rootScope.currentOrg="No Org Found",$rootScope.currentApp="No App Found",sessionStorage.setItem("accessToken",null),sessionStorage.setItem("userUUID",null),sessionStorage.setItem("userE
 mail",null),this.client().logout(),this._client=null},client:function(){var options={buildCurl:!0,logging:!0};return Usergrid.options&&Usergrid.options.client&&(options.keys=Usergrid.options.client),this._client=this._client||new Usergrid.Client(options,$rootScope.urls().DATA_URL),this._client},setClientProperty:function(key,value){this.client().set(key,value)},getTopCollections:function(){var options={method:"GET",endpoint:""};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting collections");else{var collections=data.entities[0].metadata.collections;$rootScope.$broadcast("top-collections-received",collections)}})},createCollection:function(collectionName){var collections={};collections[collectionName]={};var metadata={metadata:{collections:collections}},options={method:"PUT",body:metadata,endpoint:""};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error creating collection"):$rootScope.
 $broadcast("collection-created",collections)})},getApplications:function(){this.client().getApplications(function(err,applications){err?applications&&console.error(applications):$rootScope.$broadcast("applications-received",applications)})},getAdministrators:function(){this.client().getAdministrators(function(err,administrators){err&&$rootScope.$broadcast("alert","error","error getting administrators"),$rootScope.$broadcast("administrators-received",administrators)})},createApplication:function(appName){this.client().createApplication(appName,function(err,applications){err?$rootScope.$broadcast("alert","error","error creating application"):($rootScope.$broadcast("applications-created",applications,appName),$rootScope.$broadcast("applications-received",applications))})},createAdministrator:function(adminName){this.client().createAdministrator(adminName,function(err,administrators){err&&$rootScope.$broadcast("alert","error","error creating administrator"),$rootScope.$broadcast("admini
 strators-received",administrators)})},getFeed:function(){var options={method:"GET",endpoint:"management/organizations/"+this.client().get("orgName")+"/feed",mQuery:!0};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting feed");else{var feedData=data.entities,feed=[],i=0;for(i=0;i<feedData.length;i++){var date=new Date(feedData[i].created).toUTCString(),title=feedData[i].title,n=title.indexOf(">");title=title.substring(n+1,title.length),n=title.indexOf(">"),title=title.substring(n+1,title.length),feedData[i].actor&&(title=feedData[i].actor.displayName+" "+title),feed.push({date:date,title:title})}0===i&&feed.push({date:"",title:"No Activities found."}),$rootScope.$broadcast("feed-received",feed)}})},createGroup:function(path,title){var options={path:path,title:title},self=this;this.groupsCollection.addEntity(options,function(err){err?$rootScope.$broadcast("groups-create-error",err):($rootScope.$broadcast("groups-create-success"
 ,self.groupsCollection),$rootScope.$broadcast("groups-received",self.groupsCollection))})},createRole:function(name,title){var options={name:name,title:title},self=this;this.rolesCollection.addEntity(options,function(err){err?$rootScope.$broadcast("alert","error","error creating role"):$rootScope.$broadcast("roles-received",self.rolesCollection)})},createUser:function(username,name,email,password){var options={username:username,name:name,email:email,password:password},self=this;this.usersCollection.addEntity(options,function(err,data){err?"string"==typeof data?$rootScope.$broadcast("alert","error","error: "+data):$rootScope.$broadcast("alert","error","error creating user. the email address might already exist."):($rootScope.$broadcast("users-create-success",self.usersCollection),$rootScope.$broadcast("users-received",self.usersCollection))})},getCollection:function(type,path,orderBy,query,limit){var options={type:path,qs:{}};query&&(options.qs.ql=query),options.qs.ql=options.qs.ql?o
 ptions.qs.ql+" order by "+(orderBy||"created desc"):" order by "+(orderBy||"created desc"),limit&&(options.qs.limit=limit),this.client().createCollection(options,function(err,collection,data){err?$rootScope.$broadcast("alert","error","error getting "+collection._type+": "+data.error_description):$rootScope.$broadcast(type+"-received",collection),$rootScope.$$phase||$rootScope.$apply()})},runDataQuery:function(queryPath,searchString,queryLimit){this.getCollection("query",queryPath,null,searchString,queryLimit)},runDataPOSTQuery:function(queryPath,body){var self=this,options={method:"POST",endpoint:queryPath,body:body};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description),$rootScope.$broadcast("error-running-query",data);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataPutQuery:function(queryPath,searchString,queryLimit,body){var self=this,options={
 method:"PUT",endpoint:queryPath,body:body};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},runDataDeleteQuery:function(queryPath,searchString,queryLimit){var self=this,options={method:"DELETE",endpoint:queryPath};searchString&&(options.qs.ql=searchString),queryLimit&&(options.qs.queryLimit=queryLimit),this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error: "+data.error_description);else{var queryPath=data.path;self.getCollection("query",queryPath,null,"order by modified DESC",null)}})},getUsers:function(){this.getCollection("users","users","username");var self=this;$rootScope.$on("users-received",function(evt,users){self.usersCollection=users})},getGroups:function(){
 this.getCollection("groups","groups","title");var self=this;$rootScope.$on("groups-received",function(event,roles){self.groupsCollection=roles})},getRoles:function(){this.getCollection("roles","roles","name");var self=this;$rootScope.$on("roles-received",function(event,roles){self.rolesCollection=roles})},getNotifiers:function(){var query="",limit="100",self=this;this.getCollection("notifiers","notifiers","created",query,limit),$rootScope.$on("notifiers-received",function(event,notifiers){self.notifiersCollection=notifiers})},getNotificationHistory:function(type){var query=null;type&&(query="select * where state = '"+type+"'"),this.getCollection("notifications","notifications","created desc",query);var self=this;$rootScope.$on("notifications-received",function(event,notifications){self.notificationCollection=notifications})},getNotificationReceipts:function(uuid){this.getCollection("receipts","notifications/"+uuid+"/receipts");var self=this;$rootScope.$on("receipts-received",functio
 n(event,receipts){self.receiptsCollection=receipts})},getIndexes:function(path){var options={method:"GET",endpoint:path.split("/").concat("indexes").filter(function(bit){return bit&&bit.length}).join("/")};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem getting indexes: "+data.error):$rootScope.$broadcast("indexes-received",data.data)})},sendNotification:function(path,body){var options={method:"POST",endpoint:path,body:body};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Problem creating notification: "+data.error):$rootScope.$broadcast("send-notification-complete")})},getRolesUsers:function(username){var options={type:"roles/users/"+username,qs:{ql:"order by username"}};this.client().createCollection(options,function(err,users){err?$rootScope.$broadcast("alert","error","error getting users"):$rootScope.$broadcast("users-received",users)})},getTypeAheadData:function(type,searchString,sea
 rchBy,orderBy){var search="",qs={limit:100};searchString&&(search="select * where "+searchBy+" = '"+searchString+"'"),orderBy&&(search=search+" order by "+orderBy),search&&(qs.ql=search);var options={method:"GET",endpoint:type,qs:qs};this.client().request(options,function(err,data){if(err)$rootScope.$broadcast("alert","error","error getting "+type);else{var entities=data.entities;$rootScope.$broadcast(type+"-typeahead-received",entities)}})},getUsersTypeAhead:function(searchString){this.getTypeAheadData("users",searchString,"username","username")},getGroupsTypeAhead:function(searchString){this.getTypeAheadData("groups",searchString,"path","path")},getRolesTypeAhead:function(searchString){this.getTypeAheadData("roles",searchString,"name","name")},getGroupsForUser:function(user){var options={type:"users/"+user+"/groups"};this.client().createCollection(options,function(err,groups){err?$rootScope.$broadcast("alert","error","error getting groups"):$rootScope.$broadcast("user-groups-recei
 ved",groups)})},addUserToGroup:function(user,group){var options={type:"users/"+user+"/groups/"+group};this.client().createEntity(options,function(err){err?$rootScope.$broadcast("alert","error","error adding user to group"):$rootScope.$broadcast("user-added-to-group-received")})},addUserToRole:function(user,role){var options={method:"POST",endpoint:"roles/"+role+"/users/"+user};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding user to role"):$rootScope.$broadcast("role-update-received")})},addGroupToRole:function(group,role){var options={method:"POST",endpoint:"roles/"+role+"/groups/"+group};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding group to role"):$rootScope.$broadcast("role-update-received")})},followUser:function(user){var username=$rootScope.selectedUser.get("uuid"),options={method:"POST",endpoint:"users/"+username+"/following/users/"+user};this.client().request(options,fun
 ction(err){err?$rootScope.$broadcast("alert","error","error following user"):$rootScope.$broadcast("follow-user-received")})},newPermission:function(permission,type,entity){var options={method:"POST",endpoint:type+"/"+entity+"/permissions",body:{permission:permission}};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error adding permission"):$rootScope.$broadcast("permission-update-received")})},newUserPermission:function(permission,username){this.newPermission(permission,"users",username)},newGroupPermission:function(permission,path){this.newPermission(permission,"groups",path)},newRolePermission:function(permission,name){this.newPermission(permission,"roles",name)},deletePermission:function(permission,type,entity){var options={method:"DELETE",endpoint:type+"/"+entity+"/permissions",qs:{permission:permission}};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error deleting permission"):$rootScope.$broadcas
 t("permission-update-received")})},deleteUserPermission:function(permission,user){this.deletePermission(permission,"users",user)},deleteGroupPermission:function(permission,group){this.deletePermission(permission,"groups",group)},deleteRolePermission:function(permission,rolename){this.deletePermission(permission,"roles",rolename)},removeUserFromRole:function(user,role){var options={method:"DELETE",endpoint:"roles/"+role+"/users/"+user};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error removing user from role"):$rootScope.$broadcast("role-update-received")})},removeUserFromGroup:function(group,role){var options={method:"DELETE",endpoint:"roles/"+role+"/groups/"+group};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error removing role from the group"):$rootScope.$broadcast("role-update-received")})},createAndroidNotifier:function(name,APIkey){var options={method:"POST",endpoint:"notifiers",body:{apiKey:A
 PIkey,name:name,provider:"google"}};this.client().request(options,function(err,data){err?(console.error(data),$rootScope.$broadcast("alert","error","error creating notifier ")):($rootScope.$broadcast("alert","success","New notifier created successfully."),$rootScope.$broadcast("notifier-update"))})},createAppleNotifier:function(file,name,environment,certificatePassword){var provider="apple",formData=new FormData;formData.append("p12Certificate",file),formData.append("name",name),formData.append("provider",provider),formData.append("environment",environment),formData.append("certificatePassword",certificatePassword||"");var options={method:"POST",endpoint:"notifiers",formData:formData};this.client().request(options,function(err,data){err?(console.error(data),$rootScope.$broadcast("alert","error",data.error_description||"error creating notifier")):($rootScope.$broadcast("alert","success","New notifier created successfully."),$rootScope.$broadcast("notifier-update"))})},deleteNotifier:
 function(name){var options={method:"DELETE",endpoint:"notifiers/"+name};this.client().request(options,function(err){err?$rootScope.$broadcast("alert","error","error deleting notifier"):$rootScope.$broadcast("notifier-update")})},initializeCurrentUser:function(callback){if(callback=callback||function(){},$rootScope.currentUser&&!$rootScope.currentUser.reset)return callback($rootScope.currentUser),$rootScope.$broadcast("current-user-initialized","");var options={method:"GET",endpoint:"management/users/"+this.client().get("email"),mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("alert","error","Error getting user info"):($rootScope.currentUser=data.data,$rootScope.currentUser.profileImg=utility.get_gravatar($rootScope.currentUser.email),$rootScope.userEmail=$rootScope.currentUser.email,callback($rootScope.currentUser),$rootScope.$broadcast("current-user-initialized",$rootScope.currentUser))})},updateUser:function(user){var body=$rootScope.currentUs
 er;body.username=user.username,body.name=user.name,body.email=user.email;var options={method:"PUT",endpoint:"management/users/"+user.uuid+"/",mQuery:!0,body:body},self=this;this.client().request(options,function(err,data){return self.client().set("email",user.email),self.client().set("username",user.username),err?$rootScope.$broadcast("user-update-error",data):($rootScope.currentUser.reset=!0,void self.initializeCurrentUser(function(){$rootScope.$broadcast("user-update-success",$rootScope.currentUser)}))})},resetUserPassword:function(user){var pwdata={};pwdata.oldpassword=user.oldPassword,pwdata.newpassword=user.newPassword,pwdata.username=user.username;var options={method:"PUT",endpoint:"users/"+pwdata.uuid+"/",body:pwdata};this.client().request(options,function(err){return err?$rootScope.$broadcast("alert","error","Error resetting password"):($rootScope.currentUser.oldPassword="",$rootScope.currentUser.newPassword="",void $rootScope.$broadcast("user-reset-password-success",$rootSc
 ope.currentUser))})},getOrgCredentials:function(){var options={method:"GET",endpoint:"management/organizations/"+this.client().get("orgName")+"/credentials",mQuery:!0};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error getting credentials"):$rootScope.$broadcast("org-creds-updated",data.credentials)})},regenerateOrgCredentials:function(){var options={method:"POST",endpoint:"management/organizations/"+this.client().get("orgName")+"/credentials",mQuery:!0};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error regenerating credentials"):($rootScope.$broadcast("alert","success","Regeneration of credentials complete."),$rootScope.$broadcast("org-creds-updated",data.credentials))})},getAppCredentials:function(){var options={method:"GET",endpoint:"credentials"};this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","err
 or","Error getting credentials"):$rootScope.$broadcast("app-creds-updated",data.credentials)})},regenerateAppCredentials:function(){var options={method:"POST",endpoint:"credentials"};
 this.client().request(options,function(err,data){err&&data.credentials?$rootScope.$broadcast("alert","error","Error regenerating credentials"):($rootScope.$broadcast("alert","success","Regeneration of credentials complete."),$rootScope.$broadcast("app-creds-updated",data.credentials))})},signUpUser:function(orgName,userName,name,email,password){var formData={organization:orgName,username:userName,name:name,email:email,password:password},options={method:"POST",endpoint:"management/organizations",body:formData,mQuery:!0},client=this.client();client.request(options,function(err,data){err?$rootScope.$broadcast("register-error",data):$rootScope.$broadcast("register-success",data)})},resendActivationLink:function(id){var options={method:"GET",endpoint:"management/users/"+id+"/reactivate",mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("resend-activate-error",data):$rootScope.$broadcast("resend-activate-success",data)})},getAppSettings:function(){$root
 Scope.$broadcast("app-settings-received",{})},getActivities:function(){this.client().request({method:"GET",endpoint:"activities",qs:{limit:200}},function(err,data){if(err)return $rootScope.$broadcast("app-activities-error",data);var entities=data.entities;entities.forEach(function(entity){entity.actor.picture?(entity.actor.picture=entity.actor.picture.replace(/^http:\/\/www.gravatar/i,"https://secure.gravatar"),entity.actor.picture=~entity.actor.picture.indexOf("http")?entity.actor.picture:"https://apigee.com/usergrid/img/user_profile.png"):entity.actor.picture=window.location.protocol+"//"+window.location.host+window.location.pathname+"img/user_profile.png"}),$rootScope.$broadcast("app-activities-received",data.entities)})},getEntityActivities:function(entity,isFeed){var route=isFeed?"feed":"activities",endpoint=entity.get("type")+"/"+entity.get("uuid")+"/"+route,options={method:"GET",endpoint:endpoint,qs:{limit:200}};this.client().request(options,function(err,data){err&&$rootScope
 .$broadcast(entity.get("type")+"-"+route+"-error",data),data.entities.forEach(function(entityInstance){entityInstance.createdDate=new Date(entityInstance.created).toUTCString()}),$rootScope.$broadcast(entity.get("type")+"-"+route+"-received",data.entities)})},addUserActivity:function(user,content){var options={actor:{displayName:user.get("username"),uuid:user.get("uuid"),username:user.get("username")},verb:"post",content:content};this.client().createUserActivity(user.get("username"),options,function(err,activity){err?$rootScope.$broadcast("user-activity-add-error",err):$rootScope.$broadcast("user-activity-add-success",activity)})},runShellQuery:function(method,path,payload){var path=path.replace(/^\//,""),options={method:method,endpoint:path};payload&&(options.body=payload),this.client().request(options,function(err,data){err?$rootScope.$broadcast("shell-error",data):$rootScope.$broadcast("shell-success",data)})},addOrganization:function(user,orgName){var options={method:"POST",endp
 oint:"management/users/"+user.uuid+"/organizations",body:{organization:orgName},mQuery:!0},client=this.client();client.request(options,function(err,data){err?$rootScope.$broadcast("user-add-org-error",data):$rootScope.$broadcast("user-add-org-success",$rootScope.organizations)})},leaveOrganization:function(user,org){var options={method:"DELETE",endpoint:"management/users/"+user.uuid+"/organizations/"+org.uuid,mQuery:!0};this.client().request(options,function(err,data){err?$rootScope.$broadcast("user-leave-org-error",data):(delete $rootScope.organizations[org.name],$rootScope.$broadcast("user-leave-org-success",$rootScope.organizations))})},httpGet:function(id,url){var deferred;return deferred=$q.defer(),$http.get(url||configuration.ITEMS_URL).success(function(data){var result;id?angular.forEach(data,function(obj){obj.id===id&&(result=obj)}):result=data,deferred.resolve(result)}).error(function(data,status,headers,config){$log.error(data,status,headers,config),reportError(data,config
 ),deferred.reject(data)}),deferred.promise},jsonp:function(objectType,criteriaId,params,successCallback){params||(params={}),params.demoApp=$rootScope.demoData,params.access_token=getAccessToken(),params.callback="JSON_CALLBACK";var uri=$rootScope.urls().DATA_URL+"/"+$rootScope.currentOrg+"/"+$rootScope.currentApp+"/apm/"+objectType+"/"+criteriaId;return this.jsonpRaw(objectType,criteriaId,params,uri,successCallback)},jsonpSimple:function(objectType,appId,params){var uri=$rootScope.urls().DATA_URL+"/"+$rootScope.currentOrg+"/"+$rootScope.currentApp+"/apm/"+objectType+"/"+appId;return this.jsonpRaw(objectType,appId,params,uri)},calculateAverageRequestTimes:function(){if(!running){var self=this;running=!0,setTimeout(function(){running=!1;var length=requestTimes.length<10?requestTimes.length:10,sum=requestTimes.slice(0,length).reduce(function(a,b){return a+b}),avg=sum/length;self.averageRequestTimes=avg/1e3,self.averageRequestTimes>5&&$rootScope.$broadcast("request-times-slow",self.ave
 rageRequestTimes)},3e3)}},jsonpRaw:function(objectType,appId,params,uri,successCallback){"function"!=typeof successCallback&&(successCallback=null),uri=uri||$rootScope.urls().DATA_URL+"/"+$rootScope.currentOrg+"/"+$rootScope.currentApp+"/"+objectType,params||(params={});var start=(new Date).getTime(),self=this;params.access_token=getAccessToken(),params.callback="JSON_CALLBACK";var deferred=$q.defer(),diff=function(){currentRequests[uri]--,requestTimes.splice(0,0,(new Date).getTime()-start),self.calculateAverageRequestTimes()};successCallback&&$rootScope.$broadcast("ajax_loading",objectType);var reqCount=currentRequests[uri]||0;return self.averageRequestTimes>5&&reqCount>1?(setTimeout(function(){deferred.reject(new Error("query in progress"))},50),deferred):(currentRequests[uri]=(currentRequests[uri]||0)+1,$http.jsonp(uri,{params:params}).success(function(data,status,headers,config){diff(),successCallback&&(successCallback(data,status,headers,config),$rootScope.$broadcast("ajax_fini
 shed",objectType)),deferred.resolve(data)}).error(function(data,status,headers,config){diff(),$log.error("ERROR: Could not get jsonp data. "+uri),reportError(data,config),deferred.reject(data)}),deferred.promise)},resource:function(params,isArray){return $resource($rootScope.urls().DATA_URL+"/:orgname/:appname/:username/:endpoint",{},{get:{method:"JSONP",isArray:isArray,params:params},login:{method:"GET",url:$rootScope.urls().DATA_URL+"/management/token",isArray:!1,params:params},save:{url:$rootScope.urls().DATA_URL+"/"+params.orgname+"/"+params.appname,method:"PUT",isArray:!1,params:params}})},httpPost:function(url,callback,payload,headers){var accessToken=getAccessToken();payload?payload.access_token=accessToken:payload={access_token:accessToken},headers||(headers={Bearer:accessToken}),$http({method:"POST",url:url,data:payload,headers:headers}).success(function(data){callback(data)}).error(function(data,status,headers,config){reportError(data,config),callback(data)})}}}),AppServic
 es.Directives.directive("ngFocus",["$parse",function($parse){return function(scope,element,attr){var fn=$parse(attr.ngFocus);element.bind("focus",function(event){scope.$apply(function(){fn(scope,{$event:event})})})}}]),AppServices.Directives.directive("ngBlur",["$parse",function($parse){return function(scope,element,attr){var fn=$parse(attr.ngBlur);element.bind("blur",function(event){scope.$apply(function(){fn(scope,{$event:event})})})}}]),AppServices.Services.factory("utility",function(){return{keys:function(o){var a=[];for(var propertyName in o)a.push(propertyName);return a},get_gravatar:function(email,size){try{var size=size||50;return email.length?"https://secure.gravatar.com/avatar/"+MD5(email)+"?s="+size:"https://apigee.com/usergrid/img/user_profile.png"}catch(e){return"https://apigee.com/usergrid/img/user_profile.png"}},get_qs_params:function(){var queryParams={};if(window.location.search)for(var params=window.location.search.slice(1).split("&"),i=0;i<params.length;i++){var t
 mp=params[i].split("=");queryParams[tmp[0]]=unescape(tmp[1])}return queryParams},safeApply:function(fn){var phase=this.$root.$$phase;"$apply"==phase||"$digest"==phase?fn&&"function"==typeof fn&&fn():this.$apply(fn)}}}),AppServices.Directives.directive("ugValidate",["$rootScope",function(){return{scope:!0,restrict:"A",require:"ng-model",replace:!0,link:function(scope,element,attrs,ctrl){var validate=function(){var id=element.attr("id"),validator=id+"-validator",title=element.attr("title");if(title=title&&title.length?title:"Please enter data",$("#"+validator).remove(),ctrl.$valid)element.removeClass("has-error"),$("#"+validator).remove();else{var validatorElem='<div id="'+validator+'"><span  class="validator-error-message">'+title+"</span></div>";$("#"+id).after(validatorElem),element.addClass("has-error")}},firing=!1;element.bind("blur",function(){validate(scope,element,attrs,ctrl)}).bind("input",function(){firing||(firing=!0,setTimeout(function(){validate(scope,element,attrs,ctrl),
 firing=!1},500))})}}}]),AppServices.Controllers.controller("GroupsActivitiesCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){return $scope.activitiesSelected="active",$rootScope.selectedGroup?($rootScope.selectedGroup.activities=[],void $rootScope.selectedGroup.getActivities(function(err){err||$rootScope.$$phase||$rootScope.$apply()})):void $location.path("/groups")}]),AppServices.Controllers.controller("GroupsCtrl",["ug","$scope","$rootScope","$location","$route",function(ug,$scope,$rootScope,$location,$route){$scope.groupsCollection={},$rootScope.selectedGroup={},$scope.previous_display="none",$scope.next_display="none",$scope.hasGroups=!1,$scope.newGroup={path:"",title:""},ug.getGroups(),$scope.currentGroupsPage={},$scope.selectGroupPage=function(route){$scope.currentGroupsPage.template=$route.routes[route].templateUrl,$scope.currentGroupsPage.route=route},$scope.newGroupDialog=function(modalId){$scope.newGroup.path&&$scope.newGroup.title?(ug
 .createGroup($scope.removeFirstSlash($scope.newGroup.path),$scope.newGroup.title),$scope.hideModal(modalId),$scope.newGroup={path:"",title:""}):$rootScope.$broadcast("alert","error","Missing required information.")},$scope.deleteGroupsDialog=function(modalId){$scope.deleteEntities($scope.groupsCollection,"group-deleted","error deleting group"),$scope.hideModal(modalId),$scope.newGroup={path:"",title:""}},$scope.$on("group-deleted",function(){$rootScope.$broadcast("alert","success","Group deleted successfully.")}),$scope.$on("group-deleted-error",function(){ug.getGroups()}),$scope.$on("groups-create-success",function(){$rootScope.$broadcast("alert","success","Group created successfully.")}),$scope.$on("groups-create-error",function(){$rootScope.$broadcast("alert","error","Error creating group. Make sure you don't have spaces in the path.")}),$scope.$on("groups-received",function(event,groups){$scope.groupBoxesSelected=!1,$scope.groupsCollection=groups,$scope.newGroup.path="",$scope.n
 ewGroup.title="",!(groups._list.length>0)||$rootScope.selectedGroup._data&&groups._list.some(function(group){return $rootScope.selectedGroup._data.uuid===group._data.uuid})||$scope.selectGroup(groups._list[0]._data.uuid),$scope.hasGroups=groups._list.length>0,$scope.received=!0,$scope.checkNextPrev(),$scope.applyScope()}),$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$scope.groupsCollection.hasPreviousPage()&&($scope.previous_display="block"),$scope.groupsCollection.hasNextPage()&&($scope.next_display="block")},$scope.selectGroup=function(uuid){$rootScope.selectedGroup=$scope.groupsCollection.getEntityByUUID(uuid),$scope.currentGroupsPage.template="groups/groups-details.html",$scope.currentGroupsPage.route="/groups/details",$rootScope.$broadcast("group-selection-changed",$rootScope.selectedGroup)},$scope.getPrevious=function(){$scope.groupsCollection.getPreviousPage(function(err){err&
 &$rootScope.$broadcast("alert","error","error getting previous page of groups"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.getNext=function(){$scope.groupsCollection.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of groups"),$scope.checkNextPrev(),$scope.applyScope()})},$scope.$on("group-deleted",function(){$route.reload(),$scope.master=""})}]),AppServices.Controllers.controller("GroupsDetailsCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){var selectedGroup=$rootScope.selectedGroup.clone();return $scope.detailsSelected="active",$scope.json=selectedGroup._json||selectedGroup._data.stringifyJSON(),$scope.group=selectedGroup._data,$scope.group.path=0!=$scope.group.path.indexOf("/")?"/"+$scope.group.path:$scope.group.path,$scope.group.title=$scope.group.title,$rootScope.selectedGroup?($scope.$on("group-selection-changed",function(evt,selectedGroup){$scope.group.path=0!=selectedGroup._data.pat
 h.indexOf("/")?"/"+selectedGroup._data.path:selectedGroup._data.path,$scope.group.title=selectedGroup._data.title,$scope.detailsSelected="active",$scope.json=selectedGroup._json||selectedGroup._data.stringifyJSON()}),void($rootScope.saveSelectedGroup=function(){$rootScope.selectedGroup._data.title=$scope.group.title,$rootScope.selectedGroup._data.path=$scope.removeFirstSlash($scope.group.path),$rootScope.selectedGroup.save(function(err){err?$rootScope.$broadcast("alert","error","error saving group"):$rootScope.$broadcast("alert","success","group saved")})})):void $location.path("/groups")}]),AppServices.Controllers.controller("GroupsMembersCtrl",["ug","$scope","$rootScope","$location",function(ug,$scope,$rootScope,$location){return $scope.membersSelected="active",$scope.previous_display="none",$scope.next_display="none",$scope.user="",$scope.master="",$scope.hasMembers=!1,ug.getUsersTypeAhead(),$scope.usersTypeaheadValues=[],$scope.$on("users-typeahead-received",function(event,users
 ){$scope.usersTypeaheadValues=users,$scope.applyScope()}),$scope.addGroupToUserDialog=function(modalId){if($scope.user){var path=$rootScope.selectedGroup.get("path");ug.addUserToGroup($scope.user.uuid,path),$scope.user="",$scope.hideModal(modalId)}else $rootScope.$broadcast("alert","error","Please select a user.")},$scope.removeUsersFromGroupDialog=function(modalId){$scope.deleteEntities($scope.groupsCollection.users,"group-update-received","Error removing user from group"),$scope.hideModal(modalId)},$scope.get=function(){if($rootScope.selectedGroup.get){var options={type:"groups/"+$rootScope.selectedGroup.get("path")+"/users"};$scope.groupsCollection.addCollection("users",options,function(err){$scope.groupMembersSelected=!1,err?$rootScope.$broadcast("alert","error","error getting users for group"):($scope.hasMembers=$scope.groupsCollection.users._list.length>0,$scope.checkNextPrev(),$scope.applyScope())})}},$scope.resetNextPrev=function(){$scope.previous_display="none",$scope.next_
 display="none"},$scope.checkNextPrev=function(){$scope.resetNextPrev(),$scope.groupsCollection.users.hasPreviousPage()&&($scope.previous_display="block"),$scope.groupsCollection.users.hasNextPage()&&($scope.next_display="block")},$rootScope.selectedGroup?($scope.get(),$scope.getPrevious=function(){$scope.groupsCollection.users.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of users"),$scope.checkNextPrev(),$rootScope.$$phase||$rootScope.$apply()})},$scope.getNext=function(){$scope.groupsCollection.users.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of users"),$scope.checkNextPrev(),$rootScope.$$phase||$rootScope.$apply()})},$scope.$on("group-update-received",function(){$scope.get()}),void $scope.$on("user-added-to-group-received",function(){$scope.get()})):void $location.path("/groups")}]),AppServices.Controllers.controller("GroupsRolesCtrl",["ug","$scope","$rootScope","$location",
 function(ug,$scope,$rootScope,$location){return $scope.rolesSelected="active",$scope.roles_previous_display="none",$scope.roles_next_display="none",$scope.name="",$scope.master="",$scope.hasRoles=!1,$scope.hasPermissions=!1,$scope.permissions={},$scope.addGroupToRoleDialog=function(modalId){if($scope.name){var path=$rootScope.selectedGroup.get("path");ug.addGroupToRole(path,$scope.name),$scope.hideModal(modalId),$scope.name=""}else $rootScope.$broadcast("alert","error","You must specify a role name.")},$scope.leaveRoleDialog=function(modalId){for(var path=$rootScope.selectedGroup.get("path"),roles=$scope.groupsCollection.roles._list,i=0;i<roles.length;i++)roles[i].checked&&ug.removeUserFromGroup(path,roles[i]._data.name);$scope.hideModal(modalId)},$scope.addGroupPermissionDialog=function(modalId){if($scope.permissions.path){var permission=$scope.createPermission(null,null,$scope.removeFirstSlash($scope.permissions.path),$scope.permissions),path=$rootScope.selectedGroup.get("path");u
 g.newGroupPermission(permission,path),$scope.hideModal(modalId),$scope.permissions&&($scope.permissions={})}else $rootScope.$broadcast("alert","error","You must specify a name for the permission.")},$scope.deleteGroupPermissionDialog=function(modalId){for(var path=$rootScope.selectedGroup.get("path"),permissions=$rootScope.selectedGroup.permissions,i=0;i<permissions.length;i++)permissions[i].checked&&ug.deleteGroupPermission(permissions[i].perm,path);$scope.hideModal(modalId)},$scope.resetNextPrev=function(){$scope.roles_previous_display="none",$scope.roles_next_display="none",$scope.permissions_previous_display="none",$scope.permissions_next_display="none"},$scope.resetNextPrev(),$scope.checkNextPrevRoles=function(){$scope.resetNextPrev(),$scope.groupsCollection.roles.hasPreviousPage()&&($scope.roles_previous_display="block"),$scope.groupsCollection.roles.hasNextPage()&&($scope.roles_next_display="block")},$scope.checkNextPrevPermissions=function(){$scope.groupsCollection.permissio
 ns.hasPreviousPage()&&($scope.permissions_previous_display="block"),$scope.groupsCollection.permissions.hasNextPage()&&($scope.permissions_next_display="block")},$scope.getRoles=function(){var path=$rootScope.selectedGroup.get("path"),options={type:"groups/"+path+"/roles"};$scope.groupsCollection.addCollection("roles",options,function(err){$scope.groupRoleSelected=!1,err?$rootScope.$broadcast("alert","error","error getting roles for group"):($scope.hasRoles=$scope.groupsCollection.roles._list.length>0,$scope.checkNextPrevRoles(),$scope.applyScope())})},$scope.getPermissions=function(){$rootScope.selectedGroup.permissions=[],$rootScope.selectedGroup.getPermissions(function(err){$scope.groupPermissionsSelected=!1,$scope.hasPermissions=$scope.selectedGroup.permissions.length,err||$scope.applyScope()})},$scope.getPreviousRoles=function(){$scope.groupsCollection.roles.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of roles"),$scope.c
 heckNextPrevRoles(),$scope.applyScope()})},$scope.getNextRoles=function(){$scope.groupsCollection.roles.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of roles"),$scope.checkNextPrevRoles(),$scope.applyScope()})},$scope.getPreviousPermissions=function(){$scope.groupsCollection.permissions.getPreviousPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting previous page of permissions"),$scope.checkNextPrevPermissions(),$scope.applyScope()})},$scope.getNextPermissions=function(){$scope.groupsCollection.permissions.getNextPage(function(err){err&&$rootScope.$broadcast("alert","error","error getting next page of permissions"),$scope.checkNextPrevPermissions(),$scope.applyScope()})},$scope.$on("role-update-received",function(){$scope.getRoles()}),$scope.$on("permission-update-received",function(){$scope.getPermissions()}),$scope.$on("groups-received",function(evt,data){$scope.groupsCollection=data,$scope.getRoles(),$scope
 .getPermissions()}),$rootScope.selectedGroup?(ug.getRolesTypeAhead(),void ug.getGroups()):void $location.path("/groups")}]),AppServices.Controllers.controller("ForgotPasswordCtrl",["ug","$scope","$rootScope","$location","$sce","utility",function(ug,$scope,$rootScope,$location,$sce){$rootScope.activeUI&&$location.path("/"),$scope.forgotPWiframeURL=$sce.trustAsResourceUrl($scope.apiUrl+"/management/users/resetpw")}]),AppServices.Controllers.controller("LoginCtrl",["ug","$scope","$rootScope","$routeParams","$location","utility",function(ug,$scope,$rootScope,$routeParams,$location){$scope.loading=!1,$scope.login={},$scope.activation={},$scope.requiresDeveloperKey=$scope.options.client.requiresDeveloperKey||!1,!$scope.requiresDeveloperKey&&$scope.options.client.apiKey&&ug.setClientProperty("developerkey",$scope.options.client.apiKey),$rootScope.gotoForgotPasswordPage=function(){$location.path("/forgot-password")},$rootScope.gotoSignUp=function(){$location.path("/register")},$scope.login=
 function(){var username=$scope.login.username,password=$scope.login.password;$scope.loginMessage="",$scope.loading=!0,$scope.requiresDeveloperKey&&ug.setClientProperty("developerkey",$scope.login.developerkey),ug.orgLogin(username,password)},$scope.$on("loginFailed",function(){$scope.loading=!1,ug.setClientProperty("developerkey",null),$scope.loginMessage="Error: the username / password combination was not valid",$scope.applyScope()}),$scope.logout=function(){ug.logout(),ug.setClientProperty("developerkey",null),$scope.use_sso?window.location=$rootScope.urls().LOGOUT_URL+"?redirect=no&callback="+encodeURIComponent($location.absUrl().split("?")[0]):($location.path("/login"),$scope.applyScope())},$rootScope.$on("userNotAuthenticated",function(){"/forgot-password"!==$location.path()&&($location.path("/login"),$scope.logout()),$scope.applyScope()}),$scope.$on("loginSuccesful",function(){$scope.loading=!1,$scope.login={},$location.path("/login"===$rootScope.currentPath||"/login/loading"=
 ==$rootScope.currentPath||"undefined"==typeof $rootScope.currentPath?"/org-overview":$rootScope.currentPath),$scope.applyScope()}),$scope.resendActivationLink=function(modalId){var id=$scope.activation.id;ug.resendActivationLink(id),$scope.activation={},$scope.hideModal(modalId)},$scope.$on("resend-activate-success",function(){$scope.activationId="",$scope.$apply(),$rootScope.$broadcast("alert","success","Activation link sent successfully.")}),$scope.$on("resend-activate-error",function(){$rootScope.$broadcast("alert","error","Activation link failed to send.")})}]),AppServices.Controllers.controller("LogoutCtrl",["ug","$scope","$rootScope","$routeParams","$location","utility",function(ug,$scope,$rootScope,$routeParams,$location){ug.logout(),$scope.use_sso?window.location=$rootScope.urls().LOGOUT_URL+"?callback="+encodeURIComponent($location.absUrl().split("?")[0]):($location.path("/login"),$scope.applyScope())}]),AppServices.Controllers.controller("RegisterCtrl",["ug","$scope","$roo
 tScope","$routeParams","$location","utility",function(ug,$scope,$rootScope,$routeParams,$location){$rootScope.activeUI&&$location.path("/");var init=function(){$scope.registeredUser={}};init(),$scope.cancel=function(){$location.path("/")},$scope.register=function(){var user=$scope.registeredUser.clone();user.password===user.confirmPassword?ug.signUpUser(user.orgName,user.userName,user.name,user.email,user.password):$rootScope.$broadcast("alert","error","Passwords do not match."+name)},$scope.$on("register-error",function(event,data){$scope.signUpSuccess=!1,$rootScope.$broadcast("alert","error","Error registering: "+(data&&data.error_description?data.error_description:name))}),$scope.$on("register-success",function(){$scope.registeredUser={},$scope.signUpSuccess=!0,init(),$scope.$apply()})}]),AppServices.Directives.directive("menu",["$location","$rootScope","$log",function($location,$rootScope,$log){return{link:function(scope,lElement,attrs){function setActiveElement(ele,locationPath
 ,$rootScope,isParentClick){ele.removeClass("active");var menuItem,parentMenuItem,newActiveElement=ele.parent().find('a[href*="#!'+locationPath+'"]');if(0===newActiveElement.length)parentMenuItem=ele;else{menuItem=newActiveElement.parent(),menuItem.hasClass("option")?parentMenuItem=menuItem[0]:1===menuItem.size()?(parentMenuItem=newActiveElement.parent().parent().parent(),parentMenuItem.addClass("active")):(parentMenuItem=menuItem[0],menuItem=menuItem[1]);try{var menuItemCompare=parentMenuItem[0]||parentMenuItem;ele[0]!==menuItemCompare&&isParentClick&&ele.find("ul")[0]&&(ele.find("ul")[0].style.height=0);var subMenuSizer=angular.element(parentMenuItem).find(".nav-list")[0];if(subMenuSizer){var heightChecker,clientHeight=subMenuSizer.getAttribute("data-height"),heightCounter=1;clientHeight||heightChecker?(menuItem.addClass("active"),subMenuSizer.style.height=c

<TRUNCATED>

[3/9] merging upstream

Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/09611d5b/portal/js/usergrid-dev.min.js
----------------------------------------------------------------------
diff --cc portal/js/usergrid-dev.min.js
index 87fd017,af849c2..0e96767
--- a/portal/js/usergrid-dev.min.js
+++ b/portal/js/usergrid-dev.min.js
@@@ -4512,6 -4511,6 +4511,19760 @@@
          $templateCache.put("users/users-tabs.html", "\n" + "\n" + "\n");
          $templateCache.put("users/users.html", '<div class="content-page">\n' + "\n" + '  <page-title title=" Users" icon="&#128100;"></page-title>\n' + '  <bsmodal id="newUser"\n' + '           title="Create New User"\n' + '           close="hideModal"\n' + '           closelabel="Cancel"\n' + '           buttonid="users"\n' + '           extrabutton="newUserDialog"\n' + '           extrabuttonlabel="Create"\n' + "           ng-cloak>\n" + "    <fieldset>\n" + '      <div class="control-group">\n' + '        <label for="new-user-username">Username</label>\n' + "\n" + '        <div class="controls">\n' + '          <input type="text" required ng-model="$parent.newUser.newusername" ng-pattern="usernameRegex" ng-attr-title="{{usernameRegexDescription}}"  name="username" id="new-user-username" class="input-xlarge" ug-validate/>\n' + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + '      <div class="control-group">\n' + '        <label for="new-u
 ser-fullname">Full name</label>\n' + "\n" + '        <div class="controls">\n' + '          <input type="text" required  ng-attr-title="{{nameRegexDescription}}" ng-pattern="nameRegex" ng-model="$parent.newUser.name" name="name" id="new-user-fullname" class="input-xlarge" ug-validate/>\n' + "\n" + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + '      <div class="control-group">\n' + '        <label for="new-user-email">Email</label>\n' + "\n" + '        <div class="controls">\n' + '          <input type="email" required  ng-model="$parent.newUser.email" pattern="emailRegex"   ng-attr-title="{{emailRegexDescription}}"  name="email" id="new-user-email" class="input-xlarge" ug-validate/>\n' + "\n" + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + '      <div class="control-group">\n' + '        <label for="new-user-password">Password</label>\n' + "\n" + '        <div class="controls">\n' + '          <inpu
 t type="password" required ng-pattern="passwordRegex"  ng-attr-title="{{passwordRegexDescription}}" ng-model="$parent.newUser.newpassword" name="password" id="new-user-password" ug-validate\n' + '                 class="input-xlarge"/>\n' + "\n" + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + '      <div class="control-group">\n' + '        <label for="new-user-re-password">Confirm password</label>\n' + "\n" + '        <div class="controls">\n' + '          <input type="password" required ng-pattern="passwordRegex"  ng-attr-title="{{passwordRegexDescription}}" ng-model="$parent.newUser.repassword" name="re-password" id="new-user-re-password" ug-validate\n' + '                 class="input-xlarge"/>\n' + "\n" + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + "    </fieldset>\n" + "  </bsmodal>\n" + "\n" + '  <bsmodal id="deleteUser"\n' + '           title="Delete User"\n' + '           close="hideModal"
 \n' + '           closelabel="Cancel"\n' + '           extrabutton="deleteUsersDialog"\n' + '           extrabuttonlabel="Delete"\n' + '           buttonid="deleteusers"\n' + "           ng-cloak>\n" + "    <p>Are you sure you want to delete the user(s)?</p>\n" + "  </bsmodal>\n" + "\n" + '  <section class="row-fluid">\n' + '    <div class="span3 user-col">\n' + "\n" + '        <div class="button-toolbar span12">\n' + '          <a title="Select All" class="btn btn-primary toolbar select-all" ng-show="hasUsers" ng-click="selectAllEntities(usersCollection._list,this,\'usersSelected\',true)" ng-model="usersSelected"> <i class="pictogram">&#8863;</i></a>\n' + '          <button title="Delete" class="btn btn-primary toolbar" ng-disabled="!hasUsers || !valueSelected(usersCollection._list)" ng-click="showModal(\'deleteUser\')" id="delete-user-button"><i class="pictogram">&#9749;</i></button>\n' + '          <button title="Add" class="btn btn-primary toolbar" ng-click="showModal(\'newUser\
 ')" id="new-user-button" ng-attr-id="new-user-button"><i class="pictogram">&#59136;</i></button>\n' + "        </div>\n" + '        <ul class="user-list">\n' + '          <li ng-class="selectedUser._data.uuid === user._data.uuid ? \'selected\' : \'\'" ng-repeat="user in usersCollection._list" ng-click="selectUser(user._data.uuid)">\n' + "            <input\n" + '                type="checkbox"\n' + "                id=\"user-{{user.get('username')}}-checkbox\"\n" + "                ng-value=\"user.get('uuid')\"\n" + '                ng-checked="master"\n' + '                ng-model="user.checked"\n' + "                >\n" + "              <a href=\"javaScript:void(0)\"  id=\"user-{{user.get('username')}}-link\" >{{user.get('username')}}</a>\n" + '              <span ng-if="user.name" class="label">Display Name:</span>{{user.name}}\n' + "          </li>\n" + "        </ul>\n" + "\n" + '        <div style="padding: 10px 5px 10px 5px">\n' + '          <button class="btn btn-primary t
 oolbar" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous\n' + "          </button>\n" + '          <button class="btn btn-primary toolbar" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next >\n' + "          </button>\n" + "        </div>\n" + "\n" + "    </div>\n" + "\n" + '    <div class="span9 tab-content" ng-show="hasUsers">\n' + '      <div class="menu-toolbar">\n' + '        <ul class="inline">\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/profile\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/profile\')"><i class="pictogram">&#59170;</i>Profile</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/groups\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/groups\')"><i class="pictogram">&#128101;</i>Groups</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route 
 === \'/users/activities\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/activities\')"><i class="pictogram">&#59194;</i>Activities</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/feed\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/feed\')"><i class="pictogram">&#128196;</i>Feed</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/graph\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/graph\')"><i class="pictogram">&#9729;</i>Graph</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/roles\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/roles\')"><i class="pictogram">&#127758;</i>Roles &amp; Permissions</a></li>\n' + "        </ul>\n" + "      </div>\n" + '      <span ng-include="currentUsersPage.t
 emplate"></span>\n' + "    </div>\n" + "  </section>\n" + "</div>");
      } ]);
++    (function(exports, global) {
++        global["true"] = exports;
++        "use strict";
++        var polyfills = function(window, Object) {
++            window.requestAnimFrame = function() {
++                return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback, element) {
++                    window.setTimeout(callback, 1e3 / 60);
++                };
++            }();
++            Object.defineProperty(Object.prototype, "clone", {
++                enumerable: false,
++                writable: true,
++                value: function() {
++                    var i, newObj = this instanceof Array ? [] : {};
++                    for (i in this) {
++                        if (i === "clone") {
++                            continue;
++                        }
++                        if (this[i] && typeof this[i] === "object") {
++                            newObj[i] = this[i].clone();
++                        } else {
++                            newObj[i] = this[i];
++                        }
++                    }
++                    return newObj;
++                }
++            });
++            Object.defineProperty(Object.prototype, "stringifyJSON", {
++                enumerable: false,
++                writable: true,
++                value: function() {
++                    return JSON.stringify(this, null, "	");
++                }
++            });
++        };
++        polyfills(window, Object);
++        var global = global || this;
++        var AppServices = AppServices || {};
++        global.AppServices = global.AppServices || AppServices;
++        AppServices.Constants = angular.module("appservices.constants", []);
++        AppServices.Services = angular.module("appservices.services", []);
++        AppServices.Controllers = angular.module("appservices.controllers", []);
++        AppServices.Filters = angular.module("appservices.filters", []);
++        AppServices.Directives = angular.module("appservices.directives", []);
++        AppServices.Performance = angular.module("appservices.performance", []);
++        AppServices.MAX = angular.module("appservices.max", []);
++        angular.module("appservices", [ "ngRoute", "ngResource", "ngSanitize", "ui.bootstrap", "angulartics", "angulartics.google.analytics", "appservices.filters", "appservices.services", "appservices.directives", "appservices.constants", "appservices.controllers", "appservices.max", "angular-intro" ]).config([ "$routeProvider", "$locationProvider", "$sceDelegateProvider", "$analyticsProvider", function($routeProvider, $locationProvider, $sceDelegateProvider, $analyticsProvider) {
++            $routeProvider.when("/org-overview", {
++                templateUrl: "org-overview/org-overview.html",
++                controller: "OrgOverviewCtrl"
++            }).when("/login", {
++                templateUrl: "login/login.html",
++                controller: "LoginCtrl"
++            }).when("/login/loading", {
++                templateUrl: "login/loading.html",
++                controller: "LoginCtrl"
++            }).when("/app-overview/summary", {
++                templateUrl: "app-overview/app-overview.html",
++                controller: "AppOverviewCtrl"
++            }).when("/getting-started/setup", {
++                templateUrl: "app-overview/getting-started.html",
++                controller: "GettingStartedCtrl"
++            }).when("/forgot-password", {
++                templateUrl: "login/forgot-password.html",
++                controller: "ForgotPasswordCtrl"
++            }).when("/register", {
++                templateUrl: "login/register.html",
++                controller: "RegisterCtrl"
++            }).when("/users", {
++                templateUrl: "users/users.html",
++                controller: "UsersCtrl"
++            }).when("/users/profile", {
++                templateUrl: "users/users-profile.html",
++                controller: "UsersProfileCtrl"
++            }).when("/users/groups", {
++                templateUrl: "users/users-groups.html",
++                controller: "UsersGroupsCtrl"
++            }).when("/users/activities", {
++                templateUrl: "users/users-activities.html",
++                controller: "UsersActivitiesCtrl"
++            }).when("/users/feed", {
++                templateUrl: "users/users-feed.html",
++                controller: "UsersFeedCtrl"
++            }).when("/users/graph", {
++                templateUrl: "users/users-graph.html",
++                controller: "UsersGraphCtrl"
++            }).when("/users/roles", {
++                templateUrl: "users/users-roles.html",
++                controller: "UsersRolesCtrl"
++            }).when("/groups", {
++                templateUrl: "groups/groups.html",
++                controller: "GroupsCtrl"
++            }).when("/groups/details", {
++                templateUrl: "groups/groups-details.html",
++                controller: "GroupsDetailsCtrl"
++            }).when("/groups/members", {
++                templateUrl: "groups/groups-members.html",
++                controller: "GroupsMembersCtrl"
++            }).when("/groups/activities", {
++                templateUrl: "groups/groups-activities.html",
++                controller: "GroupsActivitiesCtrl"
++            }).when("/groups/roles", {
++                templateUrl: "groups/groups-roles.html",
++                controller: "GroupsRolesCtrl"
++            }).when("/roles", {
++                templateUrl: "roles/roles.html",
++                controller: "RolesCtrl"
++            }).when("/roles/settings", {
++                templateUrl: "roles/roles-settings.html",
++                controller: "RolesSettingsCtrl"
++            }).when("/roles/users", {
++                templateUrl: "roles/roles-users.html",
++                controller: "RolesUsersCtrl"
++            }).when("/roles/groups", {
++                templateUrl: "roles/roles-groups.html",
++                controller: "RolesGroupsCtrl"
++            }).when("/data", {
++                templateUrl: "data/data.html",
++                controller: "DataCtrl"
++            }).when("/data/entity", {
++                templateUrl: "data/entity.html",
++                controller: "EntityCtrl"
++            }).when("/data/shell", {
++                templateUrl: "data/shell.html",
++                controller: "ShellCtrl"
++            }).when("/profile/organizations", {
++                templateUrl: "profile/organizations.html",
++                controller: "OrgCtrl"
++            }).when("/profile/profile", {
++                templateUrl: "profile/profile.html",
++                controller: "ProfileCtrl"
++            }).when("/profile", {
++                templateUrl: "profile/account.html",
++                controller: "AccountCtrl"
++            }).when("/activities", {
++                templateUrl: "activities/activities.html",
++                controller: "ActivitiesCtrl"
++            }).when("/shell", {
++                templateUrl: "shell/shell.html",
++                controller: "ShellCtrl"
++            }).when("/logout", {
++                templateUrl: "login/logout.html",
++                controller: "LogoutCtrl"
++            }).otherwise({
++                redirectTo: "/org-overview"
++            });
++            $locationProvider.html5Mode(false).hashPrefix("!");
++            $sceDelegateProvider.resourceUrlWhitelist([ "self", "http://apigee-internal-prod.jupiter.apigee.net/**", "http://apigee-internal-prod.mars.apigee.net/**", "https://appservices.apigee.com/**", "https://api.usergrid.com/**" ]);
++            $analyticsProvider.virtualPageviews(false);
++            $analyticsProvider.firstPageview(false);
++        } ]);
++        AppServices.Controllers.controller("ActivitiesCtrl", [ "ug", "$scope", "$rootScope", "$location", "$route", function(ug, $scope, $rootScope, $location, $route) {
++            $scope.$on("app-activities-received", function(evt, data) {
++                $scope.activities = data;
++                $scope.$apply();
++            });
++            $scope.$on("app-activities-error", function(evt, data) {
++                $rootScope.$broadcast("alert", "error", "Application failed to retreive activities data.");
++            });
++            ug.getActivities();
++        } ]);
++        "use strict";
++        AppServices.Controllers.controller("AppOverviewCtrl", [ "ug", "charts", "$scope", "$rootScope", "$log", function(ug, charts, $scope, $rootScope, $log) {
++            var createGradient = function(color1, color2) {
++                var perShapeGradient = {
++                    x1: 0,
++                    y1: 0,
++                    x2: 0,
++                    y2: 1
++                };
++                return {
++                    linearGradient: perShapeGradient,
++                    stops: [ [ 0, color1 ], [ 1, color2 ] ]
++                };
++            };
++            $scope.appOverview = {};
++            $scope.collections = [];
++            $scope.graph = "";
++            $scope.$on("top-collections-received", function(event, collections) {
++                var dataDescription = {
++                    bar1: {
++                        labels: [ "Total" ],
++                        dataAttr: [ "title", "count" ],
++                        colors: [ createGradient("rgba(36,151,212,0.6)", "rgba(119,198,240,0.6)") ],
++                        borderColor: "#1b97d1"
++                    }
++                };
++                $scope.collections = collections;
++                var arr = [];
++                for (var i in collections) {
++                    if (collections.hasOwnProperty(i)) {
++                        arr.push(collections[i]);
++                    }
++                }
++                $scope.appOverview = {};
++                if (!$rootScope.chartTemplate) {
++                    ug.httpGet(null, "js/charts/highcharts.json").then(function(success) {
++                        $rootScope.chartTemplate = success;
++                        $scope.appOverview.chart = angular.copy($rootScope.chartTemplate.pareto);
++                        $scope.appOverview.chart = charts.convertParetoChart(arr, $scope.appOverview.chart, dataDescription.bar1, "1h", "NOW");
++                        $scope.applyScope();
++                    }, function(fail) {
++                        $log.error("Problem getting chart template", fail);
++                    });
++                } else {
++                    $scope.appOverview.chart = angular.copy($rootScope.chartTemplate.pareto);
++                    $scope.appOverview.chart = charts.convertParetoChart(arr, $scope.appOverview.chart, dataDescription.bar1, "1h", "NOW");
++                    $scope.applyScope();
++                }
++            });
++            $scope.$on("app-initialized", function() {
++                ug.getTopCollections();
++            });
++            if ($rootScope.activeUI) {
++                ug.getTopCollections();
++            }
++        } ]);
++        "use strict";
++        AppServices.Controllers.controller("GettingStartedCtrl", [ "ug", "$scope", "$rootScope", "$location", "$timeout", "$anchorScroll", function(ug, $scope, $rootScope, $location, $timeout, $anchorScroll) {
++            $scope.collections = [];
++            $scope.graph = "";
++            $scope.clientID = "";
++            $scope.clientSecret = "";
++            var getKeys = function() {
++                return ug.jsonpRaw("credentials", "", {});
++            };
++            $scope.regenerateCredentialsDialog = function(modalId) {
++                $scope.orgAPICredentials = {
++                    client_id: "regenerating...",
++                    client_secret: "regenerating..."
++                };
++                ug.regenerateAppCredentials();
++                $scope.hideModal(modalId);
++            };
++            $scope.$on("app-creds-updated", function(event, credentials) {
++                if (credentials) {
++                    $scope.clientID = credentials.client_id;
++                    $scope.clientSecret = credentials.client_secret;
++                    if (!$scope.$$phase) {
++                        $scope.$apply();
++                    }
++                } else {
++                    setTimeout(function() {
++                        ug.getAppCredentials();
++                    }, 5e3);
++                }
++            });
++            ug.getAppCredentials();
++            $scope.contentTitle;
++            $scope.showSDKDetail = function(name) {
++                var introContainer = document.getElementById("intro-container");
++                if (name === "nocontent") {
++                    introContainer.style.height = "0";
++                    return true;
++                }
++                introContainer.style.opacity = .1;
++                introContainer.style.height = "0";
++                var timeout = 0;
++                if ($scope.contentTitle) {
++                    timeout = 500;
++                }
++                $timeout(function() {
++                    introContainer.style.height = "1000px";
++                    introContainer.style.opacity = 1;
++                }, timeout);
++                $scope.optionName = name;
++                $scope.contentTitle = name;
++                $scope.sdkLink = "http://apigee.com/docs/content/" + name + "-sdk-redirect";
++                $scope.docsLink = "http://apigee.com/docs/app-services/content/installing-apigee-sdk-" + name;
++                $scope.getIncludeURL = function() {
++                    return "app-overview/doc-includes/" + $scope.optionName + ".html";
++                };
++            };
++            $scope.scrollToElement = function(elem) {
++                $location.hash(elem);
++                $anchorScroll();
++                return false;
++            };
++        } ]);
++        "use strict";
++        AppServices.Controllers.controller("ChartCtrl", [ "$scope", "$location", function($scope, $location) {} ]);
++        "use strict";
++        AppServices.Directives.directive("chart", function($rootScope) {
++            return {
++                restrict: "E",
++                scope: {
++                    chartdata: "=chartdata"
++                },
++                template: "<div></div>",
++                replace: true,
++                controller: function($scope, $element) {},
++                link: function(scope, element, attrs) {
++                    scope.$watch("chartdata", function(chartdata, oldchartdata) {
++                        if (chartdata) {
++                            var chartsDefaults = {
++                                chart: {
++                                    renderTo: element[0],
++                                    type: attrs.type || null,
++                                    height: attrs.height || null,
++                                    width: attrs.width || null,
++                                    reflow: true,
++                                    animation: false,
++                                    zoomType: "x"
++                                }
++                            };
++                            if (attrs.type === "pie") {
++                                chartsDefaults.chart.margin = [ 0, 0, 0, 0 ];
++                                chartsDefaults.chart.spacingLeft = 0;
++                                chartsDefaults.chart.spacingRight = 0;
++                                chartsDefaults.chart.spacingTop = 0;
++                                chartsDefaults.chart.spacingBottom = 0;
++                                if (attrs.titleimage) {
++                                    chartdata.title.text = '<img src="' + attrs.titleimage + '">';
++                                }
++                                if (attrs.titleicon) {
++                                    chartdata.title.text = '<i class="pictogram ' + attrs.titleiconclass + '">' + attrs.titleicon + "</i>";
++                                }
++                                if (attrs.titlecolor) {
++                                    chartdata.title.style.color = attrs.titlecolor;
++                                }
++                                if (attrs.titleimagetop) {
++                                    chartdata.title.style.marginTop = attrs.titleimagetop;
++                                }
++                                if (attrs.titleimageleft) {
++                                    chartdata.title.style.marginLeft = attrs.titleimageleft;
++                                }
++                            }
++                            if (attrs.type === "line") {
++                                chartsDefaults.chart.marginTop = 30;
++                                chartsDefaults.chart.spacingTop = 50;
++                            }
++                            if (attrs.type === "column") {
++                                chartsDefaults.chart.marginBottom = 80;
++                            }
++                            if (attrs.type === "area") {
++                                chartsDefaults.chart.spacingLeft = 0;
++                                chartsDefaults.chart.spacingRight = 0;
++                                chartsDefaults.chart.marginLeft = 0;
++                                chartsDefaults.chart.marginRight = 0;
++                            }
++                            Highcharts.setOptions({
++                                global: {
++                                    useUTC: false
++                                },
++                                chart: {
++                                    style: {
++                                        fontFamily: "marquette-light, Helvetica, Arial, sans-serif"
++                                    }
++                                }
++                            });
++                            if (attrs.type === "line") {
++                                var xAxis1 = chartdata.xAxis[0];
++                                if (!xAxis1.labels.formatter) {
++                                    xAxis1.labels.formatter = new Function(attrs.xaxislabel);
++                                }
++                                if (!xAxis1.labels.step) {
++                                    xAxis1.labels.step = attrs.xaxisstep;
++                                }
++                            }
++                            if (chartdata.tooltip) {
++                                if (typeof chartdata.tooltip.formatter === "string") {
++                                    chartdata.tooltip.formatter = new Function(chartdata.tooltip.formatter);
++                                }
++                            }
++                            renderChart(chartsDefaults, chartdata);
++                        }
++                    }, true);
++                }
++            };
++        });
++        function renderChart(chartsDefaults, chartdata, attrs) {
++            var newSettings = {};
++            $.extend(true, newSettings, chartsDefaults, chartdata);
++            var chart = new Highcharts.Chart(newSettings);
++        }
++        AppServices.Services.factory("charts", function() {
++            var lineChart, areaChart, paretoChart, pieChart, pieCompare, xaxis, seriesIndex;
++            return {
++                convertLineChart: function(chartData, chartTemplate, dataDescription, settings, currentCompare) {
++                    lineChart = chartTemplate;
++                    if (typeof chartData[0] === "undefined") {
++                        chartData[0] = {};
++                        chartData[0].datapoints = [];
++                    }
++                    var dataPoints = chartData[0].datapoints, dPLength = dataPoints.length, label;
++                    if (currentCompare === "YESTERDAY") {
++                        seriesIndex = dataDescription.dataAttr.length;
++                        label = "Yesterday ";
++                    } else if (currentCompare === "LAST_WEEK") {
++                        seriesIndex = dataDescription.dataAttr.length;
++                        label = "Last Week ";
++                    } else {
++                        lineChart = chartTemplate;
++                        seriesIndex = 0;
++                        lineChart.series = [];
++                        label = "";
++                    }
++                    xaxis = lineChart.xAxis[0];
++                    xaxis.categories = [];
++                    if (settings.xaxisformat) {
++                        xaxis.labels.formatter = new Function(settings.xaxisformat);
++                    }
++                    if (settings.step) {
++                        xaxis.labels.step = settings.step;
++                    }
++                    for (var i = 0; i < dPLength; i++) {
++                        var dp = dataPoints[i];
++                        xaxis.categories.push(dp.timestamp);
++                    }
++                    if (chartData.length > 1) {
++                        for (var l = 0; l < chartData.length; l++) {
++                            if (chartData[l].chartGroupName) {
++                                dataPoints = chartData[l].datapoints;
++                                lineChart.series[l] = {};
++                                lineChart.series[l].data = [];
++                                lineChart.series[l].name = chartData[l].chartGroupName;
++                                lineChart.series[l].yAxis = 0;
++                                lineChart.series[l].type = "line";
++                                lineChart.series[l].color = dataDescription.colors[i];
++                                lineChart.series[l].dashStyle = "solid";
++                                lineChart.series[l].yAxis.title.text = dataDescription.yAxisLabels;
++                                plotData(l, dPLength, dataPoints, dataDescription.detailDataAttr, true);
++                            }
++                        }
++                    } else {
++                        var steadyCounter = 0;
++                        for (var i = seriesIndex; i < dataDescription.dataAttr.length + (seriesIndex > 0 ? seriesIndex : 0); i++) {
++                            var yAxisIndex = dataDescription.multiAxis ? steadyCounter : 0;
++                            lineChart.series[i] = {};
++                            lineChart.series[i].data = [];
++                            lineChart.series[i].name = label + dataDescription.labels[steadyCounter];
++                            lineChart.series[i].yAxis = yAxisIndex;
++                            lineChart.series[i].type = "line";
++                            lineChart.series[i].color = dataDescription.colors[i];
++                            lineChart.series[i].dashStyle = "solid";
++                            lineChart.yAxis[yAxisIndex].title.text = dataDescription.yAxisLabels[dataDescription.yAxisLabels > 1 ? steadyCounter : 0];
++                            steadyCounter++;
++                        }
++                        plotData(seriesIndex, dPLength, dataPoints, dataDescription.dataAttr, false);
++                    }
++                    function plotData(counter, dPLength, dataPoints, dataAttrs, detailedView) {
++                        for (var i = 0; i < dPLength; i++) {
++                            var dp = dataPoints[i];
++                            var localCounter = counter;
++                            for (var j = 0; j < dataAttrs.length; j++) {
++                                if (typeof dp === "undefined") {
++                                    lineChart.series[localCounter].data.push([ i, 0 ]);
++                                } else {
++                                    lineChart.series[localCounter].data.push([ i, dp[dataAttrs[j]] ]);
++                                }
++                                if (!detailedView) {
++                                    localCounter++;
++                                }
++                            }
++                        }
++                    }
++                    return lineChart;
++                },
++                convertAreaChart: function(chartData, chartTemplate, dataDescription, settings, currentCompare) {
++                    areaChart = angular.copy(areaChart);
++                    if (typeof chartData[0] === "undefined") {
++                        chartData[0] = {};
++                        chartData[0].datapoints = [];
++                    }
++                    var dataPoints = chartData[0].datapoints, dPLength = dataPoints.length, label;
++                    if (currentCompare === "YESTERDAY") {
++                        seriesIndex = dataDescription.dataAttr.length;
++                        label = "Yesterday ";
++                    } else if (currentCompare === "LAST_WEEK") {
++                        seriesIndex = dataDescription.dataAttr.length;
++                        label = "Last Week ";
++                    } else {
++                        areaChart = chartTemplate;
++                        seriesIndex = 0;
++                        areaChart.series = [];
++                        label = "";
++                    }
++                    xaxis = areaChart.xAxis[0];
++                    xaxis.categories = [];
++                    if (settings.xaxisformat) {
++                        xaxis.labels.formatter = new Function(settings.xaxisformat);
++                    }
++                    if (settings.step) {
++                        xaxis.labels.step = settings.step;
++                    }
++                    for (var i = 0; i < dPLength; i++) {
++                        var dp = dataPoints[i];
++                        xaxis.categories.push(dp.timestamp);
++                    }
++                    if (chartData.length > 1) {
++                        for (var l = 0; l < chartData.length; l++) {
++                            if (chartData[l].chartGroupName) {
++                                dataPoints = chartData[l].datapoints;
++                                areaChart.series[l] = {};
++                                areaChart.series[l].data = [];
++                                areaChart.series[l].fillColor = dataDescription.areaColors[l];
++                                areaChart.series[l].name = chartData[l].chartGroupName;
++                                areaChart.series[l].yAxis = 0;
++                                areaChart.series[l].type = "area";
++                                areaChart.series[l].pointInterval = 1;
++                                areaChart.series[l].color = dataDescription.colors[l];
++                                areaChart.series[l].dashStyle = "solid";
++                                areaChart.series[l].yAxis.title.text = dataDescription.yAxisLabels;
++                                plotData(l, dPLength, dataPoints, dataDescription.detailDataAttr, true);
++                            }
++                        }
++                    } else {
++                        var steadyCounter = 0;
++                        for (var i = seriesIndex; i < dataDescription.dataAttr.length + (seriesIndex > 0 ? seriesIndex : 0); i++) {
++                            var yAxisIndex = dataDescription.multiAxis ? steadyCounter : 0;
++                            areaChart.series[i] = {};
++                            areaChart.series[i].data = [];
++                            areaChart.series[i].fillColor = dataDescription.areaColors[i];
++                            areaChart.series[i].name = label + dataDescription.labels[steadyCounter];
++                            areaChart.series[i].yAxis = yAxisIndex;
++                            areaChart.series[i].type = "area";
++                            areaChart.series[i].pointInterval = 1;
++                            areaChart.series[i].color = dataDescription.colors[i];
++                            areaChart.series[i].dashStyle = "solid";
++                            areaChart.yAxis[yAxisIndex].title.text = dataDescription.yAxisLabels[dataDescription.yAxisLabels > 1 ? steadyCounter : 0];
++                            steadyCounter++;
++                        }
++                        plotData(seriesIndex, dPLength, dataPoints, dataDescription.dataAttr, false);
++                    }
++                    function plotData(counter, dPLength, dataPoints, dataAttrs, detailedView) {
++                        for (var i = 0; i < dPLength; i++) {
++                            var dp = dataPoints[i];
++                            var localCounter = counter;
++                            for (var j = 0; j < dataAttrs.length; j++) {
++                                if (typeof dp === "undefined") {
++                                    areaChart.series[localCounter].data.push(0);
++                                } else {
++                                    areaChart.series[localCounter].data.push(dp[dataAttrs[j]]);
++                                }
++                                if (!detailedView) {
++                                    localCounter++;
++                                }
++                            }
++                        }
++                    }
++                    return areaChart;
++                },
++                convertParetoChart: function(chartData, chartTemplate, dataDescription, settings, currentCompare) {
++                    paretoChart = chartTemplate;
++                    if (typeof chartData === "undefined") {
++                        chartData = [];
++                    }
++                    var label, cdLength = chartData.length, compare = false, allParetoOptions = [], stackedBar = false;
++                    seriesIndex = 0;
++                    function getPreviousData() {
++                        for (var i = 0; i < chartTemplate.series[0].data.length; i++) {
++                            allParetoOptions.push(chartTemplate.xAxis.categories[i]);
++                        }
++                    }
++                    if (typeof dataDescription.dataAttr[1] === "object") {
++                        stackedBar = true;
++                    }
++                    if (currentCompare === "YESTERDAY") {
++                        label = "Yesterday ";
++                        compare = true;
++                        if (stackedBar) {
++                            seriesIndex = dataDescription.dataAttr[1].length;
++                        }
++                        getPreviousData();
++                    } else if (currentCompare === "LAST_WEEK") {
++                        label = "Last Week ";
++                        compare = true;
++                        if (stackedBar) {
++                            seriesIndex = dataDescription.dataAttr[1].length;
++                        }
++                        seriesIndex = getPreviousData();
++                    } else {
++                        compare = false;
++                        label = "";
++                        paretoChart.xAxis.categories = [];
++                        paretoChart.series = [];
++                        paretoChart.series[0] = {};
++                        paretoChart.series[0].data = [];
++                        paretoChart.legend.enabled = false;
++                    }
++                    paretoChart.plotOptions.series.borderColor = dataDescription.borderColor;
++                    if (compare && !stackedBar) {
++                        paretoChart.series[1] = {};
++                        paretoChart.series[1].data = [];
++                        for (var i = 0; i < allParetoOptions.length; i++) {
++                            paretoChart.series[1].data.push(0);
++                        }
++                        paretoChart.legend.enabled = true;
++                    }
++                    for (var i = 0; i < cdLength; i++) {
++                        var bar = chartData[i];
++                        if (!compare) {
++                            paretoChart.xAxis.categories.push(bar[dataDescription.dataAttr[0]]);
++                            if (typeof dataDescription.dataAttr[1] === "object") {
++                                createStackedBar(dataDescription, paretoChart, paretoChart.series.length);
++                            } else {
++                                paretoChart.series[0].data.push(bar[dataDescription.dataAttr[1]]);
++                                paretoChart.series[0].name = dataDescription.labels[0];
++                                paretoChart.series[0].color = dataDescription.colors[0];
++                            }
++                        } else {
++                            var newLabel = bar[dataDescription.dataAttr[0]], newValue = bar[dataDescription.dataAttr[1]], previousIndex = allParetoOptions.indexOf(newLabel);
++                            if (previousIndex > -1) {
++                                if (typeof dataDescription.dataAttr[1] === "object") {
++                                    createStackedBar(dataDescription, paretoChart, paretoChart.series.length);
++                                } else {
++                                    paretoChart.series[1].data[previousIndex] = newValue;
++                                    paretoChart.series[1].name = label !== "" ? label + " " + dataDescription.labels[0] : dataDescription.labels[0];
++                                    paretoChart.series[1].color = dataDescription.colors[1];
++                                }
++                            } else {}
++                        }
++                    }
++                    function createStackedBar(dataDescription, paretoChart, startingPoint) {
++                        paretoChart.plotOptions = {
++                            series: {
++                                shadow: false,
++                                borderColor: dataDescription.borderColor,
++                                borderWidth: 1
++                            },
++                            column: {
++                                stacking: "normal",
++                                dataLabels: {
++                                    enabled: true,
++                                    color: Highcharts.theme && Highcharts.theme.dataLabelsColor || "white"
++                                }
++                            }
++                        };
++                        var start = dataDescription.dataAttr[1].length, steadyCounter = 0, stackName = label;
++                        if (compare) {
++                            paretoChart.legend.enabled = true;
++                        }
++                        for (var f = seriesIndex; f < start + seriesIndex; f++) {
++                            if (!paretoChart.series[f]) {
++                                paretoChart.series[f] = {
++                                    data: []
++                                };
++                            }
++                            paretoChart.series[f].data.push(bar[dataDescription.dataAttr[1][steadyCounter]]);
++                            paretoChart.series[f].name = label !== "" ? label + " " + dataDescription.labels[steadyCounter] : dataDescription.labels[steadyCounter];
++                            paretoChart.series[f].color = dataDescription.colors[f];
++                            paretoChart.series[f].stack = label;
++                            steadyCounter++;
++                        }
++                    }
++                    return paretoChart;
++                },
++                convertPieChart: function(chartData, chartTemplate, dataDescription, settings, currentCompare) {
++                    var label, cdLength = chartData.length, compare = false;
++                    pieChart = chartTemplate;
++                    if (currentCompare === "YESTERDAY") {
++                        label = "Yesterday ";
++                        compare = false;
++                    } else if (currentCompare === "LAST_WEEK") {
++                        label = "Last Week ";
++                        compare = false;
++                    } else {
++                        compare = false;
++                        pieChart.series[0].data = [];
++                        if (pieChart.series[0].dataLabels) {
++                            if (typeof pieChart.series[0].dataLabels.formatter === "string") {
++                                pieChart.series[0].dataLabels.formatter = new Function(pieChart.series[0].dataLabels.formatter);
++                            }
++                        }
++                    }
++                    pieChart.plotOptions.pie.borderColor = dataDescription.borderColor;
++                    if (compare) {
++                        pieChart.series[1].data = [];
++                        if (pieChart.series[1].dataLabels) {
++                            if (typeof pieChart.series[1].dataLabels.formatter === "string") {
++                                pieChart.series[1].dataLabels.formatter = new Function(pieChart.series[1].dataLabels.formatter);
++                            }
++                        }
++                    }
++                    var tempArray = [];
++                    for (var i = 0; i < cdLength; i++) {
++                        var pie = chartData[i];
++                        tempArray.push({
++                            name: pie[dataDescription.dataAttr[0]],
++                            y: pie[dataDescription.dataAttr[1]],
++                            color: ""
++                        });
++                    }
++                    sortJsonArrayByProperty(tempArray, "name");
++                    for (var i = 0; i < tempArray.length; i++) {
++                        tempArray[i].color = dataDescription.colors[i];
++                    }
++                    if (!compare) {
++                        pieChart.series[0].data = tempArray;
++                    } else {
++                        pieChart.series[1].data = tempArray;
++                    }
++                    return pieChart;
++                }
++            };
++            function sortJsonArrayByProperty(objArray, prop, direction) {
++                if (arguments.length < 2) throw new Error("sortJsonArrayByProp requires 2 arguments");
++                var direct = arguments.length > 2 ? arguments[2] : 1;
++                if (objArray && objArray.constructor === Array) {
++                    var propPath = prop.constructor === Array ? prop : prop.split(".");
++                    objArray.sort(function(a, b) {
++                        for (var p in propPath) {
++                            if (a[propPath[p]] && b[propPath[p]]) {
++                                a = a[propPath[p]];
++                                b = b[propPath[p]];
++                            }
++                        }
++                        a = a.match(/^\d+$/) ? +a : a;
++                        b = b.match(/^\d+$/) ? +b : b;
++                        return a < b ? -1 * direct : a > b ? 1 * direct : 0;
++                    });
++                }
++            }
++        });
++        $(".sessions-bar").sparkline([ 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 1 ], {
++            type: "bar",
++            barColor: "#c5c5c5",
++            width: "800px",
++            height: 100,
++            barWidth: 12,
++            barSpacing: "1px"
++        });
++        "use strict";
++        AppServices.Controllers.controller("DataCtrl", [ "ug", "$scope", "$rootScope", "$location", function(ug, $scope, $rootScope, $location) {
++            var init = function() {
++                $scope.verb = "GET";
++                $scope.display = "";
++                $scope.queryBodyDetail = {};
++                $scope.queryBodyDisplay = "none";
++                $scope.queryLimitDisplay = "block";
++                $scope.queryStringDisplay = "block";
++                $scope.entitySelected = {};
++                $scope.newCollection = {};
++                $rootScope.queryCollection = {};
++                $scope.data = {};
++                $scope.data.queryPath = "";
++                $scope.data.queryBody = '{ "name":"value" }';
++                $scope.data.searchString = "";
++                $scope.data.queryLimit = "";
++            };
++            var runQuery = function(verb) {
++                $scope.loading = true;
++                var queryPath = $scope.removeFirstSlash($scope.data.queryPath || "");
++                var searchString = $scope.data.searchString || "";
++                var queryLimit = $scope.data.queryLimit || "";
++                var body = JSON.parse($scope.data.queryBody || "{}");
++                if (verb == "POST" && $scope.validateJson(true)) {
++                    ug.runDataPOSTQuery(queryPath, body);
++                } else if (verb == "PUT" && $scope.validateJson(true)) {
++                    ug.runDataPutQuery(queryPath, searchString, queryLimit, body);
++                } else if (verb == "DELETE") {
++                    ug.runDataDeleteQuery(queryPath, searchString, queryLimit);
++                } else {
++                    ug.runDataQuery(queryPath, searchString, queryLimit);
++                }
++            };
++            $scope.$on("top-collections-received", function(event, collectionList) {
++                $scope.loading = false;
++                var ignoredCollections = [ "events" ];
++                ignoredCollections.forEach(function(ignoredCollection) {
++                    collectionList.hasOwnProperty(ignoredCollection) && delete collectionList[ignoredCollection];
++                });
++                $scope.collectionList = collectionList;
++                $scope.queryBoxesSelected = false;
++                if (!$scope.queryPath) {
++                    $scope.loadCollection("/" + collectionList[Object.keys(collectionList).sort()[0]].name);
++                }
++                $scope.applyScope();
++            });
++            $scope.$on("error-running-query", function(event) {
++                $scope.loading = false;
++                runQuery("GET");
++                $scope.applyScope();
++            });
++            $scope.$on("entity-deleted", function(event) {
++                $scope.deleteLoading = false;
++                $rootScope.$broadcast("alert", "success", "Entities deleted sucessfully");
++                $scope.queryBoxesSelected = false;
++                $scope.checkNextPrev();
++                $scope.applyScope();
++            });
++            $scope.$on("entity-deleted-error", function(event) {
++                $scope.deleteLoading = false;
++                runQuery("GET");
++                $scope.applyScope();
++            });
++            $scope.$on("collection-created", function() {
++                $scope.newCollection.name = "";
++            });
++            $scope.$on("query-received", function(event, collection) {
++                $scope.loading = false;
++                $rootScope.queryCollection = collection;
++                ug.getIndexes($scope.data.queryPath);
++                $scope.setDisplayType();
++                $scope.checkNextPrev();
++                $scope.applyScope();
++                $scope.queryBoxesSelected = false;
++            });
++            $scope.$on("indexes-received", function(event, indexes) {
++                var fred = indexes;
++            });
++            $scope.$on("app-changed", function() {
++                init();
++            });
++            $scope.setDisplayType = function() {
++                $scope.display = "generic";
++            };
++            $scope.deleteEntitiesDialog = function(modalId) {
++                $scope.deleteLoading = false;
++                $scope.deleteEntities($rootScope.queryCollection, "entity-deleted", "error deleting entity");
++                $scope.hideModal(modalId);
++            };
++            $scope.newCollectionDialog = function(modalId) {
++                if ($scope.newCollection.name) {
++                    ug.createCollection($scope.newCollection.name);
++                    ug.getTopCollections();
++                    $rootScope.$broadcast("alert", "success", "Collection created successfully.");
++                    $scope.hideModal(modalId);
++                } else {
++                    $rootScope.$broadcast("alert", "error", "You must specify a collection name.");
++                }
++            };
++            $scope.addToPath = function(uuid) {
++                $scope.data.queryPath = "/" + $rootScope.queryCollection._type + "/" + uuid;
++            };
++            $scope.isDeep = function(item) {
++                return Object.prototype.toString.call(item) === "[object Object]";
++            };
++            $scope.loadCollection = function(type) {
++                $scope.data.queryPath = "/" + type.substring(1, type.length);
++                $scope.data.searchString = "";
++                $scope.data.queryLimit = "";
++                $scope.data.body = '{ "name":"value" }';
++                $scope.selectGET();
++                $scope.applyScope();
++                $scope.run();
++            };
++            $scope.selectGET = function() {
++                $scope.queryBodyDisplay = "none";
++                $scope.queryLimitDisplay = "block";
++                $scope.queryStringDisplay = "block";
++                $scope.verb = "GET";
++            };
++            $scope.selectPOST = function() {
++                $scope.queryBodyDisplay = "block";
++                $scope.queryLimitDisplay = "none";
++                $scope.queryStringDisplay = "none";
++                $scope.verb = "POST";
++            };
++            $scope.selectPUT = function() {
++                $scope.queryBodyDisplay = "block";
++                $scope.queryLimitDisplay = "block";
++                $scope.queryStringDisplay = "block";
++                $scope.verb = "PUT";
++            };
++            $scope.selectDELETE = function() {
++                $scope.queryBodyDisplay = "none";
++                $scope.queryLimitDisplay = "block";
++                $scope.queryStringDisplay = "block";
++                $scope.verb = "DELETE";
++            };
++            $scope.validateJson = function(skipMessage) {
++                var queryBody = $scope.data.queryBody;
++                try {
++                    queryBody = JSON.parse(queryBody);
++                } catch (e) {
++                    $rootScope.$broadcast("alert", "error", "JSON is not valid");
++                    return false;
++                }
++                queryBody = JSON.stringify(queryBody, null, 2);
++                !skipMessage && $rootScope.$broadcast("alert", "success", "JSON is valid");
++                $scope.data.queryBody = queryBody;
++                return true;
++            };
++            $scope.saveEntity = function(entity) {
++                if (!$scope.validateJson()) {
++                    return false;
++                }
++                var queryBody = entity._json;
++                queryBody = JSON.parse(queryBody);
++                $rootScope.selectedEntity.set();
++                $rootScope.selectedEntity.set(queryBody);
++                $rootScope.selectedEntity.set("type", entity._data.type);
++                $rootScope.selectedEntity.set("uuid", entity._data.uuid);
++                $rootScope.selectedEntity.save(function(err, data) {
++                    if (err) {
++                        $rootScope.$broadcast("alert", "error", "error: " + data.error_description);
++                    } else {
++                        $rootScope.$broadcast("alert", "success", "entity saved");
++                    }
++                });
++            };
++            $scope.run = function() {
++                $rootScope.queryCollection = "";
++                var verb = $scope.verb;
++                runQuery(verb);
++            };
++            $scope.hasProperty = function(prop) {
++                var retval = false;
++                if (typeof $rootScope.queryCollection._list !== "undefined") {
++                    angular.forEach($rootScope.queryCollection._list, function(value, key) {
++                        if (!retval) {
++                            if (value._data[prop]) {
++                                retval = true;
++                            }
++                        }
++                    });
++                }
++                return retval;
++            };
++            $scope.resetNextPrev = function() {
++                $scope.previous_display = "none";
++                $scope.next_display = "none";
++            };
++            $scope.checkNextPrev = function() {
++                $scope.resetNextPrev();
++                if ($rootScope.queryCollection.hasPreviousPage()) {
++                    $scope.previous_display = "default";
++                }
++                if ($rootScope.queryCollection.hasNextPage()) {
++                    $scope.next_display = "default";
++                }
++            };
++            $scope.selectEntity = function(uuid) {
++                $rootScope.selectedEntity = $rootScope.queryCollection.getEntityByUUID(uuid);
++                $scope.addToPath(uuid);
++            };
++            $scope.getJSONView = function(entity) {
++                var tempjson = entity.get();
++                var queryBody = JSON.stringify(tempjson, null, 2);
++                queryBody = JSON.parse(queryBody);
++                delete queryBody.metadata;
++                delete queryBody.uuid;
++                delete queryBody.created;
++                delete queryBody.modified;
++                delete queryBody.type;
++                $scope.queryBody = JSON.stringify(queryBody, null, 2);
++            };
++            $scope.getPrevious = function() {
++                $rootScope.queryCollection.getPreviousPage(function(err) {
++                    if (err) {
++                        $rootScope.$broadcast("alert", "error", "error getting previous page of data");
++                    }
++                    $scope.checkNextPrev();
++                    $scope.applyScope();
++                });
++            };
++            $scope.getNext = function() {
++                $rootScope.queryCollection.getNextPage(function(err) {
++                    if (err) {
++                        $rootScope.$broadcast("alert", "error", "error getting next page of data");
++                    }
++                    $scope.checkNextPrev();
++                    $scope.applyScope();
++                });
++            };
++            init();
++            $rootScope.queryCollection = $rootScope.queryCollection || {};
++            $rootScope.selectedEntity = {};
++            if ($rootScope.queryCollection && $rootScope.queryCollection._type) {
++                $scope.loadCollection($rootScope.queryCollection._type);
++                $scope.setDisplayType();
++            }
++            ug.getTopCollections();
++            $scope.resetNextPrev();
++        } ]);
++        "use strict";
++        AppServices.Controllers.controller("EntityCtrl", [ "ug", "$scope", "$rootScope", "$location", function(ug, $scope, $rootScope, $location) {
++            if (!$rootScope.selectedEntity) {
++                $location.path("/data");
++                return;
++            }
++            $scope.entityUUID = $rootScope.selectedEntity.get("uuid");
++            $scope.entityType = $rootScope.selectedEntity.get("type");
++            var tempjson = $rootScope.selectedEntity.get();
++            var queryBody = JSON.stringify(tempjson, null, 2);
++            queryBody = JSON.parse(queryBody);
++            delete queryBody.metadata;
++            delete queryBody.uuid;
++            delete queryBody.created;
++            delete queryBody.modified;
++            delete queryBody.type;
++            $scope.queryBody = JSON.stringify(queryBody, null, 2);
++            $scope.validateJson = function() {
++                var queryBody = $scope.queryBody;
++                try {
++                    queryBody = JSON.parse(queryBody);
++                } catch (e) {
++                    $rootScope.$broadcast("alert", "error", "JSON is not valid");
++                    return false;
++                }
++                queryBody = JSON.stringify(queryBody, null, 2);
++                $rootScope.$broadcast("alert", "success", "JSON is valid");
++                $scope.queryBody = queryBody;
++                return true;
++            };
++            $scope.saveEntity = function() {
++                if (!$scope.validateJson()) {
++                    return false;
++                }
++                var queryBody = $scope.queryBody;
++                queryBody = JSON.parse(queryBody);
++                $rootScope.selectedEntity.set();
++                $rootScope.selectedEntity.set(queryBody);
++                $rootScope.selectedEntity.set("type", $scope.entityType);
++                $rootScope.selectedEntity.set("uuid", $scope.entityUUID);
++                $rootScope.selectedEntity.save(function(err, data) {
++                    if (err) {
++                        $rootScope.$broadcast("alert", "error", "error: " + data.error_description);
++                    } else {
++                        $rootScope.$broadcast("alert", "success", "entity saved");
++                    }
++                });
++            };
++        } ]);
++        "use strict";
++        AppServices.Directives.directive("balloon", [ "$window", "$timeout", function($window, $timeout) {
++            return {
++                restrict: "ECA",
++                scope: "=",
++                template: "" + '<div class="baloon {{direction}}" ng-transclude>' + "</div>",
++                replace: true,
++                transclude: true,
++                link: function linkFn(scope, lElement, attrs) {
++                    scope.direction = attrs.direction;
++                    var runScroll = true;
++                    var windowEl = angular.element($window);
++                    windowEl.on("scroll", function() {
++                        if (runScroll) {
++                            lElement.addClass("fade-out");
++                            $timeout(function() {
++                                lElement.addClass("hide");
++                            }, 1e3);
++                            runScroll = false;
++                        }
++                    });
++                }
++            };
++        } ]);
++        "use strict";
++        AppServices.Directives.directive("bsmodal", [ "$rootScope", function($rootScope) {
++            return {
++                restrict: "ECA",
++                scope: {
++                    title: "@title",
++                    buttonid: "=buttonid",
++                    footertext: "=footertext",
++                    closelabel: "=closelabel"
++                },
++                transclude: true,
++                templateUrl: "dialogs/modal.html",
++                replace: true,
++                link: function linkFn(scope, lElement, attrs, parentCtrl) {
++                    scope.title = attrs.title;
++                    scope.footertext = attrs.footertext;
++                    scope.closelabel = attrs.closelabel;
++                    scope.close = attrs.close;
++                    scope.extrabutton = attrs.extrabutton;
++                    scope.extrabuttonlabel = attrs.extrabuttonlabel;
++                    scope.buttonId = attrs.buttonid;
++                    scope.closeDelegate = function(attr) {
++                        scope.$parent[attr](attrs.id, scope);
++                    };
++                    scope.extraDelegate = function(attr) {
++                        if (scope.dialogForm.$valid) {
++                            console.log(parentCtrl);
++                            scope.$parent[attr](attrs.id);
++                        } else {
++                            $rootScope.$broadcast("alert", "error", "Please check your form input and resubmit.");
++                        }
++                    };
++                }
++            };
++        } ]);
++        "use strict";
++        AppServices.Controllers.controller("AlertCtrl", [ "$scope", "$rootScope", "$timeout", function($scope, $rootScope, $timeout) {
++            $scope.alertDisplay = "none";
++            $scope.alerts = [];
++            $scope.$on("alert", function(event, type, message, permanent) {
++                $scope.addAlert(type, message, permanent);
++            });
++            $scope.$on("clear-alerts", function(event, message) {
++                $scope.alerts = [];
++            });
++            $scope.addAlert = function(type, message, permanent) {
++                $scope.alertDisplay = "block";
++                $scope.alerts.push({
++                    type: type,
++                    msg: message
++                });
++                $scope.applyScope();
++                if (!permanent) {
++                    $timeout(function() {
++                        $scope.alerts.shift();
++                    }, 5e3);
++                }
++            };
++            $scope.closeAlert = function(index) {
++                $scope.alerts.splice(index, 1);
++            };
++        } ]);
++        "use strict";
++        AppServices.Directives.directive("alerti", [ "$rootScope", "$timeout", function($rootScope, $timeout) {
++            return {
++                restrict: "ECA",
++                scope: {
++                    type: "=type",
++                    closeable: "@closeable",
++                    index: "&index"
++                },
++                template: '<div class="alert" ng-class="type && \'alert-\' + type">' + '    <button ng-show="closeable" type="button" class="close" ng-click="closeAlert(index)">&times;</button>' + '    <i ng-if="type === \'warning\'" class="pictogram pull-left" style="font-size:3em;line-height:0.4">&#128165;</i>' + '    <i ng-if="type === \'info\'" class="pictogram pull-left">&#8505;</i>' + '    <i ng-if="type === \'error\'" class="pictogram pull-left">&#9889;</i>' + '    <i ng-if="type === \'success\'" class="pictogram pull-left">&#128077;</i>' + "<div ng-transclude></div>" + "</div>",
++                replace: true,
++                transclude: true,
++                link: function linkFn(scope, lElement, attrs) {
++                    $timeout(function() {
++                        lElement.addClass("fade-out");
++                    }, 4e3);
++                    lElement.click(function() {
++                        if (attrs.index) {
++                            scope.$parent.closeAlert(attrs.index);
++                        }
++                    });
++                    setTimeout(function() {
++                        lElement.addClass("alert-animate");
++                    }, 10);
++                }
++            };
++        } ]);
++        "use strict";
++        AppServices.Directives.directive("appswitcher", [ "$rootScope", function($rootScope) {
++            return {
++                restrict: "ECA",
++                scope: "=",
++                templateUrl: "global/appswitcher-template.html",
++                replace: true,
++                transclude: true,
++                link: function linkFn(scope, lElement, attrs) {
++                    var classNameOpen = "open";
++                    $("ul.nav li.dropdownContainingSubmenu").hover(function() {
++                        $(this).addClass(classNameOpen);
++                    }, function() {
++                        $(this).removeClass(classNameOpen);
++                    });
++                    $("#globalNav > a").mouseover(globalNavDetail);
++                    $("#globalNavDetail").mouseover(globalNavDetail);
++                    $("#globalNavSubmenuContainer ul li").mouseover(function() {
++                        $("#globalNavDetail > div").removeClass(classNameOpen);
++                        $("#" + this.getAttribute("data-globalNavDetail")).addClass(classNameOpen);
++                    });
++                    function globalNavDetail() {
++                        $("#globalNavDetail > div").removeClass(classNameOpen);
++                        $("#globalNavDetailApiPlatform").addClass(classNameOpen);
++                    }
++                }
++            };
++        } ]);
++        "use strict";
++        AppServices.Services.factory("help", function($rootScope, $http, $analytics) {
++            $rootScope.help = {};
++            $rootScope.help.helpButtonStatus = "Enable Help";
++            $rootScope.help.helpTooltipsEnabled = false;
++            $rootScope.help.clicked = false;
++            $rootScope.help.showHelpButtons = false;
++            var tooltipStartTime;
++            var helpStartTime;
++            var introjs_step;
++            $rootScope.help.sendTooltipGA = function(tooltipName) {
++                $analytics.eventTrack("tooltip - " + $rootScope.currentPath, {
++                    category: "App Services",
++                    label: tooltipName
++                });
++            };
++            $rootScope.help.toggleTooltips = function() {
++                if ($rootScope.help.helpTooltipsEnabled == false) {
++                    $rootScope.help.helpButtonStatus = "Disable Help";
++                    $rootScope.help.helpTooltipsEnabled = true;
++                    showHelpModal("tooltips");
++                } else {
++                    $rootScope.help.helpButtonStatus = "Enable Help";
++                    $rootScope.help.helpTooltipsEnabled = false;
++                }
++            };
++            $rootScope.help.IntroOptions = {
++                steps: [],
++                showStepNumbers: false,
++                exitOnOverlayClick: true,
++                exitOnEsc: true,
++                nextLabel: "Next",
++                prevLabel: "Back",
++                skipLabel: "Exit",
++                doneLabel: "Done"
++            };
++            $rootScope.$on("$routeChangeSuccess", function(event, current) {
++                var path = current.$$route ? current.$$route.originalPath : null;
++                if (path == "/org-overview") {
++                    $rootScope.help.showHelpButtons = true;
++                    getHelpJson(path).success(function(json) {
++                        var helpJson = json;
++                        setHelpStrings(helpJson);
++                        showHelpModal("tour");
++                    });
++                } else {
++                    $rootScope.help.showHelpButtons = false;
++                }
++            });
++            var showHelpModal = function(helpType) {
++                var shouldHelp = location.search.indexOf("noHelp") <= 0;
++                if (helpType == "tour" && !getHelpStatus(helpType)) {
++                    shouldHelp && $rootScope.showModal("introjs");
++                } else if (helpType == "tooltips" && !getHelpStatus(helpType)) {
++                    shouldHelp && $rootScope.showModal("tooltips");
++                }
++            };
++            var setHelpStrings = function(helpJson) {
++                $rootScope.help.IntroOptions.steps = helpJson.introjs;
++                angular.forEach(helpJson.tooltip, function(value, binding) {
++                    $rootScope[binding] = value;
++                });
++            };
++            $rootScope.help.introjs_StartEvent = function() {
++                helpStartTime = Date.now();
++                introjs_step = 1;
++            };
++            $rootScope.help.introjs_ExitEvent = function() {
++                var introjs_time = Math.round((Date.now() - helpStartTime) / 1e3);
++                $analytics.eventTrack("introjs timing - " + $rootScope.currentPath, {
++                    category: "App Services",
++                    label: introjs_time + "s"
++                });
++                $analytics.eventTrack("introjs exit - " + $rootScope.currentPath, {
++                    category: "App Services",
++                    label: "step" + introjs_step
++                });
++            };
++            $rootScope.help.introjs_ChangeEvent = function() {
++                introjs_step++;
++            };
++            var getHelpJson = function(path) {
++                return $http.jsonp("http://sdk.apigee.com.s3.amazonaws.com/portal_help" + path + "/helpJson.json?callback=JSON_CALLBACK");
++            };
++            var getHelpStatus = function(helpType) {
++                var status;
++                if (helpType == "tour") {
++                    status = localStorage.getItem("ftu_tour");
++                    localStorage.setItem("ftu_tour", "false");
++                } else if (helpType == "tooltips") {
++                    status = localStorage.getItem("ftu_tooltips");
++                    localStorage.setItem("ftu_tooltips", "false");
++                }
++                return status;
++            };
++        });
++        AppServices.Directives.directive("insecureBanner", [ "$rootScope", "ug", function($rootScope, ug) {
++            return {
++                restrict: "E",
++                transclude: true,
++                templateUrl: "global/insecure-banner.html",
++                link: function linkFn(scope, lElement, attrs) {
++                    scope.securityWarning = false;
++                    scope.$on("roles-received", function(evt, roles) {
++                        scope.securityWarning = false;
++                        if (!roles || !roles._list) return;
++                        roles._list.forEach(function(roleHolder) {
++                            var role = roleHolder._data;
++                            if (role.name.toUpperCase() === "GUEST") {
++                                roleHolder.getPermissions(function(err, data) {
++                                    if (!err) {
++                                        if (roleHolder.permissions) {
++                                            roleHolder.permissions.forEach(function(permission) {
++                                                if (permission.path.indexOf("/**") >= 0) {
++                                                    scope.securityWarning = true;
++                                                    scope.applyScope();
++                                                }
++                                            });
++                                        }
++                                    }
++                                });
++                            }
++                        });
++                    });
++                    var initialized = false;
++                    scope.$on("app-initialized", function() {
++                        !initialized && ug.getRoles();
++                        initialized = true;
++                    });
++                    scope.$on("app-changed", function() {
++                        scope.securityWarning = false;
++                        ug.getRoles();
++                    });
++                }
++            };
++        } ]);
++        "use strict";
++        AppServices.Constants.constant("configuration", {
++            ITEMS_URL: "global/temp.json"
++        });
++        "use strict";
++        AppServices.Controllers.controller("PageCtrl", [ "ug", "help", "utility", "$scope", "$rootScope", "$location", "$routeParams", "$q", "$route", "$log", "$analytics", function(ug, help, utility, $scope, $rootScope, $location, $routeParams, $q, $route, $log, $analytics) {
++            var initScopeVariables = function() {
++                $scope.loadingText = "Loading...";
++                $scope.use_sso = false;
++                $scope.newApp = {
++                    name: ""
++                };
++                $scope.getPerm = "";
++                $scope.postPerm = "";
++                $scope.putPerm = "";
++                $scope.deletePerm = "";
++                $scope.usersTypeaheadValues = [];
++                $scope.groupsTypeaheadValues = [];
++                $scope.rolesTypeaheadValues = [];
++                $rootScope.sdkActive = false;
++                $rootScope.demoData = false;
++                $scope.queryStringApplied = false;
++                $rootScope.autoUpdateTimer = Usergrid.config ? Usergrid.config.autoUpdateTimer : 61;
++                $rootScope.requiresDeveloperKey = Usergrid.config ? Usergrid.config.client.requiresDeveloperKey : false;
++                $rootScope.loaded = $rootScope.activeUI = false;
++                for (var key in Usergrid.regex) {
++                    $scope[key] = Usergrid.regex[key];
++                }
++                $scope.options = Usergrid.options;
++                var getQuery = function() {
++                    var result = {}, queryString = location.search.slice(1), re = /([^&=]+)=([^&]*)/g, m;
++                    while (m = re.exec(queryString)) {
++                        result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
++                    }
++                    return result;
++                };
++                $scope.queryString = getQuery();
++            };
++            initScopeVariables();
++            $rootScope.urls = function() {
++                var urls = ug.getUrls($scope.queryString);
++                $scope.apiUrl = urls.apiUrl;
++                $scope.use_sso = urls.use_sso;
++                return urls;
++            };
++            $rootScope.gotoPage = function(path) {
++                $location.path(path);
++            };
++            var notRegistration = function() {
++                return "/forgot-password" !== $location.path() && "/register" !== $location.path();
++            };
++            var verifyUser = function() {
++                if ($location.path().slice(0, "/login".length) !== "/login") {
++                    $rootScope.currentPath = $location.path();
++                }
++                if ($routeParams.access_token && $routeParams.admin_email && $routeParams.uuid) {
++                    ug.set("token", $routeParams.access_token);
++                    ug.set("email", $routeParams.admin_email);
++                    ug.set("uuid", $routeParams.uuid);
++                    $location.search("access_token", null);
++                    $location.search("admin_email", null);
++                    $location.search("uuid", null);
++                }
++                ug.checkAuthentication(true);
++            };
++            $scope.profile = function() {
++                if ($scope.use_sso) {
++                    window.location = $rootScope.urls().PROFILE_URL + "?callback=" + encodeURIComponent($location.absUrl());
++                } else {
++                    $location.path("/profile");
++                }
++            };
++            $rootScope.showModal = function(id) {
++                $("#" + id).modal("show");
++            };
++            $rootScope.hideModal = function(id) {
++                $("#" + id).modal("hide");
++            };
++            $scope.deleteEntities = function(collection, successBroadcast, errorMessage) {
++                collection.resetEntityPointer();
++                var entitiesToDelete = [];
++                while (collection.hasNextEntity()) {
++                    var entity = collection.getNextEntity();
++                    var checked = entity.checked;
++                    if (checked) {
++                        entitiesToDelete.push(entity);
++                    }
++                }
++                var count = 0, success = false;
++                for (var i = 0; i < entitiesToDelete.length; i++) {
++                    var entity = entitiesToDelete[i];
++                    collection.destroyEntity(entity, function(err) {
++                        count++;
++                        if (err) {
++                            $rootScope.$broadcast("alert", "error", errorMessage);
++                            $rootScope.$broadcast(successBroadcast + "-error", err);
++                        } else {
++                            success = true;
++                        }
++                        if (count === entitiesToDelete.length) {
++                            success && $rootScope.$broadcast(successBroadcast);
++                            $scope.applyScope();
++                        }
++                    });
++                }
++            };
++            $scope.selectAllEntities = function(list, that, varName, setValue) {
++                varName = varName || "master";
++                var val = that[varName];
++                if (setValue == undefined) {
++                    setValue = true;
++                }
++                if (setValue) {
++                    that[varName] = val = !val;
++                }
++                list.forEach(function(entitiy) {
++                    entitiy.checked = val;
++                });
++            };
++            $scope.createPermission = function(type, entity, path, permissions) {
++                if (path.charAt(0) != "/") {
++                    path = "/" + path;
++                }
++                var ops = "";
++                var s = "";
++                if (permissions.getPerm) {
++                    ops = "get";
++                    s = ",";
++                }
++                if (permissions.postPerm) {
++                    ops = ops + s + "post";
++                    s = ",";
++                }
++                if (permissions.putPerm) {
++                    ops = ops + s + "put";
++                    s = ",";
++                }
++                if (permissions.deletePerm) {
++                    ops = ops + s + "delete";
++                    s = ",";
++                }
++                var permission = ops + ":" + path;
++                return permission;
++            };
++            $scope.formatDate = function(date) {
++                return new Date(date).toUTCString();
++            };
++            $scope.clearCheckbox = function(id) {
++                if ($("#" + id).attr("checked")) {
++                    $("#" + id).click();
++                }
++            };
++            $scope.removeFirstSlash = function(path) {
++                return path.indexOf("/") === 0 ? path.substring(1, path.length) : path;
++            };
++            $scope.applyScope = function(cb) {
++                cb = typeof cb === "function" ? cb : function() {};
++                if (!this.$$phase) {
++                    return this.$apply(cb);
++                } else {
++                    cb();
++                }
++            };
++            $scope.valueSelected = function(list) {
++                return list && list.some(function(item) {
++                    return item.checked;
++                });
++            };
++            $scope.sendHelp = function(modalId) {
++                ug.jsonpRaw("apigeeuihelpemail", "", {
++                    useremail: $rootScope.userEmail
++                }).then(function() {
++                    $rootScope.$broadcast("alert", "success", "Email sent. Our team will be in touch with you shortly.");
++                }, function() {
++                    $rootScope.$broadcast("alert", "error", "Problem Sending Email. Try sending an email to mobile@apigee.com.");
++                });
++                $scope.hideModal(modalId);
++            };
++            $scope.$on("users-typeahead-received", function(event, users) {
++                $scope.usersTypeaheadValues = users;
++                if (!$scope.$$phase) {
++                    $scope.$apply();
++                }
++            });
++            $scope.$on("groups-typeahead-received", function(event, groups) {
++                $scope.groupsTypeaheadValues = groups;
++                if (!$scope.$$phase) {
++                    $scope.$apply();
++                }
++            });
++            $scope.$on("roles-typeahead-received", function(event, roles) {
++                $scope.rolesTypeaheadValues = roles;
++                if (!$scope.$$phase) {
++                    $scope.$apply();
++                }
++            });
++            $scope.$on("checkAuthentication-success", function() {
++                sessionStorage.setItem("authenticateAttempts", 0);
++                $scope.loaded = true;
++                $rootScope.activeUI = true;
++                $scope.applyScope();
++                if (!$scope.queryStringApplied) {
++                    $scope.queryStringApplied = true;
++                    setTimeout(function() {
++                        if ($scope.queryString.org) {
++                            $rootScope.$broadcast("change-org", $scope.queryString.org);
++                        }
++                    }, 1e3);
++                }
++                $rootScope.$broadcast("app-initialized");
++            });
++            $scope.$on("checkAuthentication-error", function(args, err, missingData, email) {
++                $scope.loaded = true;
++                if (err && !$scope.use_sso && notRegistration()) {
++                    ug.logout();
++                    $location.path("/login");
++                    $scope.applyScope();
++                } else {
++                    if (missingData && notRegistration()) {
++                        if (!email && $scope.use_sso) {
++                            window.location = $rootScope.urls().LOGIN_URL + "?callback=" + encodeURIComponent($location.absUrl().split("?")[0]);
++                            return;
++                        }
++                        ug.reAuthenticate(email);
++                    }
++                }
++            });
++            $scope.$on("reAuthenticate-success", function(args, err, data, user, organizations, applications) {
++                sessionStorage.setItem("authenticateAttempts", 0);
++                $rootScope.$broadcast("loginSuccesful", user, organizations, applications);
++                $rootScope.$emit("loginSuccesful", user, organizations, applications);
++                $rootScope.$broadcast("checkAuthentication-success");
++                $scope.applyScope(function() {
++                    $scope.deferredLogin.resolve();
++                    $location.path("/org-overview");
++                });
++            });
++            var authenticateAttempts = parseInt(sessionStorage.getItem("authenticateAttempts") || 0);
++            $scope.$on("reAuthenticate-error", function() {
++                if ($scope.use_sso) {
++                    if (authenticateAttempts++ > 5) {
++                        $rootScope.$broadcast("alert", "error", "There is an issue with authentication. Please contact support.");
++                        return;
++                    }
++                    console.error("Failed to login via sso " + authenticateAttempts);
++                    sessionStorage.setItem("authenticateAttempts", authenticateAttempts);
++                    window.location = $rootScope.urls().LOGIN_URL + "?callback=" + encodeURIComponent($location.absUrl().split("?")[0]);
++                } else {
++                    if (notRegistration()) {
++                        ug.logout();
++                        $location.path("/login");
++                        $scope.applyScope();
++                    }
++                }
++            });
++            $scope.$on("loginSuccessful", function() {
++                $rootScope.activeUI = true;
++            });
++            $scope.$on("app-changed", function(args, oldVal, newVal, preventReload) {
++                if (newVal !== oldVal && !preventReload) {
++                    $route.reload();
++                }
++            });
++            $scope.$on("org-changed", function(args, oldOrg, newOrg) {
++                ug.getApplications();
++                $route.reload();
++            });
++            $scope.$on("app-settings-received", function(evt, data) {});
++            $scope.$on("request-times-slow", function(evt, averageRequestTimes) {
++                $rootScope.$broadcast("alert", "info", "We are experiencing performance issues on our server.  Please click Get Help for support if this continues.");
++            });
++            var lastPage = "";
++            $scope.$on("$routeChangeSuccess", function() {
++                verifyUser();
++                $scope.showDemoBar = $location.path().slice(0, "/performance".length) === "/performance";
++                if (!$scope.showDemoBar) {
++                    $rootScope.demoData = false;
++                }
++                setTimeout(function() {
++                    lastPage = "";
++                }, 50);
++                var path = window.location.pathname.replace("index-debug.html", "");
++                lastPage === "" && $analytics.pageTrack((path + $location.path()).replace("//", "/"));
++                lastPage = $location.path();
++            });
++            $scope.$on("applications-received", function(event, applications) {
++                $scope.applications = applications;
++                $scope.hasApplications = Object.keys(applications).length > 0;
++            });
++            ug.getAppSettings();
++            $rootScope.startFirstTimeUser = function() {
++                $rootScope.hideModal("introjs");
++                

<TRUNCATED>

[5/9] git commit: Merge pull request #89 from amuramoto/master

Posted by sn...@apache.org.
Merge pull request #89 from amuramoto/master

Fixed img path

Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/3313695d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/3313695d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/3313695d

Branch: refs/heads/master
Commit: 3313695d4d139172e6997a43df6e0634ba82f8aa
Parents: d5b6c97 09611d5
Author: Shawn Feldman <sh...@gmail.com>
Authored: Mon Mar 31 14:37:14 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Mon Mar 31 14:37:14 2014 -0600

----------------------------------------------------------------------
 portal/css/dash.min.css       |     2 +-
 portal/css/main.css           |    10 +-
 portal/js/usergrid-dev.min.js | 19754 +++++++++++++++++++++++++++++++++++
 3 files changed, 19760 insertions(+), 6 deletions(-)
----------------------------------------------------------------------



[6/9] building files

Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/70780481/portal/js/usergrid-dev.min.js
----------------------------------------------------------------------
diff --git a/portal/js/usergrid-dev.min.js b/portal/js/usergrid-dev.min.js
index 0e96767..af849c2 100644
--- a/portal/js/usergrid-dev.min.js
+++ b/portal/js/usergrid-dev.min.js
@@ -4511,19760 +4511,6 @@
         $templateCache.put("users/users-tabs.html", "\n" + "\n" + "\n");
         $templateCache.put("users/users.html", '<div class="content-page">\n' + "\n" + '  <page-title title=" Users" icon="&#128100;"></page-title>\n' + '  <bsmodal id="newUser"\n' + '           title="Create New User"\n' + '           close="hideModal"\n' + '           closelabel="Cancel"\n' + '           buttonid="users"\n' + '           extrabutton="newUserDialog"\n' + '           extrabuttonlabel="Create"\n' + "           ng-cloak>\n" + "    <fieldset>\n" + '      <div class="control-group">\n' + '        <label for="new-user-username">Username</label>\n' + "\n" + '        <div class="controls">\n' + '          <input type="text" required ng-model="$parent.newUser.newusername" ng-pattern="usernameRegex" ng-attr-title="{{usernameRegexDescription}}"  name="username" id="new-user-username" class="input-xlarge" ug-validate/>\n' + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + '      <div class="control-group">\n' + '        <label for="new-us
 er-fullname">Full name</label>\n' + "\n" + '        <div class="controls">\n' + '          <input type="text" required  ng-attr-title="{{nameRegexDescription}}" ng-pattern="nameRegex" ng-model="$parent.newUser.name" name="name" id="new-user-fullname" class="input-xlarge" ug-validate/>\n' + "\n" + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + '      <div class="control-group">\n' + '        <label for="new-user-email">Email</label>\n' + "\n" + '        <div class="controls">\n' + '          <input type="email" required  ng-model="$parent.newUser.email" pattern="emailRegex"   ng-attr-title="{{emailRegexDescription}}"  name="email" id="new-user-email" class="input-xlarge" ug-validate/>\n' + "\n" + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + '      <div class="control-group">\n' + '        <label for="new-user-password">Password</label>\n' + "\n" + '        <div class="controls">\n' + '          <input
  type="password" required ng-pattern="passwordRegex"  ng-attr-title="{{passwordRegexDescription}}" ng-model="$parent.newUser.newpassword" name="password" id="new-user-password" ug-validate\n' + '                 class="input-xlarge"/>\n' + "\n" + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + '      <div class="control-group">\n' + '        <label for="new-user-re-password">Confirm password</label>\n' + "\n" + '        <div class="controls">\n' + '          <input type="password" required ng-pattern="passwordRegex"  ng-attr-title="{{passwordRegexDescription}}" ng-model="$parent.newUser.repassword" name="re-password" id="new-user-re-password" ug-validate\n' + '                 class="input-xlarge"/>\n' + "\n" + '          <p class="help-block hide"></p>\n' + "        </div>\n" + "      </div>\n" + "    </fieldset>\n" + "  </bsmodal>\n" + "\n" + '  <bsmodal id="deleteUser"\n' + '           title="Delete User"\n' + '           close="hideModal"\
 n' + '           closelabel="Cancel"\n' + '           extrabutton="deleteUsersDialog"\n' + '           extrabuttonlabel="Delete"\n' + '           buttonid="deleteusers"\n' + "           ng-cloak>\n" + "    <p>Are you sure you want to delete the user(s)?</p>\n" + "  </bsmodal>\n" + "\n" + '  <section class="row-fluid">\n' + '    <div class="span3 user-col">\n' + "\n" + '        <div class="button-toolbar span12">\n' + '          <a title="Select All" class="btn btn-primary toolbar select-all" ng-show="hasUsers" ng-click="selectAllEntities(usersCollection._list,this,\'usersSelected\',true)" ng-model="usersSelected"> <i class="pictogram">&#8863;</i></a>\n' + '          <button title="Delete" class="btn btn-primary toolbar" ng-disabled="!hasUsers || !valueSelected(usersCollection._list)" ng-click="showModal(\'deleteUser\')" id="delete-user-button"><i class="pictogram">&#9749;</i></button>\n' + '          <button title="Add" class="btn btn-primary toolbar" ng-click="showModal(\'newUser\'
 )" id="new-user-button" ng-attr-id="new-user-button"><i class="pictogram">&#59136;</i></button>\n' + "        </div>\n" + '        <ul class="user-list">\n' + '          <li ng-class="selectedUser._data.uuid === user._data.uuid ? \'selected\' : \'\'" ng-repeat="user in usersCollection._list" ng-click="selectUser(user._data.uuid)">\n' + "            <input\n" + '                type="checkbox"\n' + "                id=\"user-{{user.get('username')}}-checkbox\"\n" + "                ng-value=\"user.get('uuid')\"\n" + '                ng-checked="master"\n' + '                ng-model="user.checked"\n' + "                >\n" + "              <a href=\"javaScript:void(0)\"  id=\"user-{{user.get('username')}}-link\" >{{user.get('username')}}</a>\n" + '              <span ng-if="user.name" class="label">Display Name:</span>{{user.name}}\n' + "          </li>\n" + "        </ul>\n" + "\n" + '        <div style="padding: 10px 5px 10px 5px">\n' + '          <button class="btn btn-primary to
 olbar" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous\n' + "          </button>\n" + '          <button class="btn btn-primary toolbar" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next >\n' + "          </button>\n" + "        </div>\n" + "\n" + "    </div>\n" + "\n" + '    <div class="span9 tab-content" ng-show="hasUsers">\n' + '      <div class="menu-toolbar">\n' + '        <ul class="inline">\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/profile\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/profile\')"><i class="pictogram">&#59170;</i>Profile</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/groups\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/groups\')"><i class="pictogram">&#128101;</i>Groups</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route =
 == \'/users/activities\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/activities\')"><i class="pictogram">&#59194;</i>Activities</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/feed\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/feed\')"><i class="pictogram">&#128196;</i>Feed</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/graph\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/graph\')"><i class="pictogram">&#9729;</i>Graph</a></li>\n' + '          <li class="tab" ng-class="currentUsersPage.route === \'/users/roles\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectUserPage(\'/users/roles\')"><i class="pictogram">&#127758;</i>Roles &amp; Permissions</a></li>\n' + "        </ul>\n" + "      </div>\n" + '      <span ng-include="currentUsersPage.te
 mplate"></span>\n' + "    </div>\n" + "  </section>\n" + "</div>");
     } ]);
-    (function(exports, global) {
-        global["true"] = exports;
-        "use strict";
-        var polyfills = function(window, Object) {
-            window.requestAnimFrame = function() {
-                return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback, element) {
-                    window.setTimeout(callback, 1e3 / 60);
-                };
-            }();
-            Object.defineProperty(Object.prototype, "clone", {
-                enumerable: false,
-                writable: true,
-                value: function() {
-                    var i, newObj = this instanceof Array ? [] : {};
-                    for (i in this) {
-                        if (i === "clone") {
-                            continue;
-                        }
-                        if (this[i] && typeof this[i] === "object") {
-                            newObj[i] = this[i].clone();
-                        } else {
-                            newObj[i] = this[i];
-                        }
-                    }
-                    return newObj;
-                }
-            });
-            Object.defineProperty(Object.prototype, "stringifyJSON", {
-                enumerable: false,
-                writable: true,
-                value: function() {
-                    return JSON.stringify(this, null, "	");
-                }
-            });
-        };
-        polyfills(window, Object);
-        var global = global || this;
-        var AppServices = AppServices || {};
-        global.AppServices = global.AppServices || AppServices;
-        AppServices.Constants = angular.module("appservices.constants", []);
-        AppServices.Services = angular.module("appservices.services", []);
-        AppServices.Controllers = angular.module("appservices.controllers", []);
-        AppServices.Filters = angular.module("appservices.filters", []);
-        AppServices.Directives = angular.module("appservices.directives", []);
-        AppServices.Performance = angular.module("appservices.performance", []);
-        AppServices.MAX = angular.module("appservices.max", []);
-        angular.module("appservices", [ "ngRoute", "ngResource", "ngSanitize", "ui.bootstrap", "angulartics", "angulartics.google.analytics", "appservices.filters", "appservices.services", "appservices.directives", "appservices.constants", "appservices.controllers", "appservices.max", "angular-intro" ]).config([ "$routeProvider", "$locationProvider", "$sceDelegateProvider", "$analyticsProvider", function($routeProvider, $locationProvider, $sceDelegateProvider, $analyticsProvider) {
-            $routeProvider.when("/org-overview", {
-                templateUrl: "org-overview/org-overview.html",
-                controller: "OrgOverviewCtrl"
-            }).when("/login", {
-                templateUrl: "login/login.html",
-                controller: "LoginCtrl"
-            }).when("/login/loading", {
-                templateUrl: "login/loading.html",
-                controller: "LoginCtrl"
-            }).when("/app-overview/summary", {
-                templateUrl: "app-overview/app-overview.html",
-                controller: "AppOverviewCtrl"
-            }).when("/getting-started/setup", {
-                templateUrl: "app-overview/getting-started.html",
-                controller: "GettingStartedCtrl"
-            }).when("/forgot-password", {
-                templateUrl: "login/forgot-password.html",
-                controller: "ForgotPasswordCtrl"
-            }).when("/register", {
-                templateUrl: "login/register.html",
-                controller: "RegisterCtrl"
-            }).when("/users", {
-                templateUrl: "users/users.html",
-                controller: "UsersCtrl"
-            }).when("/users/profile", {
-                templateUrl: "users/users-profile.html",
-                controller: "UsersProfileCtrl"
-            }).when("/users/groups", {
-                templateUrl: "users/users-groups.html",
-                controller: "UsersGroupsCtrl"
-            }).when("/users/activities", {
-                templateUrl: "users/users-activities.html",
-                controller: "UsersActivitiesCtrl"
-            }).when("/users/feed", {
-                templateUrl: "users/users-feed.html",
-                controller: "UsersFeedCtrl"
-            }).when("/users/graph", {
-                templateUrl: "users/users-graph.html",
-                controller: "UsersGraphCtrl"
-            }).when("/users/roles", {
-                templateUrl: "users/users-roles.html",
-                controller: "UsersRolesCtrl"
-            }).when("/groups", {
-                templateUrl: "groups/groups.html",
-                controller: "GroupsCtrl"
-            }).when("/groups/details", {
-                templateUrl: "groups/groups-details.html",
-                controller: "GroupsDetailsCtrl"
-            }).when("/groups/members", {
-                templateUrl: "groups/groups-members.html",
-                controller: "GroupsMembersCtrl"
-            }).when("/groups/activities", {
-                templateUrl: "groups/groups-activities.html",
-                controller: "GroupsActivitiesCtrl"
-            }).when("/groups/roles", {
-                templateUrl: "groups/groups-roles.html",
-                controller: "GroupsRolesCtrl"
-            }).when("/roles", {
-                templateUrl: "roles/roles.html",
-                controller: "RolesCtrl"
-            }).when("/roles/settings", {
-                templateUrl: "roles/roles-settings.html",
-                controller: "RolesSettingsCtrl"
-            }).when("/roles/users", {
-                templateUrl: "roles/roles-users.html",
-                controller: "RolesUsersCtrl"
-            }).when("/roles/groups", {
-                templateUrl: "roles/roles-groups.html",
-                controller: "RolesGroupsCtrl"
-            }).when("/data", {
-                templateUrl: "data/data.html",
-                controller: "DataCtrl"
-            }).when("/data/entity", {
-                templateUrl: "data/entity.html",
-                controller: "EntityCtrl"
-            }).when("/data/shell", {
-                templateUrl: "data/shell.html",
-                controller: "ShellCtrl"
-            }).when("/profile/organizations", {
-                templateUrl: "profile/organizations.html",
-                controller: "OrgCtrl"
-            }).when("/profile/profile", {
-                templateUrl: "profile/profile.html",
-                controller: "ProfileCtrl"
-            }).when("/profile", {
-                templateUrl: "profile/account.html",
-                controller: "AccountCtrl"
-            }).when("/activities", {
-                templateUrl: "activities/activities.html",
-                controller: "ActivitiesCtrl"
-            }).when("/shell", {
-                templateUrl: "shell/shell.html",
-                controller: "ShellCtrl"
-            }).when("/logout", {
-                templateUrl: "login/logout.html",
-                controller: "LogoutCtrl"
-            }).otherwise({
-                redirectTo: "/org-overview"
-            });
-            $locationProvider.html5Mode(false).hashPrefix("!");
-            $sceDelegateProvider.resourceUrlWhitelist([ "self", "http://apigee-internal-prod.jupiter.apigee.net/**", "http://apigee-internal-prod.mars.apigee.net/**", "https://appservices.apigee.com/**", "https://api.usergrid.com/**" ]);
-            $analyticsProvider.virtualPageviews(false);
-            $analyticsProvider.firstPageview(false);
-        } ]);
-        AppServices.Controllers.controller("ActivitiesCtrl", [ "ug", "$scope", "$rootScope", "$location", "$route", function(ug, $scope, $rootScope, $location, $route) {
-            $scope.$on("app-activities-received", function(evt, data) {
-                $scope.activities = data;
-                $scope.$apply();
-            });
-            $scope.$on("app-activities-error", function(evt, data) {
-                $rootScope.$broadcast("alert", "error", "Application failed to retreive activities data.");
-            });
-            ug.getActivities();
-        } ]);
-        "use strict";
-        AppServices.Controllers.controller("AppOverviewCtrl", [ "ug", "charts", "$scope", "$rootScope", "$log", function(ug, charts, $scope, $rootScope, $log) {
-            var createGradient = function(color1, color2) {
-                var perShapeGradient = {
-                    x1: 0,
-                    y1: 0,
-                    x2: 0,
-                    y2: 1
-                };
-                return {
-                    linearGradient: perShapeGradient,
-                    stops: [ [ 0, color1 ], [ 1, color2 ] ]
-                };
-            };
-            $scope.appOverview = {};
-            $scope.collections = [];
-            $scope.graph = "";
-            $scope.$on("top-collections-received", function(event, collections) {
-                var dataDescription = {
-                    bar1: {
-                        labels: [ "Total" ],
-                        dataAttr: [ "title", "count" ],
-                        colors: [ createGradient("rgba(36,151,212,0.6)", "rgba(119,198,240,0.6)") ],
-                        borderColor: "#1b97d1"
-                    }
-                };
-                $scope.collections = collections;
-                var arr = [];
-                for (var i in collections) {
-                    if (collections.hasOwnProperty(i)) {
-                        arr.push(collections[i]);
-                    }
-                }
-                $scope.appOverview = {};
-                if (!$rootScope.chartTemplate) {
-                    ug.httpGet(null, "js/charts/highcharts.json").then(function(success) {
-                        $rootScope.chartTemplate = success;
-                        $scope.appOverview.chart = angular.copy($rootScope.chartTemplate.pareto);
-                        $scope.appOverview.chart = charts.convertParetoChart(arr, $scope.appOverview.chart, dataDescription.bar1, "1h", "NOW");
-                        $scope.applyScope();
-                    }, function(fail) {
-                        $log.error("Problem getting chart template", fail);
-                    });
-                } else {
-                    $scope.appOverview.chart = angular.copy($rootScope.chartTemplate.pareto);
-                    $scope.appOverview.chart = charts.convertParetoChart(arr, $scope.appOverview.chart, dataDescription.bar1, "1h", "NOW");
-                    $scope.applyScope();
-                }
-            });
-            $scope.$on("app-initialized", function() {
-                ug.getTopCollections();
-            });
-            if ($rootScope.activeUI) {
-                ug.getTopCollections();
-            }
-        } ]);
-        "use strict";
-        AppServices.Controllers.controller("GettingStartedCtrl", [ "ug", "$scope", "$rootScope", "$location", "$timeout", "$anchorScroll", function(ug, $scope, $rootScope, $location, $timeout, $anchorScroll) {
-            $scope.collections = [];
-            $scope.graph = "";
-            $scope.clientID = "";
-            $scope.clientSecret = "";
-            var getKeys = function() {
-                return ug.jsonpRaw("credentials", "", {});
-            };
-            $scope.regenerateCredentialsDialog = function(modalId) {
-                $scope.orgAPICredentials = {
-                    client_id: "regenerating...",
-                    client_secret: "regenerating..."
-                };
-                ug.regenerateAppCredentials();
-                $scope.hideModal(modalId);
-            };
-            $scope.$on("app-creds-updated", function(event, credentials) {
-                if (credentials) {
-                    $scope.clientID = credentials.client_id;
-                    $scope.clientSecret = credentials.client_secret;
-                    if (!$scope.$$phase) {
-                        $scope.$apply();
-                    }
-                } else {
-                    setTimeout(function() {
-                        ug.getAppCredentials();
-                    }, 5e3);
-                }
-            });
-            ug.getAppCredentials();
-            $scope.contentTitle;
-            $scope.showSDKDetail = function(name) {
-                var introContainer = document.getElementById("intro-container");
-                if (name === "nocontent") {
-                    introContainer.style.height = "0";
-                    return true;
-                }
-                introContainer.style.opacity = .1;
-                introContainer.style.height = "0";
-                var timeout = 0;
-                if ($scope.contentTitle) {
-                    timeout = 500;
-                }
-                $timeout(function() {
-                    introContainer.style.height = "1000px";
-                    introContainer.style.opacity = 1;
-                }, timeout);
-                $scope.optionName = name;
-                $scope.contentTitle = name;
-                $scope.sdkLink = "http://apigee.com/docs/content/" + name + "-sdk-redirect";
-                $scope.docsLink = "http://apigee.com/docs/app-services/content/installing-apigee-sdk-" + name;
-                $scope.getIncludeURL = function() {
-                    return "app-overview/doc-includes/" + $scope.optionName + ".html";
-                };
-            };
-            $scope.scrollToElement = function(elem) {
-                $location.hash(elem);
-                $anchorScroll();
-                return false;
-            };
-        } ]);
-        "use strict";
-        AppServices.Controllers.controller("ChartCtrl", [ "$scope", "$location", function($scope, $location) {} ]);
-        "use strict";
-        AppServices.Directives.directive("chart", function($rootScope) {
-            return {
-                restrict: "E",
-                scope: {
-                    chartdata: "=chartdata"
-                },
-                template: "<div></div>",
-                replace: true,
-                controller: function($scope, $element) {},
-                link: function(scope, element, attrs) {
-                    scope.$watch("chartdata", function(chartdata, oldchartdata) {
-                        if (chartdata) {
-                            var chartsDefaults = {
-                                chart: {
-                                    renderTo: element[0],
-                                    type: attrs.type || null,
-                                    height: attrs.height || null,
-                                    width: attrs.width || null,
-                                    reflow: true,
-                                    animation: false,
-                                    zoomType: "x"
-                                }
-                            };
-                            if (attrs.type === "pie") {
-                                chartsDefaults.chart.margin = [ 0, 0, 0, 0 ];
-                                chartsDefaults.chart.spacingLeft = 0;
-                                chartsDefaults.chart.spacingRight = 0;
-                                chartsDefaults.chart.spacingTop = 0;
-                                chartsDefaults.chart.spacingBottom = 0;
-                                if (attrs.titleimage) {
-                                    chartdata.title.text = '<img src="' + attrs.titleimage + '">';
-                                }
-                                if (attrs.titleicon) {
-                                    chartdata.title.text = '<i class="pictogram ' + attrs.titleiconclass + '">' + attrs.titleicon + "</i>";
-                                }
-                                if (attrs.titlecolor) {
-                                    chartdata.title.style.color = attrs.titlecolor;
-                                }
-                                if (attrs.titleimagetop) {
-                                    chartdata.title.style.marginTop = attrs.titleimagetop;
-                                }
-                                if (attrs.titleimageleft) {
-                                    chartdata.title.style.marginLeft = attrs.titleimageleft;
-                                }
-                            }
-                            if (attrs.type === "line") {
-                                chartsDefaults.chart.marginTop = 30;
-                                chartsDefaults.chart.spacingTop = 50;
-                            }
-                            if (attrs.type === "column") {
-                                chartsDefaults.chart.marginBottom = 80;
-                            }
-                            if (attrs.type === "area") {
-                                chartsDefaults.chart.spacingLeft = 0;
-                                chartsDefaults.chart.spacingRight = 0;
-                                chartsDefaults.chart.marginLeft = 0;
-                                chartsDefaults.chart.marginRight = 0;
-                            }
-                            Highcharts.setOptions({
-                                global: {
-                                    useUTC: false
-                                },
-                                chart: {
-                                    style: {
-                                        fontFamily: "marquette-light, Helvetica, Arial, sans-serif"
-                                    }
-                                }
-                            });
-                            if (attrs.type === "line") {
-                                var xAxis1 = chartdata.xAxis[0];
-                                if (!xAxis1.labels.formatter) {
-                                    xAxis1.labels.formatter = new Function(attrs.xaxislabel);
-                                }
-                                if (!xAxis1.labels.step) {
-                                    xAxis1.labels.step = attrs.xaxisstep;
-                                }
-                            }
-                            if (chartdata.tooltip) {
-                                if (typeof chartdata.tooltip.formatter === "string") {
-                                    chartdata.tooltip.formatter = new Function(chartdata.tooltip.formatter);
-                                }
-                            }
-                            renderChart(chartsDefaults, chartdata);
-                        }
-                    }, true);
-                }
-            };
-        });
-        function renderChart(chartsDefaults, chartdata, attrs) {
-            var newSettings = {};
-            $.extend(true, newSettings, chartsDefaults, chartdata);
-            var chart = new Highcharts.Chart(newSettings);
-        }
-        AppServices.Services.factory("charts", function() {
-            var lineChart, areaChart, paretoChart, pieChart, pieCompare, xaxis, seriesIndex;
-            return {
-                convertLineChart: function(chartData, chartTemplate, dataDescription, settings, currentCompare) {
-                    lineChart = chartTemplate;
-                    if (typeof chartData[0] === "undefined") {
-                        chartData[0] = {};
-                        chartData[0].datapoints = [];
-                    }
-                    var dataPoints = chartData[0].datapoints, dPLength = dataPoints.length, label;
-                    if (currentCompare === "YESTERDAY") {
-                        seriesIndex = dataDescription.dataAttr.length;
-                        label = "Yesterday ";
-                    } else if (currentCompare === "LAST_WEEK") {
-                        seriesIndex = dataDescription.dataAttr.length;
-                        label = "Last Week ";
-                    } else {
-                        lineChart = chartTemplate;
-                        seriesIndex = 0;
-                        lineChart.series = [];
-                        label = "";
-                    }
-                    xaxis = lineChart.xAxis[0];
-                    xaxis.categories = [];
-                    if (settings.xaxisformat) {
-                        xaxis.labels.formatter = new Function(settings.xaxisformat);
-                    }
-                    if (settings.step) {
-                        xaxis.labels.step = settings.step;
-                    }
-                    for (var i = 0; i < dPLength; i++) {
-                        var dp = dataPoints[i];
-                        xaxis.categories.push(dp.timestamp);
-                    }
-                    if (chartData.length > 1) {
-                        for (var l = 0; l < chartData.length; l++) {
-                            if (chartData[l].chartGroupName) {
-                                dataPoints = chartData[l].datapoints;
-                                lineChart.series[l] = {};
-                                lineChart.series[l].data = [];
-                                lineChart.series[l].name = chartData[l].chartGroupName;
-                                lineChart.series[l].yAxis = 0;
-                                lineChart.series[l].type = "line";
-                                lineChart.series[l].color = dataDescription.colors[i];
-                                lineChart.series[l].dashStyle = "solid";
-                                lineChart.series[l].yAxis.title.text = dataDescription.yAxisLabels;
-                                plotData(l, dPLength, dataPoints, dataDescription.detailDataAttr, true);
-                            }
-                        }
-                    } else {
-                        var steadyCounter = 0;
-                        for (var i = seriesIndex; i < dataDescription.dataAttr.length + (seriesIndex > 0 ? seriesIndex : 0); i++) {
-                            var yAxisIndex = dataDescription.multiAxis ? steadyCounter : 0;
-                            lineChart.series[i] = {};
-                            lineChart.series[i].data = [];
-                            lineChart.series[i].name = label + dataDescription.labels[steadyCounter];
-                            lineChart.series[i].yAxis = yAxisIndex;
-                            lineChart.series[i].type = "line";
-                            lineChart.series[i].color = dataDescription.colors[i];
-                            lineChart.series[i].dashStyle = "solid";
-                            lineChart.yAxis[yAxisIndex].title.text = dataDescription.yAxisLabels[dataDescription.yAxisLabels > 1 ? steadyCounter : 0];
-                            steadyCounter++;
-                        }
-                        plotData(seriesIndex, dPLength, dataPoints, dataDescription.dataAttr, false);
-                    }
-                    function plotData(counter, dPLength, dataPoints, dataAttrs, detailedView) {
-                        for (var i = 0; i < dPLength; i++) {
-                            var dp = dataPoints[i];
-                            var localCounter = counter;
-                            for (var j = 0; j < dataAttrs.length; j++) {
-                                if (typeof dp === "undefined") {
-                                    lineChart.series[localCounter].data.push([ i, 0 ]);
-                                } else {
-                                    lineChart.series[localCounter].data.push([ i, dp[dataAttrs[j]] ]);
-                                }
-                                if (!detailedView) {
-                                    localCounter++;
-                                }
-                            }
-                        }
-                    }
-                    return lineChart;
-                },
-                convertAreaChart: function(chartData, chartTemplate, dataDescription, settings, currentCompare) {
-                    areaChart = angular.copy(areaChart);
-                    if (typeof chartData[0] === "undefined") {
-                        chartData[0] = {};
-                        chartData[0].datapoints = [];
-                    }
-                    var dataPoints = chartData[0].datapoints, dPLength = dataPoints.length, label;
-                    if (currentCompare === "YESTERDAY") {
-                        seriesIndex = dataDescription.dataAttr.length;
-                        label = "Yesterday ";
-                    } else if (currentCompare === "LAST_WEEK") {
-                        seriesIndex = dataDescription.dataAttr.length;
-                        label = "Last Week ";
-                    } else {
-                        areaChart = chartTemplate;
-                        seriesIndex = 0;
-                        areaChart.series = [];
-                        label = "";
-                    }
-                    xaxis = areaChart.xAxis[0];
-                    xaxis.categories = [];
-                    if (settings.xaxisformat) {
-                        xaxis.labels.formatter = new Function(settings.xaxisformat);
-                    }
-                    if (settings.step) {
-                        xaxis.labels.step = settings.step;
-                    }
-                    for (var i = 0; i < dPLength; i++) {
-                        var dp = dataPoints[i];
-                        xaxis.categories.push(dp.timestamp);
-                    }
-                    if (chartData.length > 1) {
-                        for (var l = 0; l < chartData.length; l++) {
-                            if (chartData[l].chartGroupName) {
-                                dataPoints = chartData[l].datapoints;
-                                areaChart.series[l] = {};
-                                areaChart.series[l].data = [];
-                                areaChart.series[l].fillColor = dataDescription.areaColors[l];
-                                areaChart.series[l].name = chartData[l].chartGroupName;
-                                areaChart.series[l].yAxis = 0;
-                                areaChart.series[l].type = "area";
-                                areaChart.series[l].pointInterval = 1;
-                                areaChart.series[l].color = dataDescription.colors[l];
-                                areaChart.series[l].dashStyle = "solid";
-                                areaChart.series[l].yAxis.title.text = dataDescription.yAxisLabels;
-                                plotData(l, dPLength, dataPoints, dataDescription.detailDataAttr, true);
-                            }
-                        }
-                    } else {
-                        var steadyCounter = 0;
-                        for (var i = seriesIndex; i < dataDescription.dataAttr.length + (seriesIndex > 0 ? seriesIndex : 0); i++) {
-                            var yAxisIndex = dataDescription.multiAxis ? steadyCounter : 0;
-                            areaChart.series[i] = {};
-                            areaChart.series[i].data = [];
-                            areaChart.series[i].fillColor = dataDescription.areaColors[i];
-                            areaChart.series[i].name = label + dataDescription.labels[steadyCounter];
-                            areaChart.series[i].yAxis = yAxisIndex;
-                            areaChart.series[i].type = "area";
-                            areaChart.series[i].pointInterval = 1;
-                            areaChart.series[i].color = dataDescription.colors[i];
-                            areaChart.series[i].dashStyle = "solid";
-                            areaChart.yAxis[yAxisIndex].title.text = dataDescription.yAxisLabels[dataDescription.yAxisLabels > 1 ? steadyCounter : 0];
-                            steadyCounter++;
-                        }
-                        plotData(seriesIndex, dPLength, dataPoints, dataDescription.dataAttr, false);
-                    }
-                    function plotData(counter, dPLength, dataPoints, dataAttrs, detailedView) {
-                        for (var i = 0; i < dPLength; i++) {
-                            var dp = dataPoints[i];
-                            var localCounter = counter;
-                            for (var j = 0; j < dataAttrs.length; j++) {
-                                if (typeof dp === "undefined") {
-                                    areaChart.series[localCounter].data.push(0);
-                                } else {
-                                    areaChart.series[localCounter].data.push(dp[dataAttrs[j]]);
-                                }
-                                if (!detailedView) {
-                                    localCounter++;
-                                }
-                            }
-                        }
-                    }
-                    return areaChart;
-                },
-                convertParetoChart: function(chartData, chartTemplate, dataDescription, settings, currentCompare) {
-                    paretoChart = chartTemplate;
-                    if (typeof chartData === "undefined") {
-                        chartData = [];
-                    }
-                    var label, cdLength = chartData.length, compare = false, allParetoOptions = [], stackedBar = false;
-                    seriesIndex = 0;
-                    function getPreviousData() {
-                        for (var i = 0; i < chartTemplate.series[0].data.length; i++) {
-                            allParetoOptions.push(chartTemplate.xAxis.categories[i]);
-                        }
-                    }
-                    if (typeof dataDescription.dataAttr[1] === "object") {
-                        stackedBar = true;
-                    }
-                    if (currentCompare === "YESTERDAY") {
-                        label = "Yesterday ";
-                        compare = true;
-                        if (stackedBar) {
-                            seriesIndex = dataDescription.dataAttr[1].length;
-                        }
-                        getPreviousData();
-                    } else if (currentCompare === "LAST_WEEK") {
-                        label = "Last Week ";
-                        compare = true;
-                        if (stackedBar) {
-                            seriesIndex = dataDescription.dataAttr[1].length;
-                        }
-                        seriesIndex = getPreviousData();
-                    } else {
-                        compare = false;
-                        label = "";
-                        paretoChart.xAxis.categories = [];
-                        paretoChart.series = [];
-                        paretoChart.series[0] = {};
-                        paretoChart.series[0].data = [];
-                        paretoChart.legend.enabled = false;
-                    }
-                    paretoChart.plotOptions.series.borderColor = dataDescription.borderColor;
-                    if (compare && !stackedBar) {
-                        paretoChart.series[1] = {};
-                        paretoChart.series[1].data = [];
-                        for (var i = 0; i < allParetoOptions.length; i++) {
-                            paretoChart.series[1].data.push(0);
-                        }
-                        paretoChart.legend.enabled = true;
-                    }
-                    for (var i = 0; i < cdLength; i++) {
-                        var bar = chartData[i];
-                        if (!compare) {
-                            paretoChart.xAxis.categories.push(bar[dataDescription.dataAttr[0]]);
-                            if (typeof dataDescription.dataAttr[1] === "object") {
-                                createStackedBar(dataDescription, paretoChart, paretoChart.series.length);
-                            } else {
-                                paretoChart.series[0].data.push(bar[dataDescription.dataAttr[1]]);
-                                paretoChart.series[0].name = dataDescription.labels[0];
-                                paretoChart.series[0].color = dataDescription.colors[0];
-                            }
-                        } else {
-                            var newLabel = bar[dataDescription.dataAttr[0]], newValue = bar[dataDescription.dataAttr[1]], previousIndex = allParetoOptions.indexOf(newLabel);
-                            if (previousIndex > -1) {
-                                if (typeof dataDescription.dataAttr[1] === "object") {
-                                    createStackedBar(dataDescription, paretoChart, paretoChart.series.length);
-                                } else {
-                                    paretoChart.series[1].data[previousIndex] = newValue;
-                                    paretoChart.series[1].name = label !== "" ? label + " " + dataDescription.labels[0] : dataDescription.labels[0];
-                                    paretoChart.series[1].color = dataDescription.colors[1];
-                                }
-                            } else {}
-                        }
-                    }
-                    function createStackedBar(dataDescription, paretoChart, startingPoint) {
-                        paretoChart.plotOptions = {
-                            series: {
-                                shadow: false,
-                                borderColor: dataDescription.borderColor,
-                                borderWidth: 1
-                            },
-                            column: {
-                                stacking: "normal",
-                                dataLabels: {
-                                    enabled: true,
-                                    color: Highcharts.theme && Highcharts.theme.dataLabelsColor || "white"
-                                }
-                            }
-                        };
-                        var start = dataDescription.dataAttr[1].length, steadyCounter = 0, stackName = label;
-                        if (compare) {
-                            paretoChart.legend.enabled = true;
-                        }
-                        for (var f = seriesIndex; f < start + seriesIndex; f++) {
-                            if (!paretoChart.series[f]) {
-                                paretoChart.series[f] = {
-                                    data: []
-                                };
-                            }
-                            paretoChart.series[f].data.push(bar[dataDescription.dataAttr[1][steadyCounter]]);
-                            paretoChart.series[f].name = label !== "" ? label + " " + dataDescription.labels[steadyCounter] : dataDescription.labels[steadyCounter];
-                            paretoChart.series[f].color = dataDescription.colors[f];
-                            paretoChart.series[f].stack = label;
-                            steadyCounter++;
-                        }
-                    }
-                    return paretoChart;
-                },
-                convertPieChart: function(chartData, chartTemplate, dataDescription, settings, currentCompare) {
-                    var label, cdLength = chartData.length, compare = false;
-                    pieChart = chartTemplate;
-                    if (currentCompare === "YESTERDAY") {
-                        label = "Yesterday ";
-                        compare = false;
-                    } else if (currentCompare === "LAST_WEEK") {
-                        label = "Last Week ";
-                        compare = false;
-                    } else {
-                        compare = false;
-                        pieChart.series[0].data = [];
-                        if (pieChart.series[0].dataLabels) {
-                            if (typeof pieChart.series[0].dataLabels.formatter === "string") {
-                                pieChart.series[0].dataLabels.formatter = new Function(pieChart.series[0].dataLabels.formatter);
-                            }
-                        }
-                    }
-                    pieChart.plotOptions.pie.borderColor = dataDescription.borderColor;
-                    if (compare) {
-                        pieChart.series[1].data = [];
-                        if (pieChart.series[1].dataLabels) {
-                            if (typeof pieChart.series[1].dataLabels.formatter === "string") {
-                                pieChart.series[1].dataLabels.formatter = new Function(pieChart.series[1].dataLabels.formatter);
-                            }
-                        }
-                    }
-                    var tempArray = [];
-                    for (var i = 0; i < cdLength; i++) {
-                        var pie = chartData[i];
-                        tempArray.push({
-                            name: pie[dataDescription.dataAttr[0]],
-                            y: pie[dataDescription.dataAttr[1]],
-                            color: ""
-                        });
-                    }
-                    sortJsonArrayByProperty(tempArray, "name");
-                    for (var i = 0; i < tempArray.length; i++) {
-                        tempArray[i].color = dataDescription.colors[i];
-                    }
-                    if (!compare) {
-                        pieChart.series[0].data = tempArray;
-                    } else {
-                        pieChart.series[1].data = tempArray;
-                    }
-                    return pieChart;
-                }
-            };
-            function sortJsonArrayByProperty(objArray, prop, direction) {
-                if (arguments.length < 2) throw new Error("sortJsonArrayByProp requires 2 arguments");
-                var direct = arguments.length > 2 ? arguments[2] : 1;
-                if (objArray && objArray.constructor === Array) {
-                    var propPath = prop.constructor === Array ? prop : prop.split(".");
-                    objArray.sort(function(a, b) {
-                        for (var p in propPath) {
-                            if (a[propPath[p]] && b[propPath[p]]) {
-                                a = a[propPath[p]];
-                                b = b[propPath[p]];
-                            }
-                        }
-                        a = a.match(/^\d+$/) ? +a : a;
-                        b = b.match(/^\d+$/) ? +b : b;
-                        return a < b ? -1 * direct : a > b ? 1 * direct : 0;
-                    });
-                }
-            }
-        });
-        $(".sessions-bar").sparkline([ 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 4, 3, 5, 6, 3, 4, 5, 6, 7, 8, 1 ], {
-            type: "bar",
-            barColor: "#c5c5c5",
-            width: "800px",
-            height: 100,
-            barWidth: 12,
-            barSpacing: "1px"
-        });
-        "use strict";
-        AppServices.Controllers.controller("DataCtrl", [ "ug", "$scope", "$rootScope", "$location", function(ug, $scope, $rootScope, $location) {
-            var init = function() {
-                $scope.verb = "GET";
-                $scope.display = "";
-                $scope.queryBodyDetail = {};
-                $scope.queryBodyDisplay = "none";
-                $scope.queryLimitDisplay = "block";
-                $scope.queryStringDisplay = "block";
-                $scope.entitySelected = {};
-                $scope.newCollection = {};
-                $rootScope.queryCollection = {};
-                $scope.data = {};
-                $scope.data.queryPath = "";
-                $scope.data.queryBody = '{ "name":"value" }';
-                $scope.data.searchString = "";
-                $scope.data.queryLimit = "";
-            };
-            var runQuery = function(verb) {
-                $scope.loading = true;
-                var queryPath = $scope.removeFirstSlash($scope.data.queryPath || "");
-                var searchString = $scope.data.searchString || "";
-                var queryLimit = $scope.data.queryLimit || "";
-                var body = JSON.parse($scope.data.queryBody || "{}");
-                if (verb == "POST" && $scope.validateJson(true)) {
-                    ug.runDataPOSTQuery(queryPath, body);
-                } else if (verb == "PUT" && $scope.validateJson(true)) {
-                    ug.runDataPutQuery(queryPath, searchString, queryLimit, body);
-                } else if (verb == "DELETE") {
-                    ug.runDataDeleteQuery(queryPath, searchString, queryLimit);
-                } else {
-                    ug.runDataQuery(queryPath, searchString, queryLimit);
-                }
-            };
-            $scope.$on("top-collections-received", function(event, collectionList) {
-                $scope.loading = false;
-                var ignoredCollections = [ "events" ];
-                ignoredCollections.forEach(function(ignoredCollection) {
-                    collectionList.hasOwnProperty(ignoredCollection) && delete collectionList[ignoredCollection];
-                });
-                $scope.collectionList = collectionList;
-                $scope.queryBoxesSelected = false;
-                if (!$scope.queryPath) {
-                    $scope.loadCollection("/" + collectionList[Object.keys(collectionList).sort()[0]].name);
-                }
-                $scope.applyScope();
-            });
-            $scope.$on("error-running-query", function(event) {
-                $scope.loading = false;
-                runQuery("GET");
-                $scope.applyScope();
-            });
-            $scope.$on("entity-deleted", function(event) {
-                $scope.deleteLoading = false;
-                $rootScope.$broadcast("alert", "success", "Entities deleted sucessfully");
-                $scope.queryBoxesSelected = false;
-                $scope.checkNextPrev();
-                $scope.applyScope();
-            });
-            $scope.$on("entity-deleted-error", function(event) {
-                $scope.deleteLoading = false;
-                runQuery("GET");
-                $scope.applyScope();
-            });
-            $scope.$on("collection-created", function() {
-                $scope.newCollection.name = "";
-            });
-            $scope.$on("query-received", function(event, collection) {
-                $scope.loading = false;
-                $rootScope.queryCollection = collection;
-                ug.getIndexes($scope.data.queryPath);
-                $scope.setDisplayType();
-                $scope.checkNextPrev();
-                $scope.applyScope();
-                $scope.queryBoxesSelected = false;
-            });
-            $scope.$on("indexes-received", function(event, indexes) {
-                var fred = indexes;
-            });
-            $scope.$on("app-changed", function() {
-                init();
-            });
-            $scope.setDisplayType = function() {
-                $scope.display = "generic";
-            };
-            $scope.deleteEntitiesDialog = function(modalId) {
-                $scope.deleteLoading = false;
-                $scope.deleteEntities($rootScope.queryCollection, "entity-deleted", "error deleting entity");
-                $scope.hideModal(modalId);
-            };
-            $scope.newCollectionDialog = function(modalId) {
-                if ($scope.newCollection.name) {
-                    ug.createCollection($scope.newCollection.name);
-                    ug.getTopCollections();
-                    $rootScope.$broadcast("alert", "success", "Collection created successfully.");
-                    $scope.hideModal(modalId);
-                } else {
-                    $rootScope.$broadcast("alert", "error", "You must specify a collection name.");
-                }
-            };
-            $scope.addToPath = function(uuid) {
-                $scope.data.queryPath = "/" + $rootScope.queryCollection._type + "/" + uuid;
-            };
-            $scope.isDeep = function(item) {
-                return Object.prototype.toString.call(item) === "[object Object]";
-            };
-            $scope.loadCollection = function(type) {
-                $scope.data.queryPath = "/" + type.substring(1, type.length);
-                $scope.data.searchString = "";
-                $scope.data.queryLimit = "";
-                $scope.data.body = '{ "name":"value" }';
-                $scope.selectGET();
-                $scope.applyScope();
-                $scope.run();
-            };
-            $scope.selectGET = function() {
-                $scope.queryBodyDisplay = "none";
-                $scope.queryLimitDisplay = "block";
-                $scope.queryStringDisplay = "block";
-                $scope.verb = "GET";
-            };
-            $scope.selectPOST = function() {
-                $scope.queryBodyDisplay = "block";
-                $scope.queryLimitDisplay = "none";
-                $scope.queryStringDisplay = "none";
-                $scope.verb = "POST";
-            };
-            $scope.selectPUT = function() {
-                $scope.queryBodyDisplay = "block";
-                $scope.queryLimitDisplay = "block";
-                $scope.queryStringDisplay = "block";
-                $scope.verb = "PUT";
-            };
-            $scope.selectDELETE = function() {
-                $scope.queryBodyDisplay = "none";
-                $scope.queryLimitDisplay = "block";
-                $scope.queryStringDisplay = "block";
-                $scope.verb = "DELETE";
-            };
-            $scope.validateJson = function(skipMessage) {
-                var queryBody = $scope.data.queryBody;
-                try {
-                    queryBody = JSON.parse(queryBody);
-                } catch (e) {
-                    $rootScope.$broadcast("alert", "error", "JSON is not valid");
-                    return false;
-                }
-                queryBody = JSON.stringify(queryBody, null, 2);
-                !skipMessage && $rootScope.$broadcast("alert", "success", "JSON is valid");
-                $scope.data.queryBody = queryBody;
-                return true;
-            };
-            $scope.saveEntity = function(entity) {
-                if (!$scope.validateJson()) {
-                    return false;
-                }
-                var queryBody = entity._json;
-                queryBody = JSON.parse(queryBody);
-                $rootScope.selectedEntity.set();
-                $rootScope.selectedEntity.set(queryBody);
-                $rootScope.selectedEntity.set("type", entity._data.type);
-                $rootScope.selectedEntity.set("uuid", entity._data.uuid);
-                $rootScope.selectedEntity.save(function(err, data) {
-                    if (err) {
-                        $rootScope.$broadcast("alert", "error", "error: " + data.error_description);
-                    } else {
-                        $rootScope.$broadcast("alert", "success", "entity saved");
-                    }
-                });
-            };
-            $scope.run = function() {
-                $rootScope.queryCollection = "";
-                var verb = $scope.verb;
-                runQuery(verb);
-            };
-            $scope.hasProperty = function(prop) {
-                var retval = false;
-                if (typeof $rootScope.queryCollection._list !== "undefined") {
-                    angular.forEach($rootScope.queryCollection._list, function(value, key) {
-                        if (!retval) {
-                            if (value._data[prop]) {
-                                retval = true;
-                            }
-                        }
-                    });
-                }
-                return retval;
-            };
-            $scope.resetNextPrev = function() {
-                $scope.previous_display = "none";
-                $scope.next_display = "none";
-            };
-            $scope.checkNextPrev = function() {
-                $scope.resetNextPrev();
-                if ($rootScope.queryCollection.hasPreviousPage()) {
-                    $scope.previous_display = "default";
-                }
-                if ($rootScope.queryCollection.hasNextPage()) {
-                    $scope.next_display = "default";
-                }
-            };
-            $scope.selectEntity = function(uuid) {
-                $rootScope.selectedEntity = $rootScope.queryCollection.getEntityByUUID(uuid);
-                $scope.addToPath(uuid);
-            };
-            $scope.getJSONView = function(entity) {
-                var tempjson = entity.get();
-                var queryBody = JSON.stringify(tempjson, null, 2);
-                queryBody = JSON.parse(queryBody);
-                delete queryBody.metadata;
-                delete queryBody.uuid;
-                delete queryBody.created;
-                delete queryBody.modified;
-                delete queryBody.type;
-                $scope.queryBody = JSON.stringify(queryBody, null, 2);
-            };
-            $scope.getPrevious = function() {
-                $rootScope.queryCollection.getPreviousPage(function(err) {
-                    if (err) {
-                        $rootScope.$broadcast("alert", "error", "error getting previous page of data");
-                    }
-                    $scope.checkNextPrev();
-                    $scope.applyScope();
-                });
-            };
-            $scope.getNext = function() {
-                $rootScope.queryCollection.getNextPage(function(err) {
-                    if (err) {
-                        $rootScope.$broadcast("alert", "error", "error getting next page of data");
-                    }
-                    $scope.checkNextPrev();
-                    $scope.applyScope();
-                });
-            };
-            init();
-            $rootScope.queryCollection = $rootScope.queryCollection || {};
-            $rootScope.selectedEntity = {};
-            if ($rootScope.queryCollection && $rootScope.queryCollection._type) {
-                $scope.loadCollection($rootScope.queryCollection._type);
-                $scope.setDisplayType();
-            }
-            ug.getTopCollections();
-            $scope.resetNextPrev();
-        } ]);
-        "use strict";
-        AppServices.Controllers.controller("EntityCtrl", [ "ug", "$scope", "$rootScope", "$location", function(ug, $scope, $rootScope, $location) {
-            if (!$rootScope.selectedEntity) {
-                $location.path("/data");
-                return;
-            }
-            $scope.entityUUID = $rootScope.selectedEntity.get("uuid");
-            $scope.entityType = $rootScope.selectedEntity.get("type");
-            var tempjson = $rootScope.selectedEntity.get();
-            var queryBody = JSON.stringify(tempjson, null, 2);
-            queryBody = JSON.parse(queryBody);
-            delete queryBody.metadata;
-            delete queryBody.uuid;
-            delete queryBody.created;
-            delete queryBody.modified;
-            delete queryBody.type;
-            $scope.queryBody = JSON.stringify(queryBody, null, 2);
-            $scope.validateJson = function() {
-                var queryBody = $scope.queryBody;
-                try {
-                    queryBody = JSON.parse(queryBody);
-                } catch (e) {
-                    $rootScope.$broadcast("alert", "error", "JSON is not valid");
-                    return false;
-                }
-                queryBody = JSON.stringify(queryBody, null, 2);
-                $rootScope.$broadcast("alert", "success", "JSON is valid");
-                $scope.queryBody = queryBody;
-                return true;
-            };
-            $scope.saveEntity = function() {
-                if (!$scope.validateJson()) {
-                    return false;
-                }
-                var queryBody = $scope.queryBody;
-                queryBody = JSON.parse(queryBody);
-                $rootScope.selectedEntity.set();
-                $rootScope.selectedEntity.set(queryBody);
-                $rootScope.selectedEntity.set("type", $scope.entityType);
-                $rootScope.selectedEntity.set("uuid", $scope.entityUUID);
-                $rootScope.selectedEntity.save(function(err, data) {
-                    if (err) {
-                        $rootScope.$broadcast("alert", "error", "error: " + data.error_description);
-                    } else {
-                        $rootScope.$broadcast("alert", "success", "entity saved");
-                    }
-                });
-            };
-        } ]);
-        "use strict";
-        AppServices.Directives.directive("balloon", [ "$window", "$timeout", function($window, $timeout) {
-            return {
-                restrict: "ECA",
-                scope: "=",
-                template: "" + '<div class="baloon {{direction}}" ng-transclude>' + "</div>",
-                replace: true,
-                transclude: true,
-                link: function linkFn(scope, lElement, attrs) {
-                    scope.direction = attrs.direction;
-                    var runScroll = true;
-                    var windowEl = angular.element($window);
-                    windowEl.on("scroll", function() {
-                        if (runScroll) {
-                            lElement.addClass("fade-out");
-                            $timeout(function() {
-                                lElement.addClass("hide");
-                            }, 1e3);
-                            runScroll = false;
-                        }
-                    });
-                }
-            };
-        } ]);
-        "use strict";
-        AppServices.Directives.directive("bsmodal", [ "$rootScope", function($rootScope) {
-            return {
-                restrict: "ECA",
-                scope: {
-                    title: "@title",
-                    buttonid: "=buttonid",
-                    footertext: "=footertext",
-                    closelabel: "=closelabel"
-                },
-                transclude: true,
-                templateUrl: "dialogs/modal.html",
-                replace: true,
-                link: function linkFn(scope, lElement, attrs, parentCtrl) {
-                    scope.title = attrs.title;
-                    scope.footertext = attrs.footertext;
-                    scope.closelabel = attrs.closelabel;
-                    scope.close = attrs.close;
-                    scope.extrabutton = attrs.extrabutton;
-                    scope.extrabuttonlabel = attrs.extrabuttonlabel;
-                    scope.buttonId = attrs.buttonid;
-                    scope.closeDelegate = function(attr) {
-                        scope.$parent[attr](attrs.id, scope);
-                    };
-                    scope.extraDelegate = function(attr) {
-                        if (scope.dialogForm.$valid) {
-                            console.log(parentCtrl);
-                            scope.$parent[attr](attrs.id);
-                        } else {
-                            $rootScope.$broadcast("alert", "error", "Please check your form input and resubmit.");
-                        }
-                    };
-                }
-            };
-        } ]);
-        "use strict";
-        AppServices.Controllers.controller("AlertCtrl", [ "$scope", "$rootScope", "$timeout", function($scope, $rootScope, $timeout) {
-            $scope.alertDisplay = "none";
-            $scope.alerts = [];
-            $scope.$on("alert", function(event, type, message, permanent) {
-                $scope.addAlert(type, message, permanent);
-            });
-            $scope.$on("clear-alerts", function(event, message) {
-                $scope.alerts = [];
-            });
-            $scope.addAlert = function(type, message, permanent) {
-                $scope.alertDisplay = "block";
-                $scope.alerts.push({
-                    type: type,
-                    msg: message
-                });
-                $scope.applyScope();
-                if (!permanent) {
-                    $timeout(function() {
-                        $scope.alerts.shift();
-                    }, 5e3);
-                }
-            };
-            $scope.closeAlert = function(index) {
-                $scope.alerts.splice(index, 1);
-            };
-        } ]);
-        "use strict";
-        AppServices.Directives.directive("alerti", [ "$rootScope", "$timeout", function($rootScope, $timeout) {
-            return {
-                restrict: "ECA",
-                scope: {
-                    type: "=type",
-                    closeable: "@closeable",
-                    index: "&index"
-                },
-                template: '<div class="alert" ng-class="type && \'alert-\' + type">' + '    <button ng-show="closeable" type="button" class="close" ng-click="closeAlert(index)">&times;</button>' + '    <i ng-if="type === \'warning\'" class="pictogram pull-left" style="font-size:3em;line-height:0.4">&#128165;</i>' + '    <i ng-if="type === \'info\'" class="pictogram pull-left">&#8505;</i>' + '    <i ng-if="type === \'error\'" class="pictogram pull-left">&#9889;</i>' + '    <i ng-if="type === \'success\'" class="pictogram pull-left">&#128077;</i>' + "<div ng-transclude></div>" + "</div>",
-                replace: true,
-                transclude: true,
-                link: function linkFn(scope, lElement, attrs) {
-                    $timeout(function() {
-                        lElement.addClass("fade-out");
-                    }, 4e3);
-                    lElement.click(function() {
-                        if (attrs.index) {
-                            scope.$parent.closeAlert(attrs.index);
-                        }
-                    });
-                    setTimeout(function() {
-                        lElement.addClass("alert-animate");
-                    }, 10);
-                }
-            };
-        } ]);
-        "use strict";
-        AppServices.Directives.directive("appswitcher", [ "$rootScope", function($rootScope) {
-            return {
-                restrict: "ECA",
-                scope: "=",
-                templateUrl: "global/appswitcher-template.html",
-                replace: true,
-                transclude: true,
-                link: function linkFn(scope, lElement, attrs) {
-                    var classNameOpen = "open";
-                    $("ul.nav li.dropdownContainingSubmenu").hover(function() {
-                        $(this).addClass(classNameOpen);
-                    }, function() {
-                        $(this).removeClass(classNameOpen);
-                    });
-                    $("#globalNav > a").mouseover(globalNavDetail);
-                    $("#globalNavDetail").mouseover(globalNavDetail);
-                    $("#globalNavSubmenuContainer ul li").mouseover(function() {
-                        $("#globalNavDetail > div").removeClass(classNameOpen);
-                        $("#" + this.getAttribute("data-globalNavDetail")).addClass(classNameOpen);
-                    });
-                    function globalNavDetail() {
-                        $("#globalNavDetail > div").removeClass(classNameOpen);
-                        $("#globalNavDetailApiPlatform").addClass(classNameOpen);
-                    }
-                }
-            };
-        } ]);
-        "use strict";
-        AppServices.Services.factory("help", function($rootScope, $http, $analytics) {
-            $rootScope.help = {};
-            $rootScope.help.helpButtonStatus = "Enable Help";
-            $rootScope.help.helpTooltipsEnabled = false;
-            $rootScope.help.clicked = false;
-            $rootScope.help.showHelpButtons = false;
-            var tooltipStartTime;
-            var helpStartTime;
-            var introjs_step;
-            $rootScope.help.sendTooltipGA = function(tooltipName) {
-                $analytics.eventTrack("tooltip - " + $rootScope.currentPath, {
-                    category: "App Services",
-                    label: tooltipName
-                });
-            };
-            $rootScope.help.toggleTooltips = function() {
-                if ($rootScope.help.helpTooltipsEnabled == false) {
-                    $rootScope.help.helpButtonStatus = "Disable Help";
-                    $rootScope.help.helpTooltipsEnabled = true;
-                    showHelpModal("tooltips");
-                } else {
-                    $rootScope.help.helpButtonStatus = "Enable Help";
-                    $rootScope.help.helpTooltipsEnabled = false;
-                }
-            };
-            $rootScope.help.IntroOptions = {
-                steps: [],
-                showStepNumbers: false,
-                exitOnOverlayClick: true,
-                exitOnEsc: true,
-                nextLabel: "Next",
-                prevLabel: "Back",
-                skipLabel: "Exit",
-                doneLabel: "Done"
-            };
-            $rootScope.$on("$routeChangeSuccess", function(event, current) {
-                var path = current.$$route ? current.$$route.originalPath : null;
-                if (path == "/org-overview") {
-                    $rootScope.help.showHelpButtons = true;
-                    getHelpJson(path).success(function(json) {
-                        var helpJson = json;
-                        setHelpStrings(helpJson);
-                        showHelpModal("tour");
-                    });
-                } else {
-                    $rootScope.help.showHelpButtons = false;
-                }
-            });
-            var showHelpModal = function(helpType) {
-                var shouldHelp = location.search.indexOf("noHelp") <= 0;
-                if (helpType == "tour" && !getHelpStatus(helpType)) {
-                    shouldHelp && $rootScope.showModal("introjs");
-                } else if (helpType == "tooltips" && !getHelpStatus(helpType)) {
-                    shouldHelp && $rootScope.showModal("tooltips");
-                }
-            };
-            var setHelpStrings = function(helpJson) {
-                $rootScope.help.IntroOptions.steps = helpJson.introjs;
-                angular.forEach(helpJson.tooltip, function(value, binding) {
-                    $rootScope[binding] = value;
-                });
-            };
-            $rootScope.help.introjs_StartEvent = function() {
-                helpStartTime = Date.now();
-                introjs_step = 1;
-            };
-            $rootScope.help.introjs_ExitEvent = function() {
-                var introjs_time = Math.round((Date.now() - helpStartTime) / 1e3);
-                $analytics.eventTrack("introjs timing - " + $rootScope.currentPath, {
-                    category: "App Services",
-                    label: introjs_time + "s"
-                });
-                $analytics.eventTrack("introjs exit - " + $rootScope.currentPath, {
-                    category: "App Services",
-                    label: "step" + introjs_step
-                });
-            };
-            $rootScope.help.introjs_ChangeEvent = function() {
-                introjs_step++;
-            };
-            var getHelpJson = function(path) {
-                return $http.jsonp("http://sdk.apigee.com.s3.amazonaws.com/portal_help" + path + "/helpJson.json?callback=JSON_CALLBACK");
-            };
-            var getHelpStatus = function(helpType) {
-                var status;
-                if (helpType == "tour") {
-                    status = localStorage.getItem("ftu_tour");
-                    localStorage.setItem("ftu_tour", "false");
-                } else if (helpType == "tooltips") {
-                    status = localStorage.getItem("ftu_tooltips");
-                    localStorage.setItem("ftu_tooltips", "false");
-                }
-                return status;
-            };
-        });
-        AppServices.Directives.directive("insecureBanner", [ "$rootScope", "ug", function($rootScope, ug) {
-            return {
-                restrict: "E",
-                transclude: true,
-                templateUrl: "global/insecure-banner.html",
-                link: function linkFn(scope, lElement, attrs) {
-                    scope.securityWarning = false;
-                    scope.$on("roles-received", function(evt, roles) {
-                        scope.securityWarning = false;
-                        if (!roles || !roles._list) return;
-                        roles._list.forEach(function(roleHolder) {
-                            var role = roleHolder._data;
-                            if (role.name.toUpperCase() === "GUEST") {
-                                roleHolder.getPermissions(function(err, data) {
-                                    if (!err) {
-                                        if (roleHolder.permissions) {
-                                            roleHolder.permissions.forEach(function(permission) {
-                                                if (permission.path.indexOf("/**") >= 0) {
-                                                    scope.securityWarning = true;
-                                                    scope.applyScope();
-                                                }
-                                            });
-                                        }
-                                    }
-                                });
-                            }
-                        });
-                    });
-                    var initialized = false;
-                    scope.$on("app-initialized", function() {
-                        !initialized && ug.getRoles();
-                        initialized = true;
-                    });
-                    scope.$on("app-changed", function() {
-                        scope.securityWarning = false;
-                        ug.getRoles();
-                    });
-                }
-            };
-        } ]);
-        "use strict";
-        AppServices.Constants.constant("configuration", {
-            ITEMS_URL: "global/temp.json"
-        });
-        "use strict";
-        AppServices.Controllers.controller("PageCtrl", [ "ug", "help", "utility", "$scope", "$rootScope", "$location", "$routeParams", "$q", "$route", "$log", "$analytics", function(ug, help, utility, $scope, $rootScope, $location, $routeParams, $q, $route, $log, $analytics) {
-            var initScopeVariables = function() {
-                $scope.loadingText = "Loading...";
-                $scope.use_sso = false;
-                $scope.newApp = {
-                    name: ""
-                };
-                $scope.getPerm = "";
-                $scope.postPerm = "";
-                $scope.putPerm = "";
-                $scope.deletePerm = "";
-                $scope.usersTypeaheadValues = [];
-                $scope.groupsTypeaheadValues = [];
-                $scope.rolesTypeaheadValues = [];
-                $rootScope.sdkActive = false;
-                $rootScope.demoData = false;
-                $scope.queryStringApplied = false;
-                $rootScope.autoUpdateTimer = Usergrid.config ? Usergrid.config.autoUpdateTimer : 61;
-                $rootScope.requiresDeveloperKey = Usergrid.config ? Usergrid.config.client.requiresDeveloperKey : false;
-                $rootScope.loaded = $rootScope.activeUI = false;
-                for (var key in Usergrid.regex) {
-                    $scope[key] = Usergrid.regex[key];
-                }
-                $scope.options = Usergrid.options;
-                var getQuery = function() {
-                    var result = {}, queryString = location.search.slice(1), re = /([^&=]+)=([^&]*)/g, m;
-                    while (m = re.exec(queryString)) {
-                        result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
-                    }
-                    return result;
-                };
-                $scope.queryString = getQuery();
-            };
-            initScopeVariables();
-            $rootScope.urls = function() {
-                var urls = ug.getUrls($scope.queryString);
-                $scope.apiUrl = urls.apiUrl;
-                $scope.use_sso = urls.use_sso;
-                return urls;
-            };
-            $rootScope.gotoPage = function(path) {
-                $location.path(path);
-            };
-            var notRegistration = function() {
-                return "/forgot-password" !== $location.path() && "/register" !== $location.path();
-            };
-            var verifyUser = function() {
-                if ($location.path().slice(0, "/login".length) !== "/login") {
-                    $rootScope.currentPath = $location.path();
-                }
-                if ($routeParams.access_token && $routeParams.admin_email && $routeParams.uuid) {
-                    ug.set("token", $routeParams.access_token);
-                    ug.set("email", $routeParams.admin_email);
-                    ug.set("uuid", $routeParams.uuid);
-                    $location.search("access_token", null);
-                    $location.search("admin_email", null);
-                    $location.search("uuid", null);
-                }
-                ug.checkAuthentication(true);
-            };
-            $scope.profile = function() {
-                if ($scope.use_sso) {
-                    window.location = $rootScope.urls().PROFILE_URL + "?callback=" + encodeURIComponent($location.absUrl());
-                } else {
-                    $location.path("/profile");
-                }
-            };
-            $rootScope.showModal = function(id) {
-                $("#" + id).modal("show");
-            };
-            $rootScope.hideModal = function(id) {
-                $("#" + id).modal("hide");
-            };
-            $scope.deleteEntities = function(collection, successBroadcast, errorMessage) {
-                collection.resetEntityPointer();
-                var entitiesToDelete = [];
-                while (collection.hasNextEntity()) {
-                    var entity = collection.getNextEntity();
-                    var checked = entity.checked;
-                    if (checked) {
-                        entitiesToDelete.push(entity);
-                    }
-                }
-                var count = 0, success = false;
-                for (var i = 0; i < entitiesToDelete.length; i++) {
-                    var entity = entitiesToDelete[i];
-                    collection.destroyEntity(entity, function(err) {
-                        count++;
-                        if (err) {
-                            $rootScope.$broadcast("alert", "error", errorMessage);
-                            $rootScope.$broadcast(successBroadcast + "-error", err);
-                        } else {
-                            success = true;
-                        }
-                        if (count === entitiesToDelete.length) {
-                            success && $rootScope.$broadcast(successBroadcast);
-                            $scope.applyScope();
-                        }
-                    });
-                }
-            };
-            $scope.selectAllEntities = function(list, that, varName, setValue) {
-                varName = varName || "master";
-                var val = that[varName];
-                if (setValue == undefined) {
-                    setValue = true;
-                }
-                if (setValue) {
-                    that[varName] = val = !val;
-                }
-                list.forEach(function(entitiy) {
-                    entitiy.checked = val;
-                });
-            };
-            $scope.createPermission = function(type, entity, path, permissions) {
-                if (path.charAt(0) != "/") {
-                    path = "/" + path;
-                }
-                var ops = "";
-                var s = "";
-                if (permissions.getPerm) {
-                    ops = "get";
-                    s = ",";
-                }
-                if (permissions.postPerm) {
-                    ops = ops + s + "post";
-                    s = ",";
-                }
-                if (permissions.putPerm) {
-                    ops = ops + s + "put";
-                    s = ",";
-                }
-                if (permissions.deletePerm) {
-                    ops = ops + s + "delete";
-                    s = ",";
-                }
-                var permission = ops + ":" + path;
-                return permission;
-            };
-            $scope.formatDate = function(date) {
-                return new Date(date).toUTCString();
-            };
-            $scope.clearCheckbox = function(id) {
-                if ($("#" + id).attr("checked")) {
-                    $("#" + id).click();
-                }
-            };
-            $scope.removeFirstSlash = function(path) {
-                return path.indexOf("/") === 0 ? path.substring(1, path.length) : path;
-            };
-            $scope.applyScope = function(cb) {
-                cb = typeof cb === "function" ? cb : function() {};
-                if (!this.$$phase) {
-                    return this.$apply(cb);
-                } else {
-                    cb();
-                }
-            };
-            $scope.valueSelected = function(list) {
-                return list && list.some(function(item) {
-                    return item.checked;
-                });
-            };
-            $scope.sendHelp = function(modalId) {
-                ug.jsonpRaw("apigeeuihelpemail", "", {
-                    useremail: $rootScope.userEmail
-                }).then(function() {
-                    $rootScope.$broadcast("alert", "success", "Email sent. Our team will be in touch with you shortly.");
-                }, function() {
-                    $rootScope.$broadcast("alert", "error", "Problem Sending Email. Try sending an email to mobile@apigee.com.");
-                });
-                $scope.hideModal(modalId);
-            };
-            $scope.$on("users-typeahead-received", function(event, users) {
-                $scope.usersTypeaheadValues = users;
-                if (!$scope.$$phase) {
-                    $scope.$apply();
-                }
-            });
-            $scope.$on("groups-typeahead-received", function(event, groups) {
-                $scope.groupsTypeaheadValues = groups;
-                if (!$scope.$$phase) {
-                    $scope.$apply();
-                }
-            });
-            $scope.$on("roles-typeahead-received", function(event, roles) {
-                $scope.rolesTypeaheadValues = roles;
-                if (!$scope.$$phase) {
-                    $scope.$apply();
-                }
-            });
-            $scope.$on("checkAuthentication-success", function() {
-                sessionStorage.setItem("authenticateAttempts", 0);
-                $scope.loaded = true;
-                $rootScope.activeUI = true;
-                $scope.applyScope();
-                if (!$scope.queryStringApplied) {
-                    $scope.queryStringApplied = true;
-                    setTimeout(function() {
-                        if ($scope.queryString.org) {
-                            $rootScope.$broadcast("change-org", $scope.queryString.org);
-                        }
-                    }, 1e3);
-                }
-                $rootScope.$broadcast("app-initialized");
-            });
-            $scope.$on("checkAuthentication-error", function(args, err, missingData, email) {
-                $scope.loaded = true;
-                if (err && !$scope.use_sso && notRegistration()) {
-                    ug.logout();
-                    $location.path("/login");
-                    $scope.applyScope();
-                } else {
-                    if (missingData && notRegistration()) {
-                        if (!email && $scope.use_sso) {
-                            window.location = $rootScope.urls().LOGIN_URL + "?callback=" + encodeURIComponent($location.absUrl().split("?")[0]);
-                            return;
-                        }
-                        ug.reAuthenticate(email);
-                    }
-                }
-            });
-            $scope.$on("reAuthenticate-success", function(args, err, data, user, organizations, applications) {
-                sessionStorage.setItem("authenticateAttempts", 0);
-                $rootScope.$broadcast("loginSuccesful", user, organizations, applications);
-                $rootScope.$emit("loginSuccesful", user, organizations, applications);
-                $rootScope.$broadcast("checkAuthentication-success");
-                $scope.applyScope(function() {
-                    $scope.deferredLogin.resolve();
-                    $location.path("/org-overview");
-                });
-            });
-            var authenticateAttempts = parseInt(sessionStorage.getItem("authenticateAttempts") || 0);
-            $scope.$on("reAuthenticate-error", function() {
-                if ($scope.use_sso) {
-                    if (authenticateAttempts++ > 5) {
-                        $rootScope.$broadcast("alert", "error", "There is an issue with authentication. Please contact support.");
-                        return;
-                    }
-                    console.error("Failed to login via sso " + authenticateAttempts);
-                    sessionStorage.setItem("authenticateAttempts", authenticateAttempts);
-                    window.location = $rootScope.urls().LOGIN_URL + "?callback=" + encodeURIComponent($location.absUrl().split("?")[0]);
-                } else {
-                    if (notRegistration()) {
-                        ug.logout();
-                        $location.path("/login");
-                        $scope.applyScope();
-                    }
-                }
-            });
-            $scope.$on("loginSuccessful", function() {
-                $rootScope.activeUI = true;
-            });
-            $scope.$on("app-changed", function(args, oldVal, newVal, preventReload) {
-                if (newVal !== oldVal && !preventReload) {
-                    $route.reload();
-                }
-            });
-            $scope.$on("org-changed", function(args, oldOrg, newOrg) {
-                ug.getApplications();
-                $route.reload();
-            });
-            $scope.$on("app-settings-received", function(evt, data) {});
-            $scope.$on("request-times-slow", function(evt, averageRequestTimes) {
-                $rootScope.$broadcast("alert", "info", "We are experiencing performance issues on our server.  Please click Get Help for support if this continues.");
-            });
-            var lastPage = "";
-            $scope.$on("$routeChangeSuccess", function() {
-                verifyUser();
-                $scope.showDemoBar = $location.path().slice(0, "/performance".length) === "/performance";
-                if (!$scope.showDemoBar) {
-                    $rootScope.demoData = false;
-                }
-                setTimeout(function() {
-                    lastPage = "";
-                }, 50);
-                var path = window.location.pathname.replace("index-debug.html", "");
-                lastPage === "" && $analytics.pageTrack((path + $location.path()).replace("//", "/"));
-                lastPage = $location.path();
-            });
-            $scope.$on("applications-received", function(event, applications) {
-                $scope.applications = applications;
-                $scope.hasApplications = Object.keys(applications).length > 0;
-            });
-            ug.getAppSettings();
-            $rootScope.startFirstTimeUser = function() {
-                $rootScope.hideModal("introjs");
-                $rootScope.help.introjs_StartEvent();
-                $scope.startHelp();
-            };
-        } ]);
-        "use strict";
-        AppServices.Directives.directive("pageTitle", [ "$rootScope", "ug", function($rootScope, ug) {
-            return {
-                restrict: "E",
-                transclude: true,
-                templateUrl: "global/page-title.html",
-                link: function linkFn(scope, lElement, attrs) {
-                    scope.title = attrs.title;
-                    scope.icon = attrs.icon;
-                    scope.showHelp = function() {
-                        $("#need-help").modal("show");
-                    };
-                    scope.sendHelp = function() {
-                        data.jsonp_raw("apigeeuihelpemail", "", {
-                            useremail: $rootScope.userEmail
-                        }).then(function() {
-                            $rootScope.$broadcast("alert", "success", "Email sent. Our team will be in touch with you shortly.");
-                        }, function() {
-                            $rootScope.$broadcast("alert", "error", "Problem Sending Email. Try sending an email to mobile@apigee.com.");
-                        });
-                        $("#need-help").modal("hide");
-                    };
-                }
-            };
-        } ]);
-        "use strict";
-        AppServices.Services.factory("ug", function(configuration, $rootScope, utility, $q, $http, $resource, $log, $analytics, $location) {
-            var requestTimes = [], 

<TRUNCATED>

[7/9] building files

Posted by sn...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/70780481/portal/dist/appsvc-ui/css/dash.min.css
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui/css/dash.min.css b/portal/dist/appsvc-ui/css/dash.min.css
index 62424d9..c2b5359 100644
--- a/portal/dist/appsvc-ui/css/dash.min.css
+++ b/portal/dist/appsvc-ui/css/dash.min.css
@@ -1 +1 @@
-.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
 :padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
 op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
 hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
 iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
 ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
 ,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
  ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
 nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
 uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
 Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
 globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
 ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
 in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
 con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
 p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
 avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
 5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
 ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
 :hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
 g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
 4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
 c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
 y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
 ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
 }#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
 00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
 px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px 
 0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
 ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border-radius:0;box-shadow:none;border:1px solid rgba(0,0,0,.25)}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6d
 bce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0
 ;border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #d4d4d4}.introjs-button:hover{font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;margin-right:32px;border:1px solid #6dbce3}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;margin-left:3px}.introjs-prevbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(img/introjs_arrow_step_next.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px soli
 d #6dbce3}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #6dbce3}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_next_disabled.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px solid #d4d4d4}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #d4d4d4}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:gray;bac
 kground-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file
+.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
 :padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
 op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
 hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
 iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
 ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
 ,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
  ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
 nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
 uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
 Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
 globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
 ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
 in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
 con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
 p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
 avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
 5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
 ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
 :hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
 g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
 4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
 c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
 y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
 ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
 }#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
 00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
 px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px 
 0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
 ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border-radius:0;box-shadow:none;border:1px solid rgba(0,0,0,.25)}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6d
 bce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0
 ;border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #d4d4d4}.introjs-button:hover{font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;margin-right:32px;border:1px solid #6dbce3}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;margin-left:3px}.introjs-prevbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(../img/introjs_arrow_step_next.png);background-position:45px 5px;background-repeat:no-repeat;text-align:left;border:1px s
 olid #6dbce3}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(../img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #6dbce3}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(../img/introjs_arrow_step_next_disabled.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px solid #d4d4d4}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(../img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #d4d4d4}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{co
 lor:gray;background-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/70780481/portal/dist/appsvc-ui/css/main.css
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui/css/main.css b/portal/dist/appsvc-ui/css/main.css
index 9c8ab5d..ffdaebb 100644
--- a/portal/dist/appsvc-ui/css/main.css
+++ b/portal/dist/appsvc-ui/css/main.css
@@ -1912,8 +1912,8 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-nextbutton:focus, 
 .introjs-nextbutton:active,
 .introjs-nextbutton:hover {
-  background-image: url("img/introjs_arrow_step_next.png");
-  background-position: 48px 5px;
+  background-image: url("../img/introjs_arrow_step_next.png");
+  background-position: 45px 5px;
   background-repeat: no-repeat;
   text-align: left;
   border: 1px solid #6dbce3;
@@ -1923,7 +1923,7 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-prevbutton:focus, 
 .introjs-prevbutton:active,
 .introjs-prevbutton:hover {
-  background-image: url("img/introjs_arrow_step_prev.png");
+  background-image: url("../img/introjs_arrow_step_prev.png");
   background-position: 2px 5px;
   background-repeat: no-repeat;
   text-align: right;
@@ -1934,7 +1934,7 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-nextbutton.introjs-disabled:active, 
 .introjs-nextbutton.introjs-disabled:hover, 
 .introjs-nextbutton.introjs-disabled:focus {
-  background-image: url("img/introjs_arrow_step_next_disabled.png");
+  background-image: url("../img/introjs_arrow_step_next_disabled.png");
   background-position: 48px 5px;
   background-repeat: no-repeat;
   text-align: left;
@@ -1945,7 +1945,7 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-prevbutton.introjs-disabled:active, 
 .introjs-prevbutton.introjs-disabled:hover, 
 .introjs-prevbutton.introjs-disabled:focus {
-  background-image: url("img/introjs_arrow_step_prev_disabled.png");
+  background-image: url("../img/introjs_arrow_step_prev_disabled.png");
   background-position: 2px 5px;
   background-repeat: no-repeat;
   text-align: right;


[8/9] git commit: building files

Posted by sn...@apache.org.
building files


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/70780481
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/70780481
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/70780481

Branch: refs/heads/master
Commit: 70780481a39fa758dc2a909b097cfaf33ed4b669
Parents: 3313695
Author: Shawn Feldman <sh...@gmail.com>
Authored: Mon Mar 31 14:48:09 2014 -0600
Committer: Shawn Feldman <sh...@gmail.com>
Committed: Mon Mar 31 14:48:09 2014 -0600

----------------------------------------------------------------------
 portal/dist/appsvc-ui/2.0.2/css/dash.min.css |     2 +-
 portal/dist/appsvc-ui/2.0.2/css/main.css     |    10 +-
 portal/dist/appsvc-ui/css/dash.min.css       |     2 +-
 portal/dist/appsvc-ui/css/main.css           |    10 +-
 portal/js/usergrid-dev.min.js                | 19754 --------------------
 5 files changed, 12 insertions(+), 19766 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/70780481/portal/dist/appsvc-ui/2.0.2/css/dash.min.css
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui/2.0.2/css/dash.min.css b/portal/dist/appsvc-ui/2.0.2/css/dash.min.css
index 62424d9..c2b5359 100644
--- a/portal/dist/appsvc-ui/2.0.2/css/dash.min.css
+++ b/portal/dist/appsvc-ui/2.0.2/css/dash.min.css
@@ -1 +1 @@
-.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
 :padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
 op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
 hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
 iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
 ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
 ,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
  ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
 nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
 uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
 Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
 globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
 ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
 in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
 con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
 p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
 avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
 5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
 ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
 :hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
 g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
 4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
 c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
 y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
 ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
 }#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
 00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
 px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px 
 0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
 ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border-radius:0;box-shadow:none;border:1px solid rgba(0,0,0,.25)}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6d
 bce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0
 ;border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #d4d4d4}.introjs-button:hover{font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;margin-right:32px;border:1px solid #6dbce3}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;margin-left:3px}.introjs-prevbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(img/introjs_arrow_step_next.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px soli
 d #6dbce3}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #6dbce3}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_next_disabled.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px solid #d4d4d4}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #d4d4d4}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:gray;bac
 kground-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file
+.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
 :padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
 op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
 hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
 iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
 ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
 ,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
  ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
 nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
 uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
 Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
 globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
 ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
 in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
 con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
 p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
 avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
 5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
 ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
 :hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
 g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
 4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
 c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
 y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
 ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
 }#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
 00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
 px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px 
 0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
 ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border-radius:0;box-shadow:none;border:1px solid rgba(0,0,0,.25)}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6d
 bce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0
 ;border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #d4d4d4}.introjs-button:hover{font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;margin-right:32px;border:1px solid #6dbce3}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;margin-left:3px}.introjs-prevbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(../img/introjs_arrow_step_next.png);background-position:45px 5px;background-repeat:no-repeat;text-align:left;border:1px s
 olid #6dbce3}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(../img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #6dbce3}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(../img/introjs_arrow_step_next_disabled.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px solid #d4d4d4}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(../img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #d4d4d4}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{co
 lor:gray;background-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/70780481/portal/dist/appsvc-ui/2.0.2/css/main.css
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui/2.0.2/css/main.css b/portal/dist/appsvc-ui/2.0.2/css/main.css
index 9c8ab5d..ffdaebb 100644
--- a/portal/dist/appsvc-ui/2.0.2/css/main.css
+++ b/portal/dist/appsvc-ui/2.0.2/css/main.css
@@ -1912,8 +1912,8 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-nextbutton:focus, 
 .introjs-nextbutton:active,
 .introjs-nextbutton:hover {
-  background-image: url("img/introjs_arrow_step_next.png");
-  background-position: 48px 5px;
+  background-image: url("../img/introjs_arrow_step_next.png");
+  background-position: 45px 5px;
   background-repeat: no-repeat;
   text-align: left;
   border: 1px solid #6dbce3;
@@ -1923,7 +1923,7 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-prevbutton:focus, 
 .introjs-prevbutton:active,
 .introjs-prevbutton:hover {
-  background-image: url("img/introjs_arrow_step_prev.png");
+  background-image: url("../img/introjs_arrow_step_prev.png");
   background-position: 2px 5px;
   background-repeat: no-repeat;
   text-align: right;
@@ -1934,7 +1934,7 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-nextbutton.introjs-disabled:active, 
 .introjs-nextbutton.introjs-disabled:hover, 
 .introjs-nextbutton.introjs-disabled:focus {
-  background-image: url("img/introjs_arrow_step_next_disabled.png");
+  background-image: url("../img/introjs_arrow_step_next_disabled.png");
   background-position: 48px 5px;
   background-repeat: no-repeat;
   text-align: left;
@@ -1945,7 +1945,7 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-prevbutton.introjs-disabled:active, 
 .introjs-prevbutton.introjs-disabled:hover, 
 .introjs-prevbutton.introjs-disabled:focus {
-  background-image: url("img/introjs_arrow_step_prev_disabled.png");
+  background-image: url("../img/introjs_arrow_step_prev_disabled.png");
   background-position: 2px 5px;
   background-repeat: no-repeat;
   text-align: right;


[9/9] git commit: Merge pull request #90 from shawnfeldman/master

Posted by sn...@apache.org.
Merge pull request #90 from shawnfeldman/master

need to rebuild files

Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/ec3f5b1c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/ec3f5b1c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/ec3f5b1c

Branch: refs/heads/master
Commit: ec3f5b1c142bca41bedc6d17380cbaf0429406f4
Parents: 3313695 7078048
Author: Rod Simpson <ro...@rodsimpson.com>
Authored: Mon Mar 31 14:51:14 2014 -0600
Committer: Rod Simpson <ro...@rodsimpson.com>
Committed: Mon Mar 31 14:51:14 2014 -0600

----------------------------------------------------------------------
 portal/dist/appsvc-ui/2.0.2/css/dash.min.css |     2 +-
 portal/dist/appsvc-ui/2.0.2/css/main.css     |    10 +-
 portal/dist/appsvc-ui/css/dash.min.css       |     2 +-
 portal/dist/appsvc-ui/css/main.css           |    10 +-
 portal/js/usergrid-dev.min.js                | 19754 --------------------
 5 files changed, 12 insertions(+), 19766 deletions(-)
----------------------------------------------------------------------



[2/9] git commit: fixed img path

Posted by sn...@apache.org.
fixed img path


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/b73da256
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/b73da256
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/b73da256

Branch: refs/heads/master
Commit: b73da25615388b33d680d26db1f9f47b7a7dfd55
Parents: ad1e3b3
Author: amuramoto <am...@apigee.com>
Authored: Mon Mar 31 13:04:37 2014 -0700
Committer: amuramoto <am...@apigee.com>
Committed: Mon Mar 31 13:04:37 2014 -0700

----------------------------------------------------------------------
 portal/css/dash.min.css       |  2 +-
 portal/css/main.css           | 10 +++++-----
 portal/js/usergrid-dev.min.js |  2 +-
 portal/js/usergrid.min.js     |  2 +-
 4 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b73da256/portal/css/dash.min.css
----------------------------------------------------------------------
diff --git a/portal/css/dash.min.css b/portal/css/dash.min.css
index 62424d9..c2b5359 100644
--- a/portal/css/dash.min.css
+++ b/portal/css/dash.min.css
@@ -1 +1 @@
-.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
 :padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
 op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
 hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
 iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
 ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
 ,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
  ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
 nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
 uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
 Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
 globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
 ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
 in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
 con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
 p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
 avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
 5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
 ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
 :hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
 g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
 4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
 c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
 y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
 ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
 }#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
 00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
 px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px 
 0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
 ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border-radius:0;box-shadow:none;border:1px solid rgba(0,0,0,.25)}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6d
 bce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0
 ;border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #d4d4d4}.introjs-button:hover{font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;margin-right:32px;border:1px solid #6dbce3}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;margin-left:3px}.introjs-prevbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(img/introjs_arrow_step_next.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px soli
 d #6dbce3}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #6dbce3}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_next_disabled.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px solid #d4d4d4}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #d4d4d4}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{color:gray;bac
 kground-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file
+.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;opacity:.3;filter:alpha(opacity=30);content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#fff;border-color:#ccc;border-color:rgba(0,0,0,.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip
 :padding-box;*border-right-width:2px;*border-bottom-width:2px}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff;*width:100%;*margin:-5px 0 5px}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{color:#fff;text-decoration:none;background-color:#08c}.dropdown.open{*z-index:1000}.dropdown.open .dropdown-toggle{color:#fff;background:#ccc;background:rgba(0,0,0,.3)}.dropdown.open .dropdown-menu{display:block}.pull-right .dropdown-menu{left:auto;right:0}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdownContainingSubmenu .dropdown-menu{padding:0;margin-t
 op:-4px;min-width:auto;background-color:#fff;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:4px 4px 16px rgba(0,0,0,.25);-moz-box-shadow:4px 4px 16px rgba(0,0,0,.25);box-shadow:4px 4px 16px rgba(0,0,0,.25);border-width:1px;border-top-width:4px;border-color:#bb2d16}.dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:7px 10px}.dropdownContainingSubmenu .dropdown-menu a:hover{color:#fff;background-color:#f03800}.dropdownContainingSubmenu .dropdown-menu .nav-header{background-color:#f0f0f0;margin-top:0;padding-left:10px}.dropdownContainingSubmenu .dropdown-menu .divider{margin:0}.navbar .dropdown-menu:after,.navbar .dropdown-menu:before{content:normal}#globalNav{margin-left:20px;background-color:transparent}#globalNav .dropdown-toggle{border-radius:3px;padding-top:3px;padding-bottom:3px;margin-top:7.5px;margin-bottom:7.5px}#globalNav .dropdown-toggle :hover{background-color:transparent}#globalNav.active .caret{opacity:.7}#globalNav.active :
 hover .caret{opacity:1}#globalNav ul ul a{border-left:1px solid #bb2d16}#globalNav ul ul li{position:relative}#globalNav ul ul li:first-child{border-bottom:1px solid #bb2d16}#globalNav ul ul a:before{content:"";width:6px;height:32px;position:absolute;left:-6px;top:0}#globalNav ul ul .active a:before,#globalNav ul ul .active a:hover:before{background-image:url(images/triangleMenuItem_right.png)}#globalNav ul ul:hover a:before{background-image:none}#globalNav ul ul a:hover:before{background-image:url(images/triangleMenuItem_right_hover.png)}#globalNav ul ul li a:hover{border-color:transparent}#globalNav .dropdown-menu{width:400px}#globalNavDetail{padding:20px 10px 0;width:250px;height:100%;position:relative;top:0}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail>div.open{display:inline-block}#globalNavDetail>div .globalNavDetailApigeeLogo,#globalNavDetail>div .globalNavDetailDescr
 iption,#globalNavDetail>div .globalNavDetailSubtitle,#globalNavDetail>div .globalNavDetailTitle{margin-left:80px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}#globalNavDetail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail #globalNavDetailAppServices{background-image:url(img/appswitcher/appServices_lg.png)}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailMobileAnalytics{background-image:url(img/appswitcher/max_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{ba
 ckground-image:url(img/appswitcher/console_lg.png)}#globalNavSubmenuContainer{float:right}#globalNavSubmenuContainer ul{margin-left:0}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none}html{min-height:100%;position:relative;margin:0 auto;background:#fff;min-width:1100px}body{padding:0;background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif;height:100%;max-height:100%;overflow-x:hidden}a{cursor:pointer}@font-face{font-family:entypo;src:url(entypo/entypo.eot);src:url(entypo/entypo.eot?#iefix) format('embedded-opentype'),url(entypo/entypo.woff) format('woff'),url(entypo/entypo.ttf) format('truetype'),url(entypo/entypo.svg#entypo) format('svg');font-weight:400;font-style:normal}@font-face{font-family:marquette-medium;src:url(arsmarquette/ARSMaquettePro-Medium.otf),url(arsmarquette/ARSMaquettePro-Medium.otf) format('opentype')}@font-face{font-family:marquette-regular;src:url(arsmarquette/ARSMaquettePro-Regular.otf)
 ,url(arsmarquette/ARSMaquettePro-Regular.otf) format('opentype')}@font-face{font-family:marquette-light;src:url(arsmarquette/ARSMaquettePro-Light.otf),url(arsmarquette/ARSMaquettePro-Light.otf) format('opentype')}.bold{font-family:marquette-medium}.main-content{background-color:#fff;margin:0 0 0 200px}.side-menu{position:absolute;top:51px;left:0;bottom:0;width:200px;float:left;background-color:#eee}footer{padding-top:20px;clear:both}.zero-out{padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0}.modal-body{overflow-y:visible}.demo-holder{margin:0 -20px 0 -20px;position:relative}.alert-holder{position:fixed;right:0;margin:20px 20px 0 0;z-index:10500;width:302px}.alert,.alert.alert-demo{padding:9px 35px 5px 14px;margin-bottom:3px;text-shadow:0 1px 0 rgba(255,255,255,.5);background-color:#eee;border:1px solid #eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transition:all 1s ease;-moz-transition:all 1s
  ease;transition:all 1s ease;height:0;overflow:hidden;line-height:0;float:right}.alert.alert-demo{float:none}.alert{width:0}.alert.alert-success{background-color:rgba(155,198,144,.31);color:#1f6719;border-left:2px solid #1f6719}.alert.alert-warning{background-color:rgba(239,172,37,.2);color:#efac25;border-left:2px solid #efac25}.alert.alert-info{background-color:rgba(27,151,209,.2);color:#1b97d1;border-left:2px solid #1b97d1}.alert.alert-error{background-color:rgba(255,3,3,.2);color:#ff0303;border-left:2px solid #ff0303}.alert.alert-animate.alert-demo{height:20px;line-height:normal;opacity:1;width:100%;-moz-box-shadow:inset 0 2px 13px #b8b8b8;-webkit-box-shadow:inset 0 2px 13px #b8b8b8;box-shadow:inset 0 2px 13px #b8b8b8}.alert.alert-animate{height:auto;line-height:normal;opacity:.9;width:300px}@-webkit-keyframes alert-out{from{opacity:1}to{-webkit-transform:translateY(500px);opacity:0}}@keyframes alert-out{from{opacity:1}to{transform:translateY(500px);opacity:0}}.fade-out{-webkit-a
 nimation-name:alert-out;-webkit-animation-duration:1s;-webkit-animation-timing-function:step-stop;-webkit-animation-direction:normal;-webkit-animation-iteration-count:1;animation-name:alert-out;animation-duration:1s;animation-timing-function:step-stop;animation-direction:normal;animation-iteration-count:1;opacity:.9}.margin-35{margin-top:35px}.modal-footer{background-color:transparent}.baloon{margin:20px;padding:20px 30px;position:fixed;bottom:0;top:auto;border-style:solid;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,.8)}.baloon:after{content:"";position:absolute;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865473, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865473, SizingMethod='auto expand')"}.north.baloon:after{top:-6px;left:30px;border-top-style:solid;border-left-style:solid;box-shadow:-2px -2px 3px -1px rgba(0,0,0,.5)}.so
 uth.baloon:after{bottom:-6px;left:30px;border-bottom-style:solid;border-right-style:solid;box-shadow:2px 2px 3px -1px rgba(0,0,0,.5)}.left.baloon:after{top:10px;left:-6px;border-bottom-style:solid;border-left-style:solid;box-shadow:-2px 2px 3px -1px rgba(0,0,0,.5)}.right.baloon:after{bottom:10px;right:-6px;border-top-style:solid;border-right-style:solid;box-shadow:2px -2px 3px -1px rgba(0,0,0,.5)}.baloon,.baloon:after{font-family:sans-serif;font-weight:700;border-color:#f7f7f7;border-width:1px;background-color:#3ac62f;color:#fff}#globalNav{float:right;margin:15px 8px 0 9px;list-style:none;width:114px}#globalNav ul{list-style:none}#globalNavDetail>div{display:none;color:graytext;background-image:none;background-repeat:no-repeat;background-position:0 0;min-height:64px}#globalNavDetail #globalNavDetailApiPlatform{background-image:url(../img/appswitcher/apiPlatform_lg.png)}#globalNavDetail #globalNavDetailAppServices{background-image:url(../img/appswitcher/appServices_lg.png)}#globalNav
 Detail #globalNavDetailApigeeHome{margin-top:-10px;background-image:url(../img/appswitcher/home_lg.png)}#globalNavDetail #globalNavDetailApiConsoles{background-image:url(../img/appswitcher/console_lg.png)}#globalNavDetail #globalNavDetailApigeeHome .globalNavDetailApigeeLogo{margin-top:10px;background-image:url(../img/appswitcher/logo_color.png);width:116px;height:40px}#globalNavDetail>div .globalNavDetailSubtitle{font-size:10px;text-transform:uppercase}#globalNavDetail>div .globalNavDetailTitle{margin-top:5px;font-size:20px}#globalNavDetail>div .globalNavDetailDescription{margin-top:10px;line-height:17px;font-style:oblique}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu a{color:#494949;padding:13px 10px}.navbar.navbar-static-top .dropdownContainingSubmenu .dropdown-menu .active a{color:#fff;background-color:#bb2d16}.navbar.navbar-static-top .dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#333;white-space:nowrap}#
 globalNav .dropdown-toggle{border-radius:3px;padding:3px 6px;margin:0}.dropdown-toggle{background-color:#bb2d16;padding:3px}.demo-holder .alert.alert-demo{background-color:rgba(196,196,196,.1);color:#777;padding:12px 35px 7px 14px}.demo-holder-content{position:absolute;right:50px}.demo-text{position:absolute;right:223px;left:0;padding:0 0 0 10px}.b{display:block}.toggle,.toggle-form{position:absolute;top:10px;right:173px;width:50px;height:23px;border-radius:100px;background-color:#ddd;overflow:hidden;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.form-horizontal.configs .control-label{width:250px;padding:0 10px 0 0}.toggle-form{position:relative;right:auto;top:auto;display:inline-block}.toggle-form-label{display:inline-block}input[type=checkbox].check{position:absolute;display:block;cursor:pointer;top:0;left:0;width:100%;height:100%;opacity:0;z-index:6}.check:checked~.track{box-shadow:inset 0 0 0 20px #ff3b00}.toggle-form .check:checked~.track{box-shadow:inset 0 0 0 20px #82ce85}.che
 ck:checked~.switch{right:2px;left:27px;transition:.4s ease;transition-property:left,right;transition-delay:.05s,0s}.switch{position:absolute;left:2px;top:2px;bottom:2px;right:27px;background-color:#fff;border-radius:36px;z-index:1;transition:.4s ease;transition-property:left,right;transition-delay:0s,.05s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.track{position:absolute;left:0;top:0;right:0;bottom:0;transition:.4s ease;box-shadow:inset 0 0 0 2px rgba(0,0,0,.05);border-radius:40px}.add-app .pictogram,top-selector .pictogram{margin:0 3px 0 0}i.pictogram{font-family:entypo;display:inline-block;width:23px;margin:0 5px 0 0;font-size:2.5em;height:17px;line-height:.35;overflow:hidden;vertical-align:middle;padding:5px 0 0;font-style:normal;font-weight:100;-webkit-font-smoothing:antialiased}i.pictogram.sub{margin:0 0 0 10px;font-size:2.1em}i.pictogram.title{margin:0;font-size:2.1em}i.pictogram.chart{margin:0 0 0 3px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}i.pictogram.apichart{marg
 in:0 0 0 11px;font-size:2.1em;line-height:.4em;height:.5em;width:100%}[class*=" ma-icon-"],[class^=ma-icon-]{display:inline-block;width:23px;height:20px;margin:1px 3px 0 0;line-height:20px;vertical-align:text-top;background-image:url(../img/nav-sprites.png);background-position:14px 14px;background-repeat:no-repeat}[class*=" sdk-icon-"],[class^=sdk-icon-]{display:inline-block;width:32px;height:29px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites.png);background-position:14px 14px;background-repeat:no-repeat;cursor:pointer;overflow:hidden}[class*=" sdk-icon-large-"],[class^=sdk-icon-large-]{display:inline-block;width:86px;height:86px;margin:-3px 3px 0 0;line-height:32px;vertical-align:text-top;background-image:url(../img/sdk-sprites-large.png);background-position:14px 14px;background-repeat:no-repeat;border:1px solid #aaa;-moz-box-shadow:3px 3px 0 -1px #ccc;-webkit-box-shadow:3px 3px 0 -1px #ccc;box-shadow:3px 3px 0 -1px #ccc}.sdk-i
 con-ios{background-position:-6px -4px}.sdk-icon-android{background-position:-59px -3px}.sdk-icon-js{background-position:-109px -4px}.sdk-icon-node{background-position:-154px -3px}.sdk-icon-ruby{background-position:-204px -3px}.sdk-icon-net{background-position:-256px -4px}.sdk-icon-large-ios{background-position:-6px -3px}.sdk-icon-large-android{background-position:-113px 0}.sdk-icon-large-js{background-position:-219px 0}.sdk-icon-large-node{background-position:-323px -3px}.sdk-icon-large-ruby{background-position:-431px 0}.sdk-icon-large-net{background-position:-537px -3px}body>header>.navbar{background-color:#ff3b00}body>header .navbar:first-child>a{height:22px;line-height:22px;padding:10px 20px 20px 13px}.navbar.navbar-static-top a{text-shadow:none;color:#fff}.navbar-text{color:#fff;margin:4px}.navbar-text .dropdown-menu a{color:#343434}.navbar-text.pull-left{margin-left:90px}.top-nav,ul.app-nav li,ul.org-nav li{background-color:#fff}.top-nav .btn-group{margin:9px 0 5px 5px}.nav .ap
 p-selector .caret,.nav .app-selector:active .caret,.nav .app-selector:focus .caret,.nav .app-selector:hover .caret,.nav .org-selector .caret,.nav .org-selector:active .caret,.nav .org-selector:focus .caret,.nav .org-selector:hover .caret{border-top-color:#5f5f5f;border-bottom-color:transparent;margin-top:8px;position:absolute;right:10px}.org-options{margin:5px 2px -8px -5px;border-top:3px solid #e6e6e6;overflow:hidden}.navbar.secondary{margin:0 -20px 0 -21px;border-bottom:3px solid #e6e6e6}.navbar.secondary>.container-fluid{margin:0 -20px 0 -18px}.navbar.secondary .nav,.navbar.secondary>.container-fluid .nav-collapse.collapse.span9,.top-nav{margin:0}.top-nav>li,.top-nav>li>div{width:100%}.span9.button-area{margin-left:0}.navbar .nav a.btn-create i{margin:1px 0 0}.navbar .nav a.btn-create,.navbar .nav a.btn-create:hover{text-align:left;font-weight:400;color:#1b70a0;padding:0 0 0 10px;margin:4px 0 0 3px;display:block;width:140px;height:30px;line-height:30px;background-color:#f3f3f3}.n
 avbar .nav a.btn-create:hover{color:#1b70a0}.navbar .nav a.btn-create:active{box-shadow:none}.sdks>ul>li.title label{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px;cursor:default}.sdks>ul>li.title a{color:#5f5f5f;font-size:15px;display:inline-block;padding:16px 0 0;line-height:6px}.sdks>ul{list-style:none;margin:0;height:32px;overflow:hidden}.sdks>ul>li{display:inline;margin:0 10px 0 0;line-height:11px}.navbar.secondary,.navbar.secondary .btn-group>.btn,.navbar.secondary .btn-group>.dropdown-menu,.side-menu .btn-group>.btn,.side-menu .dropdown-menu{text-transform:uppercase;font-family:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif;color:#5f5f5f;font-size:14px;-webkit-font-smoothing:antialiased}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{text-decoration:none;color:#fff;background-color:#5f
 5f5f;background-image:-moz-linear-gradient(top,#5f5f5f,#787878);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5f5f5f),to(#787878));background-image:-webkit-linear-gradient(top,#5f5f5f,#787878);background-image:-o-linear-gradient(top,#5f5f5f,#787878);background-image:linear-gradient(to bottom,#5f5f5f,#787878);background-repeat:repeat-x}.btn-group.open .btn.dropdown-toggle.top-selector,.top-selector,.top-selector:active,.top-selector:focus,.top-selector:hover{color:#5f5f5f;padding:0;text-shadow:none;background-color:transparent;background-image:none;border:0;box-shadow:none;outline:0;width:100%;text-align:left}.dialog-body{padding:20px}h1.title{font-size:1.3em;font-family:marquette-medium,"Helvetica Neue",sans-serif;color:#686868;line-height:17px;display:inline-block;padding:0 10px 0 0}h2.title{text-transform:uppercase;font-size:1.2em;border-top:2px solid #eee;color:#828282}h2.title.chart{margin:10px 0 20px 10px;z-index:101;position:absolute;top:0;left:0;right:0}h3.title{t
 ext-transform:uppercase;font-size:1.1em}.sidebar-nav .nav-list{padding:0}.nav-list .nav-header,.sidebar-nav .nav-list>li>a{margin-right:0}.sidebar-nav .nav-list.trans{max-height:100000px;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;display:block;opacity:0}.sidebar-nav .nav-list li a{padding:10px 0 10px 25px;color:#5f5f5f;text-shadow:none;background-color:#eee;font-size:14px;text-transform:uppercase;position:relative}.sidebar-nav .nav-list li a.org-overview{background-color:#fff;font-family:marquette-light,'Helvetica Neue',Helvetica,Arial,sans-serif}.sidebar-nav .nav-list li a.org-overview:hover{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li{margin:0;height:39px;overflow:hidden}.sidebar-nav .nav-list:first-child>li.active{height:auto;overflow:visible}.sidebar-nav .nav-list:first-child>li>ul>li>a{color:#5f5f5f}.sidebar-nav .nav-list:first-child>li.active>a,.sidebar-nav .nav-list:first-child>li>a:focus,.sidebar-nav .nav-list:first-child>li>a
 :hover{color:#fff;text-shadow:none;background-color:#1b70a0;margin:0 0 0 -15px}.sidebar-nav .nav-list:first-child li.active>ul>li>a{background-color:#fff}.sidebar-nav .nav-list li.option>ul{overflow:hidden;opacity:0;height:auto;display:block;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;transition:all .5s ease;max-height:100000px}.sidebar-nav .nav-list li.option.active>ul{opacity:1}.sidebar-nav .nav-list li.active>ul>li a{border-bottom:1px solid #eee;color:#747474;text-transform:none;font-weight:300;padding:10px 0 10px 22px}.sidebar-nav .nav-list li.active>ul>li.active>a,.sidebar-nav .nav-list li.active>ul>li>a:focus,.sidebar-nav .nav-list li.active>ul>li>a:hover{color:#1b70a0;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIH
 g6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NkEzQ0Y1MUI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NkEzQ0Y1MkI0MjIxMUUyODZGN0I5RUE1NjAwQ0I0MCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU2QTNDRjRGQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU2QTNDRjUwQjQyMjExRTI4NkY3QjlFQTU2MDBDQjQwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+poqUzgAAAG1JREFUeNpilC5YwIADqLNgEWQG4kYg9mNCk1AE4sNAXA3iIEuGAPF5ILaECYAkeYB
 4DhCvBmJ+ZGNAkt+B+CkQ/0W3nAkqWA/EblBFKJIwsA+IDYF4BzZJEHgNxJ5AXAbEv1hwBEA3EK8BCDAAwgoRW2zTv6EAAAAASUVORK5CYII=) no-repeat;background-position:206px 16px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif;border-bottom:1px solid #eee;text-shadow:none;-webkit-font-smoothing:antialiased}.sidebar-nav .nav-list li.option ul{list-style:none}.new-tag{border-radius:3px;display:inline-block;font-family:marquette-medium;font-size:.6em;background-color:rgba(26,26,26,.5);color:#fff;padding:3px;height:8px;line-height:8px;position:absolute;right:5px;top:13px}.sidebar-nav .nav-list li:active a{background-color:rgba(255,255,255,.5)}.app-creds dt{font-family:marquette-medium}.intro-container{position:relative;height:auto;-webkit-transition:all .5s ease-out;-moz-transition:all .5s ease-out;transition:all .5s ease-out;overflow:hidden}.sdk-intro{position:absolute;border:1px solid #aaa;background-color:#f4f4f4;-moz-box-shadow:inset 0 0 10px #ccc;-webkit-box-shadow:inset 0 0 10px #cc
 c;box-shadow:inset 0 4px 10px #ccc;opacity:.4;top:0;left:6px;right:1px;bottom:0;height:auto;overflow:hidden}.sdk-intro-content{position:absolute;padding:10px 40px 10px 10px;top:0;left:6px;right:-20px;bottom:0;height:auto;overflow:auto}.sdk-intro-content .btn.normal{margin:19px 10px 0 0}.keys-creds h2{margin-bottom:-2px}.user-list{padding:0;margin:0;list-style:none;min-height:450px;float:left;width:100%}.user-list li{padding:10px;border-bottom:1px solid #c5c5c5;cursor:pointer}.user-list li .label{margin:0 0 0 22px}.user-list li input{margin:0 10px 0 0}.user-list li.selected{background-color:#eee}#user-panel{margin-top:20px}.user-col{border-right:1px solid #c5c5c5;-moz-box-shadow:inset -27px 1px 6px -27px #b8b8b8;-webkit-box-shadow:inset -27px 1px 6px -27px #b8b8b8;box-shadow:inset -27px 1px 6px -27px #b8b8b8}.user-profile-picture{width:40px;height:40px}.content-page>.well{padding:10px;height:40px}.table-header td{font-weight:800;color:#000}.user-header-title{font-size:13px;font-famil
 y:marquette-regular,'Helvetica Neue',Helvetica,Arial,sans-serif}.tabbable>.tab-content{overflow:visible}.button-strip{float:right;margin-bottom:10px}a.notifications-links{color:#1b97d1}.notifications-header{height:50px;background-color:#eee;padding:10px;border-bottom:1px solid #aaa;position:relative;overflow:hidden}.groups-row td.details,.notifications-row td.details,.roles-row td.details,.users-row td.details{line-height:25px!important;border-right:1px solid #e5e5e5}.nav-tabs>li{cursor:pointer}.login-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.login-content form{margin:0}.login-content form h1{padding:10px 0 5px 20px}.login-holder{width:450px;border:1px solid #e5e5e5}.login-holder .form-actions{padding-left:30px;margin-bottom:0}.login-holder .form-actions .submit{padding:0 30px 0 0}.login-content .extra-actions{margin-top:10px;padding-left:30px;margin-bottom:0}.login-content .extra-actions .submit{padding:0 30px 0 0}.login-co
 ntent .extra-actions .submit a{margin-left:3px;margin-right:3px}.signUp-content{position:absolute;top:91px;bottom:0;left:0;right:0;background-color:#fff;padding:9% 0 0 32%}.signUp-content form{margin:0}.signUp-content form h1{padding:10px 0 5px 20px}.signUp-holder{width:450px;border:1px solid #e5e5e5}.signUp-holder .form-actions{margin-bottom:0}.signUp-holder .form-actions .submit{padding:0 30px 0 0}.table.collection-list{border:1px solid #eee}.formatted-json,.formatted-json ul{list-style:none}.formatted-json .key{font-family:marquette-medium}.formatted-json li{border-bottom:1px solid #eee;margin:3px 0}iframe[seamless]{background-color:transparent;border:0 none transparent;padding:0;overflow:visible;overflow-x:hidden;width:100%}.gravatar20{padding:7px 0 0 10px!important;margin:0;width:30px}#shell-panel *{font-family:monospace}#shell-panel .boxContent{font-family:monospace;font-size:14px;min-height:400px}#shell-panel input{font-family:monospace;overflow:auto;width:90%;margin-top:10px
 }#shell-panel hr{margin:2px;border-color:#e1e1e1}form input.has-error{-webkit-animation:pulse-red 1s alternate infinite;-moz-animation:pulse-red 1s alternate infinite;border:1px solid rgba(255,3,3,.6)}.validator-error-message{color:#ff0303}@-webkit-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}@-moz-keyframes pulse-red{0%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.1),0 0 5px 2px rgba(255,3,3,.3)}100%{box-shadow:inset 0 0 5px 2px rgba(255,3,3,.3),0 0 5px 2px rgba(255,3,3,.1)}}.modal-instructions{padding-top:5px;padding-bottom:5px}.dropdown-menu{width:100%}.modal{width:560px!important}.dropdown-backdrop{position:static}.title.with-icons a{display:inline-block;text-transform:lowercase;font-size:.8em;margin:0 5px 0 0}.span9.tab-content{margin:0}.span9.tab-content .content-page{padding:0 0 0 30px}.button-toolbar,.menu-toolbar{padding:10px 0;margin:0;width:1
 00%}.menu-toolbar{padding:0 0 20px}.menu-toolbar>ul.inline{border-bottom:1px solid #c5c5c5;margin:0}.btn-group .filter-selector,.btn-group .filter-selector:active,.btn-group .filter-selector:focus,.btn-group .filter-selector:hover,.btn-group .filter-title,.btn-group .filter-title:active,.btn-group .filter-title:focus,.btn-group.open .btn.dropdown-toggle.filter-selector,.btn-group.open .btn.dropdown-toggle.filter-title,.btn-group>.filter-selector.btn:first-child,.btn-group>.filter-title.btn:first-child,.btn.btn-primary,.btn.normal,.modal-footer .btn{color:#fff;padding:3px 9px;text-shadow:none;background-color:#494949;background-image:none;border:1px solid #c5c5c5;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;box-shadow:none}ul.inline>li.tab{margin:0;padding:0}li.tab .btn.btn-primary{background-color:#eee;border:0;color:#494949;box-shadow:none;margin:0 -1px -1px -1px;padding:3px 19px 3
 px 16px;border-bottom:1px solid #c5c5c5}ul.inline>li.tab.selected{margin:0 0 -1px 0;border-bottom:1px solid #fff}li.tab.selected .btn.btn-primary.toolbar{color:#494949;border-left:1px solid #c5c5c5;border-right:1px solid #c5c5c5;border-top:1px solid #c5c5c5;border-bottom:0;background-color:#fff}.btn-group.compare .filter-selector.btn:first-child,.btn.btn-primary.toolbar{color:#494949;background-color:#f1f1f1}li.selected .btn.btn-primary.toolbar{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn.cancel,.btn.cancel:hover,.btn.normal.white,.btn.normal.white:hover{background-color:#fff;color:#5f5f5f}.btn-group .filter-selector:active,.btn-group .filter-title:hover,.btn-group.selected .filter-selector,.btn-group.selected>.filter-selector.btn:first-child,.btn.btn-primary:active,.btn.btn-primary:hover,.btn.normal:hover,.modal-footer .btn:active,.modal-footer .btn:hover{color:#fff;border:1px solid #1b70a0;background-color:#1b70a0}.btn-group .filter-selector .caret{margin:8px 
 0 0 10px;border-top:4px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent}.btn-group.header-button{margin:4px 0 0;text-transform:none}.page-filters{padding:0;margin:10px 0}.dropdown-menu{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;z-index:102}.modal{position:fixed;top:10%;left:50%;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.3);*border:1px solid #999;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:0}.modal.fade{z-index:-200}.modal.fade.in{z-index:1050}.auto-update-container{padding:10px 0 0}.auto-updates{margin:0 10px 0 0}.super-help{font-size:9pt;vertical-align:super}.help_tooltip{font-size:9pt;text-transform:none}.helpButton{font-family:Helvetica,Arial,s
 ans-serif;font-size:13px;font-weight:300;padding:5px 8px;text-align:center;vertical-align:middle;color:#ffd6ca;border:1px solid #ffbfab;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;background-color:#ff3b00;width:110px;outline:0}.helpButton:hover{cursor:pointer;background-color:#FFB7A5;color:#dc3300;-webkit-transition:background-color .1s;-moz-transition:background-color .1s;-o-transition:background-color .1s;transition:background-color .1s}.helpButtonClicked{background-color:#FFB7A5;color:#dc3300;outline:0}.introjs-overlay{background:0 0;filter:none;-ms-filter:"alpha(Opacity=20)";filter:alpha(opacity=20);background-color:#fff;opacity:.2}.introjs-helperLayer{border-radius:0;box-shadow:none;border:1px solid rgba(0,0,0,.25)}.introjs-helperNumberLayer{top:-12px;left:-12px;font-family:"Open Sans",Arial,sans-serif;font-weight:400;border:0;filter:none;filter:none;box-shadow:none}.introjs-arrow{border:10px solid #fff}.introjs-arrow.top{top:-20px;border-bottom-color:#6d
 bce3}.introjs-arrow.right{right:-20px;top:20px;border-left-color:#6dbce3}.introjs-arrow.bottom{bottom:-20px;border-top-color:#6dbce3}.introjs-arrow.left{left:-20px;top:20px;border-right-color:#6dbce3}.introjs-arrow:before{border:10px solid #fff;content:'';position:absolute}.introjs-arrow.top:before{top:-8px;left:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#F0F8FC;border-left-color:transparent}.introjs-arrow.right:before{right:-7px;top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#F0F8FC}.introjs-arrow.bottom:before{bottom:-9px;left:-10px;border-top-color:#F0F8FC;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.introjs-arrow.left:before{left:-7px;top:-10px;border-top-color:transparent;border-right-color:#F0F8FC;border-bottom-color:transparent;border-left-color:transparent}.introjs-tooltip{background-color:#F0F8FC;border-radius:0
 ;border:1px solid #6dbce3;box-shadow:0 1px 7px rgba(0,0,0,.3)}.introjs-button{text-shadow:none;font:12px/normal sans-serif;color:#1f77a3;background-color:#F0F8FC;background-image:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #d4d4d4}.introjs-button:hover{font-family:"Open Sans",Arial,sans-serif}.introjs-button:active,.introjs-button:focus{text-decoration:none;outline:0}.introjs-skipbutton{color:#1f77a3;text-decoration:none;font-family:"Open Sans",Arial,sans-serif;margin-right:32px;border:1px solid #6dbce3}.introjs-nextbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px;margin-left:3px}.introjs-prevbutton{text-decoration:none;font-family:"Open Sans",Arial,sans-serif;width:40px}.introjs-nextbutton,.introjs-nextbutton:active,.introjs-nextbutton:focus,.introjs-nextbutton:hover{background-image:url(../img/introjs_arrow_step_next.png);background-position:45px 5px;background-repeat:no-repeat;text-align:left;border:1px s
 olid #6dbce3}.introjs-prevbutton,.introjs-prevbutton:active,.introjs-prevbutton:focus,.introjs-prevbutton:hover{background-image:url(../img/introjs_arrow_step_prev.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #6dbce3}.introjs-nextbutton.introjs-disabled,.introjs-nextbutton.introjs-disabled:active,.introjs-nextbutton.introjs-disabled:focus,.introjs-nextbutton.introjs-disabled:hover{background-image:url(../img/introjs_arrow_step_next_disabled.png);background-position:48px 5px;background-repeat:no-repeat;text-align:left;border:1px solid #d4d4d4}.introjs-prevbutton.introjs-disabled,.introjs-prevbutton.introjs-disabled:active,.introjs-prevbutton.introjs-disabled:focus,.introjs-prevbutton.introjs-disabled:hover{background-image:url(../img/introjs_arrow_step_prev_disabled.png);background-position:2px 5px;background-repeat:no-repeat;text-align:right;border:1px solid #d4d4d4}.introjs-disabled,.introjs-disabled:focus,.introjs-disabled:hover{co
 lor:gray;background-color:#F0F8FC}.introjs-tooltiptext{font-size:13px;line-height:19px}.introjstooltipheader{font-size:13px;line-height:19px;font-family:marquette-medium,'Helvetica Neue',Helvetica,Arial,sans-serif}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b73da256/portal/css/main.css
----------------------------------------------------------------------
diff --git a/portal/css/main.css b/portal/css/main.css
index 9c8ab5d..ffdaebb 100644
--- a/portal/css/main.css
+++ b/portal/css/main.css
@@ -1912,8 +1912,8 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-nextbutton:focus, 
 .introjs-nextbutton:active,
 .introjs-nextbutton:hover {
-  background-image: url("img/introjs_arrow_step_next.png");
-  background-position: 48px 5px;
+  background-image: url("../img/introjs_arrow_step_next.png");
+  background-position: 45px 5px;
   background-repeat: no-repeat;
   text-align: left;
   border: 1px solid #6dbce3;
@@ -1923,7 +1923,7 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-prevbutton:focus, 
 .introjs-prevbutton:active,
 .introjs-prevbutton:hover {
-  background-image: url("img/introjs_arrow_step_prev.png");
+  background-image: url("../img/introjs_arrow_step_prev.png");
   background-position: 2px 5px;
   background-repeat: no-repeat;
   text-align: right;
@@ -1934,7 +1934,7 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-nextbutton.introjs-disabled:active, 
 .introjs-nextbutton.introjs-disabled:hover, 
 .introjs-nextbutton.introjs-disabled:focus {
-  background-image: url("img/introjs_arrow_step_next_disabled.png");
+  background-image: url("../img/introjs_arrow_step_next_disabled.png");
   background-position: 48px 5px;
   background-repeat: no-repeat;
   text-align: left;
@@ -1945,7 +1945,7 @@ li.selected .btn.btn-primary.toolbar {
 .introjs-prevbutton.introjs-disabled:active, 
 .introjs-prevbutton.introjs-disabled:hover, 
 .introjs-prevbutton.introjs-disabled:focus {
-  background-image: url("img/introjs_arrow_step_prev_disabled.png");
+  background-image: url("../img/introjs_arrow_step_prev_disabled.png");
   background-position: 2px 5px;
   background-repeat: no-repeat;
   text-align: right;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b73da256/portal/js/usergrid-dev.min.js
----------------------------------------------------------------------
diff --git a/portal/js/usergrid-dev.min.js b/portal/js/usergrid-dev.min.js
index 6611d35..87fd017 100644
--- a/portal/js/usergrid-dev.min.js
+++ b/portal/js/usergrid-dev.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.1 2014-03-28 */
+/*! usergrid@2.0.1 2014-03-31 */
 (function(exports, global) {
     global["true"] = exports;
     "use strict";


[4/9] git commit: merging upstream

Posted by sn...@apache.org.
merging upstream


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/09611d5b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/09611d5b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/09611d5b

Branch: refs/heads/master
Commit: 09611d5b18358f9b1c26bf735f1e4a817130c825
Parents: b73da25 d5b6c97
Author: amuramoto <am...@apigee.com>
Authored: Mon Mar 31 13:18:10 2014 -0700
Committer: amuramoto <am...@apigee.com>
Committed: Mon Mar 31 13:18:10 2014 -0700

----------------------------------------------------------------------
 .gitignore                                      |     2 +-
 bower.json                                      |    39 +
 portal/Gruntfile.js                             |    61 +-
 portal/bower.json                               |    24 +-
 portal/config.js                                |    45 +-
 portal/dist/appsvc-ui.2.0.1.zip                 |   Bin 16937328 -> 0 bytes
 .../bower_components/angular-intro.js/LICENSE   |    20 +
 .../angular-intro.js/angular-intro.js           |    60 +
 .../angular-intro.js/bower.json                 |    20 +
 .../angular-intro.js/build/angular-intro.min.js |     1 +
 .../angular-intro.js/example/app.js             |    51 +
 .../angular-intro.js/lib/app.js                 |    49 +
 .../angular-intro.js/lib/intro.min.js           |    20 +
 .../angular-intro.js/lib/introjs.css            |   216 +
 .../2.0.2/bower_components/angular/README.md    |    48 +
 .../bower_components/angular/angular-csp.css    |    18 +
 .../2.0.2/bower_components/angular/angular.js   | 21734 +++++++++++
 .../bower_components/angular/angular.min.js     |   211 +
 .../angular/angular.min.js.gzip                 |   Bin 0 -> 38778 bytes
 .../bower_components/angular/angular.min.js.map |     8 +
 .../2.0.2/bower_components/angular/bower.json   |     7 +
 .../bower_components/angularitics/Gruntfile.js  |    62 +
 .../2.0.2/bower_components/angularitics/LICENSE |    22 +
 .../bower_components/angularitics/README.md     |   115 +
 .../bower_components/angularitics/bower.json    |    12 +
 .../dist/angulartics-chartbeat.min.js           |     7 +
 .../dist/angulartics-ga-cordova.min.js          |     6 +
 .../angularitics/dist/angulartics-ga.min.js     |     7 +
 .../dist/angulartics-google-analytics.min.js    |     7 +
 .../dist/angulartics-kissmetrics.min.js         |     6 +
 .../dist/angulartics-mixpanel.min.js            |     7 +
 .../angularitics/dist/angulartics-scroll.min.js |    14 +
 .../dist/angulartics-segmentio.min.js           |     6 +
 .../angularitics/dist/angulartics.min.js        |     6 +
 .../bower_components/angularitics/karma.conf.js |    22 +
 .../bower_components/angularitics/package.json  |    43 +
 .../angularitics/samples/chartbeat.html         |    79 +
 .../angularitics/samples/google-analytics.html  |    68 +
 .../angularitics/samples/kissmetrics.html       |    75 +
 .../angularitics/samples/mixpanel.html          |    65 +
 .../angularitics/samples/partials/a.tpl.html    |     1 +
 .../angularitics/samples/partials/b.tpl.html    |     1 +
 .../angularitics/samples/partials/c.tpl.html    |     1 +
 .../angularitics/samples/partials/root.tpl.html |     1 +
 .../angularitics/samples/scroll.html            |    82 +
 .../angularitics/samples/segmentio.html         |    65 +
 .../angularitics/src/angulartics-chartbeat.js   |    29 +
 .../angularitics/src/angulartics-ga-cordova.js  |    91 +
 .../angularitics/src/angulartics-ga.js          |    32 +
 .../angularitics/src/angulartics-kissmetrics.js |    29 +
 .../angularitics/src/angulartics-mixpanel.js    |    29 +
 .../angularitics/src/angulartics-scroll.js      |    47 +
 .../angularitics/src/angulartics-segmentio.js   |    24 +
 .../angularitics/src/angulartics.js             |   132 +
 .../angularitics/test/angularticsSpec.js        |    38 +
 .../2.0.2/bower_components/apigee-sdk/apigee.js |  3260 ++
 .../bower_components/apigee-sdk/apigee.min.js   |     3 +
 .../bower_components/apigee-sdk/bower.json      |    13 +
 .../samples/collections/css/apigee.min.css      |   213 +
 .../collections/css/jquery.mobile.icons.min.css |     3 +
 .../samples/collections/css/theme.min.css       |   213 +
 .../apigee-sdk/samples/collections/js/index.js  |   360 +
 .../entities/css/jquery.mobile.icons.min.css    |     3 +
 .../samples/entities/css/theme.min.css          |   213 +
 .../apigee-sdk/samples/entities/js/index.js     |   228 +
 .../geolocation/css/jquery.mobile.icons.min.css |     3 +
 .../samples/geolocation/css/theme.min.css       |   213 +
 .../apigee-sdk/samples/geolocation/js/index.js  |   133 +
 .../apigee-sdk/samples/messagee/app.js          |   634 +
 .../samples/messagee/usergrid.validation.js     |   249 +
 .../samples/push/android/AndroidManifest.xml    |    79 +
 .../samples/push/android/ant.properties         |    17 +
 .../push/android/assets/www/PushNotification.js |    65 +
 .../push/android/assets/www/cordova-2.7.0.js    |  6836 ++++
 .../push/android/assets/www/css/index.css       |   115 +
 .../push/android/assets/www/img/cordova.png     |   Bin 0 -> 19932 bytes
 .../push/android/assets/www/img/logo.png        |   Bin 0 -> 21814 bytes
 .../samples/push/android/assets/www/js/index.js |   241 +
 .../samples/push/android/assets/www/main.js     |   165 +
 .../samples/push/android/assets/www/master.css  |   116 +
 .../screen/android/screen-hdpi-landscape.png    |   Bin 0 -> 218302 bytes
 .../res/screen/android/screen-hdpi-portrait.png |   Bin 0 -> 222148 bytes
 .../screen/android/screen-ldpi-landscape.png    |   Bin 0 -> 42616 bytes
 .../res/screen/android/screen-ldpi-portrait.png |   Bin 0 -> 42034 bytes
 .../screen/android/screen-mdpi-landscape.png    |   Bin 0 -> 92347 bytes
 .../res/screen/android/screen-mdpi-portrait.png |   Bin 0 -> 90555 bytes
 .../screen/android/screen-xhdpi-landscape.png   |   Bin 0 -> 489604 bytes
 .../screen/android/screen-xhdpi-portrait.png    |   Bin 0 -> 504508 bytes
 .../samples/push/android/assets/www/spec.html   |    68 +
 .../push/android/assets/www/spec/helper.js      |    33 +
 .../push/android/assets/www/spec/index.js       |    67 +
 .../www/spec/lib/jasmine-1.2.0/MIT.LICENSE      |    20 +
 .../www/spec/lib/jasmine-1.2.0/jasmine-html.js  |   616 +
 .../www/spec/lib/jasmine-1.2.0/jasmine.css      |    81 +
 .../www/spec/lib/jasmine-1.2.0/jasmine.js       |  2529 ++
 .../apigee-sdk/samples/push/android/build.xml   |    92 +
 .../samples/push/android/cordova/appinfo.jar    |   Bin 0 -> 1574 bytes
 .../samples/push/android/cordova/build          |    24 +
 .../samples/push/android/cordova/clean          |    24 +
 .../samples/push/android/cordova/cordova        |   159 +
 .../apigee-sdk/samples/push/android/cordova/log |    24 +
 .../samples/push/android/cordova/release        |    24 +
 .../apigee-sdk/samples/push/android/cordova/run |    24 +
 .../push/android/libs/android-support-v13.jar   |   Bin 0 -> 402581 bytes
 .../samples/push/android/libs/cordova-2.7.0.jar |   Bin 0 -> 256941 bytes
 .../samples/push/android/libs/gcm.jar           |   Bin 0 -> 13662 bytes
 .../samples/push/android/proguard-project.txt   |    20 +
 .../samples/push/android/project.properties     |    14 +
 .../android/res/drawable-hdpi/ic_launcher.png   |   Bin 0 -> 9397 bytes
 .../push/android/res/drawable-hdpi/icon.png     |   Bin 0 -> 6080 bytes
 .../android/res/drawable-ldpi/ic_launcher.png   |   Bin 0 -> 2729 bytes
 .../push/android/res/drawable-ldpi/icon.png     |   Bin 0 -> 3096 bytes
 .../android/res/drawable-mdpi/ic_launcher.png   |   Bin 0 -> 5237 bytes
 .../push/android/res/drawable-mdpi/icon.png     |   Bin 0 -> 4090 bytes
 .../android/res/drawable-xhdpi/ic_launcher.png  |   Bin 0 -> 14383 bytes
 .../push/android/res/drawable-xhdpi/icon.png    |   Bin 0 -> 7685 bytes
 .../samples/push/android/res/drawable/icon.png  |   Bin 0 -> 7685 bytes
 .../samples/push/android/res/layout/main.xml    |    13 +
 .../samples/push/android/res/values/strings.xml |     4 +
 .../samples/push/android/res/xml/config.xml     |    62 +
 .../plugin/gcm/CordovaGCMBroadcastReceiver.java |    19 +
 .../src/com/plugin/gcm/GCMIntentService.java    |   163 +
 .../src/com/plugin/gcm/PushHandlerActivity.java |    66 +
 .../android/src/com/plugin/gcm/PushPlugin.java  |   216 +
 .../src/me/mdob/android/androidpush.java        |    36 +
 .../samples/push/ios/CordovaLib/Classes/CDV.h   |    57 +
 .../ios/CordovaLib/Classes/CDVAccelerometer.h   |    39 +
 .../ios/CordovaLib/Classes/CDVAccelerometer.m   |   128 +
 .../ios/CordovaLib/Classes/CDVAvailability.h    |    87 +
 .../push/ios/CordovaLib/Classes/CDVBattery.h    |    40 +
 .../push/ios/CordovaLib/Classes/CDVBattery.m    |   152 +
 .../push/ios/CordovaLib/Classes/CDVCamera.h     |    92 +
 .../push/ios/CordovaLib/Classes/CDVCamera.m     |   570 +
 .../push/ios/CordovaLib/Classes/CDVCapture.h    |   118 +
 .../push/ios/CordovaLib/Classes/CDVCapture.m    |   847 +
 .../ios/CordovaLib/Classes/CDVCommandDelegate.h |    54 +
 .../CordovaLib/Classes/CDVCommandDelegateImpl.h |    33 +
 .../CordovaLib/Classes/CDVCommandDelegateImpl.m |   145 +
 .../ios/CordovaLib/Classes/CDVCommandQueue.h    |    40 +
 .../ios/CordovaLib/Classes/CDVCommandQueue.m    |   169 +
 .../ios/CordovaLib/Classes/CDVConfigParser.h    |    28 +
 .../ios/CordovaLib/Classes/CDVConfigParser.m    |    70 +
 .../push/ios/CordovaLib/Classes/CDVConnection.h |    34 +
 .../push/ios/CordovaLib/Classes/CDVConnection.m |   132 +
 .../push/ios/CordovaLib/Classes/CDVContact.h    |   136 +
 .../push/ios/CordovaLib/Classes/CDVContact.m    |  1752 +
 .../push/ios/CordovaLib/Classes/CDVContacts.h   |   151 +
 .../push/ios/CordovaLib/Classes/CDVContacts.m   |   593 +
 .../push/ios/CordovaLib/Classes/CDVDebug.h      |    25 +
 .../ios/CordovaLib/Classes/CDVDebugConsole.h    |    28 +
 .../ios/CordovaLib/Classes/CDVDebugConsole.m    |    37 +
 .../push/ios/CordovaLib/Classes/CDVDevice.h     |    30 +
 .../push/ios/CordovaLib/Classes/CDVDevice.m     |    90 +
 .../push/ios/CordovaLib/Classes/CDVEcho.h       |    23 +
 .../push/ios/CordovaLib/Classes/CDVEcho.m       |    61 +
 .../push/ios/CordovaLib/Classes/CDVExif.h       |    43 +
 .../push/ios/CordovaLib/Classes/CDVFile.h       |   106 +
 .../push/ios/CordovaLib/Classes/CDVFile.m       |  1409 +
 .../ios/CordovaLib/Classes/CDVFileTransfer.h    |    74 +
 .../ios/CordovaLib/Classes/CDVFileTransfer.m    |   625 +
 .../ios/CordovaLib/Classes/CDVGlobalization.h   |   150 +
 .../ios/CordovaLib/Classes/CDVGlobalization.m   |   790 +
 .../ios/CordovaLib/Classes/CDVInAppBrowser.h    |    88 +
 .../ios/CordovaLib/Classes/CDVInAppBrowser.m    |   581 +
 .../CordovaLib/Classes/CDVInvokedUrlCommand.h   |    57 +
 .../CordovaLib/Classes/CDVInvokedUrlCommand.m   |   140 +
 .../push/ios/CordovaLib/Classes/CDVJSON.h       |    30 +
 .../push/ios/CordovaLib/Classes/CDVJSON.m       |    77 +
 .../CordovaLib/Classes/CDVJpegHeaderWriter.h    |    62 +
 .../CordovaLib/Classes/CDVJpegHeaderWriter.m    |   522 +
 .../ios/CordovaLib/Classes/CDVLocalStorage.h    |    50 +
 .../ios/CordovaLib/Classes/CDVLocalStorage.m    |   485 +
 .../push/ios/CordovaLib/Classes/CDVLocation.h   |   104 +
 .../push/ios/CordovaLib/Classes/CDVLocation.m   |   623 +
 .../push/ios/CordovaLib/Classes/CDVLogger.h     |    26 +
 .../push/ios/CordovaLib/Classes/CDVLogger.m     |    38 +
 .../ios/CordovaLib/Classes/CDVNotification.h    |    37 +
 .../ios/CordovaLib/Classes/CDVNotification.m    |   126 +
 .../push/ios/CordovaLib/Classes/CDVPlugin.h     |    64 +
 .../push/ios/CordovaLib/Classes/CDVPlugin.m     |   152 +
 .../ios/CordovaLib/Classes/CDVPluginResult.h    |    68 +
 .../ios/CordovaLib/Classes/CDVPluginResult.m    |   224 +
 .../ios/CordovaLib/Classes/CDVReachability.h    |    85 +
 .../ios/CordovaLib/Classes/CDVReachability.m    |   260 +
 .../Classes/CDVScreenOrientationDelegate.h      |    28 +
 .../push/ios/CordovaLib/Classes/CDVSound.h      |   116 +
 .../push/ios/CordovaLib/Classes/CDVSound.m      |   699 +
 .../ios/CordovaLib/Classes/CDVSplashScreen.h    |    33 +
 .../ios/CordovaLib/Classes/CDVSplashScreen.m    |   225 +
 .../ios/CordovaLib/Classes/CDVURLProtocol.h     |    29 +
 .../ios/CordovaLib/Classes/CDVURLProtocol.m     |   230 +
 .../ios/CordovaLib/Classes/CDVUserAgentUtil.h   |    27 +
 .../ios/CordovaLib/Classes/CDVUserAgentUtil.m   |   120 +
 .../ios/CordovaLib/Classes/CDVViewController.h  |    73 +
 .../ios/CordovaLib/Classes/CDVViewController.m  |   931 +
 .../ios/CordovaLib/Classes/CDVWebViewDelegate.h |    37 +
 .../ios/CordovaLib/Classes/CDVWebViewDelegate.m |   171 +
 .../push/ios/CordovaLib/Classes/CDVWhitelist.h  |    36 +
 .../push/ios/CordovaLib/Classes/CDVWhitelist.m  |   192 +
 .../CordovaLib/Classes/NSArray+Comparisons.h    |    26 +
 .../CordovaLib/Classes/NSArray+Comparisons.m    |    41 +
 .../push/ios/CordovaLib/Classes/NSData+Base64.h |    33 +
 .../push/ios/CordovaLib/Classes/NSData+Base64.m |   281 +
 .../Classes/NSDictionary+Extensions.h           |    35 +
 .../Classes/NSDictionary+Extensions.m           |   159 +
 .../Classes/NSMutableArray+QueueAdditions.h     |    29 +
 .../Classes/NSMutableArray+QueueAdditions.m     |    58 +
 .../CordovaLib/Classes/UIDevice+Extensions.h    |    31 +
 .../CordovaLib/Classes/UIDevice+Extensions.m    |    47 +
 .../Classes/compatibility/0.9.6/CDV.h           |    30 +
 .../Classes/compatibility/0.9.6/CDVPlugin.h     |    46 +
 .../Classes/compatibility/0.9.6/CDVPlugin.m     |    29 +
 .../Classes/compatibility/1.5.0/CDV.h           |    32 +
 .../Classes/compatibility/1.5.0/CDVPlugin.h     |    23 +
 .../CordovaLib/Classes/compatibility/README.txt |    23 +
 .../CordovaLib.xcodeproj/project.pbxproj        |   667 +
 .../push/ios/CordovaLib/CordovaLib_Prefix.pch   |    22 +
 .../samples/push/ios/CordovaLib/VERSION         |     1 +
 .../apigee-sdk/samples/push/ios/cordova/build   |    51 +
 .../apigee-sdk/samples/push/ios/cordova/emulate |    55 +
 .../apigee-sdk/samples/push/ios/cordova/log     |    23 +
 .../apigee-sdk/samples/push/ios/cordova/release |    51 +
 .../apigee-sdk/samples/push/ios/cordova/run     |    58 +
 .../push/ios/iospush.xcodeproj/project.pbxproj  |   623 +
 .../push/ios/iospush/Classes/AppDelegate.h      |    42 +
 .../push/ios/iospush/Classes/AppDelegate.m      |   122 +
 .../ios/iospush/Classes/MainViewController.h    |    40 +
 .../ios/iospush/Classes/MainViewController.m    |   174 +
 .../ios/iospush/Classes/MainViewController.xib  |   138 +
 .../iospush/Plugins/AppDelegate+notification.h  |    20 +
 .../iospush/Plugins/AppDelegate+notification.m  |   119 +
 .../push/ios/iospush/Plugins/PushPlugin.h       |    54 +
 .../push/ios/iospush/Plugins/PushPlugin.m       |   248 +
 .../samples/push/ios/iospush/Plugins/README     |    20 +
 .../Resources/Capture.bundle/controls_bg.png    |   Bin 0 -> 955 bytes
 .../Resources/Capture.bundle/controls_bg@2x.png |   Bin 0 -> 971 bytes
 .../Capture.bundle/controls_bg@2x~ipad.png      |   Bin 0 -> 2858 bytes
 .../Capture.bundle/controls_bg~ipad.png         |   Bin 0 -> 969 bytes
 .../microphone-568h@2x~iphone.png               |   Bin 0 -> 531673 bytes
 .../Resources/Capture.bundle/microphone.png     |   Bin 0 -> 72226 bytes
 .../Resources/Capture.bundle/microphone@2x.png  |   Bin 0 -> 282409 bytes
 .../Capture.bundle/microphone@2x~ipad.png       |   Bin 0 -> 911582 bytes
 .../Capture.bundle/microphone~ipad.png          |   Bin 0 -> 393975 bytes
 .../Resources/Capture.bundle/record_button.png  |   Bin 0 -> 5852 bytes
 .../Capture.bundle/record_button@2x.png         |   Bin 0 -> 13875 bytes
 .../Capture.bundle/record_button@2x~ipad.png    |   Bin 0 -> 15822 bytes
 .../Capture.bundle/record_button~ipad.png       |   Bin 0 -> 7547 bytes
 .../Resources/Capture.bundle/recording_bg.png   |   Bin 0 -> 973 bytes
 .../Capture.bundle/recording_bg@2x.png          |   Bin 0 -> 990 bytes
 .../Capture.bundle/recording_bg@2x~ipad.png     |   Bin 0 -> 1026 bytes
 .../Capture.bundle/recording_bg~ipad.png        |   Bin 0 -> 996 bytes
 .../Resources/Capture.bundle/stop_button.png    |   Bin 0 -> 5514 bytes
 .../Resources/Capture.bundle/stop_button@2x.png |   Bin 0 -> 12965 bytes
 .../Capture.bundle/stop_button@2x~ipad.png      |   Bin 0 -> 14474 bytes
 .../Capture.bundle/stop_button~ipad.png         |   Bin 0 -> 7119 bytes
 .../Resources/de.lproj/Localizable.strings      |    26 +
 .../Resources/en.lproj/Localizable.strings      |    25 +
 .../Resources/es.lproj/Localizable.strings      |    25 +
 .../ios/iospush/Resources/icons/icon-72.png     |   Bin 0 -> 4944 bytes
 .../ios/iospush/Resources/icons/icon-72@2x.png  |   Bin 0 -> 11706 bytes
 .../push/ios/iospush/Resources/icons/icon.png   |   Bin 0 -> 3902 bytes
 .../ios/iospush/Resources/icons/icon@2x.png     |   Bin 0 -> 7869 bytes
 .../Resources/se.lproj/Localizable.strings      |    26 +
 .../Resources/splash/Default-568h@2x~iphone.png |   Bin 0 -> 34225 bytes
 .../splash/Default-Landscape@2x~ipad.png        |   Bin 0 -> 77300 bytes
 .../Resources/splash/Default-Landscape~ipad.png |   Bin 0 -> 34935 bytes
 .../splash/Default-Portrait@2x~ipad.png         |   Bin 0 -> 76546 bytes
 .../Resources/splash/Default-Portrait~ipad.png  |   Bin 0 -> 34278 bytes
 .../Resources/splash/Default@2x~iphone.png      |   Bin 0 -> 29475 bytes
 .../iospush/Resources/splash/Default~iphone.png |   Bin 0 -> 10394 bytes
 .../samples/push/ios/iospush/config.xml         |    65 +
 .../samples/push/ios/iospush/iospush-Info.plist |    78 +
 .../samples/push/ios/iospush/iospush-Prefix.pch |    26 +
 .../apigee-sdk/samples/push/ios/iospush/main.m  |    35 +
 .../samples/push/ios/www/PushNotification.js    |    65 +
 .../samples/push/ios/www/cordova-2.6.0.js       |  6433 ++++
 .../samples/push/ios/www/css/index.css          |   115 +
 .../samples/push/ios/www/img/logo.png           |   Bin 0 -> 21814 bytes
 .../apigee-sdk/samples/push/ios/www/js/index.js |   217 +
 .../res/screen/ios/screen-ipad-landscape-2x.png |   Bin 0 -> 1534088 bytes
 .../res/screen/ios/screen-ipad-landscape.png    |   Bin 0 -> 407370 bytes
 .../res/screen/ios/screen-ipad-portrait-2x.png  |   Bin 0 -> 1610434 bytes
 .../www/res/screen/ios/screen-ipad-portrait.png |   Bin 0 -> 422441 bytes
 .../screen/ios/screen-iphone-landscape-2x.png   |   Bin 0 -> 339639 bytes
 .../res/screen/ios/screen-iphone-landscape.png  |   Bin 0 -> 92301 bytes
 .../screen/ios/screen-iphone-portrait-2x.png    |   Bin 0 -> 350593 bytes
 .../res/screen/ios/screen-iphone-portrait.png   |   Bin 0 -> 93897 bytes
 .../apigee-sdk/samples/push/ios/www/spec.html   |    68 +
 .../samples/push/ios/www/spec/helper.js         |    33 +
 .../samples/push/ios/www/spec/index.js          |    67 +
 .../ios/www/spec/lib/jasmine-1.2.0/MIT.LICENSE  |    20 +
 .../www/spec/lib/jasmine-1.2.0/jasmine-html.js  |   616 +
 .../ios/www/spec/lib/jasmine-1.2.0/jasmine.css  |    81 +
 .../ios/www/spec/lib/jasmine-1.2.0/jasmine.js   |  2529 ++
 .../samples/usersAndGroups/README.txt           |    22 +
 .../usersAndGroups/css/codiqa.ext.min.css       |     1 +
 .../usersAndGroups/css/images/ajax-loader.gif   |   Bin 0 -> 7825 bytes
 .../css/images/icons-18-black.png               |   Bin 0 -> 1968 bytes
 .../css/images/icons-18-white.png               |   Bin 0 -> 1988 bytes
 .../css/images/icons-36-black.png               |   Bin 0 -> 3859 bytes
 .../css/images/icons-36-white.png               |   Bin 0 -> 3861 bytes
 .../css/jquery.mobile-1.3.1.min.css             |     3 +
 .../samples/usersAndGroups/js/codiqa.ext.min.js |     6 +
 .../samples/usersAndGroups/js/index.js          |   345 +
 .../usersAndGroups/js/jquery-1.9.1.min.js       |     5 +
 .../js/jquery.mobile-1.3.1.min.js               |     7 +
 .../bower_components/apigee.max.ui/bower.json   |    19 +
 .../apigee.max.ui/dist/css/max.min.css          |     1 +
 .../apigee.max.ui/dist/img/no-data1.png         |   Bin 0 -> 45300 bytes
 .../apigee.max.ui/dist/img/phone-small.gif      |   Bin 0 -> 1300 bytes
 .../apigee.max.ui/dist/img/tablet-small.gif     |   Bin 0 -> 1390 bytes
 .../apigee.max.ui/dist/js/max-dev.min.js        |  1781 +
 .../apigee.max.ui/dist/js/max.min.js            |     4 +
 .../bower_components/intro.js/BUILD/BUILD.js    |    43 +
 .../2.0.2/bower_components/intro.js/Makefile    |     6 +
 .../2.0.2/bower_components/intro.js/README.md   |   487 +
 .../2.0.2/bower_components/intro.js/bower.json  |     9 +
 .../bower_components/intro.js/component.json    |    13 +
 .../2.0.2/bower_components/intro.js/intro.js    |   940 +
 .../bower_components/intro.js/introjs-rtl.css   |    22 +
 .../2.0.2/bower_components/intro.js/introjs.css |   248 +
 .../intro.js/minified/intro.min.js              |    24 +
 .../intro.js/minified/introjs-rtl.min.css       |     1 +
 .../intro.js/minified/introjs.min.css           |     1 +
 .../bower_components/intro.js/package.json      |    17 +
 .../jquery-waypoints/CHANGELOG.md               |    92 +
 .../jquery-waypoints/README.markdown            |    47 +
 .../jquery-waypoints/bower.json                 |    19 +
 .../jquery-waypoints/licenses.txt               |    23 +
 .../jquery-waypoints/package.json               |    19 +
 .../infinite-scroll/waypoints-infinite.js       |    67 +
 .../infinite-scroll/waypoints-infinite.min.js   |     8 +
 .../sticky-elements/waypoints-sticky.js         |    55 +
 .../sticky-elements/waypoints-sticky.min.js     |     8 +
 .../jquery-waypoints/waypoints.js               |   520 +
 .../jquery-waypoints/waypoints.min.js           |     8 +
 .../bower_components/jquery/MIT-LICENSE.txt     |    21 +
 .../2.0.2/bower_components/jquery/bower.json    |    27 +
 .../bower_components/jquery/dist/jquery.js      |  9174 +++++
 .../bower_components/jquery/dist/jquery.min.js  |     5 +
 .../bower_components/jquery/dist/jquery.min.map |     1 +
 .../2.0.2/bower_components/jquery/src/ajax.js   |   806 +
 .../bower_components/jquery/src/ajax/jsonp.js   |    89 +
 .../bower_components/jquery/src/ajax/load.js    |    75 +
 .../jquery/src/ajax/parseJSON.js                |    13 +
 .../jquery/src/ajax/parseXML.js                 |    28 +
 .../bower_components/jquery/src/ajax/script.js  |    64 +
 .../jquery/src/ajax/var/nonce.js                |     5 +
 .../jquery/src/ajax/var/rquery.js               |     3 +
 .../bower_components/jquery/src/ajax/xhr.js     |   135 +
 .../bower_components/jquery/src/attributes.js   |    11 +
 .../jquery/src/attributes/attr.js               |   143 +
 .../jquery/src/attributes/classes.js            |   158 +
 .../jquery/src/attributes/prop.js               |    96 +
 .../jquery/src/attributes/support.js            |    35 +
 .../jquery/src/attributes/val.js                |   163 +
 .../bower_components/jquery/src/callbacks.js    |   205 +
 .../2.0.2/bower_components/jquery/src/core.js   |   498 +
 .../bower_components/jquery/src/core/access.js  |    60 +
 .../bower_components/jquery/src/core/init.js    |   123 +
 .../jquery/src/core/parseHTML.js                |    39 +
 .../bower_components/jquery/src/core/ready.js   |    97 +
 .../jquery/src/core/var/rsingleTag.js           |     4 +
 .../2.0.2/bower_components/jquery/src/css.js    |   451 +
 .../jquery/src/css/addGetHookIf.js              |    24 +
 .../bower_components/jquery/src/css/curCSS.js   |    57 +
 .../jquery/src/css/defaultDisplay.js            |    70 +
 .../jquery/src/css/hiddenVisibleSelectors.js    |    15 +
 .../bower_components/jquery/src/css/support.js  |    91 +
 .../bower_components/jquery/src/css/swap.js     |    28 +
 .../jquery/src/css/var/cssExpand.js             |     3 +
 .../jquery/src/css/var/getStyles.js             |     5 +
 .../jquery/src/css/var/isHidden.js              |    13 +
 .../jquery/src/css/var/rmargin.js               |     3 +
 .../jquery/src/css/var/rnumnonpx.js             |     5 +
 .../2.0.2/bower_components/jquery/src/data.js   |   175 +
 .../bower_components/jquery/src/data/Data.js    |   181 +
 .../bower_components/jquery/src/data/accepts.js |    20 +
 .../jquery/src/data/var/data_priv.js            |     5 +
 .../jquery/src/data/var/data_user.js            |     5 +
 .../bower_components/jquery/src/deferred.js     |   149 +
 .../bower_components/jquery/src/deprecated.js   |    13 +
 .../bower_components/jquery/src/dimensions.js   |    50 +
 .../bower_components/jquery/src/effects.js      |   647 +
 .../jquery/src/effects/Tween.js                 |   114 +
 .../jquery/src/effects/animatedSelector.js      |    13 +
 .../2.0.2/bower_components/jquery/src/event.js  |   868 +
 .../bower_components/jquery/src/event/alias.js  |    39 +
 .../jquery/src/event/support.js                 |     9 +
 .../bower_components/jquery/src/exports/amd.js  |    24 +
 .../jquery/src/exports/global.js                |    32 +
 .../2.0.2/bower_components/jquery/src/intro.js  |    44 +
 .../2.0.2/bower_components/jquery/src/jquery.js |    36 +
 .../bower_components/jquery/src/manipulation.js |   582 +
 .../jquery/src/manipulation/_evalUrl.js         |    18 +
 .../jquery/src/manipulation/support.js          |    31 +
 .../src/manipulation/var/rcheckableType.js      |     3 +
 .../2.0.2/bower_components/jquery/src/offset.js |   204 +
 .../2.0.2/bower_components/jquery/src/outro.js  |     1 +
 .../2.0.2/bower_components/jquery/src/queue.js  |   142 +
 .../bower_components/jquery/src/queue/delay.js  |    22 +
 .../jquery/src/selector-native.js               |   172 +
 .../jquery/src/selector-sizzle.js               |    14 +
 .../bower_components/jquery/src/selector.js     |     1 +
 .../bower_components/jquery/src/serialize.js    |   111 +
 .../jquery/src/sizzle/dist/sizzle.js            |  2034 ++
 .../jquery/src/sizzle/dist/sizzle.min.js        |     3 +
 .../jquery/src/sizzle/dist/sizzle.min.map       |     1 +
 .../bower_components/jquery/src/traversing.js   |   200 +
 .../jquery/src/traversing/findFilter.js         |   100 +
 .../jquery/src/traversing/var/rneedsContext.js  |     6 +
 .../bower_components/jquery/src/var/arr.js      |     3 +
 .../jquery/src/var/class2type.js                |     4 +
 .../bower_components/jquery/src/var/concat.js   |     5 +
 .../bower_components/jquery/src/var/hasOwn.js   |     5 +
 .../bower_components/jquery/src/var/indexOf.js  |     5 +
 .../bower_components/jquery/src/var/pnum.js     |     3 +
 .../bower_components/jquery/src/var/push.js     |     5 +
 .../jquery/src/var/rnotwhite.js                 |     3 +
 .../bower_components/jquery/src/var/slice.js    |     5 +
 .../jquery/src/var/strundefined.js              |     3 +
 .../bower_components/jquery/src/var/support.js  |     4 +
 .../bower_components/jquery/src/var/toString.js |     5 +
 .../bower_components/jquery/src/var/trim.js     |     3 +
 .../2.0.2/bower_components/jquery/src/wrap.js   |    78 +
 .../bower_components/sizzle/dist/sizzle.js      |  2015 +
 .../bower_components/sizzle/dist/sizzle.min.js  |     3 +
 .../bower_components/sizzle/dist/sizzle.min.map |     1 +
 .../bower_components/sizzle/tasks/commit.js     |    10 +
 .../bower_components/sizzle/tasks/compile.js    |    34 +
 .../2.0.2/bower_components/sizzle/tasks/dist.js |    35 +
 .../bower_components/sizzle/tasks/release.js    |    43 +
 .../2.0.2/bower_components/sizzle/tasks/tag.js  |     9 +
 .../bower_components/sizzle/tasks/version.js    |    35 +
 .../bower_components/sizzle/test/data/empty.js  |     0
 .../sizzle/test/data/mixed_sort.html            |    22 +
 .../sizzle/test/data/testinit.js                |   136 +
 .../bower_components/sizzle/test/jquery.js      |  9597 +++++
 .../sizzle/test/libs/qunit/qunit.css            |   244 +
 .../sizzle/test/libs/qunit/qunit.js             |  2212 ++
 .../sizzle/test/unit/extending.js               |    95 +
 .../sizzle/test/unit/selector.js                |  1138 +
 .../sizzle/test/unit/utilities.js               |   169 +
 .../2.0.2/css/apigeeGlobalNavigation.css        |   274 +
 .../css/arsmarquette/ARSMaquettePro-Light.otf   |   Bin 0 -> 184600 bytes
 .../css/arsmarquette/ARSMaquettePro-Medium.otf  |   Bin 0 -> 188020 bytes
 .../css/arsmarquette/ARSMaquettePro-Regular.otf |   Bin 0 -> 188096 bytes
 portal/dist/appsvc-ui/2.0.2/css/dash.min.css    |     1 +
 .../dist/appsvc-ui/2.0.2/css/entypo/entypo.eot  |   Bin 0 -> 35540 bytes
 .../dist/appsvc-ui/2.0.2/css/entypo/entypo.svg  |    13 +
 .../dist/appsvc-ui/2.0.2/css/entypo/entypo.ttf  |   Bin 0 -> 35392 bytes
 .../dist/appsvc-ui/2.0.2/css/entypo/entypo.woff |   Bin 0 -> 21916 bytes
 portal/dist/appsvc-ui/2.0.2/css/main.css        |  1970 +
 .../2.0.2/img/appswitcher/apiPlatform_lg.png    |   Bin 0 -> 2397 bytes
 .../2.0.2/img/appswitcher/appServices_lg.png    |   Bin 0 -> 2295 bytes
 .../2.0.2/img/appswitcher/console_lg.png        |   Bin 0 -> 1453 bytes
 .../appsvc-ui/2.0.2/img/appswitcher/home_lg.png |   Bin 0 -> 1522 bytes
 .../2.0.2/img/appswitcher/logo_color.png        |   Bin 0 -> 3459 bytes
 .../appsvc-ui/2.0.2/img/appswitcher/max_lg.png  |   Bin 0 -> 1970 bytes
 .../img/appswitcher/triangleMenuItem_right.png  |   Bin 0 -> 1158 bytes
 .../triangleMenuItem_right_hover.png            |   Bin 0 -> 1169 bytes
 portal/dist/appsvc-ui/2.0.2/img/blue-bars.png   |   Bin 0 -> 3635 bytes
 portal/dist/appsvc-ui/2.0.2/img/blue-bolt.png   |   Bin 0 -> 3942 bytes
 portal/dist/appsvc-ui/2.0.2/img/blue-carat.png  |   Bin 0 -> 1006 bytes
 portal/dist/appsvc-ui/2.0.2/img/green_dot.png   |   Bin 0 -> 3472 bytes
 .../2.0.2/img/introjs_arrow_step_next.png       |   Bin 0 -> 219 bytes
 .../img/introjs_arrow_step_next_disabled.png    |   Bin 0 -> 220 bytes
 .../2.0.2/img/introjs_arrow_step_prev.png       |   Bin 0 -> 217 bytes
 .../img/introjs_arrow_step_prev_disabled.png    |   Bin 0 -> 218 bytes
 .../dist/appsvc-ui/2.0.2/img/introjs_close.png  |   Bin 0 -> 274 bytes
 portal/dist/appsvc-ui/2.0.2/img/logo.gif        |   Bin 0 -> 2279 bytes
 portal/dist/appsvc-ui/2.0.2/img/nav-device.gif  |   Bin 0 -> 2184 bytes
 portal/dist/appsvc-ui/2.0.2/img/nav-sprites.png |   Bin 0 -> 7953 bytes
 portal/dist/appsvc-ui/2.0.2/img/no-data1.png    |   Bin 0 -> 45300 bytes
 portal/dist/appsvc-ui/2.0.2/img/phone-small.gif |   Bin 0 -> 1300 bytes
 .../2.0.2/img/push/APNS_cert_upload.png         |   Bin 0 -> 33956 bytes
 .../2.0.2/img/push/APNS_certification.png       |   Bin 0 -> 16855 bytes
 .../2.0.2/img/push/android-notification.png     |   Bin 0 -> 41629 bytes
 .../appsvc-ui/2.0.2/img/push/google_api_key.png |   Bin 0 -> 98118 bytes
 .../appsvc-ui/2.0.2/img/push/iphone_message.png |   Bin 0 -> 90307 bytes
 portal/dist/appsvc-ui/2.0.2/img/push/step_1.png |   Bin 0 -> 1953 bytes
 portal/dist/appsvc-ui/2.0.2/img/push/step_2.png |   Bin 0 -> 2117 bytes
 portal/dist/appsvc-ui/2.0.2/img/push/step_3.png |   Bin 0 -> 2162 bytes
 portal/dist/appsvc-ui/2.0.2/img/red_dot.png     |   Bin 0 -> 3482 bytes
 .../appsvc-ui/2.0.2/img/sdk-sprites-large.png   |   Bin 0 -> 14642 bytes
 portal/dist/appsvc-ui/2.0.2/img/sdk-sprites.png |   Bin 0 -> 5027 bytes
 .../dist/appsvc-ui/2.0.2/img/tablet-small.gif   |   Bin 0 -> 1390 bytes
 portal/dist/appsvc-ui/2.0.2/img/user-photo.png  |   Bin 0 -> 3849 bytes
 .../dist/appsvc-ui/2.0.2/img/user_profile.png   |   Bin 0 -> 3775 bytes
 portal/dist/appsvc-ui/2.0.2/img/verify.png      |   Bin 0 -> 22934 bytes
 portal/dist/appsvc-ui/2.0.2/img/yellow_dot.png  |   Bin 0 -> 3475 bytes
 .../2.0.2/js/libs/Highcharts-2.3.5/index.htm    |    79 +
 .../js/adapters/mootools-adapter.js             |    13 +
 .../js/adapters/mootools-adapter.src.js         |   328 +
 .../js/adapters/prototype-adapter.js            |    16 +
 .../js/adapters/prototype-adapter.src.js        |   385 +
 .../libs/Highcharts-2.3.5/js/highcharts-more.js |    35 +
 .../Highcharts-2.3.5/js/highcharts-more.src.js  |  1581 +
 .../js/libs/Highcharts-2.3.5/js/highcharts.js   |   250 +
 .../libs/Highcharts-2.3.5/js/highcharts.src.js  | 15281 ++++++++
 .../Highcharts-2.3.5/js/modules/canvas-tools.js |   133 +
 .../js/modules/canvas-tools.src.js              |  3113 ++
 .../js/libs/Highcharts-2.3.5/js/modules/data.js |    14 +
 .../Highcharts-2.3.5/js/modules/data.src.js     |   512 +
 .../Highcharts-2.3.5/js/modules/exporting.js    |    23 +
 .../js/modules/exporting.src.js                 |   752 +
 .../Highcharts-2.3.5/js/themes/dark-blue.js     |   263 +
 .../Highcharts-2.3.5/js/themes/dark-green.js    |   263 +
 .../js/libs/Highcharts-2.3.5/js/themes/gray.js  |   262 +
 .../js/libs/Highcharts-2.3.5/js/themes/grid.js  |    95 +
 .../js/libs/Highcharts-2.3.5/js/themes/skies.js |    89 +
 portal/dist/appsvc-ui/2.0.2/js/libs/MD5.min.js  |     1 +
 .../js/libs/angular-1.0.5/angular-cookies.js    |   183 +
 .../libs/angular-1.0.5/angular-cookies.min.js   |     7 +
 .../js/libs/angular-1.0.5/angular-loader.js     |   276 +
 .../js/libs/angular-1.0.5/angular-loader.min.js |     7 +
 .../js/libs/angular-1.0.5/angular-mocks.js      |  1886 +
 .../js/libs/angular-1.0.5/angular-resource.js   |   445 +
 .../libs/angular-1.0.5/angular-resource.min.js  |    10 +
 .../js/libs/angular-1.0.5/angular-sanitize.js   |   535 +
 .../libs/angular-1.0.5/angular-sanitize.min.js  |    13 +
 .../2.0.2/js/libs/angular-1.0.5/angular.js      | 14733 ++++++++
 .../2.0.2/js/libs/angular-1.0.5/angular.min.js  |   161 +
 .../2.0.2/js/libs/angular-1.0.5/version.txt     |     1 +
 .../js/libs/angular-1.1.5/angular-1.1.5.js      | 16876 +++++++++
 .../js/libs/angular-1.1.5/angular-merge.min.js  |     8 +
 .../angular-1.1.5/angular-resource-1.1.5.js     |   537 +
 .../js/libs/angular-1.2.5/angular-animate.js    |  1323 +
 .../libs/angular-1.2.5/angular-animate.min.js   |    23 +
 .../angular-1.2.5/angular-animate.min.js.map    |     8 +
 .../js/libs/angular-1.2.5/angular-cookies.js    |   202 +
 .../libs/angular-1.2.5/angular-cookies.min.js   |     8 +
 .../angular-1.2.5/angular-cookies.min.js.map    |     8 +
 .../2.0.2/js/libs/angular-1.2.5/angular-csp.css |    24 +
 .../js/libs/angular-1.2.5/angular-loader.js     |   410 +
 .../js/libs/angular-1.2.5/angular-loader.min.js |     9 +
 .../angular-1.2.5/angular-loader.min.js.map     |     8 +
 .../js/libs/angular-1.2.5/angular-mocks.js      |  2116 ++
 .../js/libs/angular-1.2.5/angular-resource.js   |   565 +
 .../libs/angular-1.2.5/angular-resource.min.js  |    13 +
 .../angular-1.2.5/angular-resource.min.js.map   |     8 +
 .../js/libs/angular-1.2.5/angular-route.js      |   911 +
 .../js/libs/angular-1.2.5/angular-route.min.js  |    14 +
 .../libs/angular-1.2.5/angular-route.min.js.map |     8 +
 .../js/libs/angular-1.2.5/angular-sanitize.js   |   622 +
 .../libs/angular-1.2.5/angular-sanitize.min.js  |    14 +
 .../angular-1.2.5/angular-sanitize.min.js.map   |     8 +
 .../js/libs/angular-1.2.5/angular-scenario.js   | 32374 +++++++++++++++++
 .../js/libs/angular-1.2.5/angular-touch.js      |   563 +
 .../js/libs/angular-1.2.5/angular-touch.min.js  |    13 +
 .../libs/angular-1.2.5/angular-touch.min.js.map |     8 +
 .../2.0.2/js/libs/angular-1.2.5/angular.js      | 20369 +++++++++++
 .../2.0.2/js/libs/angular-1.2.5/angular.min.js  |   201 +
 .../js/libs/angular-1.2.5/angular.min.js.map    |     8 +
 .../2.0.2/js/libs/angular-1.2.5/errors.json     |     1 +
 .../2.0.2/js/libs/angular-1.2.5/version.json    |     1 +
 .../2.0.2/js/libs/angular-1.2.5/version.txt     |     1 +
 .../angularitics-0.8.5-google-analytics.js      |     7 +
 .../js/libs/angularitics/angularitics-0.8.5.js  |     6 +
 .../libs/bootstrap/css/bootstrap-responsive.css |  1345 +
 .../bootstrap/css/bootstrap-responsive.min.css  |  1245 +
 .../2.0.2/js/libs/bootstrap/css/bootstrap.css   |  6169 ++++
 .../js/libs/bootstrap/css/bootstrap.min.css     |  5469 +++
 .../js/libs/bootstrap/custom/css/bootstrap.css  |  6316 ++++
 .../libs/bootstrap/custom/css/bootstrap.min.css |     9 +
 .../custom/img/glyphicons-halflings-white.png   |   Bin 0 -> 8777 bytes
 .../custom/img/glyphicons-halflings.png         |   Bin 0 -> 12799 bytes
 .../js/libs/bootstrap/custom/js/bootstrap.js    |  2291 ++
 .../libs/bootstrap/custom/js/bootstrap.min.js   |     7 +
 .../img/glyphicons-halflings-white.png          |   Bin 0 -> 8777 bytes
 .../libs/bootstrap/img/glyphicons-halflings.png |   Bin 0 -> 12799 bytes
 .../2.0.2/js/libs/bootstrap/js/bootstrap.js     |  2117 ++
 .../2.0.2/js/libs/bootstrap/js/bootstrap.min.js |   644 +
 .../appsvc-ui/2.0.2/js/libs/google-viz-api.js   |    49 +
 .../2.0.2/js/libs/jquery/jquery-1.9.1.min.js    |     5 +
 .../js/libs/jquery/jquery-migrate-1.1.1.min.js  |     3 +
 .../js/libs/jquery/jquery.sparkline.min.js      |     5 +
 .../2.0.2/js/libs/jqueryui/date.min.js          |     2 +
 .../ui-bg_diagonals-thick_90_eeeeee_40x40.png   |   Bin 0 -> 251 bytes
 .../images/ui-bg_flat_100_deedf7_40x100.png     |   Bin 0 -> 182 bytes
 .../images/ui-bg_flat_100_e4f1fb_40x100.png     |   Bin 0 -> 213 bytes
 .../images/ui-bg_flat_100_f2f5f7_40x100.png     |   Bin 0 -> 212 bytes
 .../images/ui-bg_flat_15_cd0a0a_40x100.png      |   Bin 0 -> 181 bytes
 .../images/ui-bg_flat_50_3baae3_40x100.png      |   Bin 0 -> 182 bytes
 .../images/ui-bg_flat_80_d7ebf9_40x100.png      |   Bin 0 -> 183 bytes
 .../ui-bg_highlight-hard_70_000000_1x100.png    |   Bin 0 -> 118 bytes
 .../ui-bg_highlight-soft_25_ffef8f_1x100.png    |   Bin 0 -> 153 bytes
 .../jqueryui/images/ui-icons_000000_256x240.png |   Bin 0 -> 4369 bytes
 .../jqueryui/images/ui-icons_2694e8_256x240.png |   Bin 0 -> 4369 bytes
 .../jqueryui/images/ui-icons_2e83ff_256x240.png |   Bin 0 -> 4369 bytes
 .../jqueryui/images/ui-icons_3d80b3_256x240.png |   Bin 0 -> 4369 bytes
 .../jqueryui/images/ui-icons_72a7cf_256x240.png |   Bin 0 -> 4369 bytes
 .../jqueryui/images/ui-icons_ffffff_256x240.png |   Bin 0 -> 4369 bytes
 .../js/libs/jqueryui/jquery-ui-1.8.18.min.js    |    15 +
 .../js/libs/jqueryui/jquery-ui-1.8.9.custom.css |     1 +
 .../js/libs/jqueryui/jquery-ui-timepicker.css   |     1 +
 .../libs/jqueryui/jquery.ui.timepicker.min.js   |     1 +
 .../ui-bootstrap-custom-0.3.0.min.js            |     1 +
 .../ui-bootstrap-custom-tpls-0.3.0.min.js       |     1 +
 .../2.0.2/js/libs/usergrid-libs.min.js          |    22 +
 .../appsvc-ui/2.0.2/js/libs/usergrid.sdk.js     |  2474 ++
 .../dist/appsvc-ui/2.0.2/js/usergrid-dev.min.js |  4939 +++
 portal/dist/appsvc-ui/2.0.2/js/usergrid.min.js  |     6 +
 portal/dist/appsvc-ui/archive/coming_soon.html  |    31 +
 .../ui-bg_diagonals-thick_90_eeeeee_40x40.png   |   Bin 0 -> 251 bytes
 .../images/ui-bg_flat_100_deedf7_40x100.png     |   Bin 0 -> 182 bytes
 .../images/ui-bg_flat_100_e4f1fb_40x100.png     |   Bin 0 -> 213 bytes
 .../images/ui-bg_flat_100_f2f5f7_40x100.png     |   Bin 0 -> 212 bytes
 .../images/ui-bg_flat_15_cd0a0a_40x100.png      |   Bin 0 -> 181 bytes
 .../images/ui-bg_flat_50_3baae3_40x100.png      |   Bin 0 -> 182 bytes
 .../images/ui-bg_flat_80_d7ebf9_40x100.png      |   Bin 0 -> 183 bytes
 .../ui-bg_highlight-hard_70_000000_1x100.png    |   Bin 0 -> 118 bytes
 .../ui-bg_highlight-soft_25_ffef8f_1x100.png    |   Bin 0 -> 153 bytes
 .../images/ui-icons_000000_256x240.png          |   Bin 0 -> 4369 bytes
 .../images/ui-icons_2694e8_256x240.png          |   Bin 0 -> 4369 bytes
 .../images/ui-icons_2e83ff_256x240.png          |   Bin 0 -> 4369 bytes
 .../images/ui-icons_3d80b3_256x240.png          |   Bin 0 -> 4369 bytes
 .../images/ui-icons_72a7cf_256x240.png          |   Bin 0 -> 4369 bytes
 .../images/ui-icons_ffffff_256x240.png          |   Bin 0 -> 4369 bytes
 .../css/custom-theme/jquery-ui-1.8.9.custom.css |   573 +
 .../archive/css/jquery-ui-timepicker.css        |    53 +
 .../archive/css/jquery.ui.statusbar.css         |    25 +
 portal/dist/appsvc-ui/archive/css/prettify.css  |    52 +
 .../appsvc-ui/archive/css/usergrid-stripped.css |  5199 +++
 portal/dist/appsvc-ui/archive/css/usergrid.css  |  5203 +++
 portal/dist/appsvc-ui/archive/dash/README.md    |     3 +
 .../archive/dash/config/testacular-e2e.conf.js  |    22 +
 .../archive/dash/config/testacular.conf.js      |    20 +
 .../appsvc-ui/archive/dash/test/e2e/runner.html |    10 +
 .../archive/dash/test/e2e/scenarios.js          |    45 +
 .../dash/test/lib/angular/angular-mocks.js      |  1764 +
 .../dash/test/lib/angular/angular-scenario.js   | 26195 +++++++++++++
 .../archive/dash/test/lib/angular/version.txt   |     1 +
 .../archive/dash/test/unit/controllersSpec.js   |    31 +
 .../archive/dash/test/unit/directivesSpec.js    |    19 +
 .../archive/dash/test/unit/filtersSpec.js       |    19 +
 .../archive/dash/test/unit/servicesSpec.js      |    14 +
 .../archive/images/APNS_cert_upload.png         |   Bin 0 -> 33956 bytes
 .../archive/images/APNS_certification.png       |   Bin 0 -> 16855 bytes
 .../archive/images/android-notification.png     |   Bin 0 -> 41629 bytes
 .../archive/images/android-sdk-download.png     |   Bin 0 -> 4848 bytes
 .../appsvc-ui/archive/images/api-activity.gif   |   Bin 0 -> 10819 bytes
 .../appsvc-ui/archive/images/apigee-logo.png    |   Bin 0 -> 3647 bytes
 .../appsvc-ui/archive/images/apigeetopbar.png   |   Bin 0 -> 4658 bytes
 .../archive/images/background_one_col.png       |   Bin 0 -> 3126 bytes
 .../archive/images/btn-copyCurl-up.png          |   Bin 0 -> 2762 bytes
 .../dist/appsvc-ui/archive/images/clippy-bg.png |   Bin 0 -> 561 bytes
 portal/dist/appsvc-ui/archive/images/close.gif  |   Bin 0 -> 718 bytes
 .../archive/images/dotnet-sdk-download.png      |   Bin 0 -> 7149 bytes
 .../appsvc-ui/archive/images/down_arrow.png     |   Bin 0 -> 1285 bytes
 portal/dist/appsvc-ui/archive/images/error.png  |   Bin 0 -> 2009 bytes
 .../appsvc-ui/archive/images/faviconApigee.ico  |   Bin 0 -> 1150 bytes
 .../images/glyphicons-halflings-white.png       |   Bin 0 -> 4352 bytes
 .../archive/images/glyphicons-halflings.png     |   Bin 0 -> 4352 bytes
 .../glyphicons_halflings_135_wrench-white2.pdn  |   Bin 0 -> 5400 bytes
 .../glyphicons_halflings_135_wrench-white2.png  |   Bin 0 -> 296 bytes
 .../images/glyphicons_halflings_135_wrench.png  |   Bin 0 -> 228 bytes
 .../glyphicons_halflings_135_wrench_white.png   |   Bin 0 -> 251 bytes
 .../glyphicons_halflings_wrench_white.png       |   Bin 0 -> 1016 bytes
 .../appsvc-ui/archive/images/google_api_key.png |   Bin 0 -> 98118 bytes
 .../dist/appsvc-ui/archive/images/green_dot.png |   Bin 0 -> 3472 bytes
 portal/dist/appsvc-ui/archive/images/grid.png   |   Bin 0 -> 166 bytes
 portal/dist/appsvc-ui/archive/images/icons.png  |   Bin 0 -> 13132 bytes
 .../archive/images/ios-sdk-download.png         |   Bin 0 -> 4886 bytes
 .../appsvc-ui/archive/images/iphone_message.png |   Bin 0 -> 90307 bytes
 .../archive/images/javascript-sdk-download.png  |   Bin 0 -> 4618 bytes
 .../appsvc-ui/archive/images/left_arrow.png     |   Bin 0 -> 1257 bytes
 .../appsvc-ui/archive/images/logo-white.png     |   Bin 0 -> 2014 bytes
 .../archive/images/menuActiveTriangle.png       |   Bin 0 -> 315 bytes
 .../archive/images/nodejs-sdk-download.png      |   Bin 0 -> 5273 bytes
 portal/dist/appsvc-ui/archive/images/notice.png |   Bin 0 -> 2112 bytes
 .../appsvc-ui/archive/images/orange-arrow.png   |   Bin 0 -> 242 bytes
 .../archive/images/push_notifications_icon.png  |   Bin 0 -> 338 bytes
 .../dist/appsvc-ui/archive/images/red_dot.png   |   Bin 0 -> 3482 bytes
 .../appsvc-ui/archive/images/right_arrow.png    |   Bin 0 -> 1251 bytes
 .../archive/images/ruby-sdk-download.png        |   Bin 0 -> 6343 bytes
 portal/dist/appsvc-ui/archive/images/step_1.png |   Bin 0 -> 1953 bytes
 portal/dist/appsvc-ui/archive/images/step_2.png |   Bin 0 -> 2117 bytes
 portal/dist/appsvc-ui/archive/images/step_3.png |   Bin 0 -> 2162 bytes
 .../dist/appsvc-ui/archive/images/success.png   |   Bin 0 -> 1863 bytes
 .../appsvc-ui/archive/images/swish_arrow.png    |   Bin 0 -> 220 bytes
 .../appsvc-ui/archive/images/topbackground.png  |   Bin 0 -> 2890 bytes
 .../dist/appsvc-ui/archive/images/up_arrow.png  |   Bin 0 -> 1292 bytes
 .../appsvc-ui/archive/images/user-photo.png     |   Bin 0 -> 3849 bytes
 .../appsvc-ui/archive/images/user_profile.png   |   Bin 0 -> 3775 bytes
 .../appsvc-ui/archive/images/usergrid_200.png   |   Bin 0 -> 6397 bytes
 .../appsvc-ui/archive/images/usergrid_400.png   |   Bin 0 -> 8746 bytes
 .../dist/appsvc-ui/archive/images/warning.png   |   Bin 0 -> 1179 bytes
 .../appsvc-ui/archive/images/yellow_dot.png     |   Bin 0 -> 3475 bytes
 .../dist/appsvc-ui/archive/index-stripped2.html |  1795 +
 portal/dist/appsvc-ui/archive/index.html        |  1931 +
 portal/dist/appsvc-ui/archive/js/app/app.js     |   131 +
 portal/dist/appsvc-ui/archive/js/app/console.js |  5397 +++
 portal/dist/appsvc-ui/archive/js/app/helpers.js |   241 +
 .../dist/appsvc-ui/archive/js/app/navigation.js |   251 +
 portal/dist/appsvc-ui/archive/js/app/pages.js   |   161 +
 portal/dist/appsvc-ui/archive/js/app/params.js  |    30 +
 .../dist/appsvc-ui/archive/js/app/quickLogin.js |    30 +
 portal/dist/appsvc-ui/archive/js/app/session.js |   176 +
 portal/dist/appsvc-ui/archive/js/app/sso.js     |   135 +
 portal/dist/appsvc-ui/archive/js/app/status.js  |    37 +
 .../archive/js/app/ui/collections.entity.js     |   320 +
 .../archive/js/app/ui/collections.user.js       |   120 +
 portal/dist/appsvc-ui/archive/js/app/ui/ui.js   |   415 +
 .../appsvc-ui/archive/js/app/usergrid.appSDK.js |  2097 ++
 .../archive/js/app/usergrid.appSDK.orig.js      |  2070 ++
 portal/dist/appsvc-ui/archive/js/lib/MD5.min.js |     1 +
 .../dist/appsvc-ui/archive/js/lib/backbone.js   |  1431 +
 .../appsvc-ui/archive/js/lib/bootstrap.min.js   |     7 +
 .../dist/appsvc-ui/archive/js/lib/date.min.js   |     2 +
 .../archive/js/lib/jquery-1.7.2.min.js          |     4 +
 .../archive/js/lib/jquery-ui-1.8.18.min.js      |    15 +
 .../archive/js/lib/jquery.dataset.min.js        |     1 +
 .../archive/js/lib/jquery.dform-0.1.3.min.js    |    16 +
 .../archive/js/lib/jquery.jsonp-2.3.1.min.js    |     3 +
 .../appsvc-ui/archive/js/lib/jquery.tmpl.min.js |    10 +
 .../archive/js/lib/jquery.ui.statusbar.min.js   |     1 +
 .../archive/js/lib/jquery.ui.timepicker.min.js  |     1 +
 .../dist/appsvc-ui/archive/js/lib/prettify.js   |  1477 +
 .../appsvc-ui/archive/js/lib/underscore-min.js  |     5 +
 .../appsvc-ui/archive/js/spec/client-tests.js   |   159 +
 .../dist/appsvc-ui/archive/js/spec/index.html   |    20 +
 .../appsvc-ui/archive/js/spec/qunit-git.css     |   238 +
 .../dist/appsvc-ui/archive/js/spec/qunit-git.js |  1865 +
 .../archive/js/unit-tests/appSDK-tests.js       |   255 +
 .../archive/js/unit-tests/ie-jquery-tests.js    |   191 +
 .../appsvc-ui/archive/js/unit-tests/qunit.css   |   231 +
 .../appsvc-ui/archive/js/unit-tests/qunit.js    |  1934 +
 portal/dist/appsvc-ui/archive/loading.html      |     9 +
 portal/dist/appsvc-ui/archive/max/index.html    |     0
 .../dist/appsvc-ui/archive/planned_outage.html  |    48 +
 portal/dist/appsvc-ui/archive/push/index.html   |    34 +
 portal/dist/appsvc-ui/archive/service_down.html |    48 +
 .../apigee.ui.activities.table_rows.html        |    14 +
 .../templates/apigee.ui.admins.table_rows.html  |     8 +
 .../apigee.ui.applications.table_rows.html      |     4 +
 .../apigee.ui.collection.table_rows.html        |    67 +
 .../apigee.ui.collections.query.indexes.html    |     5 +
 .../apigee.ui.collections.table_rows.html       |     9 +
 .../apigee.ui.collections.user.header.html      |    21 +
 .../templates/apigee.ui.curl.detail.html        |    11 +
 .../templates/apigee.ui.feed.table_rows.html    |    15 +
 .../templates/apigee.ui.groups.table_rows.html  |    14 +
 .../apigee.ui.panels.group.activities.html      |    28 +
 .../apigee.ui.panels.group.details.html         |    97 +
 .../apigee.ui.panels.group.memberships.html     |    40 +
 .../apigee.ui.panels.group.permissions.html     |    99 +
 ...pigee.ui.panels.notifications.configure.html |    14 +
 .../apigee.ui.panels.role.permissions.html      |    58 +
 .../templates/apigee.ui.panels.role.users.html  |    38 +
 .../apigee.ui.panels.user.activities.html       |    40 +
 .../templates/apigee.ui.panels.user.graph.html  |    80 +
 .../apigee.ui.panels.user.memberships.html      |    40 +
 .../apigee.ui.panels.user.permissions.html      |   105 +
 .../apigee.ui.panels.user.profile.html          |   113 +
 .../apigee.ui.role.groups.table_rows.html       |    44 +
 .../templates/apigee.ui.roles.table_rows.html   |    15 +
 .../templates/apigee.ui.users.table_rows.html   |    18 +
 .../archive/templates/test/modalForm2.html      |    32 +
 .../appsvc-ui/archive/test/autocomplete.html    |    25 +
 .../dist/appsvc-ui/archive/test/modalForm.html  |    32 +
 portal/dist/appsvc-ui/config.js                 |    60 +
 .../appsvc-ui/css/apigeeGlobalNavigation.css    |   274 +
 .../css/arsmarquette/ARSMaquettePro-Light.otf   |   Bin 0 -> 184600 bytes
 .../css/arsmarquette/ARSMaquettePro-Medium.otf  |   Bin 0 -> 188020 bytes
 .../css/arsmarquette/ARSMaquettePro-Regular.otf |   Bin 0 -> 188096 bytes
 portal/dist/appsvc-ui/css/dash.min.css          |     1 +
 portal/dist/appsvc-ui/css/entypo/entypo.eot     |   Bin 0 -> 35540 bytes
 portal/dist/appsvc-ui/css/entypo/entypo.svg     |    13 +
 portal/dist/appsvc-ui/css/entypo/entypo.ttf     |   Bin 0 -> 35392 bytes
 portal/dist/appsvc-ui/css/entypo/entypo.woff    |   Bin 0 -> 21916 bytes
 portal/dist/appsvc-ui/css/main.css              |  1970 +
 portal/dist/appsvc-ui/favicon.ico               |   Bin 0 -> 1150 bytes
 .../img/appswitcher/apiPlatform_lg.png          |   Bin 0 -> 2397 bytes
 .../img/appswitcher/appServices_lg.png          |   Bin 0 -> 2295 bytes
 .../appsvc-ui/img/appswitcher/console_lg.png    |   Bin 0 -> 1453 bytes
 .../dist/appsvc-ui/img/appswitcher/home_lg.png  |   Bin 0 -> 1522 bytes
 .../appsvc-ui/img/appswitcher/logo_color.png    |   Bin 0 -> 3459 bytes
 .../dist/appsvc-ui/img/appswitcher/max_lg.png   |   Bin 0 -> 1970 bytes
 .../img/appswitcher/triangleMenuItem_right.png  |   Bin 0 -> 1158 bytes
 .../triangleMenuItem_right_hover.png            |   Bin 0 -> 1169 bytes
 portal/dist/appsvc-ui/img/blue-bars.png         |   Bin 0 -> 3635 bytes
 portal/dist/appsvc-ui/img/blue-bolt.png         |   Bin 0 -> 3942 bytes
 portal/dist/appsvc-ui/img/blue-carat.png        |   Bin 0 -> 1006 bytes
 portal/dist/appsvc-ui/img/green_dot.png         |   Bin 0 -> 3472 bytes
 .../appsvc-ui/img/introjs_arrow_step_next.png   |   Bin 0 -> 219 bytes
 .../img/introjs_arrow_step_next_disabled.png    |   Bin 0 -> 220 bytes
 .../appsvc-ui/img/introjs_arrow_step_prev.png   |   Bin 0 -> 217 bytes
 .../img/introjs_arrow_step_prev_disabled.png    |   Bin 0 -> 218 bytes
 portal/dist/appsvc-ui/img/introjs_close.png     |   Bin 0 -> 274 bytes
 portal/dist/appsvc-ui/img/logo.gif              |   Bin 0 -> 2279 bytes
 portal/dist/appsvc-ui/img/nav-device.gif        |   Bin 0 -> 2184 bytes
 portal/dist/appsvc-ui/img/nav-sprites.png       |   Bin 0 -> 7953 bytes
 portal/dist/appsvc-ui/img/no-data1.png          |   Bin 0 -> 45300 bytes
 portal/dist/appsvc-ui/img/phone-small.gif       |   Bin 0 -> 1300 bytes
 .../appsvc-ui/img/push/APNS_cert_upload.png     |   Bin 0 -> 33956 bytes
 .../appsvc-ui/img/push/APNS_certification.png   |   Bin 0 -> 16855 bytes
 .../appsvc-ui/img/push/android-notification.png |   Bin 0 -> 41629 bytes
 .../dist/appsvc-ui/img/push/google_api_key.png  |   Bin 0 -> 98118 bytes
 .../dist/appsvc-ui/img/push/iphone_message.png  |   Bin 0 -> 90307 bytes
 portal/dist/appsvc-ui/img/push/step_1.png       |   Bin 0 -> 1953 bytes
 portal/dist/appsvc-ui/img/push/step_2.png       |   Bin 0 -> 2117 bytes
 portal/dist/appsvc-ui/img/push/step_3.png       |   Bin 0 -> 2162 bytes
 portal/dist/appsvc-ui/img/red_dot.png           |   Bin 0 -> 3482 bytes
 portal/dist/appsvc-ui/img/sdk-sprites-large.png |   Bin 0 -> 14642 bytes
 portal/dist/appsvc-ui/img/sdk-sprites.png       |   Bin 0 -> 5027 bytes
 portal/dist/appsvc-ui/img/tablet-small.gif      |   Bin 0 -> 1390 bytes
 portal/dist/appsvc-ui/img/user-photo.png        |   Bin 0 -> 3849 bytes
 portal/dist/appsvc-ui/img/user_profile.png      |   Bin 0 -> 3775 bytes
 portal/dist/appsvc-ui/img/verify.png            |   Bin 0 -> 22934 bytes
 portal/dist/appsvc-ui/img/yellow_dot.png        |   Bin 0 -> 3475 bytes
 portal/dist/appsvc-ui/index-debug.html          |   167 +
 portal/dist/appsvc-ui/index-template.html       |   172 +
 portal/dist/appsvc-ui/index.html                |   167 +
 portal/dist/appsvc-ui/js/charts/highcharts.json |   329 +
 portal/dist/appsvc-ui/sdk/usergrid.0.10.4.js    |  1402 +
 portal/dist/appsvc-ui/sdk/usergrid.0.10.5.js    |  1755 +
 portal/dist/appsvc-ui/sdk/usergrid.0.10.7.js    |  2265 ++
 portal/index-debug.html                         |    57 +-
 portal/index-template.html                      |    39 +-
 portal/index.html                               |    57 +-
 portal/js/global/page-controller.js             |     3 +-
 portal/js/global/ug-service.js                  |     3 +-
 portal/js/libs/usergrid-libs.min.js             |     4 +-
 portal/js/usergrid-dev.min.js                   | 19761 +++++++++-
 portal/js/usergrid.min.js                       |     4 +-
 portal/package.json                             |     2 +-
 .../instrument/js/usergrid-coverage.min.js      |     2 +-
 .../test/coverage/instrument/js/usergrid.min.js |     2 +-
 829 files changed, 357652 insertions(+), 135 deletions(-)
----------------------------------------------------------------------