corrade-nucleus-nucleons – Diff between revs 1 and 11
?pathlinks?
Rev 1 | Rev 11 | |||
---|---|---|---|---|
1 | /** |
1 | /** |
|
2 | * @license Highcharts JS v5.0.10 (2017-03-31) |
2 | * @license Highcharts JS v5.0.12 (2017-05-24) |
|
3 | * Client side exporting module |
3 | * Client side exporting module |
|
4 | * |
4 | * |
|
5 | * (c) 2015 Torstein Honsi / Oystein Moseng |
5 | * (c) 2015 Torstein Honsi / Oystein Moseng |
|
6 | * |
6 | * |
|
7 | * License: www.highcharts.com/license |
7 | * License: www.highcharts.com/license |
|
8 | */ |
8 | */ |
|
9 | 'use strict'; |
9 | 'use strict'; |
|
10 | (function(factory) { |
10 | (function(factory) { |
|
11 | if (typeof module === 'object' && module.exports) { |
11 | if (typeof module === 'object' && module.exports) { |
|
12 | module.exports = factory; |
12 | module.exports = factory; |
|
13 | } else { |
13 | } else { |
|
14 | factory(Highcharts); |
14 | factory(Highcharts); |
|
15 | } |
15 | } |
|
16 | }(function(Highcharts) { |
16 | }(function(Highcharts) { |
|
17 | (function(Highcharts) { |
17 | (function(Highcharts) { |
|
18 | /** |
18 | /** |
|
19 | * Client side exporting module |
19 | * Client side exporting module |
|
20 | * |
20 | * |
|
21 | * (c) 2015 Torstein Honsi / Oystein Moseng |
21 | * (c) 2015 Torstein Honsi / Oystein Moseng |
|
22 | * |
22 | * |
|
23 | * License: www.highcharts.com/license |
23 | * License: www.highcharts.com/license |
|
24 | */ |
24 | */ |
|
25 | |
25 | |
|
26 | /*global MSBlobBuilder */ |
26 | /*global MSBlobBuilder */ |
|
27 | |
27 | |
|
28 | var merge = Highcharts.merge, |
28 | var merge = Highcharts.merge, |
|
29 | win = Highcharts.win, |
29 | win = Highcharts.win, |
|
30 | nav = win.navigator, |
30 | nav = win.navigator, |
|
31 | doc = win.document, |
31 | doc = win.document, |
|
32 | each = Highcharts.each, |
32 | each = Highcharts.each, |
|
33 | domurl = win.URL || win.webkitURL || win, |
33 | domurl = win.URL || win.webkitURL || win, |
|
34 | isMSBrowser = /Edge\/|Trident\/|MSIE /.test(nav.userAgent), |
34 | isMSBrowser = /Edge\/|Trident\/|MSIE /.test(nav.userAgent), |
|
35 | isEdgeBrowser = /Edge\/\d+/.test(nav.userAgent), |
35 | isEdgeBrowser = /Edge\/\d+/.test(nav.userAgent), |
|
36 | loadEventDeferDelay = isMSBrowser ? 150 : 0; // Milliseconds to defer image load event handlers to offset IE bug |
36 | loadEventDeferDelay = isMSBrowser ? 150 : 0; // Milliseconds to defer image load event handlers to offset IE bug |
|
37 | |
37 | |
|
38 | // Dummy object so we can reuse our canvas-tools.js without errors |
38 | // Dummy object so we can reuse our canvas-tools.js without errors |
|
39 | Highcharts.CanVGRenderer = {}; |
39 | Highcharts.CanVGRenderer = {}; |
|
40 | |
40 | |
|
41 | |
41 | |
|
42 | /** |
42 | /** |
|
43 | * Downloads a script and executes a callback when done. |
43 | * Downloads a script and executes a callback when done. |
|
44 | * @param {String} scriptLocation |
44 | * @param {String} scriptLocation |
|
45 | * @param {Function} callback |
45 | * @param {Function} callback |
|
46 | */ |
46 | */ |
|
47 | function getScript(scriptLocation, callback) { |
47 | function getScript(scriptLocation, callback) { |
|
48 | var head = doc.getElementsByTagName('head')[0], |
48 | var head = doc.getElementsByTagName('head')[0], |
|
49 | script = doc.createElement('script'); |
49 | script = doc.createElement('script'); |
|
50 | |
50 | |
|
51 | script.type = 'text/javascript'; |
51 | script.type = 'text/javascript'; |
|
52 | script.src = scriptLocation; |
52 | script.src = scriptLocation; |
|
53 | script.onload = callback; |
53 | script.onload = callback; |
|
54 | script.onerror = function() { |
54 | script.onerror = function() { |
|
55 | console.error('Error loading script', scriptLocation); // eslint-disable-line no-console |
55 | console.error('Error loading script', scriptLocation); // eslint-disable-line no-console |
|
56 | }; |
56 | }; |
|
57 | |
57 | |
|
58 | head.appendChild(script); |
58 | head.appendChild(script); |
|
59 | } |
59 | } |
|
60 | |
60 | |
|
61 | // Convert dataURL to Blob if supported, otherwise returns undefined |
61 | // Convert dataURL to Blob if supported, otherwise returns undefined |
|
62 | Highcharts.dataURLtoBlob = function(dataURL) { |
62 | Highcharts.dataURLtoBlob = function(dataURL) { |
|
63 | if ( |
63 | if ( |
|
64 | win.atob && |
64 | win.atob && |
|
65 | win.ArrayBuffer && |
65 | win.ArrayBuffer && |
|
66 | win.Uint8Array && |
66 | win.Uint8Array && |
|
67 | win.Blob && |
67 | win.Blob && |
|
68 | domurl.createObjectURL |
68 | domurl.createObjectURL |
|
69 | ) { |
69 | ) { |
|
70 | // Try to convert data URL to Blob |
70 | // Try to convert data URL to Blob |
|
71 | var parts = dataURL.match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/), |
71 | var parts = dataURL.match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/), |
|
72 | binStr = win.atob(parts[3]), // Assume base64 encoding |
72 | binStr = win.atob(parts[3]), // Assume base64 encoding |
|
73 | buf = new win.ArrayBuffer(binStr.length), |
73 | buf = new win.ArrayBuffer(binStr.length), |
|
74 | binary = new win.Uint8Array(buf), |
74 | binary = new win.Uint8Array(buf), |
|
75 | blob; |
75 | blob; |
|
76 | |
76 | |
|
77 | for (var i = 0; i < binary.length; ++i) {> |
77 | for (var i = 0; i < binary.length; ++i) {> |
|
78 | < binary.length; ++i) { binary[i] = binStr.charCodeAt(i);> |
78 | < binary.length; ++i) { binary[i] = binStr.charCodeAt(i);> |
|
79 | < binary.length; ++i) { }> |
79 | < binary.length; ++i) { }> |
|
80 | < binary.length; ++i) {> |
80 | < binary.length; ++i) {> |
|
81 | < binary.length; ++i) { blob = new win.Blob([binary], {> |
81 | < binary.length; ++i) { blob = new win.Blob([binary], {> |
|
82 | < binary.length; ++i) { 'type': parts[1]> |
82 | < binary.length; ++i) { 'type': parts[1]> |
|
83 | < binary.length; ++i) { });> |
83 | < binary.length; ++i) { });> |
|
84 | < binary.length; ++i) { return domurl.createObjectURL(blob);> |
84 | < binary.length; ++i) { return domurl.createObjectURL(blob);> |
|
85 | < binary.length; ++i) { }> |
85 | < binary.length; ++i) { }> |
|
86 | < binary.length; ++i) { };> |
86 | < binary.length; ++i) { };> |
|
87 | < binary.length; ++i) {> |
87 | < binary.length; ++i) {> |
|
88 | < binary.length; ++i) { // Download contents by dataURL/blob> |
88 | < binary.length; ++i) { // Download contents by dataURL/blob> |
|
89 | < binary.length; ++i) { Highcharts.downloadURL = function(dataURL, filename) {> |
89 | < binary.length; ++i) { Highcharts.downloadURL = function(dataURL, filename) {> |
|
90 | < binary.length; ++i) { var a = doc.createElement('a'),> |
90 | < binary.length; ++i) { var a = doc.createElement('a'),> |
|
91 | < binary.length; ++i) { windowRef;> |
91 | < binary.length; ++i) { windowRef;> |
|
92 | < binary.length; ++i) {> |
92 | < binary.length; ++i) {> |
|
93 | < binary.length; ++i) { // IE specific blob implementation> |
93 | < binary.length; ++i) { // IE specific blob implementation> |
|
94 | < binary.length; ++i) { if (nav.msSaveOrOpenBlob) {> |
94 | < binary.length; ++i) { if (nav.msSaveOrOpenBlob) {> |
|
95 | < binary.length; ++i) { nav.msSaveOrOpenBlob(dataURL, filename);> |
95 | < binary.length; ++i) { nav.msSaveOrOpenBlob(dataURL, filename);> |
|
96 | < binary.length; ++i) { return;> |
96 | < binary.length; ++i) { return;> |
|
97 | < binary.length; ++i) { }> |
97 | < binary.length; ++i) { }> |
|
98 | < binary.length; ++i) {> |
98 | < binary.length; ++i) {> |
|
99 | < binary.length; ++i) { // Some browsers have limitations for data URL lengths. Try to convert to> |
99 | < binary.length; ++i) { // Some browsers have limitations for data URL lengths. Try to convert to> |
|
100 | < binary.length; ++i) { // Blob or fall back.> |
100 | < binary.length; ++i) { // Blob or fall back.> |
|
101 | < binary.length; ++i) { if (dataURL.length > 2000000) {> |
101 | < binary.length; ++i) { if (dataURL.length > 2000000) {> |
|
102 | < binary.length; ++i) { dataURL = Highcharts.dataURLtoBlob(dataURL);> |
102 | < binary.length; ++i) { dataURL = Highcharts.dataURLtoBlob(dataURL);> |
|
103 | < binary.length; ++i) { if (!dataURL) {> |
103 | < binary.length; ++i) { if (!dataURL) {> |
|
104 | < binary.length; ++i) { throw 'Data URL length limit reached';> |
104 | < binary.length; ++i) { throw 'Data URL length limit reached';> |
|
105 | < binary.length; ++i) { }> |
105 | < binary.length; ++i) { }> |
|
106 | < binary.length; ++i) { }> |
106 | < binary.length; ++i) { }> |
|
107 | < binary.length; ++i) {> |
107 | < binary.length; ++i) {> |
|
108 | < binary.length; ++i) { // Try HTML5 download attr if supported> |
108 | < binary.length; ++i) { // Try HTML5 download attr if supported> |
|
109 | < binary.length; ++i) { if (a.download !== undefined) {> |
109 | < binary.length; ++i) { if (a.download !== undefined) {> |
|
110 | < binary.length; ++i) { a.href = dataURL;> |
110 | < binary.length; ++i) { a.href = dataURL;> |
|
111 | < binary.length; ++i) { a.download = filename; // HTML5 download attribute> |
111 | < binary.length; ++i) { a.download = filename; // HTML5 download attribute> |
|
112 | < binary.length; ++i) { a.target = '_blank';> |
- | ||
113 | < binary.length; ++i) { doc.body.appendChild(a);> |
112 | < binary.length; ++i) { doc.body.appendChild(a);> |
|
114 | < binary.length; ++i) { a.click();> |
113 | < binary.length; ++i) { a.click();> |
|
115 | < binary.length; ++i) { doc.body.removeChild(a);> |
114 | < binary.length; ++i) { doc.body.removeChild(a);> |
|
116 | < binary.length; ++i) { } else {> |
115 | < binary.length; ++i) { } else {> |
|
117 | < binary.length; ++i) { // No download attr, just opening data URI> |
116 | < binary.length; ++i) { // No download attr, just opening data URI> |
|
118 | < binary.length; ++i) { try {> |
117 | < binary.length; ++i) { try {> |
|
119 | < binary.length; ++i) { windowRef = win.open(dataURL, 'chart');> |
118 | < binary.length; ++i) { windowRef = win.open(dataURL, 'chart');> |
|
120 | < binary.length; ++i) { if (windowRef === undefined || windowRef === null) {> |
119 | < binary.length; ++i) { if (windowRef === undefined || windowRef === null) {> |
|
121 | < binary.length; ++i) { throw 'Failed to open window';> |
120 | < binary.length; ++i) { throw 'Failed to open window';> |
|
122 | < binary.length; ++i) { }> |
121 | < binary.length; ++i) { }> |
|
123 | < binary.length; ++i) { } catch (e) {> |
122 | < binary.length; ++i) { } catch (e) {> |
|
124 | < binary.length; ++i) { // window.open failed, trying location.href> |
123 | < binary.length; ++i) { // window.open failed, trying location.href> |
|
125 | < binary.length; ++i) { win.location.href = dataURL;> |
124 | < binary.length; ++i) { win.location.href = dataURL;> |
|
126 | < binary.length; ++i) { }> |
125 | < binary.length; ++i) { }> |
|
127 | < binary.length; ++i) { }> |
126 | < binary.length; ++i) { }> |
|
128 | < binary.length; ++i) { };> |
127 | < binary.length; ++i) { };> |
|
129 | < binary.length; ++i) {> |
128 | < binary.length; ++i) {> |
|
130 | < binary.length; ++i) { // Get blob URL from SVG code. Falls back to normal data URI.> |
129 | < binary.length; ++i) { // Get blob URL from SVG code. Falls back to normal data URI.> |
|
131 | < binary.length; ++i) { Highcharts.svgToDataUrl = function(svg) {> |
130 | < binary.length; ++i) { Highcharts.svgToDataUrl = function(svg) {> |
|
132 | < binary.length; ++i) { var webKit = nav.userAgent.indexOf('WebKit') > -1 && nav.userAgent.indexOf('Chrome') < 0; // Webkit and not chrome> |
131 | < binary.length; ++i) { var webKit = nav.userAgent.indexOf('WebKit') > -1 && nav.userAgent.indexOf('Chrome') < 0; // Webkit and not chrome> |
|
133 | < binary.length; ++i) { try {> |
132 | < binary.length; ++i) { try {> |
|
134 | < binary.length; ++i) { // Safari requires data URI since it doesn't allow navigation to blob URLs> |
133 | < binary.length; ++i) { // Safari requires data URI since it doesn't allow navigation to blob URLs> |
|
135 | < binary.length; ++i) { // Firefox has an issue with Blobs and internal references, leading to gradients not working using Blobs (#4550)> |
134 | < binary.length; ++i) { // Firefox has an issue with Blobs and internal references, leading to gradients not working using Blobs (#4550)> |
|
136 | < binary.length; ++i) { if (!webKit && nav.userAgent.toLowerCase().indexOf('firefox') < 0) {> |
135 | < binary.length; ++i) { if (!webKit && nav.userAgent.toLowerCase().indexOf('firefox') < 0) {> |
|
137 | < binary.length; ++i) { return domurl.createObjectURL(new win.Blob([svg], {> |
136 | < binary.length; ++i) { return domurl.createObjectURL(new win.Blob([svg], {> |
|
138 | < binary.length; ++i) { type: 'image/svg+xml;charset-utf-16'> |
137 | < binary.length; ++i) { type: 'image/svg+xml;charset-utf-16'> |
|
139 | < binary.length; ++i) { }));> |
138 | < binary.length; ++i) { }));> |
|
140 | < binary.length; ++i) { }> |
139 | < binary.length; ++i) { }> |
|
141 | < binary.length; ++i) { } catch (e) {> |
140 | < binary.length; ++i) { } catch (e) {> |
|
142 | < binary.length; ++i) { // Ignore> |
141 | < binary.length; ++i) { // Ignore> |
|
143 | < binary.length; ++i) { }> |
142 | < binary.length; ++i) { }> |
|
144 | < binary.length; ++i) { return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg);> |
143 | < binary.length; ++i) { return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg);> |
|
145 | < binary.length; ++i) { };> |
144 | < binary.length; ++i) { };> |
|
146 | < binary.length; ++i) {> |
145 | < binary.length; ++i) {> |
|
147 | < binary.length; ++i) { // Get data:URL from image URL> |
146 | < binary.length; ++i) { // Get data:URL from image URL> |
|
148 | < binary.length; ++i) { // Pass in callbacks to handle results. finallyCallback is always called at the end of the process. Supplying this callback is optional.> |
147 | < binary.length; ++i) { // Pass in callbacks to handle results. finallyCallback is always called at the end of the process. Supplying this callback is optional.> |
|
149 | < binary.length; ++i) { // All callbacks receive four arguments: imageURL, imageType, callbackArgs and scale. callbackArgs is used only by callbacks and can contain whatever.> |
148 | < binary.length; ++i) { // All callbacks receive four arguments: imageURL, imageType, callbackArgs and scale. callbackArgs is used only by callbacks and can contain whatever.> |
|
150 | < binary.length; ++i) { Highcharts.imageToDataUrl = function(imageURL, imageType, callbackArgs, scale, successCallback, taintedCallback, noCanvasSupportCallback, failedLoadCallback, finallyCallback) {> |
149 | < binary.length; ++i) { Highcharts.imageToDataUrl = function(imageURL, imageType, callbackArgs, scale, successCallback, taintedCallback, noCanvasSupportCallback, failedLoadCallback, finallyCallback) {> |
|
151 | < binary.length; ++i) { var img = new win.Image(),> |
150 | < binary.length; ++i) { var img = new win.Image(),> |
|
152 | < binary.length; ++i) { taintedHandler,> |
151 | < binary.length; ++i) { taintedHandler,> |
|
153 | < binary.length; ++i) { loadHandler = function() {> |
152 | < binary.length; ++i) { loadHandler = function() {> |
|
154 | < binary.length; ++i) { setTimeout(function() {> |
153 | < binary.length; ++i) { setTimeout(function() {> |
|
155 | < binary.length; ++i) { var canvas = doc.createElement('canvas'),> |
154 | < binary.length; ++i) { var canvas = doc.createElement('canvas'),> |
|
156 | < binary.length; ++i) { ctx = canvas.getContext && canvas.getContext('2d'),> |
155 | < binary.length; ++i) { ctx = canvas.getContext && canvas.getContext('2d'),> |
|
157 | < binary.length; ++i) { dataURL;> |
156 | < binary.length; ++i) { dataURL;> |
|
158 | < binary.length; ++i) { try {> |
157 | < binary.length; ++i) { try {> |
|
159 | < binary.length; ++i) { if (!ctx) {> |
158 | < binary.length; ++i) { if (!ctx) {> |
|
160 | < binary.length; ++i) { noCanvasSupportCallback(imageURL, imageType, callbackArgs, scale);> |
159 | < binary.length; ++i) { noCanvasSupportCallback(imageURL, imageType, callbackArgs, scale);> |
|
161 | < binary.length; ++i) { } else {> |
160 | < binary.length; ++i) { } else {> |
|
162 | < binary.length; ++i) { canvas.height = img.height * scale;> |
161 | < binary.length; ++i) { canvas.height = img.height * scale;> |
|
163 | < binary.length; ++i) { canvas.width = img.width * scale;> |
162 | < binary.length; ++i) { canvas.width = img.width * scale;> |
|
164 | < binary.length; ++i) { ctx.drawImage(img, 0, 0, canvas.width, canvas.height);> |
163 | < binary.length; ++i) { ctx.drawImage(img, 0, 0, canvas.width, canvas.height);> |
|
165 | < binary.length; ++i) {> |
164 | < binary.length; ++i) {> |
|
166 | < binary.length; ++i) { // Now we try to get the contents of the canvas.> |
165 | < binary.length; ++i) { // Now we try to get the contents of the canvas.> |
|
167 | < binary.length; ++i) { try {> |
166 | < binary.length; ++i) { try {> |
|
168 | < binary.length; ++i) { dataURL = canvas.toDataURL(imageType);> |
167 | < binary.length; ++i) { dataURL = canvas.toDataURL(imageType);> |
|
169 | < binary.length; ++i) { successCallback(dataURL, imageType, callbackArgs, scale);> |
168 | < binary.length; ++i) { successCallback(dataURL, imageType, callbackArgs, scale);> |
|
170 | < binary.length; ++i) { } catch (e) {> |
169 | < binary.length; ++i) { } catch (e) {> |
|
171 | < binary.length; ++i) { taintedHandler(imageURL, imageType, callbackArgs, scale);> |
170 | < binary.length; ++i) { taintedHandler(imageURL, imageType, callbackArgs, scale);> |
|
172 | < binary.length; ++i) { }> |
171 | < binary.length; ++i) { }> |
|
173 | < binary.length; ++i) { }> |
172 | < binary.length; ++i) { }> |
|
174 | < binary.length; ++i) { } finally {> |
173 | < binary.length; ++i) { } finally {> |
|
175 | < binary.length; ++i) { if (finallyCallback) {> |
174 | < binary.length; ++i) { if (finallyCallback) {> |
|
176 | < binary.length; ++i) { finallyCallback(imageURL, imageType, callbackArgs, scale);> |
175 | < binary.length; ++i) { finallyCallback(imageURL, imageType, callbackArgs, scale);> |
|
177 | < binary.length; ++i) { }> |
176 | < binary.length; ++i) { }> |
|
178 | < binary.length; ++i) { }> |
177 | < binary.length; ++i) { }> |
|
179 | < binary.length; ++i) { }, loadEventDeferDelay); // IE bug where image is not always ready despite calling load event.> |
178 | < binary.length; ++i) { }, loadEventDeferDelay); // IE bug where image is not always ready despite calling load event.> |
|
180 | < binary.length; ++i) { },> |
179 | < binary.length; ++i) { },> |
|
181 | < binary.length; ++i) { // Image load failed (e.g. invalid URL)> |
180 | < binary.length; ++i) { // Image load failed (e.g. invalid URL)> |
|
182 | < binary.length; ++i) { errorHandler = function() {> |
181 | < binary.length; ++i) { errorHandler = function() {> |
|
183 | < binary.length; ++i) { failedLoadCallback(imageURL, imageType, callbackArgs, scale);> |
182 | < binary.length; ++i) { failedLoadCallback(imageURL, imageType, callbackArgs, scale);> |
|
184 | < binary.length; ++i) { if (finallyCallback) {> |
183 | < binary.length; ++i) { if (finallyCallback) {> |
|
185 | < binary.length; ++i) { finallyCallback(imageURL, imageType, callbackArgs, scale);> |
184 | < binary.length; ++i) { finallyCallback(imageURL, imageType, callbackArgs, scale);> |
|
186 | < binary.length; ++i) { }> |
185 | < binary.length; ++i) { }> |
|
187 | < binary.length; ++i) { };> |
186 | < binary.length; ++i) { };> |
|
188 | < binary.length; ++i) {> |
187 | < binary.length; ++i) {> |
|
189 | < binary.length; ++i) { // This is called on load if the image drawing to canvas failed with a security error.> |
188 | < binary.length; ++i) { // This is called on load if the image drawing to canvas failed with a security error.> |
|
190 | < binary.length; ++i) { // We retry the drawing with crossOrigin set to Anonymous.> |
189 | < binary.length; ++i) { // We retry the drawing with crossOrigin set to Anonymous.> |
|
191 | < binary.length; ++i) { taintedHandler = function() {> |
190 | < binary.length; ++i) { taintedHandler = function() {> |
|
192 | < binary.length; ++i) { img = new win.Image();> |
191 | < binary.length; ++i) { img = new win.Image();> |
|
193 | < binary.length; ++i) { taintedHandler = taintedCallback;> |
192 | < binary.length; ++i) { taintedHandler = taintedCallback;> |
|
194 | < binary.length; ++i) { img.crossOrigin = 'Anonymous'; // Must be set prior to loading image source> |
193 | < binary.length; ++i) { img.crossOrigin = 'Anonymous'; // Must be set prior to loading image source> |
|
195 | < binary.length; ++i) { img.onload = loadHandler;> |
194 | < binary.length; ++i) { img.onload = loadHandler;> |
|
196 | < binary.length; ++i) { img.onerror = errorHandler;> |
195 | < binary.length; ++i) { img.onerror = errorHandler;> |
|
197 | < binary.length; ++i) { img.src = imageURL;> |
196 | < binary.length; ++i) { img.src = imageURL;> |
|
198 | < binary.length; ++i) { };> |
197 | < binary.length; ++i) { };> |
|
199 | < binary.length; ++i) {> |
198 | < binary.length; ++i) {> |
|
200 | < binary.length; ++i) { img.onload = loadHandler;> |
199 | < binary.length; ++i) { img.onload = loadHandler;> |
|
201 | < binary.length; ++i) { img.onerror = errorHandler;> |
200 | < binary.length; ++i) { img.onerror = errorHandler;> |
|
202 | < binary.length; ++i) { img.src = imageURL;> |
201 | < binary.length; ++i) { img.src = imageURL;> |
|
203 | < binary.length; ++i) { };> |
202 | < binary.length; ++i) { };> |
|
204 | < binary.length; ++i) {> |
203 | < binary.length; ++i) {> |
|
205 | < binary.length; ++i) { /**> |
204 | < binary.length; ++i) { /**> |
|
206 | < binary.length; ++i) { * Get data URL to an image of an SVG and call download on it> |
205 | < binary.length; ++i) { * Get data URL to an image of an SVG and call download on it> |
|
207 | < binary.length; ++i) { *> |
206 | < binary.length; ++i) { *> |
|
208 | < binary.length; ++i) { * options object:> |
207 | < binary.length; ++i) { * options object:> |
|
209 | < binary.length; ++i) { * filename: Name of resulting downloaded file without extension> |
208 | < binary.length; ++i) { * filename: Name of resulting downloaded file without extension> |
|
210 | < binary.length; ++i) { * type: File type of resulting download> |
209 | < binary.length; ++i) { * type: File type of resulting download> |
|
211 | < binary.length; ++i) { * scale: Scaling factor of downloaded image compared to source> |
210 | < binary.length; ++i) { * scale: Scaling factor of downloaded image compared to source> |
|
212 | < binary.length; ++i) { * libURL: URL pointing to location of dependency scripts to download on demand> |
211 | < binary.length; ++i) { * libURL: URL pointing to location of dependency scripts to download on demand> |
|
213 | < binary.length; ++i) { */> |
212 | < binary.length; ++i) { */> |
|
214 | < binary.length; ++i) { Highcharts.downloadSVGLocal = function(svg, options, failCallback, successCallback) {> |
213 | < binary.length; ++i) { Highcharts.downloadSVGLocal = function(svg, options, failCallback, successCallback) {> |
|
215 | < binary.length; ++i) { var svgurl,> |
214 | < binary.length; ++i) { var svgurl,> |
|
216 | < binary.length; ++i) { blob,> |
215 | < binary.length; ++i) { blob,> |
|
217 | < binary.length; ++i) { objectURLRevoke = true,> |
216 | < binary.length; ++i) { objectURLRevoke = true,> |
|
218 | < binary.length; ++i) { finallyHandler,> |
217 | < binary.length; ++i) { finallyHandler,> |
|
219 | < binary.length; ++i) { libURL = options.libURL || Highcharts.getOptions().exporting.libURL,> |
218 | < binary.length; ++i) { libURL = options.libURL || Highcharts.getOptions().exporting.libURL,> |
|
220 | < binary.length; ++i) { dummySVGContainer = doc.createElement('div'),> |
219 | < binary.length; ++i) { dummySVGContainer = doc.createElement('div'),> |
|
221 | < binary.length; ++i) { imageType = options.type || 'image/png',> |
220 | < binary.length; ++i) { imageType = options.type || 'image/png',> |
|
222 | < binary.length; ++i) { filename = (options.filename || 'chart') + '.' + (imageType === 'image/svg+xml' ? 'svg' : imageType.split('/')[1]),> |
221 | < binary.length; ++i) { filename = (options.filename || 'chart') + '.' + (imageType === 'image/svg+xml' ? 'svg' : imageType.split('/')[1]),> |
|
223 | < binary.length; ++i) { scale = options.scale || 1;> |
222 | < binary.length; ++i) { scale = options.scale || 1;> |
|
224 | < binary.length; ++i) {> |
223 | < binary.length; ++i) {> |
|
225 | < binary.length; ++i) { libURL = libURL.slice(-1) !== '/' ? libURL + '/' : libURL; // Allow libURL to end with or without fordward slash> |
224 | < binary.length; ++i) { libURL = libURL.slice(-1) !== '/' ? libURL + '/' : libURL; // Allow libURL to end with or without fordward slash> |
|
226 | < binary.length; ++i) {> |
225 | < binary.length; ++i) {> |
|
227 | < binary.length; ++i) { function svgToPdf(svgElement, margin) {> |
226 | < binary.length; ++i) { function svgToPdf(svgElement, margin) {> |
|
228 | < binary.length; ++i) { var width = svgElement.width.baseVal.value + 2 * margin,> |
227 | < binary.length; ++i) { var width = svgElement.width.baseVal.value + 2 * margin,> |
|
229 | < binary.length; ++i) { height = svgElement.height.baseVal.value + 2 * margin,> |
228 | < binary.length; ++i) { height = svgElement.height.baseVal.value + 2 * margin,> |
|
230 | < binary.length; ++i) { pdf = new win.jsPDF('l', 'pt', [width, height]); // eslint-disable-line new-cap> |
229 | < binary.length; ++i) { pdf = new win.jsPDF('l', 'pt', [width, height]); // eslint-disable-line new-cap> |
|
231 | < binary.length; ++i) {> |
230 | < binary.length; ++i) {> |
|
232 | < binary.length; ++i) { win.svg2pdf(svgElement, pdf, {> |
231 | < binary.length; ++i) { win.svg2pdf(svgElement, pdf, {> |
|
233 | < binary.length; ++i) { removeInvalid: true> |
232 | < binary.length; ++i) { removeInvalid: true> |
|
234 | < binary.length; ++i) { });> |
233 | < binary.length; ++i) { });> |
|
235 | < binary.length; ++i) { return pdf.output('datauristring');> |
234 | < binary.length; ++i) { return pdf.output('datauristring');> |
|
236 | < binary.length; ++i) { }> |
235 | < binary.length; ++i) { }> |
|
237 | < binary.length; ++i) {> |
236 | < binary.length; ++i) {> |
|
238 | < binary.length; ++i) { function downloadPDF() {> |
237 | < binary.length; ++i) { function downloadPDF() {> |
|
239 | < binary.length; ++i) { dummySVGContainer.innerHTML = svg;> |
238 | < binary.length; ++i) { dummySVGContainer.innerHTML = svg;> |
|
240 | < binary.length; ++i) { var textElements = dummySVGContainer.getElementsByTagName('text'),> |
239 | < binary.length; ++i) { var textElements = dummySVGContainer.getElementsByTagName('text'),> |
|
241 | < binary.length; ++i) { titleElements,> |
240 | < binary.length; ++i) { titleElements,> |
|
242 | < binary.length; ++i) { svgData,> |
241 | < binary.length; ++i) { svgData,> |
|
243 | < binary.length; ++i) { svgElementStyle = dummySVGContainer.getElementsByTagName('svg')[0].style;> |
242 | < binary.length; ++i) { svgElementStyle = dummySVGContainer.getElementsByTagName('svg')[0].style;> |
|
244 | < binary.length; ++i) { // Workaround for the text styling. Making sure it does pick up the root element> |
243 | < binary.length; ++i) { // Workaround for the text styling. Making sure it does pick up the root element> |
|
245 | < binary.length; ++i) { each(textElements, function(el) {> |
244 | < binary.length; ++i) { each(textElements, function(el) {> |
|
246 | < binary.length; ++i) { // Workaround for the text styling. making sure it does pick up the root element> |
245 | < binary.length; ++i) { // Workaround for the text styling. making sure it does pick up the root element> |
|
247 | < binary.length; ++i) { each(['font-family', 'font-size'], function(property) {> |
246 | < binary.length; ++i) { each(['font-family', 'font-size'], function(property) {> |
|
248 | < binary.length; ++i) { if (!el.style[property] && svgElementStyle[property]) {> |
247 | < binary.length; ++i) { if (!el.style[property] && svgElementStyle[property]) {> |
|
249 | < binary.length; ++i) { el.style[property] = svgElementStyle[property];> |
248 | < binary.length; ++i) { el.style[property] = svgElementStyle[property];> |
|
250 | < binary.length; ++i) { }> |
249 | < binary.length; ++i) { }> |
|
251 | < binary.length; ++i) { });> |
250 | < binary.length; ++i) { });> |
|
252 | < binary.length; ++i) { el.style['font-family'] = el.style['font-family'] && el.style['font-family'].split(' ').splice(-1);> |
251 | < binary.length; ++i) { el.style['font-family'] = el.style['font-family'] && el.style['font-family'].split(' ').splice(-1);> |
|
253 | < binary.length; ++i) { // Workaround for plotband with width, removing title from text nodes> |
252 | < binary.length; ++i) { // Workaround for plotband with width, removing title from text nodes> |
|
254 | < binary.length; ++i) { titleElements = el.getElementsByTagName('title');> |
253 | < binary.length; ++i) { titleElements = el.getElementsByTagName('title');> |
|
255 | < binary.length; ++i) { each(titleElements, function(titleElement) {> |
254 | < binary.length; ++i) { each(titleElements, function(titleElement) {> |
|
256 | < binary.length; ++i) { el.removeChild(titleElement);> |
255 | < binary.length; ++i) { el.removeChild(titleElement);> |
|
257 | < binary.length; ++i) { });> |
256 | < binary.length; ++i) { });> |
|
258 | < binary.length; ++i) { });> |
257 | < binary.length; ++i) { });> |
|
259 | < binary.length; ++i) { svgData = svgToPdf(dummySVGContainer.firstChild, 0);> |
258 | < binary.length; ++i) { svgData = svgToPdf(dummySVGContainer.firstChild, 0);> |
|
260 | < binary.length; ++i) { try {> |
259 | < binary.length; ++i) { try {> |
|
261 | < binary.length; ++i) { Highcharts.downloadURL(svgData, filename);> |
260 | < binary.length; ++i) { Highcharts.downloadURL(svgData, filename);> |
|
262 | < binary.length; ++i) { if (successCallback) {> |
261 | < binary.length; ++i) { if (successCallback) {> |
|
263 | < binary.length; ++i) { successCallback();> |
262 | < binary.length; ++i) { successCallback();> |
|
264 | < binary.length; ++i) { }> |
263 | < binary.length; ++i) { }> |
|
265 | < binary.length; ++i) { } catch (e) {> |
264 | < binary.length; ++i) { } catch (e) {> |
|
266 | < binary.length; ++i) { failCallback();> |
265 | < binary.length; ++i) { failCallback();> |
|
267 | < binary.length; ++i) { }> |
266 | < binary.length; ++i) { }> |
|
268 | < binary.length; ++i) { }> |
267 | < binary.length; ++i) { }> |
|
269 | < binary.length; ++i) {> |
268 | < binary.length; ++i) {> |
|
270 | < binary.length; ++i) { // Initiate download depending on file type> |
269 | < binary.length; ++i) { // Initiate download depending on file type> |
|
271 | < binary.length; ++i) { if (imageType === 'image/svg+xml') {> |
270 | < binary.length; ++i) { if (imageType === 'image/svg+xml') {> |
|
272 | < binary.length; ++i) { // SVG download. In this case, we want to use Microsoft specific Blob if available> |
271 | < binary.length; ++i) { // SVG download. In this case, we want to use Microsoft specific Blob if available> |
|
273 | < binary.length; ++i) { try {> |
272 | < binary.length; ++i) { try {> |
|
274 | < binary.length; ++i) { if (nav.msSaveOrOpenBlob) {> |
273 | < binary.length; ++i) { if (nav.msSaveOrOpenBlob) {> |
|
275 | < binary.length; ++i) { blob = new MSBlobBuilder();> |
274 | < binary.length; ++i) { blob = new MSBlobBuilder();> |
|
276 | < binary.length; ++i) { blob.append(svg);> |
275 | < binary.length; ++i) { blob.append(svg);> |
|
277 | < binary.length; ++i) { svgurl = blob.getBlob('image/svg+xml');> |
276 | < binary.length; ++i) { svgurl = blob.getBlob('image/svg+xml');> |
|
278 | < binary.length; ++i) { } else {> |
277 | < binary.length; ++i) { } else {> |
|
279 | < binary.length; ++i) { svgurl = Highcharts.svgToDataUrl(svg);> |
278 | < binary.length; ++i) { svgurl = Highcharts.svgToDataUrl(svg);> |
|
280 | < binary.length; ++i) { }> |
279 | < binary.length; ++i) { }> |
|
281 | < binary.length; ++i) { Highcharts.downloadURL(svgurl, filename);> |
280 | < binary.length; ++i) { Highcharts.downloadURL(svgurl, filename);> |
|
282 | < binary.length; ++i) { if (successCallback) {> |
281 | < binary.length; ++i) { if (successCallback) {> |
|
283 | < binary.length; ++i) { successCallback();> |
282 | < binary.length; ++i) { successCallback();> |
|
284 | < binary.length; ++i) { }> |
283 | < binary.length; ++i) { }> |
|
285 | < binary.length; ++i) { } catch (e) {> |
284 | < binary.length; ++i) { } catch (e) {> |
|
286 | < binary.length; ++i) { failCallback();> |
285 | < binary.length; ++i) { failCallback();> |
|
287 | < binary.length; ++i) { }> |
286 | < binary.length; ++i) { }> |
|
288 | < binary.length; ++i) { } else if (imageType === 'application/pdf') {> |
287 | < binary.length; ++i) { } else if (imageType === 'application/pdf') {> |
|
289 | < binary.length; ++i) { if (win.jsPDF && win.svg2pdf) {> |
288 | < binary.length; ++i) { if (win.jsPDF && win.svg2pdf) {> |
|
290 | < binary.length; ++i) { downloadPDF();> |
289 | < binary.length; ++i) { downloadPDF();> |
|
291 | < binary.length; ++i) { } else {> |
290 | < binary.length; ++i) { } else {> |
|
292 | < binary.length; ++i) { // Must load pdf libraries first> |
291 | < binary.length; ++i) { // Must load pdf libraries first> |
|
293 | < binary.length; ++i) { objectURLRevoke = true; // Don't destroy the object URL yet since we are doing things asynchronously. A cleaner solution would be nice, but this will do for now.> |
292 | < binary.length; ++i) { objectURLRevoke = true; // Don't destroy the object URL yet since we are doing things asynchronously. A cleaner solution would be nice, but this will do for now.> |
|
294 | < binary.length; ++i) { getScript(libURL + 'jspdf.js', function() {> |
293 | < binary.length; ++i) { getScript(libURL + 'jspdf.js', function() {> |
|
295 | < binary.length; ++i) { getScript(libURL + 'svg2pdf.js', function() {> |
294 | < binary.length; ++i) { getScript(libURL + 'svg2pdf.js', function() {> |
|
296 | < binary.length; ++i) { downloadPDF();> |
295 | < binary.length; ++i) { downloadPDF();> |
|
297 | < binary.length; ++i) { });> |
296 | < binary.length; ++i) { });> |
|
298 | < binary.length; ++i) { });> |
297 | < binary.length; ++i) { });> |
|
299 | < binary.length; ++i) { }> |
298 | < binary.length; ++i) { }> |
|
300 | < binary.length; ++i) { } else {> |
299 | < binary.length; ++i) { } else {> |
|
301 | < binary.length; ++i) { // PNG/JPEG download - create bitmap from SVG> |
300 | < binary.length; ++i) { // PNG/JPEG download - create bitmap from SVG> |
|
302 | < binary.length; ++i) {> |
301 | < binary.length; ++i) {> |
|
303 | < binary.length; ++i) { svgurl = Highcharts.svgToDataUrl(svg);> |
302 | < binary.length; ++i) { svgurl = Highcharts.svgToDataUrl(svg);> |
|
304 | < binary.length; ++i) { finallyHandler = function() {> |
303 | < binary.length; ++i) { finallyHandler = function() {> |
|
305 | < binary.length; ++i) { try {> |
304 | < binary.length; ++i) { try {> |
|
306 | < binary.length; ++i) { domurl.revokeObjectURL(svgurl);> |
305 | < binary.length; ++i) { domurl.revokeObjectURL(svgurl);> |
|
307 | < binary.length; ++i) { } catch (e) {> |
306 | < binary.length; ++i) { } catch (e) {> |
|
308 | < binary.length; ++i) { // Ignore> |
307 | < binary.length; ++i) { // Ignore> |
|
309 | < binary.length; ++i) { }> |
308 | < binary.length; ++i) { }> |
|
310 | < binary.length; ++i) { };> |
309 | < binary.length; ++i) { };> |
|
311 | < binary.length; ++i) { // First, try to get PNG by rendering on canvas> |
310 | < binary.length; ++i) { // First, try to get PNG by rendering on canvas> |
|
312 | < binary.length; ++i) { Highcharts.imageToDataUrl(svgurl, imageType, { /* args */ }, scale, function(imageURL) {> |
311 | < binary.length; ++i) { Highcharts.imageToDataUrl(svgurl, imageType, { /* args */ }, scale, function(imageURL) {> |
|
313 | < binary.length; ++i) { // Success> |
312 | < binary.length; ++i) { // Success> |
|
314 | < binary.length; ++i) { try {> |
313 | < binary.length; ++i) { try {> |
|
315 | < binary.length; ++i) { Highcharts.downloadURL(imageURL, filename);> |
314 | < binary.length; ++i) { Highcharts.downloadURL(imageURL, filename);> |
|
316 | < binary.length; ++i) { if (successCallback) {> |
315 | < binary.length; ++i) { if (successCallback) {> |
|
317 | < binary.length; ++i) { successCallback();> |
316 | < binary.length; ++i) { successCallback();> |
|
318 | < binary.length; ++i) { }> |
317 | < binary.length; ++i) { }> |
|
319 | < binary.length; ++i) { } catch (e) {> |
318 | < binary.length; ++i) { } catch (e) {> |
|
320 | < binary.length; ++i) { failCallback();> |
319 | < binary.length; ++i) { failCallback();> |
|
321 | < binary.length; ++i) { }> |
320 | < binary.length; ++i) { }> |
|
322 | < binary.length; ++i) { }, function() {> |
321 | < binary.length; ++i) { }, function() {> |
|
323 | < binary.length; ++i) { // Failed due to tainted canvas> |
322 | < binary.length; ++i) { // Failed due to tainted canvas> |
|
324 | < binary.length; ++i) { // Create new and untainted canvas> |
323 | < binary.length; ++i) { // Create new and untainted canvas> |
|
325 | < binary.length; ++i) { var canvas = doc.createElement('canvas'),> |
324 | < binary.length; ++i) { var canvas = doc.createElement('canvas'),> |
|
326 | < binary.length; ++i) { ctx = canvas.getContext('2d'),> |
325 | < binary.length; ++i) { ctx = canvas.getContext('2d'),> |
|
327 | < binary.length; ++i) { imageWidth = svg.match(/^)[1] * scale,> |
326 | < binary.length; ++i) { imageWidth = svg.match(/^)[1] * scale,> |
|
328 | < binary.length; ++i) {> |
327 | < binary.length; ++i) { |
|
329 | < binary.length; ++i) { |
328 | < binary.length; ++i) { |
|
330 | < binary.length; ++i) { |
329 | < binary.length; ++i) { |
|
331 | < binary.length; ++i) { |
330 | < binary.length; ++i) { |
|
332 | < binary.length; ++i) { |
331 | < binary.length; ++i) { |
|
333 | < binary.length; ++i) { |
332 | < binary.length; ++i) { |
|
334 | < binary.length; ++i) { |
333 | < binary.length; ++i) { |
|
335 | < binary.length; ++i) { |
334 | < binary.length; ++i) { |
|
336 | < binary.length; ++i) { |
335 | < binary.length; ++i) { |
|
337 | < binary.length; ++i) { |
336 | < binary.length; ++i) { |
|
338 | < binary.length; ++i) { |
337 | < binary.length; ++i) { |
|
339 | < binary.length; ++i) { |
338 | < binary.length; ++i) { |
|
340 | < binary.length; ++i) { |
339 | < binary.length; ++i) { |
|
341 | < binary.length; ++i) { |
340 | < binary.length; ++i) { |
|
342 | < binary.length; ++i) { |
341 | < binary.length; ++i) { |
|
343 | < binary.length; ++i) { |
342 | < binary.length; ++i) { |
|
344 | < binary.length; ++i) { |
343 | < binary.length; ++i) { |
|
345 | < binary.length; ++i) { |
344 | < binary.length; ++i) { |
|
346 | < binary.length; ++i) { |
345 | < binary.length; ++i) { |
|
347 | < binary.length; ++i) { |
346 | < binary.length; ++i) { |
|
348 | < binary.length; ++i) { |
347 | < binary.length; ++i) { |
|
349 | < binary.length; ++i) { |
348 | < binary.length; ++i) { |
|
350 | < binary.length; ++i) { |
349 | < binary.length; ++i) { |
|
351 | < binary.length; ++i) { |
350 | < binary.length; ++i) { |
|
352 | < binary.length; ++i) { |
351 | < binary.length; ++i) { |
|
353 | < binary.length; ++i) { |
352 | < binary.length; ++i) { |
|
354 | < binary.length; ++i) { |
353 | < binary.length; ++i) { |
|
355 | < binary.length; ++i) { |
354 | < binary.length; ++i) { |
|
356 | < binary.length; ++i) { |
355 | < binary.length; ++i) { |
|
357 | < binary.length; ++i) { |
356 | < binary.length; ++i) { |
|
358 | < binary.length; ++i) { |
357 | < binary.length; ++i) { |
|
359 | < binary.length; ++i) { |
358 | < binary.length; ++i) { |
|
360 | < binary.length; ++i) { |
359 | < binary.length; ++i) { |
|
361 | < binary.length; ++i) { |
360 | < binary.length; ++i) { |
|
362 | < binary.length; ++i) { |
361 | < binary.length; ++i) { |
|
363 | < binary.length; ++i) { |
362 | < binary.length; ++i) { |
|
364 | < binary.length; ++i) { |
363 | < binary.length; ++i) { |
|
365 | < binary.length; ++i) { |
364 | < binary.length; ++i) { |
|
366 | < binary.length; ++i) { |
365 | < binary.length; ++i) { |
|
367 | < binary.length; ++i) { |
366 | < binary.length; ++i) { |
|
368 | < binary.length; ++i) { |
367 | < binary.length; ++i) { |
|
369 | < binary.length; ++i) { |
368 | < binary.length; ++i) { |
|
370 | < binary.length; ++i) { |
369 | < binary.length; ++i) { |
|
371 | < binary.length; ++i) { |
370 | < binary.length; ++i) { |
|
372 | < binary.length; ++i) { |
371 | < binary.length; ++i) { |
|
373 | < binary.length; ++i) { |
372 | < binary.length; ++i) { |
|
374 | < binary.length; ++i) { |
373 | < binary.length; ++i) { |
|
375 | < binary.length; ++i) { |
374 | < binary.length; ++i) { |
|
376 | < binary.length; ++i) { |
375 | < binary.length; ++i) { |
|
377 | < binary.length; ++i) { |
376 | < binary.length; ++i) { |
|
378 | < binary.length; ++i) { |
377 | < binary.length; ++i) { |
|
379 | < binary.length; ++i) { |
378 | < binary.length; ++i) { |
|
380 | < binary.length; ++i) { |
379 | < binary.length; ++i) { |
|
381 | < binary.length; ++i) { |
380 | < binary.length; ++i) { |
|
382 | < binary.length; ++i) { |
381 | < binary.length; ++i) { |
|
383 | < binary.length; ++i) { |
382 | < binary.length; ++i) { |
|
384 | < binary.length; ++i) { |
383 | < binary.length; ++i) { |
|
385 | < binary.length; ++i) { |
384 | < binary.length; ++i) { |
|
386 | < binary.length; ++i) { |
385 | < binary.length; ++i) { |
|
387 | < binary.length; ++i) { |
386 | < binary.length; ++i) { |
|
388 | < binary.length; ++i) { |
387 | < binary.length; ++i) { |
|
389 | < binary.length; ++i) { |
388 | < binary.length; ++i) { |
|
390 | < binary.length; ++i) { |
389 | < binary.length; ++i) { |
|
391 | < binary.length; ++i) { |
390 | < binary.length; ++i) { |
|
392 | < binary.length; ++i) { |
391 | < binary.length; ++i) { |
|
393 | < binary.length; ++i) { |
392 | < binary.length; ++i) { |
|
394 | < binary.length; ++i) { |
393 | < binary.length; ++i) { |
|
395 | < binary.length; ++i) { |
394 | < binary.length; ++i) { |
|
396 | < binary.length; ++i) { |
395 | < binary.length; ++i) { |
|
397 | < binary.length; ++i) { |
396 | < binary.length; ++i) { |
|
398 | < binary.length; ++i) { |
397 | < binary.length; ++i) { |
|
399 | < binary.length; ++i) { |
398 | < binary.length; ++i) { |
|
400 | < binary.length; ++i) { |
399 | < binary.length; ++i) { |
|
401 | < binary.length; ++i) { |
400 | < binary.length; ++i) { |
|
402 | < binary.length; ++i) { |
401 | < binary.length; ++i) { |
|
403 | < binary.length; ++i) { |
402 | < binary.length; ++i) { |
|
404 | < binary.length; ++i) { |
403 | < binary.length; ++i) { |
|
405 | < binary.length; ++i) { |
404 | < binary.length; ++i) { |
|
406 | < binary.length; ++i) { |
405 | < binary.length; ++i) { |
|
407 | < binary.length; ++i) { |
406 | < binary.length; ++i) { |
|
408 | < binary.length; ++i) { |
407 | < binary.length; ++i) { |
|
409 | < binary.length; ++i) { |
408 | < binary.length; ++i) { |
|
410 | < binary.length; ++i) { |
409 | < binary.length; ++i) { |
|
411 | < binary.length; ++i) { |
410 | < binary.length; ++i) { |
|
412 | < binary.length; ++i) { |
411 | < binary.length; ++i) { |
|
413 | < binary.length; ++i) { |
412 | < binary.length; ++i) { |
|
414 | < binary.length; ++i) { |
413 | < binary.length; ++i) { |
|
415 | < binary.length; ++i) { |
414 | < binary.length; ++i) { |
|
416 | < binary.length; ++i) { |
415 | < binary.length; ++i) { |
|
417 | < binary.length; ++i) { |
416 | < binary.length; ++i) { |
|
418 | < binary.length; ++i) { |
417 | < binary.length; ++i) { |
|
419 | < binary.length; ++i) { |
418 | < binary.length; ++i) { |
|
420 | < binary.length; ++i) { |
419 | < binary.length; ++i) { |
|
421 | < binary.length; ++i) { |
420 | < binary.length; ++i) { |
|
422 | < binary.length; ++i) { |
421 | < binary.length; ++i) { |
|
423 | < binary.length; ++i) { |
422 | < binary.length; ++i) { |
|
424 | < binary.length; ++i) { |
423 | < binary.length; ++i) { |
|
425 | < binary.length; ++i) { |
424 | < binary.length; ++i) { |
|
426 | < binary.length; ++i) { |
425 | < binary.length; ++i) { |
|
427 | < binary.length; ++i) { |
426 | < binary.length; ++i) { |
|
428 | < binary.length; ++i) { |
427 | < binary.length; ++i) { |
|
429 | < binary.length; ++i) { |
428 | < binary.length; ++i) { |
|
430 | < binary.length; ++i) { |
429 | < binary.length; ++i) { |
|
431 | < binary.length; ++i) { |
430 | < binary.length; ++i) { |
|
432 | < binary.length; ++i) { |
431 | < binary.length; ++i) { |
|
433 | < binary.length; ++i) { |
432 | < binary.length; ++i) { |
|
434 | < binary.length; ++i) { |
433 | < binary.length; ++i) { |
|
435 | < binary.length; ++i) { |
434 | < binary.length; ++i) { |
|
436 | < binary.length; ++i) { |
435 | < binary.length; ++i) { |
|
437 | < binary.length; ++i) { |
436 | < binary.length; ++i) { |
|
438 | < binary.length; ++i) { |
437 | < binary.length; ++i) { |
|
439 | < binary.length; ++i) { |
438 | < binary.length; ++i) { |
|
440 | < binary.length; ++i) { |
439 | < binary.length; ++i) { |
|
441 | < binary.length; ++i) { |
440 | < binary.length; ++i) { |
|
442 | < binary.length; ++i) { |
441 | < binary.length; ++i) { |
|
443 | < binary.length; ++i) { |
442 | < binary.length; ++i) { |
|
444 | < binary.length; ++i) { |
443 | < binary.length; ++i) { |
|
445 | < binary.length; ++i) { |
444 | < binary.length; ++i) { |
|
- | 445 | < binary.length; ++i) { |
||
- | 446 | < binary.length; ++i) { |
||
- | 447 | < binary.length; ++i) { |
||
- | 448 | < binary.length; ++i) { |
||
- | 449 | < binary.length; ++i) { |
||
- | 450 | < binary.length; ++i) { |
||
- | 451 | < binary.length; ++i) { |
||
446 | < binary.length; ++i) { |
452 | < binary.length; ++i) { |
|
- | 453 | < binary.length; ++i) { |
||
- | 454 | < binary.length; ++i) { |
||
447 | < binary.length; ++i) { |
455 | < binary.length; ++i) { |
|
448 | < binary.length; ++i) { |
456 | < binary.length; ++i) { |
|
449 | < binary.length; ++i) { |
457 | < binary.length; ++i) { |
|
450 | < binary.length; ++i) { |
458 | < binary.length; ++i) { |
|
451 | < binary.length; ++i) { |
459 | < binary.length; ++i) { |
|
452 | < binary.length; ++i) { |
460 | < binary.length; ++i) { |
|
453 | < binary.length; ++i) { |
461 | < binary.length; ++i) { |
|
454 | < binary.length; ++i) { |
462 | < binary.length; ++i) { |
|
455 | < binary.length; ++i) { |
463 | < binary.length; ++i) { |
|
456 | < binary.length; ++i) { |
464 | < binary.length; ++i) { |
|
457 | < binary.length; ++i) { |
465 | < binary.length; ++i) { |
|
458 | < binary.length; ++i) { |
466 | < binary.length; ++i) { |
|
459 | < binary.length; ++i) { |
467 | < binary.length; ++i) { |
|
460 | < binary.length; ++i) { |
468 | < binary.length; ++i) { |
|
461 | < binary.length; ++i) { |
469 | < binary.length; ++i) { |
|
462 | < binary.length; ++i) { |
470 | < binary.length; ++i) { |
|
463 | < binary.length; ++i) { |
471 | < binary.length; ++i) { |
|
464 | < binary.length; ++i) { |
472 | < binary.length; ++i) { |
|
465 | < binary.length; ++i) { |
473 | < binary.length; ++i) { |
|
466 | < binary.length; ++i) { |
474 | < binary.length; ++i) { |
|
467 | < binary.length; ++i) { |
475 | < binary.length; ++i) { |
|
468 | < binary.length; ++i) { |
476 | < binary.length; ++i) { |
|
469 | < binary.length; ++i) { |
477 | < binary.length; ++i) { |
|
470 | < binary.length; ++i) { |
478 | < binary.length; ++i) { |
|
471 | < binary.length; ++i) { |
479 | < binary.length; ++i) { |
|
472 | < binary.length; ++i) { |
480 | < binary.length; ++i) { |
|
473 | < binary.length; ++i) { |
481 | < binary.length; ++i) { |
|
- | 482 | < binary.length; ++i) { |
||
- | 483 | < binary.length; ++i) { |
||
- | 484 | < binary.length; ++i) { |
||
- | 485 | < binary.length; ++i) { |
||
- | 486 | < binary.length; ++i) { |
||
- | 487 | < binary.length; ++i) { |
||
- | 488 | < binary.length; ++i) { |
||
- | 489 | < binary.length; ++i) { |
||
- | 490 | < binary.length; ++i) { |
||
- | 491 | < binary.length; ++i) { |
||
- | 492 | < binary.length; ++i) { |
||
- | 493 | < binary.length; ++i) { |
||
- | 494 | < binary.length; ++i) { |
||
- | 495 | < binary.length; ++i) { |
||
- | 496 | < binary.length; ++i) { |
||
- | 497 | < binary.length; ++i) { |
||
- | 498 | < binary.length; ++i) { |
||
- | 499 | < binary.length; ++i) { |
||
- | 500 | < binary.length; ++i) { |
||
- | 501 | < binary.length; ++i) { |
||
- | 502 | < binary.length; ++i) { |
||
- | 503 | < binary.length; ++i) { |
||
- | 504 | < binary.length; ++i) { |
||
- | 505 | < binary.length; ++i) { |
||
- | 506 | < binary.length; ++i) { |
||
- | 507 | < binary.length; ++i) { |
||
- | 508 | < binary.length; ++i) { |
||
- | 509 | < binary.length; ++i) { |
||
- | 510 | < binary.length; ++i) { |
||
- | 511 | < binary.length; ++i) { |
||
- | 512 | < binary.length; ++i) { |
||
- | 513 | < binary.length; ++i) { |
||
- | 514 | < binary.length; ++i) { |
||
- | 515 | < binary.length; ++i) { |
||
- | 516 | < binary.length; ++i) { |
||
- | 517 | < binary.length; ++i) { |
||
- | 518 | < binary.length; ++i) { |
||
- | 519 | < binary.length; ++i) { |
||
474 | < binary.length; ++i) { |
520 | < binary.length; ++i) { |
|
475 | < binary.length; ++i) { |
521 | < binary.length; ++i) { |
|
476 | < binary.length; ++i) { |
522 | < binary.length; ++i) { |
|
477 | < binary.length; ++i) { |
523 | < binary.length; ++i) { |
|
478 | < binary.length; ++i) { |
524 | < binary.length; ++i) { |
|
479 | < binary.length; ++i) { |
525 | < binary.length; ++i) { |
|
480 | < binary.length; ++i) { |
526 | < binary.length; ++i) { |
|
481 | < binary.length; ++i) { |
527 | < binary.length; ++i) { |
|
482 | < binary.length; ++i) { |
528 | < binary.length; ++i) { |
|
483 | < binary.length; ++i) { |
529 | < binary.length; ++i) { |
|
484 | < binary.length; ++i) { |
530 | < binary.length; ++i) { |
|
485 | < binary.length; ++i) { |
531 | < binary.length; ++i) { |
|
486 | < binary.length; ++i) { |
532 | < binary.length; ++i) { |
|
487 | < binary.length; ++i) { |
533 | < binary.length; ++i) { |
|
488 | < binary.length; ++i) { |
534 | < binary.length; ++i) { |
|
489 | < binary.length; ++i) { |
535 | < binary.length; ++i) { |
|
490 | < binary.length; ++i) { |
536 | < binary.length; ++i) { |
|
491 | < binary.length; ++i) { |
537 | < binary.length; ++i) { |
|
492 | < binary.length; ++i) { |
538 | < binary.length; ++i) { |
|
493 | < binary.length; ++i) { |
539 | < binary.length; ++i) { |
|
494 | < binary.length; ++i) { |
540 | < binary.length; ++i) { |
|
495 | < binary.length; ++i) { |
541 | < binary.length; ++i) { |
|
496 | < binary.length; ++i) { |
542 | < binary.length; ++i) { |
|
497 | < binary.length; ++i) { |
543 | < binary.length; ++i) { |
|
498 | < binary.length; ++i) { |
544 | < binary.length; ++i) { |
|
499 | < binary.length; ++i) { |
545 | < binary.length; ++i) { |
|
500 | < binary.length; ++i) { |
546 | < binary.length; ++i) { |
|
501 | < binary.length; ++i) { |
547 | < binary.length; ++i) { |
|
502 | < binary.length; ++i) { |
548 | < binary.length; ++i) { |
|
503 | < binary.length; ++i) { |
549 | < binary.length; ++i) { |
|
504 | < binary.length; ++i) { |
550 | < binary.length; ++i) { |
|
505 | < binary.length; ++i) { |
551 | < binary.length; ++i) { |
|
506 | < binary.length; ++i) { |
552 | < binary.length; ++i) { |
|
507 | < binary.length; ++i) { |
553 | < binary.length; ++i) { |
|
508 | < binary.length; ++i) { |
554 | < binary.length; ++i) { |
|
509 | < binary.length; ++i) { |
555 | < binary.length; ++i) { |
|
510 | < binary.length; ++i) { |
556 | < binary.length; ++i) { |
|
511 | < binary.length; ++i) { |
557 | < binary.length; ++i) { |
|
512 | < binary.length; ++i) { |
558 | < binary.length; ++i) { |
|
513 | < binary.length; ++i) { |
559 | < binary.length; ++i) { |
|
514 | < binary.length; ++i) { |
560 | < binary.length; ++i) { |
|
515 | < binary.length; ++i) { |
561 | < binary.length; ++i) { |
|
516 | < binary.length; ++i) { |
562 | < binary.length; ++i) { |
|
517 | < binary.length; ++i) { |
563 | < binary.length; ++i) { |
|
518 | < binary.length; ++i) { |
564 | < binary.length; ++i) { |
|
519 | < binary.length; ++i) { |
565 | < binary.length; ++i) { |
|
520 | < binary.length; ++i) { |
566 | < binary.length; ++i) { |
|
521 | < binary.length; ++i) { |
567 | < binary.length; ++i) { |
|
522 | < binary.length; ++i) { |
568 | < binary.length; ++i) { |
|
523 | < binary.length; ++i) { |
569 | < binary.length; ++i) { |
|
524 | < binary.length; ++i) { |
570 | < binary.length; ++i) { |
|
525 | < binary.length; ++i) { |
571 | < binary.length; ++i) { |
|
526 | < binary.length; ++i) { |
572 | < binary.length; ++i) { |
|
527 | < binary.length; ++i) { |
573 | < binary.length; ++i) { |
|
528 | < binary.length; ++i) { |
574 | < binary.length; ++i) { |
|
529 | < binary.length; ++i) { |
575 | < binary.length; ++i) { |
|
530 | < binary.length; ++i) { |
576 | < binary.length; ++i) { |
|
531 | < binary.length; ++i) { |
577 | < binary.length; ++i) { |
|
532 | < binary.length; ++i) { |
578 | < binary.length; ++i) { |
|
533 | < binary.length; ++i) { |
579 | < binary.length; ++i) { |
|
534 | < binary.length; ++i) { |
580 | < binary.length; ++i) { |
|
535 | < binary.length; ++i) { |
581 | < binary.length; ++i) { |
|
536 | < binary.length; ++i) { |
582 | < binary.length; ++i) { |
|
537 | < binary.length; ++i) { |
583 | < binary.length; ++i) { |
|
538 | < binary.length; ++i) { |
584 | < binary.length; ++i) { |
|
539 | < binary.length; ++i) { |
585 | < binary.length; ++i) { |
|
540 | < binary.length; ++i) { |
586 | < binary.length; ++i) { |
|
541 | < binary.length; ++i) { |
587 | < binary.length; ++i) { |
|
542 | < binary.length; ++i) { |
588 | < binary.length; ++i) { |
|
543 | < binary.length; ++i) { |
589 | < binary.length; ++i) { |
|
544 | < binary.length; ++i) { |
590 | < binary.length; ++i) { |
|
545 | < binary.length; ++i) { |
591 | < binary.length; ++i) { |
|
546 | < binary.length; ++i) { |
592 | < binary.length; ++i) { |