| ;(function (root, factory) { | 
|     if (typeof exports === "object") { | 
|         // CommonJS | 
|         module.exports = exports = factory(require("./core")); | 
|     } | 
|     else if (typeof define === "function" && define.amd) { | 
|         // AMD | 
|         define(["./core"], factory); | 
|     } | 
|     else { | 
|         // Global (browser) | 
|         factory(root.CryptoJS); | 
|     } | 
| }(this, function (CryptoJS) { | 
|   | 
|     (function () { | 
|         // Check if typed arrays are supported | 
|         if (typeof ArrayBuffer != 'function') { | 
|             return; | 
|         } | 
|   | 
|         // Shortcuts | 
|         var C = CryptoJS; | 
|         var C_lib = C.lib; | 
|         var WordArray = C_lib.WordArray; | 
|   | 
|         // Reference original init | 
|         var superInit = WordArray.init; | 
|   | 
|         // Augment WordArray.init to handle typed arrays | 
|         var subInit = WordArray.init = function (typedArray) { | 
|             // Convert buffers to uint8 | 
|             if (typedArray instanceof ArrayBuffer) { | 
|                 typedArray = new Uint8Array(typedArray); | 
|             } | 
|   | 
|             // Convert other array views to uint8 | 
|             if ( | 
|                 typedArray instanceof Int8Array || | 
|                 (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || | 
|                 typedArray instanceof Int16Array || | 
|                 typedArray instanceof Uint16Array || | 
|                 typedArray instanceof Int32Array || | 
|                 typedArray instanceof Uint32Array || | 
|                 typedArray instanceof Float32Array || | 
|                 typedArray instanceof Float64Array | 
|             ) { | 
|                 typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); | 
|             } | 
|   | 
|             // Handle Uint8Array | 
|             if (typedArray instanceof Uint8Array) { | 
|                 // Shortcut | 
|                 var typedArrayByteLength = typedArray.byteLength; | 
|   | 
|                 // Extract bytes | 
|                 var words = []; | 
|                 for (var i = 0; i < typedArrayByteLength; i++) { | 
|                     words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); | 
|                 } | 
|   | 
|                 // Initialize this word array | 
|                 superInit.call(this, words, typedArrayByteLength); | 
|             } else { | 
|                 // Else call normal init | 
|                 superInit.apply(this, arguments); | 
|             } | 
|         }; | 
|   | 
|         subInit.prototype = WordArray; | 
|     }()); | 
|   | 
|   | 
|     return CryptoJS.lib.WordArray; | 
|   | 
| })); |