TODO - remove when Ember reaches v3.0.0
420603
function injectDeprecatedContainer(object, container) {
    Object.defineProperty(object, 'container', {
      configurable: true,
      enumerable: false,
      get: function () {
        _emberMetalDebug.deprecate('Using the injected `container` is deprecated. Please use the `getOwner` helper instead to access the owner of this object.', false, { id: 'ember-application.injected-container', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access' });
        return this[CONTAINER_OVERRIDE] || container;
      },

      set: function (value) {
        _emberMetalDebug.deprecate('Providing the `container` property to ' + this + ' is deprecated. Please use `Ember.setOwner` or `owner.ownerInjection()` instead to provide an owner to the instance being created.', false, { id: 'ember-application.injected-container', until: '3.0.0', url: 'http://emberjs.com/deprecations/v2.x#toc_injected-container-access' });

        this[CONTAINER_OVERRIDE] = value;

        return value;
      }
    });
  }
826526
function render() {
  const wicked = bewitched.get(this);
  const args = tta.apply(null, arguments);
  if (wicked && wicked.template === args[0]) {
    wicked.tagger.apply(null, args);
  } else {
    upgrade.apply(this, args);
  }
  return this;
}
911152
function() {
        var path = this.getHash().substr(1);
        Ember.deprecate('location.hash value is ambiguous. Support for this will be removed soon. When using location: "hash|auto" your hash paths MUST begin with a forward slash. e.g. #/' + path + ' NOT #' + path + '. See http://emberjs.com/guides/deprecations/#toc_location-hash-paths-must-now-include-a-forward-slash-e-g-foo-not-foo', path.length === 0 || path.charAt(0) === '/');
        return path;
      }
1194410
function ensureGagarinVersionsMatch(pathToApp, verbose) {

  var pathToMeteorPackages = path.join(pathToApp, '.meteor', 'packages');
  var nodeModuleVersion    = require('../../package.json').version;

  return new Promise(function (resolve, reject) {

    utils.getGagarinPackageVersion(pathToApp).then(function (packageVersion) {

      if (packageVersion === nodeModuleVersion) {
        logs.system("node module and smart package versions match, " + packageVersion);
        return resolve();
      }

      tools.getReleaseVersion(pathToApp).then(function (meteorReleaseVersion) {

        if (meteorReleaseVersion < "0.9.0") {
          // really, we can do nothing about package version
          // without a decent package management system
          logs.system("meteor version is too old to automatically fix package version");
          return resolve();
        }

        logs.system("meteor add anti:gagarin@=" + nodeModuleVersion);

        var meteor = spawn('meteor', [ 'add', 'anti:gagarin@=' + nodeModuleVersion ], {

          stdio: verbose ? 'inherit' : 'ignore', cwd: pathToApp
        });

        /*
        meteor.stdout.on('data', function (data) {
          if (!verbose) {
            return;
          }
          process.stdout.write(chalk.gray(stripAnsi(data)));
        });
        */

        meteor.on('error', reject);

        meteor.on('exit', function (code) {
          if (code > 0) {
            return reject(new Error('meteor exited with code ' + code));
          }
          logs.system("anti:gagarin is now in version " + nodeModuleVersion);
          resolve();
        });

      }).catch(reject);

    }).catch(reject);

  }); // Promise
}
926123
function(view) {
    Ember.deprecate("Something you did caused a view to re-render after it rendered but before it was inserted into the DOM. Because this is avoidable and the cause of significant performance issues in applications, this behavior is deprecated. If you want to use the debugger to find out what caused this, you can set ENV.RAISE_ON_DEPRECATION to true.");

    view._notifyWillRerender();

    view.clearRenderedChildren();
    view.renderToBuffer(view.buffer, 'replaceWith');
  }
437535
function (response, statusCode, statusText) {
    var adapter = this, responseFunction, isOk, shouldCopy, isInvalid;
    statusCode = statusCode || 200;
    statusText = statusText || HTTP_STATUS_MESSAGES[statusCode];
    isOk = Math.round(statusCode / 100) === 2;
    if (typeof response === 'function') {
      shouldCopy = true;
      responseFunction = bind(this, response);
    }
    else {
      isInvalid = response instanceof DS.InvalidError;
      if (isInvalid) {
        response = new DS.InvalidError(response.errors);
      }
      else {
        response = copy(response, true);
      }
      responseFunction = function () {
        return response;
      };
    }
    return new Ember.RSVP.Promise(function (resolve, reject) {
      var value, func, data;
      func = isOk ? resolve : reject;
      data = responseFunction();
      if (shouldCopy) {
        data = copy(data, true);
      }
      value = isOk ? data : (isInvalid ? data : {
        response:     data || {error: statusText},
        responseJSON: data || {error: statusText},
        status:       statusCode,
        statusText:   statusText
      });
      Ember.runInDebug(function () {
        console[isOk ? 'log' : 'error'](
          fmt('[dev-fixtures] Simulating %@ response:', isOk ? 'success' : 'error'),
          copy(response, true)
        );
      });
      if (adapter.get('simulateRemoteResponse')) {
        // Schedule with setTimeout
        later(null, func, value, adapter.get('latency'));
      }
      else {
        // Asynchronous, but at the of the run-loop with zero latency
        schedule('actions', null, func, value);
      }
    }, "DS: DevFixtureAdapter#simulateRemoteCall");
  }
273719
function(version) {
    var command = 'node_modules/.bin/bower uninstall ember && node_modules/.bin/bower install ember#' + version;

    grunt.log.writeln('Running bower install', command);

    try {
      var resultBower = execSync(command);
      grunt.log.writeln(resultBower);
    } catch (e) {
      grunt.fail.warn(e);
    }
  }
533227
function(router) {
    var location = get(router, 'location'),
        rootElement = get(this, 'rootElement'),
        applicationController = get(router, 'applicationController');

    Ember.assert("ApplicationView and ApplicationController must be defined on your application", (this.ApplicationView && applicationController) );

    var applicationView = this.ApplicationView.create({
      controller: applicationController
    });
    this._createdApplicationView = applicationView;

    applicationView.appendTo(rootElement);

    router.route(location.getURL());
    location.onUpdateURL(function(url) {
      router.route(url);
    });
  }
813463
function(view, fn) {
    if (view._lastInsert !== Ember.guidFor(fn)){
      return;
    }
    view.createElement();
    view._notifyWillInsertElement();
    // after createElement, the view will be in the hasElement state.
    fn.call(view);
    view.transitionTo('inDOM');
    view._notifyDidInsertElement();
  }
697169
function (property) {
      var view = _emberMetalProperty_get.get(this, 'parentView');

      while (view) {
        if (property in view) {
          return view;
        }
        view = _emberMetalProperty_get.get(view, 'parentView');
      }
    }
859541
function watchedEvents(obj) {
      var listeners = obj['__ember_meta__'].listeners, ret = [];

      if (listeners) {
        for(var eventName in listeners) {
          if (listeners[eventName]) { ret.push(eventName); }
        }
      }
      return ret;
    }
1022477
function unlessHelper(params, hash, options) {
    return ifUnless(params, hash, options, !_emberViewsStreamsShould_display.default(params[0]));
  }
523312
function() {
    this._super();

    set(this, 'stateMeta', Ember.Map.create());

    var initialState = get(this, 'initialState');

    if (!initialState && get(this, 'states.start')) {
      initialState = 'start';
    }

    if (initialState) {
      this.transitionTo(initialState);
      Ember.assert('Failed to transition to initial state "' + initialState + '"', !!get(this, 'currentState'));
    }
  }
169442
function (type) {
      var namespaces = _emberRuntimeSystemNative_array.A(_emberRuntimeSystemNamespace.default.NAMESPACES);
      var types = _emberRuntimeSystemNative_array.A();
      var typeSuffixRegex = new RegExp(_emberRuntimeSystemString.classify(type) + '$');

      namespaces.forEach(function (namespace) {
        if (namespace !== _emberMetalCore.default) {
          for (var key in namespace) {
            if (!namespace.hasOwnProperty(key)) {
              continue;
            }
            if (typeSuffixRegex.test(key)) {
              var klass = namespace[key];
              if (_emberRuntimeUtils.typeOf(klass) === 'class') {
                types.push(_emberRuntimeSystemString.dasherize(key.replace(typeSuffixRegex, '')));
              }
            }
          }
        }
      });
      return types;
    }
31221
function() {
    this._super();

    // Register the view for event handling. This hash is used by
    // Ember.EventDispatcher to dispatch incoming events.
    if (!this.isVirtual) Ember.View.views[get(this, 'elementId')] = this;

    // setup child views. be sure to clone the child views array first
    this._childViews = this._childViews.slice();

    Ember.assert("Only arrays are allowed for 'classNameBindings'", Ember.typeOf(this.classNameBindings) === 'array');
    this.classNameBindings = Ember.A(this.classNameBindings.slice());

    Ember.assert("Only arrays are allowed for 'classNames'", Ember.typeOf(this.classNames) === 'array');
    this.classNames = Ember.A(this.classNames.slice());

    var viewController = get(this, 'viewController');
    if (viewController) {
      viewController = get(viewController);
      if (viewController) {
        set(viewController, 'view', this);
      }
    }
  }
790253
function (callback) {
      var _this = this;

      var guid = _emberMetalUtils.guidFor(this);

      _emberViewsSystemJquery.default(window).on('hashchange.ember-location-' + guid, function () {
        _emberMetalRun_loop.default(function () {
          var path = _this.getURL();
          if (_emberMetalProperty_get.get(_this, 'lastSetURL') === path) {
            return;
          }

          _emberMetalProperty_set.set(_this, 'lastSetURL', null);

          callback(path);
        });
      });
    }
1273370
function render(template) {
  var viper = vipers.get(this);
  if (
    !viper ||
    viper.template !== template
  ) {
    viper = upgrade.apply(this, arguments);
    vipers.set(this, viper);
  }
  return (this instanceof Async ? this.update : update)
          .apply(viper, arguments);
}