|  | @@ -22,8 +22,8 @@ if (typeof PDFJS === 'undefined') {
 | 
											
												
													
														|  |    (typeof window !== 'undefined' ? window : this).PDFJS = {};
 |  |    (typeof window !== 'undefined' ? window : this).PDFJS = {};
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -PDFJS.version = '1.2.61';
 |  | 
 | 
											
												
													
														|  | -PDFJS.build = 'cbce05b';
 |  | 
 | 
											
												
													
														|  | 
 |  | +PDFJS.version = '1.2.64';
 | 
											
												
													
														|  | 
 |  | +PDFJS.build = '7e8dacf';
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  (function pdfjsWrapper() {
 |  |  (function pdfjsWrapper() {
 | 
											
												
													
														|  |    // Use strict in our context only - users might not want it
 |  |    // Use strict in our context only - users might not want it
 | 
											
										
											
												
													
														|  | @@ -4822,16 +4822,13 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
 | 
											
												
													
														|  |        var x = 0, i;
 |  |        var x = 0, i;
 | 
											
												
													
														|  |        for (i = 0; i < glyphsLength; ++i) {
 |  |        for (i = 0; i < glyphsLength; ++i) {
 | 
											
												
													
														|  |          var glyph = glyphs[i];
 |  |          var glyph = glyphs[i];
 | 
											
												
													
														|  | -        if (glyph === null) {
 |  | 
 | 
											
												
													
														|  | -          // word break
 |  | 
 | 
											
												
													
														|  | -          x += fontDirection * wordSpacing;
 |  | 
 | 
											
												
													
														|  | -          continue;
 |  | 
 | 
											
												
													
														|  | -        } else if (isNum(glyph)) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if (isNum(glyph)) {
 | 
											
												
													
														|  |            x += spacingDir * glyph * fontSize / 1000;
 |  |            x += spacingDir * glyph * fontSize / 1000;
 | 
											
												
													
														|  |            continue;
 |  |            continue;
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          var restoreNeeded = false;
 |  |          var restoreNeeded = false;
 | 
											
												
													
														|  | 
 |  | +        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
 | 
											
												
													
														|  |          var character = glyph.fontChar;
 |  |          var character = glyph.fontChar;
 | 
											
												
													
														|  |          var accent = glyph.accent;
 |  |          var accent = glyph.accent;
 | 
											
												
													
														|  |          var scaledX, scaledY, scaledAccentX, scaledAccentY;
 |  |          var scaledX, scaledY, scaledAccentX, scaledAccentY;
 | 
											
										
											
												
													
														|  | @@ -4875,7 +4872,7 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -        var charWidth = width * widthAdvanceScale + charSpacing * fontDirection;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        var charWidth = width * widthAdvanceScale + spacing * fontDirection;
 | 
											
												
													
														|  |          x += charWidth;
 |  |          x += charWidth;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          if (restoreNeeded) {
 |  |          if (restoreNeeded) {
 | 
											
										
											
												
													
														|  | @@ -4920,18 +4917,14 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |        for (i = 0; i < glyphsLength; ++i) {
 |  |        for (i = 0; i < glyphsLength; ++i) {
 | 
											
												
													
														|  |          glyph = glyphs[i];
 |  |          glyph = glyphs[i];
 | 
											
												
													
														|  | -        if (glyph === null) {
 |  | 
 | 
											
												
													
														|  | -          // word break
 |  | 
 | 
											
												
													
														|  | -          this.ctx.translate(wordSpacing, 0);
 |  | 
 | 
											
												
													
														|  | -          current.x += wordSpacing * textHScale;
 |  | 
 | 
											
												
													
														|  | -          continue;
 |  | 
 | 
											
												
													
														|  | -        } else if (isNum(glyph)) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if (isNum(glyph)) {
 | 
											
												
													
														|  |            spacingLength = spacingDir * glyph * fontSize / 1000;
 |  |            spacingLength = spacingDir * glyph * fontSize / 1000;
 | 
											
												
													
														|  |            this.ctx.translate(spacingLength, 0);
 |  |            this.ctx.translate(spacingLength, 0);
 | 
											
												
													
														|  |            current.x += spacingLength * textHScale;
 |  |            current.x += spacingLength * textHScale;
 | 
											
												
													
														|  |            continue;
 |  |            continue;
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
 | 
											
												
													
														|  |          var operatorList = font.charProcOperatorList[glyph.operatorListId];
 |  |          var operatorList = font.charProcOperatorList[glyph.operatorListId];
 | 
											
												
													
														|  |          if (!operatorList) {
 |  |          if (!operatorList) {
 | 
											
												
													
														|  |            warn('Type3 character \"' + glyph.operatorListId +
 |  |            warn('Type3 character \"' + glyph.operatorListId +
 | 
											
										
											
												
													
														|  | @@ -4946,7 +4939,7 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
 | 
											
												
													
														|  |          this.restore();
 |  |          this.restore();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          var transformed = Util.applyTransform([glyph.width, 0], fontMatrix);
 |  |          var transformed = Util.applyTransform([glyph.width, 0], fontMatrix);
 | 
											
												
													
														|  | -        width = transformed[0] * fontSize + charSpacing;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        width = transformed[0] * fontSize + spacing;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          ctx.translate(width, 0);
 |  |          ctx.translate(width, 0);
 | 
											
												
													
														|  |          current.x += width * textHScale;
 |  |          current.x += width * textHScale;
 | 
											
										
											
												
													
														|  | @@ -17739,9 +17732,6 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          for (var i = 0, ii = glyphs.length; i < ii; i++) {
 |  |          for (var i = 0, ii = glyphs.length; i < ii; i++) {
 | 
											
												
													
														|  |            var glyph = glyphs[i];
 |  |            var glyph = glyphs[i];
 | 
											
												
													
														|  | -          if (glyph === null) {
 |  | 
 | 
											
												
													
														|  | -            continue;
 |  | 
 | 
											
												
													
														|  | -          }
 |  | 
 | 
											
												
													
														|  |            buildPath(glyph.fontChar);
 |  |            buildPath(glyph.fontChar);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |            // If the glyph has an accent we need to build a path for its
 |  |            // If the glyph has an accent we need to build a path for its
 | 
											
										
											
												
													
														|  | @@ -18401,10 +18391,6 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
											
												
													
														|  |          var defaultVMetrics = font.defaultVMetrics;
 |  |          var defaultVMetrics = font.defaultVMetrics;
 | 
											
												
													
														|  |          for (var i = 0; i < glyphs.length; i++) {
 |  |          for (var i = 0; i < glyphs.length; i++) {
 | 
											
												
													
														|  |            var glyph = glyphs[i];
 |  |            var glyph = glyphs[i];
 | 
											
												
													
														|  | -          if (!glyph) { // Previous glyph was a space.
 |  | 
 | 
											
												
													
														|  | -            width += textState.wordSpacing * textState.textHScale;
 |  | 
 | 
											
												
													
														|  | -            continue;
 |  | 
 | 
											
												
													
														|  | -          }
 |  | 
 | 
											
												
													
														|  |            var vMetricX = null;
 |  |            var vMetricX = null;
 | 
											
												
													
														|  |            var vMetricY = null;
 |  |            var vMetricY = null;
 | 
											
												
													
														|  |            var glyphWidth = null;
 |  |            var glyphWidth = null;
 | 
											
										
											
												
													
														|  | @@ -18440,11 +18426,14 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
											
												
													
														|  |            // var x = pt[0];
 |  |            // var x = pt[0];
 | 
											
												
													
														|  |            // var y = pt[1];
 |  |            // var y = pt[1];
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -          var charSpacing = 0;
 |  | 
 | 
											
												
													
														|  | -          if (textChunk.str.length > 0) {
 |  | 
 | 
											
												
													
														|  | -            // Apply char spacing only when there are chars.
 |  | 
 | 
											
												
													
														|  | -            // As a result there is only spacing between glyphs.
 |  | 
 | 
											
												
													
														|  | -            charSpacing = textState.charSpacing;
 |  | 
 | 
											
												
													
														|  | 
 |  | +          var charSpacing = textState.charSpacing;
 | 
											
												
													
														|  | 
 |  | +          if (glyph.isSpace) {
 | 
											
												
													
														|  | 
 |  | +            var wordSpacing = textState.wordSpacing;
 | 
											
												
													
														|  | 
 |  | +            charSpacing += wordSpacing;
 | 
											
												
													
														|  | 
 |  | +            if (wordSpacing > 0) {
 | 
											
												
													
														|  | 
 |  | +              addFakeSpaces(wordSpacing * 1000 / textState.fontSize,
 | 
											
												
													
														|  | 
 |  | +                            textChunk.str);
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |            var tx = 0;
 |  |            var tx = 0;
 | 
											
										
											
												
													
														|  | @@ -18478,6 +18467,22 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
											
												
													
														|  |          return textChunk;
 |  |          return textChunk;
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +      function addFakeSpaces(width, strBuf) {
 | 
											
												
													
														|  | 
 |  | +        var spaceWidth = textState.font.spaceWidth;
 | 
											
												
													
														|  | 
 |  | +        if (spaceWidth <= 0) {
 | 
											
												
													
														|  | 
 |  | +          return;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        var fakeSpaces = width / spaceWidth;
 | 
											
												
													
														|  | 
 |  | +        if (fakeSpaces > MULTI_SPACE_FACTOR) {
 | 
											
												
													
														|  | 
 |  | +          fakeSpaces = Math.round(fakeSpaces);
 | 
											
												
													
														|  | 
 |  | +          while (fakeSpaces--) {
 | 
											
												
													
														|  | 
 |  | +            strBuf.push(' ');
 | 
											
												
													
														|  | 
 |  | +          }
 | 
											
												
													
														|  | 
 |  | +        } else if (fakeSpaces > SPACE_FACTOR) {
 | 
											
												
													
														|  | 
 |  | +          strBuf.push(' ');
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |        var timeSlotManager = new TimeSlotManager();
 |  |        var timeSlotManager = new TimeSlotManager();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |        return new Promise(function next(resolve, reject) {
 |  |        return new Promise(function next(resolve, reject) {
 | 
											
										
											
												
													
														|  | @@ -18556,29 +18561,26 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
 | 
											
												
													
														|  |                    // In the default coordinate system, a positive adjustment
 |  |                    // In the default coordinate system, a positive adjustment
 | 
											
												
													
														|  |                    // has the effect of moving the next glyph painted either to
 |  |                    // has the effect of moving the next glyph painted either to
 | 
											
												
													
														|  |                    // the left or down by the given amount.
 |  |                    // the left or down by the given amount.
 | 
											
												
													
														|  | -                  var val = items[j] * textState.fontSize / 1000;
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  var advance = items[j];
 | 
											
												
													
														|  | 
 |  | +                  var val = advance * textState.fontSize / 1000;
 | 
											
												
													
														|  |                    if (textState.font.vertical) {
 |  |                    if (textState.font.vertical) {
 | 
											
												
													
														|  | -                    offset = val * textState.textMatrix[3];
 |  | 
 | 
											
												
													
														|  | -                    textState.translateTextMatrix(0, offset);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    offset = val *
 | 
											
												
													
														|  | 
 |  | +                      (textState.textHScale * textState.textMatrix[2] +
 | 
											
												
													
														|  | 
 |  | +                       textState.textMatrix[3]);
 | 
											
												
													
														|  | 
 |  | +                    textState.translateTextMatrix(0, val);
 | 
											
												
													
														|  |                      // Value needs to be added to height to paint down.
 |  |                      // Value needs to be added to height to paint down.
 | 
											
												
													
														|  |                      textChunk.height += offset;
 |  |                      textChunk.height += offset;
 | 
											
												
													
														|  |                    } else {
 |  |                    } else {
 | 
											
												
													
														|  | -                    offset = val * textState.textHScale *
 |  | 
 | 
											
												
													
														|  | -                                   textState.textMatrix[0];
 |  | 
 | 
											
												
													
														|  | -                    textState.translateTextMatrix(offset, 0);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    offset = val * (
 | 
											
												
													
														|  | 
 |  | +                      textState.textHScale * textState.textMatrix[0] +
 | 
											
												
													
														|  | 
 |  | +                      textState.textMatrix[1]);
 | 
											
												
													
														|  | 
 |  | +                    textState.translateTextMatrix(-val, 0);
 | 
											
												
													
														|  |                      // Value needs to be subtracted from width to paint left.
 |  |                      // Value needs to be subtracted from width to paint left.
 | 
											
												
													
														|  |                      textChunk.width -= offset;
 |  |                      textChunk.width -= offset;
 | 
											
												
													
														|  | 
 |  | +                    advance = -advance;
 | 
											
												
													
														|  |                    }
 |  |                    }
 | 
											
												
													
														|  | -                  if (items[j] < 0 && textState.font.spaceWidth > 0) {
 |  | 
 | 
											
												
													
														|  | -                    var fakeSpaces = -items[j] / textState.font.spaceWidth;
 |  | 
 | 
											
												
													
														|  | -                    if (fakeSpaces > MULTI_SPACE_FACTOR) {
 |  | 
 | 
											
												
													
														|  | -                      fakeSpaces = Math.round(fakeSpaces);
 |  | 
 | 
											
												
													
														|  | -                      while (fakeSpaces--) {
 |  | 
 | 
											
												
													
														|  | -                        textChunk.str.push(' ');
 |  | 
 | 
											
												
													
														|  | -                      }
 |  | 
 | 
											
												
													
														|  | -                    } else if (fakeSpaces > SPACE_FACTOR) {
 |  | 
 | 
											
												
													
														|  | -                      textChunk.str.push(' ');
 |  | 
 | 
											
												
													
														|  | -                    }
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  if (advance > 0) {
 | 
											
												
													
														|  | 
 |  | +                    addFakeSpaces(advance, textChunk.str);
 | 
											
												
													
														|  |                    }
 |  |                    }
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  |                }
 |  |                }
 | 
											
										
											
												
													
														|  | @@ -23259,23 +23261,26 @@ function getFontType(type, subtype) {
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  var Glyph = (function GlyphClosure() {
 |  |  var Glyph = (function GlyphClosure() {
 | 
											
												
													
														|  | -  function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +  function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId,
 | 
											
												
													
														|  | 
 |  | +                 isSpace) {
 | 
											
												
													
														|  |      this.fontChar = fontChar;
 |  |      this.fontChar = fontChar;
 | 
											
												
													
														|  |      this.unicode = unicode;
 |  |      this.unicode = unicode;
 | 
											
												
													
														|  |      this.accent = accent;
 |  |      this.accent = accent;
 | 
											
												
													
														|  |      this.width = width;
 |  |      this.width = width;
 | 
											
												
													
														|  |      this.vmetric = vmetric;
 |  |      this.vmetric = vmetric;
 | 
											
												
													
														|  |      this.operatorListId = operatorListId;
 |  |      this.operatorListId = operatorListId;
 | 
											
												
													
														|  | 
 |  | +    this.isSpace = isSpace;
 | 
											
												
													
														|  |    }
 |  |    }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -  Glyph.prototype.matchesForCache =
 |  | 
 | 
											
												
													
														|  | -      function(fontChar, unicode, accent, width, vmetric, operatorListId) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +  Glyph.prototype.matchesForCache = function(fontChar, unicode, accent, width,
 | 
											
												
													
														|  | 
 |  | +                                             vmetric, operatorListId, isSpace) {
 | 
											
												
													
														|  |      return this.fontChar === fontChar &&
 |  |      return this.fontChar === fontChar &&
 | 
											
												
													
														|  |             this.unicode === unicode &&
 |  |             this.unicode === unicode &&
 | 
											
												
													
														|  |             this.accent === accent &&
 |  |             this.accent === accent &&
 | 
											
												
													
														|  |             this.width === width &&
 |  |             this.width === width &&
 | 
											
												
													
														|  |             this.vmetric === vmetric &&
 |  |             this.vmetric === vmetric &&
 | 
											
												
													
														|  | -           this.operatorListId === operatorListId;
 |  | 
 | 
											
												
													
														|  | 
 |  | +           this.operatorListId === operatorListId &&
 | 
											
												
													
														|  | 
 |  | +           this.isSpace === isSpace;
 | 
											
												
													
														|  |    };
 |  |    };
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    return Glyph;
 |  |    return Glyph;
 | 
											
										
											
												
													
														|  | @@ -25790,7 +25795,7 @@ var Font = (function FontClosure() {
 | 
											
												
													
														|  |        return width;
 |  |        return width;
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    charToGlyph: function Font_charToGlyph(charcode) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +    charToGlyph: function Font_charToGlyph(charcode, isSpace) {
 | 
											
												
													
														|  |        var fontCharCode, width, operatorListId;
 |  |        var fontCharCode, width, operatorListId;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |        var widthCode = charcode;
 |  |        var widthCode = charcode;
 | 
											
										
											
												
													
														|  | @@ -25833,9 +25838,9 @@ var Font = (function FontClosure() {
 | 
											
												
													
														|  |        var glyph = this.glyphCache[charcode];
 |  |        var glyph = this.glyphCache[charcode];
 | 
											
												
													
														|  |        if (!glyph ||
 |  |        if (!glyph ||
 | 
											
												
													
														|  |            !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric,
 |  |            !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric,
 | 
											
												
													
														|  | -                                 operatorListId)) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +                                 operatorListId, isSpace)) {
 | 
											
												
													
														|  |          glyph = new Glyph(fontChar, unicode, accent, width, vmetric,
 |  |          glyph = new Glyph(fontChar, unicode, accent, width, vmetric,
 | 
											
												
													
														|  | -                          operatorListId);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                          operatorListId, isSpace);
 | 
											
												
													
														|  |          this.glyphCache[charcode] = glyph;
 |  |          this.glyphCache[charcode] = glyph;
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |        return glyph;
 |  |        return glyph;
 | 
											
										
											
												
													
														|  | @@ -25871,22 +25876,16 @@ var Font = (function FontClosure() {
 | 
											
												
													
														|  |            charcode = c.charcode;
 |  |            charcode = c.charcode;
 | 
											
												
													
														|  |            var length = c.length;
 |  |            var length = c.length;
 | 
											
												
													
														|  |            i += length;
 |  |            i += length;
 | 
											
												
													
														|  | -          glyph = this.charToGlyph(charcode);
 |  | 
 | 
											
												
													
														|  | 
 |  | +          // Space is char with code 0x20 and length 1 in multiple-byte codes.
 | 
											
												
													
														|  | 
 |  | +          var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20;
 | 
											
												
													
														|  | 
 |  | +          glyph = this.charToGlyph(charcode, isSpace);
 | 
											
												
													
														|  |            glyphs.push(glyph);
 |  |            glyphs.push(glyph);
 | 
											
												
													
														|  | -          // placing null after each word break charcode (ASCII SPACE)
 |  | 
 | 
											
												
													
														|  | -          // Ignore occurences of 0x20 in multiple-byte codes.
 |  | 
 | 
											
												
													
														|  | -          if (length === 1 && chars.charCodeAt(i - 1) === 0x20) {
 |  | 
 | 
											
												
													
														|  | -            glyphs.push(null);
 |  | 
 | 
											
												
													
														|  | -          }
 |  | 
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |        } else {
 |  |        } else {
 | 
											
												
													
														|  |          for (i = 0, ii = chars.length; i < ii; ++i) {
 |  |          for (i = 0, ii = chars.length; i < ii; ++i) {
 | 
											
												
													
														|  |            charcode = chars.charCodeAt(i);
 |  |            charcode = chars.charCodeAt(i);
 | 
											
												
													
														|  | -          glyph = this.charToGlyph(charcode);
 |  | 
 | 
											
												
													
														|  | 
 |  | +          glyph = this.charToGlyph(charcode, charcode === 0x20);
 | 
											
												
													
														|  |            glyphs.push(glyph);
 |  |            glyphs.push(glyph);
 | 
											
												
													
														|  | -          if (charcode === 0x20) {
 |  | 
 | 
											
												
													
														|  | -            glyphs.push(null);
 |  | 
 | 
											
												
													
														|  | -          }
 |  | 
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |  
 |  |  
 |