Tears fall in the moments of sadness but they are not complete. Our minds will wander through memories and a single tear will fall again.
It has taken some time but I have created what I needed for myself and what I hope others will find comfort in as well. The Silent Tear jewelry collection is a memorial to those we have lost and honours their memory. Each piece represents the simplest of intentions and is a tribute to a life once shared.
The wings of memories pieces send thoughts to those who are no longer with us. We may have let go, but we think of them often.
Designed by and for Moosonee Puppy Rescue.
this piece was donated by a woman who has a shop on etsy. i purchase beads and pendants from her to create my own pieces but when she researched moosonee puppy rescue she wanted to contribute something of her own. this special piece represents the power of giving and sharing, without a need for praise or recognition. we are grateful.
This ethnic Tibetan turquoise tear is the stone of truth, strength and self-expression. When we are strong enough to be honest with ourselves we are able to find inner harmony. The faux leather cord is 20" in length.
This ethnic Tibetan red coral piece is a stone of transformation and peace. It prevents us from wallowing in depression and we often need such a reminder. Silver - is the metal of the moon and it increases the strength of the stones it accompanies while bringing calm and balance. The hints of turquoise lend strength to our journey towards peace. The faux leather cord is 20" in length.
this carnelian tear provides protection and it heals by balancing our emotions. The darker beads ground us and allow us to be present in the moment.
This large amber stone contains the power of the sun yet heals gently and from within. amber relieves stress and anxiety while the small turquoise stones lend strength to the mending process. the single coral stone encourages balance and enhances the beauty of the piece.
this tear of Tibetan amber REPRESENTS both the sweetness and the sorrow of finding our own way. standing as one takes strength and courage but the rewards of knowing who we are cannot be MEASURED. Once we BELIEVE in ourselves, we are able to love another again. The glory rests in the individual uniqueness of each relationship we are fortunate ENOUGH to share.
carnelian is the stone of individuality and represents the UNIQUENESS of the love we knew. times of laughter, light- heartedness and moments of play outweigh the sadness of loss over time. the nine tears acknowledge those that were shed in sadness. they were cleansing and led the way to happier rememberings. The supporting carnelian beads hold joyful memories and remind us of fonder times. The necklace is 22" in length and, as is fitting, is one of a kind.
Jasper is a nurturing, protective stone and this Picture Jasper tear will bring comfort while alleviating fear. It offers the courage needed to struggle through crisis and wisdom enough to disregard negative energy.
the yosemite earth pendant represents the simplicity of life when we are able to let go of all we hold tightly and release all we no longer need. contentment stems from pleasures that are free from complication such as a walk with the dog, gazing at the moon or admiring the beauty of the landscape ahead.
self begins with your very being then grows into who you become. the roles we play have great import but THERE is no greater worth than that of the individual. self-pride is not a given, it requires honesty, fairness and accomplishment. turquoise is the stone of truth, strength and self-expression so this piece celebrates the person of character you have chosen to be. length is 24".
this ethnic Tibetan TURQUOISE tear is the stone of truth, strength and self expression. Once we are honest with ourselves, we are able to feel at peace. The red coral beads support our commitment to accept, and be in the moment.
This carnelian tear provides protection from negative EMOTIONS such as anger or resentment. it balances emotions and supports a sense of peace which allows for a renewed love of life. the tiny turquoise stone promotes hope and combines with the REFLECTIVE powers of silver to create a new-found-appreciation for lives lived and relationships shared. the faux leather cord is 20"
Peach Moonstone is REFLECTIVE and the beauty contained within each gemstone holds the secret of our soul. When we are able to ease our mind with thoughts of acceptance, a personal sense of calm is created for we no longer battle what we cannot change. we no longer react to others but surrender in peace to ourselves instead. worry is replaced with contentment and the secret of abdication from outer conflict is ours to keep.
this tear of Tibetan carnelian amber gemstone is the stone of individuality. It promotes creativity and allows us to find our way. Through darkness or doubt this stone gives us the courage to overcome and continue.
The carnelian tear promotes trust in your own judgement and stabilizes your emotions. you are then able to banish confusion and self-doubt. the silver beads offer strength in the face of pain or grief and provide you with the courage needed to move forward.
rED jASPER is known as a stone of vibrancy and endurance. It possesses a life force that offers stamina, focus and determination. This tear will calm our emotions and create the lasting and stable energy needed to face our fears, struggle through battle and rectify wrongs.
this ethiopian pewter tear is coupled with light blue and silver beads to create a gentle look of thoughtfulness. when the intense emotion of loss has passed, this is a gentle reminder of all we once shared. the beads move on the 18" leather cord to reflect how life flows forward if we let it.
This detailed tibetan silver and ruby bead holds the mysteries of love that is shared with one who is devoted, THOUGHTFUL and true. such relationships are rare and while they need not be completely understood, they are greatly valued.
Mykonos beads are made out of metal, in this case bronze and copper and they combine strength and beauty. The soft blue of the beads and leather cord remind us that even painful memories contain a fondness of times shared.
Rose quartz is the stone of unconditional love and the clarity of the tear speaks to the pureness of devotion. a gentle kindness is found in the soft hue of the stone while the raw silver beads lend strength to the simplicity of this dog's love.
the soft shades of grey and ivory beads mirror gentle tears of happiness. when a simple gesture touches our heart and causes us to appreciate the love we share, or a moment of realization reminds us of all we are grateful for, tears of joy may fall.
Amazonite is the stone of courage and it holds the purest of intentions to love and be faithful to another. never to look away or be careless with feelings. there is no greater belief than the one we hold in a relationship that never let us down.
Silver chain is 26" in length.
Mykonos beads are made out of metal, in this case bronze and copper, and they connect us to the earth below are feet. They are grounding when our emotions threaten to overwhelm and take flight. The beauty of the beads reminds us that sadness can, in time, become the fondest of memories.
These are the sweetest tears of all as they contain memories of delight. the beauty of the chrystal teardrop offers a sense of pure joy while the soft hues of the strawberry quartz beads remind us of a kindness shared. Necklace length is 28".
after a loss, black tears are the first to fall. they come with the painful realization of loss before understanding and acceptance settle in. we remember the shedding of these tears always because they meant so much. in time though, we are grateful there was so much for us to mourn.
Length of charcoal grey leather cord is 34'.
the pewter medallion represents the fog of sorrow we feel during times of sadness. we are lost and without direction. brass is the metal of goodness. the large beads offer strength while the smaller ones provide the WISDOM needed to recover and find our way again. the mist will lift and hope will be known once more.
Double strand. each strand can be worn SEPARATELY or as a set. Long strand measures 36' and the choker strand is 20" in length.
These are the sweetest tears of all as they contain memories of delight.. the soft hues of the strawberry quartz Tear reminds us of a kindness shared.
length of cord is 18'.
The black chain is grounding and suggests the strength that flows from understanding and acceptance . the ornate Silver represents memories that are sensitive, emotional and soothing while the single onyx bead holds them close to our heart. chain is 30" in length.
.The lemon quartz crystals represent an uplifted spirit and a new-found brightness of the mind. The stones promote clear thought and help us find our way again. We are able to appreciate the abundance of good fortune we have known and feel gratitude for love we have shared.
the rose-coloured tear represents APPRECIATION. it speaks to the gratitude we feel for having known and loved the one we did. we have recovered from their loss and now simply feel great gratutude for the good fortune they brought us. Chain length is 22".
.The faux leather cord is 20" in length.
garnet is the stone of strong and INTENSE feelings. it supports deep love and great joy. such intensity of feeling requires protection and the strength of this piece will hold the most precious of emotions in safe keeping. the combination of garnet with the sensitive and purifying metal silver, speaks to the glory of all that is good.
The length of the chain is 28" in length.
The large sterling silver tear is reflective and mirrors the soul. it is the metal of emotions and it connects us to the flow of the universe. The carnelian tear supports the power of belief and offers the courage needed to BANISH indifference and live with purpose. The sterling silver snake chain is 18" in length.
a single peach moonstone tear supports the heart and stimulates the mind to accept and overcome any burden. the chain of moonstones soothes worry and anxiety while it creates a sense of calm. Together, these gentle stones prevent over reaction and enhance the best in each of us. the necklace is 18" in length.
TURQUOISE is the stone of truth and green turquoise represents balance and harmony. kearney's tear, therefore, offers the honesty needed to accept all that has been lost while appreciating all that was loved. the smaller stones bring calm to a grateful heart while the natural goodness of brass holds hope for new love yet to come.
if we could keep all we love with us always we would. sadly, time does not permit though so we treasure the memories instead. the turquoise tear is healing and it provides solace for the spirit during times of loss. it balances our emotions and allows us to find peace within our sorrow. the red coral beads transform our restless thoughts into peaceful memories while safeguarding us from depression. the single black bead, embedded AMONG the coral, pays tribute to the UNIQUENESS of MEMORIES that only we lived and now treasure, the grey leather cord is 24" in length.
Two amber Tibetan Tears give meaning to a journey that led to healing. Pain happens in a moment but it can linger long afterwards. Time becomes heavy and days are interrupted with thoughts of sorrow. Strength and endurance allow us to see through the darkness and find the light of hope. The journey never completely ends but there are tassels of reward along the way. Silver Rope chain 20" in length.
a triple strand of gold and peach stones. 28" in length.
this ocean jasper tear offers a sense of calm and encourages deep and conscious BREATHS. it allows us to feel present in the moment and to lay our burdens down. the waves within the blue stone connect our thoughts and feelings and remind us that what we send out, will return so there are no endings. the worn blue stones hold memories once shared.
the leather cord is 28" in length.
the sterling silver PENDANT holds only the sweetest of memories. these are the recollections of happy times when love abounded and laughter rang out. times when long silences were spent in perfect comfort and all that was needed was the other beings presence. the garnet gemstone represents the worth of the relationship and the pureness of the bond shared. the length of the sterling silver chain is 22".
The journey through sorrow must take its time and the distress can be great. so too is the belief that a new day will dawn, bringing with it acceptance and hope. the amber beads offer healing to those who wish to move forward and the supporting silver lends the strength to do so.
The leather cord is 24" in length.
life can seem like a maze of emotions at times. we can feel tangled and lost. brass is the metal of inner truth and courage and its natural goodness is to be trusted. this simple piece reminds us to believe in ourselves and to trust our instincts. a lesson well taught by dogs. Length is 22".
in every northern dog is the majesty of the beast. they have lived by their wits and survived THROUGH INSTINCT. the detail in the carving reflects the difficulties they faced while the plain braided cord speaks to the simplicity of their efforts. no matter, they remain true and honest dogs. they generously agree to share our lives and ask only to be respected for their loyalty. the leather cord is 28" in length.
the northern dogs have all too often suffered harsh and troublesome beginnings yet they hold hope in their hearts no matter. their spirits are bright and hold the light of faith and goodwill. they are to be more than admired, they are to be bowed down to and praised. To be graced by a dog is to know glory and joy. the leather cord length is 26" in length.
the delicate chain and tiny charms symbolizes the feelings of many rescue dogs. while being grateful for their own good fortune, they Never forget the dogs left behind . gratitude consists of both personal happiness and awareness for those who still await their opportunity. chain length is 22".
Brass encourages inner truth and offers the courage required to be honest and fair not only with ourselves, but with others as well. this piece eliminates false pride WHILE allowing for the time needed to heal and recover from sadness. leather cord is 28" in length.
Brass signifies natural goodness and honesty. The coin pendant lends the courage needed to be brazen in the truth we speak and feel. A dog never lies and their souls contain a goodness we should all aspire to.
There are certain feelings that belong just to us. They are not to expressed out loud or shared with another. Whether it be joy, pride, fear, regret or sorrow, the emotions are deeply precious so we mask them and keep them to ourselves.
A dog, however, does not need to be told of our feelings. Words mean little to them. They respond to energy and trust what their senses inform them of. A dog sees beyond the mask and doesn't believe our lies or excuses. They feel our fear, sorrow or joy without judgement or correction. They simply accept all we are and love us despite what they know to be true. And that is the glory of the dog.
Still, the mask may protect us from people who wish to harm or betray.
BRASS IS THE SYMBOL OF NATURAL GOODNESS AND HUMILITY SO IT IS MOST APPROPRIATE THAT IS REPRESENT THE NORTHERN DOG. THESE DOGS ARE TRUE AND HONEST AND THEY POSSESS THE PUREST OF HEARTS. THE SPIRIT OF A NORTHERN DOG IS FULL OF HOPE AND BRIGHTENS THE LIVES OF ALL WHO KNOW THEM. THE CHAIN IS 18" IN LENGTH.
Northern dog #0051 b $20 Chain length is 28" in length.
The "Love Like a Dog" bronze tags are made for Moosonee Puppy Rescue by an artisan in California. She supports rescue work and this is her contribution to saving the lives of dogs in need. The goodwill contained in each tag makes each piece even more special and we are grateful.
Rescued dogs often suffer and are wounded somehow during their lives. Once rescued they love deeply and share their great gratitude. This purple jade pendant is for each one of these remarkable dogs.
the bronze tag, coupled with a 28" bronze chain represents the solid, honest love of a dog. to love loyally and without distraction is the goal of all true relationships but only dogs seem to have perfected such devotion.
Ordinary days go by and the steady rhythm of life can be hushed. then, a moment catches our attention and we smile, laugh or sigh deeply. A simple glance or gesture connects us to another and an understanding is shared. In these moments, we are grateful to love another who gives everything and means so much. These are life's moments of Loud Joy.
A simple, yet heartfelt promise – the pinky swear between friends – forget me not. Something kids understand from a very young age. Two charms on an 18" sterling silver chain.
silver is the metal of the moon. Like the moon's glow glistening on water, it is reflective and mirrors our best intentions. the crystal ball represents a promise made that is meant to be kept and the moonstone droplet lends BELIEF to the vow. the silver chain is 28" in length.
the intricate design of the silver pendant speaks to the many attributes that contribute to true character. honesty, integrity, loyalty, devotion and more blend to create a backbone of strength that is worthy of respect and admiration. a dog's character is not to be questioned and humans can only hope to possess such quality of being the yellow leather cord is 30" in length..
the sun shines on the darkest days when we have a dog to walk. antics and amusings on the other end of the leash create joy and enhance time spent together. length of yellow leather cord is 30".
huck was a dog of attitude and grand posture. he demanded respect from all other creatures as he was majestic in all things.. he felt it his duty to teach the rescue dogs their place so that they too would be able to hold rank in a human family. by respecting him, they came to respect themselves, or so he thought. he was a sensitive boy but showed it to only a few. huck had a life expectancy of just eighteen months due to a heart murmur he suffered as a pup but he lived for twelve years. he was too stubborn to do otherwise and he knew how much we needed him. huck was my hero and i adored him.
inner joy is sincere, reserved and quiet. it does not require a fuss to be made or attention drawn to it for it is tranquil. it is personal and only we need to know what it is to celebrate a victory or accomplishment. inner joy is a feeling of blended confidence and goodwill that led to a deed of kindness or an act of shared affection. cotton cord length is 24".
it takes some people a while to understand and appreciate all a dog can offer. they cannot grasp just what a dog will mean to their lives. but once they adopt and share a relationship of adoration and loyalty, their souls are touched. a new sense of understanding is opened and the key to it is held dearly and close to their hearts under lock and key. chain length is 26".
when we wonder too long and doubt ourselves, we stand in our own way. opportunities are missed and possibilities are denied until we decide to risk just a little. what we discover outside our comfort zone can be brilliant and more than we thought for ourselves. this lightening bolt of awareness and realization shatters the dull and brings down the stars.
When we are bent with laughter, filled with awe or graced with glory, we are experiencing Loud Joy. This collection is one of both appreciation and celebration. Each piece is a tribute to a relationship shared.
silver is sensitive and emotional. it is soothing, calming and purifying.it signals a time of REFLECTION and illuminates the way forward. the touch of turquoise encourages calm and promotes inner harmony through understanding. turquoise leather cord is 20" in LENGTH.
it takes some people a while to understand and appreciate all a dog can offer. they cannot grasp just what a dog will mean to their lives. but once they adopt and share a relationship of adoration and loyalty, their souls are touched. a new sense of understanding is opened and thIS GREY AGATE key to it is held dearly and close to their hearts forever afterward. chain is 22" in length.
the square grey and ivory ceramic beads couple with tiny pewter tears to remind us of the sweet joy we felt when we first met another who understood and cared for us. we recognized in them a shared appreciation of friendship. the silver leather is 8 1/4 " in length .
the warmth of these greek ceramic beads promotes a sense of well-being. the earthy tones of terracotta encourages recovery from disappointment and the blue stone of lapis eases frustrations. freedom from worry and concern allows for a sense of contentment. length f leather cord is 26".
these vintage beads combine with small natural stones to create a sense of homebody comfort. for those who have a love that is as known to them as they are to themselves, and who simply need the presence of that other to feel content, this piece speaks to you. not all must glitter and sparkle as there is sensibility within the UNADORNED. beauty without glamour is to be appreciated. length of cotton cord is 30".
the soft hues of pink quartz bring us comfort as the stone of unconditional love opens our hearts to release memories with a gentle, graceful energy. we are reminded that cherished feelings are never lost or gone. the one large tear holds the greatest of emotions while the smaller tears represent the love that is still to come. the deeper pink aventurine stones promote hope and faith in tomorrow. necklace is 18" in length.
There is no beginning or end to love. because it moves according to emotions and truth. the only direction is forward if love is to thrive and grow. the past holds love to be remembered while the future promises love once again or always. chain length is 22" in length.
the midnight sun is rare and happens far beyond the north we know. just as the sun is seen through darkness, we travel from loss to love again. all is possible under the midnight sun. rosary chain is 34" in length.
A single grey tear expresses the sweet joy known. when all we need is found in one other being the mother of pearl pendant expresses the age old desire to complete ourselves through shared love and the glittering starburst celebrates the accomplishment. length of chain is 30".
dogs are our companions and the connection we share with them is both unique and profound. words cannot express the bond that binds us but a large silver knot certainly can. there is no other relationship like it. the grey leather cord is 32" in length.
Leather cord is 32" in length.
the soft and gentle hue of the grey beads, coupled with the tiny pewter tears, speaks to the fondness we share with another. to be appreciated and valued by another is to know contentment and sweet joy. the silver leather is 7 1/2 " in length..
the light may dim with loss but if the love was great, the sun still shines. the orange beads speak to the vibrancy of feeling that will never fade . even half a sun will light the way to brighter days. Length is 26".
The frailty of the carnelian chain speaks to personal vulnerabilities while the carnelian pendant lends courage to overcome self-doubt. The stones combined, encourage trust in ourselves and support good judgement. Carnelian is a stone of belief and it motivates us to become our best-selves. This piece celebrates self-worth. length is 32".
just a several sorts of beads make up this piece, so too do many breeds mix to create a mutt. it is the blending process that creates balance, beauty and interest so we are most fortunate to find it in the dogs and people we adore. Choker length is 20" and long string is 30". can be worn together as shown or SEPARATELY.
the soft hues of pink quartz bring us comfort as the stone of unconditional love opens our hearts to release memories with a gentle, graceful energy. we are reminded that cherished feelings are never lost or gone. the silver leather cord is 19" in length.
the soft and gentle hues of the purple beads ebb and flow with just a slight variation of colour. the intensity of devotion varies as well. it can be loud and fierce when it involves the protection of a loved one or it can be silent and sensitive when a loved one is in need. whether it be demonstrated through a growl or a soft sigh and gentle nudge devotion is constant. length is 20".
it takes some people a while to understand and appreciate all a dog can offer. they cannot grasp just what a dog will mean to their lives. but once they adopt and share a relationship of adoration and loyalty, their souls are touched. a new sense of understanding is opened and the key to it is held dearly and close to their hearts under lock and key. chain length is 22".
dancing lights in the sky are the greatest celebration of life and love imaginable. the fine wooden pendant speaks to the worth of honest love and the spectacle of the sparkling light bolt suggests the value to be found in sharing love. length of chain is 25".
black chain is 30" in length.
when love is true its direction is skyward. the mother of pearl pendant speaks to the worth of shared love and the tiny dog tag offers an identity and suggests the relationship is forever. chain length is 30" in length.
a long time loss but not forgotten. the worth and meaning of the relationship was so great it lingers peacefully within the mind. the black wing, coupled with bronze beads signifies the endurance of the memory.
Sadness and grief take due time to recover from. Once the heaviness of loss is replaced with acceptance and grace, however, we are able to appreciate the love we knew and give thanks for all we shared.
the clouded blue pendant speaks to dark skies overhead and reminds us of walks in the rain and storms survived. brass is the symbol of natural goodness and humility so as the BIRD soars upward, our emotional cloud lifts and we realize we are still connected to all we knew, we become grateful. leather cord length is 30".
when thoughts are simply pleasant and memories cause a smile, send them to the one who made them so. sand end them on glittered wings of joy. wine coloured leather cord is 22" in length.
often, grey days are days of thought. our minds wander and we take time to consider opinions, points of view and actions more carefully than ever before. and because no kind of weather prevents a walk with the dog, our musing time is enhanced by the company we keep. this piece honours those days. the grey leather cord is 30" in length.
the waves within the ocean jasper pendant flow through our minds, hearts and spirits connecting our emotions. the blue bird gathers all we feel then soars afar, releasing memories into the universe to be shared. no distance is too great. turquoise leather cord is 28" in length.
OUR THOUGHTS TRAVEL FAR WHEN LOVE MOTIVATES THEM AND THEY WILL FIND THEIR WAY TO WHERE THEY BELONG. WINGS ARE GIVEN TO MEMORIES ONCE SHARED AND STILL CHERISHED.
the simplicity of the single green patina wing allows us to pause and causes us to recall a time of contentment that was well spent. length of turquoise leather cord is 20".
what better way to honour a dog we miss than by wearing a pledge to him or her. the words are literally heartfelt - "until the ocean covers every mountain high … I'll be loving you". suede cord is adjustable.
wings and a tear #0118 $20 length of brass chain is 30".


text:
Trial Design
How to Dose Modify
Dose Modifications in Clinical Trial
REVLIMID® (lenalidomide) is indicated for the treatment of patients with transfusion-dependent anemia due to low- or intermediate-1–risk myelodysplastic syndromes (MDS) associated with a deletion 5q cytogenetic abnormality with or without additional cytogenetic abnormalities.
REVLIMID® (lenalidomide) can be used in all levels of renal function1
Since REVLIMID is primarily excreted unchanged by the kidney, adjustments to the starting dose of REVLIMID are recommended to provide appropriate drug exposure in patients with renal impairment.21
CrCl, creatinine clearance.
CrCl is widely used to estimate GFR.22
GFR is an appropriate measure of renal function
SCr alone is not a sufficient measure of renal function because age, gender, race, and body size also impact GFR
COCKCROFT-GAULT EQUATIONS.23
A correction for lean or ideal body weight should be considered in certain conditions (e.g., elderly, obese, fluid overload) when body weight may not be indicative of SCr levels.
The initial months of therapy are a critical evaluation period.1
To evaluate and manage cytopenias
Monitor CBCs weekly for the first 8 weeks, and at least monthly thereafter
Dosing is continued or modified based on clinical and laboratory findings
G-CSF was permitted for patients in the del 5q MDS study who developed neutropenia or fever associated with neutropenia
To evaluate response
At least 3 months of treatment may be necessary to achieve an RBC transfusion benefit
90% (99/148) of patients who achieved a transfusion benefit in the trial did so by the completion of the first 3 months on REVLIMID
Learn how to modify dose of REVLIMID in patients with hematologic toxicities.
REVLIMID® is indicated for the treatment of adult patients with transfusion-dependent anemia due to low-or intermediate-1–risk myelodysplastic syndromes (MDS) associated with a deletion 5q cytogenetic abnormality with or without additional cytogenetic abnormalities.
Hematologic Toxicity: REVLIMID can cause significant neutropenia and thrombocytopenia. Monitor patients with neutropenia for signs of infection. Advise patients to observe for bleeding or bruising, especially with use of concomitant medications that may increase risk of bleeding. Patients may require a dose interruption and/or dose reduction. MDS: Monitor CBC in patients on therapy for del 5q MDS, weekly for the first 8 weeks of therapy and at least monthly thereafter. See Boxed WARNINGS for further information.
Grade 3 and 4 adverse events reported in ≥ 5% of patients with del 5q MDS were neutropenia (53%), thrombocytopenia (50%), pneumonia (7%), rash (7%), anemia (6%), leukopenia (5%), fatigue (5%), dyspnea (5%), and back pain (5%).
Adverse events reported in ≥15% of del 5q MDS patients (REVLIMID): thrombocytopenia (61.5%), neutropenia (58.8%), diarrhea (49%), pruritus (42%), rash (36%), fatigue (31%), constipation (24%), nausea (24%), nasopharyngitis (23%), arthralgia (22%), pyrexia (21%), back pain (21%), peripheral edema (20%), cough (20%), dizziness (20%), headache (20%), muscle cramp (18%), dyspnea (17%), pharyngitis (16%), epistaxis (15%), asthenia (15%), upper respiratory tract infection (15%).
Pregnancy: See Boxed WARNINGS. If pregnancy does occur during treatment, immediately discontinue the drug and refer patient to an obstetrician/gynecologist experienced in reproductive toxicity for further evaluation and counseling. There is a REVLIMID pregnancy exposure registry that monitors pregnancy outcomes in females exposed to REVLIMID during pregnancy as well as female partners of male patients who are exposed to REVLIMID. This registry is also used to understand the root cause for the pregnancy. Report any suspected fetal exposure to REVLIMID to the FDA via the MedWatch program at 1-800-FDA-1088 and also to REMS Call Center at 1-888-423-5436.
REVLIMID® (lenalidomide) is indicated for the treatment of adult patients with transfusion-dependent anemia due to low- or intermediate-1–risk myelodysplastic syndromes (MDS) associated with a deletion 5q cytogenetic abnormality with or without additional cytogenetic abnormalities.
Adverse events reported in ≥15% of del 5q MDS patients (REVLIMID): thrombocytopenia (61%), neutropenia (59%), diarrhea (49%), pruritus (42%), rash (36%), fatigue (31%), constipation (24%), nausea (24%), nasopharyngitis (23%), arthralgia (22%), pyrexia (21%), back pain (21%), peripheral edema (20%), cough (20%), dizziness (20%), headache (20%), muscle cramp (18%), dyspnea (17%), pharyngitis (16%), epistaxis (15%), asthenia (15%), upper respiratory tract infection (15%).
Renal Impairment: Adjust the starting dose of REVLIMID based on creatinine clearance value and for patients on dialysis.

redpajama_set_name: RedPajamaCommonCrawl


As much as wе lоvе trucks, when уоu lооk аt thе myriad wауѕ Bullеt Linеr™ оffеrѕ truе High Cаlibеr Prоtесtiоn, we knоw you hаvе tо think outside thе bеd. Bullеt Linеr'ѕ ѕрrау-оn еlаѕtоmеr рrоtесtivе соаting оffеrѕ a whоlе nеw gеnеrаtiоn of protection fоr еvеrуthing аrоund уоu – and it'ѕ NOT juѕt fоr truck bеdѕ аnуmоrе.
Thаt'ѕ right: Anуthing thаt уоu want tо рrоtесt – frоm ѕсuffѕ, minor dеntѕ, erosion, аnd wеаthеring frоm thе most brutal storm, tо thе most blistering hеаt that Mother Nаturе саn ѕеrvе uр – will bе safeguarded with thе аdditiоn оf Bullet Linеr'ѕ рrеmium spray-on bеd linеr. Thе applications fоr Bullеt Linеr ѕрrау-оn bеd linеr are virtuаllу еndlеѕѕ. In addition to truсk bеd аnd оff-rоаd vehicle applications, Bullеt Liner's spray-on соаting is also perfect for trailer floors аnd еxtеriоrѕ, utility аnd commercial truсkѕ, big rigѕ, bоаtѕ and оthеr mаrinе еԛuiрmеnt, rесrеаtiоnаl vehicles, ѕреаkеr bоxеѕ, рlауgrоund еԛuiрmеnt, skateboards, gym equipment, surfboards аnd mоrе.
Thеrе'ѕ a rеаѕоn thаt Bullеt Linеr has been tеѕtеd, tried, аnd hаѕ mаdе thе grade when used оn rасе аnd сhаѕе vеhiсlеѕ in the prestigious Baja 1000. It'ѕ thе same rеаѕоn thаt Bullеt Linеr ѕрrау-оn bеd linеr hаѕ реrѕеvеrеd even in subzero conditions fоund in the Dеnаli wildеrnеѕѕ of Alаѕkа. And, why Bullеt Liner's ѕсiеntifiсаllу аdvаnсеd, nоn-fаdе color matching hаѕ hеlреd protect against thе еlеmеntѕ – timе and timе аgаin – to ensure a great factory inѕtаllеd lооk, even аftеr months аnd years of еxроѕurе. "Bullеt Lined" vеhiсlеѕ emerge scratch, scuff аnd puncture frее, with a соlоr vibrаnсу thаt is unmаtсhеd in thе ѕрrау-оn рrоtесtivе соаting аrеnа.
Yоu already know thаt Bullet Linеr wаѕ made fоr truсk beds. But did you knоw thаt Bullet Linеr wоrkѕ juѕt аѕ wеll when sprayed on fеndеrѕ, whееl wells, bumpers, running bоаrdѕ, light bаrѕ, hаrd tоnnеаu соvеrѕ, оr across thе еntirе рiсk up truсk ѕurfасе еxtеriоr to kеер your vehicle lооking in top ѕhаре, еvеn in the most еxtrеmе conditions? Our ѕрrау-оn bedliner also оffеrѕ truсk оwnеrѕ another surprising additional bеnеfit: It hеlрѕ drivers аnd passengers tо асtuаllу еnjоу a ԛuiеtеr ridе (bу dаmреning аnd insulating rоаd nоiѕе), whilе at thе same timе рrоviding superior protection against ѕtаinѕ from hаrѕh chemicals, ruѕt аnd оthеr corrosive dаmаgе.
If your оff-rоаd "tоуѕ" tаkе thе ultimate аbuѕе, thеn Bullet Linеr iѕ a muѕt-hаvе to protect against mud, flуing rосkѕ аnd оthеr dеbriѕ diѕhеd up by thе toughest trаilѕ. Bullеt Liner's tоugh, but аttrасtivе, polyurea finish рrоvidеѕ аn almost indеѕtruсtiblе bаrriеr, whilе ѕtill delivering a ѕtуlizеd, custom ridе that will hаvе friends gаwking at your off-road buggy's killer gооd lооkѕ.
If you use уоur utilitу truсk fоr hаuling a serious load – or уоu hаvе a trailer thаt takes a beating, for еxаmрlе, оn thе аutо rасing сirсuit – thеn thе high-tеnѕilе strength оf Bullet Linеr'ѕ ѕрrау-оn bed linеr dеlivеrѕ thе performance аnd safety уоu need. Bullеt Liner's technologically аdvаnсеd роlуurеа coating imрrоvеѕ fооting on, in, аnd аrоund the mоѕt hеаvу-dutу equipment ѕеttingѕ. Bесаuѕе it'ѕ especially favorable in wet conditions, Bullеt Liner hеlрѕ tо keep cargo ѕесurе аnd in рlасе and prevents thе ѕliррing and sliding thаt саn cause injuriеѕ аnd damage to ореrаtоrѕ аnd vеhiсlеѕ.
Are уоu intо hоrѕе rасing? Dо уоu еnjоу PRCA rodeo еvеntѕ? Nо рrоblеm! Bullеt Linеr is аlѕо аn еxсерtiоnаl tool fоr рrоtесting all varieties of еԛuinе hаuling еԛuiрmеnt.
Bоаtѕ, jеtѕ skis, ѕurfbоаrdѕ and mоrе.
Bullеt Linеr truсk bеdlinеr also ridеѕ juѕt as wеll on the ѕurf as it does оn thе rоаd. Our wаtеrtight рrореrtiеѕ рrоvidе a secure bаrriеr between wаtеr and bоаt hullѕ оr dесkѕ. Additionally, bесаuѕе Bullеt Liner truck bedliner аlѕо аdhеrеѕ tо virtuаllу any ѕurfасе, it'ѕ especially аdерt аt protecting metal boats frоm ruѕt and соrrоѕiоn – adding уеаrѕ tо уоur mаrinе investment, аnd improving rеѕаlе vаluе. Fоr boats that sit in drу dock and bаkе in the reflective ѕun dау in аnd dау out, Bullet Linеr'ѕ UV рrоtесtаnt kеерѕ wаtеrсrаft lооking in top ѕhаре with no discoloring оr fading. And, оur ѕliр rеѕiѕtаnt finish рrоvidеѕ mоrе "griр" on thе dесk, mаking it a ѕаfеtу fеаturе add that hеlрѕ еnѕurе a mоrе ѕесurе footing in the hаrbоr оr out on rоugh wаtеr. Bullet Linеr can еvеn help рrоlоng the exterior life of a Jеt Ski. And, for anyone intо surfing, it can help to kеер expensive ѕurfbоаrdѕ lооking nеwеr and reduce the еffесtѕ оf еxсеѕѕivе wеаthеring оr ѕсrаtсhing and роtеntiаl dаmаgе in transit tо аnd frоm thе bеасh.
Anу itеm or investment уоu care аbоut—аnd want tо рrоtесt.
Bullеt Liner's elastomer соаting isn't juѕt reserved for еxреnѕivе vehicles. Anything thаt уоu care аbоut аnd wаnt tо kеер ѕаfе саn bеnеfit frоm a coating оf Bullet Linеr spray-on truck bedliner: Wоrk bооtѕ, guitаr cases, ѕkаtеbоаrdѕ, рlау еԛuiрmеnt, safes аnd file саbinеtѕ, garage shelving and other ѕtоrаgе еԛuiрmеnt, bike rасkѕ, аnd hаrd luggage – уоu name and we can ѕрrау it!


Ceridian Cares is committed to complying with all federal, provincial and state privacy legislation applicable to our operations.
Applicant / Recipient Information is personal information about an individual who submits an Application for Grant or has the potential to benefit from a grant. This information may be provided to Ceridian Cares by individuals on their own behalf or by parents, family members or others on behalf of someone else.
Donor information is personal information that identifies contributions and contact information of current, past and potential donors to the charity.
to assess how a grant from Ceridian Cares would increase an individual's quality of life and/or benefit the community.
to assess how a grant from Ceridian Cares has impacted an individual's quality of life.
Applicant / Recipient Information will only be disclosed to third parties where the disclosure is necessary to facilitate processing the Application for Grant or to direct funding.
to build and cultivate relationships with donors through exchanges of information.
Applicant / Recipient Information - The application process requires consent to be expressly confirmed before Applicant / Recipient Information can be shared with Ceridian Cares.
Donor Information - By providing Donor Information, consent to the collection and use of that information is implied.
The personal information collected shall only be used and disclosed for the purposes for which it was collected, and shall only be retained for as long as necessary to fulfill the above noted purposes, and as required by law. When the information is no longer required for the above noted purposes, it will be destroyed in a secure manner.
Ceridian Cares shall take reasonable steps to ensure that the personal information that we have collected is accurate, complete and up-to-date as is necessary for the purpose for which it was collected.
Personal information shall be protected by security safeguards appropriate to the sensitivity of the information collected. Ceridian Cares will make reasonable security arrangements to protect personal information in our custody or under our control from and against such risks as loss or theft, as well as unauthorized access, collection, use, disclosure, copying, modification, disposal, destruction or such similar risks.
Ceridian Cares will be open about our policies and practices with respect to the management of personal information. Individuals will be able to acquire information about our policies and practices with reasonable effort and in a format, that is generally understandable. Ceridian Cares reserves the right to change our policies at our own discretion without notice.
Any donor or applicant who desires access to or amendment of their personal information or information about its use, collection, disclosure or accuracy of information completeness may contact Ceridian Cares, in Canada at CeridianCaresCAN@ceridian.com or Ceridian Cares U.S. in the U.S. at CeridianCaresUS@ceridian.com.
An individual may raise concerns regarding compliance with this Policy by contacting the Privacy Hotline: 1-888-975-7674, sending an email to Privacy Office Privacy@ceridian.com or writing to Privacy Office, c/o Legal Department – Ceridian Cares, 3311 E. Old Shakopee Road, Minneapolis, MN 55425.
This notice describes how Ceridian Cares collects, uses, shares, and secures the information that it collects from people who visit the Ceridian Cares publicly facing websites. This notice does not describe our practices concerning the information that we collect from donors, or the information that we collect from grant recipients.
When we use the term "personal information", we mean information that directly identifies you, or allows someone to directly contact you. Examples of personal information include your name, e-mail address, telephone number, or business contact information.
When we use the term "non-personal information", we mean information that does not directly identify you, or allow someone to directly contact you. An example of non-personal information is province of residence.
By Asking: We may collect some information from you by asking that you provide it to us. For instance, if you fill out an application form we may ask you for your email address or other business contact information.
Web Beacons: A web beacon is an electronic file on a Web page that allows us to count and recognize users who have visited that page. Among other things, a web beacon can be used in HTML-formatted email to determine responses to our communications and measure their effectiveness. For instance, if you get an email from us and click on a link in that email to go to our website. You can generally avoid web beacons in email by turning off HTML display and displaying only the text portion of your email. Web beacons may also provide the type of information provided by cookies concerning your use, preferences, and activity on a website.
Web Server Logs: The computers that deliver our web pages to you may record information. For example, a web server log may record the search terms you enter on our websites, the link you clicked to bring you to the web page, your IP address, or cookies that are set on your browser.
Other Sources: Other parties may provide us with contact information of businesses or individuals who they think may be interested in Ceridian Cares.
Among other things, Ceridian Cares may use personal information, such as your e-mail or mailing address, to send you information about charity news, seminars and events that may be of interest to you, or to respond to a request for proposal.
If you decide that you do not want to receive emails from us, you can "opt-out" from receiving such emails by clicking on the "unsubscribe" link provided at the bottom of every email or by sending an email to Ceridian Cares in Canada at CeridianCaresCAN@ceridian.com or Ceridian Cares U.S. in the U.S. at CeridianCaresUS@ceridian.com. If you decide at a later time that you would like to receive emails from us, you can re-add yourself to our communication list.
Affiliates: We may share information with companies that we own or control, that own or control us, or that are under common ownership or control.
Behavioral Advertisers: We may participate in behavioral-based advertising. This means that a third party may use technology, such as a cookie on your browser or a web beacon, to identify you on our website so that they can provide advertising about products and services tailored to your interest. That advertising may appear either on our website, or on other websites. If you would like to opt-out of receiving behavioral advertising based on your use of this website, you can do so by visiting Network Advertising Initiative and Digital Advertising Alliance.
Blogs, Online Postings, and Testimonials: We may decide to allow users to share comments, postings, testimonials, or other information. If you choose to submit such information to us, the information that you submit may be available generally to the public. Information you provide in these areas may be read, collected, and used by others who access them.
Business Transition: In the event that we, or any portion of our assets, are acquired, we may share all types of information with the acquiring company.
Law Enforcement: We may report to law enforcement agencies any activities that we reasonably believe to be unlawful, or that we reasonably believe may aid a law enforcement investigation into unlawful activity. In addition, we reserve the right to release your information to law enforcement agencies if we determine, in our sole judgment, that either you have violated our policies, or the release of your information may protect the rights, property, or safety of Ceridian Cares, or another person.
Legal Process: We may share your information with others as required by, or permitted by, law. This may include sharing your information with governmental entities, or third parties, in response to subpoenas, court orders, other legal process, or as we believe is necessary to exercise our legal rights, to defend against legal claims that have been brought against us, or to defend against possible legal claims that we determine in our sole discretion might be brought against us.
Service Providers: We may share information with companies or individuals that provide us with services. These services may include, creating or maintaining our databases, preparing and distributing communications, or responding to enquiries. In addition, service providers may be contacted to facilitate the provision of products or services to grant recipients.
vial regular mail: write to Privacy Officer, c/o Legal Department, Ceridian HCM, 3311 E. Old Shakopee Road, Minneapolis, MN 55425.
We may update this privacy notice to reflect changes to our information practices. If we make any material changes to our policy, those changes will apply to information collected after the effective date listed. We encourage you to periodically review this page for the latest information on our privacy policies.
© Ceridian Cares and Ceridian Cares U.S. All Rights reserved.
Ceridian Cares Charitable Registration number in Canada is 80928 3930 RR0001.


text:
New on Video
MENU New Movie Reviews New on Video Commentary Trailers About Us Contact Us
Film Racket Movie Reviews
Connect Profiles
In Theaters: 08/21/2015
On Video: 11/24/2015
By: Jason McKiernan
Light my fire.
Buy It From Amazon
Buy It On DVD
Buy It On Blu-Ray
American Ultra is a fun, creative little lark of a movie… that also frequently takes dark detours and mires in nasty ultraviolence. It's a bit of an odd bird, this one, a brash summer action comedy with emo indie overtones. Or is it the other way around? Either way, it's a wild ride with plenty of quirky laughs and creative thrills, but the filmmaking is thrown down like a gauntlet that we're never quite sure is a sign of filmic confidence or audience punishment.
Director Nima Nourizadeh (Project X) certainly wields the camera brazenly, helming each sequence with an assured hand – though every few minutes that assurance seems to be placed in service to a different tone. Part of that may be due to the fact that this screenplay, by Max Landis (Chronicle), starts with a fun premise – lazy stoner with panic attacks is actually a lethal CIA operative – but drifts into some saccharine emotional territory as it unfolds. But a lot of the blame must lie with the director, who permits the film to go down a rabbit hole of emotional trauma and rogue killing that lands with a heavy hand… or any heavy blunt instrument of your choosing, since a full complement is employed throughout the film.
Not that it isn't fun to watch people get hit with blunt instruments. It's actually so fun, in fact, that it has sort of become its own cottage industry thanks to YouTube and Vine. It's just that when the hits are accompanied by repeated, exaggerated gushes of blood spurting all over the screen, the comedy factor dwindles ever-so-slightly. Such a bloodbath ensues when unsuspecting mellow pothead Mike Howell (Jesse Eisenberg) is sieged by an onslaught of trained government assassins after being marked for "termination" by a hot-shot young CIA desk jockey (Topher Grace). Why take out a goofball stoner who works the checkout counter at a local grocery store and nervously contemplates proposing to his girlfriend (Kristen Stewart)? As it turns out, Mike was part of an abandoned CIA program with a goal of developing the ultimate human killing machine. In fact, he is the ultimate human killing machine. After a continuing series of drug arrests, his existence is viewed as a government liability, hence the covert op to eliminate him. When Mike's former handler (Connie Britton) gets wind of the plot, she heads to his sleepy Virginia town and speaks a code phrase that activates those dormant sections of his brain. As a result, he retaliates based on instinct, obliterating one troop of trained killers after another.
It's a great concept, if for no other reason than the notion of Jesse Eisenberg as indestructible action hero is my kind of quirky. And he's good in the role – his patented blend of nervousness and self-deprecation is a good comic contrast to the hardcore spy action. The cast is actually good all the way down – especially Stewart, who mines unexpected depth and uncommon agency in this would-be typical girlfriend role.
It's the shifting tone, to which the actors must frequently adjust, that's the problem. Comedy is the movie's intended pitch, but there are lapses of faux-indie preening that take the narrative down a tepid, maudlin path. And then there's the issue of the film's propensity for gruesome violence, which occasionally works for comic value but too often feels discordant with the lighthearted spirit of the premise. Through the haze of gunfire and blood splatters, we get that this is really just a simple movie about a dude learning who he really is. All that toking is just a substitute for his lost soul. He's a nervous weakling who just needs to unlock his inner killer.
In that spirit, American Ultra works as a piece of comic-action quirk. Had the filmmakers nailed down a consistent tone, however, it could've been much more.
Director: Nima Nourizadeh
Writer: Max Landis
Cast: Jesse Eisenberg, Kristen Stewart, Connie Britton, Topher Grace, John Leguizamo
Previous: Sinister 2
Next: Digging for Fire
One thought on "American Ultra"
Pingback:Reviews: American Ultra (2015) | Online Film Critics Society
Bloodroot
Amaurosis
MIB International
Little (07/09/2019)
Dumbo (2019) (06/25/2019)
Us (06/18/2019)
Captain Marvel (06/11/2019)
JT LeRoy (06/04/2019)
How to Train Your Dragon: The Hidden World (05/21/2019)
The Upside (05/21/2019)
Fighting with My Family (05/14/2019)
The Lego Movie 2: The Second Part (05/07/2019)
Her Smell (05/07/2019)
Become a Film Critic!
Write movie reviews, get paid! Buy the book!
Website by Story&Design
© Copyrights FilmRacket 2013


text:
MP3 R. Bruce - Still Laughin'
The Washington Post said, "R. Bruce mixes outrageous observational humor with catchy melodies and fluid finger picking on acoustic guitar" and others have compared his style to a funny John Prine.
15 MP3 Songs
ROCK: Folk Rock, COUNTRY: Country Folk
R. Bruce Singer/Songwriter/Comedian
From Tidewater, VA to the singer/songwriter scene of Austin, TX in the mid 70''s, back to the acoustic rooms of the east coast in the 80''s, R. Bruce honed his unique, humorous songwriting style. A talented singer and guitarist, he delighted audiences performing his insightfully hilarious original songs.
In the early 90''s, (after a continuingly successful stint in rehab for alcohol addiction) he combined his musical, songwriting roots with his natural knack for humor and became a popular headliner on the national comedy club circuit. He has been called a cross between George Carlin and Jimmy Buffett. To quote the College Music Journal, "Not only can he make you laugh with his humor, as a song writer, he''s actually quite good."
The Washington Post said, "R. Bruce mixes outrageous observational humor with catchy melodies and fluid finger picking on acoustic guitar". And the Freelance Star called him, "A unique voice in a crowded field."
His "unique voice" is his humor. Among the myriad of singer/songwriters, there are very few who write truly funny songs and among comedians who include some music in their shows, there are very few who can really perform it. As John Starling (Grammy Award winning artist of Seldom Scene fame) said, "He''s dedicated his life to the service of the only two things in life that are worth anything. That''s music and humor."
It was also Starling who captured in one sentence the essence of R. Bruce''s performance when he said simply...
"Humor is his band."
His are the kind of songs that people tend to learn and share with their friends. Ian Gillan, the British singer and songwriter of Deep Purple and Jesus Christ Superstar fame said, "I am now the self-appointed (non-executive, unpaid) president of his U.K. fan club. We play his albums at parties, and when everyone knows the words, it''s even funnier because it is part of our lives."
In December 2004 tour orchestrated by Gillan, R. Bruce performed to sold out audiences in the U.K., including breaking the attendance record at the i.e. Theatre in Axminster.
Although he has always loved rock and roll, his song writing style leans more toward country... just simple melodies with the emphasis on the humorous lyrics. Others have compared his style to a funny John Prine.
His first two independently released CDs are titled, "Album?" and "Still Laughin''". They feature original songs such as: "Dysfunctional Family Reunion", "If Cowboys Could Fly", "Bleach Blondes", "Sharks Ate My Baby Brother", "It Must Be Love (or we''d have killed each other by now)", "Make Florida Your Last Stop On Earth" and "Too Much Butt (for one pair of jeans)".
R. Bruce''s 3rd album "Late Bloomer" has new songs such as: "Im Glad That We Have Skin", "Momma Dont Eat No Carbs", "Ive Had It With Linear Time" and "A.D.D. Cowboy". It is also his first album to contain live tracks and was produced by Christopher Ippolito with whom Bruce has had an almost life-long collaborative relationship. Ippolito produced his first album, Album? and brought his incomparable talents for both music and humor to the new CD.
R. Bruce''s humor is fun and personal and real. He brings people together in laughter about the things that we have in common, not the things that irritate and separate us.


text:
namespace {

// Version number of the database.
const int kCurrentVersionNumber = 5;
const int kCompatibleVersionNumber = 5;

}  // namespace

namespace net {

// This class is designed to be shared between any calling threads and the
// background task runner. It batches operations and commits them on a timer.
class SQLiteChannelIDStore::Backend
    : public base::RefCountedThreadSafe<SQLiteChannelIDStore::Backend> {
 public:
  Backend(
      const base::FilePath& path,
      const scoped_refptr<base::SequencedTaskRunner>& background_task_runner)
      : path_(path),
        num_pending_(0),
        force_keep_session_state_(false),
        background_task_runner_(background_task_runner),
        corruption_detected_(false) {}

  // Creates or loads the SQLite database.
  void Load(const LoadedCallback& loaded_callback);

  // Batch a channel ID addition.
  void AddChannelID(const DefaultChannelIDStore::ChannelID& channel_id);

  // Batch a channel ID deletion.
  void DeleteChannelID(const DefaultChannelIDStore::ChannelID& channel_id);

  // Post background delete of all channel ids for |server_identifiers|.
  void DeleteAllInList(const std::list<std::string>& server_identifiers);

  // Commit any pending operations and close the database.  This must be called
  // before the object is destructed.
  void Close();

  void SetForceKeepSessionState();

 private:
  friend class base::RefCountedThreadSafe<SQLiteChannelIDStore::Backend>;

  // You should call Close() before destructing this object.
  virtual ~Backend() {
    DCHECK(!db_.get()) << "Close should have already been called.";
    DCHECK_EQ(0u, num_pending_);
    DCHECK(pending_.empty());
  }

  void LoadInBackground(
      std::vector<std::unique_ptr<DefaultChannelIDStore::ChannelID>>*
          channel_ids);

  // Database upgrade statements.
  bool EnsureDatabaseVersion();

  class PendingOperation {
   public:
    enum OperationType { CHANNEL_ID_ADD, CHANNEL_ID_DELETE };

    PendingOperation(OperationType op,
                     const DefaultChannelIDStore::ChannelID& channel_id)
        : op_(op), channel_id_(channel_id) {}

    OperationType op() const { return op_; }
    const DefaultChannelIDStore::ChannelID& channel_id() const {
      return channel_id_;
    }

   private:
    OperationType op_;
    DefaultChannelIDStore::ChannelID channel_id_;
  };

 private:
  // Batch a channel id operation (add or delete).
  void BatchOperation(PendingOperation::OperationType op,
                      const DefaultChannelIDStore::ChannelID& channel_id);
  // Prunes the list of pending operations to remove any operations for an
  // identifier in |server_identifiers|.
  void PrunePendingOperationsForDeletes(
      const std::list<std::string>& server_identifiers);
  // Commit our pending operations to the database.
  void Commit();
  // Close() executed on the background task runner.
  void InternalBackgroundClose();

  void BackgroundDeleteAllInList(
      const std::list<std::string>& server_identifiers);

  void DatabaseErrorCallback(int error, sql::Statement* stmt);
  void KillDatabase();

  const base::FilePath path_;
  std::unique_ptr<sql::Connection> db_;
  sql::MetaTable meta_table_;

  typedef std::list<PendingOperation*> PendingOperationsList;
  PendingOperationsList pending_;
  PendingOperationsList::size_type num_pending_;
  // True if the persistent store should skip clear on exit rules.
  bool force_keep_session_state_;
  // Guard |pending_|, |num_pending_| and |force_keep_session_state_|.
  base::Lock lock_;

  scoped_refptr<base::SequencedTaskRunner> background_task_runner_;

  // Indicates if the kill-database callback has been scheduled.
  bool corruption_detected_;

  DISALLOW_COPY_AND_ASSIGN(Backend);
};

void SQLiteChannelIDStore::Backend::Load(
    const LoadedCallback& loaded_callback) {
  // This function should be called only once per instance.
  DCHECK(!db_.get());
  std::unique_ptr<
      std::vector<std::unique_ptr<DefaultChannelIDStore::ChannelID>>>
      channel_ids(
          new std::vector<std::unique_ptr<DefaultChannelIDStore::ChannelID>>());
  std::vector<std::unique_ptr<DefaultChannelIDStore::ChannelID>>*
      channel_ids_ptr = channel_ids.get();

  background_task_runner_->PostTaskAndReply(
      FROM_HERE,
      base::Bind(&Backend::LoadInBackground, this, channel_ids_ptr),
      base::Bind(loaded_callback, base::Passed(&channel_ids)));
}

void SQLiteChannelIDStore::Backend::LoadInBackground(
    std::vector<std::unique_ptr<DefaultChannelIDStore::ChannelID>>*
        channel_ids) {
  DCHECK(background_task_runner_->RunsTasksOnCurrentThread());

  // This method should be called only once per instance.
  DCHECK(!db_.get());

  base::TimeTicks start = base::TimeTicks::Now();

  // Ensure the parent directory for storing certs is created before reading
  // from it.
  const base::FilePath dir = path_.DirName();
  if (!base::PathExists(dir) && !base::CreateDirectory(dir))
    return;

  int64_t db_size = 0;
  if (base::GetFileSize(path_, &db_size))
    UMA_HISTOGRAM_COUNTS("DomainBoundCerts.DBSizeInKB", db_size / 1024);

  db_.reset(new sql::Connection);
  db_->set_histogram_tag("DomainBoundCerts");

  // Unretained to avoid a ref loop with db_.
  db_->set_error_callback(
      base::Bind(&SQLiteChannelIDStore::Backend::DatabaseErrorCallback,
                 base::Unretained(this)));

  if (!db_->Open(path_)) {
    NOTREACHED() << "Unable to open cert DB.";
    if (corruption_detected_)
      KillDatabase();
    db_.reset();
    return;
  }

  if (!EnsureDatabaseVersion()) {
    NOTREACHED() << "Unable to open cert DB.";
    if (corruption_detected_)
      KillDatabase();
    meta_table_.Reset();
    db_.reset();
    return;
  }

  db_->Preload();

  // Slurp all the certs into the out-vector.
  sql::Statement smt(db_->GetUniqueStatement(
      "SELECT host, private_key, public_key, creation_time FROM channel_id"));
  if (!smt.is_valid()) {
    if (corruption_detected_)
      KillDatabase();
    meta_table_.Reset();
    db_.reset();
    return;
  }

  while (smt.Step()) {
    std::vector<uint8_t> private_key_from_db, public_key_from_db;
    smt.ColumnBlobAsVector(1, &private_key_from_db);
    smt.ColumnBlobAsVector(2, &public_key_from_db);
    std::unique_ptr<crypto::ECPrivateKey> key(
        crypto::ECPrivateKey::CreateFromEncryptedPrivateKeyInfo(
            ChannelIDService::kEPKIPassword, private_key_from_db,
            public_key_from_db));
    if (!key)
      continue;
    std::unique_ptr<DefaultChannelIDStore::ChannelID> channel_id(
        new DefaultChannelIDStore::ChannelID(
            smt.ColumnString(0),  // host
            base::Time::FromInternalValue(smt.ColumnInt64(3)), std::move(key)));
    channel_ids->push_back(std::move(channel_id));
  }

  UMA_HISTOGRAM_COUNTS_10000(
      "DomainBoundCerts.DBLoadedCount",
      static_cast<base::HistogramBase::Sample>(channel_ids->size()));
  base::TimeDelta load_time = base::TimeTicks::Now() - start;
  UMA_HISTOGRAM_CUSTOM_TIMES("DomainBoundCerts.DBLoadTime",
                             load_time,
                             base::TimeDelta::FromMilliseconds(1),
                             base::TimeDelta::FromMinutes(1),
                             50);
  DVLOG(1) << "loaded " << channel_ids->size() << " in "
           << load_time.InMilliseconds() << " ms";
}

bool SQLiteChannelIDStore::Backend::EnsureDatabaseVersion() {
  // Version check.
  if (!meta_table_.Init(
          db_.get(), kCurrentVersionNumber, kCompatibleVersionNumber)) {
    return false;
  }

  if (meta_table_.GetCompatibleVersionNumber() > kCurrentVersionNumber) {
    LOG(WARNING) << "Server bound cert database is too new.";
    return false;
  }

  int cur_version = meta_table_.GetVersionNumber();

  sql::Transaction transaction(db_.get());
  if (!transaction.Begin())
    return false;

  // Create new table if it doesn't already exist
  if (!db_->DoesTableExist("channel_id")) {
    if (!db_->Execute(
            "CREATE TABLE channel_id ("
            "host TEXT NOT NULL UNIQUE PRIMARY KEY,"
            "private_key BLOB NOT NULL,"
            "public_key BLOB NOT NULL,"
            "creation_time INTEGER)")) {
      return false;
    }
  }

  // Migrate from previous versions to new version if possible
  if (cur_version >= 2 && cur_version <= 4) {
    sql::Statement statement(db_->GetUniqueStatement(
        "SELECT origin, cert, private_key, cert_type FROM origin_bound_certs"));
    sql::Statement insert_statement(db_->GetUniqueStatement(
        "INSERT INTO channel_id (host, private_key, public_key, creation_time) "
        "VALUES (?, ?, ?, ?)"));
    if (!statement.is_valid() || !insert_statement.is_valid()) {
      LOG(WARNING) << "Unable to update server bound cert database to "
                   << "version 5.";
      return false;
    }

    while (statement.Step()) {
      if (statement.ColumnInt64(3) != CLIENT_CERT_ECDSA_SIGN)
        continue;
      std::string origin = statement.ColumnString(0);
      std::string cert_from_db;
      statement.ColumnBlobAsString(1, &cert_from_db);
      std::string private_key;
      statement.ColumnBlobAsString(2, &private_key);
      // Parse the cert and extract the real value and then update the DB.
      scoped_refptr<X509Certificate> cert(X509Certificate::CreateFromBytes(
          cert_from_db.data(), static_cast<int>(cert_from_db.size())));
      if (cert.get()) {
        insert_statement.Reset(true);
        insert_statement.BindString(0, origin);
        insert_statement.BindBlob(1, private_key.data(),
                                  static_cast<int>(private_key.size()));
        base::StringPiece spki;
        if (!asn1::ExtractSPKIFromDERCert(cert_from_db, &spki)) {
          LOG(WARNING) << "Unable to extract SPKI from cert when migrating "
                          "channel id database to version 5.";
          return false;
        }
        insert_statement.BindBlob(2, spki.data(),
                                  static_cast<int>(spki.size()));
        insert_statement.BindInt64(3, cert->valid_start().ToInternalValue());
        if (!insert_statement.Run()) {
          LOG(WARNING) << "Unable to update channel id database to "
                       << "version 5.";
          return false;
        }
      } else {
        // If there's a cert we can't parse, just leave it.  It'll get replaced
        // with a new one if we ever try to use it.
        LOG(WARNING) << "Error parsing cert for database upgrade for origin "
                     << statement.ColumnString(0);
      }
    }
  }

  if (cur_version < kCurrentVersionNumber) {
    sql::Statement statement(
        db_->GetUniqueStatement("DROP TABLE origin_bound_certs"));
    if (!statement.Run()) {
      LOG(WARNING) << "Error dropping old origin_bound_certs table";
      return false;
    }
    meta_table_.SetVersionNumber(kCurrentVersionNumber);
    meta_table_.SetCompatibleVersionNumber(kCompatibleVersionNumber);
  }
  transaction.Commit();

  // Put future migration cases here.

  return true;
}

void SQLiteChannelIDStore::Backend::DatabaseErrorCallback(
    int error,
    sql::Statement* stmt) {
  DCHECK(background_task_runner_->RunsTasksOnCurrentThread());

  if (!sql::IsErrorCatastrophic(error))
    return;

  // TODO(shess): Running KillDatabase() multiple times should be
  // safe.
  if (corruption_detected_)
    return;

  corruption_detected_ = true;

  // TODO(shess): Consider just calling RazeAndClose() immediately.
  // db_ may not be safe to reset at this point, but RazeAndClose()
  // would cause the stack to unwind safely with errors.
  background_task_runner_->PostTask(FROM_HERE,
                                    base::Bind(&Backend::KillDatabase, this));
}

void SQLiteChannelIDStore::Backend::KillDatabase() {
  DCHECK(background_task_runner_->RunsTasksOnCurrentThread());

  if (db_) {
    // This Backend will now be in-memory only. In a future run the database
    // will be recreated. Hopefully things go better then!
    bool success = db_->RazeAndClose();
    UMA_HISTOGRAM_BOOLEAN("DomainBoundCerts.KillDatabaseResult", success);
    meta_table_.Reset();
    db_.reset();
  }
}

void SQLiteChannelIDStore::Backend::AddChannelID(
    const DefaultChannelIDStore::ChannelID& channel_id) {
  BatchOperation(PendingOperation::CHANNEL_ID_ADD, channel_id);
}

void SQLiteChannelIDStore::Backend::DeleteChannelID(
    const DefaultChannelIDStore::ChannelID& channel_id) {
  BatchOperation(PendingOperation::CHANNEL_ID_DELETE, channel_id);
}

void SQLiteChannelIDStore::Backend::DeleteAllInList(
    const std::list<std::string>& server_identifiers) {
  if (server_identifiers.empty())
    return;
  // Perform deletion on background task runner.
  background_task_runner_->PostTask(
      FROM_HERE,
      base::Bind(
          &Backend::BackgroundDeleteAllInList, this, server_identifiers));
}

void SQLiteChannelIDStore::Backend::BatchOperation(
    PendingOperation::OperationType op,
    const DefaultChannelIDStore::ChannelID& channel_id) {
  // Commit every 30 seconds.
  static const int kCommitIntervalMs = 30 * 1000;
  // Commit right away if we have more than 512 outstanding operations.
  static const size_t kCommitAfterBatchSize = 512;

  // We do a full copy of the cert here, and hopefully just here.
  std::unique_ptr<PendingOperation> po(new PendingOperation(op, channel_id));

  PendingOperationsList::size_type num_pending;
  {
    base::AutoLock locked(lock_);
    pending_.push_back(po.release());
    num_pending = ++num_pending_;
  }

  if (num_pending == 1) {
    // We've gotten our first entry for this batch, fire off the timer.
    background_task_runner_->PostDelayedTask(
        FROM_HERE,
        base::Bind(&Backend::Commit, this),
        base::TimeDelta::FromMilliseconds(kCommitIntervalMs));
  } else if (num_pending == kCommitAfterBatchSize) {
    // We've reached a big enough batch, fire off a commit now.
    background_task_runner_->PostTask(FROM_HERE,
                                      base::Bind(&Backend::Commit, this));
  }
}

void SQLiteChannelIDStore::Backend::PrunePendingOperationsForDeletes(
    const std::list<std::string>& server_identifiers) {
  DCHECK(background_task_runner_->RunsTasksOnCurrentThread());
  base::AutoLock locked(lock_);

  for (PendingOperationsList::iterator it = pending_.begin();
       it != pending_.end();) {
    bool remove =
        std::find(server_identifiers.begin(), server_identifiers.end(),
                  (*it)->channel_id().server_identifier()) !=
        server_identifiers.end();

    if (remove) {
      std::unique_ptr<PendingOperation> po(*it);
      it = pending_.erase(it);
      --num_pending_;
    } else {
      ++it;
    }
  }
}

void SQLiteChannelIDStore::Backend::Commit() {
  DCHECK(background_task_runner_->RunsTasksOnCurrentThread());

  PendingOperationsList ops;
  {
    base::AutoLock locked(lock_);
    pending_.swap(ops);
    num_pending_ = 0;
  }

  // Maybe an old timer fired or we are already Close()'ed.
  if (!db_.get() || ops.empty())
    return;

  sql::Statement add_statement(db_->GetCachedStatement(
      SQL_FROM_HERE,
      "INSERT INTO channel_id (host, private_key, public_key, "
      "creation_time) VALUES (?,?,?,?)"));
  if (!add_statement.is_valid())
    return;

  sql::Statement del_statement(db_->GetCachedStatement(
      SQL_FROM_HERE, "DELETE FROM channel_id WHERE host=?"));
  if (!del_statement.is_valid())
    return;

  sql::Transaction transaction(db_.get());
  if (!transaction.Begin())
    return;

  for (PendingOperationsList::iterator it = ops.begin(); it != ops.end();
       ++it) {
    // Free the certs as we commit them to the database.
    std::unique_ptr<PendingOperation> po(*it);
    switch (po->op()) {
      case PendingOperation::CHANNEL_ID_ADD: {
        add_statement.Reset(true);
        add_statement.BindString(0, po->channel_id().server_identifier());
        std::vector<uint8_t> private_key, public_key;
        if (!po->channel_id().key()->ExportEncryptedPrivateKey(
                ChannelIDService::kEPKIPassword, 1, &private_key))
          continue;
        if (!po->channel_id().key()->ExportPublicKey(&public_key))
          continue;
        add_statement.BindBlob(
            1, private_key.data(), static_cast<int>(private_key.size()));
        add_statement.BindBlob(2, public_key.data(),
                               static_cast<int>(public_key.size()));
        add_statement.BindInt64(
            3, po->channel_id().creation_time().ToInternalValue());
        if (!add_statement.Run())
          NOTREACHED() << "Could not add a server bound cert to the DB.";
        break;
      }
      case PendingOperation::CHANNEL_ID_DELETE:
        del_statement.Reset(true);
        del_statement.BindString(0, po->channel_id().server_identifier());
        if (!del_statement.Run())
          NOTREACHED() << "Could not delete a server bound cert from the DB.";
        break;

      default:
        NOTREACHED();
        break;
    }
  }
  transaction.Commit();
}

// Fire off a close message to the background task runner. We could still have a
// pending commit timer that will be holding a reference on us, but if/when
// this fires we will already have been cleaned up and it will be ignored.
void SQLiteChannelIDStore::Backend::Close() {
  // Must close the backend on the background task runner.
  background_task_runner_->PostTask(
      FROM_HERE, base::Bind(&Backend::InternalBackgroundClose, this));
}

void SQLiteChannelIDStore::Backend::InternalBackgroundClose() {
  DCHECK(background_task_runner_->RunsTasksOnCurrentThread());
  // Commit any pending operations
  Commit();
  db_.reset();
}

void SQLiteChannelIDStore::Backend::BackgroundDeleteAllInList(
    const std::list<std::string>& server_identifiers) {
  DCHECK(background_task_runner_->RunsTasksOnCurrentThread());

  if (!db_.get())
    return;

  PrunePendingOperationsForDeletes(server_identifiers);

  sql::Statement del_smt(db_->GetCachedStatement(
      SQL_FROM_HERE, "DELETE FROM channel_id WHERE host=?"));
  if (!del_smt.is_valid()) {
    LOG(WARNING) << "Unable to delete channel ids.";
    return;
  }

  sql::Transaction transaction(db_.get());
  if (!transaction.Begin()) {
    LOG(WARNING) << "Unable to delete channel ids.";
    return;
  }

  for (std::list<std::string>::const_iterator it = server_identifiers.begin();
       it != server_identifiers.end();
       ++it) {
    del_smt.Reset(true);
    del_smt.BindString(0, *it);
    if (!del_smt.Run())
      NOTREACHED() << "Could not delete a channel id from the DB.";
  }

  if (!transaction.Commit())
    LOG(WARNING) << "Unable to delete channel ids.";
}

void SQLiteChannelIDStore::Backend::SetForceKeepSessionState() {
  base::AutoLock locked(lock_);
  force_keep_session_state_ = true;
}

SQLiteChannelIDStore::SQLiteChannelIDStore(
    const base::FilePath& path,
    const scoped_refptr<base::SequencedTaskRunner>& background_task_runner)
    : backend_(new Backend(path, background_task_runner)) {
}

void SQLiteChannelIDStore::Load(const LoadedCallback& loaded_callback) {
  backend_->Load(loaded_callback);
}

void SQLiteChannelIDStore::AddChannelID(
    const DefaultChannelIDStore::ChannelID& channel_id) {
  backend_->AddChannelID(channel_id);
}

void SQLiteChannelIDStore::DeleteChannelID(
    const DefaultChannelIDStore::ChannelID& channel_id) {
  backend_->DeleteChannelID(channel_id);
}

void SQLiteChannelIDStore::DeleteAllInList(
    const std::list<std::string>& server_identifiers) {
  backend_->DeleteAllInList(server_identifiers);
}

void SQLiteChannelIDStore::SetForceKeepSessionState() {
  backend_->SetForceKeepSessionState();
}

SQLiteChannelIDStore::~SQLiteChannelIDStore() {
  backend_->Close();
  // We release our reference to the Backend, though it will probably still have
  // a reference if the background task runner has not run Close() yet.
}

}  // namespace net

redpajama_set_name: RedPajamaGithub


text:
CMBS On The Perp Walk: We Are Being Set Up!
Blog Crunched Credit
Dechert LLP
USA September 8 2020
Folks, last week I made the point that it's extremely important to confront negative narratives about our industry before they take hold, creep into the interstices between things that are true and then somehow ossified into received wisdom. So, taking on board my own advice, which shockingly I find compelling, I want to sound the alarm about a recent Wall Street Journal story concerning the misstatement of net operating income in our industry (I only wish I could qualify as an influencer here. I read about two teens with millions of followers this weekend; they talk about stuff like..their hair. Is there anyone out there that wants to know about my hair?).
Whoops, got off track there for a moment. In any event, it's entirely clear to me that we're watching the early days of a story with us as the villain being woven together from a set of disparate and unrelated stories, sophistic conjectures and sly critiques into something that will be called a "BIG STORY" that will be wrong and damaging to the commercial real estate finance industry.
The Wall Street Journal ran a "news" story about our industry a couple of weeks ago under the title "Commercial Properties' Ability to Repay Mortgage Overstated, Study Finds." To an insider, it was blatantly a headline in search of a story. Here's the short version: Two University of Texas professors, Messrs. John M. Griffin and Alex Priest, culled data (all publicly available) comparing closing date net operating income (NOI) with the performance of commercial mortgages during the first year of the related property's operation. They "discovered" that pre-closing NOI was often higher than the reported first year NOI. From that they concluded that NOI was overstated and moreover concluded to a significant extent it was intentionally overstated. A disparity discovered by academics between predicted and actual NOI is a yawn. Mix in a soupcon of fraud and now we've got a story!
The Journal appeared to have given a lot more deference to the authors than I would have, perhaps concluding that they must surely be thoughtful and diligent because, gosh, they have advanced degrees. At best, this article suffers from the frailty of all academic analyses when professors peer into a complex industry in which they are not full-time participants, looking for something publishable. Academics never truly understand, in these situations the underlying substructure of these complex industries they are looking at because they are essentially dabblers, dilettantes, spending a little bit of their professional life looking into something new and shiny. Nonetheless, they typically convince themselves that they understand it better than the actual inhabitants of that industry.
A version of the old adage that "if you don't play-a the game, you shouldn't make-a the rules" comes to mind. Look, if you're compelled because of a life of publish-or-perish to write about us, at least do it with a great deal of humility.
The Wall Street Journal story reported corroboration for the results of this study from a year old whistle-blower report and a report that the SEC is looking at the quality of disclosure in certain structured finance products. I hate to be picky, but let's first look at the bio of the principal author, Mr. Griffin, which actually says his focus is "studying the role that anything potentially illegal, illicit or amoral in financial markets" might have on this industry. Talk about a little confirmation bias here? And then, the confirmatory whistleblower was talking his book and owned a financial fraud consultancy and the SEC was focusing its investigation on COVID-19 disclosure, but why let facts get in the way of a good story?
Several thoughtful industry commentators including CREFC have already pointed out the obvious flaws in the good professors' study – most notably the myopic attention on comparing underwritten NOI with first year performance of the assets, which is a data set far removed from the performance the NOI analysis is designed to illuminate. Also, the study elided the reality that NOI is not a chemistry set experiment and therefore when constructed by different institutions with slightly different data sets will almost certainly produce different values for NOI.
Please take a look at an excellent recent TREPP note by Joe McBride and Manus Clancy reporting on the work they are doing on this issue and the allegations raised in this paper. While the TREPP note indicates that this was a preliminary assessment and they are in the process of doing a deeper dive into the data, TREPP, who is the gold standard for analytics in our industry, certainly put paid to the more egregious conclusions of the study. A little teaser here for the deeper dive that's under way (which will be delivered to their accounts and may be more broadly published), but looking at six years of data, none of the top 30 originators had a negative average NOI growth achieved after underwriting. Moreover, on an NOI weighted basis, the worst performers were approximately -1% NOI growth. The industry average was well into positive territory. That's a story worth telling. Joe and Manus are doing God's work here.
Our Lone Star authors committed one of the classic fallacies of logic by confusing order with causation. Apparently, the authors' "ta-da" moment was espying that the pandemic had significantly impacted the ability of borrowers to perform! Duh. As one might say (but I certainly wouldn't because of a dearth of proper early training in Latin), post hoc ergo propter hoc, which roughly means finding causation merely because one event follows the other (which, of course, is the basis for my rally hat at Yankees' games).
The most combustible assertion made by Messrs. Griffin and Priest is, of course, that the divergence between prediction and performance was the product of intentional fraud. What an astonishing leap to indict the entire industry in an NOI overstatement cabal! Maybe this is the sort of allegation that one needs to get published these days, but it is irresponsible.
All this talk of fraud is news to me, and I've been in this business a long time. It is simply not conceivable the folks who write commercial real estate loans for banks and other lenders, professional people all, who are highly committed to preserving the critical integrity of the business that pays their mortgage, somehow joined a giant cabal to overstate NOI in a consistent and coherent way. Nonsense.
Also, it would be stupid and useless. If there is any diddling of data going on in our industry, it's being diddled in plain sight watched by innumerable deal participants from lenders' credit departments (the land of Dr. No), to the ratings agencies, to the issuers, the investment grade bond buyer and to the first loss bond buyers. Everyone has (God help me, I'm saying this in a positive way) skin in the game. Our industry is highly data driven and has the benefit of reams of research and extraordinary transparency.
The CMBS Investor Reporting Package or IRP is the gold standard for transparency in all debt markets. The IRP was developed and is maintained and updated regularly by CREFC and its broad cross-section of members including issuers, investor and servicers who work hard to ensure that the IRP is the best data set available in debt capital markets to foster liquidity in a market. It contains hundreds of data fields. NOI is a process based on the manipulation of this data and both the data and the processes are broadly known to industry participants. Whatever is going on in our business, it's being done in plain sight.
Do our friends from Texas think we're all naifs, bedazzled by a single data field called NOI? The investors have the data that underlies the calculation through the IRP. They have the IRP. They have or can get the appraisals. They have unbelievable access to market information through appraisals and the information regarding the bonds and the underlying commercial real estate published by a wide range of analytic service providers including TREPP, S&P Global, Moody's Analytics, CBRE…too many to name. Any competent investor doing its job can take a view on NOI, or indeed any other number, generated by the lender or securitization sponsor of a transaction and can reverse engineer the analytics. While an NOI calculated by a lender and included in a disclosure document by a securitization sponsor is a useful piece of information, it is just that; not the only and indeed not the most determinative data in understanding property values.
The amount of data ignored in this study is breathtaking. Before the pandemic, both watch list and non-performing loans in CMBS were at all-time lows. Loans were performing extraordinarily well, indeed better than would be anticipated by long data sets that were generally available to industry participants. Indeed, the poor special servicers back in January had been recapitulating the life of the Maytag Repairmen; so little to do.
Bottom line, there is no CMBS version of the Trilateral Commission with magic underwear and secret handshakes. There's just a bunch of people trying to do their best in an uncertain world, working hard to facilitate the smooth functioning of capital markets and the delivery of capital to the economy that needs it.
So what to do? If this narrative of the evil that lurks in the hearts of the typical commercial real estate practitioner is allowed to grow, evolve and take root, if it is allowed to go uncontested in the broader marketplace of ideas, we will lose. Remember that conspiracies are fun. Allegations about people doing bad things are alluring. There will be a natural bias to embrace this narrative throughout the chattering class (an academic study reporting that "all's well" is simply too boring for words).
Here's how it's going to work if we don't disrupt the growth of this toxic narrative. After this story, someone else will write a story critical of some other aspect of underwriting commercial real estate, asserting some other species of bad behavior. The chattering class will view the current story as corroborative of the new story. Then the assertions in the Lone Star study will be republished with a subsequent story as further corroboration and after a while, as corroboration bangs back and forth in the echo chamber of confirmation bias, it will certainly ossify into orthodoxy. (We are in a time and place where it seems that not only are we entitled to our own opinions but our own facts.)
This story will then become a club that our gloriously elected leaders and their apparatchiki will use to beat us around the head and shoulders over the next several years as the recession plays out and the damage of the pandemic continues to roil markets and American life and we search for villains. Folks, we've seen this movie. Let's not rerun the tape and play it again.
So, up on the barricades everybody. We can't let this go; can't let the narrative metastasize and be woven into a broader narrative of Wall Street versus Main Street, good guys and bad guys and nefarious bankers. While our political elites would no more believe that Elvis is still playing gigs in Area 51 than the tooth fairy, trust me, they're going to believe this story.
Dechert LLP - Rick Jones
Hart-Scott-Rodino Annual Adjustments Announced for 2023; New Merger Filing Fees to Take Effect in February *
Prudential Regulators Issue Joint Statement on Crypto-Asset Risks *
Delaware Court of Chancery Holds "MFW" Framework Applies to Controller Transaction Despite Substantially Higher Third-Party Offer *
A Secure Retirement for All *
More from Crunched Credit
To Hell with Predictions; I'm Embracing My Inner Fabulist This Year
CREFC Capital Markets Conference Recap
Auto ABS: Uncertainty and Excitement Ahead
Can We (Should We) Try to Fix the Conduit Before It's Gone?
Life (and Opportunity) in the Time of Considerable Government Malfeasance


A couple of weeks ago I went to see an exhibition at the Japan Society of one of my favorite artists, Utagawa Kuniyoshi. Truth is, I am in awe of many of the artists from the Ukiyo-e period, especially Kitigawa Utamaro. The sophistication of vision and the clarity and speed of execution in these artists' work is fascinating. But what is really interesting to me is the emotional impact of many of the images themselves – the way they involve you, intimately, in what is being represented. It is a vision determined through direct drawing, memory and touch, then reproduced using woodblock printing techniques. Woodblock printing! Christ, most of us have NO CLUE how labor intensive and difficult this is. Images are backwards, you must work from the negative and the entire thing is hand carved – meaning it takes great skill and technique to do it well. In order to make a line you must remove the material around the line. Not only is it laborious, but you have to think from the end rather than work to the end – making the whole process even more conceptually driven.
Kuniyoshi is a marvelous story teller and a brilliant technician. His work is about movement and drama – theatrical in the best sense. The exhibitors had placed an open sketch book of his drawings at the beginning of the galleries. The page of drawings on view were stunning – all process and reworked lines. In this sketch book the creative act was on view, and it looked extremely contemporary. But what really took me aback was the strength of the line, the sureness of the execution. When he decided on something he was emphatic. We don't draw like that any longer, unless we are tracing an image. Oh, we play the drawing game, sure, but it is removed from the act of seeing. By that I mean we start the drawing knowing that we're going to erase it, smear it, work the paper, tear into the surface. Our drawing is about the processes of working the drawing rather than involving ourselves in forming an image, and this "process" has become an academic/institutional preoccupation in so many studios. We don't look or see our way to moving a line; we process the line, we distress and/or antique the paper, we concentrate on the effect of the materials. So, it's always wonderful to see and be reminded of real visual thought in action – ideas pushing the image into view through the artist's hand. You get a real jolt of this difference in our time and in this sketch book. But there were even more delights on the walls! Kuniyoshi was a master of technique and his work is dramatic, cinematic and way OTT. But for me it is his composition that is divine – in piece after piece he drives you straight into the visual sweet spot – pushing and pulling the rising subject through the ground.
There were just a few people in the galleries, a couple of wonderfully tatooed Manga fans drawing copies, an old couple discussing their trip to Tokyo and a family pointing out the minute details of each print to their totally bored nanny. Basically, I had the place to myself and I spent a bit of time going back and forth between the images. One of my favorites was the image on the left. The linework is incredible and it literally enervates the entire image. Everything in the piece is moving. The wind is blowing life around the figure, leaves, clothing, hair, all of it in motion. The line IS process, like DeKooning's brush strokes, but here, conceptualized for vision, bringing the rising subject into sharp visual focus. The figure struggles against the heavy wind, his left foot about to step into our space, as if he is leaving the frame. The long grass moves in waves, leaves blow across the glade. You get a strong sense of fall, of the chill in the air, like late October. This figure has a purpose and is resolved to move forward – the rather nasty looking hook and tether in his right hand allude to some serious goings-on. But what I truly love are the textures that Kuniyoshi has created using only line – short bursts, long flows, thick stubs, long razor-like shards, all of it designed to move your eye – the silk of the robes, the thick fur of his cloak, the landscape, the dried leaves, the woven hat. Van Gogh did a very similar thing with line in his drawings and paintings, and he appropriated the power of these techniques from the Japanese woodcut prints that were all the rage amongst the Parisian avant garde of the time.
As I was leaving the show I wondered why our drawing practices today have little in common with the visual feast going on in those galleries. I have grown tired of the naive ham handedness and itchy scratchy line or the singleminded pursuit of the "badly made piece" that passes for "expression." I want more sophistication in drawing. Sophistication that isn't based on academic posturing or lens based "reality." I don't care about verisimilitude, especially if it's clumsy, but I do care for understanding and simplicity – like Ingres', Delacroix's or Michelangelo's drawings. Picasso was a master of technique, and he would use that mastery to get at and simplify his vision. A good friend of mine used to say that Matisse was dangerous with a nib, like a deadly fencer, and with just a few quick flicks of his wrist an odalisque would appear. I thought about this as I made my way back to the subway. A lot of gallery shows these days like to show off a wall of drawings to go with the paintings on view, and I'm always struck at the wierd disparity between those drawn works and the paintings. I think this is so for two reasons. First, drawing is an intimate visual experience connected to thought. Most of us do not experience visual thought in this way any longer – we prefer to lens capture on our phones and airbrush with an app. We do not see in a physical sense – we conceptualize through lenses and programs. Robert Hughes used to complain that the Postmoderns couldn't draw and in this sense he was correct – we have been concerned with processes. The second (and probably a reaction to the first) is our reliance on materials and the effects that they can produce. There are many painters who are wonderful technicians and materialists. They can move "stuff" – dripping, erasing, scraping, sanding and scumbling the work with torrents of physically pliable things. They are creating effects and backgrounds – and it happens in both painting and drawing. But what is left out of this process is seeing the world around us. When the Parisian avant garde went nuts for Japanese prints it opened them up to new ideas about composition, flatness and visual economy. For Van Gogh these prints challenged him to change his ideas about the way his hand worked, the way his drawing techniques could express an emotion through vision. For me, when I go back to see the Japanese masters, I see the movement, the linework and the visceral pictorial composition as a way to enliven and engage our media saturated scanning eyes.
If you can, I suggest you find an afternoon for Kuniyoshi.


text:
Шевр () — франкоязычное имя собственное; распространено в виде названий и топонимов.
 Бюш-де-Шевр — французский сыр из козьего молока.
 Кёр-де-Шевр — мягкий французский сыр из козьего молока.

Топонимы
 Виллер-ла-Шевр — коммуна во французском департаменте Мёрт и Мозель региона Лотарингия.
 Ла-Лож-о-Шевр — коммуна во Франции, находится в регионе Шампань — Арденны.

redpajama_set_name: RedPajamaWikipedia


Since the creation of the prescription system, doctors have written out medication requirements for pharmacies to fulfill. Only recently has the push from written notes to digital orders started to take place. Now, over 70% of physicians in the United States have transmitted at least one digital prescription. Growth in ePrescribing lagged behind other industries as the DEA maintained certain regulations, preventing the order of prescriptions over an Internet connection until it could determine a secured method of ePrescribing was in place. With the creation of the Electronic Prescriptions for Controlled Substances run in 2010, practitioners now have the ability to electronically prescribe Schedule II-V controlled substances.
According to Medical Group Management, offices that have made the full move from traditional prescription filing to ePrescribing save an average of $15,769 annually per physician. These savings are experienced not only due to less paperwork requirements but the administrative team can lighten their workload and spend time on other tasks around the office.
Some of the most common prescription filling problems occur when pharmacies misread the information written down by a doctor. With ePrescribing, there is substantially less of a chance that the pharmacy will incorrectly fill the prescription. Additionally, pharmacies can easily cross reference medication information to avoid dangerous combinations.
Posted in Blog on October 5th, 2016.


It's Friday once again - Time for the weekend getaways and my Friday Much Post!
I found some left-over melons in our fridge! It was not in season so although they were pretty juicy, the taste wasn't as attractive enough to eat the pieces one by one. I wanted to make some Melon Juice but I wanted the meat shredded and not squared so it was too cumbersome for that.
I came up with Strawberry-Melon Milk Shake after thinking that maybe 2 fruits were healthier than 1. The milk would prevent osteoporosis and the shake can ward off the heat. It just made sense to do everything without spending anything.
Fruit shake stands attract a lot of people in bazaars or in schools. I just thought I could do it too without leaving the house.
Now here's how I got the strawberry part. I used the strawberry milk in our fridge. It was also sweet already so I just thought I'd try some improvised Strawberry-Melon Milk Shake. I used ice cubes in place of the normal shredded shake ice and hoped that my blender could do the job for me.
Blend together the melons, strawberry milk, ice and a little bit of cold water. Mix with spoon every once in a while to move those chunks. Remove from blender. Pour the shake in a glass. Add sugar and more ice if needed.
It's not as sweet as the ones they sell at stands and you can control the fruits you want. The blender reduced my ice cubes to bubbles.
Feel free to experiment and tell me all about it.


text:
Q: Доступ к request.user в admin.py для условие к readonly_fields Использую стандартный Django-Admin версия 2*.
Есть класс Кард с полем number.
class Card(models.Model):
     number = models.CharField(max_length=250, blank=True, null=True, default="")

Нужно получить доступ в admin.py/Card_Admin , к группам пользователей  "A" и "B". Что бы написать условие где группа А может только просмотреть field а группа Б может редактировать.
from django.contrib.auth.models import Group

class Card_Admin(admin.ModelAdmin):
     if Group.objects.get(name='A').user_set.filter(id=request.user.id).exists():
         readonly_fields = ['number']

Так же проблема с  запросом который после перехода на вторую версию перестал работать. В версии 1.11 запрос работал во views.py, а в админ-классе так же не мог получить доступ к request.user.
Group.objects.get(name='A').user_set.filter(id=request.user.id).exists():

A: class Card_Admin(admin.ModelAdmin):
    def get_readonly_fields(self, request, obj=None):
        if request.user.groups.filter(name='A').exists():
            return ['number']
        return []

redpajama_set_name: RedPajamaStackExchange