cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2606:4700:4404::6812:21b9:443 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 403 Forbidden
Date: Sun, 11 Jan 2026 00:12:48 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8705
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bc034625fe2de44"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=iMceEXSxxLJ0NZKJBhSfIHd4ZfXOFfn7YY7gGpd.uYc-1768090368-1.0.1.1-RTMALoX1M3mSlFhU9Lr4BiNL2UodikjqP53gVrOsdGbXXf7KTtSh6Vctf49kIgnTvkgx2esCfReliBVf.mzOVrwL8E8hPWkBa0.mlG1T8Js; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bc034625fe2de44-YYZ
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'www.wrox.com',cType: 'managed',cRay: '9bc034625fe2de44',cH: '.2Sh72ZklNXxD7X9uhRwHYBCWS.CA_JhWyEfTPues20-1768090368-1.2.1.1-f1xy.AEqCnlaQ4XPhp5Hzh4l79cLx9CtFlTrO845JrHwOT9OmN2srQfBxJDdDlJT',cUPMDTk:"\/?__cf_chl_tk=IuK6OwOVs68kYdOpr7TV6CSqDVuToJ3bP46dZQxe_G8-1768090368-1.0.1.1-ctzial_7T5W7F93Rhd52BIhLIseb_O6yrMAFDus.WFM",cFPWv: 'g',cITimeS: '1768090368',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=IuK6OwOVs68kYdOpr7TV6CSqDVuToJ3bP46dZQxe_G8-1768090368-1.0.1.1-ctzial_7T5W7F93Rhd52BIhLIseb_O6yrMAFDus.WFM",md: 'WeBQ2h1N4KDuJVUTSyRu5sgXM8xWI0e.NNoyrDtvB8Q-1768090368-1.2.1.1-sAWMjz2pq.ex4MzrYy4Av1BczvCI2WosD6L5r9LNiFBh7JfyeaM_FpLNwAJkd1_QWADgY_SXtjLq6wmBcTL_sOxWC6HMTh42vxkPQ_RnsRJdJ1GuCyNOEF92q1WTVWvZd8emLZ90pAUQGxQJxgjjffLQZulnN4LvNrgIS1RHtmPoovrd1z9zieqiwqWwZVEwaw.lEamD8ouM1bMCXPNscKilRXLBfchveAtkoSyxNBgORvzquQL63pQytyB_HFikbDyO.b4plY_n9QyZZF4mLDtHjWV_An0hkFj_QIDVW52pfFIhx265KlA67dBGNWfpUqFgoJRvxL66PXvOBwSIqrmFJBs5dKJgMtQUCdBUxJCXeKcSuC8CqC.cELC9slFtLs4MQowmFx_1R.qaXRTZnGW3eneS53vF2V3p4gQ3I3vhZ8AyV3NNYoRxb6ro85aqtrehMmFvfWaCYLlEDkviFm.MetauoWNqHQOV1_yZaPg4m5sTQXy3R2bbwi6QNoobE1RZw05xFQ6ejgznawPAv2tp1B7cNHbZmmmiAqAOtG30udPXNVOMAkfpgPFdHoxK.rQiN7QAE_HrvwTMHDbjH_6POjVXCe_4ac9gyGQZTulnr7GtmGwt739.aDOViODjj5tcweHZEOLYUsIV5juNTLZcKfW1hpnzMA4XPRiAZWq8Z3ahxsiElu6jKW36BvcDZIyt.DJI97368n1N5f8.qziPvz1rYR5pUGNuDh9iSUhJO46aHER7jkFLM.xXlJ6kqU_glA40UVm2tGYqcsrx8fMTvGxqjY7U8Ur0F4kLgRf2PQU8lTqsm0cK_9AW.iXY6sslKKVvbWi3H3eJiy8i4_X0kgR7UFq4gIOQtsuWAFRZ6xyqwsbGaLlA4q5N2W_lk1t0j5sTxMwFzUZ1Wxf5fLjzNvO1FgCWH_qbZM0Io0DHjzoTWoGrqexg7TO0ipZq_6ppcpjffvuM8wjJJ4sfZjAKWKa9L0kgPoi8yvh9Ih5sVyu37j0blYDYs2uOMubDRS.vkh9AC1oPQuVFeYTpZcoaAgBrPFvF7nmG.58ZHtQ',mdrd: 'J3R_nVmlwzGuVWRdjsJ0ZHW16dUx6P7jtLmjYJj0nic-1768090368-1.2.1.1-KVsLqGdzG2PbMUc_cXxFFdxu3GIh.4N0NBSQIWNEh2Pv90KKIm9sRB7co4TRWtQVzJ0RKILvwd9EgDANm1o0uRWuxLBW642CudVTBgCkcbXID_phUko3mXq8klsJGeWPpD3QR0NpciwK3RwEW5DobyrLNg5uB7oQt2hwNH98Od4qqbe1AmoYejFXN1ZRFlfU9buU7ddm8V98PIF8wfkQOJxXIybnvsWn5aXsbJncefa4OPcj4iuvVZwW2vNH1AstsG6kiV7LwzLzhY2JRCpOh1.4FBtXtm5WIyrW9.BMJ1Z2m6OOrddaySdtuLhNFDBeJ1cRVFfcPC.thj.7RN2mkcsLNFg
Open service 172.64.154.71:8443 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 403 Forbidden
Date: Sun, 11 Jan 2026 00:12:48 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8598
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bc034624c5bf87e"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=KodJ2WhE2wk9cfnvdbMVYOK2YVTnyJ5Z25l0YKCpdeY-1768090368-1.0.1.1-1Un.OtFMy9jz.7y4kDGpfA_MGdS0hmotZb04ka3TVSEi_J2SCHbwhZFIooYg.UT4i9U.v8mWSQucp9SzRndrmDYl8LozlKq57kmIMUeQB6o; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bc034624c5bf87e-SIN
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'www.wrox.com',cType: 'managed',cRay: '9bc034624c5bf87e',cH: 'Ltz6QqBupZ3VN6pG3h0BV8Y2eVJOReaJ0hpfAeXE3CM-1768090368-1.2.1.1-PAFEryUdCC_PYaMzPsppvBpdz6WL5VS5n3skcBfr5gtmKGu7fD8ATak49wNVNdH.',cUPMDTk:"\/?__cf_chl_tk=aN5Kz.gfkqZmXAmmlGDZiK7UKSzAkLgAxXCIAqD0.jk-1768090368-1.0.1.1-DeQXbFdZk8Xc_3idRdTd16owa1n.yhyFNeUByp2EorA",cFPWv: 'g',cITimeS: '1768090368',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=aN5Kz.gfkqZmXAmmlGDZiK7UKSzAkLgAxXCIAqD0.jk-1768090368-1.0.1.1-DeQXbFdZk8Xc_3idRdTd16owa1n.yhyFNeUByp2EorA",md: '.bSwHgzclgIOrO6fHmcreq8aHjH9..ObgDuGBJwlsJ4-1768090368-1.2.1.1-c1ecmVYYungb71Pr.6QS8w402qm373wVVVjxtftl85bOLg7p2K74N_9FOXjU8rQvpN7K_aYdqZPo0H7oF0G5V9gWM5H45dgV.oh7rsTYYsPv0Q_IaJ8KYPK7P1ZjS82hqGIAM5mGZBhcan_0U.vPcAqufM0rnj0wc8nAenj0KgY0D4vb0HRLV4EO183Fq5FnUCJlBioPJeu.rTXK_EGLWKPAq.7JFvsJv1CKqDC6Bkj94WHGtMtPyaw.hYeb1glPBRoVKiT2BUNWMJHewG6BYtxPKtesWVutiCpm__tOe.C8deRMTxaqmK4Ij0bfW18X7iYis6A6XrCq0Bf7ACVoXsXdjSM.Bj3N3DCGpVG6tUty9sBaCYesQGryhQoRSf.msSAv6Kzs8Qu5Z34z46HothBnmLFs219j7mozljIBRkYGU120vahimg7mblCHdzVNB_vf9lv2Kn54.bX_NdamKvf0OszCPjHPMujlz87J362dIwn6fZ.KVNqSpKUZ.upIVAAN0WY0sBrmapo16zKS8.0yB._4IzVSzEBXNulfYzxim4qiRy2Yfk4nRiCLDJUpGooaAFTDkQiUj8GZG_pbffnZpgB5sNhYPDgNydWM8AA6u50cM7OMgxupGSsrkMBb_jOl87eB2dh2poh4JYKpsBvPXJilyQGzlp8Afd3cA4XzSILIdoyTCu3jum0VMReaSodDEaO_oC2kxvlcbk4j6evIr8SrcCxVBey2gycatU3T22hk1265KDjN.PJLEbZ36t1L8hLiuF9bpzimcJNSU67xGmhPTo62n0sDVfZ2Ldaka0VIFXZ4IyTRCAaHSRDqGmJFMcT9cTnAUA8A7e5LTN.xvQIA3.y_Ea.8C0fR8c.nExEzHlB8cnUrB8clDL10Jtk0K5bLaAe4nZOLTa0swjiWd2C1tHMNF4vCtJWunC8sXor2yJI.Iydbdee3b1rjLr2VullQLQIMqCPqFw1PwpdpKlGt2SDbpldxuudHBWg',mdrd: 'ZxX8mXt1NLZ7SoIA1F3nZl2M0sUpllQJT2Ns7BcjEyQ-1768090368-1.2.1.1-G0qgjX.yYXJ8gcjsqJZ8BWEIM.ZjOSRZ56K0bmCdgATqalmxBF7NOP0bYSLbEVHeBdi_1nz4t8UQWTbpwoZZUqNKXdiz_7JVHzUd4i1rWLzI70NoTG6hYiwkkP9wzBPanog93npG0emLbO3TURMUbLT.EkwYR5T93wQl_wge7bllDC.HrCbeB57pMvLAVvz1DMcihvSbSIzyShJQJPfD_pU8brtDQP3qFAJJXaIaqGKJ4uZhWKkvYLs9lx7nKij1u6bB9niWtNvVDPlT6XO9xzKWwmjMD8Lpdy3v28VUuF3PGDrA6YHAarc6uv31oQyz5KuO4HYHVVUJP4f_..K0mVvxszE2.cLWweJKo3wFMo6r5cK.rvNZafM0GEDV6d_paYuJjC28xNtKZ0nghVrtpKVWf6z
Open service 2606:4700:4406::ac40:9a47:8443 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 403 Forbidden
Date: Sun, 11 Jan 2026 00:12:48 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8705
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bc034624ad0b2c0"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=FO4UOlvQdBDFBSDn5xqDJy.PvMNK1Wc9woszxkyja5E-1768090368-1.0.1.1-dXki0xa.RRer04t174sJJrxPe3Bh42HrnhBzQkjlCgWAmA3qVJDJigd9OOEoLsmUJ.jiZVmNGwzDiAnkItNj91mjlVdTToPQWj9mGc8I1O4; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bc034624ad0b2c0-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'www.wrox.com',cType: 'managed',cRay: '9bc034624ad0b2c0',cH: '9Wpzi7zJn3AUW94IUB59u7h7l7DJL5ZG00z0V0PcpBM-1768090368-1.2.1.1-7jpYDMMDuiNjW6K6e9e68vKa.PR4Lp0oS3Pgc8hJUyfQ9tAupF75RzfF_2zBSu_c',cUPMDTk:"\/?__cf_chl_tk=Mxu7FnI_MM25J86Z6ap0fuQ__EYsSO.ZWjPx.owioi4-1768090368-1.0.1.1-4F_KyZ3_7Ni8L3dahSn37rQP9tPkCjPmnl_iUQdILfI",cFPWv: 'g',cITimeS: '1768090368',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=Mxu7FnI_MM25J86Z6ap0fuQ__EYsSO.ZWjPx.owioi4-1768090368-1.0.1.1-4F_KyZ3_7Ni8L3dahSn37rQP9tPkCjPmnl_iUQdILfI",md: 'tnh0dOHyAb49FG9kQ.JYJNyF3F7H1ketEAIkKU4Kfy8-1768090368-1.2.1.1-IBwA3aed1TfwHPVelzTyegYm4PfaOqS9DSVwU_QlymNKGIezgtSsp8LWIffad9iGmwoIYeiiYVTOAfHtQn5CNTuJbUEZKT9jRMxGRScwPaHbgsPa034EK2A7_toOEsO1Yc4n7OblUKyh08aOzNWHQ8AJC4SdF3ef7UibIiMeOd0c1swjxA3fDHraFMPzBDB6tg3ksbrbcbMwNt1cbFJHbDlJKYrXGfc.SXxiJLEbZ_Sb5LHpU3PL1vB3KH4Gk_1iCVtKVTsOqvoagpzogrm_g3F8Rsqd2vifgZnzxcdrzefMk2slNwwc301Ws_elnRcg5iI.MZ1BCHQP5Se3ihGy.8TJfk7K_cce7QouWCHcJ2MZnnRfD5cH1UZo1nDfVIM5GOR.Yy84WyvNFgqTxBQlKm3mjQgKxDh0fwxA_7Lq5TwfLnpqPcetuXw_VypenAHiPArIe_ORqjr047CHTXNG0BnvryBKPZH1TOJVok3_ryKjcqX2rxzp0oPds.5lggXr8cmjy8SN1bQXIGgGrPuPTqLlCm_SKXf_Viz9e.QP6TVSxkNup5pmrMFn0rpTHPQIFQK1pwS78UWgYkW2byAueuOJZP7ZWh7AkwX3mchYrGEO8nexzYzHNF0wGZptMxmv0m0GIhkzOM3c8HUG9LpcM.xHhmYld2UsRhr6RtzQNbWfVtTlabn25ZTXJx3KqjtaB0SJFxtL0NykBbi6fZMVWEe_qwpOVP_rd3om44OYlHm89CQ9l.Yl41c5dG_JIW5h7jPz1umK79gnxtSblGmmMTZseJK89Xo8E92XKpv8Hb5ss8ODTEyn2L3tSsoTCpBVXKymK5.LE4GHE_5iGJjPQPiuFG5PDNw3_waYpt269BYRvdVxlxSK8h.g4PDeKMPMOnIsn1t2OlHmGpNAHaj2yRGw3QZ2MsaEYmZlprsg6IgDi6hrXauB29maq2rC63wLGYmveZ3TyBWqRlIHUdEpdOyfY1.ZnJFG4xGVvDCcTLpzDJXvuOKP2dnHJlk1HZd0jWFOzjUDAg6Xn5eY.EKyYK0zoXhMbriTokPPmUpy8fY',mdrd: 'UWVIunR95luO_Qu7xJxtKpTeLL9WjYCflB2fwZeDyJI-1768090368-1.2.1.1-QVSQNAX1EHdDQJdXnB.czkJ6OwyDMwCpIoZ6SAKE1fgcaT2HcY2VEH0LsyaJIciqUseSavmpErxif50bUNJ8uan8TdMkhRas20DJm4aeNhQZ_n1HMY9OtR7Kdvg_bMpXJvQFPi7MuSpJ807xC5WWF5RW9gtrzKKbwGC0P7s5dvEZYrHYKOFaicCy7TYydA9_yqYjrU3jxb01XtbnEjFHySGwgHW2.2LV9FS7KSGwilTUea9Iii5sZBstBbllOmiSBIjbCF1wn7ijJEwo5h09i6TOaiX9t5Ia9nJRB4QFZ_9eqhJ1UFdLE0xrZE7A5gP_2vda4JBmqukU6jCqvWfl_K0t8lv
Open service 2606:4700:4404::6812:21b9:8443 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 403 Forbidden
Date: Sun, 11 Jan 2026 00:12:48 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8683
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bc034620a63b2c0"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=GMGS1Ub0CNB_Y3wPicgIQNIpbV6RucknaTv3577KGyY-1768090368-1.0.1.1-LU3NJPcv6HfIHGLV8ylI.fKaoKwg0xgRGF.Itwru0M55u4tdk1fQjbYblL7RojsTG7SojBrt0TYT041TL5pbWr7etjqHQxfZKKLuFqWB46w; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bc034620a63b2c0-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'www.wrox.com',cType: 'managed',cRay: '9bc034620a63b2c0',cH: 'lSwl6k221GUoI.HhE9SLKPJy1AHAs8ybE_4PwAZxe6c-1768090368-1.2.1.1-NRgYA952jk3BU28XGN.2S1shT8eMZ1nW8aCB0YH_brwLNvKktliMq0H6yI1LagiA',cUPMDTk:"\/?__cf_chl_tk=vMrCqoYydaEa5lycmR0DF9SFInKvLH1IGHv625YaqZk-1768090368-1.0.1.1-n9jiuTeVU8am8ZHl6XzfsxL5fH9liuiuDjx8uaFJpwA",cFPWv: 'g',cITimeS: '1768090368',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=vMrCqoYydaEa5lycmR0DF9SFInKvLH1IGHv625YaqZk-1768090368-1.0.1.1-n9jiuTeVU8am8ZHl6XzfsxL5fH9liuiuDjx8uaFJpwA",md: 'TOlFrkezaI9heN873XwYiFDZ5DFBpRI0eJm7Qs4EwYU-1768090368-1.2.1.1-AqIoVzAvRGHAbPClP_4AUNIK9mJGesWHW4qwQ5LsM9IRWgyrK7Upn_9z.wehIXrZJNunLI487qCPG_jLWg3TW7NUuNQ3XULtfGhuCeOzrxewDm.6TdcfMRObCRgt0a9tdOB_ZTyj6MWRfHkbMhG.Dy.fShcbUzGb6I86XV2Dpn7JYjFHJu_FKNBXycbb5posGgqeHswznO4Wbe..8t_ucEQ888V6m0n682fFkOX0rwawkOgtttSLM2QwmZUYii2LvrGHXIz0FQpQcChrwZNZirxRDTxB6W8FM9IEdYj3Ac_Ci0WpW3unds4H15u7ojSjTUuTRpLesrnHvB_mJ3Wd0tBi2mqIvHptuiSOQPY0cTTloGscOxbFFRDgX4fdoAmJpFv12jsfnXC0kMuT7fpEKpOcfEbwKNz0anbjV3nL994EIBFaPNy5ZzQbyZ6htrD9t6FEqdFgUluk_o6_1S.NOwulnvoFHsCpipSaXoMVz__MD4KhLSEOPsbHd8h.Yv.35G8CNfuYmnogVhmDVgloOp0gsSufn4v9p4ySj4xv.EU9h3CoIg_F37mVATMmCPx4dXzakHW1xJCh77rP2nuwz.0C0Kfhr5MRgafI32x9h33n_XWDe3H31iVgQsqPohRk_zPEidqezXNS37hERZbRuGiWvKsdBTMmBkVqULKaBrQQWyLqPlYNPyfRnkxpF0481ILrqfp_r1ThrOqLOUmR_fmZ_ms9kNErg_bdKGIbszWOYO1TkK_81npwd5nGbOyvKsbqwcDTl37.T.ZLs8YRF9hrCkBn8UHXaHrfZ_aHdSEc.0LkF4AyvkX1fKAzxQcDWDmLhoeLO0T7.k_QZsTTHrBQzQrPO5AD1pM5CjcMyDBYvkSpq3_tGrkVFURNN_gtp6MOCxYMnZWpG3COvIRYTI9MJhX.YGcMca9KEaV7_tVKpefgpX.ruazQX3CRaAvUj3UMrWEqnBF2aDfsB_aLi6fa0mE5FrdC79uVBxFFsrfah7DIhY8xzQFcTV22UZZyZIxwb2r6J5yMswzpit7inTtu9rQIF3GUlATOblVoo18',mdrd: 'nDbicn3HMaHgYenynXYzh0hrj8q_NF1.bZE7dD5_qQE-1768090368-1.2.1.1-CemywMx4U10m.TVMjcvWTKkaR8JiUr7WVT2hrY680HH3RsxT0EesIvojWrEEwdF9MufACwGmdrECahT6jzGsmq4xsdq5lI04dtiYIa8auURPbcMyYHTh8YDUSzUvw4t4TXHoT.KTr3F7ATPudKmtAESlJU9LwDc2CIS7W24v4qrzxdd46ynIkvTx3rO5JM6Yemu3Cs1KKTwoY96i1MMSAyeSKN.IoRUbnpoBsbuvWz_WzAGTNuOUd58fRJvgd5YVyJK2Vwg9g0lpLH_rJ0JlDRR2emNI5JQnwhFV3n_aejKEPS23bBDjyVpc5J0dRiqbFQ1QYecUwtw7cr8lASAm8dTAwSC
Open service 2606:4700:4406::ac40:9a47:80 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 301 Moved Permanently Date: Sun, 11 Jan 2026 00:12:48 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sun, 11 Jan 2026 01:12:48 GMT Location: https://www.wrox.com/ Set-Cookie: __cf_bm=.C6SFVfZlJj_sIa946S0YNl7X1NOrv1qtUTj7JBE9yI-1768090368-1.0.1.1-QkqbWUDCWr37nv0.qcujQ3n3nKpwEJtJLnNLgWxcycoCmp_m9UtYSkFwTRPnjqEtpvfPZU.KOIfxRszRpW3HR11pOeBxIZPj9c7vTcptab4; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bc03461cdc9cf0e-SJC Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 172.64.154.71:443 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 403 Forbidden
Date: Sun, 11 Jan 2026 00:12:48 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8619
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bc03461b97aa079"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=iR9hANixSkRFm7se3yLPTvh0RgFB4t6vKtk8Tc_hTxI-1768090368-1.0.1.1-x.DmG77Xq5mhqkMEvRUUeJ1pQ_Df4H4kfnE6nXa5yqXn6J6jbSfQcE_rmFNsTUjCjXeuy8NqEK.LhhBSixVbV05xJytQ47ek.yekj8IAPVU; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bc03461b97aa079-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'www.wrox.com',cType: 'managed',cRay: '9bc03461b97aa079',cH: 'Ln241Wpx9gJzqe772WaM_jnn.OnUYK400okN_aYxMZU-1768090368-1.2.1.1-P1J3YKHDI4cUkeZotFsiX2s6u8R1jqynY8ZI7AZid7u_HFwLaUtO4n4jmQN1plpB',cUPMDTk:"\/?__cf_chl_tk=O14.hJ01m0MWwVsk7Bd3wjXab9mSQ78wvh_DTrq_k1Y-1768090368-1.0.1.1-x7HOoZ_vQQpkQsm1SRi7JxonjszjGUbDXcINLbAP_Nw",cFPWv: 'g',cITimeS: '1768090368',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=O14.hJ01m0MWwVsk7Bd3wjXab9mSQ78wvh_DTrq_k1Y-1768090368-1.0.1.1-x7HOoZ_vQQpkQsm1SRi7JxonjszjGUbDXcINLbAP_Nw",md: 'waJR5wN82JFbJ6TEbYPz_ENYa.4H.gr92YEC17RRCwM-1768090368-1.2.1.1-xxQoopzwlDGFZkY.ilBwqpL.LfTIa_ZPHKZc8iBLwzO5fH3Q_SBIYGDu8gFyls2LJcx9EFwWLGiaJBxHf_iZAdxvbp6v9ErUtqFAqlilzGtSMtKaehF4zvWiWsD3tZqoKyuW0GQqFZeFK_bkJfec1aSxEsOvbXVfWlCEi3Ji5B0bY8au6CXsXNdGpZRmK1aKhAPaN5fhNigRZnsaO7d7egFjQgvZ2uHCeM_4w1ntc2ryM4cFPOdnZdvhLfYf667ymUhnA9m74iFedyOj3ScZuIZepLLJg4DD4otUkS9iSTxLkbCOsM0vKO1nWTximLQ8c1xx4jlxz9AHVivAPqLi3IiKrR43_vLmuYGyhvz27zTejAtt46Y3lVXfmg711RA8TQnUZw5CFe4bpxggSYBF4eohrxJIYtmH.Etbk3v2Dmllro4YvhrmR8cbpgQ8zc2HgnvyUagKp9sS4hKA1MSzKPZj0XYkYLei5kIajsXh0.K59irTTUNxL5T62jmwrHH6kAgb6wGePFmNgM838fbmM0UOlcfZReyjIUDvQQrMMrkJv6zKSNKzIKTG9M4QJ74bHND6aFKaM8atwyaaXcY2psyonRbFZSCat.j96tMnzXOtfC0zJ7PzPYcwDP5s_6H4NUfghxV5zxKW5ah4_1LW4lwpqO4loZLxwGchVrwbuxQmdF8SyKWrWFo7R7zM.RK_HJHEjDNYgUuZszqxlsqXyJTLwsyp40jcfWvMM1kQL0eb6fBM5fPLoITVXta3VxpV3hXRoWhdo6IlIi9z4ZHBR.nPHi1V56.tNal7OKD8mHpuGNUcbbWea2wgdesF0WTduop6zmyNAIL5ZZL0aiOO.oLx8ZjlKzle2JLa088Lq55tjKO5HB0bHHH.3a_J72ylGju9kMw4zFykaQqLwaP5YuCkwxIAppSK5AbwnB0FDJBFMirvlL41Wrc4lBb.6rI5Cpz6py65ZTFko5oj6V2lLb1y0pNytFEtRmAhcRU4Bak',mdrd: 'eEFWHnovTbUyeaNPa9Q36Sml6DhaEF1DJbncKMwAXyM-1768090368-1.2.1.1-tQ_zLtrk1TbWE0jBmEIa25XcIhWQo8cKh0a9hEvzXTYxcXaObiXZgovjjiVNxVyqIeZTOax5jdiCmoTEx2pzoQA5WPK7rUC8EV1ly4SdR9xBLY9aQ9LYsFGJfbsk5sUYRnzMgDcb3qBmX9hZSwJZ_DNy79D4PSoCIw2zHxMI110DjIUt_sv26HZpMdP.bvbFuBwBFnEoxsr3rZbWM19vRT4fONtrQux.h1rAAczugGsGWR19r3n9sB_ttXq4A3fLlmQmqC3WinBoj7WRTs1fPAZCKiGUTG0cdAGalrwhZ8IkgMzhazXdWTpnndcs2.8kac6OiK93IwhRQljJXrivBC7nPAGW2dUyA4eGZ.CZRjP0A8pGojx5_40Rs4toqBOkM2tjx_2.385nsG5BPwnIuzH2ZxQ
Open service 2606:4700:4406::ac40:9a47:443 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 403 Forbidden
Date: Sun, 11 Jan 2026 00:12:48 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8705
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bc034615a1837a9"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=4PDpPVkzqL4PWBEo2ZNB8PQYb5F6.WyVH1wNJd7Oe8c-1768090368-1.0.1.1-3oy.VT.jLBolqztdSfb40fQsb_tPawGEeNO8v_23FL6l3m1T4aAkBqgIFquaVBn4rfthC9hMb9k2.UIJELsi0PthMMKKrlsa0.vcVQZdboU; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bc034615a1837a9-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'www.wrox.com',cType: 'managed',cRay: '9bc034615a1837a9',cH: 'X2CJvi5RKq9UPwkgRe1u8CPIWpZGHSNIDOoh0kgb6xI-1768090368-1.2.1.1-frTUtkLQ63laIrpDD4Zo7qtfSCenKNHD_jCHzdBsqIuCX1zu.qdDQ6eU6T21T8Kw',cUPMDTk:"\/?__cf_chl_tk=MvEnz.u4LQ67N8JSbwGcfaolptwvG4As4KSzvw8XaqE-1768090368-1.0.1.1-nzcu1Vju7e6fMwo5hDHIm.CDvoqMbwpjkVpXEdUosMc",cFPWv: 'g',cITimeS: '1768090368',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=MvEnz.u4LQ67N8JSbwGcfaolptwvG4As4KSzvw8XaqE-1768090368-1.0.1.1-nzcu1Vju7e6fMwo5hDHIm.CDvoqMbwpjkVpXEdUosMc",md: '6wiDKWrkw5A_silR5gz7WDbIECi7.s9XoG5rwAo9wMQ-1768090368-1.2.1.1-fyI26EqerFpX4_0eWto7wZw.er4uju6n.OWuIlwIwbLO82Op8C8h13XKnWgdaKJPWcCsn9mtTH_GaSsEvgGcWTlivrgHu7WV_BY9IqP0Uips1OmeauaCABNcpLCX.HC8bRqh_1VwL5CyokJmyXRgJtzNm.mqajNqHHUuoSzZxBKY0zMPxztjbcXkLmxiHAoXI_mfWstOHrEKrNmMhVra6_6o5GCTyIsjM8wFN5K0IgAv6B9UEAZiplzI4DPBewMx6R3HJ6X16DJiAuGFslYEe41X3jn5W46BosoV9eIzuTx3YMW3NqdNVoat2dINcCDR1SeFhytNFLEjXaCbiwzoFHw9PFSr.D2IiXkcPlSh_YnsBtfNbiJK9PcWCfM16Wcf3bh5Qz5le1PTCcKfKsRz4fiCNZp440HzK6EPqV9n6tDfDYpkkX0RxhwSvUT67NfF4iBDHq1zRVeLthRbmH4t3G39WznRuOtLcOUL6GqfcT0flugb_ImPeO1sZNIPoYTdutnyF_z5E.TmcONJAadW8z082cU.vlqpFbRDy9eTse7iCrW1Frp2k7YyDLbnof5KPng8O3ZIWp8J3Qvh5zYk1MSxf0T15fdDLq0vbFIBUOhhMZV2wXrs9je45csbJoiZANhFIs.ycuoWGvRcNvilf70HGPiBEaclyOxbAuQ0GtLZRg5jCd2xmgwma1sQQ4BnO_aeoC3xqwErg_Tubirmp949MBpnyev46v_Kk82uSzBpxmQ1vrEKF08s2PtFWnxZkAw5GdU4y.DfplD86Y8vinPELni9F8luxkfFHraJodfrdxofFjiUSTl3J3OWkBtlvoX4lNRHBrPoGsHXsI_JrUCAoiIqxwc9kQpzuWbhf0jMm1Y7M7DWIyRFIZgrzCGetVgnxFbK1e3yNMEMOkntohiq8NTvxhYj4PYJ1psgO4W78v4_Doxg0H_93SafNheeBEkfbZ8o7YGnTQh2lHqgbjXQASnvDfqIpDH_0ZkEq61VLP0NoCenwKtDsqG5fkgoeEU4V6yhSajtOcsC6vPpxLsrWvLVqIbvrwzA1zNMTcc',mdrd: 'E4PVtqIkYTC1Pe4p1ShNxuUEIzH06_CKKJ70ts.X2to-1768090368-1.2.1.1-SoJwrAcVrD944K4T8ZqPIdVRi4eWMY4YpoV.tqEmoMrbK29CIFc.0RRWfTFr97qJgSR5U87TJLIZ_.nairqHWiaMdunTpROoOW.KoVsIRBZWHiqjLRmDl7s2xfotbxavyf6YbPvOl3J9eDKAT6Q28JX0kcCIjBjCEOxHs03A7wdEg1GPXHKCnEDjYgO_85OXyXxsLN1H7g_PBtZW50lWHk1RledPIn_zCxxbN559bFC8v1nqLHFPf66W1ghBTJNny6TxVl05BCFDQ1HrRD6d9NulfGIGGu1DQrYe8FD5LR2eEf.uhiUwbICKgbdeS4b5uCNEZU_xgGE1xoPR7OT5q7.Lkkf
Open service 104.18.33.185:443 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 403 Forbidden
Date: Sun, 11 Jan 2026 00:12:48 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8598
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bc034615efa34b7"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=lTYzxC87AffImHSqvjIWdg7DBoJZD8Eq.WYShHzrWEM-1768090368-1.0.1.1-MWIf_rqumU8dKsiOsbDmGzn6h72ySCiBYjlEq7I6UL6zBwXXg2nTgPM1AHK5vNkv2A5LzZDGITdOl0Wb8zwavBtm7okmCs0BXcHW2LMamt4; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bc034615efa34b7-AMS
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'www.wrox.com',cType: 'managed',cRay: '9bc034615efa34b7',cH: 'DQ51NsMNDBHQ3JJniK7G8CfHDahTCQTPqxfjiMwyHJY-1768090368-1.2.1.1-vHjR5AIqlcWVYpfPbbfDga8Db66A8KZ5HUxcVFTohKkfwEO3h9V_Q1cFBzteRvok',cUPMDTk:"\/?__cf_chl_tk=c63uWUTZvumyW5h0nkUs8p7NeUP9Ligu2vU7w2pQb5w-1768090368-1.0.1.1-guU583PyOUNT6EiKk1O.TN5H_F26bYf5W.jn.zG3L8w",cFPWv: 'g',cITimeS: '1768090368',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=c63uWUTZvumyW5h0nkUs8p7NeUP9Ligu2vU7w2pQb5w-1768090368-1.0.1.1-guU583PyOUNT6EiKk1O.TN5H_F26bYf5W.jn.zG3L8w",md: 'ZR0FXZqVWd4KTghl2Bjjgf5T1KxzwtsLF_zhIejfEoY-1768090368-1.2.1.1-64S7Plyd2HwVtezhdUtdgms53MumaNW9mJItuxERebU990DV963RCUr5ZyxUwi8ArAYEuN198wxM_mHb77O_KYZkD2WP4RGVifOedLaCNmWwYCMNB_YahBWVNMOGQgnTBSLXkp2WB9SL1NZWHf_fGIpKJXC6qqnQs.E2O1mF7KA48y_uIx6foQ9o_zYv.MGJYqJTIHPRVXdJe90Tdc8dC2aLfm5a8ih7OuKnxHiUJyqtOmwRdm3e_bxKQpZNrrKWPI0j26UWlEp8Jy2sUpDeUrGGy4LUDLfgJtBVqeo09aL7VvTDKYDzR9K.BCXTiWbzfHvG9a2OjPXQMMlPvKJO0REHlXPbypmfCQFIobkXAQD2QDxNDXL9TjlbbqoUvNAA3nRPPjdHc0xIwb_XVyCqqciFGIhLU5OZLgWdKtERaDlSYUjFbwzJO32suEPY1JA757mVO18G7Xs5KN1166yCyYoV40fBXgiYIOm7X2AFu6oTO95KEfD6RAMf5KfYGshoPIQRXLCBlOZ.jNP6U5FcGg_AXw.pmT_taBsqztM22vRmvJgRKB71Eno6bhsRTgdeHlFBoEbfWKf77CBmCXT3YA40npUk_v0xMY5gwyNn0zTo5ovf5w1GtpcsOAiPYkRAf8l6Kr_z3TLPIA5HjrC5mxI56YWXYeYgmM7l_nRd6O_nk_TPP9BqWMduRLZDJjQSEX6mzTi6DbVCt3XJ.hPia2JWzZ5N0TdpLVANdm7_hrATL4RDfAEJ5b.5_ebTd6e6d6ArD6VD8aatuZzO6Xw5X_HLIsLRDqRetvOT10ZQWkw7Du.khcXUJKeQOJ.fXeXGUhSo30cejUFIQYvKY5ceEEBuHYcbJ91DDT6MD1XA1j0FQT9.CK2gviipZnvD4k0A9aDiJIyTbdoqGIMma5sfQOm7sem2He5ThG9pcDU..3hpnPU4GzTzFnc8q0.XhyFgGczxytisC2xMzxz6iih37K1JidH3EUuQBNOlqSBt600',mdrd: 'AV_RcPOMt7vAPOMrwTXnddegF67n1D1ygWvkVXfMAPw-1768090368-1.2.1.1-2MJ4hy_XXIkob4x25MeAG0zBe3QpJVr12BqhOaql9aQWehlQFecX4.ioCdlQ5zwYKsmSeg5_q22UebI86dFmJ.IEkYT1xl.oF_d9LHbPlB1H7w5BD2K0g25_P0gJvcIg1ZjoFi3ziEgBK0xDexK5u7KzcwfQO.K8hxeL9vKTJTMMImG97B191V871YxxzBNAnAjfX7A1XfR3rwB9pYEd2kQ7nj36UiSuS29VTZk4QRops42_9uRl3rx.G1iKstsmdMqayKJ2fKiCcqRfS4sly2yc3BPK2G0q7m56O77lgze6uWnx0BwoL.Igg2Y7nAcgPWQxKBQZzofBSNY22PnknhYaomMjfgFBQdBf5ipag5CrCoCB6gXZre.Gl_T2uo5KPPF2lRcL92lZjK4r8A98e7Zq4Wl
Open service 2606:4700:4404::6812:21b9:80 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 301 Moved Permanently Date: Sun, 11 Jan 2026 00:12:48 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sun, 11 Jan 2026 01:12:48 GMT Location: https://www.wrox.com/ Set-Cookie: __cf_bm=1u8PKOvxRQQnJqTHf6bQCT_gw6LJ3zLGo9aHRKTT_zw-1768090368-1.0.1.1-fdtgWUWkw9KbW7bNQzfrPj3uSMTUJ6_dSS98G8rTCVPdcpnP8GZyYxDP6lLvvyHD52bMufJghMpoYiMDwsUHIDL33WI1PI5_vUSH4Lx.k.0; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bc034613f8e0cb0-EWR Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 104.18.33.185:80 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 301 Moved Permanently Date: Sun, 11 Jan 2026 00:12:48 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sun, 11 Jan 2026 01:12:48 GMT Location: https://www.wrox.com/ Set-Cookie: __cf_bm=.pLb83Agqx.46qg7NSWWYN0rpWM9ZvHa3rdyK3BOFDg-1768090368-1.0.1.1-Q.PyuI6cE65lIumtJYb7JQ62vh6XYNDC3uvyV2IO40MPjf61skhvkn10BgaGLLfSMRSgDMjHAheQDgxAf91q9jLVS1Ifg_L.AUVhorERMLU; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bc034612f60985c-EWR Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 172.64.154.71:80 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 301 Moved Permanently Date: Sun, 11 Jan 2026 00:12:48 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sun, 11 Jan 2026 01:12:48 GMT Location: https://www.wrox.com/ Set-Cookie: __cf_bm=zA7WMXFujxwx2iRHThkW6tscb5tZEy3tp155SXb1YTg-1768090368-1.0.1.1-3NX3JWIlu04FvDhIuqR6NfgMibV.PXX68JnqaKzUMYWjE5bAOqP9cvqclYC7J6pUTufhm9xW5e7TkBx_v_xrOOmIVEzsPWwS7h87EivAYtw; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bc034612e29e860-FRA Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 104.18.33.185:8443 · www.wrox.com
2026-01-11 00:12
HTTP/1.1 403 Forbidden
Date: Sun, 11 Jan 2026 00:12:48 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8619
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bc034611d17ae5f"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=XJulaI8kh2bkYu4YXbSWMyQGnLPOhcsb7BYK6obAF_o-1768090368-1.0.1.1-Pu.VNU6p9U6hXNOWYzvlEBQlIk4xwbNPXlopapbME6Tlwa6zmRu83rY.YL33G4WOZli.NCnENUjvqtBus8UJd54bqyq39Xzdzq.2wrKAO9s; path=/; expires=Sun, 11-Jan-26 00:42:48 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bc034611d17ae5f-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'www.wrox.com',cType: 'managed',cRay: '9bc034611d17ae5f',cH: 'k6CUZZbfH9Oohl4H.1Ce93A_.Y5ABvmHeFqHbh101DM-1768090368-1.2.1.1-rSfcOPflhvEoeWjAIBE3bFFSrVA2ANeThYjlNgaVLnvto2tVn1AqT2X8GbTIdV_.',cUPMDTk:"\/?__cf_chl_tk=Rlpeox.yZiuaZOPuZb6gLtUjutwy3Fe5wh_CXXqqmi8-1768090368-1.0.1.1-Yd0lyS.0QESKPCY5QIJjwuW.BERNvWAeh8Bf1zHrh5w",cFPWv: 'g',cITimeS: '1768090368',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=Rlpeox.yZiuaZOPuZb6gLtUjutwy3Fe5wh_CXXqqmi8-1768090368-1.0.1.1-Yd0lyS.0QESKPCY5QIJjwuW.BERNvWAeh8Bf1zHrh5w",md: 'HwjDHNdI5Y5.L3P3GIhGrzV9pDya0FDKLx_Y90NEdT4-1768090368-1.2.1.1-msi1MIm34_RwLiO2HlSA5z9Ou_XxGaaJlhuQ7fIgcqwdhbDcFnqVxJPb61ZqoULEYakoUSfNQ2lAysPFeUDt5btqrJONKCvOE2fyrjFo_xoO3OKFJ22dl.7zUEsnomQ9ZxLhZEnSgtY6dd3oP96fgpbMlKPKOfFpukwLH.sr7UKA6A6AatSu1EwPOB.UK7osSY40c_eXjnmwwooWKAt0qLBq1AfZ3A5TvZTUJDCAlkdgu4yM5AzbW4B19SNlTwqnN8I9RWxHRSAgP3zTJJRlqC3LgD1TS_FyLztDtzyttKxHwM8U5ekSdMiC1i3LJv3SKRgZ0y_cg0USlU4afB9eE4RiMH70Z6culzTTa2th3PqlXDtpQEm8L03lZYZicVeDGmeanoM2PnEPMbWr8rEFTa5jgNM_hwxIdfWO3v.MnKigSzsOQK0.HlP92aVOHGM.MXNK.CHzxKG1NL8Tl.EXQ012.PSb9ByJYIb0ksGi26DoxWwlVK3vhAcV9_fxqiLzzGiFiddeXj9wLcOlXkHQg9p2Z0r4Gn8suR0MFdiindNB6UqoU_.7FXEo_1aEwprKqD2AgFHlo4u9tEhdgvFwI8usectLEs8p_eJmTv7tI19zQaDn82DkXTx_EyVqNqVPdy6pKmGC9tpc8DCCPPsB7ZJGonuMPR9BJ0.pAvmu8PYICVhMauh2n1XjMu3lRUfG52L7j9Du186iEZ4us4hzt92i.Ynwr9NQor_NYCUchKhp8IsBVZevZPNjuNgeOTfgiwr6yBwiSnhj9c6pP_JRpVl.bnSIAZM9NmUkBcQuAf499V.uBWkJGqI3KSJwVjLe1TrPHnqBw06oNDa16xujbFTxgvrIsgmdnF9WATsxvLF0SepncGPMMNUkaNMv4u7uoTdES6734ihbeOJzVfdDdAKoEnNIOpYjc84_pQ8EyiSCTJcSmOyeQjKkRnnnLOvAs1Z4S1CrUjwJAsyghvKgMBspvUuenPQSg1p8G1tYPas',mdrd: 'n8s8EppS.9Wm8eX3RvWGJGiJCNNf5DYIij2i_5k8TLo-1768090368-1.2.1.1-WpqST_oBD7JIWFhrxDXEkH5tvgt1xybFEHMsn5uo7WKaVG2VEPerPF4moNoaeF5H.RdHs6KBgdsERqLbeewQaji_ep3zrAnx_Sy8f_hC_vbQc2o33sfvblsyAe5ENe4RmUuXmjpLksf8hajxANKQvyvPMp8cdzjkvdeE3PamhxZ1lQQ4Qzih62.6_q5TJoOnmYR9f67PTqyZmwDMM.lanBYA63G5by40lcktTS3ZRO.sSmm2AEV2Osnl_RukUrOirer3QWk.PuJN10AqWEhf0Nc0WXZHFVznR444SOBaeTxegDxOylyiDAzA2FNgfKFAF0bKD16IC1RpKO_Ne2hXmFaEmSZC_zR8iOcNxtm1H431ScdmvPY1VR.eQuj5iGlac2JMnc8uIC5TNozyRAkaDQXmzno
Open service 104.18.33.185:443 · javascript-frameworks.wrox.com
2026-01-10 18:52
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 18:52:41 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8680
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbe5f76ce9e973c"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=lUbGY8LcBhLaxKItWzFI6XypXb.Pz5IXxViiQDqySPU-1768071161-1.0.1.1-Mtzzz6UPOIPbNbc0VzeXObnwdUn9UTPNsrz14eSYgIXD3tYyVkrkWwpNbYR6ety7PmwF65VzDm6H2XX0QXhX_bEiP6zhFcQm.BJbBtfXLlg; path=/; expires=Sat, 10-Jan-26 19:22:41 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbe5f76ce9e973c-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'javascript-frameworks.wrox.com',cType: 'managed',cRay: '9bbe5f76ce9e973c',cH: 'qO8vTvK.FcuwshCXaSk8ppiCCVKimQw.IFYmT0SizYc-1768071161-1.2.1.1-17d4B7V7Uqv2lGurA6naT_HqSJtE1VWLdmkfyMKkrmut25EvB.XTuKQjjgNTfVZs',cUPMDTk:"\/?__cf_chl_tk=.o5GSBJQ3J9onC78Jcn7_duPdJHuL_NcHuExykWfxEY-1768071161-1.0.1.1-i7TzJkrN1h7DeEaLe.KbWrgguIBHBUkvMry4Y9Vj4Gg",cFPWv: 'g',cITimeS: '1768071161',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=.o5GSBJQ3J9onC78Jcn7_duPdJHuL_NcHuExykWfxEY-1768071161-1.0.1.1-i7TzJkrN1h7DeEaLe.KbWrgguIBHBUkvMry4Y9Vj4Gg",md: '7TyYl7rsGE1z0SZABg5HRdHGjgV3wgrljVe8BoiAo0Y-1768071161-1.2.1.1-7HAi9LSMpH07469CixJXWKBpbp031pgMdsQmWqeKA8e9cHJx2gK9iJ6nRuAvoqeRsYIaU5m886.ptDc6K1BCF53cQgXv.Hzn5l69.91jDDbllyi9AIZyCV4KXiXt0ql5V6wvPzScarR3Vonn1JvnDT7z0YDa.XJ6YsPbg41QIiQCO_GFBj5_RBAKCAn6SZMbjSgMT8ZN_isuMwGlrT4XnUxdeLHpJ.rZLxxh5IQmvEry4m47PWN.KUE7R_Vqq6WtP94Q9xZ8dlLU7jP6VAOeBETTKlw3a4zV5Rit0jkFYNd27v692ElOQZlIacXzpGWV.2qSMy.vo5DPBgPkXnydsXAz14QYAr5tkkKIDe30WJMjNd7XT1GL_Re0w1rpDPLeacGXUib6IQfgmaNr6jhQlh_MI9AL9DuiP4GlO3PPr4kmBTKdFZdomZs9l2F6FCF.K3dzrtohaTuk0760M8X4IlkxcvCOvT5CYwfnnH_kOq9O.tpjqfg4qXViu5ggqTPPfskenXJXtQo_xQlx5u7CrLK0cSpn_GIGsSTv4WNHIHgtiaxUppv2HjaXvyL56R7tN9FK0MR1T_OOZm_tT5Q_vi8b4l9FPRHacTnoQskGMu9FGC.gJ_Zq70ykLA5vZZ9iqJGtt_JyQfAxmxbnJ.xgwPoje_Rc2BsECJkU39ZaCyGCI9ExyvoSu85W0UNhEOqt65N_ElpiVMvzxJYz23uU_f6I6rQpKDYZ33LeOL5TnatVwXHhDxXrogKNWJLLYci3rfyfDfsCHLhQQ0AdleCXNwb9vET1UNbwvMr5IyJajYABnLWupB3SvoN6BXTdevkYsAVcn9FjeHfqSjFpdJRmF5iIoCXe84dz3cSGNyLgczc9irzlDvooLTSqsUFN4Ho_M12399FxW.hWK9Y2rD5AWL9Qw1Lb4Rs3e9vsKDM9RGXA.6wNloCjCqScaHAYFVOiw_E6EBg7zP4uyBE9xTyejZLrhmuulV4YQX84H3lsS4oZlwsa1Td_voj8lxICI8sI',mdrd: '22Nkoq58hBtqju2wgUkjdhNGtausehLsjz3YlWDK8pk-1768071161-1.2.1.1-gbO9U.CQT5bNHlJakvq5_uihzqQ3QU2O5WQC68NhQoYlQ4jpD2ZEYk6iVJvu2yoI7gu7HC7owFjfb8c0px6O4rkoSrha1nFtnOjN.gx1EBAbpNmtHBpuG.jh2kpHhKgjV57aRevjw45ZqRuZIth1OjJFR30Z.dyZgyYRN4YnjBSpIbdwL47.DPVdsC_dXRoZdGMfN5yfdfgHlZH7Cda74UwPDqm7m_wj3PmVLbswUc0ILws7d7IFQ__c6RQwgEEa0iMR8FIKFB.LSOiZEGi953SbIV1ihNG4rrptvEPxFFOaRz8LhC2skYj9FR4gqDOWVB0Hy4FDegI_xSlxElRoachFuGgd2EIerkBionsKt7fq9CL.B_5S
Open service 172.64.154.71:80 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 18:40:28 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 19:40:28 GMT Location: https://blogs.wrox.com/ Set-Cookie: __cf_bm=E2m8H8jYKQVMFQCLEo__4n44SDoAkLEW0zDW.iAV4aA-1768070428-1.0.1.1-pWlQLYlW52PFbX2zEfVrNPHcV4qtFFdNBvn8TjAqFYsDhBPxsk_87oGfwoR.UN0JnjZ6wRkXI3tsZnRb0bWhKpONQuvS9cC9Bczrke0WXU0; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbe4d927b8b25fd-SIN Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4406::ac40:9a47:8443 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 18:40:28 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8728
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbe4d91cb73aa2a"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=S9ZJ._fzQ4SVghSDpyoNdP_YLX57C91quyDpKyE0YUc-1768070428-1.0.1.1-A2FGyZuZDU6JqTzvzq19TfRflxf7n1hFK9Q4JpVf8bH8TlV4N4.383Yz_e2JApLw44Z4V6bJSJKz7XoaIpGkpVM.P.ecyRQGuxmCmQIg_Xw; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbe4d91cb73aa2a-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'blogs.wrox.com',cType: 'managed',cRay: '9bbe4d91cb73aa2a',cH: 'dLhFVB5.uZeXYMFm3FNnadS_lxycBPe4.RbbqTW5NpM-1768070428-1.2.1.1-Ol6wTZxBYQ8qt8JX0Wd5KAaN9MMV6aBaJcfwmm9wlgrodbSXvOGSMiFNRtqqcCOy',cUPMDTk:"\/?__cf_chl_tk=0OnrWN_Q5fhvH4shuxb0xODonQG8k24Q5u13YZkdBEk-1768070428-1.0.1.1-IyvEHb4bgexjjKx3szyV91tBRO5KTzetwP_UgTpkHJY",cFPWv: 'g',cITimeS: '1768070428',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=0OnrWN_Q5fhvH4shuxb0xODonQG8k24Q5u13YZkdBEk-1768070428-1.0.1.1-IyvEHb4bgexjjKx3szyV91tBRO5KTzetwP_UgTpkHJY",md: 'og9OvXjCMfGOft1Nk0u4tXdD8pYi6jZDXLZpOig6Scw-1768070428-1.2.1.1-.dm2b7ndK8w5oaMfZSYe_4YYRvS8cdLhAESMS6X3WZVNzuIP5U6bLJy5C89OVvA.kuwxAgAvx.uZC2SLhHWwJeJpQd_a.qn1d_byW_psq.y7Am3lqqndooFik0FudeEyoI7hWN1xMJhwliqExo01.TFx9iQUtWFsrwh5_UdVvPN27Ft5uWLOxXvzpK5kQ8Kiqy_IN_vZpHMxpmazR.2IKlmwBx1IlfKKy3sTdztxc_MM7B9hMJbW_PSM2dAWkiy6SVB2VEzwUkEmzZjVya45Ljs3SaKUYbvnwNNrs1oO0x5o7MWCPJGYzHFLA.tGbxPMLHIt7WBZiU017jciA8xqrnn0cWmAzZx7iVvIr7zGcRi5iMilwppPKjcpufjDFaV4dn_GJ0AoUXyL6qPFOelVL4ETD5kmObZyx589c80Ap7JWkXjdFaXZpyjSoZgntatRzV1uZQ.ZMObwtS71TmYT9KqnnbJQUuk10Ql3PjjT1aIHJ6tAoTd0JlVG_wZ6iHWZn2ZUnFOEWtkaFnEaAdYaOOAXz9017MqUJRPob2f4qTSfJ4tGeUESyxClTLaWaom4.ll5pawS.hkbRhA7.Qd9OkvlZr4JllhPfR1anjbI2bZn7LSJZXGbEUgDGxrOQ0JYLw8PzPZClMYA4K9yT4VTaDi.qDnBoG8mASCd_Ppk6Li1hTTcTvuxB1kiiZYe9o10hY8SS2pG8B.L0gKXgRKeWSofRFRxMTwm6PPtiS4xfWoMoXoZEPjkzB1PrB7LcB6KTuv_RGWMoQ53Q_kUNoa5R7.mlIX53gVzmcKFl.jmzn8upZoHO5viOtmXSNEtY.wWTBPOmddRCVl3k3qFFKEv9sR6Iios9ET9uwQBlmC1HzxKX1d51Cvp5cz.d652hK_Fyi78BNMEvG1x.j9ravGFCbXGLyAVMt0T6h.ERDAPIIJGuRkh2.yIx7r.AhQMPqfbLFj2BB.cNxZtGKsLRFszGR4jE1kZ0K_ju4OLc80fSt0y55.WefZeMHJ_dZ3X7YNcG1SNSMLTRXNk3IaNEE73Hk2gz6GeT2g0mee7W6AngGc',mdrd: 'FVVh2Rgi_8h0iU1SK2PnUYIRM4goll18fqO7QXe.fv0-1768070428-1.2.1.1-894pswsIdrpL1vJCzmjG92G1mZXFDYMHZAf1k65JuHDeHGjXpWH9LP0z25QVBf.TYglKTis.UnsyCT9zIdTbLPKBqaSl.VzfWKXr8lwkWLACbC5uwmJXYRQS3Dhj5R2yM_3oTJxrmsWIMwBZqphjaVBwQGiyDzDL3WkbiUv0R7uv.rC5qSBFb2WluoYqzX4KXegmIIA.jOUFHoUCvqwr_jSpV2SaTGsVhhZz9WDRwbtaZELAshwlkdR3CVw8drIlQTurpm_2dGbKr0GWHrATb6yuokCR2ygktp5waKA_wGYdgutxHkiVk155xGzZupnErmSi_eZzg9nk1IUmg3Bv8FS0u
Open service 104.18.33.185:80 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 18:40:28 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 19:40:28 GMT Location: https://blogs.wrox.com/ Set-Cookie: __cf_bm=BhvfmUWdD0Pck.TCQo8bx29gc9CrBz43XC7tooc.kUs-1768070428-1.0.1.1-OcwMsey7.QxhqhSRUH4ZppLz6Hz7iovWigy1Xfrvg8QYk99JAR2u.tzFp8r2C_a.Ro9_16A8vE1CRy3Z772klqub0OHofuiHnAwTru.bn2A; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbe4d91bac22d8e-AMS Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4406::ac40:9a47:80 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 18:40:28 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 19:40:28 GMT Location: https://blogs.wrox.com/ Set-Cookie: __cf_bm=MfUU1Umaj6Fh.myEkWHH6G6ew1YcxuCeTejOXOPvaYk-1768070428-1.0.1.1-LN9yxRm_SRtAkpv_GSU6k.xQXt5K1hunGlINkrakxn78Ho05mwlyi_1lpxWbWKCHCuIkDzq5QcK6DNpKg9FYRukJ3hTHHzCHGixW4vYAG.0; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbe4d91bdfa0487-FRA Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 104.18.33.185:8443 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 18:40:28 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8600
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbe4d919dafb1bc"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=5Wl2FxIR7NofRpZR7zbaYQ.jGdkLVvlIb_elRW8LURs-1768070428-1.0.1.1-aEHHmkldk6f1uf2FKUK3mUzIkk4mPFS6rl3_tk39wIeGvBMTuT_iASRIqu69c7GvIrFiS3ZaokNZGuwkd8Ni6hkKtCBlmv.Jq3UzVGvU9jM; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbe4d919dafb1bc-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'blogs.wrox.com',cType: 'managed',cRay: '9bbe4d919dafb1bc',cH: 'N_OBsD7coSg69R0eij3pNsqR0L8z_Kl1PY5xlZha15k-1768070428-1.2.1.1-z1ErIH2IL4H9eKc5Q0xnQhaQ51SLsdHX6gZvj73fjR5Sm.0gEJDbG1I6cA7ysYiE',cUPMDTk:"\/?__cf_chl_tk=8bnnhoj.ZRzyUxp9EjoZNzmkhMXe1AOQQdTB0TCIwZc-1768070428-1.0.1.1-21zXIJo0DbEBuFN1KsIhFmEdQ_R4iNBk.1yD8ANw0wA",cFPWv: 'g',cITimeS: '1768070428',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=8bnnhoj.ZRzyUxp9EjoZNzmkhMXe1AOQQdTB0TCIwZc-1768070428-1.0.1.1-21zXIJo0DbEBuFN1KsIhFmEdQ_R4iNBk.1yD8ANw0wA",md: 'yJth55a9h8CijuonDOxnSshUaQVA6SO6TUD3dUTXoJ4-1768070428-1.2.1.1-IGE5MOIicNvfFLy7TwrTi5vc5wE4wC6Ph3jdzP.2t.x9tTNbZDHE1nctdWR7xgMdmIdVSFq2HNTXGpmK3nQeSdux1Ca2UgywsQ9u1XxC.M_W2Th_fCuIn_Ynw8t9lxmklBPHYMqGupl8JOpfTz0K7E6C6T0bVfsNcneAVEYFn2CBRDWl9m9Yui2e7YU3l4yLyur3T9sQx7SHzEJes0Vc0pOpSIjb_lsFE50W7gc3CT79wttPtOWaiPYrjd54megjsF.xZn9.sPZZEtPYMQFw3oiZtFLybBy1mkGBp1FwZO__04K8aOw8mBZYngiv8H29zniQuNLrEJ3x3QV5vQh64MB7vcYJK.544QFDYgYrCrV4oolf4QFc01LC9A.bWme.qOU8qlwRZbmkijTsf_x46cprNd3KyxhockeZaG_HhvKgt0d5ZaksDhezLXNgvFsPDXn0YLENau5_e5nImRrc96fjYItaT6NpuitVvDOwU7LpFhAKLjjB3Tx_RVVgbzAmq5CFlPookQlGCGEn5QHQWki4ZsqxkCnMJAcSnYI3l391JWrWGF9baMIJx6w1NB4lFp1zkCGsIjuCzCAAwLhMsD8jk6iS_B_gIHvGe.NwLmGGGMyPzUeO9tPANf6LCHSxnRIbmPfePm9fMFCqy0FxS9AtMKiaTTYxIAzm0fKA3NCsbn7qiVCu8_JZbxheSqpMHGeaLl4Cu.ekJaoh9.ExVy7ZU93TcnHmlJWa92pJDgbb9oNI9D6FK1AmYh_oSKlGJEefNFQKjXU_k5OlvLVaBVu3b8uz2e4gv4UajfhaP1fVFJdnVmI4Bdkz_ev_VDXdvOlPYXx3yAH8HD7Ie5Pgqa6dqnVy1chZJi7B4MQtYaP_9kQjXwelmh_I9U2UOlHp2tGULSkCz3C6zh84_CQPAic5K640vt7xfiA4nWA145IaIO_yJDzYDSgMBfz.wQBoYPvJaanIml1Qfx7xys_z6YI1mRgMcv91xSrJmtOw3Xk',mdrd: 'IyuEilw8fDh.IvJ.Zcu5tur56y62IoEvFmG5rSDuDms-1768070428-1.2.1.1-LdC_J3pnFMdXplOWNGdRu.Eps3ppimLZ3_h1o2PqMkNWzda6YAQFgmK5iOrVoUgbTkgAvruCmIVyapKoOH7yuZFKnFxwbreKxIB1rH.S6WGKGTsxkr5uwG4jIeyW.GpakTng5TNtVpJ6qTIL0boXhVGAJucDb46oD.2x9vl5z58pvr7Xnp9EnLxH7ZHhX97hq9xf7CSOyH4y0L3ofmIyC0yyjMOfcytuuXvRHZceiFi.LgfFYKn0q5DB3jVF_2B6nC11X8ax6Olm37ZavVk7fir__7ORk8iQDilzz6jn5cEnMIwpPU5HDuD8JKsmGqMnmlHJlRMzYHJ9yX_qnqGzOZ7bC_cgVfMqZVuPE.JQk8Uy8bY.jEx8RF6Zp2Qxfix7IPGZVhlGWh5a.WMUyQTXaHvPu
Open service 2606:4700:4404::6812:21b9:80 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 18:40:28 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 19:40:28 GMT Location: https://blogs.wrox.com/ Set-Cookie: __cf_bm=8gGykUKMhemW9x2FBJTacr8M7_ObpCYszzYA932_4ZA-1768070428-1.0.1.1-Lgg6ugNcPXimn0_I1rv.ia_rWZ_bEkHTV4vxcIqV0UjIMAl.MqaYI_6qd7EpoFC7TCvRz0tJP5rz5gL1n_P.._dGYPMc8mHkn5ZXUsdYRxY; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbe4d917ef6d23b-FRA Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4406::ac40:9a47:443 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 18:40:28 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8728
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbe4d917887b84a"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=UDD28v2hX1g_GO.e3fcnL4dssVXabw5anEVuDvvYibk-1768070428-1.0.1.1-MuIDYmmq5f5e..YBid6a7k7DcHkDj4n.Nf2P01TI9LiJbZSm_RnBayzkdIjBAmWl1OwjB8LrMZFqtvJbFDY5.UYhSeLgC1XzUBV5PuxT3Xk; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbe4d917887b84a-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'blogs.wrox.com',cType: 'managed',cRay: '9bbe4d917887b84a',cH: 'tprkZre5FyhT6E5Z0jBNbShByul1Bh_ijgI7G1PZBhM-1768070428-1.2.1.1-mFFDTWWuFv7zXJR2dT1JaghUZ3U1JHvsFGBkIkARKNreIm9PmwKGcATGNckfiqOI',cUPMDTk:"\/?__cf_chl_tk=u7lnYZmjAO4VnYFSCLZve6R04u2P3qhjd7W59MpBkEs-1768070428-1.0.1.1-zRvbp_lAMGsFHueGA8KMZJUpFs17W5MBDGkZtBKwuZY",cFPWv: 'g',cITimeS: '1768070428',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=u7lnYZmjAO4VnYFSCLZve6R04u2P3qhjd7W59MpBkEs-1768070428-1.0.1.1-zRvbp_lAMGsFHueGA8KMZJUpFs17W5MBDGkZtBKwuZY",md: 'Y2qEtsMFh1XQq_NFMVfP7PqmbJThYuCQePQLhV2IL5A-1768070428-1.2.1.1-2DDVWA.QWPkd2NZeKBEYM_xFUP7vn6cgItZZsvb3oyZesl.pm1eR..CbkD5Iqo7wh.HRkb.4SnoYKA9pxAneGPuU79Z_S4asxzdAKiRDQ2lMwnXT4806YmxyPRrQEfKaMMfsvEuFqz8R8W4.ztc14u_uEUUSfOlbdlGLaJHmr08BccjKJ93kG_G90oxUgVD9i903KAdt_EN6tcYxDKLOOGG1gtKGq3AZ95nSLPeA_sphCIMk1adNPvJaTII8.FihfRuc8IFQz1o5Y5Pqux.Myt78T71mT1RLpHWk.o8IL98RAf_cbjhTcmGFbXtnRFWaT.7Key2Q5Wct6LUEtKdRQ0iWRojE9OOKrtHN0E5rR2a_UmibCa1MMyU9DVjhxppuYmJGm1fHhZtnRu0tPq785V9c02EevWb650u_5BvpY4tTDWas2G0ZY1YjH37BbK30atDCgtXCZIA9dPnvJVkV5eMd0dhW9q8DFPznrkIWIvvZXhWvc4bAqRU6NYxnEVm6aSBX2YRCkbakcKaRJkkgd5qhkLgNeYQYlvGifSRmIDXacXc3ykHCzpxiaWcQb1B9K37S3ychEfqVGSiueRT1CEy7XCQZqauwZfsGzBzjwxFjn26FW9YyarCce_yvATPtTvtcsj3txdS6bQBY30HY9stTRldmx2_jYxk4pUL4TnD2NqfiPxBxq7dXdvW2hBPfWpzT_de5046zt96ENcTQy_0Zz3y7FIXHAcfv0B_px2J2AsAuWbBBcB9HfmtrbPkc8whNoAOrYE2QEPLpQbypqEjJoLxtUTYr0VKpWumLA5E0RwpyO0G70JPX7tWacmspFyZXY.QkLq_1wfGFumWM9QgE4zC9._wAJdeDO.EPLiZp.S8HxS02g1ka0ZFJdarZT2VaGz667hbDa7qLn02znNFIEh7DCKDNdCkejdBagjz3J51Xg945D1yx.HTRDM9AOLu56rQlgZP5P_X0FdIZkU3dwULuKjZk_f8M_avOjHgYfbgJoxpnBHMSEWcRuGJU4z9BF4dz8e3YVwqjfymsS1y.USegJJshVuo6Js_YdVk',mdrd: 'AbUG8kBppy6BchKlyZMNziFPzNANmL9KGukqQe34_IA-1768070428-1.2.1.1-GctiA6Hp44uscBqlQeTG5mjs6xeagekOS0EFrICuQcE7DDJE1fdqZ9w7x5lPpKCN_Ba6gKYsg2Gp_vDhsqtcsJr23BEN7mZ9IDVsohqJtdZAmzpkC5ogOKx17U7iAGPof5oesDtHjv1wWH5CvqTiE8o0RG8v0gVImg7Y3EhwhUtFS_zpLAq3VZc312HyoZ.5EBaz3dt4Ycg8ETgSpq_0IYPkWCyMYhEZiXvzNco0OI6QM8ZyvqCsGrpQE4bfVor6nQpadDQvBdT54sc90CyCwjXsGLhLafycdE4tmKO3BpOAc3q4w_xezBeNC1mD8PwHuBAcEggiHOSQcf1vGIhO2PPH1
Open service 2606:4700:4404::6812:21b9:443 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 18:40:28 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8707
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbe4d91581a30f9"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=zwWPKctNyrUBPUyIPx4rSIOOlSLCx1MsE0Bpa5rqhB8-1768070428-1.0.1.1-BHmhGEj0Py4VDOchr9psBZj0iBC9PHXCIf5iXVS8MH1u9iz3iKGPRqsPUEbtetORkrfHLMOvx2lP1ZCKV4F1w7uh464Dw0.RaaCkwFvqBSo; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbe4d91581a30f9-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'blogs.wrox.com',cType: 'managed',cRay: '9bbe4d91581a30f9',cH: 'ahP9iCKFQ8bDKZ4bZvXi6TQTQFkZDPk5xVmpqAAPuIE-1768070428-1.2.1.1-sNta_Why6B4IYMA0WbQlcF9_zW1Hqt5VBzeWUNJ4tUbvrXJHGYtyQBkNpccM0wo_',cUPMDTk:"\/?__cf_chl_tk=J7i_wUBCQ..GGzG1bBjkNFysshBA92dmbo2aVphq6XQ-1768070428-1.0.1.1-mwjfd1mw5khnV6EYQsGOJPViDVxuMfcqOm1UuiUeGic",cFPWv: 'g',cITimeS: '1768070428',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=J7i_wUBCQ..GGzG1bBjkNFysshBA92dmbo2aVphq6XQ-1768070428-1.0.1.1-mwjfd1mw5khnV6EYQsGOJPViDVxuMfcqOm1UuiUeGic",md: 'ZZuUJTDihvb.xtctXzLbzQDji2Hri0NL5V8paOZtLTk-1768070428-1.2.1.1-fqxkUoeOTPENfD9wrRF8umEvDi_oztFSN94ZP_Mw7kZ7ReCWbpWkMjgoDUw2iomaHGPgSoOeG.lZ_8bWqDdhnu_jo1MnjQyM9HCiu6hcbBroMbE.LypAR6S46wGDUfzQK09RZBVEHZytYAqzHg3iPgl0.4phwFH1YzoJ6bUXJoHcu8maKNlzGilS09SehvO9sPNZXXE_VAYVFfQk3oNYEZrRreNMDcDNWBF5hykd2adg6AzwhixGUqkKz6DBv3mrFo0X5Oj5gQ5Df7eG8s_W0ZBo91w9Nuoi_G5y7fBoq.8G649PPCjKU6w9fwJnV7IZF_QNCUNGg_y1.POrFz8SZPygLcwjK6IAafRJBbmzufLToaKd8FWy7njsjPYa7Yy6tO6ZWMlYmsYVNmoTArUEOy5KAa3j_MvULOJ4Vmt.t17E2sJTPPeVePdy5rlSyrIAKKAyw7GffQ3WBSTKqo2CDZCgEiLekMhT6e_s9ROFEDR9.mx53d9ZxRo6AEkM6sIfrhia7CRxtQPIWVr0.8zMbEaDtU.tFPbGbBQOrZMYBpTbfUYyRb5wL1cyUIbyf5kXVKV2QcL1zWi0UVrivYMINd3H88zoftlLSzgK9u43e5zckpE07Xh0Y5mCOzMX6L5_I1Gi85CBkcApqzFuSdDZ2P9JuxfejrVjj8RWD7_l2gg7.hu2IjogKrgZtg2pwkkJxD3TE3gBEqQ.UnGYAg58pRAskLM7a6p71bqF9nY3VVua3d597zDNrtvsK8CXRnwjg45H0YnT2f2l.WytBcjxJpwwYMnu8_v1GALbeYd._KEWmEQFkJgWQ3RSiTMmupRXAPgxY5Be5PBQdhtZKgaw.ZmOUzV5m7Lw7opjS8kl1p4Hq5lnaJGz5m1vkcQ37aKyit5tpdooDTS6O1suUd8X22m2dhhSykrt2e9ZIKOU5ENk1clpfBwDfAKFxaX503IFc8quIukiN5KDvhANvsTxRPoaenTXUtZ4qfJM_WriBkIwCt.LKTmBfwQc9CXCwjbNQJw6LCosfKeSybixQl66OZT3lAvfM2QMWySxO2vScys',mdrd: 'CUFAkVTomYZfw.EfkwtWkjzSdKHqve0iw9f1yF.4l7E-1768070428-1.2.1.1-lEYMxxpib6tkNlgSouyo6Gjf9uoquNNjHV58H5lwSjQdIgM1SndgLS1_HSfPKZawVDOADvWnLJN3nNeLkofcivUUVLx7CF48WiP8tBA5Gl1Kfr0ZkZn4sC01ea3mAlM.LMJ5kkBRpVAPiVhaR10blIRjetiv4GBw80Ly.JFWVDPQh45rS1s514ARrDl3Tz4_2iAJyow7uPl6nQIxlypqLu92zmi6yj9yMndMeV49fhWGIMJHZG9gsrCZtduus62LUZ2TF3Zkufe_vyv6l5vybDSfFni9Y.f73typHrnTG2C.uBQO67gv03UoGf0f1nxCG6y_mKdraZ_H8_Bbk0uv.ClpJ
Open service 2606:4700:4404::6812:21b9:8443 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 18:40:28 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8707
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbe4d915d879214"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=xaar9bf55kYXKqKQ9EbydLsSRaVyHMKlL6c_6v_AtxM-1768070428-1.0.1.1-uR7nFGEa.mEuNl4tmpsX7i5dIZwKuVd_x2395MP4kRkNn8ZuQwELOotOFVPfHgoq5Y8Ep2Jx9F0NfJxxmh6wBUpOWfoBDepkzRwYcfpEQYY; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbe4d915d879214-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'blogs.wrox.com',cType: 'managed',cRay: '9bbe4d915d879214',cH: 'kzM_afLein5lLNvAMU12amryYteMwJPzJTR9FhLRUNI-1768070428-1.2.1.1-EKDEeFFz6GeS0Fq9kiMnd3.JM7qlaQA23Uguuy47K3ynPonroy5wQ7z0JkVYSeJm',cUPMDTk:"\/?__cf_chl_tk=rD_xuuEzv84Ps4COfGFZhwj1I_iN1pnKaYmr_8aev7M-1768070428-1.0.1.1-bJ3OdEy4XM85YDsaDAupwbc716HNTh8_JcrZixhUcpA",cFPWv: 'g',cITimeS: '1768070428',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=rD_xuuEzv84Ps4COfGFZhwj1I_iN1pnKaYmr_8aev7M-1768070428-1.0.1.1-bJ3OdEy4XM85YDsaDAupwbc716HNTh8_JcrZixhUcpA",md: 'vr7k1vvHT_aUtyQFbt7Vno.Kk1ybtjyNOHBWScvtifc-1768070428-1.2.1.1-Z3jbJpxI_z.3NT7oZt9nflvIs6uEzyRUgtXiyN4D13KuihdQGhXj8vTaUycvOfUEsXEPGVmJUXkgdeCfIVppmHhzW3a33h40jshUfw20NQ60nDl42nME4QG48qd3M8ZZ09UjQR7HvBpP_xxObdQ.51qED_zSQw9wPUqit8rC7Vrdpl1nPJsxCLHF6GcuroPZMXn463SzPrcmob.k0u.0QjLOLGSsiEZvg2yMnO1MV4GNX.7iZtTK.4sJqO.qdJKsaP1lwxLG_oNufzJHXPyJP4NgnHJlyTeGhRatFCTQj8QdY7hbkgcjtv_2R5rszoGlLq5DAtuUmmyGtjJ3TKY3tPPFoPIGXLrD_DQXYEpMg8uLLQG2sDy7aruX4f3uAQ0vIanGrQKvMGwrUJBAD.dby.HKY8G3.ZSCnwSO8egi25csdUuWF5JFk.1cgIXflSBV_gKdLc361iUOj8hmc_0BlC1ctbkjSh14Uc2uSaNryYmN4HQkF2a3LQZ9KvxCwV95rqsnIc8K76PHSu5_uvJOf4c3JHNdvlJWAfuRmZWIP7LZthy_gbIMVcsTGhEL67PKtp_GdzEry_6MlVfzKXLNMgVUaCW_klt18ml_jQYEZi4dF8kcVjGbiycUnueJrnUYgpAxTeo.Ti6v0LV8oe0dfBK9MYjnDFx1LXYxdRr6XXNrs05K8zwjCMaiKFSz25KGGBdN3zas1_qGj3PGJHByovE5GjXR7TVNaOAvnEnB2Fl0qv7Prm_RtCIzgOtNuuC3mhiGhaKWOJHm8xB1SU8paSUwfUx6fdgBbWAsW9A0tpmKjiUV2xMUNZwzLwo7AbvJObOM_ybzbOsr5HxZgJQUZHCHJEBgm9GPDUeqHT.s.xIb7a1Yzm3YLB70q6oIOsLOGJERxWNrJzjxP18z2HgptRwzBnYrSUH9D9SKoqrHgai5Mf90n9bPPgxsn9oDOWD0o3wiSs.Wx4e5C8MDgTGcWkbFVNrZuQyQicsuwwwOLZo0n3pFbKsAUX2noLTclUikvTIZQuUCXuI0EOURozl3Mdc7BLtPSsPF7D9OTQb4qVE',mdrd: 'CtsIBiwncQ289idpp_iQu0AYEUGe_.ljfjRD3kSh2jQ-1768070428-1.2.1.1-ao4EDjQlkFHAdJKquLxBocK7E.foUDVtgvWeDaRnegicj70vTa1WXJhGdJPdNpkeUFHdTsfWKcSRxSk3K0xjF271v5NzE3HZn.Y.y0SH7Ox0uC1mIC8u58WGZ.pgFWjHFLGuF2sJUaRbc1Wty30b6binme.O2fsmHncMKYmDEpiGcHHUEOZCm815dNx4F14CoSjRGOgnBXtm0iRx_i2H0y7pM7ZcriMxhhPnG7rcdyIa3_p_Cmf8_Hg01GxO5GEjXG6la0FvZLaaZ.EZP6JQzJZPkTOZvrYWSPfsePfWSmlsyl2_6vhyzxZa3eAbAMB5.9AA9bt_6Hxvry64jZjiww1os
Open service 172.64.154.71:443 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 18:40:28 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8600
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbe4d914da33a91"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=vOHaPiIU7OvR696Ah5.tRp04veuB8q3Qiv08xVy8NbA-1768070428-1.0.1.1-4ZS7U5FuKfhJImRxhRXN2jzttLxibC6rzDGDIJ_sd8nRIRdI2yML0AIHs32ejSlzDDl.xfK9morRFU0lJcJKtXlOdVA4cKgrQvEL6o79GBQ; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbe4d914da33a91-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'blogs.wrox.com',cType: 'managed',cRay: '9bbe4d914da33a91',cH: 'CvYxEOmJ2my89kWCxOFT5s6rCzgR3MdefcIeb_hok.4-1768070428-1.2.1.1-GPvb3HckGIFin6XhZw2zFvj_jCCgVJZbXq0gXk8GZmFjz547yOpN5NnfcFASE3Tu',cUPMDTk:"\/?__cf_chl_tk=65Wdn.uIFXTL9._Gi81d.Tiw.OvFkPLb7W82QOAu_qE-1768070428-1.0.1.1-Y_3nFUo9ChWcTYz3gYrI2dZ2MvYG.NmWTxuT0NWwVZE",cFPWv: 'g',cITimeS: '1768070428',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=65Wdn.uIFXTL9._Gi81d.Tiw.OvFkPLb7W82QOAu_qE-1768070428-1.0.1.1-Y_3nFUo9ChWcTYz3gYrI2dZ2MvYG.NmWTxuT0NWwVZE",md: '2FLEdtarYjw5Gll81UvXkj4M3aS_6ypIojFDJB_Id_A-1768070428-1.2.1.1-70XPz8PDIt0494.aJaYPNsooQgcIpQTYQ36bPHyeCLkOKlzpsm5FerqGLy0Puip30k_eBQ0pWq1NBqCyKgplHsRMBFx8oR3bb5G_TEZ92xd8V.fKlST0Xv4AqwZ81VVvOKog7WDm8bBTy.OxEZRM2P1JncO831PlCHa17NOa5KuIcjWJpA2RBLDB2igFiP1vybsifI9Hh_2LrCDi_uZ1Um7xhuXo0z6Q4MLzau2MUdVrCvthG5IsB4U9my8DORwbKCZ3XfXzyytQF.i5qOVBlPkQBkAyC0g5alh6avmfYrQSUrn.ihvUXoOB5Q8EJUTG_9F9hR5s3A_qGKLt1LrrIyN5IbXJBH8nfvE7kO6rYDOpLljfOdlbm9Sx6KETcEW4y9NawYSt6VoDQ6JpzWwQpPwNvYDEzP7p0rf3lis1ABPE9Bv2wxJH.OhWRonKCzI.yASDyepKCjiijSVH0XwSkurURhRntWjqspw.rM_7iMtkTWiiGs_Q.JRYFyXsvAvNPR8J_am7g9vKe4t7Cp8pQ0umEtYix6aPOexRbPkYRt760NAkPhn0fGvhPJDE5Xy8k_HvTWbHAH3FmFfe6RQ9v99oCbgwsbxbtjjIox7pfi4Ni6fOlpV1sLE7ZpaaIKOAurtMpUDi.Hg.GVTz2V9c0mWaxFqwcU6em_tnVXHAa_9tzY9fwdZTw58MXFSN4RAtPlFaj8Sqe8PeXoEoLYP5fPB.tgIP_A6JOE5u4R36x8SqYZa21Z5nY6TIkfusmibiwnNlA71H2haHM7Ns7GQtWTW2oxOAw0YMKc54Ac1dhcBIlzoYcNsG6PlDfEzD.98RATv9JQXFEbvsCekM1rorn3FY3V92b688KgvSGoZohyswQl_9uppLZsZwIj0VCxySv2ma9S6wqfFjHxOMusdzUej23xSEQ2Pl1k.jkgrgiGP3WkU8E.i_mcOaXCmnG4.t0HiiM_JcetHqkD2fl95tY0jhd72VGXpY1yYPxTIJ4BQ',mdrd: 'cTVx2BHfkGlCi0142qD5SgvKGcRNDcL8OR7s88kd4fc-1768070428-1.2.1.1-XAC11ARp2ocwPun4DCBsyWun1Xm3PUgX18P1XIcNF8dGRdq2u1LEBN8fEpjDZZyzTr7K2Wi6_Get.slb_m3YVMYhgMKYrMxulJ3rzkCp.tdpI2L8LXV5JgkoZd6p.ZHtyEaJ.M5oizTfL3YZj6S0ZKPpYN1gv9a1HyidcJxlOcZO7eC7qSnOVEoQ1wQnLA03pmxkG25XamL1BTMJOchBTzmnWbSiyjjb9c9Gp0dli4KF2c_olvinwwBEr4QhW2ZutwWIT5wR26tOa1LZrTEhEWPRVuOIMs3PRC4peojQw4FTC2UZC2NbHOgtQ9DC9neC3plbToZqd5rtzVqohhulAwUBEaS8Tz2V2pxj4uuDrvnZK_w1v_pK4dLe8jM1Jnh7IzgUWdMlrg8Wce.bqKn18GBo7
Open service 172.64.154.71:8443 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 18:40:28 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8600
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbe4d914d106702"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=KgO.Pa1ywfgGaAnJzRBDpIJUjYy_1Uq7ZrBY66WWZ1c-1768070428-1.0.1.1-JgZZqdDp6FAtjWNs2gwUqOvzSduacsELwRvnYc6B815uW0NHHFpiye6NkSTYXa0yqioo0KZR1BIHv2wla.XAYtj0Tp9OhUN2XOWpJZw3mGg; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbe4d914d106702-AMS
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'blogs.wrox.com',cType: 'managed',cRay: '9bbe4d914d106702',cH: 'SLk_gtVP7RJcHhEQTtTMR.sZw6mw7lYxZf_g_mW9l3k-1768070428-1.2.1.1-z6yTYuWE9ewUeQ6LYMy2XDCsvZuGY3q1Mr1t8Y9WCnzk5_d49TMHYD8LHKysS5jh',cUPMDTk:"\/?__cf_chl_tk=hcpuvt0S3bTOEixV14z1bJiK1vHkqYwjhmOCmmub7GY-1768070428-1.0.1.1-E..z.qglBgkwoPe_D2IuW8d9QZsqXQlf2VEKEKq0_GE",cFPWv: 'g',cITimeS: '1768070428',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=hcpuvt0S3bTOEixV14z1bJiK1vHkqYwjhmOCmmub7GY-1768070428-1.0.1.1-E..z.qglBgkwoPe_D2IuW8d9QZsqXQlf2VEKEKq0_GE",md: 'TuYnTrOKO_rKrqZlhVkqxmMgTChGb6TZjF8qp4shx_Y-1768070428-1.2.1.1-X1aofdDVwut0kwHeCjwr0fkqvhL5Eyh8VNPD5zrVef1A61xgdrmjvDB7xVJIhpbbw57YZHL1nCRbDpo4ZG517nCPwBAM1SFe7suCA3BbEs7HVkx6UcAZ4D8Dqpypx0BRDTxBj23yAGEvnBI9C__egRMh8GhydfXHR4njEhSZnJyVWTNCym633iiOrjLH3zgqOGxz8Ra_QPNZQzP7qey7X1rZe4xEbwgF1AUPkLp0TjnYuwBNIdzQemkEJoFyHFWV3IKrMpKjv_4KVVEIAtGSsYzNSisTAyqs08IzLvbaNyo.eVfvC6xVMrMLbdXlG2Ust0OUMHR0hRW3IkXN84yyhxZjq2MQzkRdRcRDy_UwYG6bP3ikNVvQxwrpSRq8jpgTb4XsajYayjhZLbSLJpsAiUDMktwXa1qS8xjWbm8FAvac3wdnSYaWZa.jZHjY4FJxZNycSDLRsAHUol4LPt8n.tmpjQSKQekjJXwEtaU.SxUdxWGCPrM6WAhVNnpzCVIowPsI7wYcqYCR8wYo4m2YoWChxKLpmtbpUuDLYHTly3veWLbqY4yLKF81mO5jUFHIU_3mcJcW8DGeznKhPOqcUOA6rMtlok5EiB_G05TX_dNUblQUUhZQW632O6QQebhnVVRz.ZuLaEtCfBGvJpqBuJHYAUE6swDv239VEg.JnoJ6_O_kbdTnbI0vhcDRIqySoLIycrkK800tDidYmLz84FqYYAsjvC0DFEP0BB98W.pusfLDqVeHi4qpO6eo2xKhh_H8bnNY6ziu9MbNa4z5yyusFA2NDG57sU7j7GiPC7vw8nRGfzMNIYyGE_zBKq08Ux16L_dgTyGWLFTFFxdoe9UsCs28sPlR_8oes0AZ_yvycCXQlzT38csE5HptleECiaFVaZoE71RkA1ZsV0cGdyHx8sEgOOLlzLvsQQqtl6nSUXi8sTjdFdzkprTCGCP5o2wxFgBSVgaTJh7BF0bvfFPKdWHmwXlrh8vBUG3bpBo',mdrd: 'KmgFxv2UVkBD8njwf31J3NXYz58ywLMFHZBWavHlMD8-1768070428-1.2.1.1-OZdRmYnRA5b1aB5iC_UQcuj0BQ0tjvLW_Xe0SZWvI4iRFxYW66dO7umjJPFUL_2LHGl2.bmX6YoXbkFYUg43Stts7YDg_fSVcdLNTZeez.xyHvv8Bz4ZvlDauK9LRrqpvL23.CeY0tDPFHCc9A1Eka2qvLxC2p0jo2.vabu4XXZDM9MEDBSKYI_PUpuxjR4zS1fqrUzURnrHVumH5VHiINh9B3CeghJndO1w_NYB8vRSs7MMZh4PEPzQ27MXcKErZ_Q92GrjQNNTRgKQQs2MdHl5HqS0P6z0HVikcoqeBVBFGzOd_a544zStXykcH6nVDXLCBM0IpQB_T7FZw2PH7.FtbutsclspnSYeNjZtkCkdyjjD3nkZ_MbLhD.0B9VPkzA25y_xNuq4rRva9cMd2t1dp
Open service 104.18.33.185:443 · blogs.wrox.com
2026-01-10 18:40
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 18:40:28 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8600
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbe4d915905391d"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=6tBEEbr3GsDBGGtPFH9kQldMLiEkWZpGEcApei_zhwo-1768070428-1.0.1.1-OoHyl0S29pvC4n1H8o3O0HZrq1kpBJKR4O1N52lWevvDYCjb9XOFxNwioN2VpoAUxi.JGSysK0XCDpLQlSPlGNFcThAldyHtBSU3UmXK_qA; path=/; expires=Sat, 10-Jan-26 19:10:28 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbe4d915905391d-AMS
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'blogs.wrox.com',cType: 'managed',cRay: '9bbe4d915905391d',cH: 'M_PmJCP9Ykj5TUk9hi3_lJ7sS5_F_o9gCNGglzK2J60-1768070428-1.2.1.1-KvttmzQhCsptN351Mw2VHdpbgaOaxcRWW7_WYN5dXZjMI7m2xwI2vAAuKY0Iraeo',cUPMDTk:"\/?__cf_chl_tk=frSnP.8qwYlsaJ2QhbY53fHCbp3BaJfr5CfOJJQ4msc-1768070428-1.0.1.1-1tqxPbhgcbyU1dTe4Gg3vIe5BkhHeZ15_lOg7thiDMk",cFPWv: 'g',cITimeS: '1768070428',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=frSnP.8qwYlsaJ2QhbY53fHCbp3BaJfr5CfOJJQ4msc-1768070428-1.0.1.1-1tqxPbhgcbyU1dTe4Gg3vIe5BkhHeZ15_lOg7thiDMk",md: 'o7UMaXyJvmOINglOGdrXTnTpcMQRs6fhw4Fc.Sg6_uw-1768070428-1.2.1.1-GXiBQSfL9sC7f4WaDBnRIUYGtysmUCND8Kyj3zlF2tPl02Ib0Vh0TFpCidT4NmOOhdmXG3mSF8EGLZOfZpFtux21ZWUgnlPWK5swNbCib0ysyYyCTT8UqWjemKfDoYxLH3GHbMJSvJH93SnKid5G0NkWZ9.JluO9pVQN9_euZAD3nXT2gZX8oIblpcme3x5vC8gVRV7fKoPNgm8VlYNT4fLY4vVBWqs6O0ecCucHj.u7ewiDIf43VxVw9YWmG0wp3G1hy6BXsumbXuSBgGDfkkN9IjYPUukqXCGEmeF5NniHmsdNWK_RN4O5DxRb1Lk1p4DqvxqMewrP3RwZRbJU5V78nIDyvpIo2a1UrUfhK7IqvQoVUz6TakMvvl3rIEvVgi7O2qt7y3ph7EwxUvLSWIzvdJt.9SGYetO.Q8rfRpNIOZFFUylP654G_t9c15eDNIKUqK7fgAjmfFgpn4JneqK57zPmnRKpWqxnywBJc3iat.qzn7U4d6spd455elzigYp8H6sNnho8hEqHmb9YS4GHAKZn0bm8qwZJqxI3hZsv__RJuxsE54ffF0Dd89zpJYa99iDS.WMfNuSZNgjHIC2YYXjBB6u6uSlcWto_elO3.fN.3TUSyCxsRDi2fCY3eZQedkxqmT1bailA8JSslOMX8dR8G2LIaPPf1M11okUWi69hEtnyVOWQ9FrVI_QtkLqYKYCu_9m5qT_xQYXQ7k7bZBroa9Gu2s.ku6CW6vCANYnxmyCxIG6C1UZ2tJAv0VBTJWO_.jVRc3E0voI05XDpsg0kvY8tjkDHWgc.ZQ4eTsZLxYJbxNNNntXrX7gcimncvRs04VHEf3BBNC6v8x_puK9Bqv35gbaEZVU7Hlg9q_RQ_vEDuYx7E9CZ_FqaaKv.xZBwoirTV7zWlIvpzHtgkL4rJl0.5IIDZ7F6I9gLBQQ0.cRAs.PEvzHkDpS39pDGC0ijN5mmtB_il3UHtjtk.f0hRS7_HLES0wX6G80',mdrd: 'c5ronRtHHZS_JEARtl2bO.KkWTCzRAZ3o_aPMqq_ouE-1768070428-1.2.1.1-9chfDUlyJn3LoSS6Vo62bSc1gXjuyyr_464WwxLvM1VzI1IPhdjhGtz7bhO9M0raDhzIDZBj3S.UF8Gr6G4GpuwzI79GWDkvS.g5zXQkQK_HBJnHW.ONs2VksV5BU0zlowHrCbpKUt.isMoTSePe4PzbJBROi_Fc1buNeGY6Oatqx0gkwsxkWBGcXfM6HG.zhRGUYCcUzp5QF.pYzuVQuW5EjNVx_sK9REirxzb9PlnuW.FRtRz.zWxZd15oy4zCcaHcdkrrbxc6zhMOE8Vrd6ikRmOtGrU9.fyySptg4FGo3BF_2Om3T9EK.c00C5Oz_Y_JVXyM.MZP_I19uccW3whv6SvEU9makHKO.u_rL8Oo3PNuyb0roBZ5W.RXLuxOPgjuzXnoLlyUIeFCcamyJD6pU
Open service 172.64.154.71:443 · embeddedce60.wrox.com
2026-01-10 16:31
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 16:31:12 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8671
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbd9036dffbd265"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=RI6E1dJogFcfLEe9LtVopecEf.U5qTAsJ4ighQlxogY-1768062672-1.0.1.1-.50JfGNCGG98EZQPtVBQ9clIOc7vubjXC.sNBESFfv0y1ctg2iUqD5hGMIl6g3SvT0xDUeynLa6vrkJZ_YSCsANbj2BN.mLxiP0BKd.hv68; path=/; expires=Sat, 10-Jan-26 17:01:12 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbd9036dffbd265-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'embeddedce60.wrox.com',cType: 'managed',cRay: '9bbd9036dffbd265',cH: 'gykEanUUxcWU0bnr6hmlqjWzA5d3mgHc_tKG0KUUwPs-1768062672-1.2.1.1-jJCMh_3vKHfxLus.xpENmDCQWtzoO3k53He.EtS24uDvFSYOd9cjTjtbAwYQbv5C',cUPMDTk:"\/?__cf_chl_tk=GqbNIUm39mTA.w7_PZ8yTmlTX3ZXcTmUJqnHztvQFMA-1768062672-1.0.1.1-52qvCeIAG0iQSJLSCNccEqVW9ObtzQa7CB1UHaUa2Yo",cFPWv: 'g',cITimeS: '1768062672',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=GqbNIUm39mTA.w7_PZ8yTmlTX3ZXcTmUJqnHztvQFMA-1768062672-1.0.1.1-52qvCeIAG0iQSJLSCNccEqVW9ObtzQa7CB1UHaUa2Yo",md: '5J6VvS0KszTX6p1m2cY1vjvD6oU2_eoPzrWmDfGQIws-1768062672-1.2.1.1-YbMKXY8vP1R3kIkN71wDRKUC_a8guyT2.myT_c09kUDOyILwqZ8WCD5kbR20SmoC9dS.poqDIWPl2m_631Jr2JeSY3dx7ercx1qDhYgSN3NUhP00iez2TdpqqHDKFJ.duh4XNmDTTYPiOzhKD6f0_2D30eC1hXtciU5riBGybyGl.MWkDqf3NjFQd3L7WOMODeKCyLUKj_X4BpZRpnTlncrdzUvvfF6dq_C8lbKGdR2trJoLE4KNeSbq6mvhi_zkDt7WSbgoHobtIGzP_BldcuoheevutymGW9qMc3Yl7WkJl3Y7FybTiKzjBqbqNqmILVam9SDnvV06cB9UxSgXPEDqp_CT5_lrz4aE4aq3o6Pz2lF5GSmQ_aUceqT_cUcnVJarXUWu5ysaRz7PlYMZgJWxm_xuRcYMquSvBnZPwRhGP4m_9Zr0qutAI1KqBIUspC3RHlI4IfZE92G6p66DoRP9RHHo7PDHWxbdAndIlObiBvQ5CV0TvuSE4TqY7ty0uA_2hh_f5qHc6hc3V1vqcfQDarQnL_u3_yHXg5McLS34CZawfZR0PgU5hX8hpQfnyLqfOW8nIoH7Zbo8fk_s27thJfxBKRN9i6zA9T3HmQZ2yXFKluo6bZeDqcMo_3WEZGu0HVsC3cEgQrNNPVI8WBUqgpEPzGRoJqjglpMWzkMjuGIpjsDIzD7.gllAyVEymzWki2GAHHWXQRt4IPIBbjNgSxc71VzpCB6XNrf7rQj.gWDhfrAVQ0RrLie77Y_o6OXgrKEi1BQ6y0mcBTUFKlC4HbO3ZfW6G_v1lMqY2saHzP9uvGp66hzL8QoanliaDO8j5A9RAIl284G1V5mqq_Dczp9ASanla43FP7OGuKaeztuNvgSb5B0Y1oUn8Z6gRhlrxGIbd.xr_gOuQDqJu4oP3a65.B2mjhAcCr7G57nvnk12GVhOLkoK1OyFbRDys2iKspowps6hldKbJukkVQOUzl0QBshbQW.AS0cs9is799vRUNuF1tj1_VH9DnZg',mdrd: 'fK6qlFuYb8rSnUhax5rA6ED_9esbfv6hq43Bi.mAtsw-1768062672-1.2.1.1-YMQG8ch4zft0W.mE6BPmHqdACmGDJYthceSs3SGgy2CooTtmiF02tTw5LvskO5bB4xGPjiSns0EEY6jDjg2oQFpc3UaNJYrxLgQDDSMmXio.p6E006J1.XG3QF8s4.byP.yycUBusF6lutKa9brzoxSoodUEtgGX9jhu34yXBl22sWMYx2LThZylia9lohW6hAiju9IuDFP1ISa7i7DbQmMTi9n1sLZN4t1Uf_G6Rq6e5TW_gMD3X1z7a0gJcShFnD8CvOtsHHS8nwWLvmod6aoc.QYq4GLQ_XDXFsSb.YMpzrgSmV4ILeFtzCxqj6AJ.S0ht9KlXfB_tbs6E_PmX1g7zZjR4NiyGnWhYSiGPhTQnDWHLdlHCOsybsdpH
Open service 2606:4700:4404::6812:21b9:80 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 14:41:59 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 15:41:59 GMT Location: https://silverlight2.wrox.com/ Set-Cookie: __cf_bm=zkqYIJZ.MMmEFqULSFpx0bo2W24RPZnY4N2jFAWaiqs-1768056119-1.0.1.1-UYnIUxbJKr5TQQ3ZRqMoewpJjMuQkJ4xDYjO2DfJIy5wXmbuFSmEAWnXkpiyB9Is.3GIR8QMjwPJSpXrtMMifpP.8tym28eUgGbtwAWeZQc; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbcf039eeafad01-SJC Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4406::ac40:9a47:443 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 14:41:59 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8714
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbcf039796618b3"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=WGxHTr0H7dOgFyOPf_x.WidMGsKkrGKTHaA5hN4CK7g-1768056119-1.0.1.1-pyPp.fwiQg5PnJxDSWAvSYa_QaXgjX.smjjmYM8AE1wGmcGZF8Ba1NV23KoUdpSuSGWW4qp3..pSB6upZDmc1xqRLun088HaBaSHUDIe1I4; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbcf039796618b3-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'silverlight2.wrox.com',cType: 'managed',cRay: '9bbcf039796618b3',cH: '9MWTirHaTHHJ54Kh.afQ8mDszIDacgkfjPBX5hNVphE-1768056119-1.2.1.1-1SNA8LKDzofqH.3rslOloUqARb8iDUABJeAj_ecbBYtST9BxoQIJSnHxSKbCvXS7',cUPMDTk:"\/?__cf_chl_tk=e3J6.quQ7fRSu8Sb9Ky.0Nn7g5W5DuCLHLuzTS7h4Vo-1768056119-1.0.1.1-_flINSvDjGW04NmwV7gIXd_d3ynfmrYztVZWnvQHKT4",cFPWv: 'g',cITimeS: '1768056119',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=e3J6.quQ7fRSu8Sb9Ky.0Nn7g5W5DuCLHLuzTS7h4Vo-1768056119-1.0.1.1-_flINSvDjGW04NmwV7gIXd_d3ynfmrYztVZWnvQHKT4",md: 'joSK9onBAg6AEUjMkOrnJHk96NjE.K6ELY9xNWLxWk8-1768056119-1.2.1.1-li.eaW96VbXhN7Ua8B6GpAYpip4cowI.HsuzuMtfXv6yv3xkAtEg3_kEoma.VXBhfbbVO44jZsKprg0Rv9GjtqN7dhjON.KTU8GChluGgObD6IoPx5VCFS30P.j27x.DQlri_fTr1QFfnoKihehI3Rv02Cj80tpKO.3D66zf8ftjNxmtFctPqzwy9IkML_Wna4c_1jyziICVRXhWSZ1qh_v0OmobM8bDDcO6kABEtfhVXnaCP0bly1MYb3AyWopuK.3VrnvTn7ovINm_LO6TVHPzKkXIUaev4YB4mrEdjJUDPJ7UwSwhw4nNKvudNnkdnB_I2AV0LEt6JFVVPBv.nUP8KgJUnbkKh_OTqvhQ3tvsg_5y5Tf1Akyajc3WuHluj34Ve1w3VITA.W2RCktrvp7Aakh3tcMzWtUe73VpRaBUYITTOoJVKplphBPfvZMejyWXc9G3XObWd8isQP89w6muRUkAdLnhZlIGscWela5paas0azhtmpvEfD.zmLokcY_8LqtqT6ZaMMUX8mQWc3YXfSC.8byoL9coy3DKsM3A5nTSOVi1dEkhkTxuZIda2MsJswX4neHeLK.Jj9200ckUCDu2qxojaSx371jzj0PQ26Ig.p7kvxpaq6yAFVoh_fM24wzrUt2VKdBsHY_NOBMHX8MJr5..YOYtte0GLzJSAvLlQAR.xbYglS1duWMoF1VltHyreEB2yEzNiK742kPrCO7skwVDz.0XplL6WKJltTvO735ENs0VbefUtK40bgFkueQRm4BL3mMXHZR0wcMeclC1SeDP.EdQdrl6aHhEVV_rH0DASNHX4YDB30022IhygmIE5OSoEx4OUTeZzAZ4MrSZIC035xxYyNbeX8XsGiUmN.Ol2DzIz8oJqkZgd6Fu_pYnEBKPffyofUEhV.iaWfgTSkqZS9KIqHwlGvGBWmGMzwRUqgZ5k2lEnX_zTWPOw_xfpFOvWxKmt9O3RyOPKdBAJhDEoYmVpgDQqdSkj_LCEibPPepUid4iXuazX3rdW_56a_f7XYFQCnPKximNj2fUF_ZQ5IK7W4BaJMI',mdrd: 'ao_srG3SUgreNDQ0KFpST7oYXsUiQL3Dg_kvdzNkA1I-1768056119-1.2.1.1-KkwfmrPmEAgv6YhrSyVACkSTZgN8irizbzNOwNix0T8tgHQDjVDUBIzuCM8PY8jzG0ysJ5HJDwUbdIK.CgrdCmY9WEfN72KF5NoshSb8XP8H3BDG44doz6h_IVAxgYlla5ZMI7x1roLxfraJhk4Pryh9P2bhAQsUbgcbfcFmQ5OByew.ZqcCukkNb3pPrIosRRNanwNAdKJw33goYgSzXpgH.4dqokuji5qvlvhWKCYhxCYZchNcVOaNlYWvg4N_VqIcdpo8oQbA1KSo5FqMXvQ6Rnq7pAY_88.jJkoTS642bYvfRtXaJTF8_Eo_TW16Oxap4ZBpgmeZ4QDWIU
Open service 2606:4700:4404::6812:21b9:443 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 14:41:59 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8735
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbcf0390d01dc88"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=nxl1mzLEdk6fMZd4_6P_p0FdXn0koL0sFNpmFLrLs6g-1768056119-1.0.1.1-20tK3yXIMfcD8lxr4g2rRbLq4wZHTzeyJrdJd8sGt4DyVsZkNPp7dUGvEArCxaorT8qHvadxBfGLotCRe5vQPvVrggwNSzyDn2ew6xRWlRA; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbcf0390d01dc88-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'silverlight2.wrox.com',cType: 'managed',cRay: '9bbcf0390d01dc88',cH: 'Fq8tahcHfiqNQ_4JYaCscO0gXj2oV2EDUQGp6DXkpFg-1768056119-1.2.1.1-BEUFylIhPid6F0z1SrEsJjJ4SinabWzOXDy8FxB6XvRAy8HD6lMGIWHIPUrxtEtb',cUPMDTk:"\/?__cf_chl_tk=Ol.1hS9NZv3q1NA3ueptf5hndSfQ0ilZg4Axm3HAYxc-1768056119-1.0.1.1-QuGgumz0PAADw0kxtWbBgFNNbt.sSIRrZMSbjn3mTX8",cFPWv: 'g',cITimeS: '1768056119',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=Ol.1hS9NZv3q1NA3ueptf5hndSfQ0ilZg4Axm3HAYxc-1768056119-1.0.1.1-QuGgumz0PAADw0kxtWbBgFNNbt.sSIRrZMSbjn3mTX8",md: 'xLr6i9I7J9WtqZ9MEemkJc.ez4vP57zt4XnURtKtGK8-1768056119-1.2.1.1-7JSWo8FBcK38bsG67M5Um6WYlcCJsBR81Lx8vdzAVIcIWsfeQsFFJJfk.3faG1HR4Xi8EUKInFtk8tjPQAmE5d3O82NUNf54lAbBBWlyMsCMEA7hPJB1D.ecEpyidXilVGO7z2dnc8iffVlqOB.OGxyJgrZtDFgv4F1gBjda9_8DXeJ4D40SoeRUaJQowQbez8weTZZjhnQB5dsystibNxfIIblRapFRnj2KQW90cRbUgHqN2iv_f624Ut2ozrr8p6IZr323Uon9vTWHbQ24Q0YLxm_tiXCT4rBPXnfhFeNT04GEXh60_yO_e.zvB.ZbWvKZ570Cb6z6rp6xbPOraf9sPAOd8kv0CdN9PU_xP9ENK.C8XZbSUntc63RGABWOESBs_j0e0ui8MlTsD8V070AI7whA3Ufds.UrCxy3hjq8FVrn6wfHhWswNu7s.Tzsd6uPcU_qk7TLzK0M9P5KFkycl2DSpL7zXka_4YvT6hasHtJpS7SfGeLiKyQROeIT.M5fl4nf2KWqZriYYpPGnLAXMlrMzxu22Tu4EofW9D6qcD7cNnmSAUYh4JBB4TvV.7WgKHCRi7Nk2H4VwWiBOUufluts0Rx2T3kPKjCWJn0_nhxKz3xagxKP1xhStbgdg92CTBkv.TElF_Vblt8jwjhmoRq9_vPN3rZ6vO1ENEH9RMWx3HBtUy74vGJ8aAKLf9GiMwdR.pinAfQ3kDJTfluDkjMZuJp7YS7MxixVepjxBobLHzWGa4ese.6jOK0OALQeVgFoBgwJeMYneDqBIqncdciXStMsxohT.7WHK1_rvQDGjvzEpyGYndz5wl1tBw6pglhxfA9UUA.Dwz.kmHxvsMHhUTrizMT.v77V1l97TpjI7OyFmRHacFNoZOpWXhlQfAWTLA59.EnJLGY.tdkJlRLESbdjtwHZ2zIcJVzmk9N.YlAb888zFV4LujfbIaaJVTQLO9j.84unU0Q00C_6SsAuZ.7miowV7zkEWccKJPQIebubAmIqgPbXIM49vMFWBOt4wx.gTtWyiVGWGDzOTOnuECuq1TE6AYraaCY',mdrd: 'PoiLEZ2D_NmuqpgsZCESBGWeJJM9sx693tlwLv44Gxs-1768056119-1.2.1.1-X7xPgh57yDYL6FJ5ZuIf0YXHUfB7akl2VRecpUB6zbTBYShg_3FZDV5qOcLYoBXzuzIlkh_gJLW3Z7IQ4ziTpFL5f.vzLfrGKRAkFU7MT6MnBE5NBpFD1s7fTRzIq19V9K61jBRwkp1psNxDvGiSmhXHyt7ZadhIVwvpGh0lPnbPtV_B4SVjkQAi.hTsEqCLC81.q5kwqu9I6CZg_Z36_Ul1tfq11dCcL4r7Wz6De8L37KmA8cUronQBfWvMCLgQ.7INYYKqukXMRLXapoLhlkkBZ4XTGVfC0QGRUhNOWiCQkjBybUC2qj54UBkIVWKwOZ1k5vmWQYZzQeP1Ic
Open service 172.64.154.71:443 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 14:41:59 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8628
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbcf038ffed4555"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=2x.MJJX1kxqPGzYdntnxkpAopxtAWzgEgKNvv4A_1Ms-1768056119-1.0.1.1-qFVq5896F4.BquvNcszIF6rHbTKjBMaebGcFK9m99lgCGxHq5xL0r6WYmUSbpUGyaE8nSu59tI8s.xEzcNceI8iOEQpTbf7PPRVKeT3sPLU; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbcf038ffed4555-AMS
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'silverlight2.wrox.com',cType: 'managed',cRay: '9bbcf038ffed4555',cH: 'y55dG6TP34BuJxvCQS9LrKdJRs7YKlfJgyE43nmbkcY-1768056119-1.2.1.1-noP.PMPvpHSAhbaH37gJ4x4xIHahwjShct39ROLWwhf0Vx2seKE3QitnMghFQrz2',cUPMDTk:"\/?__cf_chl_tk=GuGW5NFk98Rp0A4TZ9lRrPL3APZrG2MevwR2.sBS.Us-1768056119-1.0.1.1-vjxVoU3ooQ4QSBO.6IiPHzX7oq8xmhEGnzfqmICa.8A",cFPWv: 'g',cITimeS: '1768056119',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=GuGW5NFk98Rp0A4TZ9lRrPL3APZrG2MevwR2.sBS.Us-1768056119-1.0.1.1-vjxVoU3ooQ4QSBO.6IiPHzX7oq8xmhEGnzfqmICa.8A",md: 'e_PoT1fQoyhshnk0slOkmfIDg9LYOkhqfd.eVbw2s3Y-1768056119-1.2.1.1-sbHp06OEfp9Vrxqd2gZoPOcCgC.8J4WcfOFzHn_IAP42u17_f8xnxGJocKEUiE0X0AgaQyykrUqN0grigil0hkHHwmEbpw194UCJ0GwdHrKHMaYediv5tSC2SfWkUswJSP6opTSzlWxp2k2s0EPKn_eQos42VZg2c1.8rtCl0dmu82n9fKs65t2iy.e4yLYZeSheWUfNRN6_k.VTplBBKPoA.kgnDVz.NFKa4qxNjnmxdv6fwiX901McDyDugy1me_U_Lqf3DTloNAUx7s4xoBlKyKIc4cZk.wsspg9BuFCWgAm4ffUj4p_9IHZl7VPJRriuW9k.6cX2TGvZ4jqWq7T7yTUdNPfQqxE3YFkaS0hjfjR1GaZCnv2c_6yNcIrKidEgBcqUobvhNZK9xvt3Ci0QYlzOjGtZoQOG6Z66rCwh_sBy3.99.zsU1GZmsXsS0bXsAkgjmvPwZTN22a0yhvbzNJ6l86v.LMdRTRRqXNYEewLiJ4IbWftlaVwBdV84GHMNWCJVRd.MNvgWpYMAh8t7kWXdfXvxWVfF6iXxsGL9kpd_RzSATTK9ZrrlsnRplwS9nHsqNoaL6W8h8qtuMWuDiZGGstVP0HhzrLEp5jX0uWqSUqhRJi4cS6CuQlUxgqrloNuiN_Njgfd.pSKinRdCOHSlukloUKCRlduLrnCD_5IKJqa2eE0Ccj_7luOcyag_5RdJFXV_yqiZR8NW7QpBA1xy9hJBmcDtL85VF2Zxv2.bfKqjhchYHvcIweTsEzKeCHUw.KSp7c0MbHS5PBiYMln9814uREW2LnOc.GQ_Mw0mBt0sYJV4DqWhsiCHFQ0vvnu7WEomwbX16kgLMdXPsqquLEcCN7FpPH1FtsoOT5YuH2B5nfNtlnUBW4SHoX.Yhmv5s0mzeVIE1YEjOT8Q6qINK_tmLU43cPZBbnrcMMHnumlOYoZUUH4p7kFe.9kTFEXIqJGVLI8rSQW1pWQri4nDGkgIWHXuMhW.aog',mdrd: 'o54xekneHeLQcPdOeu5_xze0z5QI9dHCvcTODOVu_RI-1768056119-1.2.1.1-YQaTXgaC.omrs4DOnc0Ow1Mkx1YnIzu3wOyH.9fs49psZD92CnL_AwP_uZWTCuKv4yiCfDQ8mbDciszkHwAuUxhc3CxuYQVgkBxea2_mv1V4rR_I7FLHA5JUWuge4hCg.OBCRGkw.t5FDplWQd_ociCVTMFO9fPSKkeCAfO4WRqbwJw.PjLK.xkVjN3sjmt1ImDn.uzPvBlLDqKRfDnbdrwMCGgNR3WHtpvLguSd0cC4xon7oGazXxHoRfhSx9AZnTs_vSLp.MoGSa019orPzQFaCKHpGAya3QCOUW38RY3zVcXH7oVEb__3F6PB.Z7GNq.LVKn6xwEyUWr7FwJ94Z8iwVrQMMf8pgyP3zxDTqdZ_dFW2Zxd2TBhyUFnz9.MYqnK_MLjVOuE8WX99W
Open service 172.64.154.71:80 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 14:41:59 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 15:41:59 GMT Location: https://silverlight2.wrox.com/ Set-Cookie: __cf_bm=cBGuoyT_2RWDDOkmMk09Z4YUAY68v_wIKTHoGPHztbA-1768056119-1.0.1.1-jgY.wxaq282Jo7CzQZAJJaIffac3fjpl5Yh3g.rtQOVMy_UAHaHIFUn6eZrr1y5zoP6tBErF1BFWNPGKJP2AKMN2ydNmTJUBKS7vMYRyMIw; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbcf038d89806dc-AMS Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4406::ac40:9a47:80 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 14:41:59 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 15:41:59 GMT Location: https://silverlight2.wrox.com/ Set-Cookie: __cf_bm=U065JuUzNh3BIxl175ztINflkuDvLshHXL.VjbT7rsw-1768056119-1.0.1.1-7geblNUXwVNXAQS4X8g49lZnbw1BcnOUVoIqTvG1Tz8d9kggc.VdItJGIpsRG5FlsSKuEpR.Ls_Fa5ohc56xfQnSRuTloMhS8R2TbudG_bQ; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbcf038d967d1fd-LHR Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 104.18.33.185:443 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 14:41:59 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8628
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbcf038dc15cdba"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=zTRvsuknIclX33VQ4.kNu.POPZKpct.r9abSDp5zFb0-1768056119-1.0.1.1-WBdwqM2EH10SinqPn8o8sHsoXHrQIi4qbPmVY4adtgrBOzZwlGiVL400H5xxMH8RHs5JX4LU7c2filAFeRhDDsFayJ2dyajKmNohyWZ1nXo; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbcf038dc15cdba-LHR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'silverlight2.wrox.com',cType: 'managed',cRay: '9bbcf038dc15cdba',cH: 'Y4z66iIrAk0NdwUa9EDojcHqYdD3XuniXN6Xp9h0bMo-1768056119-1.2.1.1-aIvwE2In6gK38wZzlTRjiUsIopYroJbyY4.ZzcIx1jDv3zMc6cdBMywAS2qo7yJA',cUPMDTk:"\/?__cf_chl_tk=OkH9BtA30ixEvIwWIKCz3SvPDhydrQA0K2T2k88RYus-1768056119-1.0.1.1-8PgLYfwzgk6PIEpi8NLq0Od6dsHHwl5iARqqaxYP2dU",cFPWv: 'g',cITimeS: '1768056119',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=OkH9BtA30ixEvIwWIKCz3SvPDhydrQA0K2T2k88RYus-1768056119-1.0.1.1-8PgLYfwzgk6PIEpi8NLq0Od6dsHHwl5iARqqaxYP2dU",md: 'ng19SCilNzEBI3kgMji6C5TJQK44_gocjdww59DQHb4-1768056119-1.2.1.1-4vMvbOl6hqg6wV2ZqjE1xeLa1IL9maxMWoT5uWhYALXXCoROavilKNHD1h_nfwxROmRt0K3gWLBBSimDmGSwCqrg9cwIwuM_hXVNjF8vGPmBv2yTPU_8WPPCAhoCczm67XPXGPf7tHpz5_ttYpku0AlvjETzH7QJlwaTDP_I5LfWkZ1M1m.UZgd9YFz3CtwKdpauUVibxiQtiOjW6RbhXgk7R.YZFKjruv24KANxVLl3pliDbmyJHOPkCBOIltP.A4LZhd66OJmR9wIdb4E.4o9YO4E0OX.oguZUMatAe02qc1WnklAzOPanhBAJ9xF13x61tPsAYeX_z5oZCSbnKaP8E_fJmNOtwC4d9xt9LabcwXW5rh9oNheJ7vR18eiEVf9wGO_ngdkWC0K7F7GRSL76QVLmK4vEafA19xwO7OclKhCaO_fuU3BG72CyWMbn8i4.iv1QkHBEuybJjCE70yN6.rqlhjr0JNfyffOqAVkygo659w1f25OtwxyM9c8S9HuOiTRqu_PEbExSK7I00KrUI_isDXVNbuETxzEmojXuIztR4.JDpAQJc95ITj6Y9Ub4hNzR0HeesQNC5KjvbXijAtWKSCk38H9IfI4ZhvaWvK4BpzvHacvdmQgXih1SX1YuH.351NGvcQ7FiLYlOXbrb7AuC9CyOJytEfz6FczeRUbC5EApT6bViWWy8_j0GARXowm9TE3XrNilExZnKM6dJQzfnZU9l5ibVMfUuD28W1Dw72DOd16tfUVdnyDwkRlD0.U6rX1zMlx_lVDDuRQSGDGmL9G8u9m3uSNCjodatJSCIFziMYG48OTzmNkdLYEu6Lf6B5eCCe5FNDd5Ip5mkVdgsK2k9JEtN6kcAI.xc.NmnhhsXU48vH1n5qiR0Piie5QN0hTQW1oRRkWK6F3gRKWeBRBq2eT5mx_hj1cvQqxnEl5MJ0axIhKRv1G5hyT6w43mCNaDLwVM0UOOTNnvapr57DZNsGcqSQZvn._vjvA16bPMt2Evgx4ADsBe',mdrd: 'PCXuEx.duJ4SwkBaAp2YsiHhzzqtfiTp6Lc.PguE8Cw-1768056119-1.2.1.1-UkkghsUCXWW98ABRvqvlsKywA7vKMzr063X1Gq7wqsMyC4HkZf2xjq3NPJI_JcSK5uYrLkS2bdk2ZP0VffxACkqyaX1g2Bhx9slVT0XrufVEqFhPfZKFNS4f3rap9GRBTTtkOlcfE7rbMTP3qqD.feMRxJaHDyWnlHuK5NOkFwnDMxDZLawkjSqyI5JzKCZxss0kgxfJBHTkr9WQh2FAJm1HvsUEKNVIOcnIhX63DuGIRze6pYtOj33hWtwddDp74uY2eyoFAjGGFjnzDy2uIYdP.e1vD9JyYCVW7O1jrQEw9imob1wAESxNnYQeTchBO7ovqxUXazpjp.SxLvTTO1oOnUYnAIc3BzIDwxNJ3gG6UBPrjrzUfBWGH8WwB
Open service 172.64.154.71:8443 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 14:41:59 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8649
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbcf038cab8ae5f"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=UQsUEGrIjdZPiTId_9ITY8xLpPPHz2cfYG4vY6_2_bQ-1768056119-1.0.1.1-Q0btxlMe9LmEoYFnEfCDlu87hzHRS8HfF2133JHdHX3z8JidNY7_SUX7cetmnMb_V.t8Gmv27VY.Lq_zk1YT0iinr5nCgn0Ka.rG9n3OMCI; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbcf038cab8ae5f-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'silverlight2.wrox.com',cType: 'managed',cRay: '9bbcf038cab8ae5f',cH: 'jblifHFgfjU0Y4_yE3FMh6LlVUNCgtfNmJ_VS8oomu4-1768056119-1.2.1.1-aavob21CiRU1b1azvHudKOIp.CIm7k5ZE.kX99fP4W9_XEHjtaXZjMZwYMjgH4NK',cUPMDTk:"\/?__cf_chl_tk=N_ZyUqVndFw4ma_HLr0kjh77rpoqRGU2iUG29qaCNi8-1768056119-1.0.1.1-amWznHR5n3dly_de2_DHJK8wSZCR3GVCx2K06eYDbEY",cFPWv: 'g',cITimeS: '1768056119',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=N_ZyUqVndFw4ma_HLr0kjh77rpoqRGU2iUG29qaCNi8-1768056119-1.0.1.1-amWznHR5n3dly_de2_DHJK8wSZCR3GVCx2K06eYDbEY",md: '7jSf9ztL4qeWsMvGQTLTFX4yKrNAOg3Rc7zKpP7QNxM-1768056119-1.2.1.1-gwuxCXpEv7sWXvHMjJ0r0h5lekviCHgIEIRzbaW_A7ZkBPLMJcjX1AErtZsFTGvBxNl6ifpWIvgBf1cVg66igwovSEzGbvp7sucMh6NJL_DovRpp80RgNvLBTFdyeWdNQGgWOmoT.Z5aS_Bh_V0wlSEwBvEUjYmSf33nl8GjROraTYrYDkKZRQ51aFC0W3q7BzMGbJysO0YEHXw7s6ODJFV2SmgWE7OvPNBOd2KEqEEX8Jb4N4QX2CQCUKX9eFyOMAWgP_YTDdmI9lljJAxx7a5pUnk5QoapifXqMNc9r1dllPLSVreEaOerIldhR4cOg97YPune9uQ6UhobUuztw1_f4y8P401jo11GmB2X0FERySE8pKxyGb.eosjPCsZ2yyxIHdzVjUwB.CFYKRDLmNxhCz6RFC7yz9.3WEVmp_dNFt7Dq.rIAsxw_qe6kmv80NIFmiI_OZ2d0W5ajLQiZJ4D7H1j0QLhPUoYc7w.msLIugMHXZCoofp_cJl4.gWH_h4pmLQHXGr5Vpin99KtfyJIAs8iX6iNnUuYNcb54oGbkSjrlCj.tknXBELED_ckJM7sEKaNIuMW_sLyG1dezWIVwtQnbc7Op9b7U8wXrP4p5IS.U.4F8wtfy95tp_GW6ZSqHQXfVZ3YKVscUk.jWg1fB8JR9sZllX0Yntct58MRiyDgldvU1a0uT61fg5rSEjh3PUMKfvc_qB2NCpUWMrimtrKQTIGvovNqRmgOBkPplJX2cGjjFcE_J7RwVQv0dwU.Ag8kLq8fQsslz_utBciTfnDwFD7DJBYQzdwQDyYjpL9hGujCzlTFoDkE4y6aYSSkRWr.lgjmTLZd3QwAJotDgbLXInZDWre0TCKtGEOB45szBkpQgsIHHQQLdkCmv3G3ZevOPSFJYca.I1x3U1mzwOWtzC7xARevXQi3tOKfc2Ez4QbaPlgTwcOXfGtBUDhEOiDZEiQwmYkczyTz7dX2DhBDZDHCCEYUad7BTypouPWrHFCB0m7jo1rNE6CP',mdrd: '6jsHTnnfwVBCpYWca8k_3pf0GRkjlz8gwF65PF50EW8-1768056119-1.2.1.1-.CCX9mC9L0Q6Ua936HPRLSw.luvpJgjMNQNnBACLZfe2AZnUJf4IJ7c8MwYrG0g0CS0d9as2lqOy7mz3RsP.uCsOpdLILr6DQDtB_2p8YNHbVcSniUNGekEvIKmM4eDfeuM7n9Xs4UWQKS5.zGeAuIb77GFK4HqTe.zuutygIDW.k.RHAFj.ApfSnNlC1QxyeN1Sj5ryuzJhkf2bZZLGIN7ILPzrno.IkcsD8isAjnCP_vEX_rmYaewFASzlmGvaOlbYp9wOegCmqW4U28lDYoSUMHhACS0zbp_Q2.ENSRaJYoASWwvgcWfgBxnv5ShDs1SLZcquyk7ooQ0vbGCK67A7RovT8Tdczw3vbmDdDs3Jb5llBCXJDBK7U9Olq
Open service 2606:4700:4404::6812:21b9:8443 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 14:41:59 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8756
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbcf038d8d19d0f"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=GAwG8qdbjuD6TPv9dFdACXB1NM_SdgMUZPaH_LAT740-1768056119-1.0.1.1-iyRjKhucJqtGeavTeYnDwlhNYyMAoIS5L0ZG9YWnD1CVoUehPyvnPd76P4JLMMVjm8TwzrGbo7IRsTyLCbfY8uRmnW6LGTnw3M55LzaLeDg; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbcf038d8d19d0f-LHR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'silverlight2.wrox.com',cType: 'managed',cRay: '9bbcf038d8d19d0f',cH: 'yuyUPLR3f0CZ5l7rQ5CFsmC_8ymnYX4kAd83eN8kVWA-1768056119-1.2.1.1-Sheb4Ik8KMSUNdQd2maxIPAEkKcggE07LSemtRb_WRdzCNK2wj22pU3I35GriOAd',cUPMDTk:"\/?__cf_chl_tk=s4pcmO3FcDT0fFXIlxWEIqY85nUtJ2Mds5v.5AzcE1M-1768056119-1.0.1.1-VsulMLDQ873ugYuSuKtL5poe5_cicTu1DEwQ2MX3MsM",cFPWv: 'g',cITimeS: '1768056119',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=s4pcmO3FcDT0fFXIlxWEIqY85nUtJ2Mds5v.5AzcE1M-1768056119-1.0.1.1-VsulMLDQ873ugYuSuKtL5poe5_cicTu1DEwQ2MX3MsM",md: 'NMEbfDwJyYjrBMBnzozY.BhJf5QExgHTTPHnvXIdvUE-1768056119-1.2.1.1-jjt1lnOWlHD4DobUXcfz5Ow.nlUi_1Dtj4zcHvPXb79RLP9E.teYLRwPzXBzggPMHjtmU7tlMl2gdtpzvg1xwzFx3DSYRQ1RxmqrXjs6RmP4.RohQdERQ4O941esW64epU4NcYwzG37lYTZP9P5N98ZoU5UeoZXe9vS9GyAxBy5YIVJf5j9o.zOxQrlFmiLlkHRjXn4CYAKuYYacz_DopU93LdSmW3BTn83bzg7tmMHFaC6haffZwn8fv1OKAWDMbavUmvy6Bm7m1Kp7mTg1h1J975JnyuH2RCxNmkN7fRScw6BhmJv4grD_jMBz_RU3_u8W3TpeFWCqnkoVuvpT6pVBL8n.ZfFHeCw0knIIAYKrr.WEnACXHSBRhufKn43ANz8oSWB__v.JXCA4ClcOGaqi2Hx.hVF_U3EdEAzM49JFWobNZPaVfAapG9MzI.8SuO5bmhaWwkPn_tWNZuF_rkByT4tpkTisL6a2K517HEuN86B8EpI6ncq2f5bU8iJGPWJ6UhtYwXG5OKQa2m0qInSmXWi7Vd7anZHlB9CRbtjDtFSk50Z_ma9mHIJtS42Eurb7l90yN3nS.lyvowQ9jRPM13pstUa60N2SjqWimdCMHivMRGFxkqPROrY5t1LMMOCSsaIsauVXzVNiothiAac_VrWQBlDFuSdXt20arilasFKu7.XdujTt07xZnl43UxapSMlP.vvFUTpSC2f63T7.awfDD7RuBvzUjbaMc03HSpg4Uf8tALauG9xujOTQiqb0DBd0vetCkuV_QzNEn1KXcwqOm6kC2thEF.EpQ2V7xmCLAVSsyqFXb5WY9Cc.iM5.PhsT73hF2YYOPK1Uxhl2qnDPRCZI5dEX22a6sv4TTvkoy8myuAukl7e4ePFO57KhpecnEEPqtSmnajrjwNJwTaSqEzdu86uHETUNDjzFtx7xwcH02shb5nhc9gnrywPr_y5YVS9DWi5dilnajZBmIL0YrqKMN7n8oxeBJBnEVmXmv7OKR6DgYsWwZXLcynmxz2unJ._B0HIxm.eKg65dxzy.jrQlBsR_7X_5_XY',mdrd: 'ojqJcNQl9Uf6ffSaBo9EUAkTqNNuSZCSAqnZg8mUExo-1768056119-1.2.1.1-LUXEXVGgCL.5i7XSMBmhfYBpDyCENDQa4NZr_3k0Dn1FIKyIA_mzCuq59rQFfDTE7ZfXnyWFKtBBpKSJ7uJFr_YOVCB5RVZ6CioXtCadDE3bndwxTV45MfwB_QJNNn8Ed22XrEkeaWCbqpnv_5rmzAM74OcFQm7D6q0pO0wEnNPIi7YWPOPQPpqWLV2d2Ju3vxQ6ltCEx34_P96BsseISsE_ZGKLr9VynRzl_ItoVlCOhOHzOuaMxXPT7LPDPObDAdlrqvXdDm0AH9p_VVyfBbm.P6JDVDG2pyqoLELCnl0vo6q5gMp.S6xPSbwFQkXSXrt6mYLlEFqbG7IZZV
Open service 104.18.33.185:80 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 14:41:59 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 15:41:59 GMT Location: https://silverlight2.wrox.com/ Set-Cookie: __cf_bm=iwTy_qaGOk65G2NjApgguTQrHdP9Bypl5AdaXh4Hprk-1768056119-1.0.1.1-U18do0CzBkVtmVeRSQNZYEM9VuSvq3bsdPfKs0ZH03VvxY1XoMrsoK2gXTHC_IafqKOzKSUBtTp_uAg460BN2eIZzn9u6jsodulk95AwZw4; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbcf038be9c06c0-AMS Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 104.18.33.185:8443 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 14:41:59 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8671
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbcf038ce861cb7"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=OUVzxJsc6K1RqVDpv5UD2XGNN22J32eVDFoqfPDFMCY-1768056119-1.0.1.1-v6hDrB0GxUu6pQgGGdpdxg.A3IUPtKSYN6G.m6Ziib0OImORlq9h.uzyiKPdzUUl.uMNXdYCPCrLnmnqBgHsQX0lX.zxGgZtRAOftqhZIUw; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbcf038ce861cb7-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'silverlight2.wrox.com',cType: 'managed',cRay: '9bbcf038ce861cb7',cH: 'iAL3iUgaM6Ji8jC_33dgQkHDbrn3XNzwTqVhuLn0Bj0-1768056119-1.2.1.1-jf9JKR2mhHhczPP1M6eof_.qhL7aHYjn.EY_5aJdoBytfFrJk5PyoAnZbNioofqj',cUPMDTk:"\/?__cf_chl_tk=od6ZSHzGlVqVSYeBzu1Soq0yu4XBPFYNqB_NCBm87JU-1768056119-1.0.1.1-no1Rparg99BRPh6CMObIkYNnHeKxJjmWoMLO5UUpW6c",cFPWv: 'g',cITimeS: '1768056119',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=od6ZSHzGlVqVSYeBzu1Soq0yu4XBPFYNqB_NCBm87JU-1768056119-1.0.1.1-no1Rparg99BRPh6CMObIkYNnHeKxJjmWoMLO5UUpW6c",md: '_Rg_MvIuQR.G0dcgthVL8hOERs49lOqZ8N4e_YqfR2U-1768056119-1.2.1.1-PD.mSxvc_pr6OSArF8KaPhdu1ijn6QgHVC1_PFf_tFZl9nRthbAHxDX3fe1xoVjj7XKOLTxiP82Nk4T7ATv7miZqw34qbU7UKpD3mCKA_AhKTFxnXx9zIcb5rJ6eEHtvFVUlxxhQd0KETrriIcuGIpmLazs3HakIPa.75GMlqkWOjtFR9L5JhSgJ2XxqQCywaWj1iNyNbh_nFUwJETG89SgQH4_Oeuo2qfuguJ1gY37VXCeuw9YBHfxGov2hmQQmfkiSHBOGzL1KG0QSkB28WMb5YNXFYPU_s4SlekSs_lfSQcko4rR3QiflfXSmYxBvkbAmKhC.iwsrgftbUk1xVNayc.rGwB0zUkuc4Ke3BmuEVX_SY54BphXVg.ZeHyF8uUSZqzH3Mwqv3kPXBVc5ITrLQP0WjK13U2N6AahR_zlTNGSMbepkLpeIZCJbNtcppF9arTQPktOqiuDIh6FVb4Bl_QloWgmhmmZc8EmscZnRQoyuVdb4A9wkOJCH3gAEq8ZE8zQ.BS5DA_.OncWlNajwu_NT0PSEhyWAFERG4O2WpBph0SHMCxm6FEliimP1Lw.phgEetOetsjMBvffBHtqFkrT_XuxTkLe1xc7CtiJMUWI4qP1nAF8f3kO78LmFxteCU8gVX59bKjRRgTahMyqEU0kKbd29AACEjbmHn1.d4WIxsGUTPF9f.z8ur6rVNpVOJXljBQGMT0j1AsXmve.oVelR3ulkg6lYrV.f_bfhqWxPo0duDahAsM3OfOsPvCRPi2dpy.ghHuBN.e4G3H1Za2DZsrOSvGeiIaZdUE1ZtGhnBPGpB3wBHVQzzgzlaYJus_booKZ6OhXzEqmAxamrQPPttkgxAr1IW6b75tXJdQ7PulcrqvT1qPA_BtsGv6N4gD_ClPgHSIGpuVuyJz7Z_1UX1B0fBXEoCmYR36AirxMPBk0CCxoVsr87uSxNL0O8MyFhtijalnb2xItwhWGwt_WFfdzZv.kN1S39OmHbCzLwxYljNQ5ZHlOjUXJ5',mdrd: '5CtlpPKcnxOnYHQedJHyp5sqYtdX2kVuqt8pa1FvyPc-1768056119-1.2.1.1-hEHThOxfV2EMdwT5q35V66k2wFiC1F9N9ihJz88Qk_eHKlkRIpzXG.cWS2moqWIi.0Xyd_iC.ky9NCKdwGBZ.lufyJ01uEUUn1ZapcWaiv8FEm2d2dUKXBDHUkyQEgRc1l3PqHvKplRTFKKG46XnTKPoXuZmlfU_oV6VhU0RFFWZbCOUWuIRmu66McFqYaFeRLYWeDckptymd0NCgoUI8XnKD3stCetfNnLGmh9MlzlD7sh_NKgmgmvbMmPFPTd6rYY8UKUA8qUC0JqT2Y6Sqqj9cj9itv3LbzGvvaUP7tlBpztx4BDkwEOTMkIx4.M3KfaY72W4sDC60ZaR37XIrprrrofJcNJPW7kD2Q2kjjxn5t7VsldypAq6Ka_CH
Open service 2606:4700:4406::ac40:9a47:8443 · silverlight2.wrox.com
2026-01-10 14:41
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 14:41:59 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8735
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbcf038aa6ede1c"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=gpCnB_9nsY9OAhFM7wr8v6r5j8GH2zPNKSvg1zEJY3E-1768056119-1.0.1.1-.YVxxX.MeWTk4CP_xg.4VS.RYaWsYCt8BYtAkyKS7nJL6iS1csH9jqzZ86rWF2ZB0JPRuQ4ozv9sq.LvenYETM1YGT3rhSv5BO.uT8VT.pU; path=/; expires=Sat, 10-Jan-26 15:11:59 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbcf038aa6ede1c-AMS
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'silverlight2.wrox.com',cType: 'managed',cRay: '9bbcf038aa6ede1c',cH: 'edCmbV8Sp9QBt6V2aQYJimPHQaZm7wKXZhLRPft_u28-1768056119-1.2.1.1-uJrAsOVAeg2arb8XYIDyteCW_vNyMyaDv85xMWT8ZBPN3hyeSZHHYhKxMP1PyF5d',cUPMDTk:"\/?__cf_chl_tk=ZmbuhXMtHfTNvgqOTUI1i9x3_5a6R.ZKrVpnSA8sRnY-1768056119-1.0.1.1-x_hAz.Ooz.VssTkB8Hg7Cyj7ysBz1b219v_d2b5tPQ4",cFPWv: 'g',cITimeS: '1768056119',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=ZmbuhXMtHfTNvgqOTUI1i9x3_5a6R.ZKrVpnSA8sRnY-1768056119-1.0.1.1-x_hAz.Ooz.VssTkB8Hg7Cyj7ysBz1b219v_d2b5tPQ4",md: 'LuhkQ3JDwwYeRHh020_NpVF09kAB6fLQ3uFwAiz7umE-1768056119-1.2.1.1-flDZFAjII.WYPVtSCHBtYniVPJN5L4RbdZfu0jxvIP0UpZ3mrG5JMCSQ.MBTn1Pz8i69fcTyzEY77402A7wUZu_Pvqwtyxp5CQHTmVUsX8i5za1w9JeubtOz5RqVVvh9xsWs5z8paECdVmr7.a3pjn8_.6mQ0xK_z3ih6NvXxwV_0cktsWmSDe.Tvj2NxlKJj7oXOpqMRB_omP0azVlwmFltLJ3wOgTFIkHG.ura7BXFdrIAml8QbyaRMPKbttcyiX26NOISRCYjrdEznZv3cx3LLCZf47AaQsAIwS3N5kA5Y1.2e4n4i23jkc_vEr4KQmSfhSVZAbd6ZW2S1VIMQoG55zuNSfQNcUm.iBgrJqAUqncI0PI9K1EYWc3ym4Rqljms7zUjCt0OEgIpZeTkTFmrmigdxe_AK0R1SG5xGiQh1kk.VfbrVbKU2Yzz4RS146ie1S.adhi9t67wfoAM9G6MYd7f0hRnflwyJB_jpfBo_to3aBwEWUO7wPZHNO7grTMv.bhl17ZB7fLjy_GzRzJQJSzhtFtAEeZDl3HY_Z6bQlk6AkunxBbdHZ_c2X3OomvW5SMFDF4kijskzpt4wbXGopTePR3YzpV72EALsY0Uf2miljfv8.TuA0ElMSx1OhslwvXWRTIt9EGCzUnZOpNPi4W17okG3k5nmLI8xw2F4fw.xwJgt5wzG39mbMKv17jsDf7AI6t4qfoPJRub_LcjAGY4xhhg2QmDZpXAjkmKrQq2UXvS8Nmyn8fIcCZ3Ana5Is3GLnrXLjZ47jxJ9EWCuWC5m8zOozkcgndgseun0Y3QHhA8OnDgs3dVuJ_GJDYp1zVAKfT9iJneRG45zf2Fuw_wL9NUUFOpoubf0b.1fHebqmY2kGDFpzRxsCrAVxNzPbkk0BjOsotwwEcE1.FAMU_BtEQuGwwtCcTuArgscoNUVXjejGe5i9OzSokteOG1.WJYM1yxCu3u9KDqxp_QZaINy1hMKpggPgzdjHY2Q1poWLFnWIlo3X0azUVr9xtbJjieKzSWIDyS1H9rzq0Kei6zoGHWZen3HeZiPRY',mdrd: '5CaQFwRRn36HN5iID.o3.xkYYuSHW2ZeZ7q9Lc8tIsw-1768056119-1.2.1.1-TX5AzTJvv4FHemqGMsbhKjzQEnWWEPgb3Kr3G5UL9SGXIdrq9HoYQ1BVwPukc9V7ltbSwc9.YqRuHaQNE.2pfcm_IHu_MlBCRWdwFBcvhXesqMRGFFHPeKnBwCxsdeZa3st_GyIxZzyENkALBBJMPkgzbNCJRWvuy2.h29EKUIR0dWNniFeaCn.FGaLk3c4OHlDBDFhpFUhuMEP.RAnXdKdRBi.D7C2swXiEpczdiPAgAsHpvQmSOi4rLXtkNdhZycBZFHCFpbI0Ap6dc3Ma76dIlHCyxa_xT4oGcjDY8RTyFEhUNmNdLsXftne6d_nPk7Y3.CdoOK3U2iezCk
Open service 2606:4700:4404::6812:21b9:443 · wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8679
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81fa0a51c647"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=Glf.LiwYIFTIdeYKnpLnApyc0341VW1DoxOyfteWYqk-1768051603-1.0.1.1-9LHSHiOnjComHrYf8YNSOJfKC0uxy6nWkaQWjwtfWjJr7axqG9Ngh9H026i_NqzCDMVut3YlJQ3OoLwDihm3Qjx4qXvWRSAXCvsDCjLWcVc; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81fa0a51c647-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9bbc81fa0a51c647',cH: 'JuelzjFL4aZDeLvVfizudnAJtw_BcjiYDsSZknOIsQc-1768051603-1.2.1.1-T5DXwPaBlo9m0THhP_jkl_JzLQxrXBWOIUtUoHK_W_.m4VciNkaFhA4Hl3GejI2E',cUPMDTk:"\/?__cf_chl_tk=n3yIMvyBH.Zdd7qkpK11E8J0HEJMTKEkJ21D0VNKI28-1768051603-1.0.1.1-gmiMT.91JVsH5VydMVWR1ve9sbu_9_Rmo.cJBhQlZEk",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=n3yIMvyBH.Zdd7qkpK11E8J0HEJMTKEkJ21D0VNKI28-1768051603-1.0.1.1-gmiMT.91JVsH5VydMVWR1ve9sbu_9_Rmo.cJBhQlZEk",md: 'nCap0XNckcdDOL.VyWHdveFOvj0CAyCGBn4inXNYorE-1768051603-1.2.1.1-vJCAt4pFMWL1LtxQy4hCWp3KIU6riK4F_xn_eu7z52adW6LZVk6tOAvq.IhbqLX656HIpKFISt1WPVvRslr3mDvZxkzBOphWVEU1nFQlMoDB8hD9EzmaHmoZPb_25YAsZ4K0aXRNOdcR3_5KNiuxeuU4M00OGnA1ewYUSRpJU4VOsMdT38GOX_WuAovwaSAi17SDq1VWsUda5ohvC39vh5QUFLiCFFj6V96QCk8medrqOxH7MuQ8wflQzFGq4LD30Lc3dZE8auuld8iQ2DoeN4wBdJWsh0b6ekG9EVEVSXKNCK5gBIxnrpYwy14uTlieQfJObzDb8r6x4BQbTMwXowuzFYRGn_k.zvT1ht7AMKTJEKodmd_ROM_2MGjylMQXLOpua4MlCUtZrqozE.OJWdB7E9p4hVF9grvn5CIK2A95V6N7FWQvtlAk5H37c_iX.Rri6Q6w_Spu2aqAi7TSx16av10kgEom6IPH5FsA2apHn6fMa2yZt05fX4WRvu66NEHrDmC9R.Qj3vnP07KGcFQW4f0mU.c4HWBXt3Izg4rUwxqdG4lmK5vv.jTXWENmNLOB6uzl8S6ldIKgsUcXHaqxNM.HDwJyeTM9_wtaIrwFXlIPDUNEYaMrH5wfCWpczk2CpJNMnRfCrXnomRwRZyzL5PnGKcItTAU3i3UXKD5Wn9Zi868sebbEWzIZpbKjZJ.vnvlblWJeERvcfFlJ6ImSFSVR5LildY.cHmCAOsoaw6iU70uWwnfhkfv.mUW_bbZnW2xCbysg5OqT4cBP8qujOHCcPUMMBQSOkImPGv9FLNHkb_J27yns.GfCZM6f9k_Tsg8jgddSYQbZz4RlWbTpB_a_1B5PPSNjmif62TNJ59jW8i7L7Lr619Si5MFvASMwrRjiAhAzifFfwezV7bwhvDsJTuz2VW1sitjme7YX1VpF7vE0GFc1dDp7MjOkvWizyx3wjP9S80EMuA5JzfKrDCYkprDIVY5qpYAn8GF80WJ1GG9_DJ5zF.Oh7tSjUkBlUYElgO7Wnd6xDuV2XK9KbjFclAJUNlwrkrgTNjc',mdrd: '6l5l12462ll7048Uq3xm4.jdKaywrQI3jps9aHKI2Uo-1768051603-1.2.1.1-bdyLV0atKEjVW9lfvA3vFoxpItiG0mP.VaIg.cK1SCWGrTHjq2CTAUXpXw0bQbzi63LwX.JD2WR5Q6_nTnwfs1Y3VhYtUQ4pip_A2h0GaPPb5kCE3Jf6x14z1zHuYMPxntG0NJtsmVzg6Ye1Xy.yUEBMr1wNztl12JWRvG1_Wq7ZmgwZpimNr4_pLVBt6IaUcy8muOw0nhjlmg1XUi3A.TmoCRU89PqbcdsUQiBMRlIErD4rFA9U7HhobHESpMunJwU84DdChG2JgzHW0DZAQaY6biWgoLbKdIVODLzL29QGE978PhkcppQL3vMbE5xqUqLQHH4mOyN7GDBJEG7o0l6E38TDr6F
Open service 2606:4700:4404::6812:21b9:8443 · wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8658
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f9a8b6d7d5"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=BTc5l1ON5ClZGlIhvwVZBcrTlh8nhnRiHMPhJ06NSIs-1768051603-1.0.1.1-Q7lhG2XTk3jPIEnPk4klAn..ADrRL0Yu2tnBYPV.vZAErDT_g085gbSmogGK_03otgPZIp3NvaKEGBej33amld.RUJLStcG5TiDsC24Wetc; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f9a8b6d7d5-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9bbc81f9a8b6d7d5',cH: 'YxsmiRhS6dj3Vg.pbaqAYBByxfGfIsX.12Hbh0PbOkE-1768051603-1.2.1.1-UnQG2Juczmb1iMIc6rXvVjHmImXYDQFvwIzxOxJZvyJ2A4ioKPmg_4B_nagC1X4Q',cUPMDTk:"\/?__cf_chl_tk=Xnnv7R832uLWN1GQe54UfGFN5KoFus0a6JvxgQN0uco-1768051603-1.0.1.1-KQqh_VckFxvDOOxMthOToIvQSs7YUHz7f4Dg48H.O7s",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=Xnnv7R832uLWN1GQe54UfGFN5KoFus0a6JvxgQN0uco-1768051603-1.0.1.1-KQqh_VckFxvDOOxMthOToIvQSs7YUHz7f4Dg48H.O7s",md: 'msBoABmxsCvoLY_n_0a_G7z8G2e4ioAsKkwM5B3J_Lo-1768051603-1.2.1.1-Sy6NcLwOdxoM3WE9XY9sTIAgljYX.s6IwkVZgOuzlizVZblaMGisibwk.FRuylqM7mJwVskFJdyolbfMOojlOigHX8XLxfigpRmgruqZU7q8P09AoPt_tEkQnUl84bagcCQZGcTpq8GwqFbpMRVMLDR5OPZeH0l8t.UJZbJO7ThyJzhdkE51IXRg2P9woYqW78t0nfY_u8wMoBZeAQlMkXS2XcUXFTtCM_Qltp4ECfTKp3EzRUnGOgtOByC8MoA4Q.OSr5tOKCe3cFcJeS_BtI9ESHW9WseB9Ec6dsOLvX_0v3WikzTwk.3IPT0ubAE.5pH8H18MD0MwlVnnH.HCUBhVKVSweXLA3zjYBsZOmIxhpLvdjZfvOHfK.os2iyZQGEnramehw7UCNWPMLp_dTOGoKWoF1rMoR1k0pPXpG6RUlvuvUsdvyF1ldh5mpshdFKfw_ytOfZU7pebSAlFvWAp8He3XpgfUld.NqC6PDWSA9h2EUQdjaZ5klEJE8l0b0wSIBwkB9AqWxsoOHS8Z9RcWCZS0fOY_liRYpA0HKaETh9ERg47Noa9738bhf4OtmJVeoTfVLhl8TN3kra_OUBty3wGWSKGeuENZgIuuXxlqzmlSaJ1TR5bZpoiPLYyxQzHE5z8zr1jgSeYMRcBDdBofx_XiSSRn97OSZoaZHFDVeIzYp_ySj_i373.2kZhjMq8ugWhGZZmPbn6DzjBnGAwYq3ur0IxujBhe_bG0ia4MYFyAQnyVayalTqI9Qzu_E8SwkpNBQ1CFxZ5FDQVdf9_GzHiGHg1sJLbloTlKo6JWvA5F56Y2QVGtUFiLYVBXfWto6UD545eRtosGu0ilSJQN7VIWoEN10OGh_D4PhY1OnmLn11YAfIW8.tEwnTLc5CWZ8jY4ozRJIIiRytYqsnwu6CGh4jXZeDxCFEMWZwwgVXp_m6xlr66CPvdj3UYOJIx3xjnSEN7PGTYQTal8KsH7u9Mito.llqxITM2ib5KYE8LBLxvVxWr6.BxQaL60SI2o2G3MFZK8BnFi3uQtmQ',mdrd: 'aCRvkURLcqlrJZY3y0ev0zONm9ZF_W1VBn0d7G6i55Q-1768051603-1.2.1.1-p8Nfiw99.kjWrHZDuZAnMs2jsKC66B3I4TSE4CrlHagoZXAaNHtWofMdFlmijAhqe24I17Cj6z6NHWMBsxnRfhCKv9vExU9pqEjXd2G4DKnk2h_GDa3IxmfcJdiAJ2tlEr5EXtgaoUUNEwk.Xgjq_TNQDCvYBHGgjlQoufl6HIlpRAXPyoI1Af9FGYULt8tkXwij3QO7WfjDmYgrCjnn_uqV9RYCgG7RrY1UKmvhYvZ__2EcjfLzqvpy2mxQ3Oq4c.21Ld6YmSSNt1617mNlH6yTErp4B0FUSlrfqP3HHg6OIh78cfE1vXT8cBrG_unarbNTaMR2tdB3mbo6HtJVcBwcToQ1m42.r7A3n8dfyICeDlfYGaKq
Open service 172.64.154.71:8443 · wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8573
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f97a56fdaf"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=XPXdtXJVIaHeaJfG9tlMkNSPTNb6IgZOTelRr9NAJLU-1768051603-1.0.1.1-CzK0TQd2YiDu8Esej.ylplheDkrffdm19De63FXzLNTK.IEcAD9Sj2m_VzPxMbmlEFnSUt4cVLOyeAqHsKuIQu5tCpL4hzRBgKpf2aQrMCA; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f97a56fdaf-SIN
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9bbc81f97a56fdaf',cH: 'MzMxtaa7pxXMZN77PGoy4k5ryrjiSrPsVjJxug15X7g-1768051603-1.2.1.1-PRqGLc3QA.VYxm7U1GEhxf0ciyfSGhXVjh4DQfE9hLVbJoANd3DEZooINKo9S.8v',cUPMDTk:"\/?__cf_chl_tk=jCEISXcqmfMKrRN_dIY65RzdJMRr_uDV229Xr6KZjaE-1768051603-1.0.1.1-BEeB4s9G2uMY.2rlhu383JXFL13yFKIB0vZE_oEHNyQ",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=jCEISXcqmfMKrRN_dIY65RzdJMRr_uDV229Xr6KZjaE-1768051603-1.0.1.1-BEeB4s9G2uMY.2rlhu383JXFL13yFKIB0vZE_oEHNyQ",md: 'C4pqGr.g4dRl47UQRsWPyX7lf1U6d6IXnMIImMF_reE-1768051603-1.2.1.1-eP9YTbECf9ynDr0exBHlCa.jP5NT_4SrkM5uiCCTPxOxXxm6BGJOTfGZKxCCOEnm68xjmjuSYxLEsWNtoQNkvhAtLjb4Sn._zWNSSADyLWSkSU638YRE6Uiuh0jdl2k_D6NJGWYZfQGswqSpLPoxdwaPgBEVIEUUlL_lcwuCNqPhsJOCHMEcTaw0TS_r0OvxhIH.7bcbXGGXc7XpQaAUOAc.fR0J8yXcnl8Wr_URXf2Wf07lLTwyNahqfo8rYCF.ESv89HSYkTYHqtqN3YXPmOgzFt81k7WtkTIvMvNBMaHs8Ka_v1NUQQGDN1cvMhllP50gFywjq4Ww9Xxu9OSNIEc95hcwROJtcWTcFsgpbw_Vxd1EmaYlpyc_7lfWpSwrn3273S2k0kZpS9P2tUzmgjc8Nyj_O2S3bAOpU.1UBooC.JFSJQESb6p8naxA577HqqZILJQCnpJ6_u_yZRRvK9p9ZS0L.YeZ2hjxvSy.BXm70mt_RHYPQBLr9T0hqYYdkt87BP1b_n3JX9liMM7Ql7EYSpl9j0arvOkMCxl8zWX2KVCmEcvIyig63dQENfjItl_9r7gCkNsQXLwt15lbYrfMPbftS11qxbk0SDFcVIWw0pOHfbD_Ji.XghMP12ue9w5GTdmoqLqp4Bf9bj573xIv_H5mQzn40Z7bjoCTSGwy6TscLESorZ_vK5EdEMYN_xK1L11HmPZbyjVRCzQFjMSGPHTkfnL5RS6GK804BuJLYcMqd8Sd_GARWt7pNhESs8bhb30He1ih1UmeCUVVITJGnbxqSRHlYMCWGE4N9zl4LtEFR.twG.WdVEWW7Hn80wbBggP2rXKcnwKisg9HAAjloYAXTjujrOQTKRsk35HsPGBlBheT_4qSGbOlWATQqr3rjymAr8b6pU9k0B0jBSZvMhE8Pru51.rYovNnvCtkrtGaFhosPgEXDgy.BFqj5jC9SyybM62TP8r_9zEbmCVvtITCwToSS82iWbTldbg',mdrd: '6Xltn9BCLqqyIR5mt.pgXg6pKySRbR9FQMb_uC.tYAU-1768051603-1.2.1.1-3RL2tJythKQ2YtS7VyH.yhXRy0S_icTd_cbmfJ080If4k9VNKUI4RYWP8UcCkVx7GkjLbq5E1vVXS1SHHLrpygZjPLwsfJpEL9ZXa5_czIHSOHbGQxKBqGhgQ3vOX4SgpcGXc1i3RqDgqKglqXqHq2EqMq44rlSlhxUUUMeQ0isNzUME3x6qNC84ZERnRkVY0q7uwsjEWStI.BLaOd7bQIsXvEaehlz_QZc4zh5t7Zk29v9DQjTpbtkX8yoVplu7L8E6xGlj81s84Fh61tirA88jXM7fbmRX1OnPH.rKpRBlUFrqx3dOP5yiFrupifqI0qDRVHPrS0h.MZLJN80xE5S67FQILK9JgTTfHuQ4TWRbAKdtbclGZoEdmKaiLXXoB0Z0RB3npLUhJlQY7dkF2HXs34QIjZ7
Open service 104.18.33.185:80 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 13:26:43 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 14:26:43 GMT Location: https://embeddedce60.wrox.com/ Set-Cookie: __cf_bm=ewf8S9xbeM7Wdhi3YHR_IsnOiGpXuP0JnlsjlgrCnKs-1768051603-1.0.1.1-MIdD3XjGNZEuHIpHXIscMSc5cZsZC0SfGsCAky_6j.c2dHUug48hn8LaiqORwfWUHKuRGvZj09n6_YWqlAt4LkU5KW.VQ.XXgK6hB8484ZE; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbc81f97c056bdb-SIN Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4406::ac40:9a47:8443 · wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8679
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f96f32fbfb"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=KHKNy6KSak5Mo1ehDMmuXiUuc6UKMkLzAz1wwiXtwZQ-1768051603-1.0.1.1-GT7C.8p17iSJqcIFRe9ifGhPkZNtvvLLoWMpo8LgKT55ii_FewuhEQgErIakmW0h.NhjsWL_b7a1fu1FLRRN4OTsErcpdfBrorLvx2nkoB0; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f96f32fbfb-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9bbc81f96f32fbfb',cH: 'S2MJOoAOlICkEz64d3pX34GYvEy4Pb9P8eVePGfttZ4-1768051603-1.2.1.1-BaTcDmnioxis_7yOnM8Co3_XXqYWqfGdj5dfItpkPqrTtqx7TEZIulqaK6WlM6I0',cUPMDTk:"\/?__cf_chl_tk=N7E1UohHOCeWYT..fF0BCIk3ZedR1JrJBVx1k9pZuSQ-1768051603-1.0.1.1-JjWxKJNpg_FyNi60IfzBP1KyvgSBM3tPpWOy.e122OY",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=N7E1UohHOCeWYT..fF0BCIk3ZedR1JrJBVx1k9pZuSQ-1768051603-1.0.1.1-JjWxKJNpg_FyNi60IfzBP1KyvgSBM3tPpWOy.e122OY",md: 'WzZknZkZVBD2JxUTqxbIhsFEDKYUk0b5WXsjeN8Qyqk-1768051603-1.2.1.1-CgxB.Y50jAsmd2cGq3yTRFOV6CuyAHmFmWYEFMHV7fR_XCX3sfI3ibkH5t.yH0qTlGoNPZWMbtvkbXwhZkoBeySu2bL9.kUKjWFkze4JJshuSggMcv1ta4yqEjT3NeSEZFNABBg7A01CH.eaIEm0PSQr5RtQBmlTrrLeZxSuEWY2Bk3kB2MGNNeBgbnEBFgAmEvpB_dQ4Onhrlpfi07dtUNBKlr8cxWVt0ymGLF3bNdbMMjnGt13hnosirXGJqMG9qsVlW.awJ189EQNRDIrpEe0AufaJyhKBEupGoXBzkS5C3c_qSfzbw0fkPTJEfuENk.2HYTS0YI8wvpohZLhcngXD.Qu1_A3F8Eac5Qio0yIgV9p89QtrTkwYxGfoBGQcXnlBAj6RVeFFaLyPzmjUH2vZy_Hwww6QPZUZWdC5t0.57yovyC4HVjQQKaFB8VVZKcmkIqRF8Ey9nn_c7qoJYi8XpNVbYW7d0Qz3Ac9zQVISjmt0yTcAf3EkeVOVIUICTn9iOkDegNGrysr1j_HHY1Mq3mEz.7Fw73DCw10eGmOjxYgRLbeTUpIZJ36HSMqPvx0oDJU27TTaFZ9mxYFTmci0PFstk55Pyc42cRTqaskxXaWNaicxbdGqqw1EBcNrti1th5twl1_e6DKrmKeVw.2GE1dVoh07m5tSaWLrmWuOwmlW7GloViaEOZmgoXxhvCEVmMUzA43vBvkpn_HeD0tKpLhwzOTm_yG8z6pBpH0pHqEF0VVQhg_uTm5eTq5tPt0bZbgW6.FdQLgfDktrG2DjIX5KgjQOZgb67E2oZLsAE5ax1o_gtilnmChzc4rxWzDRM4xbZWGli9CkFSs.lp28g3vZTIRasgFJ8svjLgmhxBiD49ZuEZtkZa2_YQ3gAU9ivXya1eGxNmHPk8XJQDXL52JSwhw06GgwUH3HkngeHc0nk5snkNfIG55Z.cKkkpzGDKWqFM2JrCbS3xx_SZqznIQY_oiUSv74W0D6syQ_ugp1b3QfShTlATMisFqpekHZ8KnUvXL0YsVrLYGF7uVerboifpskSe7mS2Hor4',mdrd: '7suCNFsvJBfC6whNYsgimc5Yh5afZndjqxhaoP.aLyA-1768051603-1.2.1.1-OtDyHXzNjBb4XbJzjvnA85memKCCJKT1TBpC0SP2U35jr8ojZOJHaIpIvoItZH50gRFAuaA_avSEuql5Eetz83nH76SH3jiCVIc5oTc5Gn_0nGe0FZHVSujmNid3MG1CUzNJol22wEjtG9dDiFHK6GMJPxge7lfTXomYmvX4fY1A0w3MAIklaHmfzlJiNtmgSFYKa0Zd0DbRDovR6XOHMNfkfWV1d9rdRNOenYNlQCkv2PsHxlXj052LaQdaJ27.Fhe.VTc8Aow1FZW3YpE0O6VT3K1zxB2K0v9lFG109n7lI4WRAm1jTun5j4aTOy2P_BB3JMBRT0_gXQxCi.g34uUFUP5exSs
Open service 2606:4700:4404::6812:21b9:80 · wrox.com
2026-01-10 13:26
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 13:26:43 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 14:26:43 GMT Location: https://wrox.com/ Set-Cookie: __cf_bm=B1mcwQVG6jYg._dUfu9Fa_Gt0V6Mj8xGej7vc203tS0-1768051603-1.0.1.1-5vVdtXFuTG_Wd0Y5i5gnIq94XXKIWQ_K512SZGwR7UKgXgJOKpV1fs97GkJ7MUW_MlDHlsJVptPU_n_wjvXJM90g2krHqYjn0HLTVUxRiBc; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbc81f94a039441-SJC Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4404::6812:21b9:8443 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8735
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f9499cdc04"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=LwpT3smdReSIGlugTdpzLzdxDm5.Nrmc_MdYASqNaC4-1768051603-1.0.1.1-JdaDm9hA8JHzvSZzDMgUJPZyBPkrtVKplNfmjIRzzjbyWv0UcTcvMrtSkj7Yb_Ucmfwwmpvn8WM5kocynwr9bRdBXCgkpJXFWnNO_C6zxVM; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f9499cdc04-SJC
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'embeddedce60.wrox.com',cType: 'managed',cRay: '9bbc81f9499cdc04',cH: 'qAyQ93TOsTuowfxSN.I3cNl1r49mTnIFNgFv2hCtIs8-1768051603-1.2.1.1-GUNRVEuk.rzU09IKNaJQXlRcCWEQnLWB4Wgr2WSK7WKVIZXf1F0YZvy5jzaulSo8',cUPMDTk:"\/?__cf_chl_tk=JNcZvzdqkRRnEXZn52YWIw80nblWAlnEcxgX2a3fUe8-1768051603-1.0.1.1-RV5zWflEdIaYMCXsimQl_KFyqERMe3NEeyastpdnLlE",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=JNcZvzdqkRRnEXZn52YWIw80nblWAlnEcxgX2a3fUe8-1768051603-1.0.1.1-RV5zWflEdIaYMCXsimQl_KFyqERMe3NEeyastpdnLlE",md: 'NzrpF7lUYNANvY9BS.sqycbJ1X1zU7L5WfMQJkjbSLE-1768051603-1.2.1.1-fR2_59bgfP8vQ_36p_zJ105e_VKbO42DKVj4JgRTvG7gOP0u_.Zii.pGSL1kHmnLBXgR5jpAgLDsHRZICKiPKs1.HHtyMSwcZABESkJYA3ky3sKN2NOVbaavlFSRpCalMGF82rQyYkr4u1rcXI6PB_5hebufK.ZWzCElKOJscOlxxm0rtFHkau2C48_hAioJ1tFumT6X_lz1k66CZ4AKzicpXvKuEFqXj4eQ74tNEFjEzTMYvEMHCCSgSsTZOC.mWS2ziAiztFdqeiKv8wargg_YqjLm1KMBE1_LVATyh2d5XxECv0zVrpYqmij43urM20Wgx3k6ttwSdU5URJkfSQyDt4I.XfAATzoMtNB_IjQwAt4XjkhpjEyoqy85fLLfLzo_k1LDLiap5itmt9AC_NYjMTogTI2eCKeJ6LvdCKvtr4k6Zb10oGbeRbisQjnXOwWjkKt3s7vuIPf9_Iy0OA8CyXdv5iw3TbJy_urrv2H3GkT_bJvPrMGCGiTbbRqOmMGEDSivwY6b5DWBSDSUEnHvsua1aKkGCZekd7chWIn1piHHvm5bqSK1o09IJSHh1R3CSEqwHH4F4AC2KRG2LpYOV18O4ZKiOlpsptbSsesZ1my50oG50PGqFD9H0R25gHVbSBxTt79Ay24j2XPhrSe.gzj_Ry32I9xdqL9_rpUcdEZszZ_8l5t3xwUfzupZ7NmTRZRoZSGBoesqbAYpK4QIP3dL2FdwtluarIJBI.EvZSznawUxoaXj48LI3kqKuFGVj6LvEI6Q1GGyfjFgXUOMoMPdppgc6gizs._Er0gFQDOF6Mttk1Jvq84E_BtnUxme6P4gOT3Ncwnmb87fq.M.kXOZadIJO89ACYSP92qdll8cL_Qk75n3EOWyhUhBJ0WjjyLAXhx0_ULDHwt_eF2Xwp0UFzS_bnctiffaCwds7T3tAzp2aMZcLXdqZKtM918uJP2LxMNkm8m.lALIHV.lnlVuM9KsnZexEjnOJ_FgCtS6ce3RKL.Bmk4yqvu2O9JIaRLoUhnNxlugQP6dCyfkmFXV13uQiuSjc3b0I2g',mdrd: '3moaUXUZKq2tCalSl7JUYvIpyp1QyOQarglyOnR08to-1768051603-1.2.1.1-NWnROVVh5uvKGur6g3iwzIzPVLZcJjXHhhJltoiDDLYSdK3ymRLoHHdgIgwCj1Ddjl1J3mbZV5Z4V.2Rk.b99oynJcyFixhLrglnlfoTtRgjIwdi_gtZRI8mOeAwGq.6F5zBrY_0mrwvM2RF_eZBMgdcPm7ZrG1gdOv4XW8drmfLImWPyAGzlJyo23wH01wiTlPu0m5jqG.jtaXRx4cTzf9CYEbY2xBPAmV_MSbzfnFgEBHUwUE7WDsLt6GwnZpXYGc5mIRjSHsWyJQQKZlBkjhrKz2o.5x6n8AMs9dddZR.Gjltmr4hX_EYywJDaaFuRudYaA95Q1MXIYwzdp
Open service 2606:4700:4406::ac40:9a47:443 · wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8679
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f93bb51f47"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=r17Z4BhOB9kupxVAFBbA1v7ihCluds72kcfm.AZVF8w-1768051603-1.0.1.1-nVAFDHSP1hZHBlYzwQxd4Zl_.soLCrBroNryVQHVMeBhnR6nv_fjz_XJbwmeHbYQUspW..gzDO8iPeb1u6q.LRy2hVKNAU2tmYK1PHEl6WI; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f93bb51f47-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9bbc81f93bb51f47',cH: 'vXnyR2CJZOmyPV28sczazktxkIkgyCFkdAndVPyaO0Y-1768051603-1.2.1.1-rNWsEOjNhgX8ZaZh6vQyF0rHx6xpUNLmqilJxWtTSRd.26Fb.ms775Wa75sWpWd6',cUPMDTk:"\/?__cf_chl_tk=VdL1W5kzYbyKhRuwZngqHv.3RjiorEmOtMVdrJd5MBo-1768051603-1.0.1.1-L0Ywza80YY2aKADGakhhixKm4mJff1ZB.pmY56TPkLI",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=VdL1W5kzYbyKhRuwZngqHv.3RjiorEmOtMVdrJd5MBo-1768051603-1.0.1.1-L0Ywza80YY2aKADGakhhixKm4mJff1ZB.pmY56TPkLI",md: 'YEuDOQ.lfRieUa6JC6jINh7Z2LQf5EBZyogMtLksXVM-1768051603-1.2.1.1-4A0SNOciDxLLht9qVZs.g00Dqq5NmDY6GU_sHw874Fbj_vPZC3Gsf4WAuIxrFsTvqJwDOFHffqRpfy_Vy2e8IrInRNk.EEDblCV7SnzzK4cUhAd8Xs4iG7jlo8r._18xB7MYgrYfYI9Vufcopxvbgo..47.6VY4aR8rrItYBFI0Ag0gHkRUL5YDxkqz5mESj5fZvbbAXp5po3zHfAPw2h8mEkbtvrkUBn3bFGd3.leKrjZMoM97GNrLq1pafwh7cfYeiPKZM_irmSR1L3Rm7B0_GqOlFDBt_8F2cQceKU3IQZcDP1OWTxytW.dnEcJOTU.UVulzUwltfzrBJoIRa7m0USpRAU3HWMY0nmYfI6ixsM5GSSBIqNPlE8LOIMit0LVy7_z9rgNZcYuRgddmemH5MOeEfNllzM2tg3FYeqb0THhedIWdjlqu7mDZmhgcj5Isu8UzErx8yhYdoTVQ.kNo1206yv0TR7rcSPmBxhHfQ51V3lXksX39.Itv5udZqnMaHHWcwRxMGqgRmYzcW91gPTHRpXsteWPjxKNiLF.Ni4pl2phF7Qs5B57IL2cZrCtB7mTft0.PKobmmlSdOkLx6WwyGpBbtFa34RClNco5o5jpfTTyiUixIqHCWLMRqxvtseftsj4..ih..Y3xT7TrbnvqtrUKsPCJYNxWUtHEyErnT_VsAwpzw1MByrD5lYrLpYd5ZtPZn.W2pss0zUiStrSH2GGiXSn8NYbNT677vUVxR6T4jpkKg6_gAVnAEzxuKHDWincrxWbp9eMG3ZQyycqlTjQzvM.iAoVaNi4kBXJ3hBbnSsr1L1wTBOEKH9bVIQ9i_kUC.2nPcdMq4tBsBOiv.uNeR9ee2zmSW64re9V7p59Se8_5zKxbaMihoEU8Xn5zrBnwxtUTjL7NOoetlmaTJUHQExj0bwoGujMZ2.2SWd33hqK.c1rogxBoNC1m76HHGb5DNTkVI0QISzn07NyTg1lc1WS4ZfSOEdXHQC97o2YXQYnpNZQ90N99JPxTyYu7Wr0.Vl8cvQxk4DO112eBCOOJEorESUB0xsyc',mdrd: 'aMfu0g.UxfpCqRugFNhACyIW96LIoCmT_1CGhg7YZA4-1768051603-1.2.1.1-juek.YMyz0oW8t8lksRuf3XegPT099ZLtrtFqTkqqvnCNI8Vn.v4cGauiOtgCpa.7mTn9fGejK70y25pKzOa3b8hwTy6YMnyJiRL.lfLk5Fy0ZxtlaOd_owFVmMKtNUa_W9CLiFSAREmNN69_JVbOlVo9yhwTKjdaBkX9xDon2vTIzTH3lZG9bSJnb7ORGsaWKKl2jGr3B6Uy3Oypb.b8g21QsXusUiEQHlafL1vH4J.f3vo1xNaVC8y3Ar3.KD73X68STWsEkGeI1PfCb7RgWE_Quf_pKzSG0gzpg7Y2o_23B4WHLZmV.aVTvcOjM3blWfu8F6V7jSzJ9Q6E1.r2C6C.2.I3ZE
Open service 104.18.33.185:80 · wrox.com
2026-01-10 13:26
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 13:26:43 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 14:26:43 GMT Location: https://wrox.com/ Set-Cookie: __cf_bm=_TcnWE9Iz6qNChWiqwu6pkEej8CW5ZZFZ7kM1kmb7ak-1768051603-1.0.1.1-o7c.5FdYZqr8cUn5xA4CPMvTog5LNWeAl7ljf2uNLFagh4i.zZHVDXwu6hHidTJlDm05yJIIdsM9r.MD9GhZ.pZO..UIrB8.DY7o6eiSEhQ; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbc81f92eadac4b-YYZ Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 104.18.33.185:8443 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8628
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f91e4fab63"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=LrrzK2O13LW9H73BnzqAxj6EHpQyPAdy2VKu6MZl1T0-1768051603-1.0.1.1-hevBjEOS.qK5kX2DWgOEKTOpwijQims8.PV.lulEI4dveq30ImPuO9.TkH.MSQzRmQGu0h9AuXB1LxLYwX6dhd58ybSXMphf.85ofkc1hgs; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f91e4fab63-YYZ
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'embeddedce60.wrox.com',cType: 'managed',cRay: '9bbc81f91e4fab63',cH: 'A6gI3uDz_HkNHTeUTsSTOJZQ6p4JaCUOp_F4k3KPbNY-1768051603-1.2.1.1-t4l5CqjiYp9lG4ES40VZvtJ58GbViHxp7UdB_45HDMI5JUAMI3W2iKJ23IRrkZop',cUPMDTk:"\/?__cf_chl_tk=1bSHYj0hvuqBzp0xzhNm6NLw_VpdmtSJmGiuCEN2rCQ-1768051603-1.0.1.1-qDVE5CPw54iWCssTE8wnYa57uJazMoOOkNo_tL9FkrA",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=1bSHYj0hvuqBzp0xzhNm6NLw_VpdmtSJmGiuCEN2rCQ-1768051603-1.0.1.1-qDVE5CPw54iWCssTE8wnYa57uJazMoOOkNo_tL9FkrA",md: '9hmMw8HjP49.JKUiSXtrJZx6Yv1XqD1hnWTypz8sJyA-1768051603-1.2.1.1-HQzeRyW4jR2aCt0uYdnaxNuC7p3YP2qEE9ADTxT0WG0G6jwA83J65t11n.Pdflh_cz9MsJ4qliJjPtzDKMYqZDNEGx1_XtmEOlYkpyunNI8Cj89_GmMpwfWKCCJ5IYQNgCbrU_7q3.I42LkZCkx1iuPX6L0fou6rO2HW9qlaqQiAH7ecHb4.8fUBpwNW.nGnRWuUdZQVta9qcCeJUL78OG_X0iqgi5zgQ0gGKHHePln_eFtds1icZYM4NpzgP7bBETfQJ4B6aiGzFqFqHizesuJYHhP9nBGddcqe4CS9OFNykqpEZ1lWpYy3eS0.1YZAF2j.9OwDuvelgSN18V0HUok0lsIoOpc7m2x9feouRzbKX.nG3_yrL6HfuKpJ7qq4yJCmCUQatbbzgR1PSg1iMDNmOILAqgA7fI6zFaB63mhqnbFkKWlhWg2aoaRfnZQpK8Dns51rqy565AQ86VkX38188A3lVqgNMzpXfyywQj_k22eC.FSvTqd.k1Q_f_bUkKYCs6rgoPrP28FM31EZxDRnIeNj0tY8VX3Q.WeTmyzGI1TDzbm4X212qtQlG9hGroWArJX8CwaTZCVP5ZMgZuwHzyHt6RZD3q06hB9oItJtqDjvtZwg5l8vC_F4WUlku6pcxGVcHaWMqjqMUbInxhRng2FwU6SG8bYBSglqPp9SFytb263RSGgvjGExNz9VCVBek7BcXWvhuytGNL4D86Sas2M.pTGB.D4vi21N8MIyyjZCCHySUqFIpMG1S2kFTTWCbleRzjnWV3_CHQbO3xMBzt9DVAFWBvq89WsJtxSVch7oF5yV2DgHTvLH5bKKJafS2voilNr8B6jue2NABPZlJY3_GswWItrhFfqQqkNc1lXAZ0QvFjof1rb6wlNl4PdcJwp4vX7picx9Cw6cnqbJzEYkKNIQhJSBktyGGl9afyKG1TWHl3VvMn5Uy4QlwMemkfjkazUEVPVnCjLA.M2WBjaNW1lQ.jh9Xz42dGGDSCPbnd1RHaATQznpc.Uk',mdrd: 'yc.58f.gy9TEvAWSTPqBYnlSGwvR00KltlC62XAM7pQ-1768051603-1.2.1.1-Fhy0iZ0UGQi73gFvQ._SowIlCDVa5J8Vv97Upk0XuftvFDUmdslnHPvdW2IFP2QeqYkw1SgeBkSIobaz6pu7_oJ9YgDdiQRV4fe9J3onNXuppa0uN3fEiOpiP4LiggAnYRcfMAqD1DpTtMcIIOyq8MAcWcGYvvsPvU7pc5CGHYhaVlbG99pSOJXbXlIL_IrcwJ_mNFpD5NTgE_1rd7.HLgJxU0lzMklzowJWM9IUtlHnGpfULt9408g5gumkODtiPKYrIgf2XAWq.Vl4pTdqCgjoskVDw1DB1uz.9dT.xaDJe8mOYzlwebICeP8Wvuhtc.jeg_j7Q_PILAiCFUE4NkhgcOVWpQUY3zA17HQxKOwJFLMQBBsbhwn0jgIG2
Open service 2606:4700:4406::ac40:9a47:80 · wrox.com
2026-01-10 13:26
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 13:26:43 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 14:26:43 GMT Location: https://wrox.com/ Set-Cookie: __cf_bm=oQfdIQxJ_c_BPtQcDgnldNdqTmE9LkLEViEla98SB0g-1768051603-1.0.1.1-ioMmQciE_Q0rs9I4O5mXXqTOoqwAEIFXwja88is5o5P4V6kDTVn4zqtRovMOSIXxYV8TpvMnzUBmqukdMy4KIxKwRtiY_gYbc5_FTNlbKmQ; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbc81f90d425b28-AMS Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 172.64.154.71:443 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8649
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f91debd28a"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=h6FCELTiDZ5uoYX99suGc36i955W0jyHBabTz95MSF0-1768051603-1.0.1.1-C.H5RJSAOFWzLCeG_nyJWzTk6TIANp3jRGkpPd2Cy8Vrpu1HFa2s3sicuwt9.7X9FSHGwiqAjtC_CePVfzewTibItYkb4pyNg6Rbog0DEpI; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f91debd28a-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'embeddedce60.wrox.com',cType: 'managed',cRay: '9bbc81f91debd28a',cH: 'uEGs2amGrvm4Od2kQvvSMVWymUPkE3y_wmtvMd6Oz_g-1768051603-1.2.1.1-O7DhpvCunQkqhzJE6GqkDH_32M5wBiB6d85Xc_AJ9MPSWjE0yfnxmkSm_U.2W7Zv',cUPMDTk:"\/?__cf_chl_tk=0twS_gc2X8ygi51J1bWXxMKgoFj6NiHZGcWniNB8MSw-1768051603-1.0.1.1-EGt36evV48wtXAeB0d3McZfgVrOT4ryYIelzvV0Enfs",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=0twS_gc2X8ygi51J1bWXxMKgoFj6NiHZGcWniNB8MSw-1768051603-1.0.1.1-EGt36evV48wtXAeB0d3McZfgVrOT4ryYIelzvV0Enfs",md: 'UjuE9Ls1Lt4vnuFGvH_5iCnL9CFlk153TO_2ioinFqU-1768051603-1.2.1.1-dyFptJTZISXGgFvyqrbCemOKODPb8vXNgiun7vDYXSj2Y4_PnSRF3nJF3LdL8yYuu_O7WvOxLRKcPj.OATAxCJaj5zcZseWVcWhvH26Z7etMN1w4_PyNERWpIskJYJXEJKxZGRW40fhnxGGtPNOlHXyHPAXPync.A8ZmEdDgRZ5ob7lktwYQdtPogDd0Ee_5OZCufmM.risILIIkYivgbJkFXFDZG0Cdb20ZvNg72y9Z3VthH2zb.TxRYEZT4kDGhgsoXl1JGx2tbm_QJS53d_NV5TDeQJ7VCIgwe3O6kBywE7I08oL8eCOPByP_2BK9PyzJd_Pnmx_DJ1SkvM9u68cWSDnGELBtfyK3HPOC9bofQQQ6l.hE9Ghb7pKC21iLBdfRU_CpVjSmOPnB6qITdwD8Umf3RRLxyTdHnVAsSyhOp0cRkKIT4ojLhLakivL4n31OxCsLd0i_hdqs5Rr_akkAfOUkBnMc.Cmg_RH7PSskewMEZnHAY0_UQq_QKZG4FRXc7b3nhYN32n11eMrmUnf33CBXZEmHJGhWA8JIRyOl.rE6.NVpxx9Q0P8v6VNUulKCO9ZruxoHvkG5WQWy.JHdQBzLhthgYZHMwWOGqDZ3oBcZ34Q7G0igPZvIyNFuoy4HjHqfWFQjhVG0x5ICfeY0Q3T6Aqb4QQaNGhEaAPSlr7K93wxPmt_fggQ2e6xLK8Haf.siDt5z5hvgpYJRaLCj7tJ9Urdhadqbvpjp_G4ca2EDa4615AyRVM07pMjvlj8J49DD4W6_tviYfBaApkzjxDBXIdRzAmmRgQUZLtU1r.n48GNELFXNwI.uhjY1rOxM62Fe_G2PkpeEoP9ioqSz8fSZfH.hRXX_VlSrXNgUP_CclzQWlQVfDdIYf6qsTueJ3UVgjapNomXXa7IzAwPvfzGSzw6MMmk8UawI.UjRDbp.COM3WfClSVtYPbiCmo_fLyizt_J6pBoNwBxKz0h2v4.6Bgo56sH864oL5lLw81wk_YQtsr0dCHU8ibMh',mdrd: 'mMQx3s3suvUHNsbFJ_wCR0jFplebvox4n6yOJiEIy2k-1768051603-1.2.1.1-tFJkjtMQ01bar4AyPsMEy.PB0eOHg6KB7w4LYIhF7yd_WCybtuKGzeqgPsTN78CCbUgYa6h0KfDj_XbZCNfLltF6gy8F4_jgaEmFHx.ByrucZ6BqVIdrote86DEfrq44I9Q_hzcjqgPQ5Q5tQ_nBWeGH7.FDLE.1UGmppjFacZ5z.fzy0DOHFrHmqHXsy18iMCMS_jdo0ztlhSCwfPVUntRfx8Qm491SjNeHfLlFuuPYc5QGrz8IeD03MZCoJGoHHqtDTOZI1Jk4ATM_rkMkwZ2FCq88kORPmhxTJM9I.kzMgBqTB6LYQpW4pScmkqEp_chfwFfS.IyaQxGRwDwDEaKT9uPd_tREy.wtqiwCabgSRz85umgcGNuy_XFWX
Open service 2606:4700:4406::ac40:9a47:443 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8735
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f93fd994ea"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=GNQo5y8DMtaORi2IJz899CeBHEdj01DaB0uFBwM0WXk-1768051603-1.0.1.1-7YmBha4RwEbnkNVY72C4o4PvvL0p_2kVIZgMqBuW7_.s17RtJ7m0ImQpPedn.7IHSdGYSBuD5O457GJEMdLOLSwXO7q5VmluVKWxjdoYDsQ; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f93fd994ea-LHR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'embeddedce60.wrox.com',cType: 'managed',cRay: '9bbc81f93fd994ea',cH: '2kiw09czaYQPr4_EfYziG0uDdzWb1D4rGmX08B96Fk8-1768051603-1.2.1.1-p2ta6GD67ta.hxCLBTnDmQ0F17jF59sAY78IkTgJcQnSlw93mhl2sD8e3BfTC51q',cUPMDTk:"\/?__cf_chl_tk=cH4JTbeNgbkUajUQYnV3yQ2dvKT4RRYs6298eMVAYoY-1768051603-1.0.1.1-JwxIzB1RJ4KseDhxtfGRTQGa3LrMb4BY_94nPcHEndw",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=cH4JTbeNgbkUajUQYnV3yQ2dvKT4RRYs6298eMVAYoY-1768051603-1.0.1.1-JwxIzB1RJ4KseDhxtfGRTQGa3LrMb4BY_94nPcHEndw",md: 'guvHnpHCwOj8zyR7vwwiU8Kr1cNPk3S5HPDSIU8ABaY-1768051603-1.2.1.1-.Y_StBDawPff6JFvy.x8oXfHKWHwAA88zcln8SC55NJnmE80NXRlgx8WutMzABfA8QS.O3A_pUN_glZ_OaJJaP6SdLjSJq6ueKttwDOpow8Voizq0c5nqVYPGDaygXwxpvJ2tPXBEJ8r5x4nxBo7g4BeOPW1rSeOkQm41U1or2euFuJMVOglgj_vIX4FdIc6epALGX78V6oi7mabBFpIGeNzc1GKr8bEO8CBd4UxQreDAzdttDRxi72dJL8LWG1E_xPkNfkFxl6E.nPTbJZj7IzhRM_O6WuH4L2Ey_dH9BkwcaCKQDTaXTalwpUebXYaxN5oQ2VtQlP_.rO4OqIygUq2u4I3dkOt3isqxjK_yj.gRsXt0A.bQEvfD2O5kZSeDB8TWCn7GoEcjNIFw7OtjibZC12U8_YVsfHEunReyPhwMydlMwX_AiHa6b1aTbRZgnWolFHTk1qYTpYIai49KzjRpXG1vAWQah1Gd6kcx7CnmAizMxKZhER6tLKh1ImAluQv.gpCeRBsez6nDkFDa01mGVF8N7RQcJ5yZcDBzyySEjBVSwiTst2OG45DnEEil2A.AZupAf4zSj.GCLosVru8uBycYi_w9lF5UgedjKiY3Ok08ZzfTCN8zzsiORB3SmHMAz2E_1ZEgP1dEL3Ha6dy3NSlbO7bir5SrL7D3T_6mhyFJdB0DvIUXVJujPMQJxo74c_TZ_EtJl01HyZvkkJywYL9mOIaEiUTbc9q00aiq.mvZLTTIGOd4K_CLfbktAxmlolvmIV29GJizfeaHsgaBBbIivVDtQpTuOunmrDU01f2yiTRbR6AxGtT2vzcFE52rkB_HgzC6My8OL_UBQvDr3hWORI7Qc5PUjE.gypeljqr.IUP2JNQWNUMOCfbEWT68UuiGsZeNhtSEO_BcXqAfEI7x_I4OzyBK1p72nX1Z_w2OIPV0q2fTF5WwkKIZUaFMg281EZhmsKgi919vKYO5G79LaltPydIXwIXsY053qzwfz7OqU0rzGU67.jkJ_pFKAjddnhLVBGCNuI6krWP2xMIRQi0n0Wo95qwvw4',mdrd: '_ANkfPsYx3mWPIAlyNQuQPpSlUZZo1WTuGo11AFWrCA-1768051603-1.2.1.1-0E9ILudLyML.upc7MsMynvOzgG9qUfZoi3fOPs4hgjJJswg_iFnYmSwLyijFlimhyC5n26QEnEQVV1aUuiA8AauejWaam66FBqQ7iMhxTD.9Z.RYjgj16q.2Ky4vUtxV1j2.rb17eX4nO94W0CeDzy1YCeG62K4SG0573vnD2MWNWmmiwrPv3MgPlgNxfG4lbqwe.PVc7toRqApXhKzKls4vWd71Potho7_6VvG3jENkgb.u3jF0NrIvcOkYIqPttOgl4Kzg8KWtDDTLR2.rwpQF4tGX6Z3XzHjiKkaQGsBJBtiLveK7RbTA_8nyWOpIyCnsfczyuFEJmWB0eX
Open service 104.18.33.185:8443 · wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8594
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f90b5a5ada"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=_.QWGRl5uMFuzjakq2v1SMe4kRi9j5KXRgLkfKudSrc-1768051603-1.0.1.1-eoKdg2_DTPo5Lov5xcz4QzVefFM.hSugHM1_vAQT79D59DlhPcluvZCrjMXk.dHBbqQD32gpNfWT9wM7rY8uJu07hMNyRxTLtH3.PBKgQPo; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f90b5a5ada-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9bbc81f90b5a5ada',cH: 'dlHu7pePFHmgeavmrnecHniFChKMA0ATnFhs.lXwi6k-1768051603-1.2.1.1-tkVdXIn4JzBWxntrDZShQHhOuYFaZB0zT49oW5t98fd8NcFT6zA78G64t7pfB87z',cUPMDTk:"\/?__cf_chl_tk=J5PUUXF9t8lYChhCjTElN90jZ1kIbcAxmVT2V8_mJio-1768051603-1.0.1.1-lzUJDFKCWuMWTK0bozgNlzOF.6bqksTB7dgzvFjiCY4",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=J5PUUXF9t8lYChhCjTElN90jZ1kIbcAxmVT2V8_mJio-1768051603-1.0.1.1-lzUJDFKCWuMWTK0bozgNlzOF.6bqksTB7dgzvFjiCY4",md: 'mUcM7ShT.rzupKynfc0M4xOtOTuXShdc24mXP6ST9qE-1768051603-1.2.1.1-QtMvZm8c1.tAClgZEf.uq41JzzJWvPHA0ktBvafeoMsGCY9pzV3bclEzAYmAQAa2Dkw2TCauKj9n1i9u6JJng2S4JTKF0gUZG6rWvm1tSNX4DjWb2i2EvRqH_kBIs0pIEDLemcS5eH4wa7LVdrel2e4QCkgou1WOgn2dcOFY.bDrNcNiWcJ_BUD_rBxTpeFEErVojl1_bdoQtVsIbso3B1MXh.FTt7kvziNM1Eu6wI9272wHKPkv3F1_uQ3TbBflzEjAWWSDBzhMSfs1wy191tSJZ78K9Sl3_.aFsq5reB3oEjcwvjK4PJjXWH4z4n4s2qTO4W21am58RmeLMz.oI479cW5LlAKhqd7RATqFC5Jpzpu19LOCyTl03j_AYzEVh.A2WiYRJ.5v821err4a4_R24Iv3henChxMBFXf3Ld69v9pO.8tqGkqLxnWL3KVbeqJXtxNsh0O8YzzA8._8_baEnGcE0T2m48AVHxt0F.Qg78IY_Yu.FX2mYsSouIYFrKPY3mtunf8y.pexVlJZCe9qSJdMBng_wwkoEu2LD4jR8boxCH454EMrKA8o7G9.DNEYSOUbPC9t81jx8wrbXAYreP.NnYh6cEROByRqAIgY_4cdT_K6u_qv4h.tvzUwXd_giY8pRazxWUm7szWtqCrSxSFgPnRrxluDMm9x0U4TqftUFI2PkpjnD7IxA3IVWNeUMrJ8J0BHmKC_ICQLE_fqUyGEOxlNmTux1lNha3c0SQLu7XYzit.JGZQTskztYNjkyYTkJrR.WgZbuOX99VtHvPLHSJ3vm3npfbiq0Q1i90Gg3HpGe32R85T5dLPkRsgdp0xQSwvoMk4DO3mrOwBMkdGVzN5ZoHgThFWJyOEXB6A_0sxG1Ry4aCAVw3DgvZtcUDDWlOhzqaZfZLxCKk9c3JBhQ1_aXev0y8xhIkazs.urs4fTS85KFVn4jim9FETjX7n2o1Nkj3LNxIwQg3DAskg6Axz1ITgI9.5HTIA',mdrd: 'Ye7Y917azNu627WWaY2GSA4AMy3nZjHXfoHKDT1bHJk-1768051603-1.2.1.1-rhfoMz7KuOEV2KYwMcEIfb7OJUc8k8OP66VZpJz17xLNAkClImMyyPtkCjEDHQXOzzonZSBvDGB4GheUOFODDmJegWv7VfpLyZtWYMRRxw.5Dw8JMPXZXIZuLi9kgUjsYPVOiMVkzGAUrfDGukRmn_qnUNGPCWxryptvmSECks5kyYKdxmVJfhQzdLqMngJxnSZkTIzwgHkwCDzrD6Q7PLbkVvzeSaLt.jtm6t3af7.ln6KwoGBFTskiyDNSYM25xM4gc8ozIG82tN6g4UkiW_hzP4c8xwKRdOMUASegPnbsr_9x3coSPwI7laeGmQXJ4p22O7RIZUX2KJbdAHWGcgmeEAQhZ5NlkXOGVsZhAPj6xu4ac8h_4cWecxK1baDZq0anaa.1eEQL4eNnJiMxSLOaJNRciL9
Open service 172.64.154.71:80 · wrox.com
2026-01-10 13:26
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 13:26:43 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 14:26:43 GMT Location: https://wrox.com/ Set-Cookie: __cf_bm=4w.SDcLBaT0agicBKPaOvNhbajY.KijkqOYEA6oKxGY-1768051603-1.0.1.1-G1g6wSC9KfGSeV7AbVmZwn2jIDz8NGQrGNGu9xiBsWopAEzmE4tk4aNoPKf2urqTtWKrFjt3yd5YL3LDJEbGjUAPrSEyycQUOClpOIV2RcM; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbc81f90c02f46c-YYZ Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4406::ac40:9a47:8443 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8714
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f92aa6d8e7"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=HwjZS6emA1dGpYca2vMFCfTFbVdDHXHxUUfrHXfdd6I-1768051603-1.0.1.1-FZikl6Ep2_qU95ZXRjIplSX.ktP1c3p4DhrKcgC1OQIbWAE3pUe9b7hqZhyPp3Ue5SBHNixQdVN_.sY2KFQlHtEc2lvJyYcfZI0qhoohTiE; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f92aa6d8e7-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'embeddedce60.wrox.com',cType: 'managed',cRay: '9bbc81f92aa6d8e7',cH: 'pYaB.EJUKg.aRqc_Y6w4XcskMOaheEJ1v84hC11LQpg-1768051603-1.2.1.1-3WqsAnUiumnPsL1zVwcYfW9QQjKsGiRozXLhyelLHNCiq25O9POCQJM2rL6L1Ixj',cUPMDTk:"\/?__cf_chl_tk=fPd.DyjE1NiE0wOVRIXnXJiw0YpGNhleMsbzxHSV2as-1768051603-1.0.1.1-5KxK9PvpnUmYRWNfM2ogmrmJoA4gv4GpRR.YlVbdi8o",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=fPd.DyjE1NiE0wOVRIXnXJiw0YpGNhleMsbzxHSV2as-1768051603-1.0.1.1-5KxK9PvpnUmYRWNfM2ogmrmJoA4gv4GpRR.YlVbdi8o",md: 'O5zaHkKFMj8brQDw9FnU0HyrPLVZVlmLbc4vK8Q9jPE-1768051603-1.2.1.1-gsjsftD6Q9mHWGi.w1YJvIBAeIXl1bF8dNTp04dGWogM9Ual_1hmmBzjwJVZh40k2szXoA0zY1CwcFWKahjNEpq2XYau1Mt6OLGMQcqvAN0WuqzAST44W1X_1PgcRTPLQcYOEwNIfRxm2cxVT1.1iukXhNe4_HnwFazbOZdr3mA17L9hTs_tsA_TMNvUSRkgJO3p4NdRdrHzjgCl54fbHws5Ftp02HzpaGPR2IqVjEcopF9nx3Rezn5r9GgdQ1dHbxFk9MIQq2urht0MISzXHmLwTa_B6xfhdrh0sGt_3r0Uskzzu_Qlg4PTpOwQa8VzSh4jV5kFozaN9tfliBrhY7747_L_hItd0kywbdCLN8kKxzfMO.edA5KQS83ctmJ8VJ.yRIvW6dMH4AK081DY9YMczjt66dgWjjm2nOBmxkUSYU1tAJIURasJvPY_U0W3vDi0lQoUa_9NihmZ.OVh7P_kewJ9Ni39zaiWNEw_OiArH09V27fTQpAT34FMgcct6eUR.twINr7BR.sJg_c5qzS9FomYDrHLjoXbQUQMabKHK3hyl15CfFmkzEqeLxNNkNC9MSiadppGYIAXgo4B1SmzaOOrguW.rtKXCANmnAz_45osHjI65WJXB4YdDAbZh9AUV7iuck7wKB6G7qJylwl2EVccQgCKP0eGnws47nuUrsARu157W9.mSAGh.kdSFfzvXNlf4kS7kS_1tjd89TDkid7TrdB7bOYpOcfPu3rmOV9.yO6XKAFTfdYZ6a.fJm4y_Z8i_nsUdb.M38co2bT3x6PZwGYubO0.oFPtCrP2dpW5Mg6CDdNEvHY5sDjk9lnqBysGFXbR5HrrpamcwCOzIOQw5uebVswrTBM2MFpKodpKmnMMBn.dlyVw5JfWMdWTXXrjDnMRswU9ijcWfagYll3zVflX_oFRiyzyz6iAdBjWeQ05sQ7hp4rHEn8VxzzapcVisL0Ev_dOnvh88NqRm2DaGabNoR9ogtg0rpAWOzXCJd56VDYMHkUaXaiMrXaAXwPPgewz7g8txpRV2nf_6onLhBn7E4Crw5Jdxpg',mdrd: 'wGbk_h93.I1FJq2UeVtfth0FqaAF5LZ5eYqcidLsVF0-1768051603-1.2.1.1-y17qW8KJGLyIixPsIRAxBU_jrmisiJXTFTZxoiMnqTvqcQnCneKDU5haevgnd7JIEHTNApGge2EUzLrlsctxpMfraz_uV7TldvB3ZOt34LDKv3LaNRxV9AfRbsxaA_foNZq7_xuGSWIy6giDlgbIO0eBA_X2KcGska7kWhYikgOQvTiXTVohLym4BrmWWaAkJpabv2aoBH1JVUDH3fijUZ0_6TOStR.jEICXgnt4Ht8WxjozrvFuUhagfZUhTHf93oFQKBykOYEyJciVo2YD1u6E9flb3SISXCW7cc9PlA4jFWgN75tjrpb.UX8crhUrdS87OIE8vlKnLtZ22w
Open service 2606:4700:4404::6812:21b9:443 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8735
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f8f87bd259"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=HnY.cbzMXBLn2um.mrE3nUeBGWow3BPLALnpu9SnFbM-1768051603-1.0.1.1-JHE1RWJuJY5Fh2ex6RV_jbCCreqm4VF.bYaaqPWOeBNMHUunN2QtkBS5iE6p7toGVL_s2ejgptbzmhKgI1xS32GNfwn2b2LLvvHQhUnc54M; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f8f87bd259-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'embeddedce60.wrox.com',cType: 'managed',cRay: '9bbc81f8f87bd259',cH: 'oOLB930MdkNAXH3yZAnp9J0sNlt.XMEqq.K__Kbzoxs-1768051603-1.2.1.1-BPvdl9BJTDwRiRD.pEt8cLhb_iyRELPt498RNL7TZy8CB410EIMJusqRJZsQlOXk',cUPMDTk:"\/?__cf_chl_tk=xgIz3EvnxtGvEFpp..0bGpaBNmMwJhxCI7W075LY9gE-1768051603-1.0.1.1-Z8WesG874LJzbBW.85OxchZxpsMkZcxh0a8s1Fxia20",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=xgIz3EvnxtGvEFpp..0bGpaBNmMwJhxCI7W075LY9gE-1768051603-1.0.1.1-Z8WesG874LJzbBW.85OxchZxpsMkZcxh0a8s1Fxia20",md: 'POn62Tf3cKywcbcvCcqrB7FIogWVhiuGpQ6BbMUcMLs-1768051603-1.2.1.1-CS_w_c_o1QfVUEbpruB9Ne1WxgxcUXAhpsETJfdeeSx4NI57Kh1dqE9eJpL4OKgzuiZu4UPHv6LcGWDTz6JYDXFi_PqVoWA1iesSKBEsts6Ndch8va3bQFDz.TVTIoKR4tVDJN3R4HWe9tclmT3z0hp6X0wThjPVWGKDM02KjthR6sem6XtXVbFbAp3IhH9qrlNuqdBcakyBYetKqRmfvLS2J6_q3geXLlEyUryZDnYqNPVVlyx6pw7PtP_8Vi8k8FN8hHhXGMHoHGIFuVBwkoKZrQUeFDhfimv0bOzPhJwBF3FXhbrJ0N2p4NA46387CepszwwOPdK0HsK.OgNBG2GR79OEaP3sO5qrBQliYHhEttju2HCJ2O..po.7W94ccXWZvJrvPGijGCKvNqZJ5K44MjJH4psgD5LhRUarLmRa1yG1EEYfJQO.jGiNCwRAGzhougCPInT0B2GYYs39n9tsElVpvfeozRZvIKzzpu91YeKuzpQuhRnZ1Xa3VNacdAqWL8RouLNHtOV8ZX8yaCVY4qQMlRQgVEjYOW0vhgAF4t75Vnyff7rUDJyalISxl9QDiEENn6uS88chzks9ONWEKw99Z8QQZ4SAnBGta6iVn1sS_LxQ7lcWy.SghMD0UkjYJsbSuZf9dmlqSY2b07jW4AReo1fZ3.B1qhXjqxztPCewkbvAK16LyEcXqZJwx0lckskEMb7M_ZIsTX2FSlFDu_5y7nVyYl.TrsNNnLkpSbSoD6ewwVIO6p52EElyRm_5ypdSCyw1YoShCLX8L5RBQFPdX7hWiE0S4_qE_AsWu5OFOqHt4wPImdXBvlcvz0qCYdDH2XFn4_IyPR.9ltBzKTrO3ac55_kqwrxMinDOYe96IZnOMLpu0VpNWG1ZWVzXrxFZU3RZrbnkPtHOxnZLq2zo7Wfn5Lknaa3OVdvCyFI0PwOnH2iRLKnKKLYDDyUm3AzM8FsH_WFXHYkMOIKiJ2d.GAR51psQLvrTQwT2GaQzgNtn5Y17iqfHVGOUVZhe456ewH8dJIgUTqNxuiSxOjKg4L9X4zHuEkBl4z0',mdrd: '.eLGPaHoS5wHjYhkGHcYTYkgFauI6KaBS4BCrDy0k58-1768051603-1.2.1.1-au4UhKc2o2KIGafkagmdppliWtsFLVRa8D9k3mPBzf3DGEJdI46PWD2P_ZvfvfthUQwXP3bYu95RzKTnEVsed2NAgVRx5HuGP9iTTZafRB.BmIzpE4qTPbCRtmTZ2LBOeApSjXXa8alA17sllFFwRO.3xCpVZ9JzplivcosUxy0DhqpmhoCUNk7Jr9F33zWkyQawE7GmhmbtfVcgcTBjzPKKUtmBqFWpKnpBNO067xozB.R8Jpvb3Dr8phv61zmjS0sMPjNHAtpg1HFv06.6nGxqD93NpyKABVtlNGt2yx2lTHia5SBa4yiz23WBhfsLobPS21uMednF5ncGJ4
Open service 104.18.33.185:443 · wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8573
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f8ee635d00"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=iIwvUaFGoVhTHoR0mhX7pU5m0OPEVfBdBCzvG8gytRQ-1768051603-1.0.1.1-INOkidf8.oHX8Lc6vENcscBJkIBT9eZoeVsIlzZjfaLFHx5rIddXAH4xKSwezjNCo3v68Z_5mOIQM3TTbpB2I.O6F._fhlebVG0ubaoI3iA; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f8ee635d00-LHR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9bbc81f8ee635d00',cH: 'aqhjmnnLbwYvv7ZBptl6sdEa1u0ZD9tqNpP3zZBlGs4-1768051603-1.2.1.1-mzxZipKy27S5VpgqO_P_vhpCntBwe8RfAuF2IJB6.o7ZwMiB6QDfDIdjmJ2congQ',cUPMDTk:"\/?__cf_chl_tk=uaJNRnxJ0oawjZd_zzuJO7hBKnsqpE_4rb8KEsrqMdY-1768051603-1.0.1.1-cngpTdVpiafo5ejBh1qyVfaq3E8ux38xSczZ4w8Zp0A",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=uaJNRnxJ0oawjZd_zzuJO7hBKnsqpE_4rb8KEsrqMdY-1768051603-1.0.1.1-cngpTdVpiafo5ejBh1qyVfaq3E8ux38xSczZ4w8Zp0A",md: 'DhMG.4NLg3vwiiQYilpztXTJ4f606EYcRhd0Qu.F6f8-1768051603-1.2.1.1-CCv5yk9OzP1RcXFxznqiPYP9umT8APegKEKTptF_dg3cvl.Ae_ttIrxA8CaZKqoeR.VvBcyjqmgzk6cAiUxE_ygYMU0OlJjyZ8SWmDYwXAZg8oG_8wfV4emYO2F2rcWchnjE7BAJrF7J.tDbuBdWiMzx6S3fAo.Xjq4iXAOGS359o1Iku0ggMHIuF65HbhzBowNiMJM.h4TW9sYZs0QDDjtISiAqAgYZ_jeUojGbKBUypuotLOY3Mwqnvd1f1eh8FJPfK1WevRaqhCYohfiONeEyAN1rfdN4Po1fDC0252_pBoFUZjV5Bd1YzTpIIALvst1Nm3SHUCQTW2qGSNgDgnVCSAyzBNChbPVcdndJH8V7hzgTyOQx1MiCYJVRllO6ULoSxJHaXBjL4a2aMYdFdZq.KoG6.EFE6NZzZEf.U5PvrqMDwrWoKIFCdE9NeBZ1qxU59T9Dcq5RNmk_T0yhK2aEQQCcWm4PH6ZJulCeu_VKN5kxkph9S4_eRAqa7MszR6yaj84sdnYxWN.ZaZoU_hg4OzO4q9DsnnH_J9zL1rLIrQrCYCgQhtmt.8gDlYfdk.Hgb2UfQfChaXMbJSA7i_bbN94PhJn6QsiqH645asf7NhXT_j9WYwn2K6bPBxHIHLGmfZ.MhOvKJ.asg0cl1jCGDpnqohulnlDaCXI48PwNoe74yprQcYed9XRNGcy46zm144VpGK1bIHcWec9npwmAmUzjXfFkcbhdEfYuDrhx8P1KvQENH5cVPr5i11m1nfAbLxH475JUdmfkOVPHbL.Ku_XWHiOP84oz50d0t0D97jytqKfVXf66k2.R1GV.baxsCy89OWboYk.OIKYd9DLuAZmPYxM5XWGB9ERQhk4SS0CBDcNwQQ.6FgxpYwN1XbslVVRH_t8qhEcTo45Bk1ZQFJPgEdx6Tg0wHnyZ5VBQb2gmPqHkTrsbAH8wgxoNUyABoM1ZpFpBs72u75dNovIQhz0EmQ.8O2GMyQhXRp4',mdrd: 'GJe.vFFR49kI37pExi1w4kfTngyuaExwGo5LKG1h_VU-1768051603-1.2.1.1-VsNtk.1I.8KvLNxixb5iaDL4rYgvSnSkfYUjayPmXPw5X_yIM3c6Dz5Sfbtdw1TbXlk0Iw45bx3Gjg1vhMO1yXu4mjPsIpiVegmaTcsaiXcUfOqwldCkC_hVD34aOeImhLZ5FEu79Qg9s4ur6UlZyarruVGvjc.outcwaJgFnjgwdxpuhSwJr2Ja3BWOA4kvLGzTTRiFdrtD5BbN8dOBP9yOmQtCIuvcZ0Hrk4HnxUwXC_NGPVvau038JdJyMa9lX.YfcG76tUCmNRw84jqHKLQTMgfu4HctgvFOmy63iITipF6qAswIG04pP_3v3HsB1DCdDTvgKIZlnbwqVnNt1DMS9dhrbi_30w0EWfgZGi1QKRy_hwEHJ3ef9GjWyy.N49iFrkzeL7nuVCfQ6IImGS8hyYgoQVV
Open service 2606:4700:4404::6812:21b9:80 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 13:26:43 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 14:26:43 GMT Location: https://embeddedce60.wrox.com/ Set-Cookie: __cf_bm=SZMRYn5dKzLAJJ5ja0N4gwpQBJG3sSslFDgd9VnjYDk-1768051603-1.0.1.1-Gg_U9hYPyJTRVYXW_LurvCOIEke4CqIdOIM2ggYfOW.nlS3KfBX327sXKVv68AEN3QdL_N86Rkcy8PvLq4ebhY4ayWSbBo8o2cxC353_0B0; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbc81f8dd7d2bf6-FRA Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 172.64.154.71:80 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 13:26:43 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 14:26:43 GMT Location: https://embeddedce60.wrox.com/ Set-Cookie: __cf_bm=6L.UIQ0DTcEI3nGV_SVRK4b3LFqKaqS0Jpi_i3xrXQ8-1768051603-1.0.1.1-g5113Pg71ymuIsLBJnUqGwXFdVc2iP.NhRpvue8SQ52jAq2nSpc6vlcGZvY5NHscI9XFLRSlLKpPfGx0lDmqKhB93f5sLgTnPj2CMGTJbEM; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbc81f8edc35d80-FRA Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 172.64.154.71:8443 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8649
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f92a4318bf"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=nRKkgfRJCAY42n7r58p5Nrw0S.8Vr3KEiklAVjjPucg-1768051603-1.0.1.1-TRDHWtNjg5WX2sT4PdhUR27.inYdopTpvp0FW9i4sZlB3ec9voShAD0baPfStdgdd7oRIcaxlwJXbJlR3QJoJSLyi3JTiTJPhtqXaTZ5GVE; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f92a4318bf-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'embeddedce60.wrox.com',cType: 'managed',cRay: '9bbc81f92a4318bf',cH: 'zHoxt.DhaDzpzpFdSDE6H_Mgegj4C3OEQc9tHecPuqU-1768051603-1.2.1.1-wA1y3HzziTfBVhcaLUMQrSm5p7k8BpaLEiHzPc5_uFZJ8wf14rIPhsVFhGII.AtH',cUPMDTk:"\/?__cf_chl_tk=mAjomTr1BaYI.28w92JwAUPa8WoRd_Ws8OD7xsw59Hg-1768051603-1.0.1.1-6FKxZkIYNal.U4JTxTe08s8zt7B5Yi92PFSlnxpUaXI",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=mAjomTr1BaYI.28w92JwAUPa8WoRd_Ws8OD7xsw59Hg-1768051603-1.0.1.1-6FKxZkIYNal.U4JTxTe08s8zt7B5Yi92PFSlnxpUaXI",md: 'AgclpH7aIQQZkcTTmaIK13j8MHVNjzfyCdcTPRRs_2c-1768051603-1.2.1.1-Is48q1HNk9t_TAxLgfgufOH3N2kbdVmn.sxHtCqbsl0n.5xBew05jOFMd08qPKsKOMejx0ljFuZu.X8Z7OwH1Jn3TOzMSDe7N_0C91DeQl.MHazaxrLWVXlEu_mS7x5Gm4F3N8eRKyVtJYva1J.pppJuUTZgB61x7vWAkhwdn3kkIOoBYq1jKXMdGn7rmF.eT47npEyKfYh7Fwg5oqEZwCiOiJmS5fQfCvozHKUXbMsW2yTsEKNo5chYnc0B2oU95leTxYB4r2mW0sPJ_V.M8HldPYmjv8sLQ4xQntWAJKX8zYLqPqzJfrNXBo7EGXaSvkG6UWgzFRBzrlrLSkont.Zd782rNerwIFBcFXvAtjYWkCmUBQcPwuSoufJIczm4r6PuTJlHZyXnXFYKnPSF7RBJ.5p4EpRNPj1gK0WuOEUIXvXgN29qbahMLO4XGnW5j3D7XlWHbdX0tRY84Rl8yRggOH7VLDCSdXc.DFft9OY29S4OJf4QBwf5FsMcHAgyGYtn6h9uOucaxBZy36R2g3tA7BQbjFDcdzlHE0ft3oROXsT0_XWmTJhCpA_hiz3iVCq8EloGBuIzzs_yRynpU4diNMoED5LtI7LnWbDx9t0.lkFFKlRQkMxQ7cTGzftygKEngeDw334K8T8IzJlq84rl.cnNqbh8hsjCyl45LMyHDbMRAdSDDQ1own4tHjZPwY6OhPBQ8qTQbVxKlCCTT60YPlmoUVg3b_5ASJIziEz1oLoKLRQStmz4BMi9EFravUvJuBimxDiqukRLpLPrSpxKHl60DQfLhTHeTGxzeo50nfhAcylpya3cZMX8yzHQ0ZGyVXYDVPkVJ8FFEEjhK40oSoZ_Xenv7Ip40FfaaHru7XJSFMxGoMNO7yT1FOAR8S3JxuHVNCgK5tb53hm6elYehQci5xQSdnt0RTVFowEwA3b811VTw46z8PwrB0ftlXsp8zH.0xYRyoAS08yARvit1kB_lwHokQwqNAIQbpXywS_cT1T7DKNGmpsd_7gO',mdrd: 'fAsGOZrSL1pdSMNuOq_SHu9IodEBL_xO13kU.WHSTDs-1768051603-1.2.1.1-.R3J8Ds7Flso9zZK_Z7TGAue3udj1CRzBXyWWP3JtDRTJMmu.46_RjqfRM3CpDcd3w2K7X2a5woN0hlybhktWcDzlOScL2ME093PDJe.LtZfRtL2D1.lh5Ln5CX6TQdEOqXopxhY2ks91SpRhIRoEaP5R02AOzO3lfsOTAOYxUDiEDsukCXGN_fk9ccLKBuW5f1Pzv4R58jMdsvXQig5OZib.o6ZicAu4C15qBzUDmFIDniqGqhpx1aGpb1.PWIt0DfU9FD27hEVUZQlr.waU8KOtY6cBqCf_AqxcZilizRw8Zpi0bUnkUhtmuHOUueAag4uDBYQWuo1j_ZDVw6qt1ilHL2jVQzXEsuDjc8cNKqKnSZK8yySVr5n82.2B
Open service 2606:4700:4406::ac40:9a47:80 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 301 Moved Permanently Date: Sat, 10 Jan 2026 13:26:43 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 10 Jan 2026 14:26:43 GMT Location: https://embeddedce60.wrox.com/ Set-Cookie: __cf_bm=OeWA4DdWc1bBvmhLcq8Uz9Mm4m75ppwYo7XzpXAM6Xg-1768051603-1.0.1.1-ERJndAYzOuSlc08V2f4oB406TT3wsGh3HS9Z2.6sc.pXnd8QgKF9CbsFdTRE39R8vCL.cKX5.C9ryQt6QF6F_m72Nzj2UjT3DAungTsTU2w; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9bbc81f8ac453291-AMS Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 104.18.33.185:443 · embeddedce60.wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8649
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f88cf4b69d"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=RcYiwd4.vwea8FtglpCwujzi4WHPd6OqRfyqUo7Y88E-1768051603-1.0.1.1-benP4.IQYIEmk0XeFap4nwVyLTmV84Mt56D4H8A2_JHuM0SUhLM8kHfzkgspTQUmTAxupOT2TCrjkBc29XsgSqnyLfOs7eBtRKKB3xgf.Is; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f88cf4b69d-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'embeddedce60.wrox.com',cType: 'managed',cRay: '9bbc81f88cf4b69d',cH: 'PosxdmsbuDxjbtVRZu_POsW759O5Zd7bywMU.t_86Pk-1768051603-1.2.1.1-6zHisvQ08uP9spTjHZe04zPZ_uwkwdN9oI2EKL6.M4wi2xKjE4IaylI41u3aLiDS',cUPMDTk:"\/?__cf_chl_tk=owM4i4KycGREXjr8wfknVdD524IXMYy5XSqJeHV0O6U-1768051603-1.0.1.1-Yp_N49YUS.od_WrtE9Y.PY1Rsq8ngCcFQC7J0_2IPtw",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=owM4i4KycGREXjr8wfknVdD524IXMYy5XSqJeHV0O6U-1768051603-1.0.1.1-Yp_N49YUS.od_WrtE9Y.PY1Rsq8ngCcFQC7J0_2IPtw",md: 'GzebBtQs2fnrfFbH01QrSjsUaBmM3wEJSAFm_j7FNaM-1768051603-1.2.1.1-sFqvs1cRUL0Tuie2r6GjVPH1F9xiAJiYLjRzf9D4Cbnm8dnGvdhqS7YV.hD08CACJoOe2eqG8fGRXrbHR3Sj_KtIEvEN3fCI6mLtiucbHd9voaGcCUamDNsA3AEAz4XI8JnIGfJDSUN28CBXCRCIwwmBgP3UaINlDodtfQemd00xGh9U0jEbbADUmOIOhUQh1dKYRzSuOW7fZ.BSTDUq.Z7PCSARug0o4JO98RYj6hUDwpMnmWx2H2EjKvG3wDfDsmUARikFiUeWGAQBuQ2L2GcfZHJYbZFIimfN9.IAhOlg21xJR88zpN2pG3N9RgLH9u4bpto00iQEh0.uT0.oHFMjb22ygCHyrlIV8BGDEM4oLk8wRQA5FPYDRwXR9gxKWhotcCt_l8_AUZoaSoAo1RCxMDftfuvSvkWMOAP7sbMvViJYupzotOhC8zDr_lg9NB7bzlUoK4AOwabhu7UnFsKR.0QEbEDSWFTUchh6u9oe9PRtd5bViBj9JlFSvVxUS2c5DfAZQMfxWwZzaBGyE4i6nt1dvmpBnKIWmQwtGK_mKfZcHl_71P91YHAKjN6D03jnbVYQpvr1G4hj4x18amwE7iECwn57aGuf7g9pq47meDjA7DOnjIbDBsnfjSqGEIiZVKONxjlRzGv3t5aGy5D5P8weOZQUtwM.aGWwuX_c3BfhsxYut.LTeSda8UMLiMIbJMtLCeOJqIe.YFus32MHMHOnsEZ5js2GwfBS6fESYca1xHiN_EoyoT.BofsVlpcU4QOBY1q9EAJJggBbfGImPh9eeQgVH87Nx7C43zzzMewfjKSkZ93H2pzy1jJhcoxALAgKaBw2d6uhIgYKtUstT2Tysf9Nb9jq59JlI9svuy1K0knqb3AYJNHkNHUSQfBsilCRLaYfx9Bg44ZQK0sbfohvBjrsNE62y6YyuDxqJbvw2cE6v01b6Am1N_GPR2BQSGcGtauFR8Il7D33O873STS8JSyCCUFNl9TQiyhbidNUsS1T9pf.y07kc4Iy',mdrd: 'WaYmZAEsY8gCFzHkENJ12zMfKLyPwXlBshKMqqOtsDU-1768051603-1.2.1.1-5q_MntjVm_7lmmdnHoDug_WYEuN.n7t7xoBJGgwaUAoqjW0Vvsf5XkscBUyZfX0.Wi2OKrVABATBEKFs1hIxWxF2VN9ZP9V_1bx.EzwAWBe96hVozwCh7rbVRF1YvSVgVBpxmi1sPiBQOtzZXXxO7ACqsTscN8Gu.iw4t9I2NIUhCjka4kjMZ0u8Nqm2vq_Lz_.tdbHnYn0Zrb056nvCRDtWjh2gQGMTl9t2gZY6yUEZK_SlybsI2NUs8ftQRjrfPLBzJvDXudrKx9JvJZEg1Iy90sAoFzKbvJYk9oUCzy49v9lQ5o1YoJ9XVyB9xdty3en.mL5kNbI9P_lcJEr3LQ48iF245JLxh0sUypoeVvJWnPiZlvwjOcH026Gcc
Open service 172.64.154.71:443 · wrox.com
2026-01-10 13:26
HTTP/1.1 403 Forbidden
Date: Sat, 10 Jan 2026 13:26:43 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8573
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bbc81f88e53d351"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=sKICGU4y4a.euUNx2GK0metsFvYCuYiNSZSGepxQP4A-1768051603-1.0.1.1-IqRfbNwtbHuh2ITuRMNTJkALkI9WzeNexOI5zaV1BVcycLi3wmB8Ucbx9ZuC.E_5ZZzRujmFvzBHIneRxZPyYykTjNvmSWB6AOxsXwmBuuk; path=/; expires=Sat, 10-Jan-26 13:56:43 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bbc81f88e53d351-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9bbc81f88e53d351',cH: 'MToiAI0SKW77YZhFn9qtAATjQ8xCY.Uup4z79xO5c20-1768051603-1.2.1.1-Tbp29ilmscnPqP0qAHfHL08mQaUggD_fXzO2AFiors_4B5Yj8s41wMvh9xat3EPN',cUPMDTk:"\/?__cf_chl_tk=WUTgFtW434EvMLWwMWm3M25ecS_DsNYsLqy7tg4t84c-1768051603-1.0.1.1-aMymNgSYQbMh1V_MZmbEmUIhOYifM96N6fUXrqIjGoA",cFPWv: 'g',cITimeS: '1768051603',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=WUTgFtW434EvMLWwMWm3M25ecS_DsNYsLqy7tg4t84c-1768051603-1.0.1.1-aMymNgSYQbMh1V_MZmbEmUIhOYifM96N6fUXrqIjGoA",md: 'C2lJLenn8aDcQA6z_XLEy5k6io8ZhbNT5vjm0uTlcGk-1768051603-1.2.1.1-I1RBtVP7aYoTmI4zKmAbUI4M6S_6rBG4YlhAvjWV8OxS3IAOwFE.ePTatDLRoO.dpjDMKsEu5yPI9mYFzWJ0BZ5SjVH2BFn3c4y0ffo3oGm_fj6Zc4TSSW2ZbKg4TJMrKSz0tiAgKPSc9a2.jkmrVRWvDTMyi4xOb1rLu6hukrF9E4vOTBVgMjEFvAJvyncqKQCXE5OdzHVSyXdYLSBSOCTnP7bOM_7IQE9zJ5eRp_d0bJXY0ohqjCeB7zwKp29Q5LO82b4g6UpuzyuHLeeKWUbJu0LDeUh9IQ9g2GX1vYzfSWPXO8x4yZLwEw1u7KDeY_A9WZgjH69660oa_vss.oJVciLNhzi3kYuWXJQDaGzPgFoDctn_veJuJOTrL2O4eWfxcPgX0A4pl_YaAu_BlowlmDjkDPokKWHyuRCdkTIz4P3xIFgxGTZofMDy21DJNyaVrfjQb1xar2Ah6OMwKBvpcGO13I9285TzneG25wL_h0BaErMUMcNT5bBl5AE_yaGeuXx7UM_tS6JHml2dRUKRCBU9l6cbtePGbJPZr7sci1WbGiiF2NKI5ijCNzy546.EsNhKU2xKIhoFwqQZzVMs2117EXUBrQ3RZd3ddhXSUYR2OWCNHFRfTrjlRiWq_wbYPk9Sn6sw5sxU5ycBSww1gWuwfMDxdu2ISyT6IwNRE.yqH5tjrlHFbXJPgQ3RXNLhbfQ1zp6SVgUNGIK_ut0AhDoWnhtdDYsvFiq_6lUCYpz0iOFaam7ymvGKQrdeR1gSdIkqhU8chZS_duz9eTKcVo1emnpnOnEYQhGdOCxWJ9iDSzE5PGf1WinA8Fv9xUwpKZkpRBydGjxdJK6n877F8Jsk9Uw7A1NU2EhaiqiGy75Q6EwrQuMnNa.FnjdibmYcNw0l4I6GtnM4OCtO1WSh1b1ALy5uJc7uNL676_T2Zx5JQbxy.0yLH1telKNj_1UDkZwLsX07BEJg1ACWbmBcIVfWRa1CjRk.YIvgDwc',mdrd: '6BjdhH0f9JTe2zOv0cA8Wl2yAArWAO0rQJE0cWctC7s-1768051603-1.2.1.1-WHYokfbYhj9.whsDgd3Q9b0xBVGN2aatmmlOi9drCRZKpSa19KpWW2ng9HAeYrC17RSqfiq2.YVG_d7h2od83m9DkTtHlbo8jJwCxappBD2lJ165TzhwTH1Wx.Vg8gw3w.zoGnFU6Spdvu8I5PQ9IGRVcYYFgoiv4i1UWMPkfU7vfmPtpqP6xX4kYLSySa6e7HUPWFCLmT8yMGB3k.jCGJkt2WCF1nkK9npAS8alfbIK5PwPwU95mXmALPHpVkqt8Oehn6YxX.GNV6pYcdb5Kl42UJKjwqjkb5NwzemMDk6K6VZyuBaZGLAm.UIuo4e1MTebOJqD1vMC6ncIhhPjetB4mrw5FTnL6W4bUpOTdBVDTi5CQcgRxBq0gWKui3oD7V6qsPXTXc6.Q6CXBkB1T4kjmmPxfRH
Open service 104.18.33.185:443 · www.wrox.com
2026-01-09 06:01
HTTP/1.1 403 Forbidden
Date: Fri, 09 Jan 2026 06:02:01 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8619
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9bb1b92d8d70fe04"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=zcUIR6yW3HNWNnyncXu2smPsYt8dc65_6YCvJmN.z_A-1767938521-1.0.1.1-E_qgwsTrURXUa4W1XpjsPsGFDVCqYirgbY9uYWDNKiBx7LCegpQP9jcl_khv.oPEZ.AcUZ24RHnoBfGZY9SpEm1DxW20Ova9msB6l5LZj.E; path=/; expires=Fri, 09-Jan-26 06:32:01 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9bb1b92d8d70fe04-SIN
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'www.wrox.com',cType: 'managed',cRay: '9bb1b92d8d70fe04',cH: 'w0MurNsXWgq3Kc0AyT_bYRmyUMQQ7pN_ZYnXgyoc3kg-1767938521-1.2.1.1-H8qSNexJ6bfSRYMwv9ub203gBvwSrDgITtUWAt7sCKIMEiAr2QCRVh10Mg6WTfOM',cUPMDTk:"\/?__cf_chl_tk=8GbYUVrvrTYPYYoneU0VpBof3wzATEdhf37PsyspnCU-1767938521-1.0.1.1-prEY5GD7_Ope8c1syCt_QrL6tEFrjCQMIt6E2FalKII",cFPWv: 'g',cITimeS: '1767938521',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=8GbYUVrvrTYPYYoneU0VpBof3wzATEdhf37PsyspnCU-1767938521-1.0.1.1-prEY5GD7_Ope8c1syCt_QrL6tEFrjCQMIt6E2FalKII",md: 'b3Iuu12aSFR1G_lzVKBx_Y8Nsg5kYeYHFdknOMR2w2g-1767938521-1.2.1.1-zV_MP6Vh24H5di3ku.JcMY0.CrvzoORe.GkHg5eFzdROOmA5hIywVzd__zq2IlqwmJhfBgcmloeaFAY2Z9tHvjAc0L6yyiniDtMhQUq1Pvk8Lj5vvme3s49LxTd5BWdJHTUxdDS_XJqR_YB2HkiQSqfMAk7c.9e2D1eUL1JAJ08OihOmE28Fn5Tk0OmeKyNO_nZS5iKdgj6BOfmUSlIahNpMbNf4yJEN9BFXon9wau4em0jj41CnRH0Uk5Pp3xXGmYCgsvcSmzWqT2ajDrmoGBpAA_a31ZWrgi0Xo.kZGnTQAIZPh5YSaSxIvWbJy0EE7ef6J5E.UANQ4HUgm5v_pNGtbsrgmwRbvHNV2BngIu1uv70gQHCeCKVXRIcsrJrfIqSPkXSr36dUQWV_OT8xQt.X5v6TrQG5FLdCfB7tHl9.ID4MItxp2D80en.XSDt4F4kh2UgoD5mNc7x0b_svVow.UhAGMWFTZs0ghPQ2rpR4pT0lEfJCyACCaQedINgDnndELDS0YDTvtzFVAtLKGXn0qKLnqvm2u6dTCq509GcUc9knlF55ODPfLiymRs3o41o51WIQHFGXq.8stHh55JPJRqWYCfRDpmlb6HZy4cj50kwuy_U5sNcYzsCiEx9R.g1.Qsb.UZdo6ayRmrYoB8wOXwfb.uNvNTSBcAcJ1i93iRipxU5bR4L_Tyd8BqYL9HTxCwronT.RNuvftHju5Twr56bLry1LAJno9Ap0Gf7MWf6z.BGylGl4nY4ajQmUO2QT8B9tWqg9uMJbQ3IzHiEuJ9UB5D0XuQtxew3o6rvTqyGr7wO.VM39FAxUdpwcbMY7M4.VuZ0bwdvzqPM1dWZ_l8aLAiiJMeXaFvey.__vr.WvyCRQj65LGLTmEdugKJg8YpeNiod4jWTjNEdFBtnGPSc7IELYTBpxf9JCGiNvHrJ.lsp.4nUg.c.kKLa8iIbGZT.hay3SXBgjby5sU46bdtbqmZ8q0GUv2fEJb1g',mdrd: 'joeSPjcvjkbng4k116o8E0zocP54RwRMA5130tyLfa0-1767938521-1.2.1.1-9yJ1iXdYfQYMKu6VJeY3vjspt21IJSg_UhtJletQgSkHnmOnrpChjxiG8ke7pTsmmuplFdNhuUUikC6iqQJvzCf18rUtbD6LMa5YUcuEeyARGGiO7PEuQa10KTgeE9JYwq4aD2OgvxDVZh5.ayvAnPu.Q.Z3nYq6Oqj7YNEM729ur5CDpQpo216JWT1peQrdNzu8VwFxP.dRIViyEXOd_2XSsTW6TsDSviHH11BBoWYcURHiRzOHZp7VyZEecra2AJ.0g5rvl8irsI1X.IWrKdjPPDtYXIsvCAba7zhyC2Dn79hsSVt9du4xf30tqVi5y0Bf173nBvq6CX5ZQg2ik4Y.JYBT9ufXxUfyufwS0fnnQjOkOjFmNu_BENrOr6IxDaNcm7uH3tTwoSehEtUb7bu08FH
Open service 172.64.154.71:80 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 301 Moved Permanently Date: Sat, 03 Jan 2026 15:58:17 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 03 Jan 2026 16:58:17 GMT Location: https://javascript-frameworks.wrox.com/ Set-Cookie: __cf_bm=md.f3Nea8bAZ7R1phZ1TUot_91LKK9oXj05Rp2MuC00-1767455897-1.0.1.1-kaLbzZXFsLbMZKsMNojjQDP0z9HSYG.Qx_f_soLRNhbQnjRuOflJwVa41svhakoCYcaGrvyD8F5MaVNGq6rvpjxLFbfQN84gsd9DP.nbKgM; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9b83b25f5f17c9da-SIN Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4404::6812:21b9:8443 · wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8637
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25d2b6ff64e"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=xPXSH4ApSvNvjWpVZYPI2bDq_wWODTfk5xcH6Y.kmaM-1767455897-1.0.1.1-_8ZXI94R38AYPoqlLxqkrd5Z7Sf11121.cWRTzjcGjEdL4nV1Z1Rcq86V7a5U9RSoSr_eOsug4xJnzdpPHzBAOfHh7.W3iiCHmDSxlpjd28; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25d2b6ff64e-SJC
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9b83b25d2b6ff64e',cH: 'yM4CRJvh8jqsqb2q5HtnyrmfB8vOQmOqR3amC3SfFos-1767455897-1.2.1.1-UU1Cr21KXyaIN_ayyRrxaOeFeX4U4PgPt3dOvPQe2vlq6hCPCSV7_ILWX9buc8vl',cUPMDTk:"\/?__cf_chl_tk=h_k2.RhXpWufB6yJSJRN4zN6r10BTA393LaajBWvF1s-1767455897-1.0.1.1-ZbK.BEMzGGLjmWZwSRN1huFLBBaaK9cStAytwBj.nuo",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=h_k2.RhXpWufB6yJSJRN4zN6r10BTA393LaajBWvF1s-1767455897-1.0.1.1-ZbK.BEMzGGLjmWZwSRN1huFLBBaaK9cStAytwBj.nuo",md: 'DNzWUkHgjInErjx8wSopiqiC20Ose4sOtzVbC0CueBM-1767455897-1.2.1.1-VhtQi6h9gsWQMyYQzG4Rhlhugigv5TnVJCjuijXk1IIJ3ln.0x0KQNZI0SKxc4XZ7lT6La5Ua9eEa3_itDtJvBjpocOX60FrXw5wFoB2EmpPaD8pcoXyE37_h1AfSbpteHVA72wQdeGIwV0a30DWPkD12fmJbR8BUkIJtd6Bch4R6Dnp_iCVFZkxKSG_iLr0p8bzAra7R9_g_mPcmgLEFhoS66HI2ZD3ftXUz8vsng8vSGiJNWoDov30NV7kqFMBu.Z7H1CEnqpYGI_uyeuvFhDMO6muf3Ld5roObmDIQGPSErPmsLwGGnnMDBVkxBK7doGierqQn7DFaVRp3vvGUtWaELJCyCB2GocfKhfsCj8dY8KZbXk0CtcmAeQZVMkrk0ldB4tqbRX2MfPkm3j03bdRApk.U99u.MYEOmkctI3neyEnMRrQSiACSZORJo4XeYZYiguj9j7d5uZiztDh_1zbDyvZW.Oqly421SQPHFMlKF7d6R6BUOrnTC6vuXPuimGs4Gt0Sw9HO0aUXIoQ_dbT3vlIzo6hCw2s99B0R7RHVymOMNnVxii1LPehQTqQJ.qUDcQGpMONcMgl.TPCAcNTy.6xWIl.rcLqy6_tf4bA7CLxkkgDGEB5veY2U_ZuFDumJn1GBdsGdO5iFJwXv0871yx7wdpANqLKy3lF9iwKN3Z_qUVueZvFBtwhvD6U_6mNO2etRB6qWQ6eFFhVgpgCYK7I1j6YtTOGIFLv1zDyVK4xVFeUHbutWuGMZNmtd2Lpavdle2elpR5w8t5v2UujZbASZDmO1p.x6i3apVhbEmKE3f68yulGjDZBAXguTjkONJGOANr1DwmsJEIYZRzRN.kdG4GH7tNyNzSyZLfwvAQKXoduNGvfinXvJa8RFn59T1M7cjGL0eBLa6vwUS4H.BuDy9Nhvhg5azvvaBy4EQtobG.5DeTHz.qJHRVLo.lz6NYlEytzVQfYVJePmhveTb76uDwIT0PSuMWF015V6AuTOO.4iFmDUjfkJzAfCk8AdSGR4EVN2ue3FidOKQ',mdrd: 'RgzYBLtIA1EtFMcSAUYcxwXqlYXjfxeGIwkw70mhhbU-1767455897-1.2.1.1-qWgTcLMHefZzpM_lnC4xd2roHCUb43qNipFAW7jOeQnNw9SvtmEaZHdrYnZIEGvlq3UmEHbf_VdAiy8rqc.PNfvjZF9OzVsl8v_UUsZHuXGrq3O7AMUXCAw2pD6kYy9S7uuNEhIsmEeUDJKc2Q4kWkMcj84K186haQwU.2sYwxKNfEuzqaVK22HHkyclO3Ha15k2v6ptGAsavV_oxDpLXNfQChCYGh1pKk.uBX7QfpZTrXIyNBguBp9ihKNyUpZhUfPG3Tgake7L7Ki4WpOtsXzkGireR22hFcLxKnBcPNjLCmf9r8xDtr6O0nhkJXeIxlnJnGGdBafFQyw0q_qlMrFdMBsNTZTDnD.USpF8tpwa2D9ROjqS
Open service 172.64.154.71:8443 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8680
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25d2ca9e21a"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=NW1UAPt9MzYxUDsX2JYJ5dPAwimtVe1Y3fM4tTS4mPw-1767455897-1.0.1.1-CMKgL0D6KDl5VBcM3dlSNQmAIbFlrZPgywJLAuQ2M3j_V1tUyrFXigx1jYhMYnJB2__8prCVzvYo0xlid2hnWX1dpgW.2LDo5Oq.JoiBh94; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25d2ca9e21a-YYZ
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'javascript-frameworks.wrox.com',cType: 'managed',cRay: '9b83b25d2ca9e21a',cH: 'f5Fb65exW9bWsjkgGDfcf4Sh8FcGyctzZzeEQjF1YPk-1767455897-1.2.1.1-lZ2TtytN0kBQgITs4RVYE8CwkZI3BsIrnXLmFE_zxeDf3fr6A_3NTGqQ98yICIBh',cUPMDTk:"\/?__cf_chl_tk=W3MEvtgtJKaVcd5w9QErEhfzYVf.Ylsk_Hwpb3TnzXA-1767455897-1.0.1.1-gobsIcE0ZMWI6.pHw0Yxd6EA_8fcdq3No0LfxlWkufE",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=W3MEvtgtJKaVcd5w9QErEhfzYVf.Ylsk_Hwpb3TnzXA-1767455897-1.0.1.1-gobsIcE0ZMWI6.pHw0Yxd6EA_8fcdq3No0LfxlWkufE",md: 'ZOIYcYl3WFB7P6VVZW59qUp_8P6aUsQ0meLL88TsG78-1767455897-1.2.1.1-pAY_Quq4_aDMFRNOYU69.qYy.x_riO8pyGTcuPOisYHl1r7FixD1zIapmnBDrjYm3sKZjGPykM_tzPzjG.mx9rHgj72fFTMwV_le.cV0yJePY9RdwBe3g42iTDzsqTXdBQs_LMpmcqnsw26Okf2Wx5JxKXbJB2wC8D3ntfZfhehKBelSVvN3n9DfIE_4KrDBheRnUSYqMcuLH89wAvCSovArCRXtEaqux5r3FjEzS0YtdSC0HABOr6FPbHB..pyajee6v2.3SYmS0XTh0N_6pCOTH9jb32nfHqVR7SGl.T8ryywOcmRF_5d9yi.z5X4jRe9tESV9Qv0WHaVaNY8NdQej_12YhmQiom9.ksClYqxUIcUhCkLmtcXUsMYkUAhXUnbTOJE8ZKdWIjaoNqmqTVHg3nsGHN2pZi_WgW5iH5v0s8EFynr_NJop5oO4PDryCys51DsvYrOUEnsU0u0ezSN8.aldq18Cn97Gk9WX2WqEZRp1wOPJ6KczIj6uM4XEsZ1w1rym5hy2XlRS1jg0m_xsK_HL0IRosP8fklOf23Zr6l8s6WGQVFK9qskP7z1uQP8Uoit7SiZU3IRfIDQFcO_riA.Vp8v5Terlqckdu_9kmuDb9wzMCj9.xfHyy3v2yKTCVYBBv7b7FAmyzx38VeS8axtT3kbSSdtU3_dvhd.lhqn8CKY3l48FyR95UkCr7JJAlC5D4p6AEumANV9QTrlIz3QIkNONv0_bFtRhXyUTKtYUYh2pWSyXbjIuHXqpO25YypFUULlZJxe0twYibntjRyQxStS1HVJO2a7g3XaYYDjJ2P7MAU8kKCKlLjMarphhyo0WF6wa1eajT6HnY4yyPBIetdJKAc.8zoIY9VwGAYj5WhjcOnOtW4FNaK.3mrdtrVhpPDOuvE9fIkzWqK7WozbxtjSZY_otA55h0TcJKGL19zm0YkAzr0hKsFj0Dem2DnGF.4sU8SFR0WqMtcdzqW30LqTikkSOU3nwQ3pF9I9QwnmBNkE2MsG1EOy_',mdrd: 'FABW3v9bwBmTthwT6PfYUJjFOUnywiugMg0iE7zpjvE-1767455897-1.2.1.1-1USr9jYZLpd4Yf4.hSxNtfHfYYnyJmL4X2tt0KygNWk_pMlMOBO56jCIhrEKHHXFG1seNQwKgo18Q7MTLBt1ykgP6zgjY5mJxH3G11RCp.vmRv_xiA5iIT41y_5ACYA7ssJfN2fLjHRR9JmT7lZq4Zy7JEvx0YbHKjnqaqzOkXNYjWXWSW4HbIJfuVW0cgU.8CWJZnWv12gN5pB3rIQ2_BzMw09mYwlaPdW1jrdapbc9okVaZNj2XA5Lb670uuOf3R3E4iRdlqxAED7EFzworl0ZiTzkvHmHDVPJFxKYCU3nuEyb.nYbOmun45hip2uYMIJfUSrgMoMM6nbeuzqIlPmUUUG_7pW_Y7V7tHxuwzjyAECapDIa
Open service 2606:4700:4404::6812:21b9:8443 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8786
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25d0b84c359"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=hVh0USVoOrQ6tlBM6KaHITWP4moczDgYUk0VT2MMQSw-1767455897-1.0.1.1-vRohb4mwD2hXhHjPtHhVufqoXlabrCm2Lv3Bmvi.g4FMzXTCDbA.cznPK1aBtTaidnRnJobbshc2trxIe1lFHL7W6CV8BcVXvFjwCoe7UIM; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25d0b84c359-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'javascript-frameworks.wrox.com',cType: 'managed',cRay: '9b83b25d0b84c359',cH: 'DOpHueFg.9.x2AWm_anW0RXCLwB1E8zDcxV.9HqmCXY-1767455897-1.2.1.1-9pYq0zeth_mkRvw3PTAb8YclXuIcUtfVsy3inr40e0xpe4fo5T1nCudaOMqU8ghx',cUPMDTk:"\/?__cf_chl_tk=9zbV_gGIfEj3erVVnyq2T36wG3YlytcbEhv8EOnSr1U-1767455897-1.0.1.1-OMpKohoAlk6BNTW3MpoZ5XllpYIHlZ5tfrYimxEP6BY",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=9zbV_gGIfEj3erVVnyq2T36wG3YlytcbEhv8EOnSr1U-1767455897-1.0.1.1-OMpKohoAlk6BNTW3MpoZ5XllpYIHlZ5tfrYimxEP6BY",md: 'SgqReq6pdBrsNvuUwlAd9qc0RTn1hgJmP6tFUkgxFgw-1767455897-1.2.1.1-vBrUyE98_z6UdUeObIK5fh4LZ4xRYA6g7AwPo15tWK8c27Oy0f.VtPw8QxAqczMna0hJlCVelcKilDN_G_iCR.6jYmhIxBdxe0SWEHfa55rQCnmbqMJLAvmQdhhghWH1sEaJUmBtmL9sW_qcP7uMCOEwUVAZQsHJw0Nqk14qEh1dcn.fyCYc5_PYwt1MPhO57TX_wHtCpfkQ.5xToQe0mfSu4Ue3fOSS8mLnqUQASXUAc754.NMWVjIivX0gtMi.x9hqQ20UxtTmCvFK6JTe7oAQQ6oIDDdHkXJC0sJB2CNYI_xQiQIzEVOvyYO8y9QWkTscWIdf71Rgdq.m6d3uhho56udPXHylh2u1YD3tNfk.kbYXB7WwTLJ30qCJ6k5V94MIdZbV9Pl_gSXlRugy9Qoeoqi.o_iJEcEsX7rcYPwsCnvhOIhsjD1IyIZ3phcm432qgpC3LEFrkoEu.YsRGEAIYRDChaT7NKBOK9bE_PHiDmuNpMGuyiflJFaivEZ0fbq8UpMb7lccPV8cZnZ5WGtuUZS_o4SqT3w9F__N0gU4ni1kiZsILSyVkurQrCUTIyK22T9AmtsU8tKsuh9JsYDalsVpsgg7X0pkopjr2oTVhene7OS6Q19An7d2NgftEyNb4vCsIzM3lJsR8TgVtPPEnPhBxcF7XDy8Kmb7bfcbsm1MP39m5WU_CxVstBIgOHLA1jAZEsXu2_pFnvQzer9HV_v.p4FVuil61ZBVJGQl936nwARjj_Yj9nDXaUUKfuswFZW37mlehG55qPeNIFhW7rvSPG.FQqeR_kT4FJpugSIkImrSYWecZ5WdePgoL9ua6r3aHzOkXhAc8Qcjo36aKRMGX2v9HfoV15j5G_0N3m9hZ5MioC0st_8G5ZdRTGIBxLx_W.f0qYceCNx5PFU881io0mZyDhG7ABJL6e65Sqe5AazNtQrnRh_1Lp3Niw8aGXB9iDmDivZKsKmIJGsIIwb2iJu7Kjm08WtQM8aLgVFZmgor7wQVtGKDASS4ZV2lAam5y9KaZLaISOmyv3GD9k2nrG0H7QX8klnVv7oS9WdwrWAnXiV3nIOMX5_z',mdrd: 'vKD8462j2p7CXjNlOUB4eoe2yAt.YJ0eFYCLt.M6MwE-1767455897-1.2.1.1-swRh287YAMM83B1iIZOltQc4Fi9ner4k4v_zvV813Q5ZgpH1z_r9eaPZIc4dIXXi2.2boQ1x17vPsuMb0uQwDLAbqHSBGyEltFGA61V95DU.VLsDjcH8T5wWmlBNbeC5qGFEuKjDikXbIN5u5LV4SHDHeyqheI3GSVPyGm1f9jR6gnbwW_PQRVjTBD3oIU35JkD9RDc1.HH2cSX1HUrviGHWsCRbA_zidOLaN12qFpAG6.eCyXw_MxPDHgVRzQJgQ29w5gnPPr5LxDuTwPciKNZCOPKx5Is0p4CulfEH9T8IdrFb8ytd
Open service 172.64.154.71:8443 · wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8615
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25cfcf07280"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=WnbbPUl2D7alUXVewcq5B3gCMLf1KklqvIK0L3A.hhg-1767455897-1.0.1.1-4Yj6hjqh7FERgW7Nhez0Aae8gMVxAlvRsOsVbb7YpUSOtJRMJ8NqqYqHPPfVcpm8yVEIjRW_YlT_Zd6ll2i7DDmoRQMSznRlnkKv.PrrdHo; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25cfcf07280-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9b83b25cfcf07280',cH: 'i8T7bMLlkT8h1fenXdlco.lBnUFig4VGkZ8SjxNhcgY-1767455897-1.2.1.1-8U91ayYk9vNrkor7iFbx06C9L8qy3d2H8_1yg3LjdXSClNlHLxzk6pKNYCqPiez5',cUPMDTk:"\/?__cf_chl_tk=oHOCFjGdfKdlzoWW6bbaNmGM4PYqHB1HYjl0kKcWCIk-1767455897-1.0.1.1-1bE7deGEeZWgi2GOHhHzHx6wwZ4.Rp.YidQG1mdH0_s",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=oHOCFjGdfKdlzoWW6bbaNmGM4PYqHB1HYjl0kKcWCIk-1767455897-1.0.1.1-1bE7deGEeZWgi2GOHhHzHx6wwZ4.Rp.YidQG1mdH0_s",md: 'WfJ.yufoAegshBZWCREsCZtcYR6vFpHyXQCGE7Cq4Ko-1767455897-1.2.1.1-U4bM0dyC.I4e8c3KjSa1F0jOdprDxidA8SIl81s7sQOecvj7sCHi0y_bvEagWzooGGW.MScJrG1f1APz9pjptD5R4gEdoGIvd0NfysYFNCcWkU9bh9sigQxJsi7Pv96PZ9nh5aXqzKIQx9Kof.DQGOUccVgq9C.55.6_zV.rsTaZBVAnpTdDk4PnsdS2wOAdv_pNd8tej5TkvMrRiqk9HzvE5N6_wPU3HLL_WtezDTPYiX3B_ubF0WpgSV19QxBPkyzzDyAqEBXE4eA5glGx1zY130c4ME5.bmaL82OWxHM0diKnrIjscfVdI32C69HJTt0XZGC95wmhdLVAYue1sVG_umfJ3MqFtgfwmSRA_ceiqs.NgElJD6Qw5zIUfuWXcGE5JoDxhCB1CggpamhMR1gi2.lqe0XSU_iSoUUDBwoVG9lRN6158EAI0mUwdsAVdZuMtfLBWmqneWY3WTBed2kbKHilSCzI_GtEWB.RVAeKbhPZB3iNx14t9zfsv4pDczZmcqRC.OHMoPV.cD_SUTtMPe_TX1HHcJd4MQGvAVM2MRNo0Ir5tco_eFnDYyt.3cUaWr3AO4JywN9mdsU5aEzTKONTSzYgaDxatn6.FH6SHqIDiqTqM4JlMcu6agNIfmS73rBJz271.aLU3u3pjV.Lpc2hq9tHDqucO2t6nH0kbuTWPM.PMaF5bFXhd4AEo6ddiOthQw0zNQCxYyzhIctJ5Nto2ehonG2RYnoOkd4ek3Pe3OANTCkNEKdSHRDs15yDuTo2KyEGqKIPc7ZLlM3ngcFFhZFjwRts7zrZy9cylb5VxyNd_Y0wdR2fOjpgQsuILLd.666218ao3fKjpSGOEIAN2AzizHw8Nw0H6A12LVOO4YmJ01LlEUHJsWGVp.eUJeJGh5dBNArG6Rc7pN3ccYLZnR9MuZQOGfq0Pl6H_uhdxlcMnWHmh6cci_p4sC3PX2azigD8Pn5W4GfIFsVB7JD_4G5RqVk_zjZOM1A',mdrd: 'LpMmc9QtfkTN2n7E2Z6MVpNfuqlZmtW7KtENCrEEhPk-1767455897-1.2.1.1-yIhGUKaoXisiAY0ra5.qWkg5lZB5f672W4p5A9NrWP0EUzDFP5DYWKqePmcEC7vQzKhN6qasveUgpSRtT7EMf53rfQ8MrEPjN3sH3xCf.TnJ1.VxBRpJFqbMSbuVHcoLC6v0CkmD.yelfcleAZ9FY4Nple5ChroxFm_0EqClHro5osDKcACy7q8TFwZtbDvtS4LrI2Cewii.hE5X2h7ppzlWU_DeKy9BwGDMj8jEBIrHuQSFYZN6InfIN6uSEDg84pa0kZoufMgoHaGqOh6ABTNVfSvWK_zXPMfLr7QsWVQoVpC6I0mqcQ9jHDWz8otlMhbRy8Z7vz6W_2H6uHvAHH6zlsfL1gHyWf8Nt4V5gN1CHj94R8IQqsix6b8iqqoeRUne2yx4MsTbOc4ID5BQfAdhIB2orY2
Open service 104.18.33.185:8443 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8637
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25caf75b2c0"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=7Ca3lJ887v5SJ8p_D9998yQ15p4WqAaZDBQE3EQx9N0-1767455897-1.0.1.1-zJHGlDuWhg0.YPuiPcUIvQI0JhyNHnSf2f2hX7uJHr50cxw0nMaxeCzSeg1qI.C81d2chjot9LUMoB8U1oCVgNGmdRqf9RPsWY9KxjpRoB8; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25caf75b2c0-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'javascript-frameworks.wrox.com',cType: 'managed',cRay: '9b83b25caf75b2c0',cH: 'jGwPmt60f.iuH._rnL.0fuYVzloW3TgGgS0LZhaNYLU-1767455897-1.2.1.1-EKVBUDD_H42fxXnNnkGs_yz4n3oCV7Da0P.dEcvdLSZ212VYXleD2YUwEZTcjfo6',cUPMDTk:"\/?__cf_chl_tk=wusxdxUQeR861GqHanuMWrq1Ec8HB.EltDcb3RD0sMg-1767455897-1.0.1.1-sJfNA3.Eqn_Z_krk9RBAEha4P0WPcOfIkLje8OW8Mks",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=wusxdxUQeR861GqHanuMWrq1Ec8HB.EltDcb3RD0sMg-1767455897-1.0.1.1-sJfNA3.Eqn_Z_krk9RBAEha4P0WPcOfIkLje8OW8Mks",md: 'CrfWj34ILhhGIeTj7vnSlIMTF_rY9NBC4SZqzF.Hl3I-1767455897-1.2.1.1-jVhhJcp2o.707OkPAnW85Si.vvnGQ2nJQoUQy7unGVX15r3fVvOTUUrHJKuM9cTNjyRpZst_AQ41O5fPQ2w.UPqfAnlLoOKJ_uq1EfBgj8dg5NzX2PmX7Wsj.GwDQPLXK8xFjMn.UtTr39axRpYG.mESq9as8nZVKk57hNkCeBT.7Mjla_JNsvRSYvLw_O9km55ZY0SQAEhBh_J3947QZD3SiNzNVgpIuXOV58mTq5BCEikAOLHHBrhequyZFBY3kny0sZVTgEW.hEA57JWU8KrvgwXCRFdr.jvuc9WPWtflzzcF6wOzaDC1AtC8b5b_e1LpcxrydcJFCaA9gkXpp1fmB_J9sEdwZGpFrcHwpQ4rueQMZ0DLSDHMIKB.JjbYFh90jXZb4ZndfIvO2LGDkd_6p06FBvqAWea9y1D96qfG4FBaS99Yc2w.VoauXv3f3Y9qqxM1eEQXufNSkfECJIQMGlP6tkW1qVERugX_Oonh6WZFcT3I9uyeLV6_1oaU2JZb5NDcsccjjGRZWWwyF39v7483zwykHMX1GOvTp82kYgT_Ko5FsS5OQvsS7kpS3mPUIkkU7XjpmzGtboyVyEDiHcgJ3dZqbau2WCLhqiOzI877xD2qnzrvKeY7wncY7LH_1C6k5A69aXLJO02jrvl_9wPTy8fyxEW04D7wsVxXwt8rTFyvxOPVVirLNwaT63nitLYGAybequQjjuTAdolw3r3CHp_ag3ZdQIObCP1fCq3Qsm8MieB0QKHqRkmlQc2Y845OeFa1GjUUj5CX35gGz.DsW.cjbsQuas9SJZyFY7ZwO_iFka5vyPCbQln5Cv5FfpG7cSR7dp3m2u7ncds3CCHWJhQrGmo8.WDN_Sg_VCLkXYucc_mvR1TBNxC_rLfs9c6PpVY6UrS.ixYyrn1BjocISEnXUonvumwCtZzvbmjlIlfXCqQJLUolok0H9FOgcJIUnwWUYZFIqUx478K2yJAqj2zMqf_a15pNRA1DEWjK3VJiayROIU60CpGQ',mdrd: 'hRpOiYxUJ1I7UaGo6EdoVW25BcZ0k0IqYtbioBt4mdY-1767455897-1.2.1.1-yT4hJrPvzXVAyjHvDs9aJct.cFQSaUTPc0OugbDx5HubBrnjJx._lav7LMwnTU9G87KIUgVYfWnVW.snAA6rdzGoCo0UjCyNZ2CLOc0qBvT_hAIFC6FvBs8BVyKw2h8q2S3z1XIe3dGaB8zAtEy3ceIV5v2x8w15aartH8Ux3BbgJ3S6oVWmlNPBoARQZpXZ94xycwqsT3t22KqtGM0Fh8_6T9gEHkmBL2AitQvmFdbdWnDVVg0P8ButFj4OI0faBjehT4NeI_kqaU2nEeKOMZU_u0B4IjOYEFPWQSCKttWdJeAxBs.rM1r1Pjy9dCteTgz2FevTH2kxb0C1.00SLRVRJOB.O0WsDF0M.OgaZ9dWNWnVQq_i
Open service 104.18.33.185:80 · wrox.com
2026-01-03 15:58
HTTP/1.1 301 Moved Permanently Date: Sat, 03 Jan 2026 15:58:17 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 03 Jan 2026 16:58:17 GMT Location: https://wrox.com/ Set-Cookie: __cf_bm=vRi1rbg.we1xp6wQ8kmwLxsB0nluflKfdgWs410BRtI-1767455897-1.0.1.1-ViOJFmREIIpmTo7vn1RNbsC.XcBWAWqTfeRSDljnACrfoYOzBncZBf7i6hkTlGFQWLW7XSnUBjD3t4md3bTfBteXEh7DAWo0HLQ0mTuaVwc; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9b83b25c885e5e82-EWR Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4406::ac40:9a47:80 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 301 Moved Permanently Date: Sat, 03 Jan 2026 15:58:17 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 03 Jan 2026 16:58:17 GMT Location: https://javascript-frameworks.wrox.com/ Set-Cookie: __cf_bm=10baXJVrbM_WA_56ESNAZqtSI2dC4en_OG6KmzUz16s-1767455897-1.0.1.1-Ftr9M1f_gSGpOy9xxaO3BqAJq8cmW8F3Xw54WrFXHhzYzgzbg_5__HWp.JkQqUv3hQf0j0cXb2iA.jMr.7Y18Nv8K4vO7hxT8hjmqsgDl_Y; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9b83b25c7e3a1914-EWR Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4404::6812:21b9:443 · wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8679
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25c8f54ac51"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=yoozpOhcG9oQUA.1c6skVNkS9x9P1Wi773ING3exkXM-1767455897-1.0.1.1-s89.Qxk3QO4H.pyyGOVukimgD7HWQFsQiiISVJrGZkBCip6H1jTPzeowbPtpdMX9X8VD6bavX3_91jcqn7VgkpvWEUeuXahRyld7jBvIZ5o; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25c8f54ac51-YYZ
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9b83b25c8f54ac51',cH: 'RFp151Z5jS4nA4v3gWeIl0VmiG2arz38m74uMXJhH84-1767455897-1.2.1.1-LNbhig0iOzHRVP5MdUAgSrHLGzPy6mbYnLP_DLOcnYR2BkdD1FFDjNsOlk1oLvgj',cUPMDTk:"\/?__cf_chl_tk=PfSB2yGojZK4WCdoCHLYmfStJXPs9RdhZ_1UyOynRyg-1767455897-1.0.1.1-JfK1.O5RuzqGG8Sd6k8iX_bGI.GAehYIzE00lK.kPyw",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=PfSB2yGojZK4WCdoCHLYmfStJXPs9RdhZ_1UyOynRyg-1767455897-1.0.1.1-JfK1.O5RuzqGG8Sd6k8iX_bGI.GAehYIzE00lK.kPyw",md: '6smbOjHtLxRkyWXQL.87jgFGCuv1_NbaSXkq_xcXtNg-1767455897-1.2.1.1-wf.VPhgCcGjMh2ByBRV_UNUDRVEAsIAnrQ1_Wtkdmx3lOqED8LNMPXSA7f0Zd_p_IdwAHKEwTZjYiMrG9QrckJ19eRFT672TGdqn0C7qwRXvkn9Fsz.Y7Jo4vhMzIkYuoHdxmB6kYR3KWjytq7mWyg2KSoZGpIw4Q4qjNMWdpu9eMBfPgMnED6qG7Xrc3JAPQgOiN5CNMAe83Mj8Amcg5UogALrT7SUjGlKtajNH3CjfJKmkaCfYqffUz5rp6TrxPt7mUTmErr_BuKgSEU.ibqrlLH41THQh3DruLCPPyjdYQkC6sSHVlOg31BU69lZo7ad04eCilPmQu4CeWRG5CT_mWRi9q6Hsy4ocG6czSnFiHJ12ZWDygfRqfMTMAIXeCrCj2TINNjEoLn_4qPYAmYJieNpgFLRut9TsEHh26VQPP7r3TUyEthM6oIZVVOt3e6Or70UUpRUn22_.aPH0XHEDL70FXoh5_e6vP4UNP_Vt2mZ9nhb_Qzb0k0TWkCzovHjhtUS9Htpe9EPGEo_7JiO5gYUuaWBGYbY1t3smY_58IhQrqx.KyW60w2BdAhtVIY4i66zMc_7CLwOUxEBEb6qE_qYgmMKSgbv6N6IcdDQXVxZWhXZfGQyNCq57Wnlakdnve1BNOuTKtEY1N6e4ggy.UdSMBUE9C5jRn.s0f_Jd0jj1N.J8BZSHUh.Hd.4PIkqlrM.qf2Z.v4BR9ZTjiVorpJYMUx.WYsykZAD4OsLqqCkadSw2haFdTvNPVCIsh6_R47Jax4Dy.kzFa1uIPdvCtWR7JhRzlQAdRN7ipZyvSBPkUxTq43a8eCKbVOoqTS.9ZKepygXogeVirAgPd3s9otyQ3HEU8kGVtGnvSMzEIcLUlDFHQdcHtI7DHcwftmVCnkM6v91EHZKiU1ju_ZE5lvNLO0rRzKTbKSmpUEjdxnaUDxHBFTNOymHiIK3035PUOonznXcFtFYGUvCJp24Yq0Hh6aroYxqSomVG4VwKEfzxTRORaq1AUVlfi1FVhxW3EOFJ6cixzlaZeNMCW6jITihs440o7oaK1FzrjAE',mdrd: 'F5THEslUlyGTPgoCF7_IdDl7XpuMfm6gQgN.WJzUsoM-1767455897-1.2.1.1-wJeXrm_zwWr6hEsK.ub2Jl9K2AQ5W5EqocHnzB9SWjx4_3PNB3EnlYN3n7nUPVFHqG67OsXkKY3Slae7JqGlo1jki3Y0YNNRaTBDzHL8fkbd9Avwa.FLqAxvIVP_a0ZNmMYaUm3a_WOTdiNa3k0fpJoQDPS4B6c7is6lwzakleMip.UtHZAWjMljiMlRUIUXUs_r1au6zz776F5c_klJ8_bsol06Cyh1zDCvndAqo1p_oFGR4kVltvSiSlb26ySZRhVTJ_fzESGA.Ioj.WFLma77iAqsW7vxQNZTmSkGJ032zW3d4LeZ05pzIaKbGbuqP7dMICoQBKRIzstJsWqVyx8jJte46wt
Open service 104.18.33.185:443 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8701
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25c6bbe39e5"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=2AhbxtEL_j8lWsanCX1cMYj_LGLcJaEkyxGNOISLX.Q-1767455897-1.0.1.1-iop3Cyd.7QgRrvX_GBZ0Zbzu70PtYKNCGM4viU3sFCMFF5WS.DTpeBIbu6LIUEa5OV7nJwCwBvVFwokDTtCOFUqTQ.iKQxPyjARG376fWtU; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25c6bbe39e5-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'javascript-frameworks.wrox.com',cType: 'managed',cRay: '9b83b25c6bbe39e5',cH: 'xg6APcdF_0Dh2qfEoWIKDbFvAlOXN1RGCnTIWo5KXG4-1767455897-1.2.1.1-a1xe_xKkq1jj_BDXTjuJwxvIKKaz7iD0gMcbhCBZgXZ37QQnHun2vpcrMZVUCY02',cUPMDTk:"\/?__cf_chl_tk=0kMNJ7wwVl_0qIZIzvLpFgoFuV2n7iADd1_TcGo8xd0-1767455897-1.0.1.1-rtOSqyP6orDXiNH6_S7JlCgd7aUAHA6zcphBwuMi2cI",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=0kMNJ7wwVl_0qIZIzvLpFgoFuV2n7iADd1_TcGo8xd0-1767455897-1.0.1.1-rtOSqyP6orDXiNH6_S7JlCgd7aUAHA6zcphBwuMi2cI",md: 'tYslWAuGp.7RDKNC6IKioUtsqmw7.ZiNnIyn32cl1o4-1767455897-1.2.1.1-kyB9qe9E9xS9F8UhJhtz4985_Yzf_OS8_x3S2rZ0PKRuJ2p1zmFhyRoH31F0gBU7IBfLLxez1Z3OlV5fdXMOM.dJYJJd.w9m4bZ6JzU6tXvL4R6EfKOleJELG0k5n8CN6J78FgzBEwGdeknxlx2L2SI33Zqcdsozz2eAS6RvdNs1C9QQpL9IFfteSoVGr_Qm89ETjaJ5C_hzaNRavatlCsPPVRTbdZ92e4ZNwAu6VV_wPSFEFtat0OH8A3ospxyRmQu_tHgRkX.wuajwjl5.SAXbWh08phZBaJ_lpTMJv87D1.hU8e6LuDzT_FJ2VtXw3HWUUIfnCdVBONXbzOY_CLTI2sr2X3GQ5peX9tUm2iTlzh_U1mHPShtKb8Nij9s.02yyjAYMLu2eGm0VurRXGyG.a.J3SmXHP7P4n5e9h0SygG0q0tDzdnOvWSUg7SYpcVhDGMEujzmPDfVL3hAf6CK_a9aW9S0YAW2gNBgAuFu.lFnortk.AJPyJNl1lOhEnoZeT15eR_eIdP_o1N9uSa2J_YH8z_zAz4LXLdV80bKA83SRkX49qZmA0L.Js5VuYldQT41hfnZInoR2hF3Tn22T5Rg3zO7NIPDwBZFbhL.rfFQuTOW44zHTgA2p.O8ZaQMCXr.21ZZbJLfwRXx47TA7tgkELhLfZkJqsd0ENrn9J52FHYadmKluOrh0HzNNWGmsRkBhHniz55F6JDSStsxPe25C5LoKkMjws.87Ay4HZsua8NDniQF_iLhXS.n0Zqsu5Ua5GCVvNwX5HSjLM2ANt7nJnEsXfq5KzjuJzeym1TjhOC3c1ehO26oe_MEfoimljRaS_FPbuGx2XKrpRxx8SHRPV1u3oRh1PkFGboE1uQA3T6XzOrd3Jvw7V88rzy2M7p5vgZswxfqD8CKCqRaSkNePpUGDy6GJAf11e1_IFpY_gBpU4pohb9YGKE1lJdqLB8EWawpaELteVg6fnVJZF3BpIs90gnxfzsYocpiN2MErCltop7DKtDIBQZwD',mdrd: 'nLKUKiITzOeCKqyl4OlzrGjwRpmDQ2yZ1Jj3Ct075m4-1767455897-1.2.1.1-a1GgMbcJtMf1nAFeSdT3EgKvMlePzGWARXxTucBHLm7d4mfsAtcFA.DpPKytHn15tzS4vlqvYERi8JHCz4vYeUPGvhAZMULPkdGGSqS6XpWqAKMfKm.bifmC3Rvs6a902YHiwuY5BdEqbQBdW.WAgyZz97YA0wGK9zpK7M135kvoVUaQOjoKADg_AQj4qdc7j9mxK_inzdxScXEtliNS8MYXDV3BV4jXR1HOOC0vhxzWFsJ8ZuqbBv7QU8lgllypJR5Q3UciI.Tkt6AsdiozmTTIEEuxZfYLzVHSkSJVwV.b7Q5g56h2uLW437Lyh5oRMi4FVS41.dtGykgpe2VZE.faL61O673GLaXiSVgc6HjzZjpWbEoB
Open service 2606:4700:4406::ac40:9a47:8443 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8786
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25c4ee39833"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=0yGh2a21KYAl4fwp.pNkiLbwD4PwxMhxWat539Y4LAk-1767455897-1.0.1.1-55qKW6apZo4ZBDz77NcsQEaVRUzEC2d5DQ6zsOlrhrSKuAc7rXDl2lEKAnqCHM8VeC5xEtaIG0sSaA6pU2cw9Ou.WaIlJXRkRTi1DUHrYvk; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25c4ee39833-LHR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'javascript-frameworks.wrox.com',cType: 'managed',cRay: '9b83b25c4ee39833',cH: 'SSjLCxFm6smGVpEbAV1FY_vK4iL9DUu2WScICCT.Nxw-1767455897-1.2.1.1-G9Aamo0v0.0FQy8pGlNEWZ9j.pquti98nGGOtL44jfsnUsOPYnkIhetkVrMQGwNa',cUPMDTk:"\/?__cf_chl_tk=yIvu1mUsdWXS_ZTcY_mODqGjFLkzEJVYoyt68YcVP_Y-1767455897-1.0.1.1-Xy9RuuVYGvEIVAvqR.QI03qpmDWGd.RJj0nXZ4X0YH4",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=yIvu1mUsdWXS_ZTcY_mODqGjFLkzEJVYoyt68YcVP_Y-1767455897-1.0.1.1-Xy9RuuVYGvEIVAvqR.QI03qpmDWGd.RJj0nXZ4X0YH4",md: 'n0fqKygdg5dJ8INsXW1kWfM_lDsnEM1FLENUAuVsgbk-1767455897-1.2.1.1-KCDEPPfoV8XRE9RE4KikV4ibGzxy1hfN7t4cWgNX5xHTeNO4OtW0jFysFrzpfX3.kaaXoYwjlc4yiRaCIgJNSKoG5nXQp8_TQkUr.4p.DZRqFg3bUWeRD_ZmGS.tGM6SiWRUphvrpJpchod1vUnudk.0KgfIXB0ToB26sGOKp9_rCnL91FMPiWyHBi8XqMK7YQO1CDNgBGfj8IO0VCzAIVgeJvHdvPK6p088iEgLj_2iSTvMovDDvzYkkSZ_5.mt.6S39_4FYlYsbPWIHao4f_3332qOborJq6nkWE1CvIjOEFTI9f2hQ0qfrjxoB0kPxvx4APWXoECcUrPIS9MoyU2YhUw7eVsZI3JP5q4XiAL1FReaMX4OIGI_uwUr57nxBgM1hFfVq0xqBDYAuGCjbJFcivLidbcLm9r9fLCZkjsjkYVEHX5iu8rbWXtVRYH1KzOttMSE37z5SOf4RGk_hGgyb8VRUoaieWo07lvgTh1bfBbb577avsine55oQx5rLd46G4TcnPON5_gg6QoNfHMr0G7vjU2S8_2.ecIFFPnJtrJaOALZfON4FW8On5eyT_qsBVPyUUlQWyGpzJlpz_c47NmZsWwy2P.7aDNe6.ZG560TO_P6M3aUUJk0JdG5IJ7CbbNXq73XXY3vNwvYuLw5LKtNzK47yU513edGqBgBpiq29d_qY_S00wb0d5V1TOh3jakJQyEEnw9KAz66b91ZKBJGk6Sr2iRGW06ULR0Z1dXeXtuyR_wcxShDhib.r89e7tx3K4s9mSPfqnGo7VgK07I4YPi6K9IILAsLZmtZOUhzJzunRn4_6._6noE3g3d2n8n45eYdJVprEp3Lnn5Bg9fHTTIm2lwc6YoB1Gb1hBL0fy.OI_tzwd3aUJKB.OlMnGLCHJ832lUAoe7ZFabH25aAN4vOgigNYPWyIGFiUvV6fvi3.OhMnYRc1ipBUkxhvQFyOOLu7iGVh0UwUw.xl_NCDmZSmT_jmOcAtQFXMfsBzSiDv97I2cVWELqZQPTomgJWk5msNvB1pZdJIeK3bQ8W6Uyw8ruXyr7QduwlbpkOSfLsXRIEgB_XZho2',mdrd: 'EHjTyzLN9MgBc_G.N4SMZClUYFo50Z8Uhb6WBWueTi4-1767455897-1.2.1.1-4w9jFlaZAMarIaVCZajVL6_PT62idmjclO4xVCCLgGfD1M2Z0X7o_aXFjdJDgQ1lKwG7nrIiQ7ovYGZ4hx8neLnIueb23YLRKW5.LbMLiQpPfNut9ve14MaeMf_qsBPgZ.QwVTtNqxAWUxdNLArDVZxOPK1iHSn9PvhRpi037UEd._zKu.j8C2EVWc07FWx21JbL1drOjchM9ETuEUcrce0H5TTTEctTdi30HfjyaFOst4LzpF79NWOoFfsUZgz4tfMSqHzKsLnZU2AQH.kEyPQWZS_4uMDs37c.h6O_0p3hUdVj5hzJ
Open service 2606:4700:4406::ac40:9a47:443 · wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8658
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25c489eedf4"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=Isr6gDWNxjt_UbzUtK9nsRnPfriAVMAtx3tcL5dE1DI-1767455897-1.0.1.1-.sG2dMPJ1Vfz9UIA98.JwFAKxFUH_LSXtmo6fu48ZVMqwDEYCjGSrX_7Khba8paUew_MwLU8C7nT5q8eVvNG9jTjiflN1bM9os12zzXFVdY; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25c489eedf4-LHR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9b83b25c489eedf4',cH: 'GStEDgTYTFvUupkhzNEaCVwEy.X4sd78xbhlUYT.7DM-1767455897-1.2.1.1-.nyyJf6.aII24SkEVnR19493FSkpqzINX04XsD3uEzBRr6ltpbvoL24kf2unU347',cUPMDTk:"\/?__cf_chl_tk=ZhjtgNzGEm8eSggYgoPZx3tQ6XwwWSoVIntRAkenx9k-1767455897-1.0.1.1-InZDwQHXHrY_08wMQ.4TwxtqDM9u182ik9gcLZjnnpI",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=ZhjtgNzGEm8eSggYgoPZx3tQ6XwwWSoVIntRAkenx9k-1767455897-1.0.1.1-InZDwQHXHrY_08wMQ.4TwxtqDM9u182ik9gcLZjnnpI",md: 'FkgKThV9nRBplONJ14K9cOpWbyN.wEe1NP0p32eUBi8-1767455897-1.2.1.1-Uz.CFZbzcYTldG4MHw09PFv2s3AdprDuKSfC59h.ik6oQR6U5Hnzcp4CAjIZmIwsNzG6w84YleEzNrnPt81HptyyA8SKcVSmeZ77kkBEZfBiQ7hvXmL_y_Dvjj7jsfTVRpENDW_UDxyzoByTiVuUUAuwzeTroqM2Ckgo73ZNTd6kYT_sqZGnKF0zQbY4cjQBLV7NXrWZuTLLF4CWyLDGq1c5HfoegU5AkRkLGIty0LVQ0uVpXAtFAnsaX8K96HmHK_JRZ.YSDHBsKcF_D4YwXR8CpI3Sg6sycumwCS6dfY0az.9wm4fIYsiEOQmom1SE_TeQMOxpulA8xaQ6eW34BVx9.iL54_W4z31N8l93lNKeG3h9XHkwJV5nQLNeHUUt0ZQ4NiJGfUur_yzKiPbi2Hi8_E.T7V2b8Th5c1ghUx9dy0yTy1d064iZOWntjfTPE_fJtkIjafPJbDNBmSQIlFnQciG4KSqah1udbaJiRoPN6w_ryxYq1bHF_tBSZkrRklF3wbWTD_voNJkUgeIYsVuc2PCG84NP_cspfKPgFp.uG0qy0UTLpptY6hr_dGneWv4HXLSraQ.29koJkA7YylIMpjgAoHpYgyOMXcMUjppaRREgVI1sEzQClUSe12jb9Gvjs5aSeeEvK57fRVPZmTpQjPHyPAHxqxYdsqsbuEL71uSoSNGsBlQ.nK43Bi1NRs8qra65x6AtkHGIJBzojS9bSP4WEcanZo_2CIZSMwnU_ehI6JNbm_wjl1rPrNBw7UFjodgoIRW8_KnLoS2.zVFJZHZFEZxBZeGkc2eMa.Vl7ZVTihngZtlC6CVGfFfrclyCjuqbPxoTPUab8EG6KCHfTL8k3Q1ts5uZ_r_BJVO3KzTMLRFtHzwKhq7OAzX95kWaX8WquphcfTFGFMV9_l9KMbNqWnxO4djW9DkLCfDqZuuFCXKEPO4UkO_Ne8Xgx_HbbHReWw5kEt_AejOpJQi8zEISPVS38YkauXVNZHV4FN5aI4nXUkWGs2zBVhEvXOL.B4Ry5kVisbFU2xo4_A',mdrd: 'kWPEeGDXu9Gt1bG.VBPh2znogd6RsOJSEVboEodrWwU-1767455897-1.2.1.1-tdyLQ2eIzfJJrUxq17CFIsbeVBrG7P7ChAILqPQdi7sbuurfgLEH6f7ndsZ9LBrUpSxNuTLegxuCUNlatnPJrgT6lGHzjxxuO9kkyTcf2PZD2TbZ.gmFR_4h0tsAFJszSQmiAAylTKJqWu4rgjUlVUgPY1PnB.iz2._fL6Q0IDPvYETMG24zmteS5IaOZeUp0kz44e4URKmVwYNp7123OoTM5K0yljrxyWOf7nCGm2SdB50quy8zcxuPbJLqRVPfLFykCqSKLQ6N3KnHzP8kKt8wajQ4aKXSD22EmajnJ9Spc2kaDuorgkOV4vVjPcECaCDI9g22AqM4IqOmLU2Aroed2comkOmZIXsbvTRusQw7YeLxvOr5
Open service 172.64.154.71:443 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:17 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8701
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25c2df4944b"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=HAYn_CmmDzcWn0xiu.bifeO7Ma.I5_lkUgE3E3PK_xU-1767455897-1.0.1.1-zuGulVIbICY1CIb4VcWQm0tHJpvB03Ap3BLndAvo4FgEl4nG.NtPLir7cNplCeEKiBCiwvAVzUq8Vm16mh2cP4ntW6L8qtyd3y28VikM1_o; path=/; expires=Sat, 03-Jan-26 16:28:17 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25c2df4944b-LHR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'javascript-frameworks.wrox.com',cType: 'managed',cRay: '9b83b25c2df4944b',cH: 's8PV3Biz7GBWkFvDeYg0yJ7dbKWnhCPSXpmxZaXrj8o-1767455897-1.2.1.1-VBVOLRbL_If8L0E_Hkd6H2WK2QnnZoLgBYZqp7lDlebfGFI7qWeh49GVVrsqZpAe',cUPMDTk:"\/?__cf_chl_tk=IWTc4yEaAR.ahxi_ACvgZs1HH2GyAH8fLyqCNYn3.0A-1767455897-1.0.1.1-inmU1NjtrmJq1SYFLEwvDSZhwyimuJ2EXpGNSqFe4.A",cFPWv: 'g',cITimeS: '1767455897',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=IWTc4yEaAR.ahxi_ACvgZs1HH2GyAH8fLyqCNYn3.0A-1767455897-1.0.1.1-inmU1NjtrmJq1SYFLEwvDSZhwyimuJ2EXpGNSqFe4.A",md: 'LtmZPQoMKF7AbIh5ux3_F2xiebYN7l27ISQi_yrmDPE-1767455897-1.2.1.1-YQuDWTY1onhqHA2p.iYM2RJei8N4QVfCAUP9rSjvL2YpTHqceVE_m0mpGKDWZAsROnSz8G1eNmK09yqurOa5gQ.wqxVy5nxF9AjuPTe_17srWotRQ.gBjBBTGh8yherS70efjCuFYExKjLmTgU0UZDsSRA_W.uzMZir5bRZJAHR_Qd2yGvmYLv5JHJRUzhV4a4H7rzs.3REi1kZWzgPvnrFbw2AmxCGLcZOSU8FGi4efOqs1BHkZ0F.tKaa64CgT9DWD2Uxm91t_ysY.p6ijJMCsmmGeq1XAmGEAZ9YVo_.h2LrJFnvpLeGNzcxXxztYDPhxAYKZKMKrxGJgJC6F8.cwkyRjN.oBWYgrkxmJxmPLtp7UZWBK205rYW99Y7bRWyTTK_DRPNFe5i4FfFmJgxnV5Fua9huvA8cTVNlWvdQdnJPTj_D5EhAYNmVHnQU6IUyND3s.vNfkBuWKA5P5IqWvKHOwiXM288HWaiH4czZ9hptRf0gqpMtiGoOrGfA1toWqusbbpnX0bS.aPkCbzIfxD0hbbJYyNfa9G438IWIBq.id5JcvgzV6SXiVcaUfvh9DdR5S20OCGAww0PIj5IX44zA3.FNUbaas8IjYqnScS3MH_Wgkec.Pen4WJ_bCX1VDCNO9U9ojCT1gHRY_OP_fZ4IkXaLUUXY9blZKG0fnEsHgow0ub1Ks_Xa7TZ11_2nDRmzucTFJV328G2QIyW0VS9MjJ5Dp3yV.hM18xaXBLEc44tQNimwGnup8OYehXuq9ihN6DX7ZKRgxuyA2usO1eluh9laY7AOUyPYBiEl1JzDF66Yqr6t4kxP3IahqKy3n6eJORYj2BDcLV4wMvxeas1rH4ZWo8jh173.nCYYV972GVpntMdGK1QIPvtCCYAtvxtuBM7wwFE6GMPA6DOBo6Xc23UNIWc0l26U9q9HsyK3MqYFY_74R9yWDotImz0BFFtzRe.34N99N_tkrZUQk3vzDeC7Q6qyJlnTPGDjkv2lCSxt0a_OD_ZUbllbz',mdrd: 'pyLrXXwF3iXnOqQnW8RdMV7l2wTnf2UQuutjhTrwUdU-1767455897-1.2.1.1-XMNDllg3QsLbYh9bDA4HcBigMsUQnTkB5eWBKLb6Xi770Jhmc6MAm8W08kPvVWl62I9h8z0dWkHm_CTYlc9T0NjqVU7shUHHzjRQ6Wpmx1CSAI27FRSLsC.GhJXP_jsN8Lw1Hk3W.65Od_5UMBSdmOC6T40Cyw.C0wn94u_.YJrT7cXcSNXF4XyHl4ZGaY9WS6rZ9jtZp3CWDlEYrcLGtvE50EltzZsILjj89l6qmmvCO6Qb0K8j1Rudmn8VyuMiqUty9hXVr_DSTJuyzlTHVCzDYp1D0niD5Jq1IdTf4mJ.cHE6xWq4eJ5IibiIdsAdDvSxTB7soyhjcTNzfROQy__qGQHPeRsXrJQPPlkwguNGCng_4yGE
Open service 104.18.33.185:80 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 301 Moved Permanently Date: Sat, 03 Jan 2026 15:58:16 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 03 Jan 2026 16:58:16 GMT Location: https://javascript-frameworks.wrox.com/ Set-Cookie: __cf_bm=AmUsXd01S2Wv7yCnyxRpif1EYolflOa5Ty8QyY.95xQ-1767455896-1.0.1.1-ydaCXHJs4EKjKJmqmQE2RH2hOhHGHxE2R8hVNAZNu4BbmF.w4.CxKZm200TC90fEHAXfGKMVjz7sHoZxPvSf0vZigFbltokPU4RrPQGIVMI; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9b83b25c0adc662d-AMS Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4404::6812:21b9:80 · wrox.com
2026-01-03 15:58
HTTP/1.1 301 Moved Permanently Date: Sat, 03 Jan 2026 15:58:16 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 03 Jan 2026 16:58:16 GMT Location: https://wrox.com/ Set-Cookie: __cf_bm=yx8dUwfE_39UR1GJP6bEmz5ghPqd8R.0iRhq7OUbs1Q-1767455896-1.0.1.1-qkGgsFN4mbahYOdxYnaLNVaYyQMy6ibjy9EGtDS55LUwDW1XnVXl.u.UAlbsPLA9jj77A6gR7264gRF1XggQYL0ikC3RtSxpnLIfyoWi_.g; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9b83b25c1da229d3-AMS Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 104.18.33.185:443 · wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:16 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8573
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25c0f46c443"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=BXTwjfU2MuN7lcwcTOYg5ICY2ZmpdvYns8g6bCrtlls-1767455896-1.0.1.1-ASuWl0IBgfyZ14N2pRH5x3_IDXPH.O1oAzAHLlXfR84JGUSdtLJ7z4zDycV8Kz.83XU4YMTvI.7zwkgPoJZoS6wyjxyZ9NQr6lttz_k4ul4; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25c0f46c443-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9b83b25c0f46c443',cH: 'eUD3U7UY5lIcFxOZ.niNDMYmfe7NHzMga_hD9lo2mvY-1767455896-1.2.1.1-hNxbz_Yns8cJzRla4DP0CAMhz4v8AcXT_SXlc0rfS.WaqlFwMecUBLsibfm.NyWy',cUPMDTk:"\/?__cf_chl_tk=4SLuBFQHnI34hGuzQbz6LK.nWcU0pL7TpByd7kNSXfo-1767455896-1.0.1.1-rQitToqGXeNBVbWhp1Ralt4jxzRng2AILiBzWx9b3jY",cFPWv: 'g',cITimeS: '1767455896',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=4SLuBFQHnI34hGuzQbz6LK.nWcU0pL7TpByd7kNSXfo-1767455896-1.0.1.1-rQitToqGXeNBVbWhp1Ralt4jxzRng2AILiBzWx9b3jY",md: '2vBWQ9CuhM12m6Iy9WTDnrkytSyUKercbiyelqwGraA-1767455896-1.2.1.1-A2b.M2irKzlbgEC.fLrUrCyzklarckAKfDdd1TOU2ObI5IdKemqNImuXRPE7f4WUF3Ww8P68l6cp7c5wAxH0_qArcYrAJSA9SZE0wfxX9gtqvoSpEodf8bQYcs9BHrqFXesaVB4KDW4jsi.EIHCBo4yAuqSyr9853v3zayYZm8O.Z.GqhfKimaxMy7qO3CwZSnAue.hnTnjyk3MTaI7GHQJp4cWh5J.X_kBOcifBqb7v_uRLSw.FfJKeHL_z5ABEzzWaNPCYYWLvMytyb1R78tOi9Twv4EfY7PVqo2is1T_qwNmfsS5mF_hMfJExqPp_zRckAVc31NcNohSxWCeLW_xz5539Wxs3trgmmKD.Awa.ZAxpXFssRTe94VzPxTo5O.J1WJnx24RcpWmqzfdca3NVv3NLElgN2Z1PcItW0_74SYvSKiYKWirojfLxQc.zwXY9Fpgfp5Y0H26CZYWlBGInk3sQi6e0t12V4ijCqiIMSO6g7OG7l3RkfuHf8P6JGfeOo6QWSQsAqOIAQL5afm1sYctRa0sNtHuQP8HZDeLkfqP5YyAJKiUxTA_LloFSwPH2jikRodc2RgacEUN1lNGF_tm_0tz2K2kBjm3137b_7GpwHXKZ74f166oVdI36FyCfyXD9BpXd2VysL.VRCulSNE0GGG1TSXVS0LBKL9ksnO4Rd6LbGEFf97Pi1tnaXNVV1CyHBmWh49ICwbuWFZA20HAveCCsvgrIWSJAOND3nAI9w2PyoNgk2nS5umeRj261r4Fgq4jNCm37fJ5oRCuaq_h9_gtjB27K9RRJJdGeZv99ocK0FMVSQ5bqiDoRj11pu2mRrd_NOhzoX5irqfOVsdU0w5rwmPELGTfMT4E0TJYixt5.afSEreTDorY9h32YfMkmRMttHN63uJKqnmEmUpWEDawAIs0jeD2.4Srfnc0dJ2VG0WZSK4hfIxJOZ7fMEBl1buI0bX9M_NFC5lb6hhz1zv1ar_v_8dObIDI',mdrd: 'Y0Gti5sG.P2.TQOM2e1_.Z_rbt2dxpXv5e55TH58aME-1767455896-1.2.1.1-ADSA_HitiwJVOa4cpYeVYK9RskhWWQFi69QsXlJCGRUIUbq0fG2OMQqK.ttm1FIQrA0qap6zd_VeDgdy6.sXyq_tatqHgvxq.GfXk46S9rBBP9ztdywu6KqOl1c1me7wYbmN1db7I.z6iV7Pv.H6hccKKtWeMHbfPvboDI1npielcCf5SXPlw05yiu.TyM5zkF2nL9Tf.hH4..DNV4NpWDLM1Vf1KE8wAFKSIFslpeRKIxy7FBYGRcSDiPTTKUR0TUWHOP_0vNefziGj.VHD.0v5exaBgUsGQMc_n74QxKMSGwpv_sRgfg0MgF5HtfthG2MdzvpyfQmoF6HNp2iC_S.uf3r7y3mo0hq1f1k_EkTx7BiCHrk1S872.nQzvPKQ1ix6HlcRTy4eaH.LjqvEGdcvNjSsiMq
Open service 172.64.154.71:443 · wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:16 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8551
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25beb2a7a3e"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=ttwM9QonWVJTHSy3xZWA2LMRuQSdd0yr.J7fguw.K2E-1767455896-1.0.1.1-PfNBLxIn4FGuyfJVcORTyoIMtRw8IiBKEt_0qq5sOVaS7N5BDeSbYqyxoQheCXAY9TVMOiViCMoiJgPkxD4J1ymsU.yZIOpjlFfAWo285Cs; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25beb2a7a3e-LHR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9b83b25beb2a7a3e',cH: 'lRh.xD6m3AjY2iYA4jkbz8X906_mmoFCmqxH.nXpWJY-1767455896-1.2.1.1-5iF8vy0DtSxFAOENBosaGwS6P2YdQ8Rzbk2MmY3l6UcjtIHKESsE5.9Bz6MlqbRd',cUPMDTk:"\/?__cf_chl_tk=VK3RS.q5dqsL.COpEwJae4QkMbjo5Kn9WNjBxpHSbUY-1767455896-1.0.1.1-92zZpk6QOxTSTPEaXRSdvR9P_aQPWVZgbi6XtvzF80o",cFPWv: 'g',cITimeS: '1767455896',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=VK3RS.q5dqsL.COpEwJae4QkMbjo5Kn9WNjBxpHSbUY-1767455896-1.0.1.1-92zZpk6QOxTSTPEaXRSdvR9P_aQPWVZgbi6XtvzF80o",md: '_KXszBIz0LpwvmoVPCBfJQDmjQ0eu6aEhJN8dCacGm0-1767455896-1.2.1.1-rmJZ3bfe29tnrgMN7y.daakxPyRNgRHyzAfBl5ZR9XbBT.o1NHzpabBNYc2DzptgwdVp5wyJZSmTB3olqjuLC0lZYVVx964GlQhw1A9LgKXtRGrteDMtZRhwsHzwq11AM_Bsz5UCs6SGfElTOcnVAjbNn8w9Z.A.vyqlWIvhoAhqvAe_J_8bBcFLws7WO_uQ5nzPa2JIIuOCElvscNQTv2F6S1r.L7fmUI2zxuXvOT0hskUcgRKI5PT9wd4LdYjKT2GbB2wXYH4lTuxlXCuTtaSwF2NwYuFL5iI2mmtNwVtGJLWWMGOYiYJDon_ntZSdANQfWoKDfAwXQTgPczZgiX83NitJe3grfjyupnpa_.fMOR3_8Q6SnJxvBoITzyoHhaHELnTXpA6INJdt9KHNI6Crh56a2MUWwO2sszzBY1.lLdAzbYw.1Bg8TghMnsEE_yxfCuuUnfmQ8.fBI.cLmoXTajmE4pGsU9NxiBWxcMLmrp.4Q9S3WmRH1nLJAhfpTt6Emlev504oXqSVVnpIpQP6hZ75cl.lO5arEQNeqY8kzVosk6k0oWpuJcQeISbF5aQirGiibBNagoAf2DuPZgG10n1SFs.3QGR29LW6RI9vn1Dt.7nOLshsdvuHMqB2s2hmRKvGe5032QIqw_.cs4Y6A0TLXqC86ewpz_CW4tekKbecQj3a41xT.iHLIQNKyaq08DvoTxzIJAuqKX0yjoAwQI7taefZMdAHzjXOJTOtmWGTnKKx9sUvZN_3PvBNR.M6_kkF8ZybmYDyKAwwtYPAWev3Ka4t6pjGJrVRMb0O8m0i4ClHOL2km3umLFPqzw38_Z_ShBcAVJYcYZ_mrTKMXfaAY.4Ixsj14ZkAiJnSLZXGDrV90c_Dk_X2m3nVc01ohnoO_kpb6qk0AM6hD6tUmqt3fHQgh01GRW4fic9SNk__ATHlX4HGzHDsu.IDuXW.lGkwe22v.TitvhpIBsg9Y4Svumpya42N3ATOms4',mdrd: 'MYumQJmUOt8BUdFZXiAdO.e5JFSJhGMrNiiNfnk4NCA-1767455896-1.2.1.1-JhEiKGpf7rwc.beY3m1fh6vLhcgoCh6vmfwqpv.oD2C.FK3H4ffRTekVxWbL1YdZu.LlTZa2bJNEU23AirDxMIwNeeEqE.4oM2EzHvRHocKG3903Q0H1PYYqKjXRRy51F1.QTvD1.ji5D71d.hFAmjzE0AbCYjqtl6oUmH4cc2qronFxg_.ZWFhuJpMvPgWqi257tFwdo9WzP0zqvVWbjv.BVFlahuanqhE1S4h04eypZywN7zid2wyvXkX5bkgp6lvftOu8XwKh6x7.bos5eXwHGReb5AIg1hFl2qyZXE2zIdWNQAZNLGPAG8oLhjLPhgTxaX8_bfd_2C54EtT32ND0q04tdEc9SxeTvsE3AFFbQ12is6_a1eqJbm_9l..UPX1IVWmACWEakmkBUn9YMjGAzlfUOAq
Open service 2606:4700:4406::ac40:9a47:443 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:16 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8765
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25bf91bae5f"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=trlwSeyLbZG9pA3.En_riURIu2Zg76v0slEnWrIDcUo-1767455896-1.0.1.1-ZqTi2RTzTt7saqkN6AD5_zHn5mVJwScO_0UByygC97rmCCRuw34ZK6jlLMrDo.MmJCDoZvk8DrGHoIqeUaVvS0BoXNY9Q03R8JKfz9vS4iI; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25bf91bae5f-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'javascript-frameworks.wrox.com',cType: 'managed',cRay: '9b83b25bf91bae5f',cH: 'uSHOKWCG7S6FTuUdufrFu5FGmTSpPnCj0ELbEps7pDs-1767455896-1.2.1.1-2Ap0LS8impdBeThBFs5FecFDZ2BW.ux6J0vMhPnbsjSYZB0B4FPFGo.ICnmsV7au',cUPMDTk:"\/?__cf_chl_tk=DnyuIeyu9eGDT7H5wX48YptjAlXZjcygC6SXG8eaxus-1767455896-1.0.1.1-TYwdZ.TeIK2TUhnDpA1Tt06cLKawGz.xr4sO2BugxnI",cFPWv: 'g',cITimeS: '1767455896',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=DnyuIeyu9eGDT7H5wX48YptjAlXZjcygC6SXG8eaxus-1767455896-1.0.1.1-TYwdZ.TeIK2TUhnDpA1Tt06cLKawGz.xr4sO2BugxnI",md: 'hMf67Uk.DyzGZsW4h1gKtEFFeelniC8qQSVyEznA00U-1767455896-1.2.1.1-FrTeK1vpgutzQd4CaB1ytkzqYSeboLwYB4iC9EenCczSBSOw5H00ow.n8tqRzLKbtktUQ4CALo4uETcKLd9SC_KYKpewMxJ4bKAnX.WqxsmazbogKrCwrqbrFgxaJ0SrWktRDmxcN4j_FOmC2x8GCYtcGr_5g86Wa..etgt.BOtmWqVICfP69L1WLJj5dCzWbtdSVQVkbWG3uKK2vcDiJEddPXXHlv.gZTAX..eD.HQ_5ri87eovvxSP5fvOsud48g07QytGqSAgTAYXdx5DZ450O5uQyBgdwjWL9.6baEx_fPv_iJAiqZti5Vflc9meyI1wpkG0WUf0H5ZUjQm.BICe2iaj66gdk1cldq.H0fu7ONfSLVpmjyXEYkiMFjIbPSsdHR5yhawYc.w9EODKu6V8Y.8zHIIDrKhlSQ0cTs7EzIyzFubY8Uohk.tBj9uSE3eLgIze8vwcw5Nw6hzTHIr6xB7gDgoPrPU_xPJuy2N25MyFQzi.Lk416GaWSwKLxKBejgPbw6AaU2VfDqFk6683J9kRxYfcJm8aNSGQWZ_frO5ju.PVAvLrfB0EIMOKyaI4IV1awV4fmrjckIbdQpGfQKc_xgVOwQ0WusLojjcKl9x0wdR3arO119cBImnkz71YQLguDGaVmFDCQuj2niWozL.Y8RAVUdjX3gv1oTyl3ZRyJ219osuNF4PiR1e7U5SkVzQah06aFekNnkraTYjlzT_y6b41GgfyvZ6k65a_35Pd6nINr5V0Z3zlAH6tX_C1AVPs.oM24_yPSMZz042Dos3bQ_fDh8iZhSn6vfgtvXaNHIyNXIeOxBch9dMXapIx37aI5AfQFc9zvDU1eXaaNkHG3VrnU0Cu61JJzp4zWcvyVkYuHH9FxlbNYHhQ3pPpjPEkO7J7qaqR53SGt4er6gFovXxUAfEpt6Yxr_BAQaRDIkab5pcOqAPHeyLvcW0gp5uSjxGPYUuAeJBBkLukPQ5FBAlQNm2l.dZ3SE1OJsW5uMJ3QAzozPrzJaQfD_yftqmjUsX5AZcw5KfK1WoCsiCc_HyaE0f8K4jYKT0aFGfcq7hfJY9uaPRgZnfk',mdrd: '7zhbxIronjWlKzh9vf00417YGa6yH.G1Q0oP3YvIpkQ-1767455896-1.2.1.1-ehcSWET_mQfSpw7ajHBiUtJg6DbI.amBnHfy.pgBV_20QhUev8Fl0ncQf88I8dSVoLDAvxfIlSsBDulLYfOvKVtcYTQ52pUTatmf8RKQZStF4mHplDq4GbdZhqpaRwjDFqUhfT99eU3q5zwKv54bpY.ddioYjjWyrkZTQPFsj2NvA6hiBcL1YmuYFqEFM8p9bJTlkZFprrTvjIrsMwxc7TPT7Wb7Zlb.HY058FuUp5sxLx5amk_moB.kS5vFTvcR7UJ91v6yxaftaXZUPHazoLNMIn2xQ7Ri2S7dEbWI08K24e3KYsgm
Open service 2606:4700:4404::6812:21b9:443 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:16 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8765
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25bee6aae70"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=QUHdxTS1iWPfhJH3doaSap_YdfIQ41bjkRP.wdsX2FY-1767455896-1.0.1.1-CkgMhvqw7638HHDQcqiPTjH7_p2.Xw_oqau3uEWfvhM8LyWn1HRpxwCpJDK.HUZ6yfbIZVGvlV30YZY2eoHR8eekAsveGfRGFcRHzXxn3M0; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25bee6aae70-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'javascript-frameworks.wrox.com',cType: 'managed',cRay: '9b83b25bee6aae70',cH: 'lGjfR2phuV7FE.Nhtayf344tVKg9yTLNiJKqBAZIU.E-1767455896-1.2.1.1-EvQ0_nsE0VC4UaxI6BMmWKWfeBqZbG5JHAlLPh4mk_c6E0nbAfc1hMjTevaEXRVG',cUPMDTk:"\/?__cf_chl_tk=1P.zun6ynu_wmnRVNnsJfbiLibTyIR5PlGIdZngAWWc-1767455896-1.0.1.1-wh5bcErtR8ieN2UihVFTuVAyKzokkmjNT.gIBkmw4UU",cFPWv: 'g',cITimeS: '1767455896',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=1P.zun6ynu_wmnRVNnsJfbiLibTyIR5PlGIdZngAWWc-1767455896-1.0.1.1-wh5bcErtR8ieN2UihVFTuVAyKzokkmjNT.gIBkmw4UU",md: 'gFMQIAyvXLWyrBwSCNw3FgzT463gm8YgrzGgDa5rMSU-1767455896-1.2.1.1-RzTBUF3o6GILH8Ca8b7FeVkqCULBhcmpE30Sxjf16dCp8U_Yqpy7awZRjP5l4FuZ4PHnj2U5_zdoFB1g.unUAgtM51HMwCRtzlEIhx1nOmc.zFTrV2R3w_eUfZ9_Af9aIpXzSSOYhnUUv2arMYOi0ZFm7n6mVluyersrkYA30xesCZZOp483w7KupM7HipW6A8_S07KubznpzDzUpBDvWqaY7VkuCNcEOZZXBPu4dYxYC8QnBJ9FuP0VErDzAzfuVl6KxNEedYRTQV6IK9UIm33HuBH7ZX2j_dIhyLPrhjiKG7uveLjeMRh9jVd019txQLw_JbMliZTc89P9x0LIx6zBupW8gNhpNy2qu9hH9pJpQawZenAXb7DjuugYh5uislLMTBBkFKhcOmyR6olFUZuNtndryk.uUGJGuoW9uCKNnh2ks6ruv.msH5uaAWyOm2PaWFfdVeND4EY7Qaqj4s2x31mw9nRzRHRs0.YOFCKZDtrauqC3PNGozMYM_CqWkrJaeYT38iX.4jz3F.hfHjKNTbHSzLauhJ3SuTI7JErp7x0vsEJ1cyKGvlQHuu3fwAwHZccAkeTOGctGapaGFLx36_QQ9ExhnvsSM6DxICnG13p33IMQVx5GlkfrWmkK3lUEj8ybdewlDrJfnUZc5QPHGJDt.ApVnJopCVwItfxyhnqudUDouq0O_.bY3YkJ0PwVxli8BAI3A.lOvYakBa7Lufk7.SvEbvugqplZvCoyUb1NgWBgZEPVJB_xTv6_8zchtC3_xmFIEEdZcarY1_K7KvJf.PPOp.lnDdu7RmVtpXabTM6xyJgfpp_o.1J0y8Htm45DkaXBjJwAXXoVR6ZUAhzXTYayVhF4YnKxWZ4ElJkdpJcUy_kokr0uJLB7XIQQVc4cxsYSJOCq.9rX41ZHF_0y1EfYWG6UG_90Fr5Nx5S.Zgb5CR8Z_jbojvFDQAIY8qiSq3e2kiRVM3cf3SFkjBJ9fd.dl.pwIJQasaX2U4d1Cl.JoT8GXJhOymbzDyjH842wTIp1jom2AgZ0t0KE7wPs.wqgWlZlm27UbojheMnMvAnD2apTOE.avgvi',mdrd: 'f2r0IMs0qo8w5AYDEcJFh_6CQZ0h62jXmsT018tFOqo-1767455896-1.2.1.1-Pokfmeb5AJCo.Ai97ekiboCNQ65vn4rq6KpyrV0m_hq5g0V78_RUmXh33TntbMcnOf9yumD52lNqrv84YXV5dgG_XW_v9Y5N5Z9LWLwXzFhesNzqf63m_SWuyDqkpFt3lOYdFuInSRk5flzBJZDA94_WsQ.OVZCvfHprosNV3ZVT0qxjQC5XN9NTgWdy4fENBJcxXRL2CkpULOzAC3CzzO.WND5cWVTMFMaqg59Z1xPTZrcsCN3kAlHim.HhzJWDN3N3XlSlyOzovABXui7lNmeXBUQkjn39299mp3RFlw0kXm1Eqhjz
Open service 2606:4700:4406::ac40:9a47:8443 · wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:16 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8658
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25bccae5564"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=WIoJwfFSewbFmZYyd9fklJzAtbqaSWqXxWQajDPwGrE-1767455896-1.0.1.1-i9TDlTbO6R58N0BrHUc77KxXBCEWfvrK8ae.WVXegNNDCKYf0ZrJW_3UL4Gb6ME7bpH6HLXf.8ASMVbuGyFY717h4KkjdYZlWRoXApymo2w; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25bccae5564-EWR
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9b83b25bccae5564',cH: 'y0k2eJuw1uv84.RoZKj9abLAJxXKCZi3fta1.Shyavw-1767455896-1.2.1.1-sJ7WSqSzAQSpBZmh36dTeGbau6hCD3.ZX.eHr5DPfh_RogdQ91Z9P3zsGCy9GSWs',cUPMDTk:"\/?__cf_chl_tk=wq9GZWSsQTY1B03NK_Bfl9jBgiZBB07Hfnbx7C0vtK8-1767455896-1.0.1.1-K1fZ5BPlGpVnc.3zCdDZb7PAGUdrsNeYJ1rJ2BykMJg",cFPWv: 'g',cITimeS: '1767455896',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=wq9GZWSsQTY1B03NK_Bfl9jBgiZBB07Hfnbx7C0vtK8-1767455896-1.0.1.1-K1fZ5BPlGpVnc.3zCdDZb7PAGUdrsNeYJ1rJ2BykMJg",md: 'm6.eWlSnKK5PvMlgOqSzDp79jDJJAuMcD6a.0bSfjOs-1767455896-1.2.1.1-HmMjLETXbzgVSvpM1X0eCFs43uti8L3cUfd.wzpyk4cnezZgNFxtp2dDjzKnv84AxYYgnZicDQ..dryxu8H.prKk4Dd6ln5vco_tHYj2fhy_iOtbOwpOr4PipJgtdOg9.6ufcic26ryljYUGX8PZXNjNmdXbNRQULtPzm5INWaMwMcSL01ej0jeFqUyzIu2gd_q8BJCAdEP.LW1YidGIc218JBROGH5hMrGu9a2ms5dlh1.Kv9knX7rq8eUsavMY4yptJWtCu47RqYG.OFLFhi1VnsDbpB0IGg7WhMhFExEeO5STL5_x3ovxS8qpq4fOXqB5UIIBGlt8IfHdVI8l2pNOSaiflF9mfPwCTcHqcQ4kNm6DoifbP6ffArtELRlvYwroRZqvMfLfFadAfEMCK3JYI50iXnbaEfY5XhLlElAor4u389BplpYT8K657VV.Bh5IzJlxwisuAv75XTNVdYFOYJhBvgsO0x6_NuCDoD4RYL5rSQnsukFH94DkOgrBboiiL5xepfcl7_tSYNitg1pg55qyamhEmtERJlTYtbKtx_QY.w.Y1BnNzJQ9Al5SNxjnSww7VneK2g.c1SvyvkxMC6OPHcei.WjGS6mMRQ5NUHbmt_1tsOrwEPfNuN21OpMZjvOSpdIgY.AqHgqNMyedSCmdLqhmxAeT9HxrFg3TgMu_1C_EgFiveYJV9E193Yg0KOh8nhhRsdW9qSla7jYd4jfYWDFH7gZwNFUbNinUhxMcDASFfLEK0y1xTv4yVec30ERDN_OYf.xm9uV2h7aAriT0tZ.I8pqXNw_i.Wf4lmNucxGGbHDou0VZzyJltEI1KtxW5.qldtuvJRdrZUwHcllUunyysFs2LqQpyUCRXNZJyTWax2GcYcK7g3XqOF9dccYzKlAn826PZl5C05SQC5ClknFW3SAsK39a5OBu2kZQyX4BVsICeihOXU4m70vh99yp2KBHb7UlpzgFTM.F3TDBfapQbCRmWEBLZvWFDUI6Inyb_ybyqKQCqJEHL26K3HLBmdZcV88EYJ4BcQ',mdrd: 'jChIQf0LyyL1NL_mO1w9HjoMh9Tkq5LHwWNGJAF.iBk-1767455896-1.2.1.1-YbxQsZJ6g9Rj5T1DTTQSpkFK2i5rZP2oSsUn2_pzlecyZzQoZ1.aDkdi1WA2dh_W0wxbpsOHaeAe9Vhrr1FX.3RXAEFBmiREdT79IXrMx12R7ZBc_6sILYDXRv.qsoo67IeectgTHjrGtrJ6uUJ.aGg94l0B9IC9HM0pj4A_Vq0bKjYrvwnvFSqU9TDu7qkrwbwpZTGHraY0fZr45z5TOathn3rZxbxXfnSoCa1p6LERTR8sp92C99CIFCqW.2enKjvKBq48PrAYnVD5Ip4glABSOb1Wiwq64d.nMCOYPVSvu7YQiOOBjEibYc8xjIPjNa.tIUCVzUBzS4RHIsDAKLsSt4OJgY7fnRt2G5.iCW..4O58TsBZ
Open service 172.64.154.71:80 · wrox.com
2026-01-03 15:58
HTTP/1.1 301 Moved Permanently Date: Sat, 03 Jan 2026 15:58:16 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 03 Jan 2026 16:58:16 GMT Location: https://wrox.com/ Set-Cookie: __cf_bm=dLznEPPgXvL1Cf5eVSx7oXC5R3XBG8TDcZ2KEwSsHXM-1767455896-1.0.1.1-HFCLQl783HhyID0xX1eVaBlV56ZKKDqDPfA.ucTHNqJ3suoaxa7BV0s0r7M_JFKTx63ZOi_VO_mb8Cm9m40tPJsAjwkUN3Eg8BEPNvApfdI; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9b83b25ba9ca8ed3-FRA Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4404::6812:21b9:80 · javascript-frameworks.wrox.com
2026-01-03 15:58
HTTP/1.1 301 Moved Permanently Date: Sat, 03 Jan 2026 15:58:16 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 03 Jan 2026 16:58:16 GMT Location: https://javascript-frameworks.wrox.com/ Set-Cookie: __cf_bm=RjQVIYAtPkPcCkztVcOTYKx6Xkv3A5EaGbxZPgJtqEg-1767455896-1.0.1.1-URe5YRAxnrUbTjATkKaQKb14BJOCgTMSg1lUx_gIpnSHvg2JMEX8oLbwBJMPCK_2u9ME4BLld88akI3Pe0bLgDcJT9K6XoL2D8O0Yxoz4l0; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9b83b25b7c821c8d-AMS Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 2606:4700:4406::ac40:9a47:80 · wrox.com
2026-01-03 15:58
HTTP/1.1 301 Moved Permanently Date: Sat, 03 Jan 2026 15:58:16 GMT Content-Type: text/html Content-Length: 167 Connection: close Cache-Control: max-age=3600 Expires: Sat, 03 Jan 2026 16:58:16 GMT Location: https://wrox.com/ Set-Cookie: __cf_bm=FO.HVcMbUWMSg8PJmQxnkBe_0uGxyoei4cmJh0nNDJg-1767455896-1.0.1.1-THmQ3xEztMmRIDkSdLHaK_hS4OGZkMDF87_.F5DaXzt6oooYVzlIJN60K4rhGSOmhdUTWBQ0GmofxFbg8T7BSIjyMiI3UhEHtKZLGWg6gcs; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly X-Content-Type-Options: nosniff Server: cloudflare CF-RAY: 9b83b25b7bc80e50-AMS Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>cloudflare</center> </body> </html>
Open service 104.18.33.185:8443 · wrox.com
2026-01-03 15:58
HTTP/1.1 403 Forbidden
Date: Sat, 03 Jan 2026 15:58:16 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 8573
Connection: close
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cf-mitigated: challenge
critical-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, Sec-CH-UA-Full-Version, Sec-CH-UA-Mobile, Sec-CH-UA-Model, Sec-CH-UA-Platform-Version, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Platform, Sec-CH-UA, UA-Bitness, UA-Arch, UA-Full-Version, UA-Mobile, UA-Model, UA-Platform-Version, UA-Platform, UA
cross-origin-embedder-policy: require-corp
cross-origin-opener-policy: same-origin
cross-origin-resource-policy: same-origin
origin-agent-cluster: ?1
permissions-policy: accelerometer=(),browsing-topics=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),interest-cohort=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=()
referrer-policy: same-origin
server-timing: chlray;desc="9b83b25b7e57dcc6"
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Set-Cookie: __cf_bm=Q.Af4uifOXVLFlDgpwMNXB3zoOXk2XnloHoO7CWtAlA-1767455896-1.0.1.1-wILlVJUORgQ6exgCgBI337nJwDf2FoRARGFdJ9umg49Nn2Qt.YuM2w9Wk1v74pzw0H70GI3qby750m4LdEo4xHwR_8I5XrwDF8htSoQzL94; path=/; expires=Sat, 03-Jan-26 16:28:16 GMT; domain=.wrox.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
Server: cloudflare
CF-RAY: 9b83b25b7e57dcc6-FRA
Page title: Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'wrox.com',cType: 'managed',cRay: '9b83b25b7e57dcc6',cH: '1E4OH3UypSrnGXmR9EO_AW8QTX7Wmjqlj4adtxnra1w-1767455896-1.2.1.1-T4idMNlLeDwqRKpKopw6FvWpfiRPhQvzWeec3DM_DfOZHC5JFCveQ_2ViyGACrev',cUPMDTk:"\/?__cf_chl_tk=Iv199u_En.uACgOVHgl_sbryS6Rv1bX.iPRyK8uMH40-1767455896-1.0.1.1-xiLWByUqxtewxjPApWex4Ew2HQXqYe5ikEaqWn1XKUE",cFPWv: 'g',cITimeS: '1767455896',cTplC:0,cTplV:5,cTplB: '0',fa:"\/?__cf_chl_f_tk=Iv199u_En.uACgOVHgl_sbryS6Rv1bX.iPRyK8uMH40-1767455896-1.0.1.1-xiLWByUqxtewxjPApWex4Ew2HQXqYe5ikEaqWn1XKUE",md: 'FvwBULDi2Q8nXrbfK4_Y4SLow7kdAgFClLvF2HBGUU0-1767455896-1.2.1.1-aMVXVTxHkFpjee3M7WvBsex6HjaQJDWnvOMabITkjVJZPO_THkKoOTe82X8d43I63Hsx5aBFy8bCqsedR0PNb5v3bF_1eC7nkE_pz7bjIGJMMMsELqHv5i4NgFKK8k6AMicKmMxXYuweSfIkY6i8XEzwSfmyx4TEuXUcOC180kQfA6y6ztsSLA6pEofv8x1KzUCRwxz1Z5B4S.WB8KKR9EOqMnQ4CNce1Dx3ZNT6wNz1GYxDuQq4ojBOhIfDKRogqhSB6l0Jos6b83pnFMKp8Q5Jy83M8lcZ2SEbxbY0xI80sDs6esRaPFKzMCWI4CFiRQSjXB_jfP3XjF3NmxpBRsyzSiHxnZPshnEvQncNDq7kVpZq9CmazksNibmjpalp39HOQ0UcjkTYF6b8Go31znRQCpJGtnTKRCn6Q_5TAmYqv2T032rFqYrgBEIxmxJLyquWCh32GYv2f7ejEQMS8fPtMHtuxM0E6qntJAB2cnNIJiS6zqYV11SFyDOspnYVKZ8QZSK57zmNvX_cOSEij9ydql6roL0ttn6qS_9lENbcSojusKMuI0IUHdYY.LGZoWCv6UR4vboFepcjKACsbu_2PRwDx5ZQkSBMYbcBtIKPXf5OD2Lgav6MkHynw.qNvIW0vePNLt3nY7WWuQ18LDlbjBSnJ5YVBeH.X2uv17pCf.G_lPZ5NKz1VOIk6x2ess5YpzMT5Fb9plV4mQJrhB9JYY_BPVP4.okzpHVoLX30gxvFW5fhad33OfThtva6kaYJYylQ6zk48HdPri7mEovug4XqzwJKsDzvUBbMKAmvNUNE0k9NPKiVHGUVnHNWWn0AL0hUrkjgMJpSKir41YDMa_F18xr_CAYVaRk6vKRZWMNaEjPh9bASJAOS.oIFvI1XgUMQ.H9erE.v2P9OZgGIatG2nU_PvsDzvmkGYBJd8ICcuiNXVpnCPejK0kxsSBNV6rlGKTo0ar8n8NVU0SEDU.T_y218noTZ8Ix7b7k',mdrd: 'vuLpTTcJWSJOXXDtdiHO.VAa7ao738IyQCxmvFPNkFY-1767455896-1.2.1.1-5fiYEHx984eIkYjE3m.9WeCWth5dEPq76WB.7F5MCgLawHziYOPLBH8AgWm7FzKwLQkAV2ZvP0MKewqIsPmN0SPxd1abn9w3j926SqcS1Acgta7TqLa4TrypwU_5oVJd4nzkSeMbLjVt9dO5Q.3zcuL024FHx8aLlC0ttP3kTqtdAxelv.u5wIRSLJF48T0eiR0N0AZUrqsyOpFaNmVJtqqacrWtsfDjOBHGV_nsoO_aAvDvBTzSs7XGfH_BNJdhs3d73OpFGsSgN0UWwTClLf7l5AuljpDB2CV_SKUHyWxcoI9spsvevIlI00q3rP6HWxSOJK.WUakKK7goUPD6rjVyxi4cheUJ5Q4l5xkoeWaNQkZGyOYsRwsYV2DB6bkojLB7HjK5nAVIHXmZM2KHM1cfdw4yRRs