specs for user favs scanning

This commit is contained in:
Dylan Knutson
2025-02-19 20:37:22 +00:00
parent 27253ff50b
commit 32e927dcce
25 changed files with 7018 additions and 212 deletions

View File

@@ -225,6 +225,16 @@ task fix_buggy_fa_posts: :environment do
end
end
task enqueue_fa_posts_missing_files: %i[environment set_logger_stdout] do
Domain::Post::FaPost
.where(state: "ok")
.where
.missing(:file)
.find_each(order: :desc) do |post|
Domain::Fa::Job::ScanPostJob.perform_later(post:)
end
end
task fix_e621_post_files: :environment do
query = Domain::Post::E621Post.where(state: "ok").where.missing(:files)
limit = ENV["limit"]&.to_i
@@ -253,7 +263,15 @@ task perform_good_jobs: :environment do
relation =
if job_id
GoodJob::Job.where(id: job_id)
job =
GoodJob::Job.find_by(id: job_id) ||
GoodJob::Execution.find_by(id: job_id)&.job
if job.nil?
puts "no job found with id #{job_id}"
exit 1
end
puts "found job with id #{job.id}" if job.id != job_id
GoodJob::Job.where(id: job.id)
else
GoodJob::Job.queued.where(job_class: job_class).order(created_at: :asc)
end

View File

@@ -20,3 +20,4 @@
- [ ] store deep update json on inkbunny posts
- [ ] limit number of users, or paginate for "users who favorited this post" page
- [ ] manual good job runner does not indicate if the job threw an exception - check return value of #perform, maybe?
- [ ] FA user favs job should stop when in incremental mode when all posts on the page are already known favs (e.g. pages with only 47 posts are not a false positive)

View File

@@ -104,7 +104,7 @@ module Domain::UsersHelper
can_view_timestamps = policy(user).view_page_scanned_at_timestamps?
if user.is_a?(Domain::User::FaUser) && can_view_timestamps
rows << ["Favorites", time_ago_or_never(user.scanned_gallery_at)]
rows << ["Favorites", time_ago_or_never(user.scanned_favs_at)]
rows << ["Gallery scanned", time_ago_or_never(user.scanned_gallery_at)]
rows << ["Page scanned", time_ago_or_never(user.scanned_page_at)]
elsif user.is_a?(Domain::User::E621User) && can_view_timestamps

View File

@@ -92,12 +92,12 @@ class Domain::Fa::Job::Base < Scraper::JobBase
unless user.due_for_favs_scan?
if force_scan?
logger.warn(
"scanned #{DateHelper.time_ago_in_words(user.scanned_favs_at).bold} ago - force scanning",
"scanned favs #{DateHelper.time_ago_in_words(user.scanned_favs_at).bold} ago - force scanning",
)
return true
else
logger.warn(
"scanned #{DateHelper.time_ago_in_words(user.scanned_favs_at).bold} ago - skipping",
"scanned favs #{DateHelper.time_ago_in_words(user.scanned_favs_at).bold} ago - skipping",
)
return false
end

View File

@@ -3,83 +3,91 @@ class Domain::Fa::Job::FavsJob < Domain::Fa::Job::Base
include HasBulkEnqueueJobs
queue_as :fa_user_favs
USERS_PER_FULL_PAGE = T.let(Rails.env.test? ? 9 : 190, Integer)
FAVED_POSTS_PER_PAGE_THRESHOLD = T.let(Rails.env.test? ? 2 : 36, Integer)
MAX_PAGE_NUMBER = 2000
sig { params(args: T.untyped).void }
def initialize(*args)
super(*T.unsafe(args))
@seen_post_ids = T.let(Set.new, T::Set[Integer])
@page_id = T.let(nil, T.nilable(String))
@page_number = T.let(0, Integer)
@total_items_seen = T.let(0, Integer)
@last_page_post_ids = T.let(Set.new, T::Set[Integer])
@use_http_cache = T.let(false, T::Boolean)
@request_number = T.let(0, Integer)
end
sig { override.params(args: T::Hash[Symbol, T.untyped]).returns(T.untyped) }
def perform(args)
user = user_from_args!(create_if_missing: true)
full_scan = !!args[:full_scan]
@use_http_cache = !!args[:use_http_cache]
user = user_from_args!(create_if_missing: true)
logger.push_tags(make_arg_tag(user))
return unless user_due_for_favs_scan?(user)
max_page_number =
T.let([((user.num_favorites || 0) + 1) / 48, 100].max, Integer)
logger.info make_tag("user.num_favorites", user.num_favorites)
logger.info make_tag("max favs page number", max_page_number)
existing_faved_ids =
T.let(Set.new(user.user_post_favs.pluck(:post_id)), T::Set[Integer])
to_add = T.let(Set.new, T::Set[Integer])
while true
ret = scan_page(user: user)
break if ret == :break
return if ret == :stop
unless full_scan
new_favs = @last_page_post_ids - existing_faved_ids
if new_favs.empty?
user.scanned_favs_at = Time.zone.now
to_add += @seen_post_ids - existing_faved_ids
logger.info format_tags(
"partial scan",
make_tag("add posts", to_add.size),
)
ReduxApplicationRecord.transaction do
to_add.each_slice(1000) do |slice|
Domain::UserPostFav.upsert_all(
slice.map { |id| { user_id: user.id, post_id: id } },
unique_by: %i[user_id post_id],
)
end
user.save!
end
logger.info format_tags(
"reached end of unobserved favs",
"stopping scan",
)
return
end
end
break if @page_number > max_page_number
@page_number += 1
unless user_due_for_favs_scan?(user)
logger.warn(format_tags("user not due for favs scan, skipping"))
return
end
to_add = @seen_post_ids - existing_faved_ids
logger.info format_tags(
"calc change favs",
make_tag("add posts", to_add.size),
)
faved_post_ids = T.let(Set.new, T::Set[Integer])
existing_faved_post_ids =
T.let(Set.new(user.user_post_favs.pluck(:post_id)), T::Set[Integer])
logger.info(
format_tags(
make_tag("server num favorites", user.num_favorites),
make_tag("existing favorites", existing_faved_post_ids.size),
make_tag("max page number", MAX_PAGE_NUMBER),
),
)
while true
ret = scan_next_page(user: user)
return if ret.is_a?(ScanPageResult::Stop)
faved_post_ids += ret.faved_post_ids_on_page
new_faved_post_ids_on_page =
ret.faved_post_ids_on_page - existing_faved_post_ids
logger.info(
format_tags(
make_tag("request number", @request_number),
make_tag("new favs", new_faved_post_ids_on_page.size),
make_tag("created post models", ret.posts_created_ids.size),
),
)
if !full_scan &&
(new_faved_post_ids_on_page.size < FAVED_POSTS_PER_PAGE_THRESHOLD)
logger.info(format_tags("incremenetal scan, stopping"))
break
end
unless ret.keep_scanning
logger.info(format_tags("no next favs page, stopping"))
break
end
if @request_number > MAX_PAGE_NUMBER
logger.warn(
format_tags(
"request number(#{@request_number}) > max page number(#{MAX_PAGE_NUMBER})",
),
)
break
end
@request_number += 1
end
faved_post_ids_to_add = faved_post_ids - existing_faved_post_ids
upsert_faved_post_ids(user:, post_ids: faved_post_ids_to_add)
ensure
user.save! if user
end
private
sig { params(user: Domain::User::FaUser, post_ids: T::Set[Integer]).void }
def upsert_faved_post_ids(user:, post_ids:)
ReduxApplicationRecord.transaction do
if to_add.any?
to_add.each_slice(1000) do |slice|
if post_ids.any?
post_ids.each_slice(1000) do |slice|
Domain::UserPostFav.upsert_all(
slice.map { |id| { user_id: user.id, post_id: id } },
unique_by: %i[user_id post_id],
@@ -88,29 +96,35 @@ class Domain::Fa::Job::FavsJob < Domain::Fa::Job::Base
end
user.scanned_favs_at = Time.zone.now
user.save!
end
logger.info format_tags(
"updated favs list",
make_tag("add posts", user.user_post_favs.count),
)
ensure
user.save! if user
logger.info(format_tags(make_tag("total new favs", post_ids.size)))
end
private
module ScanPageResult
extend T::Sig
sig { params(user: Domain::User::FaUser).returns(T.nilable(Symbol)) }
def scan_page(user:)
ret = nil
class Stop < T::Struct
end
class Ok < T::Struct
include T::Struct::ActsAsComparable
const :faved_post_ids_on_page, T::Set[Integer]
const :posts_created_ids, T::Set[Integer]
const :keep_scanning, T::Boolean
end
Result = T.type_alias { T.any(Stop, Ok) }
end
sig { params(user: Domain::User::FaUser).returns(ScanPageResult::Result) }
def scan_next_page(user:)
url =
if @page_id
"https://www.furaffinity.net/favorites/#{user.url_name}/#{@page_id}/next"
else
"https://www.furaffinity.net/favorites/#{user.url_name}/"
end
response = http_client.get(url, use_http_cache: @use_http_cache)
response = http_client.get(url)
if response.status_code != 200
fatal_error(
"http #{response.status_code.to_s.red.bold}, " +
@@ -123,57 +137,46 @@ class Domain::Fa::Job::FavsJob < Domain::Fa::Job::Base
response,
)
logger.error(format_tags("account disabled / not found", "aborting"))
return :stop
return ScanPageResult::Stop.new
end
page = Domain::Fa::Parser::Page.new(response.body)
fatal_error("not a favs listing page") unless page.probably_listings_page?
submissions = page.submissions_parsed
@page_id = page.favorites_next_button_id
ret = :break if @page_id.nil?
@total_items_seen += submissions.length
posts_to_create_hashes = []
existing_fa_id_to_post_id =
Domain::Post::FaPost
.where(fa_id: submissions.map(&:id))
.pluck(:fa_id, :id)
.to_h
created_posts =
submissions.map do |submission_parser_helper|
post =
Domain::Post::FaPost.find_or_initialize_by_submission_parser(
submission_parser_helper,
first_seen_log_entry: response.log_entry,
)
if post.new_record?
post.enqueue_job_after_save(
Domain::Fa::Job::ScanPostJob,
{ post:, caused_by_entry: causing_log_entry },
)
end
post
created_posts = T.let([], T::Array[Domain::Post::FaPost])
submissions.each do |submission_parser_helper|
post =
Domain::Post::FaPost.find_or_initialize_by_submission_parser(
submission_parser_helper,
first_seen_log_entry: response.log_entry,
)
if post.new_record?
post.enqueue_job_after_save(
Domain::Fa::Job::ScanPostJob,
{ post:, caused_by_entry: causing_log_entry },
)
created_posts << post
end
end
bulk_enqueue_jobs { created_posts.each(&:save!) }
@last_page_post_ids = Set.new
created_posts.each do |post|
@seen_post_ids.add(T.must(post.id))
@last_page_post_ids.add(T.must(post.id))
end
existing_fa_id_to_post_id.values.each do |id|
@seen_post_ids.add(id)
@last_page_post_ids.add(id)
end
last_page_post_ids = T.let(Set.new, T::Set[Integer])
created_posts.each { |post| last_page_post_ids.add(T.must(post.id)) }
existing_fa_id_to_post_id.values.each { |id| last_page_post_ids.add(id) }
logger.info format_tags(
make_tag("page", @page_number),
make_tag("posts", submissions.length),
make_tag("created", posts_to_create_hashes.size),
)
ret
ScanPageResult::Ok.new(
faved_post_ids_on_page: last_page_post_ids,
posts_created_ids: created_posts.map(&:id).compact.to_set,
keep_scanning: @page_id.present?,
)
end
end

View File

@@ -5,8 +5,9 @@ class Domain::Fa::Job::ScanUserUtils
T.let(
[
/User ".+" has voluntarily disabled access/,
/User ".+" was not found in our database./,
/User ".+" was not found in our database\./,
/The page you are trying to reach is currently pending deletion/,
/The username ".+" could not be found\./,
],
T::Array[Regexp],
)
@@ -19,7 +20,7 @@ class Domain::Fa::Job::ScanUserUtils
end
def self.user_disabled_or_not_found?(user, response)
if DISABLED_PAGE_PATTERNS.any? { |pattern| response.body =~ pattern }
user.state = "error"
user.state_account_disabled!
user.page_scan_error =
"account disabled or not found, see last_user_page_id"
user.last_user_page_id = response.log_entry.id

View File

@@ -3,6 +3,7 @@ class Domain::Fa::Job::UserGalleryJob < Domain::Fa::Job::Base
queue_as :fa_user_gallery
MAX_PAGE_NUMBER = 350
LISTINGS_PER_PAGE_THRESHOLD = 72
class Folder < T::ImmutableStruct
include T::Struct::ActsAsComparable
@@ -36,7 +37,7 @@ class Domain::Fa::Job::UserGalleryJob < Domain::Fa::Job::Base
if (num_submissions = user.num_submissions) &&
(scanned_page_at = user.scanned_page_at) &&
(scanned_page_at > 3.days.ago)
@max_page_number = (num_submissions * 72) + 3
@max_page_number = [@max_page_number, (num_submissions * 72) + 3].max
end
if !user.due_for_gallery_scan? && !force_scan?
@@ -58,12 +59,17 @@ class Domain::Fa::Job::UserGalleryJob < Domain::Fa::Job::Base
until (@folders - @visited).empty?
folder = (@folders - @visited).first
@visited.add folder
break if scan_folder(user, folder) == :break
should_break = T.let(false, T::Boolean)
logger.tagged(make_tag("folder.title", folder.title)) do
should_break = scan_folder(user, folder) == :break
end
break if should_break
end
user.last_gallery_page_id = first_log_entry&.id
user.scanned_gallery_at = Time.current
user.save!
ensure
user.save! if user
end
private
@@ -92,26 +98,19 @@ class Domain::Fa::Job::UserGalleryJob < Domain::Fa::Job::Base
response = http_client.get(page_url)
log_entry = response.log_entry
if response.status_code == 200
enqueue_jobs_from_found_links(
log_entry,
suppress_jobs: [{ job: self.class, url_name: user.url_name }],
)
end
fatal_error("failed to scan folder page") if response.status_code != 200
self.first_log_entry ||= log_entry
if response.status_code != 200
fatal_error(
"http #{response.status_code}, log entry #{response.log_entry.id}",
)
end
enqueue_jobs_from_found_links(
log_entry,
suppress_jobs: [{ job: self.class, url_name: user.url_name }],
)
if Domain::Fa::Job::ScanUserUtils.user_disabled_or_not_found?(
user,
response,
)
logger.error("account disabled / not found, abort")
user.state = "account_disabled"
return :break
end
@@ -132,7 +131,13 @@ class Domain::Fa::Job::UserGalleryJob < Domain::Fa::Job::Base
total_num_new_posts_seen += listing_page_stats.new_seen
total_num_posts_seen += listing_page_stats.total_seen
if force_scan?
logger.info format_tags(
make_tag("page_number", page_number),
make_tag("new on page", listing_page_stats.new_seen),
make_tag("total on page", listing_page_stats.total_seen),
)
if scan_folders?
page.submission_folders.each do |sf|
@folders.add?(
Folder.new(href: T.must(sf[:href]), title: T.must(sf[:title])),
@@ -142,10 +147,21 @@ class Domain::Fa::Job::UserGalleryJob < Domain::Fa::Job::Base
page_number += 1
break if listing_page_stats.new_seen == 0 && !@go_until_end
break if listing_page_stats.total_seen < 72
break if listing_page_stats.total_seen < LISTINGS_PER_PAGE_THRESHOLD
end
logger.info "folder `#{folder.title.bold}` complete - #{total_num_new_posts_seen.to_s.bold} new, #{total_num_posts_seen.to_s.bold} total"
logger.info format_tags(
"complete",
make_tag("num_new", total_num_new_posts_seen),
make_tag("num_total", total_num_posts_seen),
)
:continue
end
private
sig { returns(T::Boolean) }
def scan_folders?
!!arguments[0][:scan_folders]
end
end

View File

@@ -18,35 +18,27 @@ class Scraper::JobBase < ApplicationJob
@http_client = http_client
end
sig do
params(url: String, use_http_cache: T::Boolean).returns(
Scraper::HttpClient::Response,
)
end
def get(url, use_http_cache: false)
sig { params(url: String).returns(Scraper::HttpClient::Response) }
def get(url)
around_request(
proc do
@http_client.get(
url,
caused_by_entry: @job.causing_log_entry,
use_http_cache: use_http_cache,
use_http_cache: @job.use_http_cache?,
)
end,
)
end
sig do
params(url: String, use_http_cache: T::Boolean).returns(
Scraper::HttpClient::Response,
)
end
def post(url, use_http_cache: false)
sig { params(url: String).returns(Scraper::HttpClient::Response) }
def post(url)
around_request(
proc do
@http_client.post(
url,
caused_by_entry: @job.causing_log_entry,
use_http_cache: use_http_cache,
use_http_cache: @job.use_http_cache?,
)
end,
)
@@ -99,6 +91,11 @@ class Scraper::JobBase < ApplicationJob
!!arguments[0][:force_scan]
end
sig { returns(T::Boolean) }
def use_http_cache?
!!arguments[0][:use_http_cache]
end
# The log entry that caused this job to be enqueued.
sig { returns(T.nilable(HttpLogEntry)) }
def caused_by_entry

View File

@@ -246,8 +246,7 @@ class Domain::MigrateToDomain
FROM domain_fa_users old_users
JOIN domain_users new_users
ON new_users.json_attributes->>'url_name' = old_users.url_name
WHERE new_users.type = 'Domain::User::FaUser'
AND new_users.json_attributes->>'migrated_user_favs_at' IS NULL;
WHERE new_users.type = 'Domain::User::FaUser';
CREATE INDEX idx_user_map_old_user_id ON user_map(old_user_id, new_user_id) TABLESPACE mirai;
CREATE INDEX idx_user_map_new_user_id ON user_map(new_user_id, old_user_id) TABLESPACE mirai;
ANALYZE user_map;
@@ -319,8 +318,8 @@ class Domain::MigrateToDomain
v_progress := (v_processed_count::numeric / v_total_count::numeric) * 100;
-- Log progress
RAISE NOTICE 'Processed users % of % (Progress: % %%)',
v_processed_count, v_total_count, ROUND(v_progress, 2);
RAISE NOTICE 'Processed users % of % - user ids: % (Progress: % %%)',
v_processed_count, v_total_count, v_batch, ROUND(v_progress, 2);
-- COMMIT;
END LOOP;

View File

@@ -41,13 +41,13 @@ class Domain::User::FaUser < Domain::User
class_name: "::HttpLogEntry",
optional: true
enum :state,
{ ok: "ok", account_disabled: "account_disabled", error: "error" },
prefix: :state
validates :name, presence: true
validates :url_name, presence: true
validates :state,
presence: true,
inclusion: {
in: %w[ok account_disabled error],
}
validates :state, presence: true
validates :account_status,
inclusion: {

View File

@@ -79,7 +79,7 @@ ActiveSupport.on_load(:good_job_application_controller) do
end
ActiveSupport.on_load(:good_job_base_record) do
class GoodJob::Execution
class GoodJob::Execution < GoodJob::BaseRecord
has_one :log_lines_collection,
class_name: "::GoodJobExecutionLogLinesCollection",
dependent: :destroy,

View File

@@ -170,12 +170,12 @@ class Domain::PostGroupJoin
sig do
params(
args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])
args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]
).returns(::Domain::PostGroupJoin)
end
sig do
params(
args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]
args: T::Array[T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]]
).returns(T::Enumerable[::Domain::PostGroupJoin])
end
sig do
@@ -762,16 +762,20 @@ class Domain::PostGroupJoin
sig { void }
def group_id_will_change!; end
sig { returns(T.untyped) }
sig { returns([T.nilable(::Integer), T.nilable(::Integer)]) }
def id; end
sig { params(value: T.untyped).returns(T.untyped) }
sig do
params(
value: [T.nilable(::Integer), T.nilable(::Integer)]
).returns([T.nilable(::Integer), T.nilable(::Integer)])
end
def id=(value); end
sig { returns(T::Boolean) }
def id?; end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_before_last_save; end
sig { returns(T.untyped) }
@@ -780,28 +784,44 @@ class Domain::PostGroupJoin
sig { returns(T::Boolean) }
def id_came_from_user?; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def id_change; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def id_change_to_be_saved; end
sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) }
sig do
params(
from: [T.nilable(::Integer), T.nilable(::Integer)],
to: [T.nilable(::Integer), T.nilable(::Integer)]
).returns(T::Boolean)
end
def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_in_database; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def id_previous_change; end
sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) }
sig do
params(
from: [T.nilable(::Integer), T.nilable(::Integer)],
to: [T.nilable(::Integer), T.nilable(::Integer)]
).returns(T::Boolean)
end
def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_previously_was; end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_was; end
sig { void }
@@ -930,7 +950,9 @@ class Domain::PostGroupJoin
sig { returns(T::Boolean) }
def saved_change_to_group_id?; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def saved_change_to_id; end
sig { returns(T::Boolean) }

View File

@@ -175,12 +175,12 @@ class Domain::PostGroupJoin::E621PoolJoin
sig do
params(
args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])
args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]
).returns(::Domain::PostGroupJoin::E621PoolJoin)
end
sig do
params(
args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]
args: T::Array[T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]]
).returns(T::Enumerable[::Domain::PostGroupJoin::E621PoolJoin])
end
sig do
@@ -755,16 +755,20 @@ class Domain::PostGroupJoin::E621PoolJoin
sig { void }
def group_id_will_change!; end
sig { returns(T.untyped) }
sig { returns([T.nilable(::Integer), T.nilable(::Integer)]) }
def id; end
sig { params(value: T.untyped).returns(T.untyped) }
sig do
params(
value: [T.nilable(::Integer), T.nilable(::Integer)]
).returns([T.nilable(::Integer), T.nilable(::Integer)])
end
def id=(value); end
sig { returns(T::Boolean) }
def id?; end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_before_last_save; end
sig { returns(T.untyped) }
@@ -773,28 +777,44 @@ class Domain::PostGroupJoin::E621PoolJoin
sig { returns(T::Boolean) }
def id_came_from_user?; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def id_change; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def id_change_to_be_saved; end
sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) }
sig do
params(
from: [T.nilable(::Integer), T.nilable(::Integer)],
to: [T.nilable(::Integer), T.nilable(::Integer)]
).returns(T::Boolean)
end
def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_in_database; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def id_previous_change; end
sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) }
sig do
params(
from: [T.nilable(::Integer), T.nilable(::Integer)],
to: [T.nilable(::Integer), T.nilable(::Integer)]
).returns(T::Boolean)
end
def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_previously_was; end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_was; end
sig { void }
@@ -1019,7 +1039,9 @@ class Domain::PostGroupJoin::E621PoolJoin
sig { returns(T::Boolean) }
def saved_change_to_group_id?; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def saved_change_to_id; end
sig { returns(T::Boolean) }

View File

@@ -175,12 +175,12 @@ class Domain::PostGroupJoin::InkbunnyPoolJoin
sig do
params(
args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])
args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]
).returns(::Domain::PostGroupJoin::InkbunnyPoolJoin)
end
sig do
params(
args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]
args: T::Array[T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])]]
).returns(T::Enumerable[::Domain::PostGroupJoin::InkbunnyPoolJoin])
end
sig do
@@ -814,16 +814,20 @@ class Domain::PostGroupJoin::InkbunnyPoolJoin
sig { void }
def group_id_will_change!; end
sig { returns(T.untyped) }
sig { returns([T.nilable(::Integer), T.nilable(::Integer)]) }
def id; end
sig { params(value: T.untyped).returns(T.untyped) }
sig do
params(
value: [T.nilable(::Integer), T.nilable(::Integer)]
).returns([T.nilable(::Integer), T.nilable(::Integer)])
end
def id=(value); end
sig { returns(T::Boolean) }
def id?; end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_before_last_save; end
sig { returns(T.untyped) }
@@ -832,28 +836,44 @@ class Domain::PostGroupJoin::InkbunnyPoolJoin
sig { returns(T::Boolean) }
def id_came_from_user?; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def id_change; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def id_change_to_be_saved; end
sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) }
sig do
params(
from: [T.nilable(::Integer), T.nilable(::Integer)],
to: [T.nilable(::Integer), T.nilable(::Integer)]
).returns(T::Boolean)
end
def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_in_database; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def id_previous_change; end
sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) }
sig do
params(
from: [T.nilable(::Integer), T.nilable(::Integer)],
to: [T.nilable(::Integer), T.nilable(::Integer)]
).returns(T::Boolean)
end
def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_previously_was; end
sig { returns(T.untyped) }
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def id_was; end
sig { void }
@@ -1078,7 +1098,9 @@ class Domain::PostGroupJoin::InkbunnyPoolJoin
sig { returns(T::Boolean) }
def saved_change_to_group_id?; end
sig { returns(T.nilable([T.untyped, T.untyped])) }
sig do
returns(T.nilable([[T.nilable(::Integer), T.nilable(::Integer)], [T.nilable(::Integer), T.nilable(::Integer)]]))
end
def saved_change_to_id; end
sig { returns(T::Boolean) }

View File

@@ -8,6 +8,7 @@
class Domain::User::FaUser
include GeneratedAssociationMethods
include GeneratedAttributeMethods
include EnumMethodsModule
extend CommonRelationMethods
extend GeneratedRelationMethods
@@ -51,6 +52,9 @@ class Domain::User::FaUser
).returns(::Domain::User::FaUser)
end
def new(attributes = nil, &block); end
sig { returns(T::Hash[T.any(String, Symbol), String]) }
def states; end
end
module CommonRelationMethods
@@ -442,6 +446,26 @@ class Domain::User::FaUser
def third_to_last!; end
end
module EnumMethodsModule
sig { void }
def state_account_disabled!; end
sig { returns(T::Boolean) }
def state_account_disabled?; end
sig { void }
def state_error!; end
sig { returns(T::Boolean) }
def state_error?; end
sig { void }
def state_ok!; end
sig { returns(T::Boolean) }
def state_ok?; end
end
module GeneratedAssociationMethods
sig { returns(T.nilable(::Domain::UserAvatar)) }
def avatar; end
@@ -732,6 +756,15 @@ class Domain::User::FaUser
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def none(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def not_state_account_disabled(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def not_state_error(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def not_state_ok(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def null_relation?(*args, &blk); end
@@ -791,6 +824,15 @@ class Domain::User::FaUser
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def select(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def state_account_disabled(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def state_error(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def state_ok(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) }
def strict_loading(*args, &blk); end
@@ -2464,7 +2506,7 @@ class Domain::User::FaUser
sig { returns(T.nilable(::String)) }
def state; end
sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) }
sig { params(value: T.nilable(T.any(::String, ::Symbol))).returns(T.nilable(T.any(::String, ::Symbol))) }
def state=(value); end
sig { returns(T::Boolean) }
@@ -2485,7 +2527,12 @@ class Domain::User::FaUser
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def state_change_to_be_saved; end
sig { params(from: T.nilable(::String), to: T.nilable(::String)).returns(T::Boolean) }
sig do
params(
from: T.nilable(T.any(::String, ::Symbol)),
to: T.nilable(T.any(::String, ::Symbol))
).returns(T::Boolean)
end
def state_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::String)) }
@@ -2494,7 +2541,12 @@ class Domain::User::FaUser
sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) }
def state_previous_change; end
sig { params(from: T.nilable(::String), to: T.nilable(::String)).returns(T::Boolean) }
sig do
params(
from: T.nilable(T.any(::String, ::Symbol)),
to: T.nilable(T.any(::String, ::Symbol))
).returns(T::Boolean)
end
def state_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::String)) }
@@ -2821,6 +2873,15 @@ class Domain::User::FaUser
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def none(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def not_state_account_disabled(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def not_state_error(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def not_state_ok(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def null_relation?(*args, &blk); end
@@ -2880,6 +2941,15 @@ class Domain::User::FaUser
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def select(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def state_account_disabled(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def state_error(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def state_ok(*args, &blk); end
sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) }
def strict_loading(*args, &blk); end

View File

@@ -5,12 +5,19 @@ class HttpClientMockHelpers
extend RSpec::Mocks::ExampleMethods
extend RSpec::Matchers
def self.init_http_client_mock(http_client_mock, requests)
def self.init_http_client_mock(http_client_mock, requests, any_order: false)
if any_order
init_any_order(http_client_mock, requests)
else
init_ordered(http_client_mock, requests)
end
end
def self.init_ordered(http_client_mock, requests)
log_entries = []
requests.each do |request|
sha256 = Digest::SHA256.digest(request[:contents])
log_entry =
build(
:http_log_entry,
@@ -32,7 +39,6 @@ class HttpClientMockHelpers
)
log_entry.save!
log_entries << log_entry
caused_by_entry = nil
if request[:caused_by_entry_idx]
caused_by_entry = log_entries[request[:caused_by_entry_idx]]
@@ -61,4 +67,47 @@ class HttpClientMockHelpers
log_entries
end
def self.init_any_order(http_client_mock, requests)
log_entries_by_uri =
requests
.map do |request|
sha256 = Digest::SHA256.digest(request[:contents])
log_entry =
create(
:http_log_entry,
uri: request[:uri],
verb: :get,
content_type: request[:content_type],
status_code: request[:status_code] || 200,
performed_by: "direct",
response_time_ms: rand(20..100),
response:
BlobEntry.find_by(sha256: sha256) ||
build(
:blob_entry,
content_type: request[:content_type],
content: request[:contents],
),
)
[request[:uri], log_entry]
end
.to_h
allow(http_client_mock).to receive(:get) do |uri, opts|
log_entry = log_entries_by_uri[uri]
expect(log_entry).not_to(
be_nil,
"no log entry found for uri: #{uri}\nValid uris: \n#{log_entries_by_uri.keys.join("\n")}",
)
logger.info "[mock http client] [get] [#{uri}] [#{opts.inspect.truncate(80)}]"
Scraper::HttpClient::Response.new(
status_code: log_entry.status_code,
body: log_entry.response.contents,
log_entry: log_entry,
)
end
log_entries_by_uri.values
end
end

View File

@@ -138,6 +138,16 @@ describe Domain::Fa::Job::FavsJob do
expect(post.creator.url_name).to eq("sepulte")
end
it "creates missing posts" do
expect(Domain::Post::FaPost.find_by(fa_id: 52_106_426)).to be_nil
expect do perform_now({ url_name: "zzreg" }) end.to change(
Domain::Post::FaPost,
:count,
).by(5)
post = Domain::Post::FaPost.find_by(fa_id: 52_106_426)
expect(post).not_to be_nil
end
it "updates scanned_favs_at" do
perform_now({ url_name: "zzreg" })
user.reload
@@ -272,18 +282,23 @@ describe Domain::Fa::Job::FavsJob do
before do
# Create some existing favs that would be on page 2 and 3
existing_posts =
Domain::Post::FaPost.create!(
[
{ fa_id: fa_ids_page2[0], creator: user },
{ fa_id: fa_ids_page2[1], creator: user },
{ fa_id: fa_ids_page3[0], creator: user },
],
)
existing_posts = [
create(:domain_post_fa_post, fa_id: fa_ids_page2[0]),
create(:domain_post_fa_post, fa_id: fa_ids_page2[1]),
create(:domain_post_fa_post, fa_id: fa_ids_page3[0]),
]
user.faved_posts << existing_posts
user.update!(scanned_favs_at: 2.years.ago)
end
it "does not remove existing favs from the user when the post is not on the page" do
post = create(:domain_post_fa_post)
user.faved_posts << post
perform_now({ user: })
user.reload
expect(user.faved_posts).to include(post)
end
it "stops scanning when no new favs are found and adds posts from scanned pages" do
# Should only create posts from page 1 since those are the only new ones
expect do perform_now({ url_name: "zzreg" }) end.to change(

View File

@@ -0,0 +1,215 @@
# typed: false
require "rails_helper"
describe Domain::Fa::Job::UserGalleryJob do
let(:http_client_mock) { instance_double("::Scraper::HttpClient") }
before { Scraper::ClientFactory.http_client_mock = http_client_mock }
before do
@log_entries =
HttpClientMockHelpers.init_http_client_mock(
http_client_mock,
client_mock_config,
any_order: true,
)
end
let(:user_url_name) { "meesh" }
let(:user_status) { "ok" }
let(:args) { { url_name: user_url_name, scan_folders: true } }
shared_context "user model exists" do
let!(:user) do
create(
:domain_user_fa_user,
name: user_url_name,
url_name: user_url_name,
state: user_status,
)
end
end
shared_context "pages are scanned" do
let(:client_mock_config) do
page_mocks.map do |page_mock|
{
uri: page_mock[:uri],
status_code: 200,
content_type: "text/html",
contents: SpecUtil.read_fixture_file(page_mock[:file]),
}
end
end
end
shared_context "user has gallery pages" do
let(:client_mock_config) do
[
{
uri: "https://www.furaffinity.net/gallery/#{user_url_name}/",
status_code: 200,
content_type: "text/html",
contents:
SpecUtil.read_fixture_file("domain/fa/job/gallery_page_meesh.html"),
},
]
end
end
shared_context "user has scraps pages" do
let(:client_mock_config) do
[
{
uri: "https://www.furaffinity.net/scraps/#{user_url_name}/",
status_code: 200,
content_type: "text/html",
contents:
SpecUtil.read_fixture_file("domain/fa/job/scraps_page_meesh.html"),
},
]
end
end
shared_context "user is not found on fa" do
let(:client_mock_config) do
[
{
uri:
"https://www.furaffinity.net/gallery/#{user_url_name}/1?perpage=72",
status_code: 200,
content_type: "text/html",
contents:
SpecUtil.read_fixture_file(
"domain/fa/gallery/not_found_user_fortuneiceskular2002.html",
),
},
]
end
end
context "when scanning a user's gallery" do
let(:user_url_name) { "pcraxkers" }
let(:gallery_scraps_mocks) do
[
{
uri:
"https://www.furaffinity.net/scraps/#{user_url_name}/1?perpage=72",
file: "domain/fa/gallery/scraps_page_1_pcraxkers.html",
},
{
uri:
"https://www.furaffinity.net/gallery/#{user_url_name}/1?perpage=72",
file: "domain/fa/gallery/gallery_page_1_pcraxkers.html",
},
]
end
let(:other_folder_mocks) do
[
{
uri:
"https://www.furaffinity.net/gallery/#{user_url_name}/folder/1400495/KNOT-ME-OUT-COMIC/1?perpage=72",
file:
"domain/fa/gallery/folder_knot_me_out_comic_page_1_pcraxkers.html",
},
{
uri:
"https://www.furaffinity.net/gallery/#{user_url_name}/folder/1505828/Hazbin-Hellvua/1?perpage=72",
file:
"domain/fa/gallery/folder_hazbin_hellvua_1505828_page_1_pcraxkers.html",
},
{
uri:
"https://www.furaffinity.net/gallery/#{user_url_name}/folder/1510162/Hazbin-Hellvua/1?perpage=72",
file:
"domain/fa/gallery/folder_hazbin_hellvua_1510162_page_1_pcraxkers.html",
},
{
uri:
"https://www.furaffinity.net/gallery/#{user_url_name}/folder/1505829/Pablo/1?perpage=72",
file: "domain/fa/gallery/folder_pablo_page_1_pcraxkers.html",
},
]
end
let(:page_mocks) { gallery_scraps_mocks + other_folder_mocks }
include_context "user model exists"
include_context "pages are scanned"
context "when user has not been scanned before" do
it "updates the user's scanned_gallery_at timestamp" do
expect do
perform_now(args)
user.reload
end.to(
change(user, :scanned_gallery_at).to(
be_within(1.minute).of(Time.current),
),
)
end
it "enqueues post scan jobs for new submissions" do
expectations = [
change do
SpecUtil.enqueued_job_args(Domain::Fa::Job::ScanPostJob).size
end.by(52),
change do
SpecUtil.enqueued_job_args(Domain::Fa::Job::FavsJob).size
end.by(1),
].reduce(:and)
expect { perform_now(args) }.to(expectations)
end
it "records the first log entry" do
perform_now(args)
user.reload
expect(user.last_gallery_page_log_entry).to(be_present)
end
end
context "when user was recently scanned" do
before { user.update!(scanned_gallery_at: 1.day.ago) }
it "skips scanning if not due for gallery scan" do
expect do
perform_now(args)
user.reload
end.not_to(change(user, :scanned_gallery_at))
end
it "forces scan when force_scan is true" do
expect do
perform_now(args.merge(force_scan: true))
user.reload
end.to(
change(user, :scanned_gallery_at).to(
be_within(5.seconds).of(Time.current),
),
)
end
end
context "when user has submission folders" do
let(:other_folder_mocks) { [] }
it "skips additional folders when scan_folders is false" do
perform_now(args.merge(scan_folders: false))
user.reload
expect(user.last_gallery_page_log_entry).to(be_present)
end
end
end
context "when user is not found" do
let(:user_url_name) { "fortuneiceskular2002" }
include_context "user model exists"
include_context "user is not found on fa"
it "updates user state" do
expect do
perform_now(args)
user.reload
end.to(change(user, :state).from("ok").to("account_disabled"))
end
end
end

View File

@@ -0,0 +1,748 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" class="no-js" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Artwork Gallery for PCraxkers -- Fur Affinity [dot] net</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Fur Affinity | For all things fluff, scaled, and feathered!" />
<meta name="keywords" content="fur furry furries fursuit fursuits cosplay brony bronies zootopia scalies kemono anthro anthropormophic art online gallery portfolio" />
<meta name="distribution" content="global" />
<meta name="copyright" content="Frost Dragon Art LLC" />
<meta name="robots" content="noai, noimageai" />
<link rel="icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=EDGE" />
<!-- generic -->
<meta name="robots" content="noindex" />
<!-- og -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Artwork Gallery for PCraxkers -- Fur Affinity [dot] net" />
<meta property="og:url" content="https://www.furaffinity.net/gallery/pcraxkers/" />
<meta property="og:description" content="Australian Animator/artist ·Male · . . A place where I post my shame . . ╰━━━━━( ✦ )━━━━━╯" />
<meta property="og:image" content="https://www.furaffinity.net/themes/beta/img/banners/fa_logo.png?v2" />
<!-- twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:domain" content="furaffinity.net" />
<meta name="twitter:site" content="@furaffinity" />
<meta name="twitter:title" content="Artwork Gallery for PCraxkers -- Fur Affinity [dot] net" />
<meta name="twitter:description" content="Australian Animator/artist ·Male · . . A place where I post my shame . . ╰━━━━━( ✦ )━━━━━╯" />
<meta name="twitter:url" content="https://www.furaffinity.net/gallery/pcraxkers/" />
<meta name="twitter:image" content="https://www.furaffinity.net/themes/beta/img/banners/fa_logo.png?v2" />
<script type="text/javascript">
var _faurl={d:'//d.furaffinity.net',a:'//a.furaffinity.net',r:'//rv.furaffinity.net',t:'//t.furaffinity.net',pb:'/themes/beta/js/prebid-7.54.5-fa.js'};
</script>
<script type="text/javascript" src="/themes/beta/js/common.js?u=2025011001"></script>
<link type="text/css" rel="stylesheet" href="/themes/beta/css/ui_theme_dark.css?u=2025011001" />
<!-- browser hints -->
<link rel="preconnect" href="//t.furaffinity.net" />
<link rel="preconnect" href="//a.furaffinity.net" />
<link rel="preconnect" href="//rv.furaffinity.net" />
<link rel="preconnect" href="https://www15.smartadserver.com" />
<link rel="preload" href="/themes/beta/js/prototype.1.7.3.min.js" as="script" />
<link rel="preload" href="/themes/beta/js/script.js?u=2025011001" as="script" />
</head>
<!-- EU request: no -->
<body id="pageid-gallery" data-static-path="/themes/beta" data-user-logged-in="1" data-tag-blocklist="" data-tag-blocklist-hide-tagless="0" data-tag-blocklist-nonce="d7890b2d46020491ba77ee39193009a899012433">
<script type="text/javascript">
0; // attempted fix for fouc in ff
</script>
<!-- sidebar -->
<div class="mobile-navigation">
<div class="mobile-nav-container">
<div class="mobile-nav-container-item left">
<label for="mobile-menu-nav" class="css-menu-toggle only-one"><img class="burger-menu" src="/themes/beta/img/fa-burger-menu-icon.png"></label>
</div>
<div class="mobile-nav-container-item center"><a class="mobile-nav-logo" href="/"><img class="site-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-container-item right">
</div>
</div>
<div class="nav-ac-container">
<input id="mobile-menu-nav" name="accordion-1" type="checkbox" />
<article class="nav-ac-content mobile-menu">
<div class="mobile-nav-content-container">
<div class="aligncenter">
<a href="/user/zzreg/"><img class="loggedin_user_avatar avatar" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
<h2 style="margin-bottom:0"><a href="/user/zzreg/">zzreg</a></h2>
<a href="/user/zzreg/">Userpage</a> |
<a href="/msg/pms/">Notes</a> |
<a href="/controls/journal/">Journals</a> |
<a href="/plus/"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> FA+</a> |
<a href="https://shop.furaffinity.net" target="_blank"><img style="position:relative;top:3px" src="/themes/beta/img/icons/merch_store_icon.png"> Shop</a>
<br>
</div>
<hr>
<h2><a href="/browse/">Browse</a></h2>
<h2><a href="/search/">Search</a></h2>
<h2><a href="/submit/">Upload</a></h2>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-0"><h2 style="margin-top:0;padding-top:0">Support &#x25BC;</h2></label>
<input id="mobile-menu-submenu-0" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<a href="/journals/fender">News & Updates</a><br>
<a href="/help/">Help & Support</a><br>
<a href="/advertising.html">Advertising</a><br>
<a href="/blm">Black Lives Matter</a>
<h3>SUPPORT FA</h3>
<a href="/plus/">Subscribe to FA+ </a><br>
<a href="https://shop.furaffinity.net/" target="_blank">FA Merch Store</a>
<h3>RULES & POLICIES</h3>
<a href="/tos">Terms of Service</a><br>
<a href="/privacy">Privacy</a><br>
<a href="/coc">Code of Conduct</a><br>
<a href="/aup">Upload Policy</a>
<h3>SOCIAL</h3>
<a href="https://discord.gg/furaffinity">Discord</a><br>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Support</h3>
<a href="/controls/troubletickets/">REPORT A PROBLEM</a>
</article>
</div>
<div class="mobile-sfw-toggle">
<h2>SFW Mode</h2>
<div class="sfw-toggle type-slider slider-button-wrapper">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-1"><h2 style="margin-top:0;padding-top:0">Settings &#x25BC;</h2></label>
<input id="mobile-menu-submenu-1" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<h3>ACCOUNT INFORMATION</h3>
<a href="/controls/settings/">Account Settings</a><br>
<a href="/controls/site-settings/">Global Site Settings</a><br>
<a href="/controls/user-settings/">User Settings</a>
<h3>CUSTOMIZE USER PROFILE</h3>
<a href="/controls/profile/">Profile Info</a><br>
<a href="/controls/profilebanner/">Profile Banner</a><br>
<a href="/controls/contacts/">Contacts and Social Media</a><br>
<a href="/controls/avatar/">Avatar Management</a>
<h3>MANAGE MY CONTENT</h3>
<a href="/controls/submissions/">Submissions</a><br>
<a href="/controls/folders/submissions/">Folders</a><br>
<a href="/controls/journal/">Journals</a><br>
<a href="/controls/favorites/">Favorites</a><br>
<a href="/controls/buddylist/">Watches</a><br>
<a href="/controls/shouts/">Shouts</a><br>
<a href="/controls/badges/">Badges</a>
<h3>SECURITY</h3>
<a href="/controls/sessions/logins/">Active Sessions</a><br>
<a href="/controls/sessions/logs/">Activity Log</a><br>
<a href="/controls/sessions/labels/">Browser Labels</a>
</article>
</div>
<hr>
<hr>
<h2><form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="86700f9e03ccdf5b667e25b4b13573c6f3c73878"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</h2>
<h2></h2>
</div>
</article>
</div>
</div>
<div class="mobile-notification-bar">
<a class="notification-container inline" href="/msg/submissions/" title="86,664 Submission Notifications">86664S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="17,902 Journal Notifications">17902J</a>
</div>
<nav id="ddmenu">
<div class="mobile-nav navhideondesktop hideonmobile hideontablet">
<div class="mobile-nav-logo"><a class="mobile-nav-logo" href="/"><img src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-header-item"><a href="/browse/">Browse</a></div>
<div class="mobile-nav-header-item"><a href="/search/">Search</a></div>
</div>
<div class="menu-icon"></div>
<ul class="navhideonmobile">
<li class="lileft"><div class="lileft hideonmobile" style="vertical-align:middle;line-height:0 !important" ><a class="top-heading" href="/"><img class="nav-bar-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div></li>
<li class="lileft"><a class="top-heading" href="/browse/"><div class="sprite-paw menu-space-saver hideonmobile"></div>Browse</a></li>
<li class="lileft"><a class="top-heading hideondesktop" href="/search/">Search</a></li>
<li class="lileft"><a class="top-heading" href="/submit/"><div class="sprite-upload menu-space-saver hideonmobile"></div> Upload</a></li>
<li class="lileft">
<a class="top-heading" href="#"><div class="sprite-news menu-space-saver hideonmobile"></div>Support</a>
<i class="caret"></i>
<div class="dropdown dropdown-left ">
<div class="dd-inner">
<div class="column">
<h3>Community</h3>
<a href="/journals/fender">News & Updates</a>
<a href="/help/">Help & Support</a>
<a href="/advertising.html">Advertising</a>
<a href="/blm/">Black Lives Matter</a>
<h3>Rules & Policies</h3>
<a href="/tos">Terms of Service</a>
<a href="/privacy">Privacy</a>
<a href="/coc">Code of Conduct</a>
<a href="/aup">Upload Policy</a>
<h3>Social</h3>
<a href="https://discord.gg/furaffinity">Discord</a>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
</div>
</div>
</div>
</li>
<li class="lileft"><a class="top-heading" href="/plus/" title="FA+"><img style="position:relative;top:3px" src="/themes/beta/img/the-golden-pawb.png"><span class="hidebrowselowres"> FA+</span></a></li>
<li class="lileft"><a class="top-heading" href="https://shop.furaffinity.net" title="Shop" target="_blank"><img style="position:relative;top:3px" src="/themes/beta/img/icons/merch_store_icon.png"><span class="hidebrowselowres"> Shop</span></a></li>
<div class="lileft hideonmobile">
<form id="searchbox" method="get" action="/search/">
<input type="search" name="q" placeholder="SEARCH">
<a href="/search">&nbsp;</a>
</form>
</div>
<li class="message-bar-desktop">
<a class="notification-container inline" href="/msg/submissions/" title="86,664 Submission Notifications">86664S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="17,902 Journal Notifications">17902J</a>
</li>
<li>
<div class="floatleft hideonmobile">
<a href="/user/zzreg"><img class="loggedin_user_avatar menubar-icon-resize avatar" style="cursor:pointer" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
</div>
</li>
<li class="submenu-trigger">
<div class="floatleft hideonmobile">
<svg class="avatar-submenu-trigger banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24"><path d="M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z"></path></svg>
</div>
<a id="my-username" class="top-heading hideondesktop" href="#"><span class="hideondesktop">My FA ( </span>zzreg<span class="hideondesktop"> )</span></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account</h3>
<a href="/user/zzreg/">My Userpage</a>
<a href="/msg/pms/">Check My Notes</a>
<a href="/controls/journal/">Create a Journal</a>
<a href="/commissions/zzreg/">My Commission Info</a>
<h3>Support Fur Affinity</h3>
<a href="/plus/">Subscribe to FA+ </a>
<a href="https://shop.furaffinity.net/" target="_blank">Merch Store</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
<div class="mobile-sfw-toggle">
<h3 class="padding-top:10px">Toggle SFW</h3>
<div class="sfw-toggle type-slider slider-button-wrapper" style="position:relative;top:5px">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<hr>
<form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="86700f9e03ccdf5b667e25b4b13573c6f3c73878"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</div>
</div>
</div>
</li>
<li class="submenu-trigger">
<a class="top-heading" href="#"><svg class="banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" style="transform: ;msFilter:;"><path d="M12 16c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.084 0 2 .916 2 2s-.916 2-2 2-2-.916-2-2 .916-2 2-2z"></path><path d="m2.845 16.136 1 1.73c.531.917 1.809 1.261 2.73.73l.529-.306A8.1 8.1 0 0 0 9 19.402V20c0 1.103.897 2 2 2h2c1.103 0 2-.897 2-2v-.598a8.132 8.132 0 0 0 1.896-1.111l.529.306c.923.53 2.198.188 2.731-.731l.999-1.729a2.001 2.001 0 0 0-.731-2.732l-.505-.292a7.718 7.718 0 0 0 0-2.224l.505-.292a2.002 2.002 0 0 0 .731-2.732l-.999-1.729c-.531-.92-1.808-1.265-2.731-.732l-.529.306A8.1 8.1 0 0 0 15 4.598V4c0-1.103-.897-2-2-2h-2c-1.103 0-2 .897-2 2v.598a8.132 8.132 0 0 0-1.896 1.111l-.529-.306c-.924-.531-2.2-.187-2.731.732l-.999 1.729a2.001 2.001 0 0 0 .731 2.732l.505.292a7.683 7.683 0 0 0 0 2.223l-.505.292a2.003 2.003 0 0 0-.731 2.733zm3.326-2.758A5.703 5.703 0 0 1 6 12c0-.462.058-.926.17-1.378a.999.999 0 0 0-.47-1.108l-1.123-.65.998-1.729 1.145.662a.997.997 0 0 0 1.188-.142 6.071 6.071 0 0 1 2.384-1.399A1 1 0 0 0 11 5.3V4h2v1.3a1 1 0 0 0 .708.956 6.083 6.083 0 0 1 2.384 1.399.999.999 0 0 0 1.188.142l1.144-.661 1 1.729-1.124.649a1 1 0 0 0-.47 1.108c.112.452.17.916.17 1.378 0 .461-.058.925-.171 1.378a1 1 0 0 0 .471 1.108l1.123.649-.998 1.729-1.145-.661a.996.996 0 0 0-1.188.142 6.071 6.071 0 0 1-2.384 1.399A1 1 0 0 0 13 18.7l.002 1.3H11v-1.3a1 1 0 0 0-.708-.956 6.083 6.083 0 0 1-2.384-1.399.992.992 0 0 0-1.188-.141l-1.144.662-1-1.729 1.124-.651a1 1 0 0 0 .471-1.108z"></path></svg></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account Information</h3>
<a href="/controls/settings/">Account Settings</a>
<a href="/controls/site-settings/">Global Site Settings</a>
<a href="/controls/user-settings/">User Settings</a>
<h3>Customize User Profile</h3>
<a href="/controls/profile/">Profile Info</a>
<a href="/controls/profilebanner/">Profile Banner</a>
<a href="/controls/contacts/">Contacts & Social Media</a>
<a href="/controls/avatar/">Avatar Management</a>
<h3>Manage My Content</h3>
<a href="/controls/submissions/">Submissions</a>
<a href="/controls/folders/submissions/">Folders</a>
<a href="/controls/journal/">Journals</a>
<a href="/controls/favorites/">Favorites</a>
<a href="/controls/buddylist/">Watches</a>
<a href="/controls/shouts/">Shouts</a>
<a href="/controls/badges/">Badges</a>
<h3>Security</h3>
<a href="/controls/sessions/logins/">Active Sessions</a>
<a href="/controls/sessions/logs/">Activity Log</a>
<a href="/controls/sessions/labels/">Browser Labels</a>
</div>
</div>
</div>
</li>
</ul>
<script type="text/javascript">
_fajs.push(['init_sfw_button', '.sfw-toggle']);
</script>
</nav>
<script type="text/javascript">
_fajs.push(function(){
// all menus that should be opened only one at a time
$$('.css-menu-toggle.only-one').invoke('observe', 'click', function(evt) {
var curr_input = $(evt.findElement('label').getAttribute('for'));
curr_input.next('.nav-ac-content').removeClassName('no-transition');
if(curr_input.checked === false) {
$$('.css-menu-toggle.only-one').each(function(elm){
var elm_input = $(elm.getAttribute('for'));
if(elm_input.checked === true) {
elm_input.next('.nav-ac-content').addClassName('no-transition');
elm_input.checked = false;
}
});
}
});
});
</script>
<div class="news-block">
<div id="admin_notice_do_not_adblock2" class="newsBlock">
<!--strong>Notice:</strong><span class="hideondesktop hideontablet"><br></span-->
<a href="https://gofund.me/0a0b27ba">Support Fur Affinity: Honoring Dragoneer's Legacy. https://gofund.me/0a0b27ba</a></div>
</div>
<div id="main-window" class="footer-mobile-tweak g-wrapper">
<div id="header" class="has-adminmessage">
<!-- user profile banner -->
<site-banner>
<a href="/">
<picture>
<source media="(max-width: 799px)" srcset="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner_mobile.jpg">
<source media="(min-width: 800px)" srcset="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner.jpg">
<img src="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner.jpg" alt="Profile Banner image">
</picture>
</a>
</site-banner>
<a name="top"></a>
</div>
<div id="site-content">
<!-- /header -->
<userpage-nav-header>
<userpage-nav-avatar>
<a class="current" href="/user/pcraxkers/"><img alt="pcraxkers" src="//a.furaffinity.net/1674032155/pcraxkers.gif"/></a>
</userpage-nav-avatar>
<userpage-nav-user-details>
<h1><username>
~PCraxkers
</username></h1>
<div class="font-small">
<username class="user-title">
<span class="hideonmobile">Registered:</span> Jul 16, 2021 06:31 </username>
</div>
</userpage-nav-user-details>
<userpage-nav-interface-buttons>
<a class="button standard stop" href="/unwatch/pcraxkers/?key=e7092dc7833fd3e83f6e0b972bf4044234de6127">-Watch</a>
<a class="button standard" href="/newpm/pcraxkers/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" style="transform: ;msFilter:;"><path d="M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm0 2v.511l-8 6.223-8-6.222V6h16zM4 18V9.044l7.386 5.745a.994.994 0 0 0 1.228 0L20 9.044 20.002 18H4z"></path></svg></a>
</userpage-nav-interface-buttons>
<userpage-nav-links>
<ul style="display:flex">
<li><h3><a href="/user/pcraxkers/">Home</a></h3></li>
<li><h3><a class="current" href="/gallery/pcraxkers/">Gallery</a></h3></li>
<li><h3><a href="/scraps/pcraxkers/">Scraps</a></h3></li>
<li><h3><a href="/favorites/pcraxkers/">Favs</a></h3></li>
<li><h3><a href="/journals/pcraxkers/">Journals</a></h3></li>
</ul>
</userpage-nav-links>
</userpage-nav-header>
<div class="clear"></div>
<!--- /USER NAV --->
<script type="text/javascript">
_fajs.push(function(){
$$('#jsBlockUnblockButton').invoke('observe', 'click', function(evt){
var message = 'Are you sure you want to ' + (evt.findElement('a').href.indexOf('/unblock') != -1 ? 'unblock' : 'block') + ' this user?';
if (!confirm(message)) {
evt.stop();
}
});
});
</script>
<div id="page-galleryscraps">
<div id="columnpage">
<div class="sidebar">
<div class="folder-list">
<div class="user-folders">
<div class="container-item-top">
<h4>Gallery Folders</h4>
</div>
<div class="default-folders">
<ul style="list-style-type:none">
<li>
<a href="/gallery/pcraxkers/" class="dotted">Main Gallery</a>
</li>
<li>
<a href="/scraps/pcraxkers/" class="dotted">Scraps</a>
</li>
</ul>
</div>
<ul class="default-group" style="list-style-type:none">
<li>
<a href="/gallery/pcraxkers/folder/1400495/KNOT-ME-OUT-COMIC" title="11 submissions" class="dotted">KNOT ME OUT - COMIC</a>
</li>
<li class="active">
&#x276f;&#x276f; <strong title="2 submissions">Hazbin/Hellvua</strong>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1505829/Pablo" title="18 submissions" class="dotted">Pablo</a>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1510162/Hazbin-Hellvua" title="1 submissions" class="dotted">Hazbin/Hellvua</a>
</li>
</ul>
</div>
</div>
<div class="rectangleAd">
<div data-id="sidebar" class="rectangleAd__slot format--mediumRectangle jsAdSlot"></div>
</div>
</div>
<div class="content">
<div class="leaderboardAd">
<div data-id="header_middle" class="leaderboardAd__slot format--leaderboard jsAdSlot"></div>
</div>
<section class="gallery-section">
<div class="section-body">
<div class="submission-list">
<div class="folder-description" style="width:100% !important">
<div class="container-item-top">
<h3>Hazbin/Hellvua</h3>
</div>
</div>
<div class="gallery-navigation aligncenter">
<div class="inline" style="width:32%">
&nbsp;
</div>
<div class="navigation-page-name inline" style="width:32%;">
Page #1 </div>
<div class="inline" style="width:32%">
&nbsp;
<!--button class="button standard" type="button">Next</button-->
</div>
</div>
<section id="gallery-gallery" class="gallery no-padding aligncenter no-artistname s-200 ">
<figure id="sid-59759007" class="r-adult t-image">
<b>
<u>
<a href="/view/59759007/">
<img data-tags="hazbin_hotel lucifer alastor rut heat tail_tug tugging demon" class="blocked-content" alt="" src="//t.furaffinity.net/59759007@200-1738667026.jpg" data-width="200" data-height="200" style="width:200px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/59759007/" title="Request - RadioApple (Alastor in Rut)">Request - RadioApple (Alastor in Rut)</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-59654327" class="r-adult t-image">
<b>
<u>
<a href="/view/59654327/">
<img data-tags="staticradio hazbin alastor vox bj praise" class="blocked-content" alt="" src="//t.furaffinity.net/59654327@200-1737912116.jpg" data-width="72.567" data-height="200" style="width:72.567px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/59654327/" title="RadioStatic - Body Worship">RadioStatic - Body Worship</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
</section>
<script type="text/javascript">
_fajs.push(['init_gallery', 'gallery-gallery']);
</script>
<div class="gallery-navigation aligncenter">
<div class="inline" style="width:32%">
&nbsp;
</div>
<div class="inline" style="width:32%">
<div class="mobile-button">
<button type="button" class="button standard toggle_titles">Disable Titles</button>
</div>
</div>
<div class="inline" style="width:32%">
&nbsp;
<!--button class="button standard" type="button">Next</button-->
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
<script type="text/javascript">
var descriptions = {"59759007":{"title":"Request - RadioApple (Alastor in Rut)","description":"Request Box: https:\/\/koddy5555.wixsite.com\/artrequests","username":"PCraxkers","lower":"pcraxkers"},"59654327":{"title":"RadioStatic - Body Worship","description":"Some #StaticRadio doodles, referencing one of @\/TobinArts audio clips \ud83d\udc99\u2764\ufe0f","username":"PCraxkers","lower":"pcraxkers"}};
</script>
</div>
<!-- /<div id="site-content"> -->
<div id="footer">
<div class="auto_link footer-links">
<span class="hideonmobile">
<a href="/advertising">Advertise</a> |
<a href="/plus"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> Get FA+</a> |
<a href="https://shop.furaffinity.net/"><img style="position:relative;top:4px" src="/themes/beta/img/icons/merch_store_icon.png"> Merch Store</a> |
<a href="/tos">Terms of Service</a> |
<a href="/privacy">Privacy</a> |
<a href="/coc">Code of Conduct</a> |
<a href="/aup">Upload Policy</a>
</span>
</div>
<div class="footerAds">
<div class="footerAds__column">
<div class="footerAds__slot format--faMediumRectangle jsAdSlot" data-id="footer_left"></div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot footerAds__slot--faLogo">
<img src="/themes/beta/img/banners/fa_logo.png?v2">
</div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_top"></div>
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_bottom"></div>
</div>
</div>
<div class="online-stats">
91924 <strong><span title="Measured in the last 900 seconds">Users online</span></strong> &mdash;
5249 <strong>guests</strong>,
15710 <strong>registered</strong>
and 70965 <strong>other</strong>
<!-- Online Counter Last Update: Wed, 19 Feb 2025 11:52:00 -0800 -->
</div>
<small>Limit bot activity to periods with less than 10k registered users online.</small>
<br><br>
<strong>&copy; 2005-2025 Frost Dragon Art LLC</strong>
<div class="footnote">
Server Time: Feb 19, 2025 11:52 AM </div>
</div>
<div id="cookie-notification" class="default-hidden">
<div class="text-container">This website uses cookies to enhance your browsing experience. <a href="/privacy" target="_blank">Learn More</a></div>
<div class="button-container"><button class="accept">I Consent</button></div>
</div>
<script type="text/javascript">
_fajs.push(function(){
$$('#cookie-notification button').invoke('observe', 'click', function() {
setCookie('cc', 1, expiryyear, '/');
$('cookie-notification').addClassName('default-hidden');
});
$('cookie-notification').removeClassName('default-hidden');
});
</script>
</div>
<!-- <div id="main-window"> -->
<!--
Server Local Time: Feb 19, 2025 11:52 AM <br />
Page generated in 0.012 seconds [ 22.2% PHP, 77.8% SQL ] (25 queries) -->
<script type="text/javascript">
_fajs.push(function() {
var exists = getCookie('sz');
var saved = save_viewport_size();
if((!exists && saved) || (exists && saved && exists != saved)) {
//window.location.reload();
}
});
</script>
<script type="text/javascript" src="/themes/beta/js/censor.js?u=2025011001"></script>
<script type="text/javascript" src="/themes/beta/js/prototype.1.7.3.min.js"></script>
<script type="text/javascript" src="/themes/beta/js/script.js?u=2025011001"></script>
<script type="text/javascript">
var server_timestamp = 1739994754;
var client_timestamp = ((new Date()).getTime())/1000;
var server_timestamp_delta = server_timestamp - client_timestamp;
var sfw_cookie_name = 'sfw';
var news_cookie_name = 'n';
var adData = {"sizeConfig":[{"labels":["desktopWide"],"mediaQuery":"(min-width: 1065px)","sizesSupported":[[728,90],[300,250],[300,168],[300,600],[160,600]]},{"labels":["desktopNarrow"],"mediaQuery":"(min-width: 720px) and (max-width: 1064px)","sizesSupported":[[728,90],[300,250],[300,168]]},{"labels":["mobile"],"mediaQuery":"(min-width: 0px) and (max-width: 719px)","sizesSupported":[[320,50],[300,50],[320,100]]}],"slotConfig":{"header_middle":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"above_content":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"sidebar":{"containerSize":{"desktopWide":[300,250]},"providerPriority":["inhouse"]},"sidebar_tall":{"containerSize":{"desktopWide":[300,600]},"providerPriority":["inhouse"]},"footer_left":{"containerSize":{"desktopWide":[300,200],"desktopNarrow":[300,200],"mobile":[300,200]},"providerPriority":["inhouse"]},"footer_right_top":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"footer_right_bottom":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"header_right_left":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"header_right_right":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_top":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_bottom":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]}},"providerConfig":{"inhouse":{"domain":"https:\/\/rv.furaffinity.net","dataPath":"\/live\/www\/delivery\/spc.php","dataVariableName":"OA_output"}},"adConfig":{"inhouse":{"header_middle":{"default":{"tagId":11,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":19,"tagSize":[300,90]}}},"above_content":{"default":{"tagId":15,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":17,"tagSize":[300,90]}}},"sidebar":{"default":{"tagId":13,"tagSize":[300,250]}},"sidebar_tall":{"default":{"tagId":13,"tagSize":[300,250]}},"footer_left":{"default":{"tagId":10,"tagSize":[300,200]}},"footer_right_top":{"default":{"tagId":5,"tagSize":[300,90]}},"footer_right_bottom":{"default":{"tagId":6,"tagSize":[300,90]}},"header_right_left":{"default":{"tagId":2,"tagSize":[300,90]}},"header_right_right":{"default":{"tagId":4,"tagSize":[300,90]}},"sidebar_top":{"default":{"tagId":2,"tagSize":[300,90]}},"sidebar_bottom":{"default":{"tagId":4,"tagSize":[300,90]}}}}};
window.fad = new adManager(adData.sizeConfig, adData.slotConfig, adData.providerConfig, adData.adConfig, 1);
</script>
<script type="text/javascript">
_fajs.push(function() {
var ddmenuOptions = {
menuId: "ddmenu",
linkIdToMenuHtml: null,
open: "onmouseover", // or "onclick"
delay: 1,
speed: 1,
keysNav: true,
license: "2c1f72"
};
var ddmenu = new Ddmenu(ddmenuOptions);
});
</script>
</body>
<!---
|\ /|
/_^ ^_\
\v/
The fox goes "moo!"
--->
</html>

View File

@@ -0,0 +1,730 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" class="no-js" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Artwork Gallery for PCraxkers -- Fur Affinity [dot] net</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Fur Affinity | For all things fluff, scaled, and feathered!" />
<meta name="keywords" content="fur furry furries fursuit fursuits cosplay brony bronies zootopia scalies kemono anthro anthropormophic art online gallery portfolio" />
<meta name="distribution" content="global" />
<meta name="copyright" content="Frost Dragon Art LLC" />
<meta name="robots" content="noai, noimageai" />
<link rel="icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=EDGE" />
<!-- generic -->
<meta name="robots" content="noindex" />
<!-- og -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Artwork Gallery for PCraxkers -- Fur Affinity [dot] net" />
<meta property="og:url" content="https://www.furaffinity.net/gallery/pcraxkers/" />
<meta property="og:description" content="Australian Animator/artist ·Male · . . A place where I post my shame . . ╰━━━━━( ✦ )━━━━━╯" />
<meta property="og:image" content="https://www.furaffinity.net/themes/beta/img/banners/fa_logo.png?v2" />
<!-- twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:domain" content="furaffinity.net" />
<meta name="twitter:site" content="@furaffinity" />
<meta name="twitter:title" content="Artwork Gallery for PCraxkers -- Fur Affinity [dot] net" />
<meta name="twitter:description" content="Australian Animator/artist ·Male · . . A place where I post my shame . . ╰━━━━━( ✦ )━━━━━╯" />
<meta name="twitter:url" content="https://www.furaffinity.net/gallery/pcraxkers/" />
<meta name="twitter:image" content="https://www.furaffinity.net/themes/beta/img/banners/fa_logo.png?v2" />
<script type="text/javascript">
var _faurl={d:'//d.furaffinity.net',a:'//a.furaffinity.net',r:'//rv.furaffinity.net',t:'//t.furaffinity.net',pb:'/themes/beta/js/prebid-7.54.5-fa.js'};
</script>
<script type="text/javascript" src="/themes/beta/js/common.js?u=2025011001"></script>
<link type="text/css" rel="stylesheet" href="/themes/beta/css/ui_theme_dark.css?u=2025011001" />
<!-- browser hints -->
<link rel="preconnect" href="//t.furaffinity.net" />
<link rel="preconnect" href="//a.furaffinity.net" />
<link rel="preconnect" href="//rv.furaffinity.net" />
<link rel="preconnect" href="https://www15.smartadserver.com" />
<link rel="preload" href="/themes/beta/js/prototype.1.7.3.min.js" as="script" />
<link rel="preload" href="/themes/beta/js/script.js?u=2025011001" as="script" />
</head>
<!-- EU request: no -->
<body id="pageid-gallery" data-static-path="/themes/beta" data-user-logged-in="1" data-tag-blocklist="" data-tag-blocklist-hide-tagless="0" data-tag-blocklist-nonce="d7890b2d46020491ba77ee39193009a899012433">
<script type="text/javascript">
0; // attempted fix for fouc in ff
</script>
<!-- sidebar -->
<div class="mobile-navigation">
<div class="mobile-nav-container">
<div class="mobile-nav-container-item left">
<label for="mobile-menu-nav" class="css-menu-toggle only-one"><img class="burger-menu" src="/themes/beta/img/fa-burger-menu-icon.png"></label>
</div>
<div class="mobile-nav-container-item center"><a class="mobile-nav-logo" href="/"><img class="site-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-container-item right">
</div>
</div>
<div class="nav-ac-container">
<input id="mobile-menu-nav" name="accordion-1" type="checkbox" />
<article class="nav-ac-content mobile-menu">
<div class="mobile-nav-content-container">
<div class="aligncenter">
<a href="/user/zzreg/"><img class="loggedin_user_avatar avatar" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
<h2 style="margin-bottom:0"><a href="/user/zzreg/">zzreg</a></h2>
<a href="/user/zzreg/">Userpage</a> |
<a href="/msg/pms/">Notes</a> |
<a href="/controls/journal/">Journals</a> |
<a href="/plus/"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> FA+</a> |
<a href="https://shop.furaffinity.net" target="_blank"><img style="position:relative;top:3px" src="/themes/beta/img/icons/merch_store_icon.png"> Shop</a>
<br>
</div>
<hr>
<h2><a href="/browse/">Browse</a></h2>
<h2><a href="/search/">Search</a></h2>
<h2><a href="/submit/">Upload</a></h2>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-0"><h2 style="margin-top:0;padding-top:0">Support &#x25BC;</h2></label>
<input id="mobile-menu-submenu-0" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<a href="/journals/fender">News & Updates</a><br>
<a href="/help/">Help & Support</a><br>
<a href="/advertising.html">Advertising</a><br>
<a href="/blm">Black Lives Matter</a>
<h3>SUPPORT FA</h3>
<a href="/plus/">Subscribe to FA+ </a><br>
<a href="https://shop.furaffinity.net/" target="_blank">FA Merch Store</a>
<h3>RULES & POLICIES</h3>
<a href="/tos">Terms of Service</a><br>
<a href="/privacy">Privacy</a><br>
<a href="/coc">Code of Conduct</a><br>
<a href="/aup">Upload Policy</a>
<h3>SOCIAL</h3>
<a href="https://discord.gg/furaffinity">Discord</a><br>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Support</h3>
<a href="/controls/troubletickets/">REPORT A PROBLEM</a>
</article>
</div>
<div class="mobile-sfw-toggle">
<h2>SFW Mode</h2>
<div class="sfw-toggle type-slider slider-button-wrapper">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-1"><h2 style="margin-top:0;padding-top:0">Settings &#x25BC;</h2></label>
<input id="mobile-menu-submenu-1" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<h3>ACCOUNT INFORMATION</h3>
<a href="/controls/settings/">Account Settings</a><br>
<a href="/controls/site-settings/">Global Site Settings</a><br>
<a href="/controls/user-settings/">User Settings</a>
<h3>CUSTOMIZE USER PROFILE</h3>
<a href="/controls/profile/">Profile Info</a><br>
<a href="/controls/profilebanner/">Profile Banner</a><br>
<a href="/controls/contacts/">Contacts and Social Media</a><br>
<a href="/controls/avatar/">Avatar Management</a>
<h3>MANAGE MY CONTENT</h3>
<a href="/controls/submissions/">Submissions</a><br>
<a href="/controls/folders/submissions/">Folders</a><br>
<a href="/controls/journal/">Journals</a><br>
<a href="/controls/favorites/">Favorites</a><br>
<a href="/controls/buddylist/">Watches</a><br>
<a href="/controls/shouts/">Shouts</a><br>
<a href="/controls/badges/">Badges</a>
<h3>SECURITY</h3>
<a href="/controls/sessions/logins/">Active Sessions</a><br>
<a href="/controls/sessions/logs/">Activity Log</a><br>
<a href="/controls/sessions/labels/">Browser Labels</a>
</article>
</div>
<hr>
<hr>
<h2><form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="86700f9e03ccdf5b667e25b4b13573c6f3c73878"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</h2>
<h2></h2>
</div>
</article>
</div>
</div>
<div class="mobile-notification-bar">
<a class="notification-container inline" href="/msg/submissions/" title="86,664 Submission Notifications">86664S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="17,902 Journal Notifications">17902J</a>
</div>
<nav id="ddmenu">
<div class="mobile-nav navhideondesktop hideonmobile hideontablet">
<div class="mobile-nav-logo"><a class="mobile-nav-logo" href="/"><img src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-header-item"><a href="/browse/">Browse</a></div>
<div class="mobile-nav-header-item"><a href="/search/">Search</a></div>
</div>
<div class="menu-icon"></div>
<ul class="navhideonmobile">
<li class="lileft"><div class="lileft hideonmobile" style="vertical-align:middle;line-height:0 !important" ><a class="top-heading" href="/"><img class="nav-bar-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div></li>
<li class="lileft"><a class="top-heading" href="/browse/"><div class="sprite-paw menu-space-saver hideonmobile"></div>Browse</a></li>
<li class="lileft"><a class="top-heading hideondesktop" href="/search/">Search</a></li>
<li class="lileft"><a class="top-heading" href="/submit/"><div class="sprite-upload menu-space-saver hideonmobile"></div> Upload</a></li>
<li class="lileft">
<a class="top-heading" href="#"><div class="sprite-news menu-space-saver hideonmobile"></div>Support</a>
<i class="caret"></i>
<div class="dropdown dropdown-left ">
<div class="dd-inner">
<div class="column">
<h3>Community</h3>
<a href="/journals/fender">News & Updates</a>
<a href="/help/">Help & Support</a>
<a href="/advertising.html">Advertising</a>
<a href="/blm/">Black Lives Matter</a>
<h3>Rules & Policies</h3>
<a href="/tos">Terms of Service</a>
<a href="/privacy">Privacy</a>
<a href="/coc">Code of Conduct</a>
<a href="/aup">Upload Policy</a>
<h3>Social</h3>
<a href="https://discord.gg/furaffinity">Discord</a>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
</div>
</div>
</div>
</li>
<li class="lileft"><a class="top-heading" href="/plus/" title="FA+"><img style="position:relative;top:3px" src="/themes/beta/img/the-golden-pawb.png"><span class="hidebrowselowres"> FA+</span></a></li>
<li class="lileft"><a class="top-heading" href="https://shop.furaffinity.net" title="Shop" target="_blank"><img style="position:relative;top:3px" src="/themes/beta/img/icons/merch_store_icon.png"><span class="hidebrowselowres"> Shop</span></a></li>
<div class="lileft hideonmobile">
<form id="searchbox" method="get" action="/search/">
<input type="search" name="q" placeholder="SEARCH">
<a href="/search">&nbsp;</a>
</form>
</div>
<li class="message-bar-desktop">
<a class="notification-container inline" href="/msg/submissions/" title="86,664 Submission Notifications">86664S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="17,902 Journal Notifications">17902J</a>
</li>
<li>
<div class="floatleft hideonmobile">
<a href="/user/zzreg"><img class="loggedin_user_avatar menubar-icon-resize avatar" style="cursor:pointer" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
</div>
</li>
<li class="submenu-trigger">
<div class="floatleft hideonmobile">
<svg class="avatar-submenu-trigger banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24"><path d="M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z"></path></svg>
</div>
<a id="my-username" class="top-heading hideondesktop" href="#"><span class="hideondesktop">My FA ( </span>zzreg<span class="hideondesktop"> )</span></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account</h3>
<a href="/user/zzreg/">My Userpage</a>
<a href="/msg/pms/">Check My Notes</a>
<a href="/controls/journal/">Create a Journal</a>
<a href="/commissions/zzreg/">My Commission Info</a>
<h3>Support Fur Affinity</h3>
<a href="/plus/">Subscribe to FA+ </a>
<a href="https://shop.furaffinity.net/" target="_blank">Merch Store</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
<div class="mobile-sfw-toggle">
<h3 class="padding-top:10px">Toggle SFW</h3>
<div class="sfw-toggle type-slider slider-button-wrapper" style="position:relative;top:5px">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<hr>
<form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="86700f9e03ccdf5b667e25b4b13573c6f3c73878"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</div>
</div>
</div>
</li>
<li class="submenu-trigger">
<a class="top-heading" href="#"><svg class="banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" style="transform: ;msFilter:;"><path d="M12 16c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.084 0 2 .916 2 2s-.916 2-2 2-2-.916-2-2 .916-2 2-2z"></path><path d="m2.845 16.136 1 1.73c.531.917 1.809 1.261 2.73.73l.529-.306A8.1 8.1 0 0 0 9 19.402V20c0 1.103.897 2 2 2h2c1.103 0 2-.897 2-2v-.598a8.132 8.132 0 0 0 1.896-1.111l.529.306c.923.53 2.198.188 2.731-.731l.999-1.729a2.001 2.001 0 0 0-.731-2.732l-.505-.292a7.718 7.718 0 0 0 0-2.224l.505-.292a2.002 2.002 0 0 0 .731-2.732l-.999-1.729c-.531-.92-1.808-1.265-2.731-.732l-.529.306A8.1 8.1 0 0 0 15 4.598V4c0-1.103-.897-2-2-2h-2c-1.103 0-2 .897-2 2v.598a8.132 8.132 0 0 0-1.896 1.111l-.529-.306c-.924-.531-2.2-.187-2.731.732l-.999 1.729a2.001 2.001 0 0 0 .731 2.732l.505.292a7.683 7.683 0 0 0 0 2.223l-.505.292a2.003 2.003 0 0 0-.731 2.733zm3.326-2.758A5.703 5.703 0 0 1 6 12c0-.462.058-.926.17-1.378a.999.999 0 0 0-.47-1.108l-1.123-.65.998-1.729 1.145.662a.997.997 0 0 0 1.188-.142 6.071 6.071 0 0 1 2.384-1.399A1 1 0 0 0 11 5.3V4h2v1.3a1 1 0 0 0 .708.956 6.083 6.083 0 0 1 2.384 1.399.999.999 0 0 0 1.188.142l1.144-.661 1 1.729-1.124.649a1 1 0 0 0-.47 1.108c.112.452.17.916.17 1.378 0 .461-.058.925-.171 1.378a1 1 0 0 0 .471 1.108l1.123.649-.998 1.729-1.145-.661a.996.996 0 0 0-1.188.142 6.071 6.071 0 0 1-2.384 1.399A1 1 0 0 0 13 18.7l.002 1.3H11v-1.3a1 1 0 0 0-.708-.956 6.083 6.083 0 0 1-2.384-1.399.992.992 0 0 0-1.188-.141l-1.144.662-1-1.729 1.124-.651a1 1 0 0 0 .471-1.108z"></path></svg></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account Information</h3>
<a href="/controls/settings/">Account Settings</a>
<a href="/controls/site-settings/">Global Site Settings</a>
<a href="/controls/user-settings/">User Settings</a>
<h3>Customize User Profile</h3>
<a href="/controls/profile/">Profile Info</a>
<a href="/controls/profilebanner/">Profile Banner</a>
<a href="/controls/contacts/">Contacts & Social Media</a>
<a href="/controls/avatar/">Avatar Management</a>
<h3>Manage My Content</h3>
<a href="/controls/submissions/">Submissions</a>
<a href="/controls/folders/submissions/">Folders</a>
<a href="/controls/journal/">Journals</a>
<a href="/controls/favorites/">Favorites</a>
<a href="/controls/buddylist/">Watches</a>
<a href="/controls/shouts/">Shouts</a>
<a href="/controls/badges/">Badges</a>
<h3>Security</h3>
<a href="/controls/sessions/logins/">Active Sessions</a>
<a href="/controls/sessions/logs/">Activity Log</a>
<a href="/controls/sessions/labels/">Browser Labels</a>
</div>
</div>
</div>
</li>
</ul>
<script type="text/javascript">
_fajs.push(['init_sfw_button', '.sfw-toggle']);
</script>
</nav>
<script type="text/javascript">
_fajs.push(function(){
// all menus that should be opened only one at a time
$$('.css-menu-toggle.only-one').invoke('observe', 'click', function(evt) {
var curr_input = $(evt.findElement('label').getAttribute('for'));
curr_input.next('.nav-ac-content').removeClassName('no-transition');
if(curr_input.checked === false) {
$$('.css-menu-toggle.only-one').each(function(elm){
var elm_input = $(elm.getAttribute('for'));
if(elm_input.checked === true) {
elm_input.next('.nav-ac-content').addClassName('no-transition');
elm_input.checked = false;
}
});
}
});
});
</script>
<div class="news-block">
<div id="admin_notice_do_not_adblock2" class="newsBlock">
<!--strong>Notice:</strong><span class="hideondesktop hideontablet"><br></span-->
<a href="https://gofund.me/0a0b27ba">Support Fur Affinity: Honoring Dragoneer's Legacy. https://gofund.me/0a0b27ba</a></div>
</div>
<div id="main-window" class="footer-mobile-tweak g-wrapper">
<div id="header" class="has-adminmessage">
<!-- user profile banner -->
<site-banner>
<a href="/">
<picture>
<source media="(max-width: 799px)" srcset="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner_mobile.jpg">
<source media="(min-width: 800px)" srcset="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner.jpg">
<img src="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner.jpg" alt="Profile Banner image">
</picture>
</a>
</site-banner>
<a name="top"></a>
</div>
<div id="site-content">
<!-- /header -->
<userpage-nav-header>
<userpage-nav-avatar>
<a class="current" href="/user/pcraxkers/"><img alt="pcraxkers" src="//a.furaffinity.net/1674032155/pcraxkers.gif"/></a>
</userpage-nav-avatar>
<userpage-nav-user-details>
<h1><username>
~PCraxkers
</username></h1>
<div class="font-small">
<username class="user-title">
<span class="hideonmobile">Registered:</span> Jul 16, 2021 06:31 </username>
</div>
</userpage-nav-user-details>
<userpage-nav-interface-buttons>
<a class="button standard stop" href="/unwatch/pcraxkers/?key=e7092dc7833fd3e83f6e0b972bf4044234de6127">-Watch</a>
<a class="button standard" href="/newpm/pcraxkers/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" style="transform: ;msFilter:;"><path d="M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm0 2v.511l-8 6.223-8-6.222V6h16zM4 18V9.044l7.386 5.745a.994.994 0 0 0 1.228 0L20 9.044 20.002 18H4z"></path></svg></a>
</userpage-nav-interface-buttons>
<userpage-nav-links>
<ul style="display:flex">
<li><h3><a href="/user/pcraxkers/">Home</a></h3></li>
<li><h3><a class="current" href="/gallery/pcraxkers/">Gallery</a></h3></li>
<li><h3><a href="/scraps/pcraxkers/">Scraps</a></h3></li>
<li><h3><a href="/favorites/pcraxkers/">Favs</a></h3></li>
<li><h3><a href="/journals/pcraxkers/">Journals</a></h3></li>
</ul>
</userpage-nav-links>
</userpage-nav-header>
<div class="clear"></div>
<!--- /USER NAV --->
<script type="text/javascript">
_fajs.push(function(){
$$('#jsBlockUnblockButton').invoke('observe', 'click', function(evt){
var message = 'Are you sure you want to ' + (evt.findElement('a').href.indexOf('/unblock') != -1 ? 'unblock' : 'block') + ' this user?';
if (!confirm(message)) {
evt.stop();
}
});
});
</script>
<div id="page-galleryscraps">
<div id="columnpage">
<div class="sidebar">
<div class="folder-list">
<div class="user-folders">
<div class="container-item-top">
<h4>Gallery Folders</h4>
</div>
<div class="default-folders">
<ul style="list-style-type:none">
<li>
<a href="/gallery/pcraxkers/" class="dotted">Main Gallery</a>
</li>
<li>
<a href="/scraps/pcraxkers/" class="dotted">Scraps</a>
</li>
</ul>
</div>
<ul class="default-group" style="list-style-type:none">
<li>
<a href="/gallery/pcraxkers/folder/1400495/KNOT-ME-OUT-COMIC" title="11 submissions" class="dotted">KNOT ME OUT - COMIC</a>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1505828/Hazbin-Hellvua" title="2 submissions" class="dotted">Hazbin/Hellvua</a>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1505829/Pablo" title="18 submissions" class="dotted">Pablo</a>
</li>
<li class="active">
&#x276f;&#x276f; <strong title="1 submissions">Hazbin/Hellvua</strong>
</li>
</ul>
</div>
</div>
<div class="rectangleAd">
<div data-id="sidebar" class="rectangleAd__slot format--mediumRectangle jsAdSlot"></div>
</div>
</div>
<div class="content">
<div class="leaderboardAd">
<div data-id="header_middle" class="leaderboardAd__slot format--leaderboard jsAdSlot"></div>
</div>
<section class="gallery-section">
<div class="section-body">
<div class="submission-list">
<div class="folder-description" style="width:100% !important">
<div class="container-item-top">
<h3>Hazbin/Hellvua</h3>
</div>
</div>
<div class="gallery-navigation aligncenter">
<div class="inline" style="width:32%">
&nbsp;
</div>
<div class="navigation-page-name inline" style="width:32%;">
Page #1 </div>
<div class="inline" style="width:32%">
&nbsp;
<!--button class="button standard" type="button">Next</button-->
</div>
</div>
<section id="gallery-gallery" class="gallery no-padding aligncenter no-artistname s-200 ">
<figure id="sid-59893254" class="r-adult t-image">
<b>
<u>
<a href="/view/59893254/">
<img data-tags="hazbin_hotel hazbin radioapple pussy alastor lucifer" class="blocked-content" alt="" src="//t.furaffinity.net/59893254@300-1739634205.jpg" data-width="210.802" data-height="200" style="width:210.802px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/59893254/" title="Request - RadioApple (Bottom Alastor)">Request - RadioApple (Bottom Alastor)</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
</section>
<script type="text/javascript">
_fajs.push(['init_gallery', 'gallery-gallery']);
</script>
<div class="gallery-navigation aligncenter">
<div class="inline" style="width:32%">
&nbsp;
</div>
<div class="inline" style="width:32%">
<div class="mobile-button">
<button type="button" class="button standard toggle_titles">Disable Titles</button>
</div>
</div>
<div class="inline" style="width:32%">
&nbsp;
<!--button class="button standard" type="button">Next</button-->
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
<script type="text/javascript">
var descriptions = {"59893254":{"title":"Request - RadioApple (Bottom Alastor)","description":"Request Box: https:\/\/koddy5555.wixsite.com\/artrequests","username":"PCraxkers","lower":"pcraxkers"}};
</script>
</div>
<!-- /<div id="site-content"> -->
<div id="footer">
<div class="auto_link footer-links">
<span class="hideonmobile">
<a href="/advertising">Advertise</a> |
<a href="/plus"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> Get FA+</a> |
<a href="https://shop.furaffinity.net/"><img style="position:relative;top:4px" src="/themes/beta/img/icons/merch_store_icon.png"> Merch Store</a> |
<a href="/tos">Terms of Service</a> |
<a href="/privacy">Privacy</a> |
<a href="/coc">Code of Conduct</a> |
<a href="/aup">Upload Policy</a>
</span>
</div>
<div class="footerAds">
<div class="footerAds__column">
<div class="footerAds__slot format--faMediumRectangle jsAdSlot" data-id="footer_left"></div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot footerAds__slot--faLogo">
<img src="/themes/beta/img/banners/fa_logo.png?v2">
</div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_top"></div>
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_bottom"></div>
</div>
</div>
<div class="online-stats">
91924 <strong><span title="Measured in the last 900 seconds">Users online</span></strong> &mdash;
5249 <strong>guests</strong>,
15710 <strong>registered</strong>
and 70965 <strong>other</strong>
<!-- Online Counter Last Update: Wed, 19 Feb 2025 11:52:00 -0800 -->
</div>
<small>Limit bot activity to periods with less than 10k registered users online.</small>
<br><br>
<strong>&copy; 2005-2025 Frost Dragon Art LLC</strong>
<div class="footnote">
Server Time: Feb 19, 2025 11:52 AM </div>
</div>
<div id="cookie-notification" class="default-hidden">
<div class="text-container">This website uses cookies to enhance your browsing experience. <a href="/privacy" target="_blank">Learn More</a></div>
<div class="button-container"><button class="accept">I Consent</button></div>
</div>
<script type="text/javascript">
_fajs.push(function(){
$$('#cookie-notification button').invoke('observe', 'click', function() {
setCookie('cc', 1, expiryyear, '/');
$('cookie-notification').addClassName('default-hidden');
});
$('cookie-notification').removeClassName('default-hidden');
});
</script>
</div>
<!-- <div id="main-window"> -->
<!--
Server Local Time: Feb 19, 2025 11:52 AM <br />
Page generated in 0.014 seconds [ 21.5% PHP, 78.5% SQL ] (25 queries) -->
<script type="text/javascript">
_fajs.push(function() {
var exists = getCookie('sz');
var saved = save_viewport_size();
if((!exists && saved) || (exists && saved && exists != saved)) {
//window.location.reload();
}
});
</script>
<script type="text/javascript" src="/themes/beta/js/censor.js?u=2025011001"></script>
<script type="text/javascript" src="/themes/beta/js/prototype.1.7.3.min.js"></script>
<script type="text/javascript" src="/themes/beta/js/script.js?u=2025011001"></script>
<script type="text/javascript">
var server_timestamp = 1739994759;
var client_timestamp = ((new Date()).getTime())/1000;
var server_timestamp_delta = server_timestamp - client_timestamp;
var sfw_cookie_name = 'sfw';
var news_cookie_name = 'n';
var adData = {"sizeConfig":[{"labels":["desktopWide"],"mediaQuery":"(min-width: 1065px)","sizesSupported":[[728,90],[300,250],[300,168],[300,600],[160,600]]},{"labels":["desktopNarrow"],"mediaQuery":"(min-width: 720px) and (max-width: 1064px)","sizesSupported":[[728,90],[300,250],[300,168]]},{"labels":["mobile"],"mediaQuery":"(min-width: 0px) and (max-width: 719px)","sizesSupported":[[320,50],[300,50],[320,100]]}],"slotConfig":{"header_middle":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"above_content":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"sidebar":{"containerSize":{"desktopWide":[300,250]},"providerPriority":["inhouse"]},"sidebar_tall":{"containerSize":{"desktopWide":[300,600]},"providerPriority":["inhouse"]},"footer_left":{"containerSize":{"desktopWide":[300,200],"desktopNarrow":[300,200],"mobile":[300,200]},"providerPriority":["inhouse"]},"footer_right_top":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"footer_right_bottom":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"header_right_left":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"header_right_right":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_top":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_bottom":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]}},"providerConfig":{"inhouse":{"domain":"https:\/\/rv.furaffinity.net","dataPath":"\/live\/www\/delivery\/spc.php","dataVariableName":"OA_output"}},"adConfig":{"inhouse":{"header_middle":{"default":{"tagId":11,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":19,"tagSize":[300,90]}}},"above_content":{"default":{"tagId":15,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":17,"tagSize":[300,90]}}},"sidebar":{"default":{"tagId":13,"tagSize":[300,250]}},"sidebar_tall":{"default":{"tagId":13,"tagSize":[300,250]}},"footer_left":{"default":{"tagId":10,"tagSize":[300,200]}},"footer_right_top":{"default":{"tagId":5,"tagSize":[300,90]}},"footer_right_bottom":{"default":{"tagId":6,"tagSize":[300,90]}},"header_right_left":{"default":{"tagId":2,"tagSize":[300,90]}},"header_right_right":{"default":{"tagId":4,"tagSize":[300,90]}},"sidebar_top":{"default":{"tagId":2,"tagSize":[300,90]}},"sidebar_bottom":{"default":{"tagId":4,"tagSize":[300,90]}}}}};
window.fad = new adManager(adData.sizeConfig, adData.slotConfig, adData.providerConfig, adData.adConfig, 1);
</script>
<script type="text/javascript">
_fajs.push(function() {
var ddmenuOptions = {
menuId: "ddmenu",
linkIdToMenuHtml: null,
open: "onmouseover", // or "onclick"
delay: 1,
speed: 1,
keysNav: true,
license: "2c1f72"
};
var ddmenu = new Ddmenu(ddmenuOptions);
});
</script>
</body>
<!---
|\ /|
/_^ ^_\
\v/
The fox goes "moo!"
--->
</html>

View File

@@ -0,0 +1,916 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" class="no-js" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Artwork Gallery for PCraxkers -- Fur Affinity [dot] net</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Fur Affinity | For all things fluff, scaled, and feathered!" />
<meta name="keywords" content="fur furry furries fursuit fursuits cosplay brony bronies zootopia scalies kemono anthro anthropormophic art online gallery portfolio" />
<meta name="distribution" content="global" />
<meta name="copyright" content="Frost Dragon Art LLC" />
<meta name="robots" content="noai, noimageai" />
<link rel="icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=EDGE" />
<!-- generic -->
<meta name="robots" content="noindex" />
<!-- og -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Artwork Gallery for PCraxkers -- Fur Affinity [dot] net" />
<meta property="og:url" content="https://www.furaffinity.net/gallery/pcraxkers/" />
<meta property="og:description" content="Australian Animator/artist ·Male · . . A place where I post my shame . . ╰━━━━━( ✦ )━━━━━╯" />
<meta property="og:image" content="https://t.furaffinity.net/56255183@600-1712970293.jpg" />
<meta property="og:image:secure_url" content="https://t.furaffinity.net/56255183@600-1712970293.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="201" />
<meta property="og:image:height" content="600" />
<!-- twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:domain" content="furaffinity.net" />
<meta name="twitter:site" content="@furaffinity" />
<meta name="twitter:title" content="Artwork Gallery for PCraxkers -- Fur Affinity [dot] net" />
<meta name="twitter:description" content="Australian Animator/artist ·Male · . . A place where I post my shame . . ╰━━━━━( ✦ )━━━━━╯" />
<meta name="twitter:url" content="https://www.furaffinity.net/gallery/pcraxkers/" />
<meta name="twitter:image" content="https://t.furaffinity.net/56255183@600-1712970293.jpg" />
<meta name="twitter:label1" content="Submission Title" />
<meta name="twitter:data1" content="“KNOT ME OUT” - Page 2/11" />
<script type="text/javascript">
var _faurl={d:'//d.furaffinity.net',a:'//a.furaffinity.net',r:'//rv.furaffinity.net',t:'//t.furaffinity.net',pb:'/themes/beta/js/prebid-7.54.5-fa.js'};
</script>
<script type="text/javascript" src="/themes/beta/js/common.js?u=2025011001"></script>
<link type="text/css" rel="stylesheet" href="/themes/beta/css/ui_theme_dark.css?u=2025011001" />
<!-- browser hints -->
<link rel="preconnect" href="//t.furaffinity.net" />
<link rel="preconnect" href="//a.furaffinity.net" />
<link rel="preconnect" href="//rv.furaffinity.net" />
<link rel="preconnect" href="https://www15.smartadserver.com" />
<link rel="preload" href="/themes/beta/js/prototype.1.7.3.min.js" as="script" />
<link rel="preload" href="/themes/beta/js/script.js?u=2025011001" as="script" />
</head>
<!-- EU request: no -->
<body id="pageid-gallery" data-static-path="/themes/beta" data-user-logged-in="1" data-tag-blocklist="" data-tag-blocklist-hide-tagless="0" data-tag-blocklist-nonce="d7890b2d46020491ba77ee39193009a899012433">
<script type="text/javascript">
0; // attempted fix for fouc in ff
</script>
<!-- sidebar -->
<div class="mobile-navigation">
<div class="mobile-nav-container">
<div class="mobile-nav-container-item left">
<label for="mobile-menu-nav" class="css-menu-toggle only-one"><img class="burger-menu" src="/themes/beta/img/fa-burger-menu-icon.png"></label>
</div>
<div class="mobile-nav-container-item center"><a class="mobile-nav-logo" href="/"><img class="site-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-container-item right">
</div>
</div>
<div class="nav-ac-container">
<input id="mobile-menu-nav" name="accordion-1" type="checkbox" />
<article class="nav-ac-content mobile-menu">
<div class="mobile-nav-content-container">
<div class="aligncenter">
<a href="/user/zzreg/"><img class="loggedin_user_avatar avatar" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
<h2 style="margin-bottom:0"><a href="/user/zzreg/">zzreg</a></h2>
<a href="/user/zzreg/">Userpage</a> |
<a href="/msg/pms/">Notes</a> |
<a href="/controls/journal/">Journals</a> |
<a href="/plus/"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> FA+</a> |
<a href="https://shop.furaffinity.net" target="_blank"><img style="position:relative;top:3px" src="/themes/beta/img/icons/merch_store_icon.png"> Shop</a>
<br>
</div>
<hr>
<h2><a href="/browse/">Browse</a></h2>
<h2><a href="/search/">Search</a></h2>
<h2><a href="/submit/">Upload</a></h2>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-0"><h2 style="margin-top:0;padding-top:0">Support &#x25BC;</h2></label>
<input id="mobile-menu-submenu-0" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<a href="/journals/fender">News & Updates</a><br>
<a href="/help/">Help & Support</a><br>
<a href="/advertising.html">Advertising</a><br>
<a href="/blm">Black Lives Matter</a>
<h3>SUPPORT FA</h3>
<a href="/plus/">Subscribe to FA+ </a><br>
<a href="https://shop.furaffinity.net/" target="_blank">FA Merch Store</a>
<h3>RULES & POLICIES</h3>
<a href="/tos">Terms of Service</a><br>
<a href="/privacy">Privacy</a><br>
<a href="/coc">Code of Conduct</a><br>
<a href="/aup">Upload Policy</a>
<h3>SOCIAL</h3>
<a href="https://discord.gg/furaffinity">Discord</a><br>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Support</h3>
<a href="/controls/troubletickets/">REPORT A PROBLEM</a>
</article>
</div>
<div class="mobile-sfw-toggle">
<h2>SFW Mode</h2>
<div class="sfw-toggle type-slider slider-button-wrapper">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-1"><h2 style="margin-top:0;padding-top:0">Settings &#x25BC;</h2></label>
<input id="mobile-menu-submenu-1" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<h3>ACCOUNT INFORMATION</h3>
<a href="/controls/settings/">Account Settings</a><br>
<a href="/controls/site-settings/">Global Site Settings</a><br>
<a href="/controls/user-settings/">User Settings</a>
<h3>CUSTOMIZE USER PROFILE</h3>
<a href="/controls/profile/">Profile Info</a><br>
<a href="/controls/profilebanner/">Profile Banner</a><br>
<a href="/controls/contacts/">Contacts and Social Media</a><br>
<a href="/controls/avatar/">Avatar Management</a>
<h3>MANAGE MY CONTENT</h3>
<a href="/controls/submissions/">Submissions</a><br>
<a href="/controls/folders/submissions/">Folders</a><br>
<a href="/controls/journal/">Journals</a><br>
<a href="/controls/favorites/">Favorites</a><br>
<a href="/controls/buddylist/">Watches</a><br>
<a href="/controls/shouts/">Shouts</a><br>
<a href="/controls/badges/">Badges</a>
<h3>SECURITY</h3>
<a href="/controls/sessions/logins/">Active Sessions</a><br>
<a href="/controls/sessions/logs/">Activity Log</a><br>
<a href="/controls/sessions/labels/">Browser Labels</a>
</article>
</div>
<hr>
<hr>
<h2><form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="86700f9e03ccdf5b667e25b4b13573c6f3c73878"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</h2>
<h2></h2>
</div>
</article>
</div>
</div>
<div class="mobile-notification-bar">
<a class="notification-container inline" href="/msg/submissions/" title="86,664 Submission Notifications">86664S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="17,902 Journal Notifications">17902J</a>
</div>
<nav id="ddmenu">
<div class="mobile-nav navhideondesktop hideonmobile hideontablet">
<div class="mobile-nav-logo"><a class="mobile-nav-logo" href="/"><img src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-header-item"><a href="/browse/">Browse</a></div>
<div class="mobile-nav-header-item"><a href="/search/">Search</a></div>
</div>
<div class="menu-icon"></div>
<ul class="navhideonmobile">
<li class="lileft"><div class="lileft hideonmobile" style="vertical-align:middle;line-height:0 !important" ><a class="top-heading" href="/"><img class="nav-bar-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div></li>
<li class="lileft"><a class="top-heading" href="/browse/"><div class="sprite-paw menu-space-saver hideonmobile"></div>Browse</a></li>
<li class="lileft"><a class="top-heading hideondesktop" href="/search/">Search</a></li>
<li class="lileft"><a class="top-heading" href="/submit/"><div class="sprite-upload menu-space-saver hideonmobile"></div> Upload</a></li>
<li class="lileft">
<a class="top-heading" href="#"><div class="sprite-news menu-space-saver hideonmobile"></div>Support</a>
<i class="caret"></i>
<div class="dropdown dropdown-left ">
<div class="dd-inner">
<div class="column">
<h3>Community</h3>
<a href="/journals/fender">News & Updates</a>
<a href="/help/">Help & Support</a>
<a href="/advertising.html">Advertising</a>
<a href="/blm/">Black Lives Matter</a>
<h3>Rules & Policies</h3>
<a href="/tos">Terms of Service</a>
<a href="/privacy">Privacy</a>
<a href="/coc">Code of Conduct</a>
<a href="/aup">Upload Policy</a>
<h3>Social</h3>
<a href="https://discord.gg/furaffinity">Discord</a>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
</div>
</div>
</div>
</li>
<li class="lileft"><a class="top-heading" href="/plus/" title="FA+"><img style="position:relative;top:3px" src="/themes/beta/img/the-golden-pawb.png"><span class="hidebrowselowres"> FA+</span></a></li>
<li class="lileft"><a class="top-heading" href="https://shop.furaffinity.net" title="Shop" target="_blank"><img style="position:relative;top:3px" src="/themes/beta/img/icons/merch_store_icon.png"><span class="hidebrowselowres"> Shop</span></a></li>
<div class="lileft hideonmobile">
<form id="searchbox" method="get" action="/search/">
<input type="search" name="q" placeholder="SEARCH">
<a href="/search">&nbsp;</a>
</form>
</div>
<li class="message-bar-desktop">
<a class="notification-container inline" href="/msg/submissions/" title="86,664 Submission Notifications">86664S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="17,902 Journal Notifications">17902J</a>
</li>
<li>
<div class="floatleft hideonmobile">
<a href="/user/zzreg"><img class="loggedin_user_avatar menubar-icon-resize avatar" style="cursor:pointer" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
</div>
</li>
<li class="submenu-trigger">
<div class="floatleft hideonmobile">
<svg class="avatar-submenu-trigger banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24"><path d="M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z"></path></svg>
</div>
<a id="my-username" class="top-heading hideondesktop" href="#"><span class="hideondesktop">My FA ( </span>zzreg<span class="hideondesktop"> )</span></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account</h3>
<a href="/user/zzreg/">My Userpage</a>
<a href="/msg/pms/">Check My Notes</a>
<a href="/controls/journal/">Create a Journal</a>
<a href="/commissions/zzreg/">My Commission Info</a>
<h3>Support Fur Affinity</h3>
<a href="/plus/">Subscribe to FA+ </a>
<a href="https://shop.furaffinity.net/" target="_blank">Merch Store</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
<div class="mobile-sfw-toggle">
<h3 class="padding-top:10px">Toggle SFW</h3>
<div class="sfw-toggle type-slider slider-button-wrapper" style="position:relative;top:5px">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<hr>
<form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="86700f9e03ccdf5b667e25b4b13573c6f3c73878"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</div>
</div>
</div>
</li>
<li class="submenu-trigger">
<a class="top-heading" href="#"><svg class="banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" style="transform: ;msFilter:;"><path d="M12 16c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.084 0 2 .916 2 2s-.916 2-2 2-2-.916-2-2 .916-2 2-2z"></path><path d="m2.845 16.136 1 1.73c.531.917 1.809 1.261 2.73.73l.529-.306A8.1 8.1 0 0 0 9 19.402V20c0 1.103.897 2 2 2h2c1.103 0 2-.897 2-2v-.598a8.132 8.132 0 0 0 1.896-1.111l.529.306c.923.53 2.198.188 2.731-.731l.999-1.729a2.001 2.001 0 0 0-.731-2.732l-.505-.292a7.718 7.718 0 0 0 0-2.224l.505-.292a2.002 2.002 0 0 0 .731-2.732l-.999-1.729c-.531-.92-1.808-1.265-2.731-.732l-.529.306A8.1 8.1 0 0 0 15 4.598V4c0-1.103-.897-2-2-2h-2c-1.103 0-2 .897-2 2v.598a8.132 8.132 0 0 0-1.896 1.111l-.529-.306c-.924-.531-2.2-.187-2.731.732l-.999 1.729a2.001 2.001 0 0 0 .731 2.732l.505.292a7.683 7.683 0 0 0 0 2.223l-.505.292a2.003 2.003 0 0 0-.731 2.733zm3.326-2.758A5.703 5.703 0 0 1 6 12c0-.462.058-.926.17-1.378a.999.999 0 0 0-.47-1.108l-1.123-.65.998-1.729 1.145.662a.997.997 0 0 0 1.188-.142 6.071 6.071 0 0 1 2.384-1.399A1 1 0 0 0 11 5.3V4h2v1.3a1 1 0 0 0 .708.956 6.083 6.083 0 0 1 2.384 1.399.999.999 0 0 0 1.188.142l1.144-.661 1 1.729-1.124.649a1 1 0 0 0-.47 1.108c.112.452.17.916.17 1.378 0 .461-.058.925-.171 1.378a1 1 0 0 0 .471 1.108l1.123.649-.998 1.729-1.145-.661a.996.996 0 0 0-1.188.142 6.071 6.071 0 0 1-2.384 1.399A1 1 0 0 0 13 18.7l.002 1.3H11v-1.3a1 1 0 0 0-.708-.956 6.083 6.083 0 0 1-2.384-1.399.992.992 0 0 0-1.188-.141l-1.144.662-1-1.729 1.124-.651a1 1 0 0 0 .471-1.108z"></path></svg></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account Information</h3>
<a href="/controls/settings/">Account Settings</a>
<a href="/controls/site-settings/">Global Site Settings</a>
<a href="/controls/user-settings/">User Settings</a>
<h3>Customize User Profile</h3>
<a href="/controls/profile/">Profile Info</a>
<a href="/controls/profilebanner/">Profile Banner</a>
<a href="/controls/contacts/">Contacts & Social Media</a>
<a href="/controls/avatar/">Avatar Management</a>
<h3>Manage My Content</h3>
<a href="/controls/submissions/">Submissions</a>
<a href="/controls/folders/submissions/">Folders</a>
<a href="/controls/journal/">Journals</a>
<a href="/controls/favorites/">Favorites</a>
<a href="/controls/buddylist/">Watches</a>
<a href="/controls/shouts/">Shouts</a>
<a href="/controls/badges/">Badges</a>
<h3>Security</h3>
<a href="/controls/sessions/logins/">Active Sessions</a>
<a href="/controls/sessions/logs/">Activity Log</a>
<a href="/controls/sessions/labels/">Browser Labels</a>
</div>
</div>
</div>
</li>
</ul>
<script type="text/javascript">
_fajs.push(['init_sfw_button', '.sfw-toggle']);
</script>
</nav>
<script type="text/javascript">
_fajs.push(function(){
// all menus that should be opened only one at a time
$$('.css-menu-toggle.only-one').invoke('observe', 'click', function(evt) {
var curr_input = $(evt.findElement('label').getAttribute('for'));
curr_input.next('.nav-ac-content').removeClassName('no-transition');
if(curr_input.checked === false) {
$$('.css-menu-toggle.only-one').each(function(elm){
var elm_input = $(elm.getAttribute('for'));
if(elm_input.checked === true) {
elm_input.next('.nav-ac-content').addClassName('no-transition');
elm_input.checked = false;
}
});
}
});
});
</script>
<div class="news-block">
<div id="admin_notice_do_not_adblock2" class="newsBlock">
<!--strong>Notice:</strong><span class="hideondesktop hideontablet"><br></span-->
<a href="https://gofund.me/0a0b27ba">Support Fur Affinity: Honoring Dragoneer's Legacy. https://gofund.me/0a0b27ba</a></div>
</div>
<div id="main-window" class="footer-mobile-tweak g-wrapper">
<div id="header" class="has-adminmessage">
<!-- user profile banner -->
<site-banner>
<a href="/">
<picture>
<source media="(max-width: 799px)" srcset="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner_mobile.jpg">
<source media="(min-width: 800px)" srcset="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner.jpg">
<img src="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner.jpg" alt="Profile Banner image">
</picture>
</a>
</site-banner>
<a name="top"></a>
</div>
<div id="site-content">
<!-- /header -->
<userpage-nav-header>
<userpage-nav-avatar>
<a class="current" href="/user/pcraxkers/"><img alt="pcraxkers" src="//a.furaffinity.net/1674032155/pcraxkers.gif"/></a>
</userpage-nav-avatar>
<userpage-nav-user-details>
<h1><username>
~PCraxkers
</username></h1>
<div class="font-small">
<username class="user-title">
<span class="hideonmobile">Registered:</span> Jul 16, 2021 06:31 </username>
</div>
</userpage-nav-user-details>
<userpage-nav-interface-buttons>
<a class="button standard stop" href="/unwatch/pcraxkers/?key=e7092dc7833fd3e83f6e0b972bf4044234de6127">-Watch</a>
<a class="button standard" href="/newpm/pcraxkers/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" style="transform: ;msFilter:;"><path d="M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm0 2v.511l-8 6.223-8-6.222V6h16zM4 18V9.044l7.386 5.745a.994.994 0 0 0 1.228 0L20 9.044 20.002 18H4z"></path></svg></a>
</userpage-nav-interface-buttons>
<userpage-nav-links>
<ul style="display:flex">
<li><h3><a href="/user/pcraxkers/">Home</a></h3></li>
<li><h3><a class="current" href="/gallery/pcraxkers/">Gallery</a></h3></li>
<li><h3><a href="/scraps/pcraxkers/">Scraps</a></h3></li>
<li><h3><a href="/favorites/pcraxkers/">Favs</a></h3></li>
<li><h3><a href="/journals/pcraxkers/">Journals</a></h3></li>
</ul>
</userpage-nav-links>
</userpage-nav-header>
<div class="clear"></div>
<!--- /USER NAV --->
<script type="text/javascript">
_fajs.push(function(){
$$('#jsBlockUnblockButton').invoke('observe', 'click', function(evt){
var message = 'Are you sure you want to ' + (evt.findElement('a').href.indexOf('/unblock') != -1 ? 'unblock' : 'block') + ' this user?';
if (!confirm(message)) {
evt.stop();
}
});
});
</script>
<div id="page-galleryscraps">
<div id="columnpage">
<div class="sidebar">
<div class="folder-list">
<div class="user-folders">
<div class="container-item-top">
<h4>Gallery Folders</h4>
</div>
<div class="default-folders">
<ul style="list-style-type:none">
<li>
<a href="/gallery/pcraxkers/" class="dotted">Main Gallery</a>
</li>
<li>
<a href="/scraps/pcraxkers/" class="dotted">Scraps</a>
</li>
</ul>
</div>
<ul class="default-group" style="list-style-type:none">
<li class="active">
&#x276f;&#x276f; <strong title="11 submissions">KNOT ME OUT - COMIC</strong>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1505828/Hazbin-Hellvua" title="2 submissions" class="dotted">Hazbin/Hellvua</a>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1505829/Pablo" title="18 submissions" class="dotted">Pablo</a>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1510162/Hazbin-Hellvua" title="1 submissions" class="dotted">Hazbin/Hellvua</a>
</li>
</ul>
</div>
</div>
<div class="rectangleAd">
<div data-id="sidebar" class="rectangleAd__slot format--mediumRectangle jsAdSlot"></div>
</div>
</div>
<div class="content">
<div class="leaderboardAd">
<div data-id="header_middle" class="leaderboardAd__slot format--leaderboard jsAdSlot"></div>
</div>
<section class="gallery-section">
<div class="section-body">
<div class="submission-list">
<div class="folder-description" style="width:100% !important">
<div class="container-item-top">
<h3>KNOT ME OUT - COMIC</h3>
</div>
</div>
<div class="gallery-navigation aligncenter">
<div class="inline" style="width:32%">
&nbsp;
</div>
<div class="navigation-page-name inline" style="width:32%;">
Page #1 </div>
<div class="inline" style="width:32%">
&nbsp;
<!--button class="button standard" type="button">Next</button-->
</div>
</div>
<section id="gallery-gallery" class="gallery no-padding aligncenter no-artistname s-200 ">
<figure id="sid-56257478" class="r-adult t-image">
<b>
<u>
<a href="/view/56257478/">
<img data-tags="knot knotting knotted trip slip deer husky wall stuckinwall comic" class="blocked-content" alt="" src="//t.furaffinity.net/56257478@200-1712990864.jpg" data-width="78.55" data-height="200" style="width:78.55px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56257478/" title="“KNOT ME OUT” - Page 11/11 - END">“KNOT ME OUT” - Page 11/11 - END</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56257455" class="r-adult t-image">
<b>
<u>
<a href="/view/56257455/">
<img data-tags="pump pumping cum cumming deer husky dog comic stuck stuckinwall wall" class="blocked-content" alt="" src="//t.furaffinity.net/56257455@200-1712990589.jpg" data-width="72.916" data-height="200" style="width:72.916px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56257455/" title="“KNOT ME OUT” - Page 10/11">“KNOT ME OUT” - Page 10/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56257447" class="r-adult t-image">
<b>
<u>
<a href="/view/56257447/">
<img data-tags="knot knotting knotted comic deer husky dog cum cumming wormseye" class="blocked-content" alt="" src="//t.furaffinity.net/56257447@200-1712990404.jpg" data-width="89.874" data-height="200" style="width:89.874px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56257447/" title="“KNOT ME OUT” - Page 9/11">“KNOT ME OUT” - Page 9/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56255449" class="r-adult t-image">
<b>
<u>
<a href="/view/56255449/">
<img data-tags="knot knotting deer husky dog stuck stuckinwall" class="blocked-content" alt="" src="//t.furaffinity.net/56255449@200-1712972291.jpg" data-width="95.464" data-height="200" style="width:95.464px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56255449/" title="“KNOT ME OUT” - Page 8/11">“KNOT ME OUT” - Page 8/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56255361" class="r-adult t-image">
<b>
<u>
<a href="/view/56255361/">
<img data-tags="deer stuck stuckinwall wall comic" class="blocked-content" alt="" src="//t.furaffinity.net/56255361@200-1712971553.jpg" data-width="95.887" data-height="200" style="width:95.887px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56255361/" title="“KNOT ME OUT” - Page 7/11">“KNOT ME OUT” - Page 7/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56255339" class="r-adult t-image">
<b>
<u>
<a href="/view/56255339/">
<img data-tags="stuck stuckinwall wall deer husky dog" class="blocked-content" alt="" src="//t.furaffinity.net/56255339@200-1712971367.jpg" data-width="72.023" data-height="200" style="width:72.023px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56255339/" title="“KNOT ME OUT” - Page 6/11">“KNOT ME OUT” - Page 6/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56255248" class="r-adult t-image">
<b>
<u>
<a href="/view/56255248/">
<img data-tags="stuck stuckinwall wall deer dog husky rimming comic" class="blocked-content" alt="" src="//t.furaffinity.net/56255248@200-1712970728.jpg" data-width="90.871" data-height="200" style="width:90.871px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56255248/" title="“KNOT ME OUT” - Page 5/11">“KNOT ME OUT” - Page 5/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56255219" class="r-adult t-image">
<b>
<u>
<a href="/view/56255219/">
<img data-tags="rimming wall stuck stuckinwall deer dog husky butt" class="blocked-content" alt="" src="//t.furaffinity.net/56255219@200-1712970577.jpg" data-width="82.953" data-height="200" style="width:82.953px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56255219/" title="“KNOT ME OUT” - Page 4/11">“KNOT ME OUT” - Page 4/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56255203" class="r-adult t-image">
<b>
<u>
<a href="/view/56255203/">
<img data-tags="butt stuck stuckinwall wall deer dog comic" class="blocked-content" alt="" src="//t.furaffinity.net/56255203@200-1712970427.jpg" data-width="75.32" data-height="200" style="width:75.32px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56255203/" title="“KNOT ME OUT” - Page 3/11">“KNOT ME OUT” - Page 3/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56255183" class="r-general t-image">
<b>
<u>
<a href="/view/56255183/">
<img data-tags="stuckinwall stuck wall deer dog" class="blocked-content" alt="" src="//t.furaffinity.net/56255183@200-1712970293.jpg" data-width="67.271" data-height="200" style="width:67.271px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56255183/" title="“KNOT ME OUT” - Page 2/11">“KNOT ME OUT” - Page 2/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-56246081" class="r-general t-image">
<b>
<u>
<a href="/view/56246081/">
<img data-tags="fox comic wall stuckinwall deer stuck" class="blocked-content" alt="" src="//t.furaffinity.net/56246081@200-1712914173.jpg" data-width="85.083" data-height="200" style="width:85.083px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56246081/" title="“KNOT ME OUT” - Page 1/11">“KNOT ME OUT” - Page 1/11</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
</section>
<script type="text/javascript">
_fajs.push(['init_gallery', 'gallery-gallery']);
</script>
<div class="gallery-navigation aligncenter">
<div class="inline" style="width:32%">
&nbsp;
</div>
<div class="inline" style="width:32%">
<div class="mobile-button">
<button type="button" class="button standard toggle_titles">Disable Titles</button>
</div>
</div>
<div class="inline" style="width:32%">
&nbsp;
<!--button class="button standard" type="button">Next</button-->
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
<script type="text/javascript">
var descriptions = {"56257478":{"title":"\u201cKNOT ME OUT\u201d - Page 11\/11 - END","description":"[i][b]END!\r\n[\/b][\/i]\r\n[url=https:\/\/www.furaffinity.net\/view\/56246081\/] BACK TO PAGE1 [\/url]\r\n\r\n[b]CREDITS: \r\n[\/b] PANEL1 - referenced from \u2018Rajii\u2019\r\n PANEL 4 - Inspired by \u201cA Fruitful Quest\u201d","username":"PCraxkers","lower":"pcraxkers"},"56257455":{"title":"\u201cKNOT ME OUT\u201d - Page 10\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56257478\/] NEXT [\/url]\r\n\r\n[url=https:\/\/www.furaffinity.net\/view\/56257447\/] BACK [\/url]","username":"PCraxkers","lower":"pcraxkers"},"56257447":{"title":"\u201cKNOT ME OUT\u201d - Page 9\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56257455\/] NEXT [\/url]\r\n\r\n[url=https:\/\/www.furaffinity.net\/view\/56255449\/] BACK [\/url]","username":"PCraxkers","lower":"pcraxkers"},"56255449":{"title":"\u201cKNOT ME OUT\u201d - Page 8\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56257447\/] NEXT [\/url]\r\n\r\n[url=https:\/\/www.furaffinity.net\/view\/56255361\/] BACK [\/url]","username":"PCraxkers","lower":"pcraxkers"},"56255361":{"title":"\u201cKNOT ME OUT\u201d - Page 7\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56255449\/] NEXT [\/url]\r\n\r\n[url=https:\/\/www.furaffinity.net\/view\/56255339\/] BACK [\/url]","username":"PCraxkers","lower":"pcraxkers"},"56255339":{"title":"\u201cKNOT ME OUT\u201d - Page 6\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56255361\/] NEXT [\/url]\r\n\r\n[url=https:\/\/www.furaffinity.net\/view\/56255248\/] BACK [\/url]","username":"PCraxkers","lower":"pcraxkers"},"56255248":{"title":"\u201cKNOT ME OUT\u201d - Page 5\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56255339\/] NEXT [\/url]\r\n\r\n[url=https:\/\/www.furaffinity.net\/view\/56255219\/] BACK [\/url]","username":"PCraxkers","lower":"pcraxkers"},"56255219":{"title":"\u201cKNOT ME OUT\u201d - Page 4\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56255248\/] NEXT [\/url]\r\n\r\n[url=https:\/\/www.furaffinity.net\/view\/56255203\/] BACK [\/url]","username":"PCraxkers","lower":"pcraxkers"},"56255203":{"title":"\u201cKNOT ME OUT\u201d - Page 3\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56255219\/] NEXT [\/url]\r\n\r\n[url=https:\/\/www.furaffinity.net\/view\/56255183\/] BACK [\/url]\r\n\r\n[i]NOTE: Page 3, second panel pose was loosely referenced from on of Isatorus animations.[\/i]","username":"PCraxkers","lower":"pcraxkers"},"56255183":{"title":"\u201cKNOT ME OUT\u201d - Page 2\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56255203\/] NEXT [\/url]\r\n\r\n[url=https:\/\/www.furaffinity.net\/view\/56246081\/] BACK [\/url]","username":"PCraxkers","lower":"pcraxkers"},"56246081":{"title":"\u201cKNOT ME OUT\u201d - Page 1\/11","description":"[url=https:\/\/www.furaffinity.net\/view\/56255183\/] NEXT [\/url] \r\n\r\nDrawing request - comic\r\n Rey Cameo, Belongs to: @\/AnimatedMau","username":"PCraxkers","lower":"pcraxkers"}};
</script>
</div>
<!-- /<div id="site-content"> -->
<div id="footer">
<div class="auto_link footer-links">
<span class="hideonmobile">
<a href="/advertising">Advertise</a> |
<a href="/plus"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> Get FA+</a> |
<a href="https://shop.furaffinity.net/"><img style="position:relative;top:4px" src="/themes/beta/img/icons/merch_store_icon.png"> Merch Store</a> |
<a href="/tos">Terms of Service</a> |
<a href="/privacy">Privacy</a> |
<a href="/coc">Code of Conduct</a> |
<a href="/aup">Upload Policy</a>
</span>
</div>
<div class="footerAds">
<div class="footerAds__column">
<div class="footerAds__slot format--faMediumRectangle jsAdSlot" data-id="footer_left"></div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot footerAds__slot--faLogo">
<img src="/themes/beta/img/banners/fa_logo.png?v2">
</div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_top"></div>
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_bottom"></div>
</div>
</div>
<div class="online-stats">
91411 <strong><span title="Measured in the last 900 seconds">Users online</span></strong> &mdash;
5228 <strong>guests</strong>,
15761 <strong>registered</strong>
and 70422 <strong>other</strong>
<!-- Online Counter Last Update: Wed, 19 Feb 2025 11:51:00 -0800 -->
</div>
<small>Limit bot activity to periods with less than 10k registered users online.</small>
<br><br>
<strong>&copy; 2005-2025 Frost Dragon Art LLC</strong>
<div class="footnote">
Server Time: Feb 19, 2025 11:51 AM </div>
</div>
<div id="cookie-notification" class="default-hidden">
<div class="text-container">This website uses cookies to enhance your browsing experience. <a href="/privacy" target="_blank">Learn More</a></div>
<div class="button-container"><button class="accept">I Consent</button></div>
</div>
<script type="text/javascript">
_fajs.push(function(){
$$('#cookie-notification button').invoke('observe', 'click', function() {
setCookie('cc', 1, expiryyear, '/');
$('cookie-notification').addClassName('default-hidden');
});
$('cookie-notification').removeClassName('default-hidden');
});
</script>
</div>
<!-- <div id="main-window"> -->
<!--
Server Local Time: Feb 19, 2025 11:51 AM <br />
Page generated in 0.019 seconds [ 15% PHP, 85% SQL ] (25 queries) -->
<script type="text/javascript">
_fajs.push(function() {
var exists = getCookie('sz');
var saved = save_viewport_size();
if((!exists && saved) || (exists && saved && exists != saved)) {
//window.location.reload();
}
});
</script>
<script type="text/javascript" src="/themes/beta/js/censor.js?u=2025011001"></script>
<script type="text/javascript" src="/themes/beta/js/prototype.1.7.3.min.js"></script>
<script type="text/javascript" src="/themes/beta/js/script.js?u=2025011001"></script>
<script type="text/javascript">
var server_timestamp = 1739994664;
var client_timestamp = ((new Date()).getTime())/1000;
var server_timestamp_delta = server_timestamp - client_timestamp;
var sfw_cookie_name = 'sfw';
var news_cookie_name = 'n';
var adData = {"sizeConfig":[{"labels":["desktopWide"],"mediaQuery":"(min-width: 1065px)","sizesSupported":[[728,90],[300,250],[300,168],[300,600],[160,600]]},{"labels":["desktopNarrow"],"mediaQuery":"(min-width: 720px) and (max-width: 1064px)","sizesSupported":[[728,90],[300,250],[300,168]]},{"labels":["mobile"],"mediaQuery":"(min-width: 0px) and (max-width: 719px)","sizesSupported":[[320,50],[300,50],[320,100]]}],"slotConfig":{"header_middle":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"above_content":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"sidebar":{"containerSize":{"desktopWide":[300,250]},"providerPriority":["inhouse"]},"sidebar_tall":{"containerSize":{"desktopWide":[300,600]},"providerPriority":["inhouse"]},"footer_left":{"containerSize":{"desktopWide":[300,200],"desktopNarrow":[300,200],"mobile":[300,200]},"providerPriority":["inhouse"]},"footer_right_top":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"footer_right_bottom":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"header_right_left":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"header_right_right":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_top":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_bottom":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]}},"providerConfig":{"inhouse":{"domain":"https:\/\/rv.furaffinity.net","dataPath":"\/live\/www\/delivery\/spc.php","dataVariableName":"OA_output"}},"adConfig":{"inhouse":{"header_middle":{"default":{"tagId":11,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":19,"tagSize":[300,90]}}},"above_content":{"default":{"tagId":15,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":17,"tagSize":[300,90]}}},"sidebar":{"default":{"tagId":13,"tagSize":[300,250]}},"sidebar_tall":{"default":{"tagId":13,"tagSize":[300,250]}},"footer_left":{"default":{"tagId":10,"tagSize":[300,200]}},"footer_right_top":{"default":{"tagId":5,"tagSize":[300,90]}},"footer_right_bottom":{"default":{"tagId":6,"tagSize":[300,90]}},"header_right_left":{"default":{"tagId":2,"tagSize":[300,90]}},"header_right_right":{"default":{"tagId":4,"tagSize":[300,90]}},"sidebar_top":{"default":{"tagId":2,"tagSize":[300,90]}},"sidebar_bottom":{"default":{"tagId":4,"tagSize":[300,90]}}}}};
window.fad = new adManager(adData.sizeConfig, adData.slotConfig, adData.providerConfig, adData.adConfig, 1);
</script>
<script type="text/javascript">
_fajs.push(function() {
var ddmenuOptions = {
menuId: "ddmenu",
linkIdToMenuHtml: null,
open: "onmouseover", // or "onclick"
delay: 1,
speed: 1,
keysNav: true,
license: "2c1f72"
};
var ddmenu = new Ddmenu(ddmenuOptions);
});
</script>
</body>
<!---
|\ /|
/_^ ^_\
\v/
The fox goes "moo!"
--->
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,947 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" class="no-js" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Scraps Gallery for PCraxkers -- Fur Affinity [dot] net</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Fur Affinity | For all things fluff, scaled, and feathered!" />
<meta name="keywords" content="fur furry furries fursuit fursuits cosplay brony bronies zootopia scalies kemono anthro anthropormophic art online gallery portfolio" />
<meta name="distribution" content="global" />
<meta name="copyright" content="Frost Dragon Art LLC" />
<meta name="robots" content="noai, noimageai" />
<link rel="icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/themes/beta/img/favicon.ico" type="image/x-icon" />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=EDGE" />
<!-- generic -->
<meta name="robots" content="noindex" />
<!-- og -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Scraps Gallery for PCraxkers -- Fur Affinity [dot] net" />
<meta property="og:url" content="https://www.furaffinity.net/gallery/pcraxkers/" />
<meta property="og:description" content="Australian Animator/artist ·Male · . . A place where I post my shame . . ╰━━━━━( ✦ )━━━━━╯" />
<meta property="og:image" content="https://t.furaffinity.net/44225295@600-1634614032.jpg" />
<meta property="og:image:secure_url" content="https://t.furaffinity.net/44225295@600-1634614032.jpg" />
<meta property="og:image:type" content="image/jpeg" />
<meta property="og:image:width" content="600" />
<meta property="og:image:height" content="448" />
<!-- twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:domain" content="furaffinity.net" />
<meta name="twitter:site" content="@furaffinity" />
<meta name="twitter:title" content="Scraps Gallery for PCraxkers -- Fur Affinity [dot] net" />
<meta name="twitter:description" content="Australian Animator/artist ·Male · . . A place where I post my shame . . ╰━━━━━( ✦ )━━━━━╯" />
<meta name="twitter:url" content="https://www.furaffinity.net/gallery/pcraxkers/" />
<meta name="twitter:image" content="https://t.furaffinity.net/44225295@600-1634614032.jpg" />
<meta name="twitter:label1" content="Submission Title" />
<meta name="twitter:data1" content="Snack" />
<script type="text/javascript">
var _faurl={d:'//d.furaffinity.net',a:'//a.furaffinity.net',r:'//rv.furaffinity.net',t:'//t.furaffinity.net',pb:'/themes/beta/js/prebid-7.54.5-fa.js'};
</script>
<script type="text/javascript" src="/themes/beta/js/common.js?u=2025011001"></script>
<link type="text/css" rel="stylesheet" href="/themes/beta/css/ui_theme_dark.css?u=2025011001" />
<!-- browser hints -->
<link rel="preconnect" href="//t.furaffinity.net" />
<link rel="preconnect" href="//a.furaffinity.net" />
<link rel="preconnect" href="//rv.furaffinity.net" />
<link rel="preconnect" href="https://www15.smartadserver.com" />
<link rel="preload" href="/themes/beta/js/prototype.1.7.3.min.js" as="script" />
<link rel="preload" href="/themes/beta/js/script.js?u=2025011001" as="script" />
</head>
<!-- EU request: no -->
<body id="pageid-gallery" data-static-path="/themes/beta" data-user-logged-in="1" data-tag-blocklist="" data-tag-blocklist-hide-tagless="0" data-tag-blocklist-nonce="d7890b2d46020491ba77ee39193009a899012433">
<script type="text/javascript">
0; // attempted fix for fouc in ff
</script>
<!-- sidebar -->
<div class="mobile-navigation">
<div class="mobile-nav-container">
<div class="mobile-nav-container-item left">
<label for="mobile-menu-nav" class="css-menu-toggle only-one"><img class="burger-menu" src="/themes/beta/img/fa-burger-menu-icon.png"></label>
</div>
<div class="mobile-nav-container-item center"><a class="mobile-nav-logo" href="/"><img class="site-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-container-item right">
</div>
</div>
<div class="nav-ac-container">
<input id="mobile-menu-nav" name="accordion-1" type="checkbox" />
<article class="nav-ac-content mobile-menu">
<div class="mobile-nav-content-container">
<div class="aligncenter">
<a href="/user/zzreg/"><img class="loggedin_user_avatar avatar" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
<h2 style="margin-bottom:0"><a href="/user/zzreg/">zzreg</a></h2>
<a href="/user/zzreg/">Userpage</a> |
<a href="/msg/pms/">Notes</a> |
<a href="/controls/journal/">Journals</a> |
<a href="/plus/"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> FA+</a> |
<a href="https://shop.furaffinity.net" target="_blank"><img style="position:relative;top:3px" src="/themes/beta/img/icons/merch_store_icon.png"> Shop</a>
<br>
</div>
<hr>
<h2><a href="/browse/">Browse</a></h2>
<h2><a href="/search/">Search</a></h2>
<h2><a href="/submit/">Upload</a></h2>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-0"><h2 style="margin-top:0;padding-top:0">Support &#x25BC;</h2></label>
<input id="mobile-menu-submenu-0" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<a href="/journals/fender">News & Updates</a><br>
<a href="/help/">Help & Support</a><br>
<a href="/advertising.html">Advertising</a><br>
<a href="/blm">Black Lives Matter</a>
<h3>SUPPORT FA</h3>
<a href="/plus/">Subscribe to FA+ </a><br>
<a href="https://shop.furaffinity.net/" target="_blank">FA Merch Store</a>
<h3>RULES & POLICIES</h3>
<a href="/tos">Terms of Service</a><br>
<a href="/privacy">Privacy</a><br>
<a href="/coc">Code of Conduct</a><br>
<a href="/aup">Upload Policy</a>
<h3>SOCIAL</h3>
<a href="https://discord.gg/furaffinity">Discord</a><br>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Support</h3>
<a href="/controls/troubletickets/">REPORT A PROBLEM</a>
</article>
</div>
<div class="mobile-sfw-toggle">
<h2>SFW Mode</h2>
<div class="sfw-toggle type-slider slider-button-wrapper">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<div class="nav-ac-container">
<label for="mobile-menu-submenu-1"><h2 style="margin-top:0;padding-top:0">Settings &#x25BC;</h2></label>
<input id="mobile-menu-submenu-1" name="accordion-1" type="checkbox" />
<article class="nav-ac-content nav-ac-content-dropdown">
<h3>ACCOUNT INFORMATION</h3>
<a href="/controls/settings/">Account Settings</a><br>
<a href="/controls/site-settings/">Global Site Settings</a><br>
<a href="/controls/user-settings/">User Settings</a>
<h3>CUSTOMIZE USER PROFILE</h3>
<a href="/controls/profile/">Profile Info</a><br>
<a href="/controls/profilebanner/">Profile Banner</a><br>
<a href="/controls/contacts/">Contacts and Social Media</a><br>
<a href="/controls/avatar/">Avatar Management</a>
<h3>MANAGE MY CONTENT</h3>
<a href="/controls/submissions/">Submissions</a><br>
<a href="/controls/folders/submissions/">Folders</a><br>
<a href="/controls/journal/">Journals</a><br>
<a href="/controls/favorites/">Favorites</a><br>
<a href="/controls/buddylist/">Watches</a><br>
<a href="/controls/shouts/">Shouts</a><br>
<a href="/controls/badges/">Badges</a>
<h3>SECURITY</h3>
<a href="/controls/sessions/logins/">Active Sessions</a><br>
<a href="/controls/sessions/logs/">Activity Log</a><br>
<a href="/controls/sessions/labels/">Browser Labels</a>
</article>
</div>
<hr>
<hr>
<h2><form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="86700f9e03ccdf5b667e25b4b13573c6f3c73878"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</h2>
<h2></h2>
</div>
</article>
</div>
</div>
<div class="mobile-notification-bar">
<a class="notification-container inline" href="/msg/submissions/" title="86,651 Submission Notifications">86651S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="17,902 Journal Notifications">17902J</a>
</div>
<nav id="ddmenu">
<div class="mobile-nav navhideondesktop hideonmobile hideontablet">
<div class="mobile-nav-logo"><a class="mobile-nav-logo" href="/"><img src="/themes/beta/img/banners/fa_logo.png?v2"></a></div>
<div class="mobile-nav-header-item"><a href="/browse/">Browse</a></div>
<div class="mobile-nav-header-item"><a href="/search/">Search</a></div>
</div>
<div class="menu-icon"></div>
<ul class="navhideonmobile">
<li class="lileft"><div class="lileft hideonmobile" style="vertical-align:middle;line-height:0 !important" ><a class="top-heading" href="/"><img class="nav-bar-logo" src="/themes/beta/img/banners/fa_logo.png?v2"></a></div></li>
<li class="lileft"><a class="top-heading" href="/browse/"><div class="sprite-paw menu-space-saver hideonmobile"></div>Browse</a></li>
<li class="lileft"><a class="top-heading hideondesktop" href="/search/">Search</a></li>
<li class="lileft"><a class="top-heading" href="/submit/"><div class="sprite-upload menu-space-saver hideonmobile"></div> Upload</a></li>
<li class="lileft">
<a class="top-heading" href="#"><div class="sprite-news menu-space-saver hideonmobile"></div>Support</a>
<i class="caret"></i>
<div class="dropdown dropdown-left ">
<div class="dd-inner">
<div class="column">
<h3>Community</h3>
<a href="/journals/fender">News & Updates</a>
<a href="/help/">Help & Support</a>
<a href="/advertising.html">Advertising</a>
<a href="/blm/">Black Lives Matter</a>
<h3>Rules & Policies</h3>
<a href="/tos">Terms of Service</a>
<a href="/privacy">Privacy</a>
<a href="/coc">Code of Conduct</a>
<a href="/aup">Upload Policy</a>
<h3>Social</h3>
<a href="https://discord.gg/furaffinity">Discord</a>
<a href="https://www.twitter.com/furaffinity/">Twitter</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
</div>
</div>
</div>
</li>
<li class="lileft"><a class="top-heading" href="/plus/" title="FA+"><img style="position:relative;top:3px" src="/themes/beta/img/the-golden-pawb.png"><span class="hidebrowselowres"> FA+</span></a></li>
<li class="lileft"><a class="top-heading" href="https://shop.furaffinity.net" title="Shop" target="_blank"><img style="position:relative;top:3px" src="/themes/beta/img/icons/merch_store_icon.png"><span class="hidebrowselowres"> Shop</span></a></li>
<div class="lileft hideonmobile">
<form id="searchbox" method="get" action="/search/">
<input type="search" name="q" placeholder="SEARCH">
<a href="/search">&nbsp;</a>
</form>
</div>
<li class="message-bar-desktop">
<a class="notification-container inline" href="/msg/submissions/" title="86,651 Submission Notifications">86651S</a>
<a class="notification-container inline" href="/msg/others/#journals" title="17,902 Journal Notifications">17902J</a>
</li>
<li>
<div class="floatleft hideonmobile">
<a href="/user/zzreg"><img class="loggedin_user_avatar menubar-icon-resize avatar" style="cursor:pointer" alt="zzreg" src="//a.furaffinity.net/1424255659/zzreg.gif"/></a>
</div>
</li>
<li class="submenu-trigger">
<div class="floatleft hideonmobile">
<svg class="avatar-submenu-trigger banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24"><path d="M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z"></path></svg>
</div>
<a id="my-username" class="top-heading hideondesktop" href="#"><span class="hideondesktop">My FA ( </span>zzreg<span class="hideondesktop"> )</span></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account</h3>
<a href="/user/zzreg/">My Userpage</a>
<a href="/msg/pms/">Check My Notes</a>
<a href="/controls/journal/">Create a Journal</a>
<a href="/commissions/zzreg/">My Commission Info</a>
<h3>Support Fur Affinity</h3>
<a href="/plus/">Subscribe to FA+ </a>
<a href="https://shop.furaffinity.net/" target="_blank">Merch Store</a>
<h3>Trouble Tickets</h3>
<a href="/controls/troubletickets/">Report a Problem</a>
<div class="mobile-sfw-toggle">
<h3 class="padding-top:10px">Toggle SFW</h3>
<div class="sfw-toggle type-slider slider-button-wrapper" style="position:relative;top:5px">
<input type="checkbox" id="sfw-toggle-mobile" class="slider-toggle" />
<label class="slider-viewport" for="sfw-toggle-mobile">
<div class="slider">
<div class="slider-button">&nbsp;</div>
<div class="slider-content left"><span>SFW</span></div>
<div class="slider-content right"><span>NSFW</span></div>
</div>
</label>
</div>
</div>
<hr>
<form class="post-btn logout-link" method="post" action="/logout/"><button type="submit">Log Out</button><input type="hidden" name="key" value="86700f9e03ccdf5b667e25b4b13573c6f3c73878"/></form>
<script type="text/javascript">
_fajs.push(['init_logout_button', '.logout-link button']);
</script>
</div>
</div>
</div>
</li>
<li class="submenu-trigger">
<a class="top-heading" href="#"><svg class="banner-svg" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" style="transform: ;msFilter:;"><path d="M12 16c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm0-6c1.084 0 2 .916 2 2s-.916 2-2 2-2-.916-2-2 .916-2 2-2z"></path><path d="m2.845 16.136 1 1.73c.531.917 1.809 1.261 2.73.73l.529-.306A8.1 8.1 0 0 0 9 19.402V20c0 1.103.897 2 2 2h2c1.103 0 2-.897 2-2v-.598a8.132 8.132 0 0 0 1.896-1.111l.529.306c.923.53 2.198.188 2.731-.731l.999-1.729a2.001 2.001 0 0 0-.731-2.732l-.505-.292a7.718 7.718 0 0 0 0-2.224l.505-.292a2.002 2.002 0 0 0 .731-2.732l-.999-1.729c-.531-.92-1.808-1.265-2.731-.732l-.529.306A8.1 8.1 0 0 0 15 4.598V4c0-1.103-.897-2-2-2h-2c-1.103 0-2 .897-2 2v.598a8.132 8.132 0 0 0-1.896 1.111l-.529-.306c-.924-.531-2.2-.187-2.731.732l-.999 1.729a2.001 2.001 0 0 0 .731 2.732l.505.292a7.683 7.683 0 0 0 0 2.223l-.505.292a2.003 2.003 0 0 0-.731 2.733zm3.326-2.758A5.703 5.703 0 0 1 6 12c0-.462.058-.926.17-1.378a.999.999 0 0 0-.47-1.108l-1.123-.65.998-1.729 1.145.662a.997.997 0 0 0 1.188-.142 6.071 6.071 0 0 1 2.384-1.399A1 1 0 0 0 11 5.3V4h2v1.3a1 1 0 0 0 .708.956 6.083 6.083 0 0 1 2.384 1.399.999.999 0 0 0 1.188.142l1.144-.661 1 1.729-1.124.649a1 1 0 0 0-.47 1.108c.112.452.17.916.17 1.378 0 .461-.058.925-.171 1.378a1 1 0 0 0 .471 1.108l1.123.649-.998 1.729-1.145-.661a.996.996 0 0 0-1.188.142 6.071 6.071 0 0 1-2.384 1.399A1 1 0 0 0 13 18.7l.002 1.3H11v-1.3a1 1 0 0 0-.708-.956 6.083 6.083 0 0 1-2.384-1.399.992.992 0 0 0-1.188-.141l-1.144.662-1-1.729 1.124-.651a1 1 0 0 0 .471-1.108z"></path></svg></a>
<div class="dropdown dropdown-right">
<div class="dd-inner">
<div class="column">
<h3>Account Information</h3>
<a href="/controls/settings/">Account Settings</a>
<a href="/controls/site-settings/">Global Site Settings</a>
<a href="/controls/user-settings/">User Settings</a>
<h3>Customize User Profile</h3>
<a href="/controls/profile/">Profile Info</a>
<a href="/controls/profilebanner/">Profile Banner</a>
<a href="/controls/contacts/">Contacts & Social Media</a>
<a href="/controls/avatar/">Avatar Management</a>
<h3>Manage My Content</h3>
<a href="/controls/submissions/">Submissions</a>
<a href="/controls/folders/submissions/">Folders</a>
<a href="/controls/journal/">Journals</a>
<a href="/controls/favorites/">Favorites</a>
<a href="/controls/buddylist/">Watches</a>
<a href="/controls/shouts/">Shouts</a>
<a href="/controls/badges/">Badges</a>
<h3>Security</h3>
<a href="/controls/sessions/logins/">Active Sessions</a>
<a href="/controls/sessions/logs/">Activity Log</a>
<a href="/controls/sessions/labels/">Browser Labels</a>
</div>
</div>
</div>
</li>
</ul>
<script type="text/javascript">
_fajs.push(['init_sfw_button', '.sfw-toggle']);
</script>
</nav>
<script type="text/javascript">
_fajs.push(function(){
// all menus that should be opened only one at a time
$$('.css-menu-toggle.only-one').invoke('observe', 'click', function(evt) {
var curr_input = $(evt.findElement('label').getAttribute('for'));
curr_input.next('.nav-ac-content').removeClassName('no-transition');
if(curr_input.checked === false) {
$$('.css-menu-toggle.only-one').each(function(elm){
var elm_input = $(elm.getAttribute('for'));
if(elm_input.checked === true) {
elm_input.next('.nav-ac-content').addClassName('no-transition');
elm_input.checked = false;
}
});
}
});
});
</script>
<div class="news-block">
<div id="admin_notice_do_not_adblock2" class="newsBlock">
<!--strong>Notice:</strong><span class="hideondesktop hideontablet"><br></span-->
<a href="https://gofund.me/0a0b27ba">Support Fur Affinity: Honoring Dragoneer's Legacy. https://gofund.me/0a0b27ba</a></div>
</div>
<div id="main-window" class="footer-mobile-tweak g-wrapper">
<div id="header" class="has-adminmessage">
<!-- user profile banner -->
<site-banner>
<a href="/">
<picture>
<source media="(max-width: 799px)" srcset="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner_mobile.jpg">
<source media="(min-width: 800px)" srcset="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner.jpg">
<img src="//d.furaffinity.net/art/pcraxkers/1670070754/profile_banner.jpg" alt="Profile Banner image">
</picture>
</a>
</site-banner>
<a name="top"></a>
</div>
<div id="site-content">
<!-- /header -->
<userpage-nav-header>
<userpage-nav-avatar>
<a class="current" href="/user/pcraxkers/"><img alt="pcraxkers" src="//a.furaffinity.net/1674032155/pcraxkers.gif"/></a>
</userpage-nav-avatar>
<userpage-nav-user-details>
<h1><username>
~PCraxkers
</username></h1>
<div class="font-small">
<username class="user-title">
<span class="hideonmobile">Registered:</span> Jul 16, 2021 06:31 </username>
</div>
</userpage-nav-user-details>
<userpage-nav-interface-buttons>
<a class="button standard stop" href="/unwatch/pcraxkers/?key=e7092dc7833fd3e83f6e0b972bf4044234de6127">-Watch</a>
<a class="button standard" href="/newpm/pcraxkers/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" style="transform: ;msFilter:;"><path d="M20 4H4c-1.103 0-2 .897-2 2v12c0 1.103.897 2 2 2h16c1.103 0 2-.897 2-2V6c0-1.103-.897-2-2-2zm0 2v.511l-8 6.223-8-6.222V6h16zM4 18V9.044l7.386 5.745a.994.994 0 0 0 1.228 0L20 9.044 20.002 18H4z"></path></svg></a>
</userpage-nav-interface-buttons>
<userpage-nav-links>
<ul style="display:flex">
<li><h3><a href="/user/pcraxkers/">Home</a></h3></li>
<li><h3><a href="/gallery/pcraxkers/">Gallery</a></h3></li>
<li><h3><a class="current" href="/scraps/pcraxkers/">Scraps</a></h3></li>
<li><h3><a href="/favorites/pcraxkers/">Favs</a></h3></li>
<li><h3><a href="/journals/pcraxkers/">Journals</a></h3></li>
</ul>
</userpage-nav-links>
</userpage-nav-header>
<div class="clear"></div>
<!--- /USER NAV --->
<script type="text/javascript">
_fajs.push(function(){
$$('#jsBlockUnblockButton').invoke('observe', 'click', function(evt){
var message = 'Are you sure you want to ' + (evt.findElement('a').href.indexOf('/unblock') != -1 ? 'unblock' : 'block') + ' this user?';
if (!confirm(message)) {
evt.stop();
}
});
});
</script>
<div id="page-galleryscraps">
<div id="columnpage">
<div class="sidebar">
<div class="folder-list">
<div class="user-folders">
<div class="container-item-top">
<h4>Gallery Folders</h4>
</div>
<div class="default-folders">
<ul style="list-style-type:none">
<li>
<a href="/gallery/pcraxkers/" class="dotted">Main Gallery</a>
</li>
<li class="active">
&#x276f;&#x276f; <strong>Scraps</strong>
</li>
</ul>
</div>
<ul class="default-group" style="list-style-type:none">
<li>
<a href="/gallery/pcraxkers/folder/1400495/KNOT-ME-OUT-COMIC" title="11 submissions" class="dotted">KNOT ME OUT - COMIC</a>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1505828/Hazbin-Hellvua" title="2 submissions" class="dotted">Hazbin/Hellvua</a>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1505829/Pablo" title="18 submissions" class="dotted">Pablo</a>
</li>
<li>
<a href="/gallery/pcraxkers/folder/1510162/Hazbin-Hellvua" title="1 submissions" class="dotted">Hazbin/Hellvua</a>
</li>
</ul>
</div>
</div>
<div class="rectangleAd">
<div data-id="sidebar" class="rectangleAd__slot format--mediumRectangle jsAdSlot"></div>
</div>
</div>
<div class="content">
<div class="leaderboardAd">
<div data-id="header_middle" class="leaderboardAd__slot format--leaderboard jsAdSlot"></div>
</div>
<section class="gallery-section">
<div class="section-body">
<div class="submission-list">
<div class="gallery-navigation aligncenter">
<div class="inline" style="width:32%">
&nbsp;
</div>
<div class="navigation-page-name inline" style="width:32%;">
Page #1 </div>
<div class="inline" style="width:32%">
&nbsp;
<!--button class="button standard" type="button">Next</button-->
</div>
</div>
<section id="gallery-gallery" class="gallery no-padding aligncenter no-artistname s-200 ">
<figure id="sid-56461291" class="r-mature t-image">
<b>
<u>
<a href="/view/56461291/">
<img data-tags="pillow chameleon lizard emo" class="blocked-content" alt="" src="//t.furaffinity.net/56461291@300-1714453508.jpg" data-width="275.616" data-height="200" style="width:275.616px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/56461291/" title="Pillow hug">Pillow hug</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-55797643" class="r-adult t-image">
<b>
<u>
<a href="/view/55797643/">
<img data-tags="eggs penetration ovipostion slime wet tease teasing" class="blocked-content" alt="" src="//t.furaffinity.net/55797643@300-1709728979.jpg" data-width="244.214" data-height="200" style="width:244.214px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/55797643/" title="Egg - 2/2">Egg - 2/2</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-55797631" class="r-adult t-image">
<b>
<u>
<a href="/view/55797631/">
<img data-tags="penetration eggs ovipostion slime" class="blocked-content" alt="" src="//t.furaffinity.net/55797631@200-1709728773.jpg" data-width="137.889" data-height="200" style="width:137.889px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/55797631/" title="Egg - 1/2">Egg - 1/2</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-49563421" class="r-adult t-image">
<b>
<u>
<a href="/view/49563421/">
<img data-tags="ghosthands deer spread legspread" class="blocked-content" alt="" src="//t.furaffinity.net/49563421@400-1666880737.jpg" data-width="300.117" data-height="200" style="width:300.117px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/49563421/" title="Drawing Request: Ghost Hands">Drawing Request: Ghost Hands</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-45148271" class="r-adult t-image">
<b>
<u>
<a href="/view/45148271/">
<img data-tags="pablo law comic potion deer dog cum internal love_potion breeding" class="blocked-content" alt="" src="//t.furaffinity.net/45148271@200-1640071386.jpg" data-width="81.406" data-height="200" style="width:81.406px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/45148271/" title="&quot;What&#039;s this?&quot; - Commission">&quot;What&#039;s this?&quot; - Commission</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-44991684" class="r-adult t-image">
<b>
<u>
<a href="/view/44991684/">
<img data-tags="nickick143 dog anthro cloths" class="blocked-content" alt="" src="//t.furaffinity.net/44991684@200-1639138517.jpg" data-width="200" data-height="200" style="width:200px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/44991684/" title="&quot;Don&#039;t Spill&quot; - Commission">&quot;Don&#039;t Spill&quot; - Commission</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-44271816" class="r-mature t-image">
<b>
<u>
<a href="/view/44271816/">
<img data-tags="human drugs drugged love-potion cum exhausted tired male" class="blocked-content" alt="" src="//t.furaffinity.net/44271816@300-1634890722.jpg" data-width="200.178" data-height="200" style="width:200.178px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/44271816/" title="Settling Down">Settling Down</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-44267946" class="r-mature t-image">
<b>
<u>
<a href="/view/44267946/">
<img data-tags="deer farmer barn hay butt cute sleep sleeping close-up farm resting" class="blocked-content" alt="" src="//t.furaffinity.net/44267946@200-1634862265.jpg" data-width="197.656" data-height="200" style="width:197.656px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/44267946/" title="Resting Up In The Barn">Resting Up In The Barn</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-44225295" class="r-general t-image">
<b>
<u>
<a href="/view/44225295/">
<img data-tags="deer panda bambo burger snack eating friends" class="blocked-content" alt="" src="//t.furaffinity.net/44225295@300-1634614032.jpg" data-width="268.908" data-height="200" style="width:268.908px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/44225295/" title="Snack">Snack</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-42808676" class="r-adult t-image">
<b>
<u>
<a href="/view/42808676/">
<img data-tags="commission cum cumming" class="blocked-content" alt="" src="//t.furaffinity.net/42808676@200-1626439165.jpg" data-width="120.313" data-height="200" style="width:120.313px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/42808676/" title="Going For A Ride">Going For A Ride</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-42808554" class="r-mature t-image">
<b>
<u>
<a href="/view/42808554/">
<img data-tags="pillow chameleon sleeping exposed tired bodypillow goth emo" class="blocked-content" alt="" src="//t.furaffinity.net/42808554@300-1626438393.jpg" data-width="241.509" data-height="200" style="width:241.509px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/42808554/" title="Pillows">Pillows</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-42808287" class="r-mature t-image">
<b>
<u>
<a href="/view/42808287/">
<img data-tags="deer upsidedown shy embarrassed firsttime clumsy" class="blocked-content" alt="" src="//t.furaffinity.net/42808287@200-1626436484.jpg" data-width="200" data-height="200" style="width:200px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/42808287/" title="&quot;Like this?&quot;">&quot;Like this?&quot;</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
<figure id="sid-42808246" class="r-mature t-image">
<b>
<u>
<a href="/view/42808246/">
<img data-tags="" class="blocked-content" alt="" src="//t.furaffinity.net/42808246@200-1626436223.jpg" data-width="200" data-height="200" style="width:200px; height:200px" loading="lazy" decoding="async" />
<i title="Click for description"></i>
</a>
</u>
</b>
<figcaption>
<p>
<a href="/view/42808246/" title="Fursonas, Am I right?">Fursonas, Am I right?</a>
</p>
<p>
<i>by</i> <a href="/user/pcraxkers/" title="PCraxkers">PCraxkers</a>
</p>
</figcaption>
</figure>
</section>
<script type="text/javascript">
_fajs.push(['init_gallery', 'gallery-gallery']);
</script>
<div class="gallery-navigation aligncenter">
<div class="inline" style="width:32%">
&nbsp;
</div>
<div class="inline" style="width:32%">
<div class="mobile-button">
<button type="button" class="button standard toggle_titles">Disable Titles</button>
</div>
</div>
<div class="inline" style="width:32%">
&nbsp;
<!--button class="button standard" type="button">Next</button-->
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
<script type="text/javascript">
var descriptions = {"56461291":{"title":"Pillow hug","description":"0.0","username":"PCraxkers","lower":"pcraxkers"},"55797643":{"title":"Egg - 2\/2","description":"egg egg","username":"PCraxkers","lower":"pcraxkers"},"55797631":{"title":"Egg - 1\/2","description":"egg","username":"PCraxkers","lower":"pcraxkers"},"49563421":{"title":"Drawing Request: Ghost Hands","description":"Grabby Grabby","username":"PCraxkers","lower":"pcraxkers"},"45148271":{"title":"&quot;What&#039;s this?&quot; - Commission","description":"Commisson for @CY_Law ft. Pablo\r\n\r\nIntersex Alt: https:\/\/twitter.com\/PCraxkers\/status\/1473190031044997120","username":"PCraxkers","lower":"pcraxkers"},"44991684":{"title":"&quot;Don&#039;t Spill&quot; - Commission","description":"Commission for nicky_unsafe (tw)","username":"PCraxkers","lower":"pcraxkers"},"44271816":{"title":"Settling Down","description":"Peri Sketch","username":"PCraxkers","lower":"pcraxkers"},"44267946":{"title":"Resting Up In The Barn","description":"I don&#039;t normally draw backgrounds or do detailed lighting (If you can even call this &quot;detailed&quot;) but this was still good practice as I do want to get more confident with background drawings.","username":"PCraxkers","lower":"pcraxkers"},"44225295":{"title":"Snack","description":"2 buds having a snack\r\n\r\n(Panda guy belongs to my friend)","username":"PCraxkers","lower":"pcraxkers"},"42808676":{"title":"Going For A Ride","description":"Commission I did for @\/gooeybea and @\/otto_erottic (Twitter)","username":"PCraxkers","lower":"pcraxkers"},"42808554":{"title":"Pillows","description":"This is Zak enjoying his pillow","username":"PCraxkers","lower":"pcraxkers"},"42808287":{"title":"&quot;Like this?&quot;","description":"(\u2018-\u2019*)","username":"PCraxkers","lower":"pcraxkers"},"42808246":{"title":"Fursonas, Am I right?","description":"(\u2032\ua20d\u03c9\ua20d\u2035)","username":"PCraxkers","lower":"pcraxkers"}};
</script>
</div>
<!-- /<div id="site-content"> -->
<div id="footer">
<div class="auto_link footer-links">
<span class="hideonmobile">
<a href="/advertising">Advertise</a> |
<a href="/plus"><img style="position:relative;top:4px" src="/themes/beta/img/the-golden-pawb.png"> Get FA+</a> |
<a href="https://shop.furaffinity.net/"><img style="position:relative;top:4px" src="/themes/beta/img/icons/merch_store_icon.png"> Merch Store</a> |
<a href="/tos">Terms of Service</a> |
<a href="/privacy">Privacy</a> |
<a href="/coc">Code of Conduct</a> |
<a href="/aup">Upload Policy</a>
</span>
</div>
<div class="footerAds">
<div class="footerAds__column">
<div class="footerAds__slot format--faMediumRectangle jsAdSlot" data-id="footer_left"></div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot footerAds__slot--faLogo">
<img src="/themes/beta/img/banners/fa_logo.png?v2">
</div>
</div>
<div class="footerAds__column">
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_top"></div>
<div class="footerAds__slot format--faSmallRectangle jsAdSlot" data-id="footer_right_bottom"></div>
</div>
</div>
<div class="online-stats">
86802 <strong><span title="Measured in the last 900 seconds">Users online</span></strong> &mdash;
5181 <strong>guests</strong>,
15405 <strong>registered</strong>
and 66216 <strong>other</strong>
<!-- Online Counter Last Update: Wed, 19 Feb 2025 11:13:00 -0800 -->
</div>
<small>Limit bot activity to periods with less than 10k registered users online.</small>
<br><br>
<strong>&copy; 2005-2025 Frost Dragon Art LLC</strong>
<div class="footnote">
Server Time: Feb 19, 2025 11:13 AM </div>
</div>
<div id="cookie-notification" class="default-hidden">
<div class="text-container">This website uses cookies to enhance your browsing experience. <a href="/privacy" target="_blank">Learn More</a></div>
<div class="button-container"><button class="accept">I Consent</button></div>
</div>
<script type="text/javascript">
_fajs.push(function(){
$$('#cookie-notification button').invoke('observe', 'click', function() {
setCookie('cc', 1, expiryyear, '/');
$('cookie-notification').addClassName('default-hidden');
});
$('cookie-notification').removeClassName('default-hidden');
});
</script>
</div>
<!-- <div id="main-window"> -->
<!--
Server Local Time: Feb 19, 2025 11:13 AM <br />
Page generated in 0.011 seconds [ 22.6% PHP, 77.4% SQL ] (24 queries) -->
<script type="text/javascript">
_fajs.push(function() {
var exists = getCookie('sz');
var saved = save_viewport_size();
if((!exists && saved) || (exists && saved && exists != saved)) {
//window.location.reload();
}
});
</script>
<script type="text/javascript" src="/themes/beta/js/censor.js?u=2025011001"></script>
<script type="text/javascript" src="/themes/beta/js/prototype.1.7.3.min.js"></script>
<script type="text/javascript" src="/themes/beta/js/script.js?u=2025011001"></script>
<script type="text/javascript">
var server_timestamp = 1739992388;
var client_timestamp = ((new Date()).getTime())/1000;
var server_timestamp_delta = server_timestamp - client_timestamp;
var sfw_cookie_name = 'sfw';
var news_cookie_name = 'n';
var adData = {"sizeConfig":[{"labels":["desktopWide"],"mediaQuery":"(min-width: 1065px)","sizesSupported":[[728,90],[300,250],[300,168],[300,600],[160,600]]},{"labels":["desktopNarrow"],"mediaQuery":"(min-width: 720px) and (max-width: 1064px)","sizesSupported":[[728,90],[300,250],[300,168]]},{"labels":["mobile"],"mediaQuery":"(min-width: 0px) and (max-width: 719px)","sizesSupported":[[320,50],[300,50],[320,100]]}],"slotConfig":{"header_middle":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"above_content":{"containerSize":{"desktopWide":[728,100],"desktopNarrow":[728,100],"mobile":[320,100]},"providerPriority":["inhouse"]},"sidebar":{"containerSize":{"desktopWide":[300,250]},"providerPriority":["inhouse"]},"sidebar_tall":{"containerSize":{"desktopWide":[300,600]},"providerPriority":["inhouse"]},"footer_left":{"containerSize":{"desktopWide":[300,200],"desktopNarrow":[300,200],"mobile":[300,200]},"providerPriority":["inhouse"]},"footer_right_top":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"footer_right_bottom":{"containerSize":{"desktopWide":[300,90],"desktopNarrow":[300,90],"mobile":[300,90]},"providerPriority":["inhouse"]},"header_right_left":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"header_right_right":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_top":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]},"sidebar_bottom":{"containerSize":{"desktopWide":[300,90]},"providerPriority":["inhouse"]}},"providerConfig":{"inhouse":{"domain":"https:\/\/rv.furaffinity.net","dataPath":"\/live\/www\/delivery\/spc.php","dataVariableName":"OA_output"}},"adConfig":{"inhouse":{"header_middle":{"default":{"tagId":11,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":19,"tagSize":[300,90]}}},"above_content":{"default":{"tagId":15,"tagSize":[728,90]},"sizeOverride":{"mobile":{"tagId":17,"tagSize":[300,90]}}},"sidebar":{"default":{"tagId":13,"tagSize":[300,250]}},"sidebar_tall":{"default":{"tagId":13,"tagSize":[300,250]}},"footer_left":{"default":{"tagId":10,"tagSize":[300,200]}},"footer_right_top":{"default":{"tagId":5,"tagSize":[300,90]}},"footer_right_bottom":{"default":{"tagId":6,"tagSize":[300,90]}},"header_right_left":{"default":{"tagId":2,"tagSize":[300,90]}},"header_right_right":{"default":{"tagId":4,"tagSize":[300,90]}},"sidebar_top":{"default":{"tagId":2,"tagSize":[300,90]}},"sidebar_bottom":{"default":{"tagId":4,"tagSize":[300,90]}}}}};
window.fad = new adManager(adData.sizeConfig, adData.slotConfig, adData.providerConfig, adData.adConfig, 1);
</script>
<script type="text/javascript">
_fajs.push(function() {
var ddmenuOptions = {
menuId: "ddmenu",
linkIdToMenuHtml: null,
open: "onmouseover", // or "onclick"
delay: 1,
speed: 1,
keysNav: true,
license: "2c1f72"
};
var ddmenu = new Ddmenu(ddmenuOptions);
});
</script>
</body>
<!---
|\ /|
/_^ ^_\
\v/
The fox goes "moo!"
--->
</html>