anchor.diff:  					[#product{product = OfferId, balance = BucketRefs} = Product] ->
   						case mnesia:read(offer, OfferId, read) of
   							[#offer{char_value_use = CharValueUse, name = OfferName} = _Offer] ->
  -								Buckets = lists:flatten([mnesia:read(bucket, Id, write)
  +								Buckets = lists:flatten([mnesia:read(bucket, Id, sticky_write)
   										|| Id <- BucketRefs]),
   								F1 = fun(#bucket{units = cents, remain_amount = RM}) when RM < 0 ->
   										false;
  
positive.code: 		(is_list(ReserveAmounts) or (ReserveAmounts == undefined)),
  		length(SessionAttributes) > 0 ->
  	F = fun() ->
  			case mnesia:read(service, SubscriberID, write) of
  				[#service{product = ProdRef, session_attributes = SessionList} = Service] ->
  					case mnesia:read(product, ProdRef, read) of
  						[#product{product = OfferId,
  
negative.code: 		Service, _Timestamp, _Address, _Direction, SessionAttributes) ->
  	case mnesia:dirty_read(product, ProdRef) of
  		[#product{balance = BucketRefs}] ->
  			Buckets = lists:flatten([mnesia:read(bucket, Id, sticky_write) || Id <- BucketRefs]),
  			authorize5(Service, Buckets, ServiceType, SessionAttributes, Attributes);
  		[] ->
  			mnesia:abort(product_not_found)
  