text: /* Modernizr 2.8.3 (Custom Build) | MIT & BSD
   * Build: http://modernizr.com/download/#-indexeddb-localstorage-websockets-geolocation-prefixed-testprop-testallprops-domprefixes-css_objectfit
   */
  ;
  
  
  
  window.Modernizr = (function( window, document, undefined ) {
  
      var version = '2.8.3',
  
      Modernizr = {},
  
  
      docElement = document.documentElement,
  
      mod = 'modernizr',
      modElem = document.createElement(mod),
      mStyle = modElem.style,
  
      inputElem  ,
  
  
      toString = {}.toString,    omPrefixes = 'Webkit Moz O ms',
  
      cssomPrefixes = omPrefixes.split(' '),
  
      domPrefixes = omPrefixes.toLowerCase().split(' '),
  
  
      tests = {},
      inputs = {},
      attrs = {},
  
      classes = [],
  
      slice = classes.slice,
  
      featureName,
  
  
  
      _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;
  
      if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
        hasOwnProp = function (object, property) {
          return _hasOwnProperty.call(object, property);
        };
      }
      else {
        hasOwnProp = function (object, property) {
          return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
        };
      }
  
  
      if (!Function.prototype.bind) {
        Function.prototype.bind = function bind(that) {
  
          var target = this;
  
          if (typeof target != "function") {
              throw new TypeError();
          }
  
          var args = slice.call(arguments, 1),
              bound = function () {
  
              if (this instanceof bound) {
  
                var F = function(){};
                F.prototype = target.prototype;
                var self = new F();
  
                var result = target.apply(
                    self,
                    args.concat(slice.call(arguments))
                );
                if (Object(result) === result) {
                    return result;
                }
                return self;
  
              } else {
  
                return target.apply(
                    that,
                    args.concat(slice.call(arguments))
                );
  
              }
  
          };
  
          return bound;
        };
      }
  
      function setCss( str ) {
          mStyle.cssText = str;
      }
  
      function setCssAll( str1, str2 ) {
          return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
      }
  
      function is( obj, type ) {
          return typeof obj === type;
      }
  
      function contains( str, substr ) {
          return !!~('' + str).indexOf(substr);
      }
  
      function testProps( props, prefixed ) {
          for ( var i in props ) {
              var prop = props[i];
              if ( !contains(prop, "-") && mStyle[prop] !== undefined ) {
                  return prefixed == 'pfx' ? prop : true;
              }
          }
          return false;
      }
  
      function testDOMProps( props, obj, elem ) {
          for ( var i in props ) {
              var item = obj[props[i]];
              if ( item !== undefined) {
  
                              if (elem === false) return props[i];
  
                              if (is(item, 'function')){
                                  return item.bind(elem || obj);
                  }
  
                              return item;
              }
          }
          return false;
      }
  
      function testPropsAll( prop, prefixed, elem ) {
  
          var ucProp  = prop.charAt(0).toUpperCase() + prop.slice(1),
              props   = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
  
              if(is(prefixed, "string") || is(prefixed, "undefined")) {
            return testProps(props, prefixed);
  
              } else {
            props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
            return testDOMProps(props, prefixed, elem);
          }
      }
  
  
      tests['geolocation'] = function() {
          return 'geolocation' in navigator;
      };
      tests['indexedDB'] = function() {
        return !!testPropsAll("indexedDB", window);
      };    tests['websockets'] = function() {
          return 'WebSocket' in window || 'MozWebSocket' in window;
      };
  
      tests['localstorage'] = function() {
          try {
              localStorage.setItem(mod, mod);
              localStorage.removeItem(mod);
              return true;
          } catch(e) {
              return false;
          }
      };
  
  
      for ( var feature in tests ) {
          if ( hasOwnProp(tests, feature) ) {
                                      featureName  = feature.toLowerCase();
              Modernizr[featureName] = tests[feature]();
  
              classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
          }
      }
  
  
  
       Modernizr.addTest = function ( feature, test ) {
         if ( typeof feature == 'object' ) {
           for ( var key in feature ) {
             if ( hasOwnProp( feature, key ) ) {
               Modernizr.addTest( key, feature[ key ] );
             }
           }
         } else {
  
           feature = feature.toLowerCase();
  
           if ( Modernizr[feature] !== undefined ) {
                                                return Modernizr;
           }
  
           test = typeof test == 'function' ? test() : test;
  
           if (typeof enableClasses !== "undefined" && enableClasses) {
             docElement.className += ' ' + (test ? '' : 'no-') + feature;
           }
           Modernizr[feature] = test;
  
         }
  
         return Modernizr;
       };
  
  
      setCss('');
      modElem = inputElem = null;
  
  
      Modernizr._version      = version;
  
      Modernizr._domPrefixes  = domPrefixes;
      Modernizr._cssomPrefixes  = cssomPrefixes;
  
  
  
      Modernizr.testProp      = function(prop){
          return testProps([prop]);
      };
  
      Modernizr.testAllProps  = testPropsAll;
  
  
      Modernizr.prefixed      = function(prop, obj, elem){
        if(!obj) {
          return testPropsAll(prop, 'pfx');
        } else {
              return testPropsAll(prop, obj, elem);
        }
      };
  
  
  
      return Modernizr;
  
  })(this, this.document);
  
  // dev.opera.com/articles/view/css3-object-fit-object-position/
  
  Modernizr.addTest('object-fit',
    !!Modernizr.prefixed('objectFit')
  );;