window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/svg\/","svgExt":".svg","source":{"wpemoji":"https:\/\/jopioneiro.mtportal.info\/wp-includes\/js\/wp-emoji.js?ver=6.3.5","twemoji":"https:\/\/jopioneiro.mtportal.info\/wp-includes\/js\/twemoji.js?ver=6.3.5"}};
/**
* @output wp-includes/js/wp-emoji-loader.js
*/
/**
* Emoji Settings as exported in PHP via _print_emoji_detection_script().
* @typedef WPEmojiSettings
* @type {object}
* @property {?object} source
* @property {?string} source.concatemoji
* @property {?string} source.twemoji
* @property {?string} source.wpemoji
* @property {?boolean} DOMReady
* @property {?Function} readyCallback
*/
/**
* tests.
* @typedef Tests
* @type {object}
* @property {?boolean} flag
* @property {?boolean} emoji
*/
/**
* IIFE to detect emoji and load Twemoji if needed.
*
* @param {Window} window
* @param {Document} document
* @param {WPEmojiSettings} settings
*/
( function wpEmojiLoader( window, document, settings ) {
if ( typeof Promise === 'undefined' ) {
return;
}
var sessionStorageKey = 'wpEmojiSettingss';
var tests = [ 'flag', 'emoji' ];
/**
* Checks whether the browser s offloading to a Worker.
*
* @since 6.3.0
*
* @private
*
* @returns {boolean}
*/
function sWorkerOffloading() {
return (
typeof Worker !== 'undefined' &&
typeof OffscreenCanvas !== 'undefined' &&
typeof URL !== 'undefined' &&
URL.createObjectURL &&
typeof Blob !== 'undefined'
);
}
/**
* @typedef SessionTests
* @type {object}
* @property {number} timestamp
* @property {Tests} Tests
*/
/**
* Get tests from session.
*
* @since 6.3.0
*
* @private
*
* @returns {?Tests} tests, or null if not set or older than 1 week.
*/
function getSessionTests() {
try {
/** @type {SessionTests} */
var item = JSON.parse(
sessionStorage.getItem( sessionStorageKey )
);
if (
typeof item === 'object' &&
typeof item.timestamp === 'number' &&
new Date().valueOf() < item.timestamp + 604800 && // Note: Number is a week in seconds.
typeof item.Tests === 'object'
) {
return item.Tests;
}
} catch ( e ) {}
return null;
}
/**
* Persist the s in session storage.
*
* @since 6.3.0
*
* @private
*
* @param {Tests} Tests tests.
*/
function setSessionTests( Tests ) {
try {
/** @type {SessionTests} */
var item = {
Tests: Tests,
timestamp: new Date().valueOf()
};
sessionStorage.setItem(
sessionStorageKey,
JSON.stringify( item )
);
} catch ( e ) {}
}
/**
* Checks if two sets of Emoji characters render the same visually.
*
* This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing
* scope. Everything must be ed by parameters.
*
* @since 4.9.0
*
* @private
*
* @param {CanvasRenderingContext2D} context 2D Context.
* @param {string} set1 Set of Emoji to test.
* @param {string} set2 Set of Emoji to test.
*
* @return {boolean} True if the two sets render the same.
*/
function emojiSetsRenderIdentically( context, set1, set2 ) {
// Cleanup from previous test.
context.clearRect( 0, 0, context.canvas.width, context.canvas.height );
context.fillText( set1, 0, 0 );
var rendered1 = new Uint32Array(
context.getImageData(
0,
0,
context.canvas.width,
context.canvas.height
).data
);
// Cleanup from previous test.
context.clearRect( 0, 0, context.canvas.width, context.canvas.height );
context.fillText( set2, 0, 0 );
var rendered2 = new Uint32Array(
context.getImageData(
0,
0,
context.canvas.width,
context.canvas.height
).data
);
return rendered1.every( function ( rendered2Data, index ) {
return rendered2Data === rendered2[ index ];
} );
}
/**
* Determines if the browser properly renders Emoji that Twemoji can supplement.
*
* This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing
* scope. Everything must be ed by parameters.
*
* @since 4.2.0
*
* @private
*
* @param {CanvasRenderingContext2D} context 2D Context.
* @param {string} type Whether to test for of "flag" or "emoji".
* @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification.
*
* @return {boolean} True if the browser can render emoji, false if it cannot.
*/
function browsersEmoji( context, type, emojiSetsRenderIdentically ) {
var isIdentical;
switch ( type ) {
case 'flag':
/*
* Test for Transgender flag compatibility. Added in Unicode 13.
*
* To test for , we try to render it, and compare the rendering to how it would look if
* the browser doesn't render it correctly (white flag emoji + transgender symbol).
*/
isIdentical = emojiSetsRenderIdentically(
context,
'\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F', // as a zero-width er sequence
'\uD83C\uDFF3\uFE0F\u200B\u26A7\uFE0F' // separated by a zero-width space
);
if ( isIdentical ) {
return false;
}
/*
* Test for UN flag compatibility. This is the least ed of the letter locale flags,
* so gives us an easy test for full .
*
* To test for , we try to render it, and compare the rendering to how it would look if
* the browser doesn't render it correctly ([U] + [N]).
*/
isIdentical = emojiSetsRenderIdentically(
context,
'\uD83C\uDDFA\uD83C\uDDF3', // as the sequence of two code points
'\uD83C\uDDFA\u200B\uD83C\uDDF3' // as the two code points separated by a zero-width space
);
if ( isIdentical ) {
return false;
}
/*
* Test for English flag compatibility. England is a country in the United Kingdom, it
* does not have a two letter locale code but rather a five letter sub-division code.
*
* To test for , we try to render it, and compare the rendering to how it would look if
* the browser doesn't render it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]).
*/
isIdentical = emojiSetsRenderIdentically(
context,
// as the flag sequence
'\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F',
// with each code point separated by a zero-width space
'\uD83C\uDFF4\u200B\uDB40\uDC67\u200B\uDB40\uDC62\u200B\uDB40\uDC65\u200B\uDB40\uDC6E\u200B\uDB40\uDC67\u200B\uDB40\uDC7F'
);
return ! isIdentical;
case 'emoji':
/*
* Why can't we be friends? Everyone can now shake hands in emoji, regardless of skin tone!
*
* To test for Emoji 14.0 , try to render a new emoji: Handshake: Light Skin Tone, Dark Skin Tone.
*
* The Handshake: Light Skin Tone, Dark Skin Tone emoji is a ZWJ sequence combining 🫱 Rightwards Hand,
* 🏻 Light Skin Tone, a Zero Width er, 🫲 Leftwards Hand, and 🏿 Dark Skin Tone.
*
* 0x1FAF1 == Rightwards Hand
* 0x1F3FB == Light Skin Tone
* 0x200D == Zero-Width er (ZWJ) that links the code points for the new emoji or
* 0x200B == Zero-Width Space (ZWS) that is rendered for clients not ing the new emoji.
* 0x1FAF2 == Leftwards Hand
* 0x1F3FF == Dark Skin Tone.
*
* When updating this test for future Emoji releases, ensure that individual emoji that make up the
* sequence come from older emoji standards.
*/
isIdentical = emojiSetsRenderIdentically(
context,
'\uD83E\uDEF1\uD83C\uDFFB\u200D\uD83E\uDEF2\uD83C\uDFFF', // as the zero-width er sequence
'\uD83E\uDEF1\uD83C\uDFFB\u200B\uD83E\uDEF2\uD83C\uDFFF' // separated by a zero-width space
);
return ! isIdentical;
}
return false;
}
/**
* Checks emoji tests.
*
* This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing
* scope. Everything must be ed by parameters.
*
* @since 6.3.0
*
* @private
*
* @param {string[]} tests Tests.
* @param {Function} browsersEmoji Reference to browsersEmoji function, needed due to minification.
* @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification.
*
* @return {Tests} tests.
*/
function testEmojis( tests, browsersEmoji, emojiSetsRenderIdentically ) {
var canvas;
if (
typeof WorkerGlobalScope !== 'undefined' &&
self instanceof WorkerGlobalScope
) {
canvas = new OffscreenCanvas( 300, 150 ); // Dimensions are default for HTMLCanvasElement.
} else {
canvas = document.createElement( 'canvas' );
}
var context = canvas.getContext( '2d', { willReadFrequently: true } );
/*
* Chrome on OS X added native emoji rendering in M41. Unfortunately,
* it doesn't work when the font is bolder than 500 weight. So, we
* check for bold rendering to avoid invisible emoji in Chrome.
*/
context.textBaseline = 'top';
context.font = '600 32px Arial';
var s = {};
tests.forEach( function ( test ) {
s[ test ] = browsersEmoji( context, test, emojiSetsRenderIdentically );
} );
return s;
}
/**
* Adds a script to the head of the document.
*
* @ignore
*
* @since 4.2.0
*
* @param {string} src The url where the script is located.
*
* @return {void}
*/
function addScript( src ) {
var script = document.createElement( 'script' );
script.src = src;
script.defer = true;
document.head.appendChild( script );
}
settings.s = {
everything: true,
everythingExceptFlag: true
};
// Create a promise for DOMContentLoaded since the worker logic may finish after the event has fired.
var domReadyPromise = new Promise( function ( resolve ) {
document.addEventListener( 'DOMContentLoaded', resolve, {
once: true
} );
} );
// Obtain the emoji from the browser, asynchronously when possible.
new Promise( function ( resolve ) {
var Tests = getSessionTests();
if ( Tests ) {
resolve( Tests );
return;
}
if ( sWorkerOffloading() ) {
try {
// Note that the functions are being ed as arguments due to minification.
var workerScript =
'postMessage(' +
testEmojis.toString() +
'(' +
[
JSON.stringify( tests ),
browsersEmoji.toString(),
emojiSetsRenderIdentically.toString()
].( ',' ) +
'));';
var blob = new Blob( [ workerScript ], {
type: 'text/javascript'
} );
var worker = new Worker( URL.createObjectURL( blob ), { name: 'wpTestEmojis' } );
worker.onmessage = function ( event ) {
Tests = event.data;
setSessionTests( Tests );
worker.terminate();
resolve( Tests );
};
return;
} catch ( e ) {}
}
Tests = testEmojis( tests, browsersEmoji, emojiSetsRenderIdentically );
setSessionTests( Tests );
resolve( Tests );
} )
// Once the browser emoji has been obtained from the session, finalize the settings.
.then( function ( Tests ) {
/*
* Tests the browser for flag emojis and other emojis, and adjusts the
* settings accordingly.
*/
for ( var test in Tests ) {
settings.s[ test ] = Tests[ test ];
settings.s.everything =
settings.s.everything && settings.s[ test ];
if ( 'flag' !== test ) {
settings.s.everythingExceptFlag =
settings.s.everythingExceptFlag &&
settings.s[ test ];
}
}
settings.s.everythingExceptFlag =
settings.s.everythingExceptFlag &&
! settings.s.flag;
// Sets DOMReady to false and assigns a ready function to settings.
settings.DOMReady = false;
settings.readyCallback = function () {
settings.DOMReady = true;
};
} )
.then( function () {
return domReadyPromise;
} )
.then( function () {
// When the browser can not render everything we need to load a polyfill.
if ( ! settings.s.everything ) {
settings.readyCallback();
var src = settings.source || {};
if ( src.concatemoji ) {
addScript( src.concatemoji );
} else if ( src.wpemoji && src.twemoji ) {
addScript( src.twemoji );
addScript( src.wpemoji );
}
}
} );
} )( window, document, window._wpemojiSettings );
window.tdb_global_vars = {"wpRestUrl":"https:\/\/jopioneiro.mtportal.info\/wp-json\/","permalinkStructure":"\/%postname%\/"};
window.tdb_p_autoload_vars = {"isAjax":false,"isBarShowing":false,"autoloadStatus":"off","origPostEditUrl":null};
Embarcações naufragadas dificilmente conseguem resistir por séculos no fundo do mar. De modo geral, navios feitos com madeira costumam ter sua estrutura completamente destruída ao longo de poucos séculos. Isso fez com que uma embarcação do século XIII relativamente bem preservada, chamasse a atenção de pesquisadores da Universidade de Bournemouth, no Reino Unido.
Uma equipe liderada pelo capitão do barco de mergulho Trevor Small descobriu o naufrágio em 2019, e Tom Cousins, oficial de mergulho e arqueologia marítima da Universidade de Bournemouth, ou a liderar uma série de mergulhos recentemente para tentar descobrir mais detalhes sobre a embarcação.
Lápides, cerâmicas, copos e vasos
Batizado de Mortar Wreck, o navio de carga foi encontrado perto do porto de Poole, no sul da Inglaterra. Ele está com os restos do casco ainda visíveis, o que é bastante raro para algo no fundo do mar há tanto tempo. Por esse motivo, o governo britânico concedeu ao naufrágio o mais alto nível de proteção oficial.
Até o momento, já foram encontrados diversos itens como potes, cerâmicas, copos, vasos e outros objetos de cozinha. Também foram descobertas duas lápides de pedra gótica e mármore bruto da Ilha de Purbeck. O que mais chama a atenção é o estado de conservação do material, que resistiu praticamente intacto por mais de sete séculos.
CURIOSIDADE DO DIA - Quem inventou o dia dos pais?
Os primeiros estudos feitos a partir das madeiras expostas do casco, indicam que ele foi feito de carvalho irlandês. A datação sugere que as árvores foram derrubadas entre 1242 e 1265, durante o reinado de Henrique III. A análise inicial também mostrou que o navio provavelmente tinha cerca de 20 metros de comprimento.
O Mortar Wreck provavelmente estava transportando sua carga de pedra para cidades e estabelecimentos religiosos mais ao leste da Inglaterra. As causas do naufrágio ainda são desconhecidas, mas é provável que a carga pesada tenha contribuído para isso durante uma tempestade.
O segredo da preservação
É raro que a madeira submersa sobreviva por muito tempo e chamou a atenção da equipe que estudo o navio. Aparentemente, o estado de preservação do naufrágio se deve à areia macia no fundo da Baía de Poole, que cobriu o casco logo após o naufrágio.
Porém, agora que as areias descobriram várias partes do casco, a madeira pode começar a se deteriorar rapidamente. Para evitar que isso aconteça, os mergulhadores estão “ensacando” as partes expostas do casco. Isso é feito cobrindo a madeira com sacos de areia para que a areia do fundo do mar se acumule sobre o casco novamente e proteja os destroços até que os arqueólogos possam retornar ao local para uma escavação completa.
Apesar de ser o mais antigo, o Mortar Wreck não é o único naufrágio a receber a proteção do governo britânico. Outras duas embarcações também foram encontradas no sul da Inglaterra. Um deles pode ter estado envolvido na Batalha de Portland em 1653 — um combate naval durante a Primeira Guerra Anglo-Holandesa. Já o segundo deve se tratar dos restos de um navio mercante do mesmo período.
Este site utiliza cookies para permitir uma melhor experiência por parte do utilizador. Ao navegar no site estará a consentir a sua utilizaçãoEstou cienteLeia a política de privacidade