text: /**
   * Lo-Dash 3.0.0-pre (Custom Build) <http://lodash.com/>
   * Build: `lodash modularize modern exports="amd" -o ./modern/`
   * Copyright 2012-2014 The Dojo Foundation <http://dojofoundation.org/>
   * Based on Underscore.js 1.7.0 <http://underscorejs.org/LICENSE>
   * Copyright 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   * Available under MIT license <http://lodash.com/license>
   */
  define(['../internal/baseCallback'], function(baseCallback) {
  
    /**
     * This method is like `_.findIndex` except that it iterates over elements
     * of `collection` from right to left.
     *
     * If a property name is provided for `predicate` the created "_.pluck" style
     * callback returns the property value of the given element.
     *
     * If an object is provided for `predicate` the created "_.where" style callback
     * returns `true` for elements that have the properties of the given object,
     * else `false`.
     *
     * @static
     * @memberOf _
     * @category Array
     * @param {Array} array The array to search.
     * @param {Function|Object|string} [predicate=_.identity] The function invoked
     *  per iteration. If a property name or object is provided it is used to
     *  create a "_.pluck" or "_.where" style callback respectively.
     * @param {*} [thisArg] The `this` binding of `predicate`.
     * @returns {number} Returns the index of the found element, else `-1`.
     * @example
     *
     * var users = [
     *   { 'user': 'barney',  'age': 36, 'blocked': true },
     *   { 'user': 'fred',    'age': 40 },
     *   { 'user': 'pebbles', 'age': 1,  'blocked': true }
     * ];
     *
     * _.findLastIndex(users, function(chr) {
     *   return chr.age > 30;
     * });
     * // => 1
     *
     * // using "_.where" callback shorthand
     * _.findLastIndex(users, { 'age': 36 });
     * // => 0
     *
     * // using "_.pluck" callback shorthand
     * _.findLastIndex(users, 'blocked');
     * // => 2
     */
    function findLastIndex(array, predicate, thisArg) {
      var length = array ? array.length : 0;
  
      predicate = baseCallback(predicate, thisArg, 3);
      while (length--) {
        if (predicate(array[length], length, array)) {
          return length;
        }
      }
      return -1;
    }
  
    return findLastIndex;
  });
  